Commit 7205dafe authored by danakj's avatar danakj Committed by Commit Bot

Don't track main frames in web tests that are still provisional

Once they are swapped in, we can track and use them as the main frame.

R=avi@chromium.org

Bug: 1114382
Change-Id: I8f0b8c906a9dd5dd106dc1dc444aa24af4721347
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2378447
Auto-Submit: danakj <danakj@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801942}
parent 50dff7e4
...@@ -2608,6 +2608,7 @@ class WorkItemBackForward : public TestRunner::WorkItem { ...@@ -2608,6 +2608,7 @@ class WorkItemBackForward : public TestRunner::WorkItem {
WebFrameTestProxy* TestRunner::FindInProcessMainWindowMainFrame() { WebFrameTestProxy* TestRunner::FindInProcessMainWindowMainFrame() {
for (WebFrameTestProxy* main_frame : main_frames_) { for (WebFrameTestProxy* main_frame : main_frames_) {
WebViewTestProxy* view = main_frame->GetWebViewTestProxy(); WebViewTestProxy* view = main_frame->GetWebViewTestProxy();
DCHECK_EQ(view->GetMainRenderFrame(), main_frame);
if (view->blink_test_runner()->is_main_window()) if (view->blink_test_runner()->is_main_window())
return main_frame; return main_frame;
} }
......
...@@ -171,6 +171,10 @@ class TestRenderFrameObserver : public RenderFrameObserver { ...@@ -171,6 +171,10 @@ class TestRenderFrameObserver : public RenderFrameObserver {
} }
if (render_frame()->IsMainFrame()) { if (render_frame()->IsMainFrame()) {
// Track main frames once they are swapped in, if they started
// provisional.
test_runner()->AddMainFrame(frame_proxy());
// Looking for navigations to about:blank after a test completes. // Looking for navigations to about:blank after a test completes.
blink_test_runner()->DidCommitNavigationInMainFrame(); blink_test_runner()->DidCommitNavigationInMainFrame();
} }
...@@ -234,7 +238,9 @@ void WebFrameTestProxy::Initialize(blink::WebFrame* parent) { ...@@ -234,7 +238,9 @@ void WebFrameTestProxy::Initialize(blink::WebFrame* parent) {
RenderFrameImpl::Initialize(parent); RenderFrameImpl::Initialize(parent);
TestRunner* test_runner = web_view_test_proxy_->GetTestRunner(); TestRunner* test_runner = web_view_test_proxy_->GetTestRunner();
if (IsMainFrame()) // Track main frames if they started in the frame tree. Otherwise they are
// provisional and will be tracked once swapped in.
if (IsMainFrame() && in_frame_tree())
test_runner->AddMainFrame(this); test_runner->AddMainFrame(this);
GetWebFrame()->SetContentSettingsClient(test_runner->GetWebContentSettings()); GetWebFrame()->SetContentSettingsClient(test_runner->GetWebContentSettings());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment