Index: chrome/browser/visitedlink/visitedlink_event_listener.cc |
diff --git a/chrome/browser/visitedlink/visitedlink_event_listener.cc b/chrome/browser/visitedlink/visitedlink_event_listener.cc |
index 423ebc1bcd21135eabc7778c4fb6232b2e12f21e..685c3348e0a1d2deecacccc7d896adf3f6da2789 100644 |
--- a/chrome/browser/visitedlink/visitedlink_event_listener.cc |
+++ b/chrome/browser/visitedlink/visitedlink_event_listener.cc |
@@ -5,8 +5,7 @@ |
#include "chrome/browser/visitedlink/visitedlink_event_listener.h" |
#include "base/shared_memory.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/visitedlink/visitedlink_master_factory.h" |
+#include "chrome/browser/visitedlink/visitedlink_delegate.h" |
#include "chrome/common/render_messages.h" |
#include "content/public/browser/notification_service.h" |
#include "content/public/browser/notification_types.h" |
@@ -108,8 +107,11 @@ class VisitedLinkUpdater { |
VisitedLinkCommon::Fingerprints pending_; |
}; |
-VisitedLinkEventListener::VisitedLinkEventListener(Profile* profile) |
- : profile_(profile) { |
+VisitedLinkEventListener::VisitedLinkEventListener( |
+ VisitedLinkMaster* master, |
+ content::BrowserContext* browser_context) |
+ : master_(master), |
+ browser_context_(browser_context) { |
registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED, |
content::NotificationService::AllBrowserContextsAndSources()); |
registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
@@ -134,12 +136,8 @@ void VisitedLinkEventListener::NewTable(base::SharedMemory* table_memory) { |
content::RenderProcessHost::FromID(i->first); |
if (!process) |
continue; |
- Profile* profile = Profile::FromBrowserContext( |
- process->GetBrowserContext()); |
- VisitedLinkMaster* master = |
- VisitedLinkMasterFactory::GetForProfile(profile); |
- if (master && master->shared_memory() == table_memory) |
- i->second->SendVisitedLinkTable(table_memory); |
+ |
+ i->second->SendVisitedLinkTable(table_memory); |
} |
} |
@@ -181,22 +179,18 @@ void VisitedLinkEventListener::Observe( |
case content::NOTIFICATION_RENDERER_PROCESS_CREATED: { |
content::RenderProcessHost* process = |
content::Source<content::RenderProcessHost>(source).ptr(); |
- Profile* profile = |
- Profile::FromBrowserContext(process->GetBrowserContext()); |
- if (!profile_->IsSameProfile(profile)) |
+ if (!master_->GetDelegate()->AreEquivalentContexts( |
+ browser_context_, process->GetBrowserContext())) |
return; |
- updaters_[process->GetID()] = |
- make_linked_ptr(new VisitedLinkUpdater(process->GetID())); |
- // Initialize support for visited links. Send the renderer process its |
- // initial set of visited links. |
- VisitedLinkMaster* master = |
- VisitedLinkMasterFactory::GetForProfile(profile); |
- if (!master) |
+ // Happens on browser start up. |
+ if (!master_->shared_memory()) |
return; |
+ updaters_[process->GetID()] = |
+ make_linked_ptr(new VisitedLinkUpdater(process->GetID())); |
updaters_[process->GetID()]->SendVisitedLinkTable( |
- master->shared_memory()); |
+ master_->shared_memory()); |
break; |
} |
case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED: { |