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

Side by Side Diff: content/test/layouttest_support.cc

Issue 17114006: Implement WebFrameClient in RenderFrame and proxy all calls to RenderView (for now). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and cleanup. Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/public/test/layouttest_support.h" 5 #include "content/public/test/layouttest_support.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "content/browser/renderer_host/render_widget_host_impl.h" 9 #include "content/browser/renderer_host/render_widget_host_impl.h"
10 #include "content/common/gpu/image_transport_surface.h" 10 #include "content/common/gpu/image_transport_surface.h"
11 #include "content/renderer/render_thread_impl.h" 11 #include "content/renderer/render_thread_impl.h"
12 #include "content/renderer/render_view_impl.h" 12 #include "content/renderer/render_view_impl.h"
13 #include "content/renderer/renderer_webkitplatformsupport_impl.h" 13 #include "content/renderer/renderer_webkitplatformsupport_impl.h"
14 #include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/Web FrameTestProxy.h"
15 #include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/Web TestProxy.h"
14 #include "third_party/WebKit/public/platform/WebGamepads.h" 16 #include "third_party/WebKit/public/platform/WebGamepads.h"
15 #include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/Web TestProxy.h"
16 17
17 #if defined(OS_WIN) && !defined(USE_AURA) 18 #if defined(OS_WIN) && !defined(USE_AURA)
18 #include "content/browser/web_contents/web_contents_drag_win.h" 19 #include "content/browser/web_contents/web_contents_drag_win.h"
19 #endif 20 #endif
20 21
21 #if defined(OS_MACOSX) 22 #if defined(OS_MACOSX)
22 #include "content/browser/renderer_host/popup_menu_helper_mac.h" 23 #include "content/browser/renderer_host/popup_menu_helper_mac.h"
23 #endif 24 #endif
24 25
25 using WebKit::WebGamepads; 26 using WebKit::WebGamepads;
26 using WebKit::WebRect; 27 using WebKit::WebRect;
27 using WebKit::WebSize; 28 using WebKit::WebSize;
29 using WebTestRunner::WebFrameTestProxy;
28 using WebTestRunner::WebTestProxy; 30 using WebTestRunner::WebTestProxy;
29 using WebTestRunner::WebTestProxyBase; 31 using WebTestRunner::WebTestProxyBase;
30 32
31 namespace content { 33 namespace content {
32 34
33 namespace { 35 namespace {
34 36
35 base::LazyInstance<base::Callback<void(RenderView*, WebTestProxyBase*)> >::Leaky 37 base::LazyInstance<base::Callback<void(RenderView*, WebTestProxyBase*)> >::Leaky
36 g_callback = LAZY_INSTANCE_INITIALIZER; 38 g_callback = LAZY_INSTANCE_INITIALIZER;
37 39
38 RenderViewImpl* CreateWebTestProxy(RenderViewImplParams* params) { 40 RenderViewImpl* CreateWebTestProxy(RenderViewImplParams* params) {
39 typedef WebTestProxy<RenderViewImpl, RenderViewImplParams*> ProxyType; 41 typedef WebTestProxy<RenderViewImpl, RenderViewImplParams*> ProxyType;
40 ProxyType* render_view_proxy = new ProxyType( 42 ProxyType* render_view_proxy = new ProxyType(
41 reinterpret_cast<RenderViewImplParams*>(params)); 43 reinterpret_cast<RenderViewImplParams*>(params));
42 if (g_callback == 0) 44 if (g_callback == 0)
43 return render_view_proxy; 45 return render_view_proxy;
44 g_callback.Get().Run( 46 g_callback.Get().Run(
45 static_cast<RenderView*>(render_view_proxy), render_view_proxy); 47 static_cast<RenderView*>(render_view_proxy), render_view_proxy);
46 return render_view_proxy; 48 return render_view_proxy;
47 } 49 }
48 50
51 RenderFrameImpl* CreateWebFrameTestProxy(
52 RenderViewImpl* render_view,
53 int32 routing_id) {
54 typedef WebTestProxy<RenderViewImpl, RenderViewImplParams*> ViewProxy;
55 typedef WebFrameTestProxy<RenderFrameImpl, RenderViewImpl*, int32> FrameProxy;
56
57 ViewProxy* render_view_proxy = static_cast<ViewProxy*>(render_view);
58 FrameProxy* render_frame_proxy = new FrameProxy(render_view, routing_id);
59 render_frame_proxy->setBaseProxy(render_view_proxy);
60 return render_frame_proxy;
61 }
62
49 } // namespace 63 } // namespace
50 64
51 65
52 void EnableWebTestProxyCreation( 66 void EnableWebTestProxyCreation(
53 const base::Callback<void(RenderView*, WebTestProxyBase*)>& callback) { 67 const base::Callback<void(RenderView*, WebTestProxyBase*)>& callback) {
54 g_callback.Get() = callback; 68 g_callback.Get() = callback;
55 RenderViewImpl::InstallCreateHook(CreateWebTestProxy); 69 RenderViewImpl::InstallCreateHook(CreateWebTestProxy);
70 RenderFrameImpl::InstallCreateHook(CreateWebFrameTestProxy);
56 } 71 }
57 72
58 void SetMockGamepads(const WebGamepads& pads) { 73 void SetMockGamepads(const WebGamepads& pads) {
59 RendererWebKitPlatformSupportImpl::SetMockGamepadsForTesting(pads); 74 RendererWebKitPlatformSupportImpl::SetMockGamepadsForTesting(pads);
60 } 75 }
61 76
62 void EnableRendererLayoutTestMode() { 77 void EnableRendererLayoutTestMode() {
63 RenderThreadImpl::current()->set_layout_test_mode(true); 78 RenderThreadImpl::current()->set_layout_test_mode(true);
64 } 79 }
65 80
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 void DisableAutoResizeMode(RenderView* render_view, const WebSize& new_size) { 126 void DisableAutoResizeMode(RenderView* render_view, const WebSize& new_size) {
112 static_cast<RenderViewImpl*>(render_view) 127 static_cast<RenderViewImpl*>(render_view)
113 ->DisableAutoResizeForTesting(new_size); 128 ->DisableAutoResizeForTesting(new_size);
114 } 129 }
115 130
116 scoped_refptr<base::MessageLoopProxy> GetMediaThreadMessageLoopProxy() { 131 scoped_refptr<base::MessageLoopProxy> GetMediaThreadMessageLoopProxy() {
117 return RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(); 132 return RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy();
118 } 133 }
119 134
120 } // namespace content 135 } // namespace content
OLDNEW
« content/renderer/render_frame_impl.h ('K') | « content/renderer/render_view_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698