summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravi <avi@chromium.org>2015-10-16 10:40:43 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-16 17:41:43 +0000
commit3627ecac5d720b442e5ee27829d064fdf55c8486 (patch)
treea3ecfdccbe6bc8645dd1c8ccfd0aea2c699f9cd5
parent5afc24479ba6b45f12caaa1fb805930004db2596 (diff)
downloadchromium_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}
-rw-r--r--content/browser/browser_plugin/browser_plugin_embedder.cc5
-rw-r--r--content/browser/browser_plugin/browser_plugin_guest.cc19
-rw-r--r--content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.mm4
-rw-r--r--content/browser/devtools/devtools_manager_unittest.cc6
-rw-r--r--content/browser/frame_host/cross_process_frame_connector.cc2
-rw-r--r--content/browser/frame_host/interstitial_page_impl.cc24
-rw-r--r--content/browser/frame_host/render_frame_host_manager.cc20
-rw-r--r--content/browser/frame_host/render_frame_host_manager_unittest.cc7
-rw-r--r--content/browser/loader/resource_scheduler_unittest.cc4
-rw-r--r--content/browser/media/capture/web_contents_video_capture_device_unittest.cc4
-rw-r--r--content/browser/renderer_host/input/touch_input_browsertest.cc4
-rw-r--r--content/browser/renderer_host/render_view_host_impl.cc15
-rw-r--r--content/browser/renderer_host/render_view_host_impl.h12
-rw-r--r--content/browser/renderer_host/render_widget_host_impl.cc6
-rw-r--r--content/browser/renderer_host/render_widget_host_impl.h2
-rw-r--r--content/browser/renderer_host/render_widget_host_view_mac_unittest.mm5
-rw-r--r--content/browser/site_per_process_browsertest.cc2
-rw-r--r--content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc2
-rw-r--r--content/browser/web_contents/web_contents_impl.cc14
-rw-r--r--content/browser/web_contents/web_contents_impl_unittest.cc4
-rw-r--r--content/browser/web_contents/web_contents_view_aura.cc5
-rw-r--r--content/public/browser/render_widget_host.h10
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