diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-15 00:41:08 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-15 00:41:08 +0000 |
commit | 97d2f1d24de99d6c19bf053fa7d3e61ede99e9c5 (patch) | |
tree | 3a9ff227566d1a7b3f03e6a50d7dbc264f4d64e5 /chrome/browser/extensions/extension_service.h | |
parent | 6e533fb9283cd326208b75fc3b46258c76f1aa18 (diff) | |
download | chromium_src-97d2f1d24de99d6c19bf053fa7d3e61ede99e9c5.zip chromium_src-97d2f1d24de99d6c19bf053fa7d3e61ede99e9c5.tar.gz chromium_src-97d2f1d24de99d6c19bf053fa7d3e61ede99e9c5.tar.bz2 |
Make ExtensionBrowserEventRouter owned by ExtensionService.
Before this change, it's a Singleton that gets passed a pointer to a Profile
during Init(), and holds onto that pointer even after the Profile gets
destroyed. With this change, it's owned by ExtensionService and is destroyed
when the profile is being destructed.
BUG=67927
TEST=On linux, run 'browser_tests --gtest_filter=ExtensionApiTest.BookmarkManager --gtest_repeat=100 --gtest_break_on_failure'. Before this CL, you'll occasionally get a failure because of the race condition described above.
Review URL: http://codereview.chromium.org/6125003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71526 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_service.h')
-rw-r--r-- | chrome/browser/extensions/extension_service.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h index 7849762..caa8f6a 100644 --- a/chrome/browser/extensions/extension_service.h +++ b/chrome/browser/extensions/extension_service.h @@ -34,6 +34,7 @@ #include "chrome/common/extensions/extension.h" #include "chrome/common/property_bag.h" +class ExtensionBrowserEventRouter; class ExtensionServiceBackend; class ExtensionToolbarModel; class ExtensionUpdater; @@ -395,6 +396,10 @@ class ExtensionService ExtensionMenuManager* menu_manager() { return &menu_manager_; } + ExtensionBrowserEventRouter* browser_event_router() { + return browser_event_router_.get(); + } + const std::map<GURL, int>& protected_storage_map() const { return protected_storage_map_; } @@ -608,6 +613,8 @@ class ExtensionService // Flag to make sure event routers are only initialized once. bool event_routers_initialized_; + scoped_ptr<ExtensionBrowserEventRouter> browser_event_router_; + // A collection of external extension providers. Each provider reads // a source of external extension information. Examples include the // windows registry and external_extensions.json. |