Changeset 94630 in webkit
- Timestamp:
- Sep 6, 2011 8:00:55 PM (13 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r94613 r94630 1 2011-09-06 Ben Smith <binji@chromium.org> 2 3 [chromium] Fix WebFrameClient receiving isRedirect when reloading 4 https://bugs.webkit.org/show_bug.cgi?id=63591 5 6 Reviewed by Adam Barth. 7 8 Fix bug when quickly reloading a WebFrame where the 9 WebFrameClient would get called with decidePolicyForNavigation 10 isRedirect=true. 11 12 * src/FrameLoaderClientImpl.cpp: 13 (WebKit::FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction): 14 * src/WebDataSourceImpl.h: 15 (WebKit::WebDataSourceImpl::isRedirect): 16 * tests/WebFrameTest.cpp: 17 (WebKit::TestReloadDoesntRedirectWebFrameClient::decidePolicyForNavigation): 18 (WebKit::TestReloadDoesntRedirectWebFrameClient::cancelledError): 19 (WebKit::TEST_F): 20 1 21 2011-09-06 Ryosuke Niwa <rniwa@webkit.org> 2 22 -
trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
r94237 r94630 967 967 ASSERT(!url.protocolIs(backForwardNavigationScheme)); 968 968 969 bool isRedirect = ds-> hasRedirectChain();969 bool isRedirect = ds->isRedirect(); 970 970 971 971 WebNavigationType webnavType = -
trunk/Source/WebKit/chromium/src/WebDataSourceImpl.h
r84933 r94630 75 75 76 76 bool hasRedirectChain() const { return !m_redirectChain.isEmpty(); } 77 bool isRedirect() const { return m_redirectChain.size() > 1; } 77 78 const WebCore::KURL& endOfRedirectChain() const; 78 79 void clearRedirectChain(); -
trunk/Source/WebKit/chromium/tests/WebFrameTest.cpp
r93734 r94630 31 31 #include "config.h" 32 32 33 #include "ResourceError.h" 33 34 #include "WebDocument.h" 34 35 #include "WebFormElement.h" … … 216 217 } 217 218 219 class TestReloadDoesntRedirectWebFrameClient : public WebFrameClient { 220 public: 221 virtual WebNavigationPolicy decidePolicyForNavigation( 222 WebFrame*, const WebURLRequest&, WebNavigationType, 223 const WebNode& originatingNode, 224 WebNavigationPolicy defaultPolicy, bool isRedirect) 225 { 226 EXPECT_EQ(false, isRedirect); 227 return WebNavigationPolicyCurrentTab; 228 } 229 230 virtual WebURLError cancelledError(WebFrame*, const WebURLRequest& request) 231 { 232 // Return a dummy error so the DocumentLoader doesn't assert when 233 // the reload cancels it. 234 return WebURLError(WebCore::ResourceError("", 1, "", "cancelled")); 235 } 236 }; 237 238 TEST_F(WebFrameTest, ReloadDoesntSetRedirect) 239 { 240 // Test for case in http://crbug.com/73104. Reloading a frame very quickly 241 // would sometimes call decidePolicyForNavigation with isRedirect=true 242 registerMockedHttpURLLoad("form.html"); 243 244 TestReloadDoesntRedirectWebFrameClient webFrameClient; 245 WebView* webView = WebView::create(0); 246 webView->initializeMainFrame(&webFrameClient); 247 248 loadHttpFrame(webView->mainFrame(), "form.html"); 249 serveRequests(); 250 // Frame is loaded. 251 252 webView->mainFrame()->reload(true); 253 // start reload before request is delivered. 254 webView->mainFrame()->reload(true); 255 serveRequests(); 256 } 257 218 258 } // namespace
Note: See TracChangeset
for help on using the changeset viewer.