Changeset 141381 in webkit
- Timestamp:
- Jan 31, 2013 12:00:54 AM (11 years ago)
- Location:
- trunk/Tools
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r141369 r141381 1 2013-01-30 Jochen Eisinger <jochen@chromium.org> 2 3 [chromium] move remaining resource load related methods to TestRunner library 4 https://bugs.webkit.org/show_bug.cgi?id=108334 5 6 Reviewed by Adam Barth. 7 8 * DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h: 9 (WebTestRunner::WebTestDelegate::allowExternalPages): 10 * DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h: 11 (WebKit): 12 (WebTestProxyBase): 13 (WebTestRunner::WebTestProxy::canHandleRequest): 14 (WebTestRunner::WebTestProxy::cannotHandleRequestError): 15 (WebTestRunner::WebTestProxy::didCreateDataSource): 16 * DumpRenderTree/chromium/TestRunner/src/WebTestProxy.cpp: 17 (WebTestRunner::WebTestProxyBase::canHandleRequest): 18 (WebTestRunner): 19 (WebTestRunner::WebTestProxyBase::cannotHandleRequestError): 20 (WebTestRunner::WebTestProxyBase::didCreateDataSource): 21 (WebTestRunner::WebTestProxyBase::willSendRequest): 22 * DumpRenderTree/chromium/WebViewHost.cpp: 23 (WebViewHost::canHandleRequest): 24 (WebViewHost::didCreateDataSource): 25 (WebViewHost::willSendRequest): 26 (WebViewHost::allowExternalPages): 27 * DumpRenderTree/chromium/WebViewHost.h: 28 1 29 2013-01-30 Hajime Morrita <morrita@google.com> 2 30 -
trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h
r141298 r141381 121 121 virtual void reload() { } 122 122 virtual void loadURLForFrame(const WebKit::WebURL&, const std::string&) { } 123 virtual bool allowExternalPages() { return false; } 123 124 }; 124 125 -
trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h
r141298 r141381 33 33 34 34 #include "Platform/chromium/public/WebRect.h" 35 #include "Platform/chromium/public/WebURLError.h" 35 36 #include "WebKit/chromium/public/WebAccessibilityNotification.h" 36 37 #include "WebKit/chromium/public/WebDragOperation.h" … … 46 47 class WebAccessibilityObject; 47 48 class WebCachedURLRequest; 49 class WebDataSource; 48 50 class WebDragData; 49 51 class WebFrame; … … 64 66 struct WebPoint; 65 67 struct WebSize; 66 struct WebURLError;67 68 struct WebWindowFeatures; 68 69 } … … 138 139 void assignIdentifierToRequest(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLRequest&); 139 140 void willRequestResource(WebKit::WebFrame*, const WebKit::WebCachedURLRequest&); 141 bool canHandleRequest(WebKit::WebFrame*, const WebKit::WebURLRequest&); 142 WebKit::WebURLError cannotHandleRequestError(WebKit::WebFrame*, const WebKit::WebURLRequest&); 143 void didCreateDataSource(WebKit::WebFrame*, WebKit::WebDataSource*); 140 144 void willSendRequest(WebKit::WebFrame*, unsigned identifier, WebKit::WebURLRequest&, const WebKit::WebURLResponse& redirectResponse); 141 145 void didReceiveResponse(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLResponse&); … … 398 402 Base::willRequestResource(frame, request); 399 403 } 404 virtual bool canHandleRequest(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request) 405 { 406 if (!WebTestProxyBase::canHandleRequest(frame, request)) 407 return false; 408 return Base::canHandleRequest(frame, request); 409 } 410 virtual WebKit::WebURLError cannotHandleRequestError(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request) 411 { 412 return WebTestProxyBase::cannotHandleRequestError(frame, request); 413 } 414 virtual void didCreateDataSource(WebKit::WebFrame* frame, WebKit::WebDataSource* ds) 415 { 416 WebTestProxyBase::didCreateDataSource(frame, ds); 417 Base::didCreateDataSource(frame, ds); 418 } 400 419 virtual void willSendRequest(WebKit::WebFrame* frame, unsigned identifier, WebKit::WebURLRequest& request, const WebKit::WebURLResponse& redirectResponse) 401 420 { -
trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebTestProxy.cpp
r141298 r141381 38 38 #include "WebCachedURLRequest.h" 39 39 #include "WebConsoleMessage.h" 40 #include "WebDataSource.h" 40 41 #include "WebElement.h" 41 42 #include "WebEventSender.h" … … 189 190 } 190 191 192 bool isLocalhost(const string& host) 193 { 194 return host == "127.0.0.1" || host == "localhost"; 195 } 196 197 bool hostIsUsedBySomeTestsToGenerateError(const string& host) 198 { 199 return host == "255.255.255.255"; 200 } 201 191 202 // Used to write a platform neutral file:/// URL by only taking the filename 192 203 // (e.g., converts "file:///tmp/foo.txt" to just "foo.txt"). … … 781 792 m_delegate->printMessage(string(" requested '") + URLDescription(request.urlRequest().url()).c_str() + "'\n"); 782 793 } 794 } 795 796 bool WebTestProxyBase::canHandleRequest(WebFrame*, const WebURLRequest& request) 797 { 798 GURL url = request.url(); 799 // Just reject the scheme used in 800 // LayoutTests/http/tests/misc/redirect-to-external-url.html 801 return !url.SchemeIs("spaceballs"); 802 } 803 804 WebURLError WebTestProxyBase::cannotHandleRequestError(WebFrame*, const WebURLRequest& request) 805 { 806 WebURLError error; 807 // A WebKit layout test expects the following values. 808 // unableToImplementPolicyWithError() below prints them. 809 error.domain = WebString::fromUTF8("WebKitErrorDomain"); 810 error.reason = 101; 811 error.unreachableURL = request.url(); 812 return error; 813 } 814 815 void WebTestProxyBase::didCreateDataSource(WebFrame*, WebDataSource* ds) 816 { 817 if (m_testInterfaces->testRunner() && !m_testInterfaces->testRunner()->deferMainResourceDataLoad()) 818 ds->setDeferMainResourceDataLoad(false); 783 819 } 784 820 … … 823 859 request.clearHTTPHeaderField(WebString::fromUTF8(*header)); 824 860 } 861 862 string host = url.host(); 863 if (!host.empty() && (url.SchemeIs("http") || url.SchemeIs("https"))) { 864 if (!isLocalhost(host) && !hostIsUsedBySomeTestsToGenerateError(host) 865 && ((!mainDocumentURL.SchemeIs("http") && !mainDocumentURL.SchemeIs("https")) || isLocalhost(mainDocumentURL.host())) 866 && !m_delegate->allowExternalPages()) { 867 m_delegate->printMessage(string("Blocked access to external URL ") + requestURL + "\n"); 868 blockRequest(request); 869 return; 870 } 871 } 872 873 // Set the new substituted URL. 874 request.setURL(m_delegate->rewriteLayoutTestsURL(request.url().spec())); 825 875 } 826 876 -
trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp
r141298 r141381 583 583 bool WebViewHost::canHandleRequest(WebFrame*, const WebURLRequest& request) 584 584 { 585 GURL url = request.url(); 586 // Just reject the scheme used in 587 // LayoutTests/http/tests/misc/redirect-to-external-url.html 588 return !url.SchemeIs("spaceballs"); 589 } 590 591 WebURLError WebViewHost::cannotHandleRequestError(WebFrame*, const WebURLRequest& request) 592 { 593 WebURLError error; 594 // A WebKit layout test expects the following values. 595 // unableToImplementPolicyWithError() below prints them. 596 error.domain = WebString::fromUTF8("WebKitErrorDomain"); 597 error.reason = 101; 598 error.unreachableURL = request.url(); 599 return error; 585 return true; 600 586 } 601 587 … … 612 598 { 613 599 ds->setExtraData(m_pendingExtraData.leakPtr()); 614 if (!testRunner()->deferMainResourceDataLoad())615 ds->setDeferMainResourceDataLoad(false);616 600 } 617 601 … … 638 622 } 639 623 640 static void blockRequest(WebURLRequest& request) 641 { 642 request.setURL(WebURL()); 643 } 644 645 static bool isLocalhost(const string& host) 646 { 647 return host == "127.0.0.1" || host == "localhost"; 648 } 649 650 static bool hostIsUsedBySomeTestsToGenerateError(const string& host) 651 { 652 return host == "255.255.255.255"; 653 } 654 655 void WebViewHost::willSendRequest(WebFrame* frame, unsigned identifier, WebURLRequest& request, const WebURLResponse& redirectResponse) 624 void WebViewHost::willSendRequest(WebFrame* frame, unsigned, WebURLRequest& request, const WebURLResponse&) 656 625 { 657 626 if (request.url().isEmpty()) 658 627 return; 659 628 660 // Need to use GURL for host() and SchemeIs()661 GURL url = request.url();662 string requestURL = url.possibly_invalid_spec();663 664 GURL mainDocumentURL = request.firstPartyForCookies();665 666 629 request.setExtraData(webkit_support::CreateWebURLRequestExtraData(frame->document().referrerPolicy())); 667 668 string host = url.host();669 if (!host.empty() && (url.SchemeIs("http") || url.SchemeIs("https"))) {670 if (!isLocalhost(host) && !hostIsUsedBySomeTestsToGenerateError(host)671 && ((!mainDocumentURL.SchemeIs("http") && !mainDocumentURL.SchemeIs("https")) || isLocalhost(mainDocumentURL.host()))672 && !m_shell->allowExternalPages()) {673 printf("Blocked access to external URL %s\n", requestURL.c_str());674 blockRequest(request);675 return;676 }677 }678 679 // Set the new substituted URL.680 request.setURL(webkit_support::RewriteLayoutTestsURL(request.url().spec()));681 630 } 682 631 … … 1024 973 } 1025 974 975 bool WebViewHost::allowExternalPages() 976 { 977 return m_shell->allowExternalPages(); 978 } 979 1026 980 // Public functions ----------------------------------------------------------- 1027 981 -
trunk/Tools/DumpRenderTree/chromium/WebViewHost.h
r141298 r141381 177 177 virtual void goToOffset(int) OVERRIDE; 178 178 virtual void reload() OVERRIDE; 179 void loadURLForFrame(const WebKit::WebURL&, const std::string& frameName) OVERRIDE; 179 virtual void loadURLForFrame(const WebKit::WebURL&, const std::string& frameName) OVERRIDE; 180 virtual bool allowExternalPages() OVERRIDE; 180 181 181 182 // NavigationHost … … 264 265 WebKit::WebNavigationPolicy, bool isRedirect); 265 266 virtual bool canHandleRequest(WebKit::WebFrame*, const WebKit::WebURLRequest&); 266 virtual WebKit::WebURLError cannotHandleRequestError(WebKit::WebFrame*, const WebKit::WebURLRequest&);267 267 virtual WebKit::WebURLError cancelledError(WebKit::WebFrame*, const WebKit::WebURLRequest&); 268 268 virtual void unableToImplementPolicyWithError(WebKit::WebFrame*, const WebKit::WebURLError&);
Note: See TracChangeset
for help on using the changeset viewer.