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

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 1245863003: Initialize CompositorDependencies in RenderWidget's constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 // better than having to wake up all renderers during shutdown. 310 // better than having to wake up all renderers during shutdown.
311 const int kDelaySecondsForContentStateSyncHidden = 5; 311 const int kDelaySecondsForContentStateSyncHidden = 5;
312 const int kDelaySecondsForContentStateSync = 1; 312 const int kDelaySecondsForContentStateSync = 1;
313 313
314 #if defined(OS_ANDROID) 314 #if defined(OS_ANDROID)
315 // Delay between tapping in content and launching the associated android intent. 315 // Delay between tapping in content and launching the associated android intent.
316 // Used to allow users see what has been recognized as content. 316 // Used to allow users see what has been recognized as content.
317 const size_t kContentIntentDelayMilliseconds = 700; 317 const size_t kContentIntentDelayMilliseconds = 700;
318 #endif 318 #endif
319 319
320 static RenderViewImpl* (*g_create_render_view_impl)(const ViewMsg_New_Params&) = 320 static RenderViewImpl* (*g_create_render_view_impl)(
321 NULL; 321 CompositorDependencies* compositor_deps,
322 const ViewMsg_New_Params&) = nullptr;
322 323
323 // static 324 // static
324 Referrer RenderViewImpl::GetReferrerFromRequest( 325 Referrer RenderViewImpl::GetReferrerFromRequest(
325 WebFrame* frame, 326 WebFrame* frame,
326 const WebURLRequest& request) { 327 const WebURLRequest& request) {
327 return Referrer(GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), 328 return Referrer(GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))),
328 request.referrerPolicy()); 329 request.referrerPolicy());
329 } 330 }
330 331
331 // static 332 // static
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 if (opener_frame) { 643 if (opener_frame) {
643 *opener_view_routing_id = opener_frame->render_view()->GetRoutingID(); 644 *opener_view_routing_id = opener_frame->render_view()->GetRoutingID();
644 return opener_frame->GetWebFrame(); 645 return opener_frame->GetWebFrame();
645 } 646 }
646 647
647 return nullptr; 648 return nullptr;
648 } 649 }
649 650
650 } // namespace 651 } // namespace
651 652
652 RenderViewImpl::RenderViewImpl(const ViewMsg_New_Params& params) 653 RenderViewImpl::RenderViewImpl(CompositorDependencies* compositor_deps,
653 : RenderWidget(blink::WebPopupTypeNone, 654 const ViewMsg_New_Params& params)
655 : RenderWidget(compositor_deps,
656 blink::WebPopupTypeNone,
654 params.initial_size.screen_info, 657 params.initial_size.screen_info,
655 params.swapped_out, 658 params.swapped_out,
656 params.hidden, 659 params.hidden,
657 params.never_visible), 660 params.never_visible),
658 webkit_preferences_(params.web_preferences), 661 webkit_preferences_(params.web_preferences),
659 send_content_state_immediately_(false), 662 send_content_state_immediately_(false),
660 enabled_bindings_(0), 663 enabled_bindings_(0),
661 send_preferred_size_changes_(false), 664 send_preferred_size_changes_(false),
662 navigation_gesture_(NavigationGestureUnknown), 665 navigation_gesture_(NavigationGestureUnknown),
663 opened_by_user_gesture_(true), 666 opened_by_user_gesture_(true),
(...skipping 23 matching lines...) Expand all
687 plugin_find_handler_(NULL), 690 plugin_find_handler_(NULL),
688 focused_pepper_plugin_(NULL), 691 focused_pepper_plugin_(NULL),
689 pepper_last_mouse_event_target_(NULL), 692 pepper_last_mouse_event_target_(NULL),
690 #endif 693 #endif
691 enumeration_completion_id_(0), 694 enumeration_completion_id_(0),
692 session_storage_namespace_id_(params.session_storage_namespace_id), 695 session_storage_namespace_id_(params.session_storage_namespace_id),
693 page_scale_factor_is_one_(true) { 696 page_scale_factor_is_one_(true) {
694 } 697 }
695 698
696 void RenderViewImpl::Initialize(const ViewMsg_New_Params& params, 699 void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
697 CompositorDependencies* compositor_deps,
698 bool was_created_by_renderer) { 700 bool was_created_by_renderer) {
699 routing_id_ = params.view_id; 701 routing_id_ = params.view_id;
700 surface_id_ = params.surface_id; 702 surface_id_ = params.surface_id;
701 703
702 int opener_view_routing_id; 704 int opener_view_routing_id;
703 WebFrame* opener_frame = 705 WebFrame* opener_frame =
704 ResolveOpener(params.opener_frame_route_id, &opener_view_routing_id); 706 ResolveOpener(params.opener_frame_route_id, &opener_view_routing_id);
705 if (opener_view_routing_id != MSG_ROUTING_NONE && was_created_by_renderer) 707 if (opener_view_routing_id != MSG_ROUTING_NONE && was_created_by_renderer)
706 opener_id_ = opener_view_routing_id; 708 opener_id_ = opener_view_routing_id;
707 709
708 display_mode_= params.initial_size.display_mode; 710 display_mode_= params.initial_size.display_mode;
709 711
710 // Ensure we start with a valid next_page_id_ from the browser. 712 // Ensure we start with a valid next_page_id_ from the browser.
711 DCHECK_GE(next_page_id_, 0); 713 DCHECK_GE(next_page_id_, 0);
712 714
713 if (params.main_frame_routing_id != MSG_ROUTING_NONE) { 715 if (params.main_frame_routing_id != MSG_ROUTING_NONE) {
714 main_render_frame_ = RenderFrameImpl::Create( 716 main_render_frame_ = RenderFrameImpl::Create(
715 this, params.main_frame_routing_id); 717 this, params.main_frame_routing_id);
716 // The main frame WebLocalFrame object is closed by 718 // The main frame WebLocalFrame object is closed by
717 // RenderFrameImpl::frameDetached(). 719 // RenderFrameImpl::frameDetached().
718 WebLocalFrame* web_frame = WebLocalFrame::create( 720 WebLocalFrame* web_frame = WebLocalFrame::create(
719 blink::WebTreeScopeType::Document, main_render_frame_); 721 blink::WebTreeScopeType::Document, main_render_frame_);
720 main_render_frame_->SetWebFrame(web_frame); 722 main_render_frame_->SetWebFrame(web_frame);
721 } 723 }
722 724
723 compositor_deps_ = compositor_deps;
724 webwidget_ = WebView::create(this); 725 webwidget_ = WebView::create(this);
725 webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_)); 726 webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_));
726 727
727 g_view_map.Get().insert(std::make_pair(webview(), this)); 728 g_view_map.Get().insert(std::make_pair(webview(), this));
728 g_routing_id_view_map.Get().insert(std::make_pair(routing_id_, this)); 729 g_routing_id_view_map.Get().insert(std::make_pair(routing_id_, this));
729 730
730 const base::CommandLine& command_line = 731 const base::CommandLine& command_line =
731 *base::CommandLine::ForCurrentProcess(); 732 *base::CommandLine::ForCurrentProcess();
732 733
733 if (command_line.HasSwitch(switches::kStatsCollectionController)) 734 if (command_line.HasSwitch(switches::kStatsCollectionController))
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
1175 1176
1176 settings->setShowContextMenuOnMouseUp(prefs.context_menu_on_mouse_up); 1177 settings->setShowContextMenuOnMouseUp(prefs.context_menu_on_mouse_up);
1177 1178
1178 #if defined(OS_MACOSX) 1179 #if defined(OS_MACOSX)
1179 settings->setDoubleTapToZoomEnabled(true); 1180 settings->setDoubleTapToZoomEnabled(true);
1180 web_view->setMaximumLegibleScale(prefs.default_maximum_page_scale_factor); 1181 web_view->setMaximumLegibleScale(prefs.default_maximum_page_scale_factor);
1181 #endif 1182 #endif
1182 } 1183 }
1183 1184
1184 /*static*/ 1185 /*static*/
1185 RenderViewImpl* RenderViewImpl::Create(const ViewMsg_New_Params& params, 1186 RenderViewImpl* RenderViewImpl::Create(CompositorDependencies* compositor_deps,
1186 CompositorDependencies* compositor_deps, 1187 const ViewMsg_New_Params& params,
1187 bool was_created_by_renderer) { 1188 bool was_created_by_renderer) {
1188 DCHECK(params.view_id != MSG_ROUTING_NONE); 1189 DCHECK(params.view_id != MSG_ROUTING_NONE);
1189 RenderViewImpl* render_view = NULL; 1190 RenderViewImpl* render_view = NULL;
1190 if (g_create_render_view_impl) 1191 if (g_create_render_view_impl)
1191 render_view = g_create_render_view_impl(params); 1192 render_view = g_create_render_view_impl(compositor_deps, params);
1192 else 1193 else
1193 render_view = new RenderViewImpl(params); 1194 render_view = new RenderViewImpl(compositor_deps, params);
1194 1195
1195 render_view->Initialize(params, compositor_deps, was_created_by_renderer); 1196 render_view->Initialize(params, was_created_by_renderer);
1196 return render_view; 1197 return render_view;
1197 } 1198 }
1198 1199
1199 // static 1200 // static
1200 void RenderViewImpl::InstallCreateHook( 1201 void RenderViewImpl::InstallCreateHook(RenderViewImpl* (
1201 RenderViewImpl* (*create_render_view_impl)(const ViewMsg_New_Params&)) { 1202 *create_render_view_impl)(CompositorDependencies* compositor_deps,
1203 const ViewMsg_New_Params&)) {
1202 CHECK(!g_create_render_view_impl); 1204 CHECK(!g_create_render_view_impl);
1203 g_create_render_view_impl = create_render_view_impl; 1205 g_create_render_view_impl = create_render_view_impl;
1204 } 1206 }
1205 1207
1206 void RenderViewImpl::AddObserver(RenderViewObserver* observer) { 1208 void RenderViewImpl::AddObserver(RenderViewObserver* observer) {
1207 observers_.AddObserver(observer); 1209 observers_.AddObserver(observer);
1208 } 1210 }
1209 1211
1210 void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) { 1212 void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) {
1211 observer->RenderViewGone(); 1213 observer->RenderViewGone();
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 view_params.proxy_routing_id = MSG_ROUTING_NONE; 1686 view_params.proxy_routing_id = MSG_ROUTING_NONE;
1685 view_params.hidden = (params.disposition == NEW_BACKGROUND_TAB); 1687 view_params.hidden = (params.disposition == NEW_BACKGROUND_TAB);
1686 view_params.never_visible = never_visible; 1688 view_params.never_visible = never_visible;
1687 view_params.next_page_id = 1; 1689 view_params.next_page_id = 1;
1688 view_params.initial_size = initial_size; 1690 view_params.initial_size = initial_size;
1689 view_params.enable_auto_resize = false; 1691 view_params.enable_auto_resize = false;
1690 view_params.min_size = gfx::Size(); 1692 view_params.min_size = gfx::Size();
1691 view_params.max_size = gfx::Size(); 1693 view_params.max_size = gfx::Size();
1692 1694
1693 RenderViewImpl* view = 1695 RenderViewImpl* view =
1694 RenderViewImpl::Create(view_params, compositor_deps_, true); 1696 RenderViewImpl::Create(compositor_deps_, view_params, true);
1695 view->opened_by_user_gesture_ = params.user_gesture; 1697 view->opened_by_user_gesture_ = params.user_gesture;
1696 1698
1697 // Record whether the creator frame is trying to suppress the opener field. 1699 // Record whether the creator frame is trying to suppress the opener field.
1698 view->opener_suppressed_ = params.opener_suppressed; 1700 view->opener_suppressed_ = params.opener_suppressed;
1699 1701
1700 return view->webview(); 1702 return view->webview();
1701 } 1703 }
1702 1704
1703 WebWidget* RenderViewImpl::createPopupMenu(blink::WebPopupType popup_type) { 1705 WebWidget* RenderViewImpl::createPopupMenu(blink::WebPopupType popup_type) {
1704 RenderWidget* widget = RenderWidget::Create(routing_id_, compositor_deps_, 1706 RenderWidget* widget = RenderWidget::Create(routing_id_, compositor_deps_,
(...skipping 2116 matching lines...) Expand 10 before | Expand all | Expand 10 after
3821 std::vector<gfx::Size> sizes; 3823 std::vector<gfx::Size> sizes;
3822 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 3824 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
3823 if (!url.isEmpty()) 3825 if (!url.isEmpty())
3824 urls.push_back( 3826 urls.push_back(
3825 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 3827 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
3826 } 3828 }
3827 SendUpdateFaviconURL(urls); 3829 SendUpdateFaviconURL(urls);
3828 } 3830 }
3829 3831
3830 } // namespace content 3832 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698