Title: [164768] trunk/Source/WebKit2
Revision
164768
Author
ander...@apple.com
Date
2014-02-26 18:08:15 -0800 (Wed, 26 Feb 2014)

Log Message

VisitedLinkProvider should know which pages it belongs to
https://bugs.webkit.org/show_bug.cgi?id=129410

Reviewed by Dan Bernstein.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::addPage):
(WebKit::VisitedLinkProvider::removePage):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (164767 => 164768)


--- trunk/Source/WebKit2/ChangeLog	2014-02-27 01:57:10 UTC (rev 164767)
+++ trunk/Source/WebKit2/ChangeLog	2014-02-27 02:08:15 UTC (rev 164768)
@@ -1,3 +1,19 @@
+2014-02-26  Anders Carlsson  <ander...@apple.com>
+
+        VisitedLinkProvider should know which pages it belongs to
+        https://bugs.webkit.org/show_bug.cgi?id=129410
+
+        Reviewed by Dan Bernstein.
+
+        * UIProcess/VisitedLinkProvider.cpp:
+        (WebKit::VisitedLinkProvider::~VisitedLinkProvider):
+        (WebKit::VisitedLinkProvider::addPage):
+        (WebKit::VisitedLinkProvider::removePage):
+        * UIProcess/VisitedLinkProvider.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        (WebKit::WebPageProxy::close):
+
 2014-02-26  Enrica Casucci  <enr...@apple.com>
 
         Build fix.

Modified: trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp (164767 => 164768)


--- trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp	2014-02-27 01:57:10 UTC (rev 164767)
+++ trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp	2014-02-27 02:08:15 UTC (rev 164768)
@@ -51,6 +51,7 @@
 
 VisitedLinkProvider::~VisitedLinkProvider()
 {
+    ASSERT(m_pages.isEmpty());
 }
 
 VisitedLinkProvider::VisitedLinkProvider()
@@ -61,6 +62,18 @@
 {
 }
 
+void VisitedLinkProvider::addPage(WebPageProxy& webPageProxy)
+{
+    ASSERT(!m_pages.contains(&webPageProxy));
+    m_pages.add(&webPageProxy);
+}
+
+void VisitedLinkProvider::removePage(WebPageProxy& webPageProxy)
+{
+    ASSERT(m_pages.contains(&webPageProxy));
+    m_pages.remove(&webPageProxy);
+}
+
 void VisitedLinkProvider::processDidFinishLaunching(WebProcessProxy* process)
 {
     m_processesWithoutVisitedLinkState.add(process);

Modified: trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h (164767 => 164768)


--- trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h	2014-02-27 01:57:10 UTC (rev 164767)
+++ trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h	2014-02-27 02:08:15 UTC (rev 164768)
@@ -36,6 +36,7 @@
 namespace WebKit {
 
 class WebContext;
+class WebPageProxy;
 class WebProcessProxy;
     
 class VisitedLinkProvider : public RefCounted<VisitedLinkProvider> {
@@ -45,6 +46,9 @@
 
     uint64_t identifier() const { return m_identifier; }
 
+    void addPage(WebPageProxy&);
+    void removePage(WebPageProxy&);
+
     void addVisitedLink(WebCore::LinkHash);
 
     void processDidFinishLaunching(WebProcessProxy*);
@@ -59,6 +63,7 @@
     HashSet<WebProcessProxy*> m_processesWithoutVisitedLinkState;
 
     uint64_t m_identifier;
+    HashSet<WebPageProxy*> m_pages;
 
     unsigned m_keyCount;
     unsigned m_tableSize;

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (164767 => 164768)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-02-27 01:57:10 UTC (rev 164767)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-02-27 02:08:15 UTC (rev 164768)
@@ -336,6 +336,8 @@
     , m_scrollPinningBehavior(DoNotPin)
     , m_navigationID(0)
 {
+    m_visitedLinkProvider->addPage(*this);
+
     updateViewState();
 
 #if HAVE(OUT_OF_PROCESS_LAYER_HOSTING)
@@ -589,6 +591,8 @@
 
     m_isClosed = true;
 
+    m_visitedLinkProvider->removePage(*this);
+
     m_backForwardList->pageClosed();
     m_pageClient.pageClosed();
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to