Index: Source/web/tests/FrameTestHelpers.cpp |
diff --git a/Source/web/tests/FrameTestHelpers.cpp b/Source/web/tests/FrameTestHelpers.cpp |
index a4c90188144750e645f7b69f9550b8992cd4d168..e430f3226674b59e496716d5c98b88f2b20c1bea 100644 |
--- a/Source/web/tests/FrameTestHelpers.cpp |
+++ b/Source/web/tests/FrameTestHelpers.cpp |
@@ -32,7 +32,6 @@ |
#include "web/tests/FrameTestHelpers.h" |
#include "public/platform/Platform.h" |
-#include "public/platform/WebData.h" |
#include "public/platform/WebString.h" |
#include "public/platform/WebThread.h" |
#include "public/platform/WebURLRequest.h" |
@@ -48,26 +47,6 @@ |
namespace FrameTestHelpers { |
namespace { |
- |
-// The frame test helpers coordinate frame loads in a carefully choreographed |
-// dance. Since the parser is threaded, simply spinning the run loop once is not |
-// enough to ensure completion of a load. Instead, the following pattern is |
-// used to ensure that tests see the final state: |
-// 1. Post a task to trigger a load (LoadTask/LoadHTMLStringTask/ReloadTask). |
-// 2. Enter the run loop. |
-// 3. Posted task triggers the load, and starts pumping pending resource |
-// requests using ServeAsyncRequestsTask. |
-// 4. TestWebFrameClient watches for didStartLoading/didStopLoading calls, |
-// keeping track of how many loads it thinks are in flight. |
-// 5. While ServeAsyncRequestsTask observes TestWebFrameClient to still have |
-// loads in progress, it posts itself back to the run loop. |
-// 6. When ServeAsyncRequestsTask notices there are no more loads in progress, |
-// it exits the run loop. |
-// 7. At this point, all parsing, resource loads, and layout should be finished. |
-TestWebFrameClient* testClientForFrame(WebFrame* frame) |
-{ |
- return static_cast<TestWebFrameClient*>(toWebLocalFrameImpl(frame)->client()); |
-} |
class QuitTask : public WebThread::Task { |
public: |
@@ -86,89 +65,7 @@ |
} |
}; |
-class ServeAsyncRequestsTask : public WebThread::Task { |
-public: |
- explicit ServeAsyncRequestsTask(TestWebFrameClient* client) |
- : m_client(client) |
- { |
- } |
- |
- virtual void run() OVERRIDE |
- { |
- Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
- if (m_client->isLoading()) |
- Platform::current()->currentThread()->postTask(new ServeAsyncRequestsTask(m_client)); |
- else |
- Platform::current()->currentThread()->exitRunLoop(); |
- } |
- |
-private: |
- TestWebFrameClient* const m_client; |
-}; |
- |
-void pumpPendingRequests(WebFrame* frame) |
-{ |
- Platform::current()->currentThread()->postTask(new ServeAsyncRequestsTask(testClientForFrame(frame))); |
- Platform::current()->currentThread()->enterRunLoop(); |
-} |
- |
-class LoadTask : public WebThread::Task { |
-public: |
- LoadTask(WebFrame* frame, const WebURLRequest& request) |
- : m_frame(frame) |
- , m_request(request) |
- { |
- } |
- |
- virtual void run() OVERRIDE |
- { |
- m_frame->loadRequest(m_request); |
- } |
- |
-private: |
- WebFrame* const m_frame; |
- const WebURLRequest m_request; |
-}; |
- |
-class LoadHTMLStringTask : public WebThread::Task { |
-public: |
- LoadHTMLStringTask(WebFrame* frame, const std::string& html, const WebURL& baseURL) |
- : m_frame(frame) |
- , m_html(html) |
- , m_baseURL(baseURL) |
- { |
- } |
- |
- virtual void run() OVERRIDE |
- { |
- m_frame->loadHTMLString(WebData(m_html.data(), m_html.size()), m_baseURL); |
- } |
- |
-private: |
- WebFrame* const m_frame; |
- const std::string m_html; |
- const WebURL m_baseURL; |
-}; |
- |
-class ReloadTask : public WebThread::Task { |
-public: |
- ReloadTask(WebFrame* frame, bool ignoreCache) |
- : m_frame(frame) |
- , m_ignoreCache(ignoreCache) |
- { |
- } |
- |
- virtual void run() OVERRIDE |
- { |
- m_frame->reload(m_ignoreCache); |
- } |
- |
-private: |
- WebFrame* const m_frame; |
- const bool m_ignoreCache; |
-}; |
- |
-TestWebFrameClient* defaultWebFrameClient() |
+WebFrameClient* defaultWebFrameClient() |
{ |
DEFINE_STATIC_LOCAL(TestWebFrameClient, client, ()); |
return &client; |
@@ -187,35 +84,9 @@ |
WebURLRequest urlRequest; |
urlRequest.initialize(); |
urlRequest.setURL(URLTestHelpers::toKURL(url)); |
- |
- Platform::current()->currentThread()->postTask(new LoadTask(frame, urlRequest)); |
- pumpPendingRequests(frame); |
+ frame->loadRequest(urlRequest); |
} |
-void loadHTMLString(WebFrame* frame, const std::string& html, const WebURL& baseURL) |
-{ |
- Platform::current()->currentThread()->postTask(new LoadHTMLStringTask(frame, html, baseURL)); |
- pumpPendingRequests(frame); |
-} |
- |
-void reloadFrame(WebFrame* frame) |
-{ |
- Platform::current()->currentThread()->postTask(new ReloadTask(frame, false)); |
- pumpPendingRequests(frame); |
-} |
- |
-void reloadFrameIgnoringCache(WebFrame* frame) |
-{ |
- Platform::current()->currentThread()->postTask(new ReloadTask(frame, true)); |
- pumpPendingRequests(frame); |
-} |
- |
-void pumpPendingRequestsDoNotUse(WebFrame* frame) |
-{ |
- pumpPendingRequests(frame); |
-} |
- |
-// FIXME: There's a duplicate implementation in UnitTestHelpers.cpp. Remove one. |
void runPendingTasks() |
{ |
// Pending tasks include Timers that have been scheduled. |
@@ -234,7 +105,7 @@ |
reset(); |
} |
-WebViewImpl* WebViewHelper::initialize(bool enableJavascript, TestWebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) |
+WebViewImpl* WebViewHelper::initialize(bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) |
{ |
reset(); |
@@ -256,11 +127,12 @@ |
return m_webView; |
} |
-WebViewImpl* WebViewHelper::initializeAndLoad(const std::string& url, bool enableJavascript, TestWebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) |
+WebViewImpl* WebViewHelper::initializeAndLoad(const std::string& url, bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) |
{ |
initialize(enableJavascript, webFrameClient, webViewClient, updateSettingsFunc); |
loadFrame(webView()->mainFrame(), url); |
+ Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
return webViewImpl(); |
} |
@@ -268,14 +140,9 @@ |
void WebViewHelper::reset() |
{ |
if (m_webView) { |
- ASSERT(!testClientForFrame(m_webView->mainFrame())->isLoading()); |
m_webView->close(); |
m_webView = 0; |
} |
-} |
- |
-TestWebFrameClient::TestWebFrameClient() : m_loadsInProgress(0) |
-{ |
} |
WebFrame* TestWebFrameClient::createChildFrame(WebLocalFrame* parent, const WebString& frameName) |
@@ -292,17 +159,6 @@ |
frame->close(); |
} |
-void TestWebFrameClient::didStartLoading(bool) |
-{ |
- ++m_loadsInProgress; |
-} |
- |
-void TestWebFrameClient::didStopLoading() |
-{ |
- ASSERT(m_loadsInProgress > 0); |
- --m_loadsInProgress; |
-} |
- |
void TestWebViewClient::initializeLayerTreeView() |
{ |
m_layerTreeView = adoptPtr(Platform::current()->unitTestSupport()->createLayerTreeViewForTesting(WebUnitTestSupport::TestViewTypeUnitTest)); |