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