layouttest_support.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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 "third_party/WebKit/public/platform/WebScreenOrientationType.h"
13
14namespace blink {
15class WebDeviceMotionData;
16class WebDeviceOrientationData;
17class WebGamepad;
18class WebGamepads;
19struct WebSize;
20}
21
22namespace content {
23
24class PageState;
25class RenderFrame;
26class RenderView;
27class WebTestProxyBase;
28
29// Turn the browser process into layout test mode.
30void EnableBrowserLayoutTestMode();
31
32///////////////////////////////////////////////////////////////////////////////
33// The following methods are meant to be used from a renderer.
34
35// Turn a renderer into layout test mode.
36void EnableRendererLayoutTestMode();
37
38// Enable injecting of a WebTestProxy between WebViews and RenderViews.
39// |callback| is invoked with a pointer to WebTestProxyBase for each created
40// WebTestProxy.
41void EnableWebTestProxyCreation(
42    const base::Callback<void(RenderView*, WebTestProxyBase*)>& callback);
43
44// Sets the WebGamepads that should be returned by
45// WebKitPlatformSupport::sampleGamepads().
46void SetMockGamepads(const blink::WebGamepads& pads);
47
48// Notifies blink about a new gamepad.
49void MockGamepadConnected(int index, const blink::WebGamepad& pad);
50
51// Notifies blink that a gamepad has been disconnected.
52void MockGamepadDisconnected(int index, const blink::WebGamepad& pad);
53
54// Sets WebDeviceMotionData that should be used when registering
55// a listener through WebKitPlatformSupport::setDeviceMotionListener().
56void SetMockDeviceMotionData(const blink::WebDeviceMotionData& data);
57
58// Sets WebDeviceOrientationData that should be used when registering
59// a listener through WebKitPlatformSupport::setDeviceOrientationListener().
60void SetMockDeviceOrientationData(const blink::WebDeviceOrientationData& data);
61
62// Sets WebScreenOrientationType that should be used as a mock orientation.
63void SetMockScreenOrientation(
64    RenderView* render_view,
65    const blink::WebScreenOrientationType& orientation);
66
67// Resets the mock screen orientation data.
68void ResetMockScreenOrientation();
69
70// Returns the length of the local session history of a render view.
71int GetLocalSessionHistoryLength(RenderView* render_view);
72
73// Sync the current session history to the browser process.
74void SyncNavigationState(RenderView* render_view);
75
76// Sets the focus of the render view depending on |enable|. This only overrides
77// the state of the renderer, and does not sync the focus to the browser
78// process.
79void SetFocusAndActivate(RenderView* render_view, bool enable);
80
81// Changes the window rect of the given render view.
82void ForceResizeRenderView(RenderView* render_view,
83                           const blink::WebSize& new_size);
84
85// Set the device scale factor and force the compositor to resize.
86void SetDeviceScaleFactor(RenderView* render_view, float factor);
87
88// Set the device color profile associated with the profile |name|.
89void SetDeviceColorProfile(RenderView* render_view, const std::string& name);
90
91// Enables or disables synchronous resize mode. When enabled, all window-sizing
92// machinery is short-circuited inside the renderer. This mode is necessary for
93// some tests that were written before browsers had multi-process architecture
94// and rely on window resizes to happen synchronously.
95// See http://crbug.com/309760 for details.
96void UseSynchronousResizeMode(RenderView* render_view, bool enable);
97
98// Control auto resize mode.
99void EnableAutoResizeMode(RenderView* render_view,
100                          const blink::WebSize& min_size,
101                          const blink::WebSize& max_size);
102void DisableAutoResizeMode(RenderView* render_view,
103                           const blink::WebSize& new_size);
104
105// Provides a text dump of the contents of the given page state.
106std::string DumpBackForwardList(std::vector<PageState>& page_state,
107                                size_t current_index);
108
109}  // namespace content
110
111#endif  // CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
112