| Index: content/shell/renderer/test_runner/web_test_proxy.cc
|
| diff --git a/content/shell/renderer/test_runner/web_test_proxy.cc b/content/shell/renderer/test_runner/web_test_proxy.cc
|
| index d7a33f15f8b2abcdf5efc6ba40718cf7ee32a144..b47c255f0aa88b13ed2bfe586a99f20489e3aa3a 100644
|
| --- a/content/shell/renderer/test_runner/web_test_proxy.cc
|
| +++ b/content/shell/renderer/test_runner/web_test_proxy.cc
|
| @@ -927,7 +927,7 @@ bool WebTestProxyBase::DidFailProvisionalLoad(blink::WebLocalFrame* frame,
|
| PrintFrameDescription(delegate_, frame);
|
| delegate_->printMessage(" - didFailProvisionalLoadWithError\n");
|
| }
|
| - LocationChangeDone(frame);
|
| + CheckDone(frame, MainResourceLoadFailed);
|
| return !frame->provisionalDataSource();
|
| }
|
|
|
| @@ -992,7 +992,7 @@ void WebTestProxyBase::DidFailLoad(blink::WebLocalFrame* frame,
|
| PrintFrameDescription(delegate_, frame);
|
| delegate_->printMessage(" - didFailLoadWithError\n");
|
| }
|
| - LocationChangeDone(frame);
|
| + CheckDone(frame, MainResourceLoadFailed);
|
| }
|
|
|
| void WebTestProxyBase::DidFinishLoad(blink::WebLocalFrame* frame) {
|
| @@ -1000,7 +1000,7 @@ void WebTestProxyBase::DidFinishLoad(blink::WebLocalFrame* frame) {
|
| PrintFrameDescription(delegate_, frame);
|
| delegate_->printMessage(" - didFinishLoadForFrame\n");
|
| }
|
| - LocationChangeDone(frame);
|
| + CheckDone(frame, LoadFinished);
|
| }
|
|
|
| void WebTestProxyBase::DidDetectXSS(blink::WebLocalFrame* frame,
|
| @@ -1160,6 +1160,9 @@ void WebTestProxyBase::DidFinishResourceLoad(blink::WebLocalFrame* frame,
|
| delegate_->printMessage(" - didFinishLoading\n");
|
| }
|
| resource_identifier_map_.erase(identifier);
|
| +#if !defined(ENABLE_LOAD_COMPLETION_HACKS)
|
| + CheckDone(frame, ResourceLoadCompleted);
|
| +#endif
|
| }
|
|
|
| void WebTestProxyBase::DidAddMessageToConsole(
|
| @@ -1204,9 +1207,21 @@ void WebTestProxyBase::DidAddMessageToConsole(
|
| delegate_->printMessage(std::string("\n"));
|
| }
|
|
|
| -void WebTestProxyBase::LocationChangeDone(blink::WebFrame* frame) {
|
| +void WebTestProxyBase::CheckDone(blink::WebLocalFrame* frame,
|
| + CheckDoneReason reason) {
|
| if (frame != test_interfaces_->GetTestRunner()->topLoadingFrame())
|
| return;
|
| +
|
| +#if !defined(ENABLE_LOAD_COMPLETION_HACKS)
|
| + // Quirk for MHTML prematurely completing on resource load completion.
|
| + std::string mime_type = frame->dataSource()->response().mimeType().utf8();
|
| + if (reason == ResourceLoadCompleted && mime_type == "multipart/related")
|
| + return;
|
| +
|
| + if (reason != MainResourceLoadFailed &&
|
| + (frame->isResourceLoadInProgress() || frame->isLoading()))
|
| + return;
|
| +#endif
|
| test_interfaces_->GetTestRunner()->setTopLoadingFrame(frame, true);
|
| }
|
|
|
|
|