Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(316)

Side by Side Diff: content/shell/renderer/layout_test/layout_test_content_renderer_client.cc

Issue 1896623002: Setting TestRunner's main window from BlinkTestRunner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@replicate-across-all-renderers
Patch Set: Rebasing... Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/shell/renderer/layout_test/layout_test_content_renderer_client .h" 5 #include "content/shell/renderer/layout_test/layout_test_content_renderer_client .h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/debugger.h" 9 #include "base/debug/debugger.h"
10 #include "components/test_runner/mock_credential_manager_client.h" 10 #include "components/test_runner/mock_credential_manager_client.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 using blink::WebRTCPeerConnectionHandler; 46 using blink::WebRTCPeerConnectionHandler;
47 using blink::WebRTCPeerConnectionHandlerClient; 47 using blink::WebRTCPeerConnectionHandlerClient;
48 using blink::WebThemeEngine; 48 using blink::WebThemeEngine;
49 49
50 namespace content { 50 namespace content {
51 51
52 namespace { 52 namespace {
53 53
54 void WebTestProxyCreated(RenderView* render_view, 54 void WebTestProxyCreated(RenderView* render_view,
55 test_runner::WebTestProxyBase* proxy) { 55 test_runner::WebTestProxyBase* proxy) {
56 test_runner::WebTestInterfaces* interfaces =
57 LayoutTestRenderThreadObserver::GetInstance()->test_interfaces();
58
56 BlinkTestRunner* test_runner = new BlinkTestRunner(render_view); 59 BlinkTestRunner* test_runner = new BlinkTestRunner(render_view);
60 // TODO(lukasza): Using the 1st BlinkTestRunner as the main delegate is wrong,
61 // but it is difficult to change because this behavior has been baked for a
62 // long time into test assumptions (i.e. which PrintMessage gets delivered to
63 // the browser depends on this).
64 static bool first_test_runner = true;
65 if (first_test_runner) {
66 first_test_runner = false;
67 interfaces->SetDelegate(test_runner);
68 }
69
57 proxy->set_delegate(test_runner); 70 proxy->set_delegate(test_runner);
58
59 if (!LayoutTestRenderThreadObserver::GetInstance()->test_delegate()) {
60 LayoutTestRenderThreadObserver::GetInstance()->SetTestDelegate(
61 test_runner);
62 }
63 proxy->set_view_test_client(LayoutTestRenderThreadObserver::GetInstance() 71 proxy->set_view_test_client(LayoutTestRenderThreadObserver::GetInstance()
64 ->test_interfaces() 72 ->test_interfaces()
65 ->CreateWebViewTestClient(proxy)); 73 ->CreateWebViewTestClient(proxy));
66 proxy->SetInterfaces( 74 proxy->SetInterfaces(interfaces);
67 LayoutTestRenderThreadObserver::GetInstance()->test_interfaces());
68 } 75 }
69 76
70 void WebFrameTestProxyCreated(RenderFrame* render_frame, 77 void WebFrameTestProxyCreated(RenderFrame* render_frame,
71 test_runner::WebFrameTestProxyBase* proxy) { 78 test_runner::WebFrameTestProxyBase* proxy) {
72 test_runner::WebTestProxyBase* web_test_proxy_base = 79 test_runner::WebTestProxyBase* web_test_proxy_base =
73 GetWebTestProxyBase(render_frame->GetRenderView()); 80 GetWebTestProxyBase(render_frame->GetRenderView());
74 proxy->set_test_client(LayoutTestRenderThreadObserver::GetInstance() 81 proxy->set_test_client(LayoutTestRenderThreadObserver::GetInstance()
75 ->test_interfaces() 82 ->test_interfaces()
76 ->CreateWebFrameTestClient(web_test_proxy_base)); 83 ->CreateWebFrameTestClient(web_test_proxy_base));
77 } 84 }
(...skipping 28 matching lines...) Expand all
106 proxy->Reset(); 113 proxy->Reset();
107 proxy->SetSendWheelGestures(UseGestureBasedWheelScrolling()); 114 proxy->SetSendWheelGestures(UseGestureBasedWheelScrolling());
108 115
109 BlinkTestRunner* test_runner = BlinkTestRunner::Get(render_view); 116 BlinkTestRunner* test_runner = BlinkTestRunner::Get(render_view);
110 test_runner->Reset(false /* for_new_test */); 117 test_runner->Reset(false /* for_new_test */);
111 118
112 LayoutTestRenderThreadObserver::GetInstance() 119 LayoutTestRenderThreadObserver::GetInstance()
113 ->test_interfaces() 120 ->test_interfaces()
114 ->TestRunner() 121 ->TestRunner()
115 ->InitializeWebViewWithMocks(render_view->GetWebView()); 122 ->InitializeWebViewWithMocks(render_view->GetWebView());
116
117 test_runner::WebTestDelegate* delegate =
118 LayoutTestRenderThreadObserver::GetInstance()->test_delegate();
119 if (delegate == static_cast<test_runner::WebTestDelegate*>(test_runner)) {
120 // TODO(lukasza): Should this instead by done by BlinkTestRunner,
121 // when it gets notified by the browser that it is the main window?
122
123 // Let test_runner layer know what is the main test window.
124 LayoutTestRenderThreadObserver::GetInstance()
125 ->test_interfaces()
126 ->SetWebView(render_view->GetWebView(), proxy);
127 }
128 } 123 }
129 124
130 WebMediaStreamCenter* 125 WebMediaStreamCenter*
131 LayoutTestContentRendererClient::OverrideCreateWebMediaStreamCenter( 126 LayoutTestContentRendererClient::OverrideCreateWebMediaStreamCenter(
132 WebMediaStreamCenterClient* client) { 127 WebMediaStreamCenterClient* client) {
133 #if defined(ENABLE_WEBRTC) 128 #if defined(ENABLE_WEBRTC)
134 test_runner::WebTestInterfaces* interfaces = 129 test_runner::WebTestInterfaces* interfaces =
135 LayoutTestRenderThreadObserver::GetInstance()->test_interfaces(); 130 LayoutTestRenderThreadObserver::GetInstance()->test_interfaces();
136 return interfaces->CreateMediaStreamCenter(client); 131 return interfaces->CreateMediaStreamCenter(client);
137 #else 132 #else
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 LayoutTestContentRendererClient::CreateMediaStreamRendererFactory() { 186 LayoutTestContentRendererClient::CreateMediaStreamRendererFactory() {
192 #if defined(ENABLE_WEBRTC) 187 #if defined(ENABLE_WEBRTC)
193 return std::unique_ptr<MediaStreamRendererFactory>( 188 return std::unique_ptr<MediaStreamRendererFactory>(
194 new TestMediaStreamRendererFactory()); 189 new TestMediaStreamRendererFactory());
195 #else 190 #else
196 return nullptr; 191 return nullptr;
197 #endif 192 #endif
198 } 193 }
199 194
200 } // namespace content 195 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698