[WinCairo][MiniBrowser][WebKit] REGRESSION(r235398): ASSERTION FAILED: !m_client.didReceiveTitleForFrame
https://bugs.webkit.org/show_bug.cgi?id=189336

Reviewed by Alex Christensen.

WKPageSetPageLoaderClient is deprecated. Replaced it with
WKPageSetPageNavigationClient.

* MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::WebKitBrowserWindow):
Call WKPageSetPageNavigationClient instead of WKPageSetPageLoaderClient.
(WebKitBrowserWindow::didFinishNavigation):
Copied from didReceiveTitleForFrame. Use WKPageCopyTitle to get the title.
(WebKitBrowserWindow::didCommitNavigation):
Copied from didCommitLoadForFrame. Use WKPageCopyCommittedURL to get the URL.
(WebKitBrowserWindow::didReceiveTitleForFrame): Deleted.
(WebKitBrowserWindow::didCommitLoadForFrame): Deleted.
* MiniBrowser/win/WebKitBrowserWindow.h: Renamed the class methods.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@235824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index b0f05d5..e79d95b 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,24 @@
+2018-09-07  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [WinCairo][MiniBrowser][WebKit] REGRESSION(r235398): ASSERTION FAILED: !m_client.didReceiveTitleForFrame
+        https://bugs.webkit.org/show_bug.cgi?id=189336
+
+        Reviewed by Alex Christensen.
+
+        WKPageSetPageLoaderClient is deprecated. Replaced it with
+        WKPageSetPageNavigationClient.
+
+        * MiniBrowser/win/WebKitBrowserWindow.cpp:
+        (WebKitBrowserWindow::WebKitBrowserWindow):
+        Call WKPageSetPageNavigationClient instead of WKPageSetPageLoaderClient.
+        (WebKitBrowserWindow::didFinishNavigation):
+        Copied from didReceiveTitleForFrame. Use WKPageCopyTitle to get the title.
+        (WebKitBrowserWindow::didCommitNavigation):
+        Copied from didCommitLoadForFrame. Use WKPageCopyCommittedURL to get the URL.
+        (WebKitBrowserWindow::didReceiveTitleForFrame): Deleted.
+        (WebKitBrowserWindow::didCommitLoadForFrame): Deleted.
+        * MiniBrowser/win/WebKitBrowserWindow.h: Renamed the class methods.
+
 2018-09-07  Daniel Bates  <dabates@apple.com>
 
         [iOS] uiController.typeCharacterUsingHardwareKeyboard("`", ...) dispatches DOM key events for ~
diff --git a/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp b/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
index e658a4e..01b62e1 100644
--- a/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
+++ b/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
@@ -91,10 +91,10 @@
     m_view = adoptWK(WKViewCreate(rect, conf.get(), mainWnd));
     auto page = WKViewGetPage(m_view.get());
 
-    WKPageLoaderClientV0 loadClient = {{ 0, this }};
-    loadClient.didReceiveTitleForFrame = didReceiveTitleForFrame;
-    loadClient.didCommitLoadForFrame = didCommitLoadForFrame;
-    WKPageSetPageLoaderClient(page, &loadClient.base);
+    WKPageNavigationClientV0 navigationClient = {{ 0, this }};
+    navigationClient.didFinishNavigation = didFinishNavigation;
+    navigationClient.didCommitNavigation = didCommitNavigation;
+    WKPageSetPageNavigationClient(page, &navigationClient.base);
 }
 
 HRESULT WebKitBrowserWindow::init()
@@ -213,22 +213,19 @@
     return *const_cast<WebKitBrowserWindow*>(static_cast<const WebKitBrowserWindow*>(clientInfo));
 }
 
-void WebKitBrowserWindow::didReceiveTitleForFrame(WKPageRef page, WKStringRef title, WKFrameRef frame, WKTypeRef userData, const void *clientInfo)
+void WebKitBrowserWindow::didFinishNavigation(WKPageRef page, WKNavigationRef navigation, WKTypeRef userData, const void* clientInfo)
 {
-    if (!WKFrameIsMainFrame(frame))
-        return;
-    std::wstring titleString = createString(title) + L" [WebKit]";
+    WKRetainPtr<WKStringRef> title = adoptWK(WKPageCopyTitle(page));
+    std::wstring titleString = createString(title.get()) + L" [WebKit]";
     auto& thisWindow = toWebKitBrowserWindow(clientInfo);
     SetWindowText(thisWindow.m_hMainWnd, titleString.c_str());
 }
 
-void WebKitBrowserWindow::didCommitLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo)
+void WebKitBrowserWindow::didCommitNavigation(WKPageRef page, WKNavigationRef navigation, WKTypeRef userData, const void* clientInfo)
 {
-    if (!WKFrameIsMainFrame(frame))
-        return;
     auto& thisWindow = toWebKitBrowserWindow(clientInfo);
 
-    WKRetainPtr<WKURLRef> wkurl = adoptWK(WKFrameCopyURL(frame));
+    WKRetainPtr<WKURLRef> wkurl = adoptWK(WKPageCopyCommittedURL(page));
     std::wstring urlString = createString(wkurl.get());
     SetWindowText(thisWindow.m_urlBarWnd, urlString.c_str());
 }
diff --git a/Tools/MiniBrowser/win/WebKitBrowserWindow.h b/Tools/MiniBrowser/win/WebKitBrowserWindow.h
index 1583d74..a7ac900 100644
--- a/Tools/MiniBrowser/win/WebKitBrowserWindow.h
+++ b/Tools/MiniBrowser/win/WebKitBrowserWindow.h
@@ -57,8 +57,8 @@
     void zoomIn() override;
     void zoomOut() override;
 
-    static void didReceiveTitleForFrame(WKPageRef, WKStringRef, WKFrameRef, WKTypeRef, const void *);
-    static void didCommitLoadForFrame(WKPageRef, WKFrameRef, WKTypeRef, const void *);
+    static void didFinishNavigation(WKPageRef, WKNavigationRef, WKTypeRef, const void*);
+    static void didCommitNavigation(WKPageRef, WKNavigationRef, WKTypeRef, const void*);
 
     WKRetainPtr<WKViewRef> m_view;
     HWND m_hMainWnd { nullptr };