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