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

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

Issue 23923010: Move Inspect[BackgroundPage|ExtensionHost] Out of ExtensionService (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 3 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/extension_service.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 #include <set> 9 #include <set>
10 10
(...skipping 11 matching lines...) Expand all
22 #include "base/strings/stringprintf.h" 22 #include "base/strings/stringprintf.h"
23 #include "base/strings/utf_string_conversions.h" 23 #include "base/strings/utf_string_conversions.h"
24 #include "base/threading/sequenced_worker_pool.h" 24 #include "base/threading/sequenced_worker_pool.h"
25 #include "base/threading/thread_restrictions.h" 25 #include "base/threading/thread_restrictions.h"
26 #include "base/time/time.h" 26 #include "base/time/time.h"
27 #include "base/values.h" 27 #include "base/values.h"
28 #include "base/version.h" 28 #include "base/version.h"
29 #include "chrome/browser/app_mode/app_mode_utils.h" 29 #include "chrome/browser/app_mode/app_mode_utils.h"
30 #include "chrome/browser/browser_process.h" 30 #include "chrome/browser/browser_process.h"
31 #include "chrome/browser/chrome_notification_types.h" 31 #include "chrome/browser/chrome_notification_types.h"
32 #include "chrome/browser/devtools/devtools_window.h"
33 #include "chrome/browser/extensions/api/app_runtime/app_runtime_api.h" 32 #include "chrome/browser/extensions/api/app_runtime/app_runtime_api.h"
34 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" 33 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h"
35 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" 34 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
36 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" 35 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
37 #include "chrome/browser/extensions/api/runtime/runtime_api.h" 36 #include "chrome/browser/extensions/api/runtime/runtime_api.h"
38 #include "chrome/browser/extensions/api/storage/settings_frontend.h" 37 #include "chrome/browser/extensions/api/storage/settings_frontend.h"
39 #include "chrome/browser/extensions/app_sync_data.h" 38 #include "chrome/browser/extensions/app_sync_data.h"
40 #include "chrome/browser/extensions/browser_event_router.h" 39 #include "chrome/browser/extensions/browser_event_router.h"
41 #include "chrome/browser/extensions/component_loader.h" 40 #include "chrome/browser/extensions/component_loader.h"
42 #include "chrome/browser/extensions/crx_installer.h" 41 #include "chrome/browser/extensions/crx_installer.h"
43 #include "chrome/browser/extensions/data_deleter.h" 42 #include "chrome/browser/extensions/data_deleter.h"
44 #include "chrome/browser/extensions/extension_disabled_ui.h" 43 #include "chrome/browser/extensions/extension_disabled_ui.h"
45 #include "chrome/browser/extensions/extension_error_reporter.h" 44 #include "chrome/browser/extensions/extension_error_reporter.h"
46 #include "chrome/browser/extensions/extension_error_ui.h" 45 #include "chrome/browser/extensions/extension_error_ui.h"
47 #include "chrome/browser/extensions/extension_host.h" 46 #include "chrome/browser/extensions/extension_host.h"
48 #include "chrome/browser/extensions/extension_install_ui.h" 47 #include "chrome/browser/extensions/extension_install_ui.h"
49 #include "chrome/browser/extensions/extension_process_manager.h" 48 #include "chrome/browser/extensions/extension_process_manager.h"
50 #include "chrome/browser/extensions/extension_sorting.h" 49 #include "chrome/browser/extensions/extension_sorting.h"
51 #include "chrome/browser/extensions/extension_special_storage_policy.h" 50 #include "chrome/browser/extensions/extension_special_storage_policy.h"
52 #include "chrome/browser/extensions/extension_sync_data.h" 51 #include "chrome/browser/extensions/extension_sync_data.h"
53 #include "chrome/browser/extensions/extension_system.h" 52 #include "chrome/browser/extensions/extension_system.h"
54 #include "chrome/browser/extensions/external_install_ui.h" 53 #include "chrome/browser/extensions/external_install_ui.h"
55 #include "chrome/browser/extensions/external_provider_impl.h" 54 #include "chrome/browser/extensions/external_provider_impl.h"
56 #include "chrome/browser/extensions/external_provider_interface.h" 55 #include "chrome/browser/extensions/external_provider_interface.h"
57 #include "chrome/browser/extensions/installed_loader.h" 56 #include "chrome/browser/extensions/installed_loader.h"
58 #include "chrome/browser/extensions/lazy_background_task_queue.h"
59 #include "chrome/browser/extensions/management_policy.h" 57 #include "chrome/browser/extensions/management_policy.h"
60 #include "chrome/browser/extensions/pending_extension_manager.h" 58 #include "chrome/browser/extensions/pending_extension_manager.h"
61 #include "chrome/browser/extensions/permissions_updater.h" 59 #include "chrome/browser/extensions/permissions_updater.h"
62 #include "chrome/browser/extensions/unpacked_installer.h" 60 #include "chrome/browser/extensions/unpacked_installer.h"
63 #include "chrome/browser/extensions/update_observer.h" 61 #include "chrome/browser/extensions/update_observer.h"
64 #include "chrome/browser/extensions/updater/extension_updater.h" 62 #include "chrome/browser/extensions/updater/extension_updater.h"
65 #include "chrome/browser/profiles/profile.h" 63 #include "chrome/browser/profiles/profile.h"
66 #include "chrome/browser/profiles/profile_manager.h" 64 #include "chrome/browser/profiles/profile_manager.h"
67 #include "chrome/browser/ui/webui/favicon_source.h" 65 #include "chrome/browser/ui/webui/favicon_source.h"
68 #include "chrome/browser/ui/webui/ntp/thumbnail_source.h" 66 #include "chrome/browser/ui/webui/ntp/thumbnail_source.h"
(...skipping 2891 matching lines...) Expand 10 before | Expand all | Expand 10 after
2960 2958
2961 void ExtensionService::SetBackgroundPageReady(const Extension* extension) { 2959 void ExtensionService::SetBackgroundPageReady(const Extension* extension) {
2962 DCHECK(extensions::BackgroundInfo::HasBackgroundPage(extension)); 2960 DCHECK(extensions::BackgroundInfo::HasBackgroundPage(extension));
2963 extension_runtime_data_[extension->id()].background_page_ready = true; 2961 extension_runtime_data_[extension->id()].background_page_ready = true;
2964 content::NotificationService::current()->Notify( 2962 content::NotificationService::current()->Notify(
2965 chrome::NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY, 2963 chrome::NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY,
2966 content::Source<const Extension>(extension), 2964 content::Source<const Extension>(extension),
2967 content::NotificationService::NoDetails()); 2965 content::NotificationService::NoDetails());
2968 } 2966 }
2969 2967
2970 void ExtensionService::InspectBackgroundPage(const Extension* extension) {
2971 DCHECK(extension);
2972
2973 ExtensionProcessManager* pm = system_->process_manager();
2974 extensions::LazyBackgroundTaskQueue* queue =
2975 system_->lazy_background_task_queue();
2976
2977 extensions::ExtensionHost* host =
2978 pm->GetBackgroundHostForExtension(extension->id());
2979 if (host) {
2980 InspectExtensionHost(host);
2981 } else {
2982 queue->AddPendingTask(
2983 profile_, extension->id(),
2984 base::Bind(&ExtensionService::InspectExtensionHost,
2985 base::Unretained(this)));
2986 }
2987 }
2988
2989 bool ExtensionService::IsBeingUpgraded(const Extension* extension) const { 2968 bool ExtensionService::IsBeingUpgraded(const Extension* extension) const {
2990 ExtensionRuntimeDataMap::const_iterator it = 2969 ExtensionRuntimeDataMap::const_iterator it =
2991 extension_runtime_data_.find(extension->id()); 2970 extension_runtime_data_.find(extension->id());
2992 return it == extension_runtime_data_.end() ? false : 2971 return it == extension_runtime_data_.end() ? false :
2993 it->second.being_upgraded; 2972 it->second.being_upgraded;
2994 } 2973 }
2995 2974
2996 void ExtensionService::SetBeingUpgraded(const Extension* extension, 2975 void ExtensionService::SetBeingUpgraded(const Extension* extension,
2997 bool value) { 2976 bool value) {
2998 extension_runtime_data_[extension->id()].being_upgraded = value; 2977 extension_runtime_data_[extension->id()].being_upgraded = value;
(...skipping 17 matching lines...) Expand all
3016 extension_runtime_data_.find(extension->id()); 2995 extension_runtime_data_.find(extension->id());
3017 return it == extension_runtime_data_.end() ? false : 2996 return it == extension_runtime_data_.end() ? false :
3018 it->second.has_used_webrequest; 2997 it->second.has_used_webrequest;
3019 } 2998 }
3020 2999
3021 void ExtensionService::SetHasUsedWebRequest(const Extension* extension, 3000 void ExtensionService::SetHasUsedWebRequest(const Extension* extension,
3022 bool value) { 3001 bool value) {
3023 extension_runtime_data_[extension->id()].has_used_webrequest = value; 3002 extension_runtime_data_[extension->id()].has_used_webrequest = value;
3024 } 3003 }
3025 3004
3026 void ExtensionService::InspectExtensionHost(
3027 extensions::ExtensionHost* host) {
3028 if (host)
3029 DevToolsWindow::OpenDevToolsWindow(host->render_view_host());
3030 }
3031
3032 bool ExtensionService::ShouldEnableOnInstall(const Extension* extension) { 3005 bool ExtensionService::ShouldEnableOnInstall(const Extension* extension) {
3033 // Extensions installed by policy can't be disabled. So even if a previous 3006 // Extensions installed by policy can't be disabled. So even if a previous
3034 // installation disabled the extension, make sure it is now enabled. 3007 // installation disabled the extension, make sure it is now enabled.
3035 if (system_->management_policy()->MustRemainEnabled(extension, NULL)) 3008 if (system_->management_policy()->MustRemainEnabled(extension, NULL))
3036 return true; 3009 return true;
3037 3010
3038 if (extension_prefs_->IsExtensionDisabled(extension->id())) 3011 if (extension_prefs_->IsExtensionDisabled(extension->id()))
3039 return false; 3012 return false;
3040 3013
3041 if (FeatureSwitch::prompt_for_external_extensions()->IsEnabled()) { 3014 if (FeatureSwitch::prompt_for_external_extensions()->IsEnabled()) {
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
3182 } 3155 }
3183 3156
3184 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { 3157 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) {
3185 update_observers_.AddObserver(observer); 3158 update_observers_.AddObserver(observer);
3186 } 3159 }
3187 3160
3188 void ExtensionService::RemoveUpdateObserver( 3161 void ExtensionService::RemoveUpdateObserver(
3189 extensions::UpdateObserver* observer) { 3162 extensions::UpdateObserver* observer) {
3190 update_observers_.RemoveObserver(observer); 3163 update_observers_.RemoveObserver(observer);
3191 } 3164 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.h ('k') | chrome/browser/tab_contents/render_view_context_menu.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698