summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_service.h
diff options
context:
space:
mode:
authorasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-15 00:41:08 +0000
committerasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-15 00:41:08 +0000
commit97d2f1d24de99d6c19bf053fa7d3e61ede99e9c5 (patch)
tree3a9ff227566d1a7b3f03e6a50d7dbc264f4d64e5 /chrome/browser/extensions/extension_service.h
parent6e533fb9283cd326208b75fc3b46258c76f1aa18 (diff)
downloadchromium_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.h7
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.