Changeset 199664 in webkit
- Timestamp:
- Apr 18, 2016 3:36:29 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r199663 r199664 1 2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 Pending API Request URL is wrong after reloading 4 https://bugs.webkit.org/show_bug.cgi?id=139342 5 6 Reviewed by Darin Adler. 7 8 It happens when reloading a web view loaded with anything but a 9 URL, because the bf list is not updated for those cases and 10 WebPageProxy::reload() is setting the current bf list item URL as 11 pending API request URL. This also causes that progress is 12 reported wrongly, because 13 WebPageProxy::decidePolicyForNavigationAction() resets the pending 14 API request URL when it's different than the requested URL. The 15 page load transaction causes the progress to be changed, reporting 16 1.0 (the previous one), but later something < 1.0 is reported 17 again by the progress tracker. 18 19 * UIProcess/WebPageProxy.cpp: 20 (WebKit::WebPageProxy::reload): Use the current active URL as 21 pending API request URL, falling back to the current bf list item 22 URL when empty. 23 1 24 2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com> 2 25 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r199663 r199664 1092 1092 SandboxExtension::Handle sandboxExtensionHandle; 1093 1093 1094 if (m_backForwardList->currentItem()) { 1095 String url = m_backForwardList->currentItem()->url(); 1094 String url = m_pageLoadState.activeURL(); 1095 if (url.isEmpty() && m_backForwardList->currentItem()) 1096 url = m_backForwardList->currentItem()->url(); 1097 1098 if (!url.isEmpty()) { 1096 1099 auto transaction = m_pageLoadState.transaction(); 1097 1100 m_pageLoadState.setPendingAPIRequestURL(transaction, url); -
trunk/Tools/ChangeLog
r199663 r199664 1 2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 Pending API Request URL is wrong after reloading 4 https://bugs.webkit.org/show_bug.cgi?id=139342 5 6 Reviewed by Darin Adler. 7 8 Update test case to check that the active URL should remain the 9 same after a reload. 10 11 * TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: 12 (TestWebKitAPI::TEST): 13 1 14 2016-04-18 Carlos Garcia Campos <cgarcia@igalia.com> 2 15 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp
r199663 r199664 35 35 namespace TestWebKitAPI { 36 36 37 static bool done; 38 37 39 TEST(WebKit2, PendingAPIRequestURL) 38 40 { 39 41 WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate()); 40 42 PlatformWebView webView(context.get()); 43 44 WKPageLoaderClientV0 loaderClient; 45 memset(&loaderClient, 0, sizeof(loaderClient)); 46 loaderClient.base.version = 0; 47 loaderClient.didFinishLoadForFrame = [](WKPageRef, WKFrameRef, WKTypeRef, const void*) { done = true; }; 48 WKPageSetPageLoaderClient(webView.page(), &loaderClient.base); 41 49 42 50 WKRetainPtr<WKURLRef> activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); … … 48 56 ASSERT_NOT_NULL(activeURL.get()); 49 57 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 50 WKPageStopLoading(webView.page()); 58 Util::run(&done); 59 done = false; 60 61 WKPageReload(webView.page()); 62 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 63 ASSERT_NOT_NULL(activeURL.get()); 64 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 65 Util::run(&done); 66 done = false; 51 67 52 68 WKRetainPtr<WKStringRef> htmlString = Util::toWK("<body>Hello, World</body>"); … … 56 72 ASSERT_NOT_NULL(activeURL.get()); 57 73 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), blankURL.get())); 58 WKPageStopLoading(webView.page()); 74 Util::run(&done); 75 done = false; 59 76 60 url = adoptWK(WKURLCreateWithUTF8CString("http://www.webkit.org")); 77 WKPageReload(webView.page()); 78 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 79 ASSERT_NOT_NULL(activeURL.get()); 80 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), blankURL.get())); 81 Util::run(&done); 82 done = false; 83 84 url = adoptWK(Util::createURLForResource("simple2", "html")); 61 85 WKPageLoadHTMLString(webView.page(), htmlString.get(), url.get()); 62 86 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 63 87 ASSERT_NOT_NULL(activeURL.get()); 64 88 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 65 WKPageStopLoading(webView.page()); 89 Util::run(&done); 90 done = false; 91 92 WKPageReload(webView.page()); 93 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 94 ASSERT_NOT_NULL(activeURL.get()); 95 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 96 Util::run(&done); 97 done = false; 66 98 67 99 WKRetainPtr<WKDataRef> data = adoptWK(WKDataCreate(nullptr, 0)); … … 70 102 ASSERT_NOT_NULL(activeURL.get()); 71 103 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), blankURL.get())); 72 WKPageStopLoading(webView.page()); 104 Util::run(&done); 105 done = false; 106 107 WKPageReload(webView.page()); 108 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 109 ASSERT_NOT_NULL(activeURL.get()); 110 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), blankURL.get())); 111 Util::run(&done); 112 done = false; 73 113 74 114 WKPageLoadData(webView.page(), data.get(), nullptr, nullptr, url.get()); … … 76 116 ASSERT_NOT_NULL(activeURL.get()); 77 117 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 78 WKPageStopLoading(webView.page()); 118 Util::run(&done); 119 done = false; 120 121 WKPageReload(webView.page()); 122 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 123 ASSERT_NOT_NULL(activeURL.get()); 124 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 125 Util::run(&done); 126 done = false; 79 127 80 128 WKPageLoadAlternateHTMLString(webView.page(), htmlString.get(), nullptr, url.get()); … … 82 130 ASSERT_NOT_NULL(activeURL.get()); 83 131 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 84 WKPageStopLoading(webView.page()); 132 Util::run(&done); 133 done = false; 134 135 WKPageReload(webView.page()); 136 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 137 ASSERT_NOT_NULL(activeURL.get()); 138 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), url.get())); 139 Util::run(&done); 140 done = false; 85 141 86 142 WKRetainPtr<WKStringRef> plainTextString = Util::toWK("Hello, World"); … … 89 145 ASSERT_NOT_NULL(activeURL.get()); 90 146 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), blankURL.get())); 91 WKPageStopLoading(webView.page()); 147 Util::run(&done); 148 done = false; 149 150 WKPageReload(webView.page()); 151 activeURL = adoptWK(WKPageCopyActiveURL(webView.page())); 152 ASSERT_NOT_NULL(activeURL.get()); 153 EXPECT_TRUE(WKURLIsEqual(activeURL.get(), blankURL.get())); 154 Util::run(&done); 155 done = false; 92 156 93 157 url = adoptWK(WKURLCreateWithUTF8CString("file:///tmp/index.html"));
Note: See TracChangeset
for help on using the changeset viewer.