Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: extensions/browser/sandboxed_unpacker.cc

Issue 2888053002: Rename TaskRunner::RunsTasksOnCurrentThread() in //extensions, //headless, //mojo (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "extensions/browser/sandboxed_unpacker.h" 5 #include "extensions/browser/sandboxed_unpacker.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <set> 10 #include <set>
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 location_(location), 226 location_(location),
227 creation_flags_(creation_flags), 227 creation_flags_(creation_flags),
228 unpacker_io_task_runner_(unpacker_io_task_runner) { 228 unpacker_io_task_runner_(unpacker_io_task_runner) {
229 // Tracking for crbug.com/692069. The location must be valid. If it's invalid, 229 // Tracking for crbug.com/692069. The location must be valid. If it's invalid,
230 // the utility process kills itself for a bad IPC. 230 // the utility process kills itself for a bad IPC.
231 CHECK_GT(location, Manifest::INVALID_LOCATION); 231 CHECK_GT(location, Manifest::INVALID_LOCATION);
232 CHECK_LT(location, Manifest::NUM_LOCATIONS); 232 CHECK_LT(location, Manifest::NUM_LOCATIONS);
233 } 233 }
234 234
235 bool SandboxedUnpacker::CreateTempDirectory() { 235 bool SandboxedUnpacker::CreateTempDirectory() {
236 CHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); 236 CHECK(unpacker_io_task_runner_->RunsTasksInCurrentSequence());
237 237
238 base::FilePath temp_dir; 238 base::FilePath temp_dir;
239 if (!FindWritableTempLocation(extensions_dir_, &temp_dir)) { 239 if (!FindWritableTempLocation(extensions_dir_, &temp_dir)) {
240 ReportFailure(COULD_NOT_GET_TEMP_DIRECTORY, 240 ReportFailure(COULD_NOT_GET_TEMP_DIRECTORY,
241 l10n_util::GetStringFUTF16( 241 l10n_util::GetStringFUTF16(
242 IDS_EXTENSION_PACKAGE_INSTALL_ERROR, 242 IDS_EXTENSION_PACKAGE_INSTALL_ERROR,
243 ASCIIToUTF16("COULD_NOT_GET_TEMP_DIRECTORY"))); 243 ASCIIToUTF16("COULD_NOT_GET_TEMP_DIRECTORY")));
244 return false; 244 return false;
245 } 245 }
246 246
247 if (!temp_dir_.CreateUniqueTempDirUnderPath(temp_dir)) { 247 if (!temp_dir_.CreateUniqueTempDirUnderPath(temp_dir)) {
248 ReportFailure(COULD_NOT_CREATE_TEMP_DIRECTORY, 248 ReportFailure(COULD_NOT_CREATE_TEMP_DIRECTORY,
249 l10n_util::GetStringFUTF16( 249 l10n_util::GetStringFUTF16(
250 IDS_EXTENSION_PACKAGE_INSTALL_ERROR, 250 IDS_EXTENSION_PACKAGE_INSTALL_ERROR,
251 ASCIIToUTF16("COULD_NOT_CREATE_TEMP_DIRECTORY"))); 251 ASCIIToUTF16("COULD_NOT_CREATE_TEMP_DIRECTORY")));
252 return false; 252 return false;
253 } 253 }
254 254
255 return true; 255 return true;
256 } 256 }
257 257
258 void SandboxedUnpacker::StartWithCrx(const CRXFileInfo& crx_info) { 258 void SandboxedUnpacker::StartWithCrx(const CRXFileInfo& crx_info) {
259 // We assume that we are started on the thread that the client wants us 259 // We assume that we are started on the thread that the client wants us
260 // to do file IO on. 260 // to do file IO on.
261 CHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); 261 CHECK(unpacker_io_task_runner_->RunsTasksInCurrentSequence());
262 262
263 crx_unpack_start_time_ = base::TimeTicks::Now(); 263 crx_unpack_start_time_ = base::TimeTicks::Now();
264 std::string expected_hash; 264 std::string expected_hash;
265 if (!crx_info.expected_hash.empty() && 265 if (!crx_info.expected_hash.empty() &&
266 base::CommandLine::ForCurrentProcess()->HasSwitch( 266 base::CommandLine::ForCurrentProcess()->HasSwitch(
267 extensions::switches::kEnableCrxHashCheck)) { 267 extensions::switches::kEnableCrxHashCheck)) {
268 expected_hash = base::ToLowerASCII(crx_info.expected_hash); 268 expected_hash = base::ToLowerASCII(crx_info.expected_hash);
269 } 269 }
270 270
271 PATH_LENGTH_HISTOGRAM("Extensions.SandboxUnpackInitialCrxPathLength", 271 PATH_LENGTH_HISTOGRAM("Extensions.SandboxUnpackInitialCrxPathLength",
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 return; 438 return;
439 } 439 }
440 440
441 unpacker_io_task_runner_->PostTask( 441 unpacker_io_task_runner_->PostTask(
442 FROM_HERE, base::Bind(&SandboxedUnpacker::UnpackExtensionSucceeded, this, 442 FROM_HERE, base::Bind(&SandboxedUnpacker::UnpackExtensionSucceeded, this,
443 base::Passed(&manifest))); 443 base::Passed(&manifest)));
444 } 444 }
445 445
446 void SandboxedUnpacker::UnpackExtensionSucceeded( 446 void SandboxedUnpacker::UnpackExtensionSucceeded(
447 std::unique_ptr<base::DictionaryValue> manifest) { 447 std::unique_ptr<base::DictionaryValue> manifest) {
448 CHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); 448 CHECK(unpacker_io_task_runner_->RunsTasksInCurrentSequence());
449 449
450 std::unique_ptr<base::DictionaryValue> final_manifest( 450 std::unique_ptr<base::DictionaryValue> final_manifest(
451 RewriteManifestFile(*manifest)); 451 RewriteManifestFile(*manifest));
452 if (!final_manifest) 452 if (!final_manifest)
453 return; 453 return;
454 454
455 // Create an extension object that refers to the temporary location the 455 // Create an extension object that refers to the temporary location the
456 // extension was unpacked to. We use this until the extension is finally 456 // extension was unpacked to. We use this until the extension is finally
457 // installed. For example, the install UI shows images from inside the 457 // installed. For example, the install UI shows images from inside the
458 // extension. 458 // extension.
(...skipping 26 matching lines...) Expand all
485 if (!RewriteImageFiles(&install_icon)) 485 if (!RewriteImageFiles(&install_icon))
486 return; 486 return;
487 487
488 if (!RewriteCatalogFiles()) 488 if (!RewriteCatalogFiles())
489 return; 489 return;
490 490
491 ReportSuccess(std::move(manifest), install_icon); 491 ReportSuccess(std::move(manifest), install_icon);
492 } 492 }
493 493
494 void SandboxedUnpacker::UnpackExtensionFailed(const base::string16& error) { 494 void SandboxedUnpacker::UnpackExtensionFailed(const base::string16& error) {
495 CHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); 495 CHECK(unpacker_io_task_runner_->RunsTasksInCurrentSequence());
496 496
497 ReportFailure( 497 ReportFailure(
498 UNPACKER_CLIENT_FAILED, 498 UNPACKER_CLIENT_FAILED,
499 l10n_util::GetStringFUTF16(IDS_EXTENSION_PACKAGE_ERROR_MESSAGE, error)); 499 l10n_util::GetStringFUTF16(IDS_EXTENSION_PACKAGE_ERROR_MESSAGE, error));
500 } 500 }
501 501
502 base::string16 SandboxedUnpacker::FailureReasonToString16( 502 base::string16 SandboxedUnpacker::FailureReasonToString16(
503 FailureReason reason) { 503 FailureReason reason) {
504 switch (reason) { 504 switch (reason) {
505 case COULD_NOT_GET_TEMP_DIRECTORY: 505 case COULD_NOT_GET_TEMP_DIRECTORY:
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 l10n_util::GetStringFUTF16(IDS_EXTENSION_PACKAGE_INSTALL_ERROR, 896 l10n_util::GetStringFUTF16(IDS_EXTENSION_PACKAGE_INSTALL_ERROR,
897 ASCIIToUTF16("ERROR_SAVING_CATALOG"))); 897 ASCIIToUTF16("ERROR_SAVING_CATALOG")));
898 return false; 898 return false;
899 } 899 }
900 } 900 }
901 901
902 return true; 902 return true;
903 } 903 }
904 904
905 void SandboxedUnpacker::Cleanup() { 905 void SandboxedUnpacker::Cleanup() {
906 DCHECK(unpacker_io_task_runner_->RunsTasksOnCurrentThread()); 906 DCHECK(unpacker_io_task_runner_->RunsTasksInCurrentSequence());
907 if (!temp_dir_.Delete()) { 907 if (!temp_dir_.Delete()) {
908 LOG(WARNING) << "Can not delete temp directory at " 908 LOG(WARNING) << "Can not delete temp directory at "
909 << temp_dir_.GetPath().value(); 909 << temp_dir_.GetPath().value();
910 } 910 }
911 } 911 }
912 912
913 } // namespace extensions 913 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698