• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 class GURL;
16 
17 namespace blink {
18 class WebBatteryStatus;
19 class WebDeviceMotionData;
20 class WebDeviceOrientationData;
21 class WebGamepad;
22 class WebGamepads;
23 class WebLayer;
24 struct WebSize;
25 class WebView;
26 class WebURLResponse;
27 }
28 
29 namespace content {
30 
31 class PageState;
32 class RenderFrame;
33 class RendererGamepadProvider;
34 class RenderView;
35 class WebTestProxyBase;
36 
37 // Turn the browser process into layout test mode.
38 void EnableBrowserLayoutTestMode();
39 
40 ///////////////////////////////////////////////////////////////////////////////
41 // The following methods are meant to be used from a renderer.
42 
43 // Turn a renderer into layout test mode.
44 void EnableRendererLayoutTestMode();
45 
46 // Enable injecting of a WebTestProxy between WebViews and RenderViews.
47 // |callback| is invoked with a pointer to WebTestProxyBase for each created
48 // WebTestProxy.
49 void EnableWebTestProxyCreation(
50     const base::Callback<void(RenderView*, WebTestProxyBase*)>& callback);
51 
52 typedef base::Callback<void(const blink::WebURLResponse& response,
53                             const std::string& data)> FetchManifestCallback;
54 void FetchManifest(blink::WebView* view, const GURL& url,
55                    const FetchManifestCallback&);
56 
57 // Sets gamepad provider to be used for layout tests.
58 void SetMockGamepadProvider(scoped_ptr<RendererGamepadProvider> provider);
59 
60 // Sets a double that should be used when registering
61 // a listener through WebKitPlatformSupport::setDeviceLightListener().
62 void SetMockDeviceLightData(const double data);
63 
64 // Sets WebDeviceMotionData that should be used when registering
65 // a listener through WebKitPlatformSupport::setDeviceMotionListener().
66 void SetMockDeviceMotionData(const blink::WebDeviceMotionData& data);
67 
68 // Sets WebDeviceOrientationData that should be used when registering
69 // a listener through WebKitPlatformSupport::setDeviceOrientationListener().
70 void SetMockDeviceOrientationData(const blink::WebDeviceOrientationData& data);
71 
72 // Notifies blink that battery status has changed.
73 void MockBatteryStatusChanged(const blink::WebBatteryStatus& status);
74 
75 // Returns the length of the local session history of a render view.
76 int GetLocalSessionHistoryLength(RenderView* render_view);
77 
78 // Sync the current session history to the browser process.
79 void SyncNavigationState(RenderView* render_view);
80 
81 // Sets the focus of the render view depending on |enable|. This only overrides
82 // the state of the renderer, and does not sync the focus to the browser
83 // process.
84 void SetFocusAndActivate(RenderView* render_view, bool enable);
85 
86 // Changes the window rect of the given render view.
87 void ForceResizeRenderView(RenderView* render_view,
88                            const blink::WebSize& new_size);
89 
90 // Set the device scale factor and force the compositor to resize.
91 void SetDeviceScaleFactor(RenderView* render_view, float factor);
92 
93 // Set the device color profile associated with the profile |name|.
94 void SetDeviceColorProfile(RenderView* render_view, const std::string& name);
95 
96 // Enables or disables synchronous resize mode. When enabled, all window-sizing
97 // machinery is short-circuited inside the renderer. This mode is necessary for
98 // some tests that were written before browsers had multi-process architecture
99 // and rely on window resizes to happen synchronously.
100 // See http://crbug.com/309760 for details.
101 void UseSynchronousResizeMode(RenderView* render_view, bool enable);
102 
103 // Control auto resize mode.
104 void EnableAutoResizeMode(RenderView* render_view,
105                           const blink::WebSize& min_size,
106                           const blink::WebSize& max_size);
107 void DisableAutoResizeMode(RenderView* render_view,
108                            const blink::WebSize& new_size);
109 
110 // Provides a text dump of the contents of the given page state.
111 std::string DumpBackForwardList(std::vector<PageState>& page_state,
112                                 size_t current_index);
113 
114 // Instantiates WebLayerImpl for TestPlugin.
115 blink::WebLayer* InstantiateWebLayer(scoped_refptr<cc::TextureLayer> layer);
116 
117 }  // namespace content
118 
119 #endif  // CONTENT_PUBLIC_TEST_LAYOUTTEST_SUPPORT_H_
120