OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/sandboxed_unpacker.h" | 5 #include "chrome/browser/extensions/sandboxed_unpacker.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 bool normalized = | 138 bool normalized = |
139 file_util::NormalizeFilePath(temp_file, &normalized_temp_file); | 139 file_util::NormalizeFilePath(temp_file, &normalized_temp_file); |
140 if (!normalized) { | 140 if (!normalized) { |
141 // If |temp_file| contains a link, the sandbox will block al file system | 141 // If |temp_file| contains a link, the sandbox will block al file system |
142 // operations, and the install will fail. | 142 // operations, and the install will fail. |
143 LOG(ERROR) << temp_dir->value() << " seem to be on remote drive."; | 143 LOG(ERROR) << temp_dir->value() << " seem to be on remote drive."; |
144 } else { | 144 } else { |
145 *temp_dir = normalized_temp_file.DirName(); | 145 *temp_dir = normalized_temp_file.DirName(); |
146 } | 146 } |
147 // Clean up the temp file. | 147 // Clean up the temp file. |
148 base::Delete(temp_file, false); | 148 base::DeleteFile(temp_file, false); |
149 | 149 |
150 return normalized; | 150 return normalized; |
151 } | 151 } |
152 | 152 |
153 // This function tries to find a location for unpacking the extension archive | 153 // This function tries to find a location for unpacking the extension archive |
154 // that is writable and does not lie on a shared drive so that the sandboxed | 154 // that is writable and does not lie on a shared drive so that the sandboxed |
155 // unpacking process can write there. If no such location exists we can not | 155 // unpacking process can write there. If no such location exists we can not |
156 // proceed and should fail. | 156 // proceed and should fail. |
157 // The result will be written to |temp_dir|. The function will write to this | 157 // The result will be written to |temp_dir|. The function will write to this |
158 // parameter even if it returns false. | 158 // parameter even if it returns false. |
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 base::FilePath path = *it; | 672 base::FilePath path = *it; |
673 if (path.IsAbsolute() || path.ReferencesParent()) { | 673 if (path.IsAbsolute() || path.ReferencesParent()) { |
674 // Invalid path for browser image. | 674 // Invalid path for browser image. |
675 ReportFailure( | 675 ReportFailure( |
676 INVALID_PATH_FOR_BROWSER_IMAGE, | 676 INVALID_PATH_FOR_BROWSER_IMAGE, |
677 l10n_util::GetStringFUTF16( | 677 l10n_util::GetStringFUTF16( |
678 IDS_EXTENSION_PACKAGE_INSTALL_ERROR, | 678 IDS_EXTENSION_PACKAGE_INSTALL_ERROR, |
679 ASCIIToUTF16("INVALID_PATH_FOR_BROWSER_IMAGE"))); | 679 ASCIIToUTF16("INVALID_PATH_FOR_BROWSER_IMAGE"))); |
680 return false; | 680 return false; |
681 } | 681 } |
682 if (!base::Delete(extension_root_.Append(path), false)) { | 682 if (!base::DeleteFile(extension_root_.Append(path), false)) { |
683 // Error removing old image file. | 683 // Error removing old image file. |
684 ReportFailure( | 684 ReportFailure( |
685 ERROR_REMOVING_OLD_IMAGE_FILE, | 685 ERROR_REMOVING_OLD_IMAGE_FILE, |
686 l10n_util::GetStringFUTF16( | 686 l10n_util::GetStringFUTF16( |
687 IDS_EXTENSION_PACKAGE_INSTALL_ERROR, | 687 IDS_EXTENSION_PACKAGE_INSTALL_ERROR, |
688 ASCIIToUTF16("ERROR_REMOVING_OLD_IMAGE_FILE"))); | 688 ASCIIToUTF16("ERROR_REMOVING_OLD_IMAGE_FILE"))); |
689 return false; | 689 return false; |
690 } | 690 } |
691 } | 691 } |
692 | 692 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 | 827 |
828 void SandboxedUnpacker::Cleanup() { | 828 void SandboxedUnpacker::Cleanup() { |
829 DCHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); | 829 DCHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); |
830 if (!temp_dir_.Delete()) { | 830 if (!temp_dir_.Delete()) { |
831 LOG(WARNING) << "Can not delete temp directory at " | 831 LOG(WARNING) << "Can not delete temp directory at " |
832 << temp_dir_.path().value(); | 832 << temp_dir_.path().value(); |
833 } | 833 } |
834 } | 834 } |
835 | 835 |
836 } // namespace extensions | 836 } // namespace extensions |
OLD | NEW |