diff options
author | avi <avi@chromium.org> | 2015-10-16 10:40:43 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-16 17:41:43 +0000 |
commit | 3627ecac5d720b442e5ee27829d064fdf55c8486 (patch) | |
tree | a3ecfdccbe6bc8645dd1c8ccfd0aea2c699f9cd5 | |
parent | 5afc24479ba6b45f12caaa1fb805930004db2596 (diff) | |
download | chromium_src-3627ecac5d720b442e5ee27829d064fdf55c8486.zip chromium_src-3627ecac5d720b442e5ee27829d064fdf55c8486.tar.gz chromium_src-3627ecac5d720b442e5ee27829d064fdf55c8486.tar.bz2 |
Separate RenderViewHost from RenderWidgetHost, part 2: public implementation.
This is the second part of the separation of RenderViewHost and RenderWidgetHost.
BUG=542477
TEST=all green
Review URL: https://codereview.chromium.org/1413643002
Cr-Commit-Position: refs/heads/master@{#354537}
22 files changed, 90 insertions, 86 deletions
diff --git a/content/browser/browser_plugin/browser_plugin_embedder.cc b/content/browser/browser_plugin/browser_plugin_embedder.cc index 87659e4..04cd3ab 100644 --- a/content/browser/browser_plugin/browser_plugin_embedder.cc +++ b/content/browser/browser_plugin/browser_plugin_embedder.cc @@ -105,8 +105,9 @@ void BrowserPluginEmbedder::ClearGuestDragStateIfApplicable() { // static bool BrowserPluginEmbedder::DidSendScreenRectsCallback( WebContents* guest_web_contents) { - static_cast<RenderViewHostImpl*>( - guest_web_contents->GetRenderViewHost())->SendScreenRects(); + RenderWidgetHostImpl::From( + guest_web_contents->GetRenderViewHost()->GetWidget()) + ->SendScreenRects(); // Not handled => Iterate over all guests. return false; } diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc index a79c954..eaec2fe 100644 --- a/content/browser/browser_plugin/browser_plugin_guest.cc +++ b/content/browser/browser_plugin/browser_plugin_guest.cc @@ -236,10 +236,11 @@ bool BrowserPluginGuest::OnMessageReceivedFromEmbedder( RenderWidgetHostViewGuest* rwhv = static_cast<RenderWidgetHostViewGuest*>( web_contents()->GetRenderWidgetHostView()); // Until the guest is attached, it should not be handling input events. - if (attached() && rwhv && rwhv->OnMessageReceivedFromEmbedder( + if (attached() && rwhv && + rwhv->OnMessageReceivedFromEmbedder( message, - static_cast<RenderViewHostImpl*>( - embedder_web_contents()->GetRenderViewHost()))) { + RenderWidgetHostImpl::From( + embedder_web_contents()->GetRenderViewHost()->GetWidget()))) { return true; } @@ -332,8 +333,8 @@ void BrowserPluginGuest::InitInternal( DCHECK(GetWebContents()->GetRenderViewHost()); // Initialize the device scale factor by calling |NotifyScreenInfoChanged|. - auto render_widget_host = - RenderWidgetHostImpl::From(GetWebContents()->GetRenderViewHost()); + auto render_widget_host = RenderWidgetHostImpl::From( + GetWebContents()->GetRenderViewHost()->GetWidget()); render_widget_host->NotifyScreenInfoChanged(); // TODO(chrishtr): this code is wrong. The navigate_on_drag_drop field will @@ -948,10 +949,10 @@ void BrowserPluginGuest::OnUpdateGeometry(int browser_plugin_instance_id, // The plugin has moved within the embedder without resizing or the // embedder/container's view rect changing. guest_window_rect_ = view_rect; - RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>( - GetWebContents()->GetRenderViewHost()); - if (rvh) - rvh->SendScreenRects(); + RenderWidgetHostImpl* rwh = RenderWidgetHostImpl::From( + GetWebContents()->GetRenderViewHost()->GetWidget()); + if (rwh) + rwh->SendScreenRects(); } void BrowserPluginGuest::OnHasTouchEventHandlers(bool accept) { diff --git a/content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.mm b/content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.mm index 413c96f..6817078 100644 --- a/content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.mm +++ b/content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.mm @@ -7,6 +7,7 @@ #include "content/browser/frame_host/render_frame_host_impl.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/renderer_host/render_widget_host_view_mac.h" +#include "content/public/browser/render_widget_host.h" namespace content { @@ -18,7 +19,8 @@ BrowserPluginPopupMenuHelper::BrowserPluginPopupMenuHelper( RenderWidgetHostViewMac* BrowserPluginPopupMenuHelper::GetRenderWidgetHostView() const { - return static_cast<RenderWidgetHostViewMac*>(embedder_rvh_->GetView()); + return static_cast<RenderWidgetHostViewMac*>( + embedder_rvh_->GetWidget()->GetView()); } } // namespace content diff --git a/content/browser/devtools/devtools_manager_unittest.cc b/content/browser/devtools/devtools_manager_unittest.cc index 2c95986..009350a 100644 --- a/content/browser/devtools/devtools_manager_unittest.cc +++ b/content/browser/devtools/devtools_manager_unittest.cc @@ -141,7 +141,8 @@ TEST_F(DevToolsManagerTest, NoUnresponsiveDialogInInspectedContents) { client_host.InspectAgentHost(agent_host.get()); // Start with a short timeout. - inspected_rvh->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10)); + inspected_rvh->GetWidget()->StartHangMonitorTimeout( + TimeDelta::FromMilliseconds(10)); // Wait long enough for first timeout and see if it fired. base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), @@ -152,7 +153,8 @@ TEST_F(DevToolsManagerTest, NoUnresponsiveDialogInInspectedContents) { // Now close devtools and check that the notification is delivered. client_host.Close(); // Start with a short timeout. - inspected_rvh->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10)); + inspected_rvh->GetWidget()->StartHangMonitorTimeout( + TimeDelta::FromMilliseconds(10)); // Wait long enough for first timeout and see if it fired. base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), diff --git a/content/browser/frame_host/cross_process_frame_connector.cc b/content/browser/frame_host/cross_process_frame_connector.cc index be3b397..a09af64 100644 --- a/content/browser/frame_host/cross_process_frame_connector.cc +++ b/content/browser/frame_host/cross_process_frame_connector.cc @@ -180,7 +180,7 @@ void CrossProcessFrameConnector::OnForwardInputEvent( RenderWidgetHostImpl* parent_widget = manager->ForInnerDelegate() ? manager->GetOuterRenderWidgetHostForKeyboardInput() - : frame_proxy_in_parent_renderer_->GetRenderViewHost(); + : frame_proxy_in_parent_renderer_->GetRenderViewHost()->GetWidget(); if (blink::WebInputEvent::isKeyboardEventType(event->type)) { if (!parent_widget->GetLastKeyboardEvent()) diff --git a/content/browser/frame_host/interstitial_page_impl.cc b/content/browser/frame_host/interstitial_page_impl.cc index 8b7a227..8106471 100644 --- a/content/browser/frame_host/interstitial_page_impl.cc +++ b/content/browser/frame_host/interstitial_page_impl.cc @@ -288,8 +288,8 @@ void InterstitialPageImpl::Hide() { // If the focus was on the interstitial, let's keep it to the page. // (Note that in unit-tests the RVH may not have a view). - if (render_view_host_->GetView() && - render_view_host_->GetView()->HasFocus() && + if (render_view_host_->GetWidget()->GetView() && + render_view_host_->GetWidget()->GetView()->HasFocus() && controller_->delegate()->GetRenderViewHost()->GetWidget()->GetView()) { controller_->delegate() ->GetRenderViewHost() @@ -350,10 +350,8 @@ void InterstitialPageImpl::Observe( if (action_taken_ == NO_ACTION) { // The RenderViewHost is being destroyed (as part of the tab being // closed); make sure we clear the blocked requests. - RenderViewHost* rvh = static_cast<RenderViewHost*>( - static_cast<RenderViewHostImpl*>( - RenderWidgetHostImpl::From( - Source<RenderWidgetHost>(source).ptr()))); + RenderViewHost* rvh = + RenderViewHost::From(Source<RenderWidgetHost>(source).ptr()); DCHECK(rvh->GetProcess()->GetID() == original_child_id_ && rvh->GetRoutingID() == original_rvh_id_); TakeActionOnResourceDispatcher(CANCEL); @@ -513,7 +511,7 @@ void InterstitialPageImpl::DidNavigate( // The RenderViewHost has loaded its contents, we can show it now. if (!controller_->delegate()->IsHidden()) - render_view_host_->GetView()->Show(); + render_view_host_->GetWidget()->GetView()->Show(); controller_->delegate()->AttachInterstitialPage(this); RenderWidgetHostView* rwh_view = @@ -609,8 +607,8 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() { WebContentsView* wcv = static_cast<WebContentsImpl*>(web_contents())->GetView(); RenderWidgetHostViewBase* view = - wcv->CreateViewForWidget(render_view_host_, false); - render_view_host_->SetView(view); + wcv->CreateViewForWidget(render_view_host_->GetWidget(), false); + RenderWidgetHostImpl::From(render_view_host_->GetWidget())->SetView(view); render_view_host_->AllowBindings(BINDINGS_POLICY_DOM_AUTOMATION); int32 max_page_id = web_contents()-> @@ -720,8 +718,8 @@ void InterstitialPageImpl::SetSize(const gfx::Size& size) { #if !defined(OS_MACOSX) // When a tab is closed, we might be resized after our view was NULLed // (typically if there was an info-bar). - if (render_view_host_->GetView()) - render_view_host_->GetView()->SetSize(size); + if (render_view_host_->GetWidget()->GetView()) + render_view_host_->GetWidget()->GetView()->SetSize(size); #else // TODO(port): Does Mac need to SetSize? NOTIMPLEMENTED(); @@ -732,7 +730,7 @@ void InterstitialPageImpl::Focus() { // Focus the native window. if (!enabled()) return; - render_view_host_->GetView()->Focus(); + render_view_host_->GetWidget()->GetView()->Focus(); } void InterstitialPageImpl::FocusThroughTabTraversal(bool reverse) { @@ -742,7 +740,7 @@ void InterstitialPageImpl::FocusThroughTabTraversal(bool reverse) { } RenderWidgetHostView* InterstitialPageImpl::GetView() { - return render_view_host_->GetView(); + return render_view_host_->GetWidget()->GetView(); } RenderFrameHost* InterstitialPageImpl::GetMainFrame() const { diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index 68846dd..1d36b03 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc @@ -313,7 +313,8 @@ RenderFrameHostManager::GetOuterRenderWidgetHostForKeyboardInput() { delegate_->GetOuterDelegateFrameTreeNodeID()); return outer_contents_frame_tree_node->parent() ->current_frame_host() - ->render_view_host(); + ->render_view_host() + ->GetWidget(); } RenderFrameProxyHost* RenderFrameHostManager::GetProxyToParent() { @@ -432,8 +433,9 @@ RenderFrameHostImpl* RenderFrameHostManager::Navigate( // need to set the visibility of the new View to the correct value here // after reload. if (dest_render_frame_host->GetView() && - dest_render_frame_host->render_view_host()->is_hidden() != - delegate_->IsHidden()) { + dest_render_frame_host->render_view_host() + ->GetWidget() + ->is_hidden() != delegate_->IsHidden()) { if (delegate_->IsHidden()) { dest_render_frame_host->GetView()->Hide(); } else { @@ -1834,7 +1836,7 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( // If we are reusing the RenderViewHost and it doesn't already have a // RenderWidgetHostView, we need to create one if this is the main frame. - if (!swapped_out && !render_view_host->GetView()) + if (!swapped_out && !render_view_host->GetWidget()->GetView()) delegate_->CreateRenderWidgetHostViewForRenderManager(render_view_host); } else { DCHECK(render_view_host->IsRenderViewLive()); @@ -1849,8 +1851,8 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( // Only the RenderViewHost for the top-level RenderFrameHost has a // RenderWidgetHostView; RenderWidgetHosts for out-of-process iframes // will be created later and hidden. - if (render_view_host->GetView()) - render_view_host->GetView()->Hide(); + if (render_view_host->GetWidget()->GetView()) + render_view_host->GetWidget()->GetView()->Hide(); } // RenderViewHost for |instance| might exist prior to calling // CreateRenderFrame. In such a case, InitRenderView will not create the @@ -2204,8 +2206,10 @@ void RenderFrameHostManager::CommitPending() { // For top-level frames, also hide the old RenderViewHost's view. // TODO(creis): As long as show/hide are on RVH, we don't want to hide on // subframe navigations or we will interfere with the top-level frame. - if (is_main_frame && old_render_frame_host->render_view_host()->GetView()) - old_render_frame_host->render_view_host()->GetView()->Hide(); + if (is_main_frame && + old_render_frame_host->render_view_host()->GetWidget()->GetView()) { + old_render_frame_host->render_view_host()->GetWidget()->GetView()->Hide(); + } // Make sure the size is up to date. (Fix for bug 1079768.) delegate_->UpdateRenderViewSizeForRenderManager(); diff --git a/content/browser/frame_host/render_frame_host_manager_unittest.cc b/content/browser/frame_host/render_frame_host_manager_unittest.cc index 57ae342..768b59f 100644 --- a/content/browser/frame_host/render_frame_host_manager_unittest.cc +++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc @@ -721,7 +721,7 @@ TEST_F(RenderFrameHostManagerTest, WhiteListSwapCompositorFrame) { TestRenderFrameHost* swapped_out_rfh = CreateSwappedOutRenderFrameHost(); TestRenderWidgetHostView* swapped_out_rwhv = static_cast<TestRenderWidgetHostView*>( - swapped_out_rfh->GetRenderViewHost()->GetView()); + swapped_out_rfh->GetRenderViewHost()->GetWidget()->GetView()); EXPECT_FALSE(swapped_out_rwhv->did_swap_compositor_frame()); MockRenderProcessHost* process_host = swapped_out_rfh->GetProcess(); @@ -1818,8 +1818,9 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyClose) { EXPECT_EQ(host2, GetPendingFrameHost(manager)); // 3) Close the tab. ------------------------- - notifications.ListenFor(NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, - Source<RenderWidgetHost>(host2->render_view_host())); + notifications.ListenFor( + NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, + Source<RenderWidgetHost>(host2->render_view_host()->GetWidget())); manager->OnBeforeUnloadACK(false, true, base::TimeTicks()); EXPECT_TRUE( diff --git a/content/browser/loader/resource_scheduler_unittest.cc b/content/browser/loader/resource_scheduler_unittest.cc index e773f6a..99104a9 100644 --- a/content/browser/loader/resource_scheduler_unittest.cc +++ b/content/browser/loader/resource_scheduler_unittest.cc @@ -2218,10 +2218,10 @@ TEST_F(ResourceSchedulerTest, GetVisualSignalFromRenderViewHost) { // Check initial visibility is set correctly. EXPECT_EQ(scheduler->IsClientVisibleForTesting(rvh1->GetProcess()->GetID(), rvh1->GetRoutingID()), - !rvh1->is_hidden()); + !rvh1->GetWidget()->is_hidden()); EXPECT_EQ(scheduler->IsClientVisibleForTesting(rvh2->GetProcess()->GetID(), rvh1->GetRoutingID()), - !rvh2->is_hidden()); + !rvh2->GetWidget()->is_hidden()); // 1 visible, 1 hidden rvh1->WasShown(ui::LatencyInfo()); diff --git a/content/browser/media/capture/web_contents_video_capture_device_unittest.cc b/content/browser/media/capture/web_contents_video_capture_device_unittest.cc index 6e133b1..7a79a23 100644 --- a/content/browser/media/capture/web_contents_video_capture_device_unittest.cc +++ b/content/browser/media/capture/web_contents_video_capture_device_unittest.cc @@ -262,8 +262,8 @@ class CaptureTestRenderViewHost : public TestRenderViewHost { controller_(controller) { // Override the default view installed by TestRenderViewHost; we need // our special subclass which has mocked-out tab capture support. - RenderWidgetHostView* old_view = GetView(); - SetView(new CaptureTestView(this, controller)); + RenderWidgetHostView* old_view = GetWidget()->GetView(); + GetWidget()->SetView(new CaptureTestView(GetWidget(), controller)); delete old_view; } diff --git a/content/browser/renderer_host/input/touch_input_browsertest.cc b/content/browser/renderer_host/input/touch_input_browsertest.cc index a497dd7..7cb9d54 100644 --- a/content/browser/renderer_host/input/touch_input_browsertest.cc +++ b/content/browser/renderer_host/input/touch_input_browsertest.cc @@ -153,8 +153,8 @@ class TouchInputBrowserTest : public ContentBrowserTest { WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(shell()->web_contents()); - RenderWidgetHostImpl* host = - RenderWidgetHostImpl::From(web_contents->GetRenderViewHost()); + RenderWidgetHostImpl* host = RenderWidgetHostImpl::From( + web_contents->GetRenderViewHost()->GetWidget()); host->GetView()->SetSize(gfx::Size(400, 400)); // The page is loaded in the renderer, wait for a new frame to arrive. diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index b09ff1f..0c6793f 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc @@ -177,8 +177,7 @@ RenderViewHost* RenderViewHost::FromID(int render_process_id, // static RenderViewHost* RenderViewHost::From(RenderWidgetHost* rwh) { - DCHECK(rwh->IsRenderView()); - return static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(rwh)); + return RenderViewHostImpl::From(rwh); } /////////////////////////////////////////////////////////////////////////////// @@ -194,6 +193,12 @@ RenderViewHostImpl* RenderViewHostImpl::FromID(int render_process_id, return static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(widget)); } +// static +RenderViewHostImpl* RenderViewHostImpl::From(RenderWidgetHost* rwh) { + DCHECK(rwh->IsRenderView()); + return static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(rwh)); +} + RenderViewHostImpl::RenderViewHostImpl( SiteInstance* instance, RenderViewHostDelegate* delegate, @@ -738,9 +743,9 @@ bool RenderViewHostImpl::Send(IPC::Message* msg) { return RenderWidgetHostImpl::Send(msg); } -RenderWidgetHost* RenderViewHostImpl::GetWidget() const { - return const_cast<RenderWidgetHost*>( - static_cast<const RenderWidgetHost*>(this)); +RenderWidgetHostImpl* RenderViewHostImpl::GetWidget() const { + return const_cast<RenderWidgetHostImpl*>( + static_cast<const RenderWidgetHostImpl*>(this)); } RenderProcessHost* RenderViewHostImpl::GetProcess() const { diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h index db63ad5..7c8d754 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h @@ -93,14 +93,16 @@ struct FrameReplicationState; // // For context, please see https://crbug.com/467770 and // http://www.chromium.org/developers/design-documents/site-isolation. -class CONTENT_EXPORT RenderViewHostImpl - : public RenderViewHost, - public RenderWidgetHostImpl, - public RenderProcessHostObserver { +class CONTENT_EXPORT RenderViewHostImpl : public RenderViewHost, + RenderWidgetHostImpl, + public RenderProcessHostObserver { public: // Convenience function, just like RenderViewHost::FromID. static RenderViewHostImpl* FromID(int render_process_id, int render_view_id); + // Convenience function, just like RenderViewHost::From. + static RenderViewHostImpl* From(RenderWidgetHost* rwh); + // |routing_id| must be a valid route id. |swapped_out| indicates // whether the view should initially be swapped out (e.g., for an opener // frame being rendered by another process). |hidden| indicates whether the @@ -123,7 +125,7 @@ class CONTENT_EXPORT RenderViewHostImpl // RenderViewHost implementation. bool Send(IPC::Message* msg) override; - RenderWidgetHost* GetWidget() const override; + RenderWidgetHostImpl* GetWidget() const override; RenderProcessHost* GetProcess() const override; int GetRoutingID() const override; RenderFrameHost* GetMainFrame() override; diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 0b86c70..f11607f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -308,7 +308,7 @@ RenderWidgetHostImpl::GetAllRenderWidgetHosts() { // static RenderWidgetHostImpl* RenderWidgetHostImpl::From(RenderWidgetHost* rwh) { - return rwh->AsRenderWidgetHostImpl(); + return static_cast<RenderWidgetHostImpl*>(rwh); } void RenderWidgetHostImpl::SetView(RenderWidgetHostViewBase* view) { @@ -340,10 +340,6 @@ RenderWidgetHostView* RenderWidgetHostImpl::GetView() const { return view_; } -RenderWidgetHostImpl* RenderWidgetHostImpl::AsRenderWidgetHostImpl() { - return this; -} - gfx::NativeViewId RenderWidgetHostImpl::GetNativeViewId() const { if (view_) return view_->GetNativeViewId(); diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index db62fa0..ed5068a 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h @@ -469,8 +469,6 @@ class CONTENT_EXPORT RenderWidgetHostImpl : public RenderWidgetHost, } protected: - RenderWidgetHostImpl* AsRenderWidgetHostImpl() override; - // Called when we receive a notification indicating that the renderer // process has gone. This will reset our state so that our state will be // consistent if a new renderer is created. diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm index 7a5afa3..c3575b9 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm @@ -218,7 +218,8 @@ class RenderWidgetHostViewMacTest : public RenderViewHostImplTestHarness { RecycleAndWait(); // See comment in SetUp(). - test_rvh()->SetView(static_cast<RenderWidgetHostViewBase*>(old_rwhv_)); + test_rvh()->GetWidget()->SetView( + static_cast<RenderWidgetHostViewBase*>(old_rwhv_)); ImageTransportFactory::Terminate(); RenderViewHostImplTestHarness::TearDown(); @@ -231,7 +232,7 @@ class RenderWidgetHostViewMacTest : public RenderViewHostImplTestHarness { } void DestroyHostViewRetainCocoaView() { - test_rvh()->SetView(nullptr); + test_rvh()->GetWidget()->SetView(nullptr); rwhv_mac_->Destroy(); } diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc index 22d3500..9328db0 100644 --- a/content/browser/site_per_process_browsertest.cc +++ b/content/browser/site_per_process_browsertest.cc @@ -430,7 +430,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { EXPECT_EQ(proxy_to_parent, child->render_manager()->GetProxyToParent()); EXPECT_TRUE(proxy_to_parent->cross_process_frame_connector()); EXPECT_NE( - child->current_frame_host()->render_view_host()->GetView(), + child->current_frame_host()->render_view_host()->GetWidget()->GetView(), proxy_to_parent->cross_process_frame_connector()->get_view_for_testing()); EXPECT_TRUE(child->current_frame_host()->GetRenderWidgetHost()); diff --git a/content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc b/content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc index 841332a..dab7f7c 100644 --- a/content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc +++ b/content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc @@ -193,7 +193,7 @@ class OverscrollNavigationOverlayTest : public RenderViewHostImplTestHarness { RenderViewHostTester::TestOnMessageReceived(test_rvh(), rect); // Reset pending flags for size/paint. - test_rvh()->ResetSizeAndRepaintPendingFlags(); + test_rvh()->GetWidget()->ResetSizeAndRepaintPendingFlags(); // Create the overlay, and set the contents of the overlay window. overlay_.reset(new OverscrollNavigationOverlay(contents(), root_window())); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 2e9e6d9..44d50d9 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -1198,7 +1198,7 @@ void WebContentsImpl::WasShown() { // one to make sure it's up to date. RenderViewHostImpl* rvh = GetRenderViewHost(); if (rvh) - rvh->ResizeRectChanged(GetRootWindowResizerRect()); + rvh->GetWidget()->ResizeRectChanged(GetRootWindowResizerRect()); // Restore power save blocker if there are active video players running. if (!active_video_players_.empty() && !video_power_save_blocker_) @@ -1407,7 +1407,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { // corresponding RenderView and main RenderFrame have already been created. // Ensure observers are notified about this. if (params.renderer_initiated_creation) { - GetRenderViewHost()->set_renderer_initialized(true); + GetRenderViewHost()->GetWidget()->set_renderer_initialized(true); RenderViewCreated(GetRenderViewHost()); GetRenderManager()->current_frame_host()->SetRenderFrameCreated(true); } @@ -1778,7 +1778,8 @@ void WebContentsImpl::CreateNewWindow( // TODO(brettw): It seems bogus that we have to call this function on the // newly created object and give it one of its own member variables. - new_view->CreateViewForWidget(new_contents->GetRenderViewHost(), false); + new_view->CreateViewForWidget( + new_contents->GetRenderViewHost()->GetWidget(), false); } // Save the created window associated with the route so we can show it // later. @@ -1971,7 +1972,7 @@ WebContentsImpl* WebContentsImpl::GetCreatedWindow(int route_id) { return new_contents; if (!new_contents->GetRenderProcessHost()->HasConnection() || - !new_contents->GetRenderViewHost()->GetView()) + !new_contents->GetRenderViewHost()->GetWidget()->GetView()) return NULL; return new_contents; @@ -2635,7 +2636,8 @@ bool WebContentsImpl::GotResponseToLockMouseRequest(bool allowed) { return GetBrowserPluginGuest()->LockMouse(allowed); return GetRenderViewHost() - ? GetRenderViewHost()->GotResponseToLockMouseRequest(allowed) + ? GetRenderViewHost()->GetWidget()->GotResponseToLockMouseRequest( + allowed) : false; } @@ -2757,7 +2759,7 @@ void WebContentsImpl::HasManifest(const HasManifestCallback& callback) { void WebContentsImpl::ExitFullscreen() { // Clean up related state and initiate the fullscreen exit. - GetRenderViewHost()->RejectMouseLockOrUnlockIfNecessary(); + GetRenderViewHost()->GetWidget()->RejectMouseLockOrUnlockIfNecessary(); ExitFullscreenMode(); } diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc index 63f032c..acdfc42 100644 --- a/content/browser/web_contents/web_contents_impl_unittest.cc +++ b/content/browser/web_contents/web_contents_impl_unittest.cc @@ -2693,7 +2693,7 @@ TEST_F(WebContentsImplTest, CapturerPreventsHiding) { contents()->UpdatePreferredSize(original_preferred_size); TestRenderWidgetHostView* view = static_cast<TestRenderWidgetHostView*>( - contents()->GetMainFrame()->GetRenderViewHost()->GetView()); + contents()->GetMainFrame()->GetRenderViewHost()->GetWidget()->GetView()); // With no capturers, setting and un-setting occlusion should change the // view's occlusion state. @@ -2720,7 +2720,7 @@ TEST_F(WebContentsImplTest, CapturerPreventsOcclusion) { contents()->UpdatePreferredSize(original_preferred_size); TestRenderWidgetHostView* view = static_cast<TestRenderWidgetHostView*>( - contents()->GetMainFrame()->GetRenderViewHost()->GetView()); + contents()->GetMainFrame()->GetRenderViewHost()->GetWidget()->GetView()); // With no capturers, setting and un-setting occlusion should change the // view's occlusion state. diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index f3fd2dd..824dc46 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc @@ -593,8 +593,9 @@ class WebContentsViewAura::WindowObserver private: void SendScreenRects() { - RenderWidgetHostImpl::From(view_->web_contents_->GetRenderViewHost())-> - SendScreenRects(); + RenderWidgetHostImpl::From( + view_->web_contents_->GetRenderViewHost()->GetWidget()) + ->SendScreenRects(); } #if defined(OS_WIN) diff --git a/content/public/browser/render_widget_host.h b/content/public/browser/render_widget_host.h index 0114a01..47af770 100644 --- a/content/public/browser/render_widget_host.h +++ b/content/public/browser/render_widget_host.h @@ -250,16 +250,6 @@ class CONTENT_EXPORT RenderWidgetHost : public IPC::Sender { virtual void GetWebScreenInfo(blink::WebScreenInfo* result) = 0; // Get the color profile corresponding to this render widget. virtual bool GetScreenColorProfile(std::vector<char>* color_profile) = 0; - - protected: - friend class RenderWidgetHostImpl; - - // Retrieves the implementation class. Intended only for code - // within content/. This method is necessary because - // RenderWidgetHost is the root of a diamond inheritance pattern, so - // subclasses inherit it virtually, which removes our ability to - // static_cast to the subclass. - virtual RenderWidgetHostImpl* AsRenderWidgetHostImpl() = 0; }; } // namespace content |