| Index: components/test_runner/test_runner.cc
|
| diff --git a/components/test_runner/test_runner.cc b/components/test_runner/test_runner.cc
|
| index cf41203f1ffe0ada8dd76989f7c8387154cd1e84..0b4792783a76db8a77643d477b6c39464f0505f7 100644
|
| --- a/components/test_runner/test_runner.cc
|
| +++ b/components/test_runner/test_runner.cc
|
| @@ -1555,6 +1555,7 @@ TestRunner::TestRunner(TestInterfaces* interfaces)
|
| main_view_(nullptr),
|
| mock_content_settings_client_(
|
| new MockContentSettingsClient(&layout_test_runtime_flags_)),
|
| + will_navigate_(false),
|
| credential_manager_client_(new MockCredentialManagerClient),
|
| mock_screen_orientation_client_(new MockScreenOrientationClient),
|
| spellcheck_(new SpellCheckClient(this)),
|
| @@ -1586,6 +1587,7 @@ void TestRunner::SetMainView(WebView* web_view) {
|
|
|
| void TestRunner::Reset() {
|
| is_web_platform_tests_mode_ = false;
|
| + will_navigate_ = false;
|
| top_loading_frame_ = nullptr;
|
| layout_test_runtime_flags_.Reset();
|
| mock_screen_orientation_client_->ResetData();
|
| @@ -1836,7 +1838,13 @@ bool TestRunner::IsFramePartOfMainTestWindow(blink::WebFrame* frame) const {
|
| return test_is_running_ && frame->top()->view() == main_view_;
|
| }
|
|
|
| +void TestRunner::OnNavigationBegin(WebFrame* frame) {
|
| + if (IsFramePartOfMainTestWindow(frame))
|
| + will_navigate_ = true;
|
| +}
|
| +
|
| bool TestRunner::tryToSetTopLoadingFrame(WebFrame* frame) {
|
| + will_navigate_ = false;
|
| if (!IsFramePartOfMainTestWindow(frame))
|
| return false;
|
|
|
| @@ -1850,6 +1858,7 @@ bool TestRunner::tryToSetTopLoadingFrame(WebFrame* frame) {
|
| }
|
|
|
| bool TestRunner::tryToClearTopLoadingFrame(WebFrame* frame) {
|
| + will_navigate_ = false;
|
| if (!IsFramePartOfMainTestWindow(frame))
|
| return false;
|
|
|
| @@ -2735,7 +2744,7 @@ void TestRunner::CheckResponseMimeType() {
|
|
|
| void TestRunner::NotifyDone() {
|
| if (layout_test_runtime_flags_.wait_until_done() && !topLoadingFrame() &&
|
| - work_queue_.is_empty())
|
| + !will_navigate_ && work_queue_.is_empty())
|
| delegate_->TestFinished();
|
| layout_test_runtime_flags_.set_wait_until_done(false);
|
| OnLayoutTestRuntimeFlagsChanged();
|
|
|