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"
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/common/web_preferences.h"
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "content/test/test_render_frame_host.h"
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/test/test_web_contents.h"
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "media/base/video_frame.h"
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/rect.h"
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void InitNavigateParams(FrameHostMsg_DidCommitProvisionalLoad_Params* params,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        int page_id,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        const GURL& url,
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                        ui::PageTransition transition) {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->page_id = page_id;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->url = url;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->referrer = Referrer();
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->transition = transition;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->redirects = std::vector<GURL>();
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->should_update_history = false;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->searchable_form_url = GURL();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->searchable_form_encoding = std::string();
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->security_info = std::string();
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->gesture = NavigationGestureUser;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->was_within_same_page = false;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  params->is_post = false;
4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  params->page_state = PageState::CreateFromURL(url);
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderWidgetHostView::TestRenderWidgetHostView(RenderWidgetHost* rwh)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : rwh_(RenderWidgetHostImpl::From(rwh)),
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      is_showing_(false),
49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      did_swap_compositor_frame_(false) {
50868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  rwh_->SetView(this);
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderWidgetHostView::~TestRenderWidgetHostView() {
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RenderWidgetHost* TestRenderWidgetHostView::GetRenderWidgetHost() const {
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccigfx::Vector2dF TestRenderWidgetHostView::GetLastScrollOffset() const {
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return gfx::Vector2dF();
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::NativeView TestRenderWidgetHostView::GetNativeView() const {
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::NativeViewId TestRenderWidgetHostView::GetNativeViewId() const {
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return 0;
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::NativeViewAccessible TestRenderWidgetHostView::GetNativeViewAccessible() {
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
76010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ui::TextInputClient* TestRenderWidgetHostView::GetTextInputClient() {
77010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  return &text_input_client_;
78010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
79010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::HasFocus() const {
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::IsSurfaceAvailableForCopy() const {
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::Show() {
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  is_showing_ = true;
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::Hide() {
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  is_showing_ = false;
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::IsShowing() {
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return is_showing_;
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid TestRenderWidgetHostView::RenderProcessGone(base::TerminationStatus status,
1017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                                 int error_code) {
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  delete this;
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void TestRenderWidgetHostView::Destroy() { delete this; }
106868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::Rect TestRenderWidgetHostView::GetViewBounds() const {
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gfx::Rect();
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::CopyFromCompositingSurface(
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const gfx::Rect& src_subrect,
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const gfx::Size& dst_size,
1141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    CopyFromCompositingSurfaceCallback& callback,
115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const SkColorType color_type) {
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  callback.Run(false, SkBitmap());
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void TestRenderWidgetHostView::CopyFromCompositingSurfaceToVideoFrame(
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const gfx::Rect& src_subrect,
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const scoped_refptr<media::VideoFrame>& target,
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const base::Callback<void(bool)>& callback) {
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  callback.Run(false);
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool TestRenderWidgetHostView::CanCopyToVideoFrame() const {
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return false;
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
130f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfaceInitialized(int host_id,
131f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                                                             int route_id) {
132f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
133f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfaceBuffersSwapped(
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int gpu_host_id) {
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfacePostSubBuffer(
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int gpu_host_id) {
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::AcceleratedSurfaceSuspend() {
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::HasAcceleratedSurface(
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const gfx::Size& desired_size) {
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::SetActive(bool active) {
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // <viettrungluu@gmail.com>: Do I need to do anything here?
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::SupportsSpeech() const {
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::SpeakSelection() {
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::IsSpeaking() const {
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::StopSpeaking() {
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::PostProcessEventForPluginIme(
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const NativeWebKeyboardEvent& event) {
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::Rect TestRenderWidgetHostView::GetBoundsInRootWindow() {
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gfx::Rect();
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
183eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid TestRenderWidgetHostView::OnSwapCompositorFrame(
184ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    uint32 output_surface_id,
185eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    scoped_ptr<cc::CompositorFrame> frame) {
186eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  did_swap_compositor_frame_ = true;
187eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
188eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
189eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::GLSurfaceHandle TestRenderWidgetHostView::GetCompositingSurface() {
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return gfx::GLSurfaceHandle();
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderWidgetHostView::LockMouse() {
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderWidgetHostView::UnlockMouse() {
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(OS_WIN)
20290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void TestRenderWidgetHostView::SetParentNativeViewAccessible(
20390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    gfx::NativeViewAccessible accessible_parent) {
20490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
205f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
206f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)gfx::NativeViewId TestRenderWidgetHostView::GetParentForWindowlessPlugin()
207f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const {
208f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  return 0;
209f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
21090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif
21190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost::TestRenderViewHost(
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SiteInstance* instance,
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    RenderViewHostDelegate* delegate,
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    RenderWidgetHostDelegate* widget_delegate,
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int routing_id,
217868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    int main_frame_routing_id,
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    bool swapped_out)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : RenderViewHostImpl(instance,
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         delegate,
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         widget_delegate,
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         routing_id,
223868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)                         main_frame_routing_id,
2243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                         swapped_out,
2253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                         false /* hidden */),
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      render_view_created_(false),
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      delete_counter_(NULL),
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      simulate_fetch_via_proxy_(false),
229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      simulate_history_list_was_cleared_(false),
230fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch      contents_mime_type_("text/html"),
2315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      opener_route_id_(MSG_ROUTING_NONE),
2325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      main_render_frame_host_(NULL) {
233868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // TestRenderWidgetHostView installs itself into this->view_ in its
234868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // constructor, and deletes itself when TestRenderWidgetHostView::Destroy() is
235868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  // called.
236868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  new TestRenderWidgetHostView(this);
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost::~TestRenderViewHost() {
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (delete_counter_)
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ++*delete_counter_;
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderViewHost::CreateRenderView(
245a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const base::string16& frame_name,
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    int opener_route_id,
247cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    int proxy_route_id,
2480529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    int32 max_page_id,
2490529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    bool window_was_created_with_opener) {
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(!render_view_created_);
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  render_view_created_ = true;
252fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  opener_route_id_ = opener_route_id;
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool TestRenderViewHost::IsRenderViewLive() const {
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return render_view_created_;
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
260a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)bool TestRenderViewHost::IsFullscreen() const {
261a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return RenderViewHostImpl::IsFullscreen();
262a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
263a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigate(int page_id, const GURL& url) {
2655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigate(page_id, url);
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
268c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestRenderViewHost::SendFailedNavigate(int page_id, const GURL& url) {
2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendFailedNavigate(page_id, url);
270c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
271c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithTransition(
2735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    ui::PageTransition transition) {
2765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithTransition(page_id, url, transition);
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithOriginalRequestURL(
2805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& original_request_url) {
2835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithOriginalRequestURL(
2845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      page_id, url, original_request_url);
285b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
286b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
287b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void TestRenderViewHost::SendNavigateWithFile(
2885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const base::FilePath& file_path) {
2915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithFile(page_id, url, file_path);
2925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
2935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithParams(
2955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    FrameHostMsg_DidCommitProvisionalLoad_Params* params) {
2965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithParams(params);
297c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
298c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
299c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestRenderViewHost::SendNavigateWithTransitionAndResponseCode(
3005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
3015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
3021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    ui::PageTransition transition,
303c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    int response_code) {
3045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithTransitionAndResponseCode(
3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      page_id, url, transition, response_code);
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SendNavigateWithParameters(
3095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int page_id,
3105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& url,
3111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    ui::PageTransition transition,
3125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const GURL& original_request_url,
3135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    int response_code,
314b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    const base::FilePath* file_path_for_history_item) {
315b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
3165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->SendNavigateWithParameters(
3175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      page_id, url, transition, original_request_url, response_code,
3180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      file_path_for_history_item, std::vector<GURL>());
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
321a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void TestRenderViewHost::SendBeforeUnloadACK(bool proceed) {
322a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // TODO(creis): Move this whole method to TestRenderFrameHost.
323c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  base::TimeTicks now = base::TimeTicks::Now();
324a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  main_render_frame_host_->OnBeforeUnloadACK(proceed, now, now);
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SetContentsMimeType(const std::string& mime_type) {
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  contents_mime_type_ = mime_type;
3295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->set_contents_mime_type(mime_type);
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SimulateSwapOutACK() {
3337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  OnSwappedOut(false);
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SimulateWasHidden() {
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WasHidden();
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::SimulateWasShown() {
3416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  WasShown(ui::LatencyInfo());
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void TestRenderViewHost::TestOnStartDragging(
345eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const DropData& drop_data) {
346f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  blink::WebDragOperationsMask drag_operation = blink::WebDragOperationEvery;
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DragEventSourceInfo event_info;
3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  OnStartDragging(drop_data, drag_operation, SkBitmap(), gfx::Vector2d(),
3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                  event_info);
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
352b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void TestRenderViewHost::TestOnUpdateStateWithFile(
3531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    int page_id,
354b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    const base::FilePath& file_path) {
3551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  OnUpdateState(page_id,
35690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                PageState::CreateForTesting(GURL("http://www.google.com"),
35790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                            false,
35890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                            "data",
35990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                            &file_path));
360b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
361b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void TestRenderViewHost::set_simulate_fetch_via_proxy(bool proxy) {
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  simulate_fetch_via_proxy_ = proxy;
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
366c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestRenderViewHost::set_simulate_history_list_was_cleared(bool cleared) {
367c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  simulate_history_list_was_cleared_ = cleared;
3685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  main_render_frame_host_->set_simulate_history_list_was_cleared(cleared);
369c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
370c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RenderViewHostImplTestHarness::RenderViewHostImplTestHarness() {
37268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  std::vector<ui::ScaleFactor> scale_factors;
37368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  scale_factors.push_back(ui::SCALE_FACTOR_100P);
37468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  scoped_set_supported_scale_factors_.reset(
37568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      new ui::test::ScopedSetSupportedScaleFactors(scale_factors));
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RenderViewHostImplTestHarness::~RenderViewHostImplTestHarness() {
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost* RenderViewHostImplTestHarness::test_rvh() {
3826e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  return contents()->GetRenderViewHost();
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost* RenderViewHostImplTestHarness::pending_test_rvh() {
3866e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  return contents()->GetPendingMainFrame() ?
3876e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      contents()->GetPendingMainFrame()->GetRenderViewHost() :
3886e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      NULL;
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestRenderViewHost* RenderViewHostImplTestHarness::active_test_rvh() {
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<TestRenderViewHost*>(active_rvh());
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TestRenderFrameHost* RenderViewHostImplTestHarness::main_test_rfh() {
3966e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  return contents()->GetMainFrame();
397a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
398a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestWebContents* RenderViewHostImplTestHarness::contents() {
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return static_cast<TestWebContents*>(web_contents());
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
404