Changeset 179786 in webkit
- Timestamp:
- Feb 7, 2015, 3:46:18 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 1 added
- 8 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/API/APIHistoryClient.h (added)
-
UIProcess/API/APINavigationClient.h (modified) (1 diff)
-
UIProcess/API/Cocoa/WKWebView.mm (modified) (4 diffs)
-
UIProcess/Cocoa/NavigationState.h (modified) (4 diffs)
-
UIProcess/Cocoa/NavigationState.mm (modified) (5 diffs)
-
UIProcess/WebPageProxy.cpp (modified) (6 diffs)
-
UIProcess/WebPageProxy.h (modified) (3 diffs)
-
WebKit2.xcodeproj/project.pbxproj (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r179782 r179786 1 2015-02-07 Tim Horton <timothy_horton@apple.com> 2 3 Add API::HistoryClient and split some things out of API::NavigationClient 4 https://bugs.webkit.org/show_bug.cgi?id=141264 5 6 Reviewed by Darin Adler. 7 8 * UIProcess/API/APIHistoryClient.h: Added. 9 (API::HistoryClient::~HistoryClient): 10 (API::HistoryClient::didNavigateWithNavigationData): 11 (API::HistoryClient::didPerformClientRedirect): 12 (API::HistoryClient::didPerformServerRedirect): 13 (API::HistoryClient::didUpdateHistoryTitle): 14 * UIProcess/API/APINavigationClient.h: 15 (API::NavigationClient::didNavigateWithNavigationData): Deleted. 16 (API::NavigationClient::didPerformClientRedirect): Deleted. 17 (API::NavigationClient::didPerformServerRedirect): Deleted. 18 (API::NavigationClient::didUpdateHistoryTitle): Deleted. 19 * UIProcess/Cocoa/NavigationState.h: 20 * UIProcess/Cocoa/NavigationState.mm: 21 (WebKit::NavigationState::createHistoryClient): 22 (WebKit::NavigationState::HistoryClient::HistoryClient): 23 (WebKit::NavigationState::HistoryClient::~HistoryClient): 24 (WebKit::NavigationState::HistoryClient::didNavigateWithNavigationData): 25 (WebKit::NavigationState::HistoryClient::didPerformClientRedirect): 26 (WebKit::NavigationState::HistoryClient::didPerformServerRedirect): 27 (WebKit::NavigationState::HistoryClient::didUpdateHistoryTitle): 28 (WebKit::NavigationState::NavigationClient::didNavigateWithNavigationData): Deleted. 29 (WebKit::NavigationState::NavigationClient::didPerformClientRedirect): Deleted. 30 (WebKit::NavigationState::NavigationClient::didPerformServerRedirect): Deleted. 31 (WebKit::NavigationState::NavigationClient::didUpdateHistoryTitle): Deleted. 32 * UIProcess/WebPageProxy.cpp: 33 (WebKit::WebPageProxy::setHistoryClient): 34 (WebKit::WebPageProxy::didNavigateWithNavigationData): 35 (WebKit::WebPageProxy::didPerformClientRedirect): 36 (WebKit::WebPageProxy::didPerformServerRedirect): 37 (WebKit::WebPageProxy::didUpdateHistoryTitle): 38 * UIProcess/WebPageProxy.h: 39 Add a API::HistoryClient and move the few things that belong on it out of API::NavigationClient. 40 Adjust accordingly in WebPageProxy and NavigationState. 41 42 * UIProcess/API/Cocoa/WKWebView.mm: 43 (-[WKWebView initWithFrame:configuration:]): 44 (-[WKWebView setNavigationDelegate:]): 45 (-[WKWebView setUIDelegate:]): 46 (-[WKWebView _setHistoryDelegate:]): 47 Lazily push the NavigationState/UIDelegate clients down to WebPageProxy upon 48 installation of a delegate, so that alternative (C SPI) delegate setters can 49 be separately created. 50 51 * WebKit2.xcodeproj/project.pbxproj: 52 1 53 2015-02-07 Antti Koivisto <antti@apple.com> 2 54 -
trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h
r179588 r179786 86 86 virtual PassRefPtr<Data> webCryptoMasterKey(WebKit::WebPageProxy&) { return nullptr; } 87 87 88 virtual void didNavigateWithNavigationData(WebKit::WebPageProxy&, const WebKit::WebNavigationDataStore&) { }89 virtual void didPerformClientRedirect(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&) { }90 virtual void didPerformServerRedirect(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&) { }91 virtual void didUpdateHistoryTitle(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&) { }92 93 88 #if USE(QUICK_LOOK) 94 89 virtual void didStartLoadForQuickLookDocumentInMainFrame(const WTF::String& fileName, const WTF::String& uti) { } -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r179752 r179786 358 358 359 359 _navigationState = std::make_unique<WebKit::NavigationState>(self); 360 _page->setNavigationClient(_navigationState->createNavigationClient());361 362 360 _uiDelegate = std::make_unique<WebKit::UIDelegate>(self); 363 _page->setUIClient(_uiDelegate->createUIClient());364 365 361 _page->setFindClient(std::make_unique<WebKit::FindClient>(self)); 366 362 _page->setDiagnosticLoggingClient(std::make_unique<WebKit::DiagnosticLoggingClient>(self)); … … 413 409 - (void)setNavigationDelegate:(id <WKNavigationDelegate>)navigationDelegate 414 410 { 411 _page->setNavigationClient(_navigationState->createNavigationClient()); 415 412 _navigationState->setNavigationDelegate(navigationDelegate); 416 413 } … … 423 420 - (void)setUIDelegate:(id<WKUIDelegate>)UIDelegate 424 421 { 422 _page->setUIClient(_uiDelegate->createUIClient()); 425 423 _uiDelegate->setDelegate(UIDelegate); 426 424 } … … 1668 1666 - (void)_setHistoryDelegate:(id <WKHistoryDelegatePrivate>)historyDelegate 1669 1667 { 1668 _page->setHistoryClient(_navigationState->createHistoryClient()); 1670 1669 _navigationState->setHistoryDelegate(historyDelegate); 1671 1670 } -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h
r179430 r179786 31 31 #if WK_API_ENABLED 32 32 33 #import "APIHistoryClient.h" 33 34 #import "APINavigationClient.h" 34 35 #import "PageLoadState.h" … … 58 59 59 60 std::unique_ptr<API::NavigationClient> createNavigationClient(); 61 std::unique_ptr<API::HistoryClient> createHistoryClient(); 60 62 61 63 RetainPtr<id <WKNavigationDelegate> > navigationDelegate(); … … 95 97 virtual PassRefPtr<API::Data> webCryptoMasterKey(WebPageProxy&) override; 96 98 97 virtual void didNavigateWithNavigationData(WebPageProxy&, const WebNavigationDataStore&) override;98 virtual void didPerformClientRedirect(WebPageProxy&, const WTF::String&, const WTF::String&) override;99 virtual void didPerformServerRedirect(WebPageProxy&, const WTF::String&, const WTF::String&) override;100 virtual void didUpdateHistoryTitle(WebPageProxy&, const WTF::String&, const WTF::String&) override;101 102 99 #if USE(QUICK_LOOK) 103 100 virtual void didStartLoadForQuickLookDocumentInMainFrame(const WTF::String& fileName, const WTF::String& uti) override; … … 108 105 virtual void decidePolicyForNavigationResponse(WebPageProxy&, API::NavigationResponse&, Ref<WebFramePolicyListenerProxy>&&, API::Object* userData) override; 109 106 107 NavigationState& m_navigationState; 108 }; 109 110 class HistoryClient final : public API::HistoryClient { 111 public: 112 explicit HistoryClient(NavigationState&); 113 ~HistoryClient(); 114 115 private: 116 virtual void didNavigateWithNavigationData(WebPageProxy&, const WebNavigationDataStore&) override; 117 virtual void didPerformClientRedirect(WebPageProxy&, const WTF::String&, const WTF::String&) override; 118 virtual void didPerformServerRedirect(WebPageProxy&, const WTF::String&, const WTF::String&) override; 119 virtual void didUpdateHistoryTitle(WebPageProxy&, const WTF::String&, const WTF::String&) override; 120 110 121 NavigationState& m_navigationState; 111 122 }; -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm
r179430 r179786 109 109 return std::make_unique<NavigationClient>(*this); 110 110 } 111 112 std::unique_ptr<API::HistoryClient> NavigationState::createHistoryClient() 113 { 114 return std::make_unique<HistoryClient>(*this); 115 } 111 116 112 117 RetainPtr<id <WKNavigationDelegate> > NavigationState::navigationDelegate() … … 635 640 636 641 // HistoryDelegatePrivate support 637 638 void NavigationState::NavigationClient::didNavigateWithNavigationData(WebKit::WebPageProxy&, const WebKit::WebNavigationDataStore& navigationDataStore) 642 643 NavigationState::HistoryClient::HistoryClient(NavigationState& navigationState) 644 : m_navigationState(navigationState) 645 { 646 } 647 648 NavigationState::HistoryClient::~HistoryClient() 649 { 650 } 651 652 void NavigationState::HistoryClient::didNavigateWithNavigationData(WebKit::WebPageProxy&, const WebKit::WebNavigationDataStore& navigationDataStore) 639 653 { 640 654 if (!m_navigationState.m_historyDelegateMethods.webViewDidNavigateWithNavigationData) … … 648 662 } 649 663 650 void NavigationState:: NavigationClient::didPerformClientRedirect(WebKit::WebPageProxy&, const WTF::String& sourceURL, const WTF::String& destinationURL)664 void NavigationState::HistoryClient::didPerformClientRedirect(WebKit::WebPageProxy&, const WTF::String& sourceURL, const WTF::String& destinationURL) 651 665 { 652 666 if (!m_navigationState.m_historyDelegateMethods.webViewDidPerformClientRedirectFromURLToURL) … … 660 674 } 661 675 662 void NavigationState:: NavigationClient::didPerformServerRedirect(WebKit::WebPageProxy&, const WTF::String& sourceURL, const WTF::String& destinationURL)676 void NavigationState::HistoryClient::didPerformServerRedirect(WebKit::WebPageProxy&, const WTF::String& sourceURL, const WTF::String& destinationURL) 663 677 { 664 678 if (!m_navigationState.m_historyDelegateMethods.webViewDidPerformServerRedirectFromURLToURL) … … 672 686 } 673 687 674 void NavigationState:: NavigationClient::didUpdateHistoryTitle(WebKit::WebPageProxy&, const WTF::String& title, const WTF::String& url)688 void NavigationState::HistoryClient::didUpdateHistoryTitle(WebKit::WebPageProxy&, const WTF::String& title, const WTF::String& url) 675 689 { 676 690 if (!m_navigationState.m_historyDelegateMethods.webViewDidUpdateHistoryTitleForURL) -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r179588 r179786 34 34 #include "APIFrameInfo.h" 35 35 #include "APIGeometry.h" 36 #include "APIHistoryClient.h" 36 37 #include "APILegacyContextHistoryClient.h" 37 38 #include "APILoaderClient.h" … … 509 510 preferencesDidChange(); 510 511 } 512 513 void WebPageProxy::setHistoryClient(std::unique_ptr<API::HistoryClient> historyClient) 514 { 515 m_historyClient = WTF::move(historyClient); 516 } 511 517 512 518 void WebPageProxy::setNavigationClient(std::unique_ptr<API::NavigationClient> navigationClient) … … 3156 3162 MESSAGE_CHECK(frame->page() == this); 3157 3163 3158 if (m_ navigationClient) {3164 if (m_historyClient) { 3159 3165 if (frame->isMainFrame()) 3160 m_ navigationClient->didNavigateWithNavigationData(*this, store);3166 m_historyClient->didNavigateWithNavigationData(*this, store); 3161 3167 } else 3162 3168 m_loaderClient->didNavigateWithNavigationData(*this, store, *frame); … … 3176 3182 MESSAGE_CHECK_URL(destinationURLString); 3177 3183 3178 if (m_ navigationClient) {3184 if (m_historyClient) { 3179 3185 if (frame->isMainFrame()) 3180 m_ navigationClient->didPerformClientRedirect(*this, sourceURLString, destinationURLString);3186 m_historyClient->didPerformClientRedirect(*this, sourceURLString, destinationURLString); 3181 3187 } else 3182 3188 m_loaderClient->didPerformClientRedirect(*this, sourceURLString, destinationURLString, *frame); … … 3196 3202 MESSAGE_CHECK_URL(destinationURLString); 3197 3203 3198 if (m_ navigationClient) {3204 if (m_historyClient) { 3199 3205 if (frame->isMainFrame()) 3200 m_ navigationClient->didPerformServerRedirect(*this, sourceURLString, destinationURLString);3206 m_historyClient->didPerformServerRedirect(*this, sourceURLString, destinationURLString); 3201 3207 } else 3202 3208 m_loaderClient->didPerformServerRedirect(*this, sourceURLString, destinationURLString, *frame); … … 3212 3218 MESSAGE_CHECK_URL(url); 3213 3219 3214 if (m_ navigationClient) {3220 if (m_historyClient) { 3215 3221 if (frame->isMainFrame()) 3216 m_ navigationClient->didUpdateHistoryTitle(*this, title, url);3222 m_historyClient->didUpdateHistoryTitle(*this, title, url); 3217 3223 } else 3218 3224 m_loaderClient->didUpdateHistoryTitle(*this, title, url, *frame); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r179430 r179786 116 116 class FindClient; 117 117 class FormClient; 118 class HistoryClient; 118 119 class LoaderClient; 119 120 class Navigation; … … 317 318 void setFormClient(std::unique_ptr<API::FormClient>); 318 319 void setNavigationClient(std::unique_ptr<API::NavigationClient>); 320 void setHistoryClient(std::unique_ptr<API::HistoryClient>); 319 321 void setLoaderClient(std::unique_ptr<API::LoaderClient>); 320 322 void setPolicyClient(std::unique_ptr<API::PolicyClient>); … … 1375 1377 std::unique_ptr<API::PolicyClient> m_policyClient; 1376 1378 std::unique_ptr<API::NavigationClient> m_navigationClient; 1379 std::unique_ptr<API::HistoryClient> m_historyClient; 1377 1380 std::unique_ptr<API::FormClient> m_formClient; 1378 1381 std::unique_ptr<API::UIClient> m_uiClient; -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r179588 r179786 650 650 2DABA7721A817B1700EF0F1A /* WKPageRenderingProgressEventsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DABA7711A817B1700EF0F1A /* WKPageRenderingProgressEventsInternal.h */; }; 651 651 2DABA7741A817EE600EF0F1A /* WKPluginLoadPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DABA7731A817EE600EF0F1A /* WKPluginLoadPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; }; 652 2DABA7761A82B42100EF0F1A /* APIHistoryClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DABA7751A82B42100EF0F1A /* APIHistoryClient.h */; }; 652 653 2DACE64E18ADBFF000E4CA76 /* _WKThumbnailViewInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DACE64D18ADBFF000E4CA76 /* _WKThumbnailViewInternal.h */; }; 653 654 2DAF06D618BD1A470081CEB1 /* SmartMagnificationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DAF06D418BD1A470081CEB1 /* SmartMagnificationController.h */; }; … … 2772 2773 2DABA7711A817B1700EF0F1A /* WKPageRenderingProgressEventsInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPageRenderingProgressEventsInternal.h; sourceTree = "<group>"; }; 2773 2774 2DABA7731A817EE600EF0F1A /* WKPluginLoadPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPluginLoadPolicy.h; sourceTree = "<group>"; }; 2775 2DABA7751A82B42100EF0F1A /* APIHistoryClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIHistoryClient.h; sourceTree = "<group>"; }; 2774 2776 2DACE64D18ADBFF000E4CA76 /* _WKThumbnailViewInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKThumbnailViewInternal.h; sourceTree = "<group>"; }; 2775 2777 2DAF06D418BD1A470081CEB1 /* SmartMagnificationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmartMagnificationController.h; path = ios/SmartMagnificationController.h; sourceTree = "<group>"; }; … … 6185 6187 2DF9EEE31A781FB400B6CFBE /* APIFrameInfo.cpp */, 6186 6188 2DF9EEE41A781FB400B6CFBE /* APIFrameInfo.h */, 6189 2DABA7751A82B42100EF0F1A /* APIHistoryClient.h */, 6187 6190 7CE4D2061A46775700C7F152 /* APILegacyContextHistoryClient.h */, 6188 6191 1A2464F21891E45100234C5B /* APILoaderClient.h */, … … 7787 7790 296BD85D15019BC30071F424 /* StringUtilities.h in Headers */, 7788 7791 CE1A0BD61A48E6C60054EF74 /* TCCSPI.h in Headers */, 7792 2DABA7761A82B42100EF0F1A /* APIHistoryClient.h in Headers */, 7789 7793 1AA417CB12C00CCA002BE67B /* TextChecker.h in Headers */, 7790 7794 1QQ417CB12C00CCA002BE67B /* TextCheckerCompletion.h in Headers */,
Note:
See TracChangeset
for help on using the changeset viewer.