layouttest_support.h revision 116680a4aac90f2aa7413d9095a592090648e557
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.
4
5#ifndef CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
6#define CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
7
8#include <string>
9#include <vector>
10
11#include "base/callback_forward.h"
12#include "cc/layers/texture_layer.h"
13#include "third_party/WebKit/public/platform/WebScreenOrientationType.h"
14
15namespace blink {
16class WebBatteryStatus;
17class WebDeviceMotionData;
18class WebDeviceOrientationData;
19class WebGamepad;
20class WebGamepads;
21class WebLayer;
22struct WebSize;
23}
24
25namespace content {
26
27class PageState;
28class RenderFrame;
29class RendererGamepadProvider;
30class RenderView;
31class WebTestProxyBase;
32
33// Turn the browser process into layout test mode.
34void EnableBrowserLayoutTestMode();
35
36///////////////////////////////////////////////////////////////////////////////
37// The following methods are meant to be used from a renderer.
38
39// Turn a renderer into layout test mode.
40void EnableRendererLayoutTestMode();
41
42// Enable injecting of a WebTestProxy between WebViews and RenderViews.
43// |callback| is invoked with a pointer to WebTestProxyBase for each created
44// WebTestProxy.
45void EnableWebTestProxyCreation(
46    const base::Callback<void(RenderView*, WebTestProxyBase*)>& callback);
47
48// Sets gamepad provider to be used for layout tests.
49void SetMockGamepadProvider(RendererGamepadProvider* provider);
50
51// Sets a double that should be used when registering
52// a listener through WebKitPlatformSupport::setDeviceLightListener().
53void SetMockDeviceLightData(const double data);
54
55// Sets WebDeviceMotionData that should be used when registering
56// a listener through WebKitPlatformSupport::setDeviceMotionListener().
57void SetMockDeviceMotionData(const blink::WebDeviceMotionData& data);
58
59// Sets WebDeviceOrientationData that should be used when registering
60// a listener through WebKitPlatformSupport::setDeviceOrientationListener().
61void SetMockDeviceOrientationData(const blink::WebDeviceOrientationData& data);
62
63// Notifies blink that battery status has changed.
64void MockBatteryStatusChanged(const blink::WebBatteryStatus& status);
65
66// Returns the length of the local session history of a render view.
67int GetLocalSessionHistoryLength(RenderView* render_view);
68
69// Sync the current session history to the browser process.
70void SyncNavigationState(RenderView* render_view);
71
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
74// process.
75void SetFocusAndActivate(RenderView* render_view, bool enable);
76
77// Changes the window rect of the given render view.
78void ForceResizeRenderView(RenderView* render_view,
79                           const blink::WebSize& new_size);
80
81// Set the device scale factor and force the compositor to resize.
82void SetDeviceScaleFactor(RenderView* render_view, float factor);
83
84// Set the device color profile associated with the profile |name|.
85void SetDeviceColorProfile(RenderView* render_view, const std::string& name);
86
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.
92void UseSynchronousResizeMode(RenderView* render_view, bool enable);
93
94// Control auto resize mode.
95void EnableAutoResizeMode(RenderView* render_view,
96                          const blink::WebSize& min_size,
97                          const blink::WebSize& max_size);
98void DisableAutoResizeMode(RenderView* render_view,
99                           const blink::WebSize& new_size);
100
101// Provides a text dump of the contents of the given page state.
102std::string DumpBackForwardList(std::vector<PageState>& page_state,
103                                size_t current_index);
104
105// Instantiates WebLayerImpl for TestPlugin.
106blink::WebLayer* InstantiateWebLayer(scoped_refptr<cc::TextureLayer> layer);
107
108}  // namespace content
109
110#endif  // CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
111