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

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

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

Powered by Google App Engine
This is Rietveld 408576698