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

Unified Diff: content/renderer/render_view_impl.cc

Issue 1918183004: Switch the inheritance of WebView from WebWidget to protected. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: set webwidget on frame creation instead of view creation Created 4 years, 8 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/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index b79693b037642854273da19bf3421f958cbec5c1..1843570694853b490f1c3f652e27f4294f50924a 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -630,6 +630,7 @@ RenderViewImpl::RenderViewImpl(CompositorDependencies* compositor_deps,
top_controls_shrink_blink_size_(false),
top_controls_height_(0.f),
has_focus_(false),
+ webview_(nullptr),
has_scrolled_focused_editable_node_into_rect_(false),
page_zoom_level_(params.page_zoom_level),
main_render_frame_(nullptr),
@@ -663,7 +664,8 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
// Ensure we start with a valid next_page_id_ from the browser.
DCHECK_GE(next_page_id_, 0);
- webwidget_ = WebView::create(this);
+ webview_ = WebView::create(this);
+ webwidget_ = webview_->widget();
webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_));
g_view_map.Get().insert(std::make_pair(webview(), this));
@@ -1153,7 +1155,7 @@ void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) {
}
blink::WebView* RenderViewImpl::webview() const {
- return static_cast<blink::WebView*>(webwidget());
+ return webview_;
}
#if defined(ENABLE_PLUGINS)
@@ -2813,8 +2815,9 @@ void RenderViewImpl::CloseForFrame() {
void RenderViewImpl::Close() {
// We need to grab a pointer to the doomed WebView before we destroy it.
- WebView* doomed = webview();
+ WebView* doomed = webview_;
RenderWidget::Close();
+ webview_ = nullptr;
g_view_map.Get().erase(doomed);
g_routing_id_view_map.Get().erase(GetRoutingID());
RenderThread::Get()->Send(new ViewHostMsg_Close_ACK(GetRoutingID()));

Powered by Google App Engine
This is Rietveld 408576698