Index: chrome/browser/extensions/extension_bookmarks_module.cc |
diff --git a/chrome/browser/extensions/extension_bookmarks_module.cc b/chrome/browser/extensions/extension_bookmarks_module.cc |
index 2b6a154adc158bd7f715f2005c1ddd74e4ed2a4e..dce4b6f02ee1a1f370ec643469b3f0041d92cae9 100644 |
--- a/chrome/browser/extensions/extension_bookmarks_module.cc |
+++ b/chrome/browser/extensions/extension_bookmarks_module.cc |
@@ -79,7 +79,7 @@ void BookmarksFunction::Run() { |
if (!model->IsLoaded()) { |
// Bookmarks are not ready yet. We'll wait. |
registrar_.Add(this, chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED, |
- Source<Profile>(profile())); |
+ NotificationService::AllBrowserContextsAndSources()); |
AddRef(); // Balanced in Observe(). |
return; |
} |
@@ -113,8 +113,11 @@ bool BookmarksFunction::EditBookmarksEnabled() { |
void BookmarksFunction::Observe(int type, |
const NotificationSource& source, |
const NotificationDetails& details) { |
- DCHECK_EQ(chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED, type); |
- DCHECK_EQ(profile(), Source<Profile>(source).ptr()); |
+ DCHECK(type == chrome::NOTIFICATION_BOOKMARK_MODEL_LOADED); |
+ Profile* source_profile = Source<Profile>(source).ptr(); |
+ if (!source_profile || !source_profile->IsSameProfile(profile())) |
+ return; |
+ |
DCHECK(profile()->GetBookmarkModel()->IsLoaded()); |
Run(); |
Release(); // Balanced in Run(). |