Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7802)

Unified Diff: content/browser/renderer_host/render_view_host_impl.cc

Issue 1411203010: Separate RenderViewHost from RenderWidgetHost, part 4: delegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: oops Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_view_host_impl.cc
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 328f40b336f153c8038f25550a10e307866fb8af..8b31c1c716e87daee4e336d6a77ead30836d276c 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -188,15 +188,21 @@ RenderViewHostImpl* RenderViewHostImpl::FromID(int render_process_id,
int render_view_id) {
RenderWidgetHost* widget =
RenderWidgetHost::FromID(render_process_id, render_view_id);
- if (!widget || !widget->IsRenderView())
- return NULL;
- return static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(widget));
+ if (!widget)
+ return nullptr;
+ return From(widget);
}
// static
RenderViewHostImpl* RenderViewHostImpl::From(RenderWidgetHost* rwh) {
- DCHECK(rwh->IsRenderView());
- return static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(rwh));
+ DCHECK(rwh);
+ RenderWidgetHostOwnerDelegate* owner_delegate =
+ RenderWidgetHostImpl::From(rwh)->owner_delegate();
+ if (!owner_delegate)
+ return nullptr;
+ RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>(owner_delegate);
+ DCHECK_EQ(rwh, rvh->GetWidget());
+ return rvh;
}
RenderViewHostImpl::RenderViewHostImpl(
@@ -234,6 +240,8 @@ RenderViewHostImpl::RenderViewHostImpl(
DCHECK(instance_.get());
CHECK(delegate_); // http://crbug.com/82827
+ GetWidget()->set_owner_delegate(this);
+
GetProcess()->AddObserver(this);
GetProcess()->EnableSendQueue();
@@ -1004,10 +1012,6 @@ void RenderViewHostImpl::WasShown(const ui::LatencyInfo& latency_info) {
RenderWidgetHostImpl::WasShown(latency_info);
}
-bool RenderViewHostImpl::IsRenderView() const {
- return true;
-}
-
void RenderViewHostImpl::CreateNewWindow(
int route_id,
int main_frame_route_id,

Powered by Google App Engine
This is Rietveld 408576698