OLD | NEW |
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 19 matching lines...) Expand all Loading... |
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" | 32 #include "chrome/browser/devtools/devtools_window.h" |
33 #include "chrome/browser/extensions/api/app_runtime/app_runtime_api.h" | 33 #include "chrome/browser/extensions/api/app_runtime/app_runtime_api.h" |
34 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" | 34 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" |
35 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 35 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
36 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" | 36 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" |
37 #include "chrome/browser/extensions/api/runtime/runtime_api.h" | 37 #include "chrome/browser/extensions/api/runtime/runtime_api.h" |
38 #include "chrome/browser/extensions/api/storage/settings_frontend.h" | 38 #include "chrome/browser/extensions/api/storage/settings_frontend.h" |
39 #include "chrome/browser/extensions/app_sync_data.h" | 39 #include "chrome/browser/extensions/app_sync_data.h" |
40 #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" |
| 43 #include "chrome/browser/extensions/event_router.h" |
44 #include "chrome/browser/extensions/extension_disabled_ui.h" | 44 #include "chrome/browser/extensions/extension_disabled_ui.h" |
45 #include "chrome/browser/extensions/extension_error_reporter.h" | 45 #include "chrome/browser/extensions/extension_error_reporter.h" |
46 #include "chrome/browser/extensions/extension_error_ui.h" | 46 #include "chrome/browser/extensions/extension_error_ui.h" |
47 #include "chrome/browser/extensions/extension_host.h" | 47 #include "chrome/browser/extensions/extension_host.h" |
48 #include "chrome/browser/extensions/extension_install_ui.h" | 48 #include "chrome/browser/extensions/extension_install_ui.h" |
49 #include "chrome/browser/extensions/extension_process_manager.h" | 49 #include "chrome/browser/extensions/extension_process_manager.h" |
50 #include "chrome/browser/extensions/extension_sorting.h" | 50 #include "chrome/browser/extensions/extension_sorting.h" |
51 #include "chrome/browser/extensions/extension_special_storage_policy.h" | 51 #include "chrome/browser/extensions/extension_special_storage_policy.h" |
52 #include "chrome/browser/extensions/extension_sync_data.h" | 52 #include "chrome/browser/extensions/extension_sync_data.h" |
53 #include "chrome/browser/extensions/extension_system.h" | 53 #include "chrome/browser/extensions/extension_system.h" |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 blacklist_(blacklist), | 360 blacklist_(blacklist), |
361 settings_frontend_(extensions::SettingsFrontend::Create(profile)), | 361 settings_frontend_(extensions::SettingsFrontend::Create(profile)), |
362 pending_extension_manager_(*this), | 362 pending_extension_manager_(*this), |
363 install_directory_(install_directory), | 363 install_directory_(install_directory), |
364 extensions_enabled_(extensions_enabled), | 364 extensions_enabled_(extensions_enabled), |
365 show_extensions_prompts_(true), | 365 show_extensions_prompts_(true), |
366 install_updates_when_idle_(true), | 366 install_updates_when_idle_(true), |
367 ready_(ready), | 367 ready_(ready), |
368 toolbar_model_(this), | 368 toolbar_model_(this), |
369 menu_manager_(profile), | 369 menu_manager_(profile), |
370 event_routers_initialized_(false), | |
371 update_once_all_providers_are_ready_(false), | 370 update_once_all_providers_are_ready_(false), |
372 browser_terminating_(false), | 371 browser_terminating_(false), |
373 installs_delayed_for_gc_(false), | 372 installs_delayed_for_gc_(false), |
374 is_first_run_(false), | 373 is_first_run_(false), |
375 app_sync_bundle_(this), | 374 app_sync_bundle_(this), |
376 extension_sync_bundle_(this) { | 375 extension_sync_bundle_(this) { |
377 #if defined(OS_CHROMEOS) | 376 #if defined(OS_CHROMEOS) |
378 disable_garbage_collection_ = false; | 377 disable_garbage_collection_ = false; |
379 #endif | 378 #endif |
380 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 379 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 extensions::ExternalProviderInterface* provider = i->get(); | 493 extensions::ExternalProviderInterface* provider = i->get(); |
495 provider->ServiceShutdown(); | 494 provider->ServiceShutdown(); |
496 } | 495 } |
497 } | 496 } |
498 | 497 |
499 void ExtensionService::SetSyncStartFlare( | 498 void ExtensionService::SetSyncStartFlare( |
500 const syncer::SyncableService::StartSyncFlare& flare) { | 499 const syncer::SyncableService::StartSyncFlare& flare) { |
501 flare_ = flare; | 500 flare_ = flare; |
502 } | 501 } |
503 | 502 |
504 void ExtensionService::InitEventRouters() { | |
505 if (event_routers_initialized_) | |
506 return; | |
507 | |
508 #if defined(ENABLE_EXTENSIONS) | |
509 browser_event_router_.reset(new extensions::BrowserEventRouter(profile_)); | |
510 #endif // defined(ENABLE_EXTENSIONS) | |
511 event_routers_initialized_ = true; | |
512 } | |
513 | |
514 void ExtensionService::Shutdown() { | 503 void ExtensionService::Shutdown() { |
515 system_->management_policy()->UnregisterProvider( | 504 system_->management_policy()->UnregisterProvider( |
516 shared_module_policy_provider_.get()); | 505 shared_module_policy_provider_.get()); |
517 } | 506 } |
518 | 507 |
519 const Extension* ExtensionService::GetExtensionById( | 508 const Extension* ExtensionService::GetExtensionById( |
520 const std::string& id, bool include_disabled) const { | 509 const std::string& id, bool include_disabled) const { |
521 int include_mask = INCLUDE_ENABLED; | 510 int include_mask = INCLUDE_ENABLED; |
522 if (include_disabled) { | 511 if (include_disabled) { |
523 // Include blacklisted extensions here because there are hundreds of | 512 // Include blacklisted extensions here because there are hundreds of |
(...skipping 2658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3182 } | 3171 } |
3183 | 3172 |
3184 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { | 3173 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { |
3185 update_observers_.AddObserver(observer); | 3174 update_observers_.AddObserver(observer); |
3186 } | 3175 } |
3187 | 3176 |
3188 void ExtensionService::RemoveUpdateObserver( | 3177 void ExtensionService::RemoveUpdateObserver( |
3189 extensions::UpdateObserver* observer) { | 3178 extensions::UpdateObserver* observer) { |
3190 update_observers_.RemoveObserver(observer); | 3179 update_observers_.RemoveObserver(observer); |
3191 } | 3180 } |
OLD | NEW |