summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-20 18:31:13 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-20 18:31:13 +0000
commitd7f8d808437dd643afee262fda7cebc381d71d63 (patch)
treec8be93f39579f92a1c8b418d17bea3860cbde271 /chrome
parent73f87c63acd7e192f43ec14a533ec23506062b97 (diff)
downloadchromium_src-d7f8d808437dd643afee262fda7cebc381d71d63.zip
chromium_src-d7f8d808437dd643afee262fda7cebc381d71d63.tar.gz
chromium_src-d7f8d808437dd643afee262fda7cebc381d71d63.tar.bz2
Extensions: guarantee removal of BROWSER_WINDOW_READY registration.
In unit tests, we were not removing the registration because we never get the BROWSER_WINDOW_READY notification. When a browser later gets allocated the same memory address, we hit a DCHECK in registrar_.Add(). This change should be safe because BROWSER_WINDOW_READY only gets called at most once per browser instance. BUG=none TEST=linux build bots stop flaking on this test Review URL: http://codereview.chromium.org/306009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29538 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/extensions/extension_browser_event_router.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/chrome/browser/extensions/extension_browser_event_router.cc b/chrome/browser/extensions/extension_browser_event_router.cc
index 9a0f14a..63ef0f7 100644
--- a/chrome/browser/extensions/extension_browser_event_router.cc
+++ b/chrome/browser/extensions/extension_browser_event_router.cc
@@ -129,9 +129,6 @@ void ExtensionBrowserEventRouter::OnBrowserAdded(const Browser* browser) {
void ExtensionBrowserEventRouter::OnBrowserWindowReady(const Browser* browser) {
ListValue args;
- registrar_.Remove(this, NotificationType::BROWSER_WINDOW_READY,
- Source<const Browser>(browser));
-
DictionaryValue* window_dictionary = ExtensionTabUtil::CreateWindowValue(
browser, false);
args.Append(window_dictionary);
@@ -146,6 +143,9 @@ void ExtensionBrowserEventRouter::OnBrowserRemoving(const Browser* browser) {
// Stop listening to TabStripModel events for this browser.
browser->tabstrip_model()->RemoveObserver(this);
+ registrar_.Remove(this, NotificationType::BROWSER_WINDOW_READY,
+ Source<const Browser>(browser));
+
DispatchSimpleBrowserEvent(browser->profile(),
ExtensionTabUtil::GetWindowId(browser),
events::kOnWindowRemoved);