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

Side by Side Diff: chrome/browser/extensions/crx_installer.cc

Issue 2871303004: Rename TaskRunner::RunsTasksOnCurrentThread() in //chrome (Closed)
Patch Set: fixed build error 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
« no previous file with comments | « chrome/browser/extensions/app_data_migrator.cc ('k') | chrome/browser/image_decoder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/extensions/crx_installer.h" 5 #include "chrome/browser/extensions/crx_installer.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 return; 240 return;
241 } 241 }
242 242
243 // TODO(aa): conversion data gets lost here :( 243 // TODO(aa): conversion data gets lost here :(
244 244
245 OnUnpackSuccess(extension->path(), extension->path(), nullptr, 245 OnUnpackSuccess(extension->path(), extension->path(), nullptr,
246 extension.get(), SkBitmap()); 246 extension.get(), SkBitmap());
247 } 247 }
248 248
249 CrxInstallError CrxInstaller::AllowInstall(const Extension* extension) { 249 CrxInstallError CrxInstaller::AllowInstall(const Extension* extension) {
250 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 250 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
251 251
252 // Make sure the expected ID matches if one was supplied or if we want to 252 // Make sure the expected ID matches if one was supplied or if we want to
253 // bypass the prompt. 253 // bypass the prompt.
254 if ((approved_ || !expected_id_.empty()) && 254 if ((approved_ || !expected_id_.empty()) &&
255 expected_id_ != extension->id()) { 255 expected_id_ != extension->id()) {
256 return CrxInstallError(l10n_util::GetStringFUTF16( 256 return CrxInstallError(l10n_util::GetStringFUTF16(
257 IDS_EXTENSION_INSTALL_UNEXPECTED_ID, base::ASCIIToUTF16(expected_id_), 257 IDS_EXTENSION_INSTALL_UNEXPECTED_ID, base::ASCIIToUTF16(expected_id_),
258 base::ASCIIToUTF16(extension->id()))); 258 base::ASCIIToUTF16(extension->id())));
259 } 259 }
260 260
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 IDS_EXTENSION_INSTALL_INCORRECT_INSTALL_HOST)); 398 IDS_EXTENSION_INSTALL_INCORRECT_INSTALL_HOST));
399 } 399 }
400 } 400 }
401 } 401 }
402 } 402 }
403 403
404 return CrxInstallError(); 404 return CrxInstallError();
405 } 405 }
406 406
407 void CrxInstaller::OnUnpackFailure(const CrxInstallError& error) { 407 void CrxInstaller::OnUnpackFailure(const CrxInstallError& error) {
408 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 408 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
409 409
410 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackFailureInstallSource", 410 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackFailureInstallSource",
411 install_source(), Manifest::NUM_LOCATIONS); 411 install_source(), Manifest::NUM_LOCATIONS);
412 412
413 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackFailureInstallCause", 413 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackFailureInstallCause",
414 install_cause(), 414 install_cause(),
415 extension_misc::NUM_INSTALL_CAUSES); 415 extension_misc::NUM_INSTALL_CAUSES);
416 416
417 ReportFailureFromFileThread(error); 417 ReportFailureFromFileThread(error);
418 } 418 }
419 419
420 void CrxInstaller::OnUnpackSuccess( 420 void CrxInstaller::OnUnpackSuccess(
421 const base::FilePath& temp_dir, 421 const base::FilePath& temp_dir,
422 const base::FilePath& extension_dir, 422 const base::FilePath& extension_dir,
423 std::unique_ptr<base::DictionaryValue> original_manifest, 423 std::unique_ptr<base::DictionaryValue> original_manifest,
424 const Extension* extension, 424 const Extension* extension,
425 const SkBitmap& install_icon) { 425 const SkBitmap& install_icon) {
426 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 426 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
427 427
428 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackSuccessInstallSource", 428 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackSuccessInstallSource",
429 install_source(), Manifest::NUM_LOCATIONS); 429 install_source(), Manifest::NUM_LOCATIONS);
430 430
431 431
432 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackSuccessInstallCause", 432 UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackSuccessInstallCause",
433 install_cause(), 433 install_cause(),
434 extension_misc::NUM_INSTALL_CAUSES); 434 extension_misc::NUM_INSTALL_CAUSES);
435 435
436 extension_ = extension; 436 extension_ = extension;
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 if (ExtensionPrefs::Get(profile())->AllowFileAccess(extension()->id())) 681 if (ExtensionPrefs::Get(profile())->AllowFileAccess(extension()->id()))
682 creation_flags_ |= Extension::ALLOW_FILE_ACCESS; 682 creation_flags_ |= Extension::ALLOW_FILE_ACCESS;
683 683
684 if (!installer_task_runner_->PostTask( 684 if (!installer_task_runner_->PostTask(
685 FROM_HERE, base::BindOnce(&CrxInstaller::CompleteInstall, this))) { 685 FROM_HERE, base::BindOnce(&CrxInstaller::CompleteInstall, this))) {
686 NOTREACHED(); 686 NOTREACHED();
687 } 687 }
688 } 688 }
689 689
690 void CrxInstaller::CompleteInstall() { 690 void CrxInstaller::CompleteInstall() {
691 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 691 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
692 692
693 if (current_version_.IsValid() && 693 if (current_version_.IsValid() &&
694 current_version_.CompareTo(*(extension()->version())) > 0) { 694 current_version_.CompareTo(*(extension()->version())) > 0) {
695 ReportFailureFromFileThread(CrxInstallError( 695 ReportFailureFromFileThread(CrxInstallError(
696 CrxInstallError::ERROR_DECLINED, 696 CrxInstallError::ERROR_DECLINED,
697 l10n_util::GetStringUTF16( 697 l10n_util::GetStringUTF16(
698 extension()->is_app() ? IDS_APP_CANT_DOWNGRADE_VERSION 698 extension()->is_app() ? IDS_APP_CANT_DOWNGRADE_VERSION
699 : IDS_EXTENSION_CANT_DOWNGRADE_VERSION))); 699 : IDS_EXTENSION_CANT_DOWNGRADE_VERSION)));
700 return; 700 return;
701 } 701 }
(...skipping 10 matching lines...) Expand all
712 assets_manager->InstallExtension( 712 assets_manager->InstallExtension(
713 extension(), 713 extension(),
714 unpacked_extension_root_, 714 unpacked_extension_root_,
715 install_directory_, 715 install_directory_,
716 profile(), 716 profile(),
717 base::Bind(&CrxInstaller::ReloadExtensionAfterInstall, this)); 717 base::Bind(&CrxInstaller::ReloadExtensionAfterInstall, this));
718 } 718 }
719 719
720 void CrxInstaller::ReloadExtensionAfterInstall( 720 void CrxInstaller::ReloadExtensionAfterInstall(
721 const base::FilePath& version_dir) { 721 const base::FilePath& version_dir) {
722 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 722 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
723 723
724 if (version_dir.empty()) { 724 if (version_dir.empty()) {
725 ReportFailureFromFileThread(CrxInstallError(l10n_util::GetStringUTF16( 725 ReportFailureFromFileThread(CrxInstallError(l10n_util::GetStringUTF16(
726 IDS_EXTENSION_MOVE_DIRECTORY_TO_PROFILE_FAILED))); 726 IDS_EXTENSION_MOVE_DIRECTORY_TO_PROFILE_FAILED)));
727 return; 727 return;
728 } 728 }
729 729
730 // This is lame, but we must reload the extension because absolute paths 730 // This is lame, but we must reload the extension because absolute paths
731 // inside the content scripts are established inside InitFromValue() and we 731 // inside the content scripts are established inside InitFromValue() and we
732 // just moved the extension. 732 // just moved the extension.
(...skipping 10 matching lines...) Expand all
743 743
744 if (extension()) { 744 if (extension()) {
745 ReportSuccessFromFileThread(); 745 ReportSuccessFromFileThread();
746 } else { 746 } else {
747 LOG(ERROR) << error << " " << extension_id << " " << download_url_; 747 LOG(ERROR) << error << " " << extension_id << " " << download_url_;
748 ReportFailureFromFileThread(CrxInstallError(base::UTF8ToUTF16(error))); 748 ReportFailureFromFileThread(CrxInstallError(base::UTF8ToUTF16(error)));
749 } 749 }
750 } 750 }
751 751
752 void CrxInstaller::ReportFailureFromFileThread(const CrxInstallError& error) { 752 void CrxInstaller::ReportFailureFromFileThread(const CrxInstallError& error) {
753 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 753 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
754 if (!BrowserThread::PostTask( 754 if (!BrowserThread::PostTask(
755 BrowserThread::UI, FROM_HERE, 755 BrowserThread::UI, FROM_HERE,
756 base::BindOnce(&CrxInstaller::ReportFailureFromUIThread, this, 756 base::BindOnce(&CrxInstaller::ReportFailureFromUIThread, this,
757 error))) { 757 error))) {
758 NOTREACHED(); 758 NOTREACHED();
759 } 759 }
760 } 760 }
761 761
762 void CrxInstaller::ReportFailureFromUIThread(const CrxInstallError& error) { 762 void CrxInstaller::ReportFailureFromUIThread(const CrxInstallError& error) {
763 DCHECK_CURRENTLY_ON(BrowserThread::UI); 763 DCHECK_CURRENTLY_ON(BrowserThread::UI);
(...skipping 19 matching lines...) Expand all
783 if (client_) 783 if (client_)
784 client_->OnInstallFailure(error); 784 client_->OnInstallFailure(error);
785 785
786 NotifyCrxInstallComplete(false); 786 NotifyCrxInstallComplete(false);
787 787
788 // Delete temporary files. 788 // Delete temporary files.
789 CleanupTempFiles(); 789 CleanupTempFiles();
790 } 790 }
791 791
792 void CrxInstaller::ReportSuccessFromFileThread() { 792 void CrxInstaller::ReportSuccessFromFileThread() {
793 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread()); 793 DCHECK(installer_task_runner_->RunsTasksInCurrentSequence());
794 794
795 // Tracking number of extensions installed by users 795 // Tracking number of extensions installed by users
796 if (install_cause() == extension_misc::INSTALL_CAUSE_USER_DOWNLOAD) 796 if (install_cause() == extension_misc::INSTALL_CAUSE_USER_DOWNLOAD)
797 UMA_HISTOGRAM_ENUMERATION("Extensions.ExtensionInstalled", 1, 2); 797 UMA_HISTOGRAM_ENUMERATION("Extensions.ExtensionInstalled", 1, 2);
798 798
799 if (!BrowserThread::PostTask( 799 if (!BrowserThread::PostTask(
800 BrowserThread::UI, FROM_HERE, 800 BrowserThread::UI, FROM_HERE,
801 base::BindOnce(&CrxInstaller::ReportSuccessFromUIThread, this))) 801 base::BindOnce(&CrxInstaller::ReportSuccessFromUIThread, this)))
802 NOTREACHED(); 802 NOTREACHED();
803 803
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 content::Details<const Extension>(success ? extension() : NULL)); 852 content::Details<const Extension>(success ? extension() : NULL));
853 853
854 InstallTrackerFactory::GetForBrowserContext(profile()) 854 InstallTrackerFactory::GetForBrowserContext(profile())
855 ->OnFinishCrxInstall(success ? extension()->id() : expected_id_, success); 855 ->OnFinishCrxInstall(success ? extension()->id() : expected_id_, success);
856 856
857 if (success) 857 if (success)
858 ConfirmReEnable(); 858 ConfirmReEnable();
859 } 859 }
860 860
861 void CrxInstaller::CleanupTempFiles() { 861 void CrxInstaller::CleanupTempFiles() {
862 if (!installer_task_runner_->RunsTasksOnCurrentThread()) { 862 if (!installer_task_runner_->RunsTasksInCurrentSequence()) {
863 if (!installer_task_runner_->PostTask( 863 if (!installer_task_runner_->PostTask(
864 FROM_HERE, base::BindOnce(&CrxInstaller::CleanupTempFiles, this))) { 864 FROM_HERE, base::BindOnce(&CrxInstaller::CleanupTempFiles, this))) {
865 NOTREACHED(); 865 NOTREACHED();
866 } 866 }
867 return; 867 return;
868 } 868 }
869 869
870 // Delete the temp directory and crx file as necessary. 870 // Delete the temp directory and crx file as necessary.
871 if (!temp_dir_.value().empty()) { 871 if (!temp_dir_.value().empty()) {
872 file_util::DeleteFile(temp_dir_, true); 872 file_util::DeleteFile(temp_dir_, true);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 ExtensionInstallPrompt::GetReEnablePromptTypeForExtension( 920 ExtensionInstallPrompt::GetReEnablePromptTypeForExtension(
921 service->profile(), extension()); 921 service->profile(), extension());
922 client_->ShowDialog(base::Bind(&CrxInstaller::OnInstallPromptDone, this), 922 client_->ShowDialog(base::Bind(&CrxInstaller::OnInstallPromptDone, this),
923 extension(), nullptr, 923 extension(), nullptr,
924 base::MakeUnique<ExtensionInstallPrompt::Prompt>(type), 924 base::MakeUnique<ExtensionInstallPrompt::Prompt>(type),
925 ExtensionInstallPrompt::GetDefaultShowDialogCallback()); 925 ExtensionInstallPrompt::GetDefaultShowDialogCallback());
926 } 926 }
927 } 927 }
928 928
929 } // namespace extensions 929 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/app_data_migrator.cc ('k') | chrome/browser/image_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698