Chromium Code Reviews| 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()); |
|
joth
2012/12/29 18:32:06
slightly confusing that we register for all browse
boliu
2012/12/30 02:08:15
That would be my guess. I don't want to change exi
|
| 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: { |