From d2e42dea47b81da7c0f7fb8a3f03d987892ca84f Mon Sep 17 00:00:00 2001 From: "commit-queue@webkit.org" Date: Tue, 26 Jun 2012 02:52:11 +0000 Subject: [PATCH] Unreviewed, rolling out r121206. http://trac.webkit.org/changeset/121206 https://bugs.webkit.org/show_bug.cgi?id=89935 [chromium] webkit_unit_tests WebViewTest.MHTMLWithMissingResourceFinishesLoading crash (Requested by ukai on #webkit). Patch by Sheriff Bot on 2012-06-25 Source/WebCore: * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::scheduleArchiveLoad): Source/WebKit/chromium: * tests/EventListenerTest.cpp: * tests/FrameTestHelpers.cpp: (WebKit::FrameTestHelpers::registerMockedURLLoad): (WebKit::FrameTestHelpers::createWebViewAndLoad): * tests/FrameTestHelpers.h: (FrameTestHelpers): * tests/ListenerLeakTest.cpp: (WebKit::ListenerLeakTest::RunTest): * tests/WebFrameTest.cpp: (WebKit::WebFrameTest::registerMockedHttpURLLoad): (WebKit::WebFrameTest::registerMockedChromeURLLoad): * tests/WebViewTest.cpp: (WebKit::TEST_F): (WebKit::WebViewTest::testAutoResize): (WebKit::WebViewTest::testTextInputType): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121217 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 13 ++++++ Source/WebCore/loader/DocumentLoader.cpp | 3 -- Source/WebKit/chromium/ChangeLog | 26 +++++++++++ Source/WebKit/chromium/tests/EventListenerTest.cpp | 2 +- Source/WebKit/chromium/tests/FrameTestHelpers.cpp | 24 +++-------- Source/WebKit/chromium/tests/FrameTestHelpers.h | 6 +-- Source/WebKit/chromium/tests/ListenerLeakTest.cpp | 2 +- Source/WebKit/chromium/tests/WebFrameTest.cpp | 4 +- Source/WebKit/chromium/tests/WebViewTest.cpp | 50 +++------------------- 9 files changed, 57 insertions(+), 73 deletions(-) diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 0e2c3e6..cabeefd 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,16 @@ +2012-06-25 Sheriff Bot + + Unreviewed, rolling out r121206. + http://trac.webkit.org/changeset/121206 + https://bugs.webkit.org/show_bug.cgi?id=89935 + + [chromium] webkit_unit_tests + WebViewTest.MHTMLWithMissingResourceFinishesLoading crash + (Requested by ukai on #webkit). + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::scheduleArchiveLoad): + 2012-06-25 Anantanarayanan G Iyengar [chromium] Ensure that the compositor code which is aware of flipped status of video-textures diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp index 1c4debf..302a7ad 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp @@ -689,9 +689,6 @@ bool DocumentLoader::scheduleArchiveLoad(ResourceLoader* loader, const ResourceR #endif #if ENABLE(MHTML) case Archive::MHTML: - // Schedule this loader without a resource so that resource completion/failure notifications are still fired (which will trigger a call to ResourceLoader.didFail). - m_pendingSubstituteResources.set(loader, 0); - deliverSubstituteResourcesAfterDelay(); return true; // Always fail the load for resources not included in the MHTML. #endif default: diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog index 65e8cf6..112f94e 100644 --- a/Source/WebKit/chromium/ChangeLog +++ b/Source/WebKit/chromium/ChangeLog @@ -1,3 +1,29 @@ +2012-06-25 Sheriff Bot + + Unreviewed, rolling out r121206. + http://trac.webkit.org/changeset/121206 + https://bugs.webkit.org/show_bug.cgi?id=89935 + + [chromium] webkit_unit_tests + WebViewTest.MHTMLWithMissingResourceFinishesLoading crash + (Requested by ukai on #webkit). + + * tests/EventListenerTest.cpp: + * tests/FrameTestHelpers.cpp: + (WebKit::FrameTestHelpers::registerMockedURLLoad): + (WebKit::FrameTestHelpers::createWebViewAndLoad): + * tests/FrameTestHelpers.h: + (FrameTestHelpers): + * tests/ListenerLeakTest.cpp: + (WebKit::ListenerLeakTest::RunTest): + * tests/WebFrameTest.cpp: + (WebKit::WebFrameTest::registerMockedHttpURLLoad): + (WebKit::WebFrameTest::registerMockedChromeURLLoad): + * tests/WebViewTest.cpp: + (WebKit::TEST_F): + (WebKit::WebViewTest::testAutoResize): + (WebKit::WebViewTest::testTextInputType): + 2012-06-25 Adam Barth [Chromium] Let the embedder override the max page scale factor set by the page diff --git a/Source/WebKit/chromium/tests/EventListenerTest.cpp b/Source/WebKit/chromium/tests/EventListenerTest.cpp index 4916b65..799ac40 100644 --- a/Source/WebKit/chromium/tests/EventListenerTest.cpp +++ b/Source/WebKit/chromium/tests/EventListenerTest.cpp @@ -78,7 +78,7 @@ public: std::string baseURL("http://www.example.com/"); std::string fileName("listener/mutation_event_listener.html"); bool executeScript = true; - FrameTestHelpers::registerMockedURLLoadAsHTML(baseURL, fileName); + FrameTestHelpers::registerMockedURLLoad(baseURL, fileName); m_webView = FrameTestHelpers::createWebViewAndLoad(baseURL + fileName, executeScript); } diff --git a/Source/WebKit/chromium/tests/FrameTestHelpers.cpp b/Source/WebKit/chromium/tests/FrameTestHelpers.cpp index 6fa383e..e406413 100644 --- a/Source/WebKit/chromium/tests/FrameTestHelpers.cpp +++ b/Source/WebKit/chromium/tests/FrameTestHelpers.cpp @@ -46,16 +46,16 @@ namespace WebKit { namespace FrameTestHelpers { - -void registerMockedURLLoad(const std::string& base, const std::string& fileName, const std::string& mimeType) +void registerMockedURLLoad(const std::string& base, const std::string& fileName) { - registerMockedURLLoad(GURL(base + fileName), fileName, mimeType); + registerMockedURLLoad(GURL(base + fileName), fileName); } -void registerMockedURLLoad(const GURL& url, const std::string& fileName, const std::string& mimeType) +void registerMockedURLLoad(GURL url, const std::string& fileName) { - WebURLResponse response(url); - response.setMIMEType(WebString::fromUTF8(mimeType)); + WebURLResponse response; + response.initialize(); + response.setMIMEType("text/html"); std::string filePath = webkit_support::GetWebKitRootDir().utf8(); filePath += "/Source/WebKit/chromium/tests/data/"; @@ -64,16 +64,6 @@ void registerMockedURLLoad(const GURL& url, const std::string& fileName, const s webkit_support::RegisterMockedURL(url, response, WebString::fromUTF8(filePath)); } -void registerMockedURLLoadAsHTML(const std::string& base, const std::string& fileName) -{ - registerMockedURLLoadAsHTML(GURL(base + fileName), fileName); -} - -void registerMockedURLLoadAsHTML(const GURL& url, const std::string& fileName) -{ - registerMockedURLLoad(url, fileName, "text/html"); -} - void loadFrame(WebFrame* frame, const std::string& url) { WebURLRequest urlRequest; @@ -107,8 +97,6 @@ WebView* createWebViewAndLoad(const std::string& url, bool enableJavascript, Web if (!webViewClient) webViewClient = defaultWebViewClient(); WebView* webView = WebView::create(webViewClient); - webView->settings()->setImagesEnabled(true); - webView->settings()->setLoadsImagesAutomatically(true); webView->settings()->setJavaScriptEnabled(enableJavascript); webView->initializeMainFrame(webFrameClient); diff --git a/Source/WebKit/chromium/tests/FrameTestHelpers.h b/Source/WebKit/chromium/tests/FrameTestHelpers.h index 9f73142..fc2fa2d 100644 --- a/Source/WebKit/chromium/tests/FrameTestHelpers.h +++ b/Source/WebKit/chromium/tests/FrameTestHelpers.h @@ -44,11 +44,9 @@ class WebViewClient; namespace FrameTestHelpers { -void registerMockedURLLoadAsHTML(const std::string& base, const std::string& fileName); +void registerMockedURLLoad(const std::string& base, const std::string& fileName); // Like the previous overload, but it allows more flexibility in the url since it is given by the caller. -void registerMockedURLLoadAsHTML(const GURL&, const std::string& fileName); -void registerMockedURLLoad(const std::string& base, const std::string& fileName, const std::string& mimeType); -void registerMockedURLLoad(const GURL&, const std::string& fileName, const std::string& mimeType); +void registerMockedURLLoad(GURL, const std::string& fileName); void loadFrame(WebFrame*, const std::string& url); diff --git a/Source/WebKit/chromium/tests/ListenerLeakTest.cpp b/Source/WebKit/chromium/tests/ListenerLeakTest.cpp index d6ac26a..5e321c7 100644 --- a/Source/WebKit/chromium/tests/ListenerLeakTest.cpp +++ b/Source/WebKit/chromium/tests/ListenerLeakTest.cpp @@ -90,7 +90,7 @@ public: std::string baseURL("http://www.example.com/"); std::string fileName(filename); bool executeScript = true; - FrameTestHelpers::registerMockedURLLoadAsHTML(baseURL, fileName); + FrameTestHelpers::registerMockedURLLoad(baseURL, fileName); m_webView = FrameTestHelpers::createWebViewAndLoad(baseURL + fileName, executeScript); } diff --git a/Source/WebKit/chromium/tests/WebFrameTest.cpp b/Source/WebKit/chromium/tests/WebFrameTest.cpp index 3c8d334..4e2b0c5 100644 --- a/Source/WebKit/chromium/tests/WebFrameTest.cpp +++ b/Source/WebKit/chromium/tests/WebFrameTest.cpp @@ -73,12 +73,12 @@ public: void registerMockedHttpURLLoad(const std::string& fileName) { - FrameTestHelpers::registerMockedURLLoadAsHTML(m_baseURL, fileName); + FrameTestHelpers::registerMockedURLLoad(m_baseURL, fileName); } void registerMockedChromeURLLoad(const std::string& fileName) { - FrameTestHelpers::registerMockedURLLoadAsHTML(m_chromeURL, fileName); + FrameTestHelpers::registerMockedURLLoad(m_chromeURL, fileName); } protected: diff --git a/Source/WebKit/chromium/tests/WebViewTest.cpp b/Source/WebKit/chromium/tests/WebViewTest.cpp index a6c9e04..f858fe7 100644 --- a/Source/WebKit/chromium/tests/WebViewTest.cpp +++ b/Source/WebKit/chromium/tests/WebViewTest.cpp @@ -117,7 +117,7 @@ protected: TEST_F(WebViewTest, FocusIsInactive) { - FrameTestHelpers::registerMockedURLLoadAsHTML(m_baseURL, "visible_iframe.html"); + FrameTestHelpers::registerMockedURLLoad(m_baseURL, "visible_iframe.html"); WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "visible_iframe.html"); webView->setFocus(true); @@ -145,7 +145,7 @@ TEST_F(WebViewTest, FocusIsInactive) TEST_F(WebViewTest, ActiveState) { - FrameTestHelpers::registerMockedURLLoadAsHTML(m_baseURL, "visible_iframe.html"); + FrameTestHelpers::registerMockedURLLoad(m_baseURL, "visible_iframe.html"); WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "visible_iframe.html"); ASSERT_TRUE(webView); @@ -169,7 +169,7 @@ void WebViewTest::testAutoResize(const WebSize& minAutoResize, const WebSize& ma { AutoResizeWebViewClient client; std::string url = m_baseURL + "specify_size.html?" + pageWidth + ":" + pageHeight; - FrameTestHelpers::registerMockedURLLoadAsHTML(GURL(url), "specify_size.html"); + FrameTestHelpers::registerMockedURLLoad(GURL(url), "specify_size.html"); WebView* webView = FrameTestHelpers::createWebViewAndLoad(url, true, 0, &client); client.testData().setWebView(webView); @@ -268,7 +268,7 @@ TEST_F(WebViewTest, AutoResizeMaxSize) void WebViewTest::testTextInputType(WebTextInputType expectedType, const std::string& htmlFile) { - FrameTestHelpers::registerMockedURLLoadAsHTML(m_baseURL, htmlFile); + FrameTestHelpers::registerMockedURLLoad(m_baseURL, htmlFile); WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + htmlFile); webView->setInitialFocus(false); EXPECT_EQ(expectedType, webView->textInputType()); @@ -308,7 +308,7 @@ TEST_F(WebViewTest, DISABLED_TextInputType) TEST_F(WebViewTest, SetEditableSelectionOffsets) { - FrameTestHelpers::registerMockedURLLoadAsHTML(m_baseURL, "input_field_populated.html"); + FrameTestHelpers::registerMockedURLLoad(m_baseURL, "input_field_populated.html"); WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input_field_populated.html"); webView->setInitialFocus(false); webView->setEditableSelectionOffsets(5, 13); @@ -316,7 +316,7 @@ TEST_F(WebViewTest, SetEditableSelectionOffsets) EXPECT_EQ("56789abc", frame->selectionAsText()); webView->close(); - FrameTestHelpers::registerMockedURLLoadAsHTML(m_baseURL, "content_editable_populated.html"); + FrameTestHelpers::registerMockedURLLoad(m_baseURL, "content_editable_populated.html"); webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "content_editable_populated.html"); webView->setInitialFocus(false); webView->setEditableSelectionOffsets(8, 19); @@ -325,42 +325,4 @@ TEST_F(WebViewTest, SetEditableSelectionOffsets) webView->close(); } -class TestWebViewClient : public WebViewClient { -public: - TestWebViewClient() : m_didStartLoading(false), m_didStopLoading(false), m_loadProgress(0) { } - virtual void didStartLoading() { m_didStartLoading = true; } - virtual void didStopLoading() { m_didStopLoading = true; } - virtual void didChangeLoadProgress(WebFrame*, double loadProgress) { m_loadProgress = loadProgress; } - - bool loadingStarted() const { return m_didStartLoading; } - bool loadingStopped() const { return m_didStopLoading; } - double loadProgress() const { return m_loadProgress; } - -private: - bool m_didStartLoading; - bool m_didStopLoading; - double m_loadProgress; -}; - -TEST_F(WebViewTest, MHTMLWithMissingResourceFinishesLoading) -{ - TestWebViewClient webViewClient; - - std::string fileName = "page_with_image.mht"; - std::string fileDir = webkit_support::GetWebKitRootDir().utf8(); - fileDir.append("/Source/WebKit/chromium/tests/data/"); - // Making file loading works in unit-tests would require some additional work. - // Mocking them as regular URLs works fine in the meantime. - FrameTestHelpers::registerMockedURLLoad("file://" + fileDir, fileName, "multipart/related"); - WebView* webView = FrameTestHelpers::createWebViewAndLoad("file://" + fileDir + fileName, true, 0, &webViewClient); - webkit_support::RunAllPendingMessages(); - - EXPECT_TRUE(webViewClient.loadingStarted()); - EXPECT_TRUE(webViewClient.loadingStopped()); - EXPECT_EQ(1.0, webViewClient.loadProgress()); - - // Close the WebView after checking the loading state and progress, as the close() call triggers a stop loading callback. - webView->close(); -} - } -- 2.7.4