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