[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andersca at apple.com
andersca at apple.com
Wed Dec 22 11:45:37 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 741ac2206d683c3fe6fa30553434452d24e095bb
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Aug 6 00:00:45 2010 +0000
Use the visited link provider for visited links
https://bugs.webkit.org/show_bug.cgi?id=43583
Reviewed by Sam Weinig.
WebCore:
Export Page::visitedStateChanged and Page::allvisitedStateChanged.
* WebCore.exp.in:
WebKit2:
* Shared/CoreIPCSupport/WebProcessMessageKinds.h:
(WebProcessMessage::):
Remove AddVisitedLink.
* Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
(WebProcessProxyMessage::):
Remove PopulateVisitedLinks and add AddVisitedLink.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::sharedProcessContext):
Initialize the main run loop before creating the context.
(WebKit::WebContext::sharedThreadContext):
Ditto.
(WebKit::WebContext::create):
Ditto.
(WebKit::WebContext::WebContext):
Initialize the visited link provider.
(WebKit::WebContext::processDidFinishLaunching):
Ask the visited link provider to populate visited links.
(WebKit::WebContext::addVisitedLink):
Ask the visited link provider to add the visited link.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::addVisitedLink):
Call WebContext::addVisitedLink.
(WebKit::WebProcessProxy::didReceiveMessage):
Handle AddVisitedLink.
(WebKit::WebProcessProxy::didFinishLaunching):
Call WebContext::processdidFinishLaunching.
* UIProcess/WebProcessProxy.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::populateVisitedLinks):
Don't send the WebProcessProxyMessage::PopulateVisitedLinks message.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::isLinkVisited):
Call WebProcess::isLinkVisited.
(WebKit::WebPlatformStrategies::addVisitedLink):
Call WebProcess::addVisitedLink.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setVisitedLinkTable):
Create a shared memory object and tell the visited link table about it.
(WebKit::WebProcess::visitedLinkStateChanged):
Go through the link hashes and call Page::visitedStateChanged.
(WebKit::WebProcess::allVisitedLinkStateChanged):
Call Page::allVisitedStateChanged.
(WebKit::WebProcess::isLinkVisited):
Call VisitedLinkTable::isLinkVisited.
(WebKit::WebProcess::addVisitedLink):
Inform the UI process about the added link.
(WebKit::WebProcess::didReceiveMessage):
Handle new messages.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 19a7356..0d99357 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-05 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Use the visited link provider for visited links
+ https://bugs.webkit.org/show_bug.cgi?id=43583
+
+ Export Page::visitedStateChanged and Page::allvisitedStateChanged.
+
+ * WebCore.exp.in:
+
2010-08-05 Eric Seidel <eric at webkit.org>
Reviewed by Nikolas Zimmermann.
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index c07a5b8..828510a 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -558,6 +558,8 @@ __ZN7WebCore4Page16setCanStartMediaEb
__ZN7WebCore4Page16setDefersLoadingEb
__ZN7WebCore4Page17willMoveOffscreenEv
__ZN7WebCore4Page18removeSchedulePairEN3WTF10PassRefPtrINS_12SchedulePairEEE
+__ZN7WebCore4Page19visitedStateChangedEPNS_9PageGroupEy
+__ZN7WebCore4Page22allVisitedStateChangedEPNS_9PageGroupE
__ZN7WebCore4Page23clearUndoRedoOperationsEv
__ZN7WebCore4Page27setJavaScriptURLsAreAllowedEb
__ZN7WebCore4Page31setCustomHTMLTokenizerChunkSizeEi
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 3d5ba82..b79d260 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,78 @@
+2010-08-05 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Use the visited link provider for visited links
+ https://bugs.webkit.org/show_bug.cgi?id=43583
+
+ * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
+ (WebProcessMessage::):
+ Remove AddVisitedLink.
+
+ * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
+ (WebProcessProxyMessage::):
+ Remove PopulateVisitedLinks and add AddVisitedLink.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::sharedProcessContext):
+ Initialize the main run loop before creating the context.
+
+ (WebKit::WebContext::sharedThreadContext):
+ Ditto.
+
+ (WebKit::WebContext::create):
+ Ditto.
+
+ (WebKit::WebContext::WebContext):
+ Initialize the visited link provider.
+
+ (WebKit::WebContext::processDidFinishLaunching):
+ Ask the visited link provider to populate visited links.
+
+ (WebKit::WebContext::addVisitedLink):
+ Ask the visited link provider to add the visited link.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::addVisitedLink):
+ Call WebContext::addVisitedLink.
+
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ Handle AddVisitedLink.
+
+ (WebKit::WebProcessProxy::didFinishLaunching):
+ Call WebContext::processdidFinishLaunching.
+
+ * UIProcess/WebProcessProxy.h:
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::populateVisitedLinks):
+ Don't send the WebProcessProxyMessage::PopulateVisitedLinks message.
+
+ * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+ (WebKit::WebPlatformStrategies::isLinkVisited):
+ Call WebProcess::isLinkVisited.
+
+ (WebKit::WebPlatformStrategies::addVisitedLink):
+ Call WebProcess::addVisitedLink.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::setVisitedLinkTable):
+ Create a shared memory object and tell the visited link table about it.
+
+ (WebKit::WebProcess::visitedLinkStateChanged):
+ Go through the link hashes and call Page::visitedStateChanged.
+
+ (WebKit::WebProcess::allVisitedLinkStateChanged):
+ Call Page::allVisitedStateChanged.
+
+ (WebKit::WebProcess::isLinkVisited):
+ Call VisitedLinkTable::isLinkVisited.
+
+ (WebKit::WebProcess::addVisitedLink):
+ Inform the UI process about the added link.
+
+ (WebKit::WebProcess::didReceiveMessage):
+ Handle new messages.
+
2010-08-05 Steve Falkenburg <sfalken at apple.com>
Windows build fix.
diff --git a/WebKit2/Shared/CoreIPCSupport/WebProcessMessageKinds.h b/WebKit2/Shared/CoreIPCSupport/WebProcessMessageKinds.h
index c5a725c..4919c72 100644
--- a/WebKit2/Shared/CoreIPCSupport/WebProcessMessageKinds.h
+++ b/WebKit2/Shared/CoreIPCSupport/WebProcessMessageKinds.h
@@ -37,8 +37,6 @@ enum Kind {
VisitedLinkStateChanged,
AllVisitedLinkStateChanged,
- // FIXME: Remove AddVisitedLink.
- AddVisitedLink,
LoadInjectedBundle,
SetApplicationCacheDirectory,
SetShouldTrackVisitedLinks,
diff --git a/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h b/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h
index ddf9fde..f6863d7 100644
--- a/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h
+++ b/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h
@@ -34,13 +34,13 @@ namespace WebProcessProxyMessage {
enum Kind {
AddBackForwardItem,
+ AddVisitedLink,
DidNavigateWithNavigationData,
DidPerformClientRedirect,
DidPerformServerRedirect,
DidUpdateHistoryTitle,
GetPluginHostConnection,
- GetPlugins,
- PopulateVisitedLinks,
+ GetPlugins
};
}
diff --git a/WebKit2/UIProcess/WebContext.cpp b/WebKit2/UIProcess/WebContext.cpp
index fb23068..46b1eb9 100644
--- a/WebKit2/UIProcess/WebContext.cpp
+++ b/WebKit2/UIProcess/WebContext.cpp
@@ -174,19 +174,28 @@ static WTF::RefCountedLeakCounter webContextCounter("WebContext");
WebContext* WebContext::sharedProcessContext()
{
+ RunLoop::initializeMainRunLoop();
static WebContext* context = adoptRef(new WebContext(ProcessModelSharedSecondaryProcess, String())).leakRef();
return context;
}
WebContext* WebContext::sharedThreadContext()
{
+ RunLoop::initializeMainRunLoop();
static WebContext* context = adoptRef(new WebContext(ProcessModelSharedSecondaryThread, String())).leakRef();
return context;
}
+PassRefPtr<WebContext> WebContext::create(const String& injectedBundlePath)
+{
+ RunLoop::initializeMainRunLoop();
+ return adoptRef(new WebContext(ProcessModelSecondaryProcess, injectedBundlePath));
+}
+
WebContext::WebContext(ProcessModel processModel, const WebCore::String& injectedBundlePath)
: m_processModel(processModel)
, m_injectedBundlePath(injectedBundlePath)
+ , m_visitedLinkProvider(this)
{
RunLoop::initializeMainRunLoop();
@@ -236,6 +245,14 @@ void WebContext::ensureWebProcess()
m_process->send(WebProcessMessage::RegisterURLSchemeAsEmptyDocument, 0, CoreIPC::In(*it));
}
+void WebContext::processDidFinishLaunching(WebProcessProxy* process)
+{
+ // FIXME: Once we support multiple processes per context, this assertion won't hold.
+ ASSERT(process == m_process);
+
+ m_visitedLinkProvider.populateVisitedLinksIfNeeded();
+}
+
WebPageProxy* WebContext::createWebPage(WebPageNamespace* pageNamespace)
{
ensureWebProcess();
@@ -371,10 +388,15 @@ void WebContext::addVisitedLink(const String& visitedURL)
if (visitedURL.isEmpty())
return;
- WebCore::LinkHash hash = visitedLinkHash(visitedURL.characters(), visitedURL.length());
- m_process->send(WebProcessMessage::AddVisitedLink, 0, CoreIPC::In(hash));
+ LinkHash linkHash = visitedLinkHash(visitedURL.characters(), visitedURL.length());
+ addVisitedLink(linkHash);
}
+void WebContext::addVisitedLink(LinkHash linkHash)
+{
+ m_visitedLinkProvider.addVisitedLink(linkHash);
+}
+
void WebContext::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder& arguments)
{
switch (messageID.get<WebContextMessage::Kind>()) {
diff --git a/WebKit2/UIProcess/WebContext.h b/WebKit2/UIProcess/WebContext.h
index 0f87667..a6abe22 100644
--- a/WebKit2/UIProcess/WebContext.h
+++ b/WebKit2/UIProcess/WebContext.h
@@ -29,9 +29,11 @@
#include "APIObject.h"
#include "PluginInfoStore.h"
#include "ProcessModel.h"
+#include "VisitedLinkProvider.h"
#include "WebContextInjectedBundleClient.h"
#include "WebHistoryClient.h"
#include "WebProcessProxy.h"
+#include <WebCore/LinkHash.h>
#include <WebCore/PlatformString.h>
#include <WebCore/StringHash.h>
#include <wtf/Forward.h>
@@ -54,10 +56,7 @@ public:
static WebContext* sharedProcessContext();
static WebContext* sharedThreadContext();
- static PassRefPtr<WebContext> create(const WebCore::String& injectedBundlePath)
- {
- return adoptRef(new WebContext(ProcessModelSecondaryProcess, injectedBundlePath));
- }
+ static PassRefPtr<WebContext> create(const WebCore::String& injectedBundlePath);
~WebContext();
@@ -67,6 +66,8 @@ public:
ProcessModel processModel() const { return m_processModel; }
WebProcessProxy* process() const { return m_process.get(); }
+ void processDidFinishLaunching(WebProcessProxy*);
+
WebPageProxy* createWebPage(WebPageNamespace*);
void reviveIfNecessary();
@@ -101,6 +102,7 @@ public:
void registerURLSchemeAsEmptyDocument(const WebCore::String&);
void addVisitedLink(const WebCore::String&);
+ void addVisitedLink(WebCore::LinkHash);
void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder&);
@@ -126,7 +128,8 @@ private:
WebHistoryClient m_historyClient;
PluginInfoStore m_pluginInfoStore;
-
+ VisitedLinkProvider m_visitedLinkProvider;
+
HashSet<WebCore::String> m_schemesToRegisterAsEmptyDocument;
};
diff --git a/WebKit2/UIProcess/WebProcessProxy.cpp b/WebKit2/UIProcess/WebProcessProxy.cpp
index 63b534c..0c1fa30 100644
--- a/WebKit2/UIProcess/WebProcessProxy.cpp
+++ b/WebKit2/UIProcess/WebProcessProxy.cpp
@@ -216,6 +216,11 @@ void WebProcessProxy::addOrUpdateBackForwardListItem(uint64_t itemID, const Stri
result.first->second->setTitle(title);
}
+void WebProcessProxy::addVisitedLink(LinkHash linkHash)
+{
+ m_context->addVisitedLink(linkHash);
+}
+
void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
if (messageID.is<CoreIPC::MessageClassWebProcessProxy>()) {
@@ -231,6 +236,16 @@ void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC
return;
}
+ case WebProcessProxyMessage::AddVisitedLink: {
+ LinkHash linkHash;
+
+ if (!arguments->decode(CoreIPC::Out(linkHash)))
+ return;
+
+ addVisitedLink(linkHash);
+ return;
+ }
+
case WebProcessProxyMessage::DidNavigateWithNavigationData: {
uint64_t pageID;
WebNavigationDataStore store;
@@ -290,10 +305,6 @@ void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC
m_context->didUpdateHistoryTitle(page->webFrame(frameID), title, url);
break;
}
- case WebProcessProxyMessage::PopulateVisitedLinks: {
- m_context->populateVisitedLinks();
- break;
- }
// These are synchronous messages and should never be handled here.
case WebProcessProxyMessage::GetPlugins:
@@ -354,8 +365,8 @@ void WebProcessProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, Cor
case WebProcessProxyMessage::DidPerformClientRedirect:
case WebProcessProxyMessage::DidPerformServerRedirect:
case WebProcessProxyMessage::DidUpdateHistoryTitle:
- case WebProcessProxyMessage::PopulateVisitedLinks:
case WebProcessProxyMessage::AddBackForwardItem:
+ case WebProcessProxyMessage::AddVisitedLink:
ASSERT_NOT_REACHED();
break;
}
@@ -415,7 +426,10 @@ void WebProcessProxy::didFinishLaunching(ProcessLauncher*, const CoreIPC::Connec
m_connection->sendMessage(outgoingMessage.messageID(), adoptPtr(outgoingMessage.arguments()));
}
- m_pendingMessages.clear();
+ m_pendingMessages.clear();
+
+ // Tell the context that we finished launching.
+ m_context->processDidFinishLaunching(this);
}
} // namespace WebKit
diff --git a/WebKit2/UIProcess/WebProcessProxy.h b/WebKit2/UIProcess/WebProcessProxy.h
index 60bf9f8..6808b6f 100644
--- a/WebKit2/UIProcess/WebProcessProxy.h
+++ b/WebKit2/UIProcess/WebProcessProxy.h
@@ -33,6 +33,7 @@
#include "ProcessModel.h"
#include "ResponsivenessTimer.h"
#include "WebPageProxy.h"
+#include <WebCore/LinkHash.h>
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -100,6 +101,7 @@ private:
void getPluginHostConnection(const WebCore::String& mimeType, const WebCore::KURL& url, WebCore::String& pluginPath);
void addOrUpdateBackForwardListItem(uint64_t itemID, const WebCore::String& originalURLString, const WebCore::String& urlString, const WebCore::String& title);
+ void addVisitedLink(WebCore::LinkHash);
// CoreIPC::Connection::Client
void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
index b053b52..53b47c9 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
@@ -410,7 +410,6 @@ void WebChromeClient::dashboardRegionsChanged()
void WebChromeClient::populateVisitedLinks()
{
- WebProcess::shared().connection()->send(WebProcessProxyMessage::PopulateVisitedLinks, 0, CoreIPC::In());
}
FloatRect WebChromeClient::customHighlightRect(Node*, const AtomicString& type, const FloatRect& lineRect)
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp b/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
index 9494875..a1986af 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
@@ -812,16 +812,14 @@ String WebPlatformStrategies::validationMessageStepMismatchText()
}
// VisitedLinkStrategy
-bool WebPlatformStrategies::isLinkVisited(Page* page, LinkHash hash)
+bool WebPlatformStrategies::isLinkVisited(Page* page, LinkHash linkHash)
{
- // FIXME: Have WebKit2 manage its own visited links
- return page->group().isLinkVisited(hash);
+ return WebProcess::shared().isLinkVisited(linkHash);
}
-void WebPlatformStrategies::addVisitedLink(Page* page, LinkHash hash)
+void WebPlatformStrategies::addVisitedLink(Page* page, LinkHash linkHash)
{
- // FIXME: Have WebKit2 manage its own visited links
- return page->group().addVisitedLinkHash(hash);
+ WebProcess::shared().addVisitedLink(linkHash);
}
} // namespace WebKit
diff --git a/WebKit2/WebProcess/WebProcess.cpp b/WebKit2/WebProcess/WebProcess.cpp
index 841f988..dd9f633 100644
--- a/WebKit2/WebProcess/WebProcess.cpp
+++ b/WebKit2/WebProcess/WebProcess.cpp
@@ -33,8 +33,10 @@
#include "WebPage.h"
#include "WebPlatformStrategies.h"
#include "WebPreferencesStore.h"
+#include "WebProcessProxyMessageKinds.h"
#include "WebProcessMessageKinds.h"
#include <WebCore/ApplicationCacheStorage.h>
+#include <WebCore/Page.h>
#include <WebCore/PageGroup.h>
#include <WebCore/SchemeRegistry.h>
#include <wtf/PassRefPtr.h>
@@ -110,15 +112,42 @@ void WebProcess::registerURLSchemeAsEmptyDocument(const WebCore::String& urlSche
SchemeRegistry::registerURLSchemeAsEmptyDocument(urlScheme);
}
-void WebProcess::addVisitedLinkHash(WebCore::LinkHash hash)
+void WebProcess::setVisitedLinkTable(const SharedMemory::Handle& handle)
{
- PageGroup* group = PageGroup::pageGroup("WebKit2Group");
- ASSERT(group);
- if (!group) {
- printf("Cannot find PageGroup named 'WebKit2Group'\n");
+ RefPtr<SharedMemory> sharedMemory = SharedMemory::create(handle, SharedMemory::ReadOnly);
+ if (!sharedMemory)
return;
- }
- group->addVisitedLinkHash(hash);
+
+ m_visitedLinkTable.setSharedMemory(sharedMemory.release());
+}
+
+static PageGroup* webKit2PageGroup()
+{
+ return PageGroup::pageGroup("WebKit2Group");
+}
+
+void WebProcess::visitedLinkStateChanged(const Vector<WebCore::LinkHash>& linkHashes)
+{
+ for (size_t i = 0; i < linkHashes.size(); ++i)
+ Page::visitedStateChanged(webKit2PageGroup(), linkHashes[i]);
+}
+
+void WebProcess::allVisitedLinkStateChanged()
+{
+ Page::allVisitedStateChanged(webKit2PageGroup());
+}
+
+bool WebProcess::isLinkVisited(LinkHash linkHash) const
+{
+ return m_visitedLinkTable.isLinkVisited(linkHash);
+}
+
+void WebProcess::addVisitedLink(WebCore::LinkHash linkHash)
+{
+ if (isLinkVisited(linkHash))
+ return;
+
+ m_connection->send(WebProcessProxyMessage::AddVisitedLink, 0, CoreIPC::In(linkHash));
}
WebPage* WebProcess::webPage(uint64_t pageID) const
@@ -177,20 +206,24 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes
{
if (messageID.is<CoreIPC::MessageClassWebProcess>()) {
switch (messageID.get<WebProcessMessage::Kind>()) {
- case WebProcessMessage::SetVisitedLinkTable:
- case WebProcessMessage::VisitedLinkStateChanged:
- case WebProcessMessage::AllVisitedLinkStateChanged:
- // FIXME: Implement.
- return;
-
- case WebProcessMessage::AddVisitedLink: {
- WebCore::LinkHash hash;
- if (!arguments->decode(CoreIPC::Out(hash)))
+ case WebProcessMessage::SetVisitedLinkTable: {
+ SharedMemory::Handle handle;
+ if (!arguments->decode(CoreIPC::Out(handle)))
return;
-
- addVisitedLinkHash(hash);
+
+ setVisitedLinkTable(handle);
return;
}
+ case WebProcessMessage::VisitedLinkStateChanged: {
+ Vector<LinkHash> linkHashes;
+ if (!arguments->decode(CoreIPC::Out(linkHashes)))
+ return;
+ visitedLinkStateChanged(linkHashes);
+ }
+ case WebProcessMessage::AllVisitedLinkStateChanged:
+ allVisitedLinkStateChanged();
+ return;
+
case WebProcessMessage::LoadInjectedBundle: {
String path;
diff --git a/WebKit2/WebProcess/WebProcess.h b/WebKit2/WebProcess/WebProcess.h
index 73bd29b..dfcb2ef 100644
--- a/WebKit2/WebProcess/WebProcess.h
+++ b/WebKit2/WebProcess/WebProcess.h
@@ -28,6 +28,8 @@
#include "Connection.h"
#include "DrawingArea.h"
+#include "SharedMemory.h"
+#include "VisitedLinkTable.h"
#include <WebCore/LinkHash.h>
#include <wtf/HashMap.h>
@@ -63,6 +65,9 @@ public:
mach_port_t compositingRenderServerPort() const { return m_compositingRenderServerPort; }
#endif
+ void addVisitedLink(WebCore::LinkHash);
+ bool isLinkVisited(WebCore::LinkHash) const;
+
private:
WebProcess();
void shutdown();
@@ -74,8 +79,11 @@ private:
#endif
void setApplicationCacheDirectory(const WebCore::String&);
void registerURLSchemeAsEmptyDocument(const WebCore::String&);
- void addVisitedLinkHash(WebCore::LinkHash);
+ void setVisitedLinkTable(const SharedMemory::Handle&);
+ void visitedLinkStateChanged(const Vector<WebCore::LinkHash>& linkHashes);
+ void allVisitedLinkStateChanged();
+
// CoreIPC::Connection::Client
void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, CoreIPC::ArgumentEncoder*);
@@ -89,6 +97,9 @@ private:
RunLoop* m_runLoop;
+ // FIXME: The visited link table should not be per process.
+ VisitedLinkTable m_visitedLinkTable;
+
#if USE(ACCELERATED_COMPOSITING) && PLATFORM(MAC)
mach_port_t m_compositingRenderServerPort;
#endif
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list