test_render_view_host.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "content/test/test_render_view_host.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
8bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "content/browser/dom_storage/dom_storage_context_wrapper.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/dom_storage/session_storage_namespace_impl.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/site_instance_impl.h"
11bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "content/common/dom_storage/dom_storage_types.h"
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "content/common/frame_messages.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/view_messages.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/browser_context.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/navigation_controller.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/storage_partition.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/content_client.h"
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/public/common/page_state.h"
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/test/test_web_contents.h"
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "media/base/video_frame.h"
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/rect.h"
22868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "webkit/common/webpreferences.h"
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void InitNavigateParams(FrameHostMsg_DidCommitProvisionalLoad_Params* params,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        int page_id,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        const GURL& url,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        PageTransition transition) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->page_id = page_id;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->url = url;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->referrer = Referrer();
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->transition = transition;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->redirects = std::vector<GURL>();
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->should_update_history = false;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->searchable_form_url = GURL();
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->searchable_form_encoding = std::string();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->security_info = std::string();
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->gesture = NavigationGestureUser;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->was_within_same_page = false;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->is_post = false;
4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  params->page_state = PageState::CreateFromURL(url);
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderWidgetHostView::TestRenderWidgetHostView(RenderWidgetHost* rwh)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : rwh_(RenderWidgetHostImpl::From(rwh)),
47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      is_showing_(false),
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      did_swap_compositor_frame_(false) {
49868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  rwh_->SetView(this);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderWidgetHostView::~TestRenderWidgetHostView() {
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RenderWidgetHost* TestRenderWidgetHostView::GetRenderWidgetHost() const {
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::NativeView TestRenderWidgetHostView::GetNativeView() const {
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::NativeViewId TestRenderWidgetHostView::GetNativeViewId() const {
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return 0;
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::NativeViewAccessible TestRenderWidgetHostView::GetNativeViewAccessible() {
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
71010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ui::TextInputClient* TestRenderWidgetHostView::GetTextInputClient() {
72010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  return &text_input_client_;
73010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
74010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::HasFocus() const {
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::IsSurfaceAvailableForCopy() const {
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::Show() {
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  is_showing_ = true;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::Hide() {
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  is_showing_ = false;
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::IsShowing() {
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return is_showing_;
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid TestRenderWidgetHostView::RenderProcessGone(base::TerminationStatus status,
967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                                 int error_code) {
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  delete this;
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
100868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void TestRenderWidgetHostView::Destroy() { delete this; }
101868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::Rect TestRenderWidgetHostView::GetViewBounds() const {
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gfx::Rect();
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::CopyFromCompositingSurface(
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const gfx::Rect& src_subrect,
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const gfx::Size& dst_size,
1095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const base::Callback<void(bool, const SkBitmap&)>& callback,
1105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const SkBitmap::Config config) {
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  callback.Run(false, SkBitmap());
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void TestRenderWidgetHostView::CopyFromCompositingSurfaceToVideoFrame(
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const gfx::Rect& src_subrect,
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const scoped_refptr<media::VideoFrame>& target,
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const base::Callback<void(bool)>& callback) {
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  callback.Run(false);
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool TestRenderWidgetHostView::CanCopyToVideoFrame() const {
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return false;
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
125f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfaceInitialized(int host_id,
126f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                                                             int route_id) {
127f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
128f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfaceBuffersSwapped(
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int gpu_host_id) {
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfacePostSubBuffer(
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int gpu_host_id) {
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfaceSuspend() {
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::HasAcceleratedSurface(
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const gfx::Size& desired_size) {
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::SetActive(bool active) {
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // <viettrungluu@gmail.com>: Do I need to do anything here?
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::SupportsSpeech() const {
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::SpeakSelection() {
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::IsSpeaking() const {
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::StopSpeaking() {
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::PostProcessEventForPluginIme(
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const NativeWebKeyboardEvent& event) {
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::Rect TestRenderWidgetHostView::GetBoundsInRootWindow() {
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gfx::Rect();
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
178eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid TestRenderWidgetHostView::OnSwapCompositorFrame(
179ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    uint32 output_surface_id,
180eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    scoped_ptr<cc::CompositorFrame> frame) {
181eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  did_swap_compositor_frame_ = true;
182eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
183eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
184eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::GLSurfaceHandle TestRenderWidgetHostView::GetCompositingSurface() {
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gfx::GLSurfaceHandle();
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::LockMouse() {
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::UnlockMouse() {
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(OS_WIN)
19790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void TestRenderWidgetHostView::SetParentNativeViewAccessible(
19890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    gfx::NativeViewAccessible accessible_parent) {
19990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
200f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
201f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)gfx::NativeViewId TestRenderWidgetHostView::GetParentForWindowlessPlugin()
202f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const {
203f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  return 0;
204f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
20590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif
20690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost::TestRenderViewHost(
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SiteInstance* instance,
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    RenderViewHostDelegate* delegate,
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    RenderWidgetHostDelegate* widget_delegate,
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int routing_id,
212868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    int main_frame_routing_id,
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    bool swapped_out)
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : RenderViewHostImpl(instance,
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         delegate,
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         widget_delegate,
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         routing_id,
218868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)                         main_frame_routing_id,
2193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                         swapped_out,
2203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                         false /* hidden */),
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      render_view_created_(false),
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      delete_counter_(NULL),
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      simulate_fetch_via_proxy_(false),
224c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      simulate_history_list_was_cleared_(false),
225fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch      contents_mime_type_("text/html"),
2265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      opener_route_id_(MSG_ROUTING_NONE),
2275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      main_render_frame_host_(NULL) {
228868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // TestRenderWidgetHostView installs itself into this->view_ in its
229868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // constructor, and deletes itself when TestRenderWidgetHostView::Destroy() is
230868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // called.
231868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  new TestRenderWidgetHostView(this);
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost::~TestRenderViewHost() {
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (delete_counter_)
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ++*delete_counter_;
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderViewHost::CreateRenderView(
240a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const base::string16& frame_name,
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int opener_route_id,
242cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    int proxy_route_id,
2430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    int32 max_page_id,
2440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    bool window_was_created_with_opener) {
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!render_view_created_);
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  render_view_created_ = true;
247fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  opener_route_id_ = opener_route_id;
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderViewHost::IsRenderViewLive() const {
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return render_view_created_;
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)bool TestRenderViewHost::IsFullscreen() const {
256a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return RenderViewHostImpl::IsFullscreen();
257a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
258a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigate(int page_id, const GURL& url) {
2605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigate(page_id, url);
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
263c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestRenderViewHost::SendFailedNavigate(int page_id, const GURL& url) {
2645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendFailedNavigate(page_id, url);
265c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
266c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithTransition(
2685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    PageTransition transition) {
2715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithTransition(page_id, url, transition);
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithOriginalRequestURL(
2755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& original_request_url) {
2785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithOriginalRequestURL(
2795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      page_id, url, original_request_url);
280b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
281b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
282b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void TestRenderViewHost::SendNavigateWithFile(
2835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const base::FilePath& file_path) {
2865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithFile(page_id, url, file_path);
2875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
2885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithParams(
2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    FrameHostMsg_DidCommitProvisionalLoad_Params* params) {
2915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithParams(params);
292c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
293c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
294c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestRenderViewHost::SendNavigateWithTransitionAndResponseCode(
2955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    PageTransition transition,
298c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    int response_code) {
2995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithTransitionAndResponseCode(
3005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      page_id, url, transition, response_code);
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithParameters(
3045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
3065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    PageTransition transition,
3075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& original_request_url,
3085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int response_code,
309b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    const base::FilePath* file_path_for_history_item) {
310b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
3115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithParameters(
3125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      page_id, url, transition, original_request_url, response_code,
3130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      file_path_for_history_item, std::vector<GURL>());
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
316a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void TestRenderViewHost::SendBeforeUnloadACK(bool proceed) {
317a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // TODO(creis): Move this whole method to TestRenderFrameHost.
318c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  base::TimeTicks now = base::TimeTicks::Now();
319a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  main_render_frame_host_->OnBeforeUnloadACK(proceed, now, now);
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SetContentsMimeType(const std::string& mime_type) {
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  contents_mime_type_ = mime_type;
3245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->set_contents_mime_type(mime_type);
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SimulateSwapOutACK() {
3287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  OnSwappedOut(false);
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SimulateWasHidden() {
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WasHidden();
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SimulateWasShown() {
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WasShown();
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void TestRenderViewHost::TestOnStartDragging(
340eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const DropData& drop_data) {
341f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  blink::WebDragOperationsMask drag_operation = blink::WebDragOperationEvery;
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DragEventSourceInfo event_info;
3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  OnStartDragging(drop_data, drag_operation, SkBitmap(), gfx::Vector2d(),
3442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                  event_info);
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
347b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void TestRenderViewHost::TestOnUpdateStateWithFile(
348b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    int process_id,
349b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    const base::FilePath& file_path) {
35090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  OnUpdateState(process_id,
35190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                PageState::CreateForTesting(GURL("http://www.google.com"),
35290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                            false,
35390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                            "data",
35490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                            &file_path));
355b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
356b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::set_simulate_fetch_via_proxy(bool proxy) {
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  simulate_fetch_via_proxy_ = proxy;
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
361c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestRenderViewHost::set_simulate_history_list_was_cleared(bool cleared) {
362c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  simulate_history_list_was_cleared_ = cleared;
3635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->set_simulate_history_list_was_cleared(cleared);
364c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
365c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RenderViewHostImplTestHarness::RenderViewHostImplTestHarness() {
36768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  std::vector<ui::ScaleFactor> scale_factors;
36868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  scale_factors.push_back(ui::SCALE_FACTOR_100P);
36968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  scoped_set_supported_scale_factors_.reset(
37068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      new ui::test::ScopedSetSupportedScaleFactors(scale_factors));
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RenderViewHostImplTestHarness::~RenderViewHostImplTestHarness() {
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost* RenderViewHostImplTestHarness::test_rvh() {
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<TestRenderViewHost*>(rvh());
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost* RenderViewHostImplTestHarness::pending_test_rvh() {
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<TestRenderViewHost*>(pending_rvh());
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost* RenderViewHostImplTestHarness::active_test_rvh() {
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<TestRenderViewHost*>(active_rvh());
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
388a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TestRenderFrameHost* RenderViewHostImplTestHarness::main_test_rfh() {
389a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return static_cast<TestRenderFrameHost*>(main_rfh());
390a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
391a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestWebContents* RenderViewHostImplTestHarness::contents() {
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<TestWebContents*>(web_contents());
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
397