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

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

Issue 236213002: Move most of extension_file_util.cc into extensions/common/file_util.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase (file-util) Created 6 years, 8 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 | Annotate | Revision Log
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 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 18 matching lines...) Expand all
29 #include "chrome/browser/extensions/extension_install_ui.h" 29 #include "chrome/browser/extensions/extension_install_ui.h"
30 #include "chrome/browser/extensions/extension_service.h" 30 #include "chrome/browser/extensions/extension_service.h"
31 #include "chrome/browser/extensions/install_tracker.h" 31 #include "chrome/browser/extensions/install_tracker.h"
32 #include "chrome/browser/extensions/install_tracker_factory.h" 32 #include "chrome/browser/extensions/install_tracker_factory.h"
33 #include "chrome/browser/extensions/permissions_updater.h" 33 #include "chrome/browser/extensions/permissions_updater.h"
34 #include "chrome/browser/extensions/webstore_installer.h" 34 #include "chrome/browser/extensions/webstore_installer.h"
35 #include "chrome/browser/profiles/profile.h" 35 #include "chrome/browser/profiles/profile.h"
36 #include "chrome/browser/web_applications/web_app.h" 36 #include "chrome/browser/web_applications/web_app.h"
37 #include "chrome/common/chrome_paths.h" 37 #include "chrome/common/chrome_paths.h"
38 #include "chrome/common/extensions/extension_constants.h" 38 #include "chrome/common/extensions/extension_constants.h"
39 #include "chrome/common/extensions/extension_file_util.h"
40 #include "chrome/common/extensions/manifest_url_handler.h" 39 #include "chrome/common/extensions/manifest_url_handler.h"
41 #include "content/public/browser/browser_thread.h" 40 #include "content/public/browser/browser_thread.h"
42 #include "content/public/browser/notification_service.h" 41 #include "content/public/browser/notification_service.h"
43 #include "content/public/browser/resource_dispatcher_host.h" 42 #include "content/public/browser/resource_dispatcher_host.h"
44 #include "content/public/browser/user_metrics.h" 43 #include "content/public/browser/user_metrics.h"
45 #include "extensions/browser/extension_system.h" 44 #include "extensions/browser/extension_system.h"
46 #include "extensions/common/extension_icon_set.h" 45 #include "extensions/common/extension_icon_set.h"
47 #include "extensions/common/feature_switch.h" 46 #include "extensions/common/feature_switch.h"
47 #include "extensions/common/file_util.h"
48 #include "extensions/common/manifest.h" 48 #include "extensions/common/manifest.h"
49 #include "extensions/common/manifest_handlers/kiosk_mode_info.h" 49 #include "extensions/common/manifest_handlers/kiosk_mode_info.h"
50 #include "extensions/common/manifest_handlers/shared_module_info.h" 50 #include "extensions/common/manifest_handlers/shared_module_info.h"
51 #include "extensions/common/permissions/permission_message_provider.h" 51 #include "extensions/common/permissions/permission_message_provider.h"
52 #include "extensions/common/permissions/permission_set.h" 52 #include "extensions/common/permissions/permission_set.h"
53 #include "extensions/common/permissions/permissions_data.h" 53 #include "extensions/common/permissions/permissions_data.h"
54 #include "extensions/common/user_script.h" 54 #include "extensions/common/user_script.h"
55 #include "grit/chromium_strings.h" 55 #include "grit/chromium_strings.h"
56 #include "grit/generated_resources.h" 56 #include "grit/generated_resources.h"
57 #include "grit/theme_resources.h" 57 #include "grit/theme_resources.h"
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 } 676 }
677 } 677 }
678 678
679 // See how long extension install paths are. This is important on 679 // See how long extension install paths are. This is important on
680 // windows, because file operations may fail if the path to a file 680 // windows, because file operations may fail if the path to a file
681 // exceeds a small constant. See crbug.com/69693 . 681 // exceeds a small constant. See crbug.com/69693 .
682 UMA_HISTOGRAM_CUSTOM_COUNTS( 682 UMA_HISTOGRAM_CUSTOM_COUNTS(
683 "Extensions.CrxInstallDirPathLength", 683 "Extensions.CrxInstallDirPathLength",
684 install_directory_.value().length(), 0, 500, 100); 684 install_directory_.value().length(), 0, 500, 100);
685 685
686 base::FilePath version_dir = extension_file_util::InstallExtension( 686 base::FilePath version_dir =
687 unpacked_extension_root_, 687 file_util::InstallExtension(unpacked_extension_root_,
688 extension()->id(), 688 extension()->id(),
689 extension()->VersionString(), 689 extension()->VersionString(),
690 install_directory_); 690 install_directory_);
691 if (version_dir.empty()) { 691 if (version_dir.empty()) {
692 ReportFailureFromFileThread( 692 ReportFailureFromFileThread(
693 CrxInstallerError( 693 CrxInstallerError(
694 l10n_util::GetStringUTF16( 694 l10n_util::GetStringUTF16(
695 IDS_EXTENSION_MOVE_DIRECTORY_TO_PROFILE_FAILED))); 695 IDS_EXTENSION_MOVE_DIRECTORY_TO_PROFILE_FAILED)));
696 return; 696 return;
697 } 697 }
698 698
699 // This is lame, but we must reload the extension because absolute paths 699 // This is lame, but we must reload the extension because absolute paths
700 // inside the content scripts are established inside InitFromValue() and we 700 // inside the content scripts are established inside InitFromValue() and we
701 // just moved the extension. 701 // just moved the extension.
702 // TODO(aa): All paths to resources inside extensions should be created 702 // TODO(aa): All paths to resources inside extensions should be created
703 // lazily and based on the Extension's root path at that moment. 703 // lazily and based on the Extension's root path at that moment.
704 // TODO(rdevlin.cronin): Continue removing std::string errors and replacing 704 // TODO(rdevlin.cronin): Continue removing std::string errors and replacing
705 // with base::string16 705 // with base::string16
706 std::string extension_id = extension()->id(); 706 std::string extension_id = extension()->id();
707 std::string error; 707 std::string error;
708 installer_.set_extension(extension_file_util::LoadExtension( 708 installer_.set_extension(
709 version_dir, 709 file_util::LoadExtension(
710 install_source_, 710 version_dir,
711 extension()->creation_flags() | Extension::REQUIRE_KEY, 711 install_source_,
712 &error).get()); 712 extension()->creation_flags() | Extension::REQUIRE_KEY,
713 &error).get());
713 714
714 if (extension()) { 715 if (extension()) {
715 ReportSuccessFromFileThread(); 716 ReportSuccessFromFileThread();
716 } else { 717 } else {
717 LOG(ERROR) << error << " " << extension_id << " " << download_url_; 718 LOG(ERROR) << error << " " << extension_id << " " << download_url_;
718 ReportFailureFromFileThread(CrxInstallerError(base::UTF8ToUTF16(error))); 719 ReportFailureFromFileThread(CrxInstallerError(base::UTF8ToUTF16(error)));
719 } 720 }
720 721
721 } 722 }
722 723
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 if (!installer_task_runner_->PostTask( 823 if (!installer_task_runner_->PostTask(
823 FROM_HERE, 824 FROM_HERE,
824 base::Bind(&CrxInstaller::CleanupTempFiles, this))) { 825 base::Bind(&CrxInstaller::CleanupTempFiles, this))) {
825 NOTREACHED(); 826 NOTREACHED();
826 } 827 }
827 return; 828 return;
828 } 829 }
829 830
830 // Delete the temp directory and crx file as necessary. 831 // Delete the temp directory and crx file as necessary.
831 if (!temp_dir_.value().empty()) { 832 if (!temp_dir_.value().empty()) {
832 extension_file_util::DeleteFile(temp_dir_, true); 833 file_util::DeleteFile(temp_dir_, true);
833 temp_dir_ = base::FilePath(); 834 temp_dir_ = base::FilePath();
834 } 835 }
835 836
836 if (delete_source_ && !source_file_.value().empty()) { 837 if (delete_source_ && !source_file_.value().empty()) {
837 extension_file_util::DeleteFile(source_file_, false); 838 file_util::DeleteFile(source_file_, false);
838 source_file_ = base::FilePath(); 839 source_file_ = base::FilePath();
839 } 840 }
840 } 841 }
841 842
842 void CrxInstaller::CheckUpdateFromSettingsPage() { 843 void CrxInstaller::CheckUpdateFromSettingsPage() {
843 DCHECK_CURRENTLY_ON(BrowserThread::UI); 844 DCHECK_CURRENTLY_ON(BrowserThread::UI);
844 845
845 ExtensionService* service = service_weak_.get(); 846 ExtensionService* service = service_weak_.get();
846 if (!service || service->browser_terminating()) 847 if (!service || service->browser_terminating())
847 return; 848 return;
(...skipping 26 matching lines...) Expand all
874 if (!prefs->DidExtensionEscalatePermissions(extension()->id())) 875 if (!prefs->DidExtensionEscalatePermissions(extension()->id()))
875 return; 876 return;
876 877
877 if (client_) { 878 if (client_) {
878 AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort(). 879 AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort().
879 client_->ConfirmReEnable(this, extension()); 880 client_->ConfirmReEnable(this, extension());
880 } 881 }
881 } 882 }
882 883
883 } // namespace extensions 884 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698