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
3 // found in the LICENSE file.
5 #ifndef CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
6 #define CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
11 #include "base/callback_forward.h"
12 #include "cc/layers/texture_layer.h"
13 #include "third_party/WebKit/public/platform/WebScreenOrientationType.h"
16 class WebBatteryStatus
;
17 class WebDeviceMotionData
;
18 class WebDeviceOrientationData
;
29 class RendererGamepadProvider
;
31 class WebTestProxyBase
;
33 // Turn the browser process into layout test mode.
34 void EnableBrowserLayoutTestMode();
36 ///////////////////////////////////////////////////////////////////////////////
37 // The following methods are meant to be used from a renderer.
39 // Turn a renderer into layout test mode.
40 void EnableRendererLayoutTestMode();
42 // Enable injecting of a WebTestProxy between WebViews and RenderViews.
43 // |callback| is invoked with a pointer to WebTestProxyBase for each created
45 void EnableWebTestProxyCreation(
46 const base::Callback
<void(RenderView
*, WebTestProxyBase
*)>& callback
);
48 // Sets gamepad provider to be used for layout tests.
49 void SetMockGamepadProvider(scoped_ptr
<RendererGamepadProvider
> provider
);
51 // Sets a double that should be used when registering
52 // a listener through WebKitPlatformSupport::setDeviceLightListener().
53 void SetMockDeviceLightData(const double data
);
55 // Sets WebDeviceMotionData that should be used when registering
56 // a listener through WebKitPlatformSupport::setDeviceMotionListener().
57 void SetMockDeviceMotionData(const blink::WebDeviceMotionData
& data
);
59 // Sets WebDeviceOrientationData that should be used when registering
60 // a listener through WebKitPlatformSupport::setDeviceOrientationListener().
61 void SetMockDeviceOrientationData(const blink::WebDeviceOrientationData
& data
);
63 // Notifies blink that battery status has changed.
64 void MockBatteryStatusChanged(const blink::WebBatteryStatus
& status
);
66 // Returns the length of the local session history of a render view.
67 int GetLocalSessionHistoryLength(RenderView
* render_view
);
69 // Sync the current session history to the browser process.
70 void SyncNavigationState(RenderView
* render_view
);
72 // Sets the focus of the render view depending on |enable|. This only overrides
73 // the state of the renderer, and does not sync the focus to the browser
75 void SetFocusAndActivate(RenderView
* render_view
, bool enable
);
77 // Changes the window rect of the given render view.
78 void ForceResizeRenderView(RenderView
* render_view
,
79 const blink::WebSize
& new_size
);
81 // Set the device scale factor and force the compositor to resize.
82 void SetDeviceScaleFactor(RenderView
* render_view
, float factor
);
84 // Set the device color profile associated with the profile |name|.
85 void SetDeviceColorProfile(RenderView
* render_view
, const std::string
& name
);
87 // Enables or disables synchronous resize mode. When enabled, all window-sizing
88 // machinery is short-circuited inside the renderer. This mode is necessary for
89 // some tests that were written before browsers had multi-process architecture
90 // and rely on window resizes to happen synchronously.
91 // See http://crbug.com/309760 for details.
92 void UseSynchronousResizeMode(RenderView
* render_view
, bool enable
);
94 // Control auto resize mode.
95 void EnableAutoResizeMode(RenderView
* render_view
,
96 const blink::WebSize
& min_size
,
97 const blink::WebSize
& max_size
);
98 void DisableAutoResizeMode(RenderView
* render_view
,
99 const blink::WebSize
& new_size
);
101 // Provides a text dump of the contents of the given page state.
102 std::string
DumpBackForwardList(std::vector
<PageState
>& page_state
,
103 size_t current_index
);
105 // Instantiates WebLayerImpl for TestPlugin.
106 blink::WebLayer
* InstantiateWebLayer(scoped_refptr
<cc::TextureLayer
> layer
);
108 } // namespace content
110 #endif // CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_