Changeset 168118 in webkit
- Timestamp:
- May 1, 2014 1:39:55 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r168117 r168118 1 2014-05-01 Anders Carlsson <andersca@apple.com> 2 3 WKWebView doesn't track visited links (for visited link coloring) 4 https://bugs.webkit.org/show_bug.cgi?id=132438 5 <rdar://problem/16704519> 6 7 Reviewed by Dan Bernstein. 8 9 * Shared/WebProcessCreationParameters.cpp: 10 (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): 11 (WebKit::WebProcessCreationParameters::encode): 12 (WebKit::WebProcessCreationParameters::decode): 13 * Shared/WebProcessCreationParameters.h: 14 * UIProcess/API/APIHistoryClient.h: 15 (API::HistoryClient::addsVisitedLinks): 16 (API::HistoryClient::shouldTrackVisitedLinks): Deleted. 17 * UIProcess/API/C/WKContext.cpp: 18 (WKContextSetHistoryClient): 19 * UIProcess/API/Cocoa/WKWebView.mm: 20 (-[WKWebView _addsVisitedLinks]): 21 (-[WKWebView _setAddsVisitedLinks:]): 22 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 23 * UIProcess/API/mac/WKView.mm: 24 (-[WKView initWithFrame:context:configuration:webView:]): 25 * UIProcess/Cocoa/HistoryClient.h: 26 * UIProcess/Cocoa/HistoryClient.mm: 27 (WebKit::HistoryClient::shouldTrackVisitedLinks): Deleted. 28 * UIProcess/VisitedLinkProvider.cpp: 29 (WebKit::VisitedLinkProvider::addVisitedLinkHashFromPage): 30 * UIProcess/VisitedLinkProvider.h: 31 * UIProcess/VisitedLinkProvider.messages.in: 32 * UIProcess/WebContext.cpp: 33 (WebKit::WebContext::setHistoryClient): 34 (WebKit::WebContext::createNewWebProcess): 35 * UIProcess/WebContext.h: 36 (WebKit::WebContext::processes): 37 * UIProcess/WebPageProxy.cpp: 38 (WebKit::WebPageProxy::WebPageProxy): 39 * UIProcess/WebPageProxy.h: 40 (WebKit::WebPageProxy::addsVisitedLinks): 41 (WebKit::WebPageProxy::setAddsVisitedLinks): 42 * WebProcess/WebPage/VisitedLinkTableController.cpp: 43 (WebKit::VisitedLinkTableController::addVisitedLink): 44 * WebProcess/WebProcess.cpp: 45 (WebKit::WebProcess::initializeWebProcess): 46 * WebProcess/WebProcess.h: 47 * WebProcess/WebProcess.messages.in: 48 1 49 2014-05-01 Benjamin Poulain <bpoulain@apple.com> 2 50 -
trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
r168074 r168118 33 33 34 34 WebProcessCreationParameters::WebProcessCreationParameters() 35 : shouldTrackVisitedLinks(false) 36 , shouldAlwaysUseComplexTextCodePath(false) 35 : shouldAlwaysUseComplexTextCodePath(false) 37 36 , shouldUseFontSmoothing(true) 38 37 , defaultRequestTimeoutInterval(INT_MAX) … … 94 93 #endif 95 94 encoder.encodeEnum(cacheModel); 96 encoder << shouldTrackVisitedLinks;97 95 encoder << shouldAlwaysUseComplexTextCodePath; 98 96 encoder << shouldUseFontSmoothing; … … 207 205 if (!decoder.decodeEnum(parameters.cacheModel)) 208 206 return false; 209 if (!decoder.decode(parameters.shouldTrackVisitedLinks))210 return false;211 207 if (!decoder.decode(parameters.shouldAlwaysUseComplexTextCodePath)) 212 208 return false; -
trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h
r168074 r168118 101 101 102 102 CacheModel cacheModel; 103 bool shouldTrackVisitedLinks;104 103 105 104 bool shouldAlwaysUseComplexTextCodePath; -
trunk/Source/WebKit2/UIProcess/API/APIHistoryClient.h
r166914 r168118 47 47 virtual void didUpdateHistoryTitle(WebKit::WebContext*, WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*) { } 48 48 virtual void populateVisitedLinks(WebKit::WebContext*) { } 49 virtual bool shouldTrackVisitedLinks() const { return false; } 49 50 // FIXME: This is only used by the legacy SPI. We should add an API::Context object that 51 // can hold these things so we won't have to get it through API::HistoryClient. 52 virtual bool addsVisitedLinks() const { return false; } 50 53 }; 51 54 -
trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp
r167488 r168118 147 147 } 148 148 149 virtual bool shouldTrackVisitedLinks() const149 virtual bool addsVisitedLinks() const override 150 150 { 151 151 return m_client.populateVisitedLinks; 152 152 } 153 153 }; 154 155 toImpl(contextRef)->setHistoryClient(std::make_unique<HistoryClient>(wkClient)); 154 155 WebKit::WebContext& context = *toImpl(contextRef); 156 context.setHistoryClient(std::make_unique<HistoryClient>(wkClient)); 157 158 bool addsVisitedLinks = context.historyClient().addsVisitedLinks(); 159 160 for (auto& process : context.processes()) { 161 for (auto& page : process->pages()) 162 page->setAddsVisitedLinks(addsVisitedLinks); 163 } 156 164 } 157 165 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r168080 r168118 94 94 95 95 WebKit::WeakObjCPtr<id <_WKFormDelegate>> _formDelegate; 96 97 96 #if PLATFORM(IOS) 98 97 RetainPtr<WKScrollView> _scrollView; … … 1005 1004 _page->setAllowsRemoteInspection(allow); 1006 1005 #endif 1006 } 1007 1008 - (BOOL)_addsVisitedLinks 1009 { 1010 return _page->addsVisitedLinks(); 1011 } 1012 1013 - (void)_setAddsVisitedLinks:(BOOL)addsVisitedLinks 1014 { 1015 _page->setAddsVisitedLinks(addsVisitedLinks); 1007 1016 } 1008 1017 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h
r168063 r168118 91 91 @property (nonatomic, setter=_setAllowsRemoteInspection:) BOOL _allowsRemoteInspection; 92 92 93 @property (nonatomic, setter=_setAddsVisitedLinks:) BOOL _addsVisitedLinks; 94 93 95 - (void)_close; 94 96 -
trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm
r167905 r168118 34 34 #endif 35 35 36 #import "APIHistoryClient.h" 36 37 #import "AttributedString.h" 37 38 #import "ColorSpaceData.h" … … 3408 3409 _data->_pageClient = std::make_unique<PageClientImpl>(self, webView); 3409 3410 _data->_page = context.createWebPage(*_data->_pageClient, std::move(webPageConfiguration)); 3411 _data->_page->setAddsVisitedLinks(context.historyClient().addsVisitedLinks()); 3412 3410 3413 _data->_page->setIntrinsicDeviceScaleFactor([self _intrinsicDeviceScaleFactor]); 3411 3414 _data->_page->initializeWebPage(); -
trunk/Source/WebKit2/UIProcess/Cocoa/HistoryClient.h
r164258 r168118 47 47 virtual void didUpdateHistoryTitle(WebContext*, WebPageProxy*, const WTF::String& title, const WTF::String& url, WebFrameProxy*) override; 48 48 virtual void populateVisitedLinks(WebContext*) override; 49 virtual bool shouldTrackVisitedLinks() const override;50 49 }; 51 50 -
trunk/Source/WebKit2/UIProcess/Cocoa/HistoryClient.mm
r165604 r168118 87 87 } 88 88 89 bool HistoryClient::shouldTrackVisitedLinks() const90 {91 return false;92 }93 94 89 } // namespace webKit 95 90 -
trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp
r165639 r168118 98 98 } 99 99 100 void VisitedLinkProvider::addVisitedLinkHashFromPage(uint64_t pageID, LinkHash linkHash) 101 { 102 if (WebPageProxy* webPageProxy = WebProcessProxy::webPage(pageID)) { 103 if (!webPageProxy->addsVisitedLinks()) 104 return; 105 } 106 107 addVisitedLinkHash(linkHash); 108 } 109 100 110 static unsigned nextPowerOf2(unsigned v) 101 111 { -
trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h
r165619 r168118 60 60 virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override; 61 61 62 void addVisitedLinkHashFromPage(uint64_t pageID, WebCore::LinkHash); 63 62 64 void pendingVisitedLinksTimerFired(); 63 65 -
trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.messages.in
r165619 r168118 22 22 23 23 messages -> VisitedLinkProvider { 24 AddVisitedLinkHash (uint64_t linkHash)24 AddVisitedLinkHashFromPage(uint64_t pageID, uint64_t linkHash) 25 25 } -
trunk/Source/WebKit2/UIProcess/WebContext.cpp
r168074 r168118 282 282 else 283 283 m_historyClient = std::move(historyClient); 284 285 sendToAllProcesses(Messages::WebProcess::SetShouldTrackVisitedLinks(m_historyClient->shouldTrackVisitedLinks()));286 284 } 287 285 … … 579 577 parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession; 580 578 581 parameters.shouldTrackVisitedLinks = m_historyClient->shouldTrackVisitedLinks();582 579 parameters.cacheModel = m_cacheModel; 583 580 parameters.languages = userPreferredLanguages(); -
trunk/Source/WebKit2/UIProcess/WebContext.h
r168074 r168118 140 140 unsigned maximumNumberOfProcesses() const { return m_webProcessCountLimit; } 141 141 142 const Vector<RefPtr<WebProcessProxy>>& processes() const { return m_processes; } 143 142 144 // WebProcess or NetworkProcess as approporiate for current process model. The connection must be non-null. 143 145 IPC::Connection* networkingProcessConnection(); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r168038 r168118 314 314 , m_session(*configuration.session) 315 315 , m_isPageSuspended(false) 316 , m_addsVisitedLinks(true) 316 317 #if ENABLE(REMOTE_INSPECTOR) 317 318 , m_allowsRemoteInspection(true) -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r168038 r168118 460 460 WebBackForwardList& backForwardList() { return m_backForwardList.get(); } 461 461 462 bool addsVisitedLinks() const { return m_addsVisitedLinks; } 463 void setAddsVisitedLinks(bool addsVisitedLinks) { m_addsVisitedLinks = addsVisitedLinks; } 464 462 465 #if ENABLE(INSPECTOR) 463 466 WebInspectorProxy* inspector(); … … 1598 1601 1599 1602 bool m_isPageSuspended; 1603 bool m_addsVisitedLinks; 1600 1604 1601 1605 #if ENABLE(REMOTE_INSPECTOR) -
trunk/Source/WebKit2/WebProcess/WebPage/VisitedLinkTableController.cpp
r165619 r168118 29 29 #include "VisitedLinkProviderMessages.h" 30 30 #include "VisitedLinkTableControllerMessages.h" 31 #include "WebPage.h" 31 32 #include "WebProcess.h" 32 33 #include <WebCore/PageCache.h> … … 76 77 } 77 78 78 void VisitedLinkTableController::addVisitedLink(Page& , LinkHash linkHash)79 void VisitedLinkTableController::addVisitedLink(Page& page, LinkHash linkHash) 79 80 { 80 81 if (m_visitedLinkTable.isLinkVisited(linkHash)) … … 84 85 return; 85 86 86 WebProcess::shared().parentProcessConnection()->send(Messages::VisitedLinkProvider::AddVisitedLinkHash(linkHash), m_identifier); 87 WebPage* webPage = WebPage::fromCorePage(&page); 88 if (!webPage) 89 return; 90 91 WebProcess::shared().parentProcessConnection()->send(Messages::VisitedLinkProvider::AddVisitedLinkHashFromPage(webPage->pageID(), linkHash), m_identifier); 87 92 } 88 93 -
trunk/Source/WebKit2/WebProcess/WebProcess.cpp
r168074 r168118 297 297 cacheStorage().setCacheDirectory(parameters.applicationCacheDirectory); 298 298 299 setShouldTrackVisitedLinks(parameters.shouldTrackVisitedLinks);300 299 setCacheModel(static_cast<uint32_t>(parameters.cacheModel)); 301 300 -
trunk/Source/WebKit2/WebProcess/WebProcess.h
r168074 r168118 116 116 #endif 117 117 118 // FIXME: This is only used by the injected bundle for layout tests. 119 // WebKitTestRunner should just post a message to change whether visited links should be added. 118 120 bool shouldTrackVisitedLinks() const { return m_shouldTrackVisitedLinks; } 119 121 void setShouldTrackVisitedLinks(bool); -
trunk/Source/WebKit2/WebProcess/WebProcess.messages.in
r168074 r168118 29 29 30 30 # Global preferences. 31 SetShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)32 31 SetCacheModel(uint32_t cacheModel) 33 32 RegisterURLSchemeAsEmptyDocument(String scheme)
Note: See TracChangeset
for help on using the changeset viewer.