OLD | NEW |
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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 #include "content/renderer/internal_document_state_data.h" | 85 #include "content/renderer/internal_document_state_data.h" |
86 #include "content/renderer/media/audio_device_factory.h" | 86 #include "content/renderer/media/audio_device_factory.h" |
87 #include "content/renderer/media/video_capture_impl_manager.h" | 87 #include "content/renderer/media/video_capture_impl_manager.h" |
88 #include "content/renderer/memory_benchmarking_extension.h" | 88 #include "content/renderer/memory_benchmarking_extension.h" |
89 #include "content/renderer/mhtml_generator.h" | 89 #include "content/renderer/mhtml_generator.h" |
90 #include "content/renderer/net_info_helper.h" | 90 #include "content/renderer/net_info_helper.h" |
91 #include "content/renderer/render_frame_impl.h" | 91 #include "content/renderer/render_frame_impl.h" |
92 #include "content/renderer/render_frame_proxy.h" | 92 #include "content/renderer/render_frame_proxy.h" |
93 #include "content/renderer/render_process.h" | 93 #include "content/renderer/render_process.h" |
94 #include "content/renderer/render_thread_impl.h" | 94 #include "content/renderer/render_thread_impl.h" |
95 #include "content/renderer/render_view_impl_params.h" | |
96 #include "content/renderer/render_view_mouse_lock_dispatcher.h" | 95 #include "content/renderer/render_view_mouse_lock_dispatcher.h" |
97 #include "content/renderer/render_widget_fullscreen_pepper.h" | 96 #include "content/renderer/render_widget_fullscreen_pepper.h" |
98 #include "content/renderer/renderer_webapplicationcachehost_impl.h" | 97 #include "content/renderer/renderer_webapplicationcachehost_impl.h" |
99 #include "content/renderer/resizing_mode_selector.h" | 98 #include "content/renderer/resizing_mode_selector.h" |
100 #include "content/renderer/savable_resources.h" | 99 #include "content/renderer/savable_resources.h" |
101 #include "content/renderer/skia_benchmarking_extension.h" | 100 #include "content/renderer/skia_benchmarking_extension.h" |
102 #include "content/renderer/speech_recognition_dispatcher.h" | 101 #include "content/renderer/speech_recognition_dispatcher.h" |
103 #include "content/renderer/stats_collection_controller.h" | 102 #include "content/renderer/stats_collection_controller.h" |
104 #include "content/renderer/stats_collection_observer.h" | 103 #include "content/renderer/stats_collection_observer.h" |
105 #include "content/renderer/text_input_client_observer.h" | 104 #include "content/renderer/text_input_client_observer.h" |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 // better than having to wake up all renderers during shutdown. | 325 // better than having to wake up all renderers during shutdown. |
327 const int kDelaySecondsForContentStateSyncHidden = 5; | 326 const int kDelaySecondsForContentStateSyncHidden = 5; |
328 const int kDelaySecondsForContentStateSync = 1; | 327 const int kDelaySecondsForContentStateSync = 1; |
329 | 328 |
330 #if defined(OS_ANDROID) | 329 #if defined(OS_ANDROID) |
331 // Delay between tapping in content and launching the associated android intent. | 330 // Delay between tapping in content and launching the associated android intent. |
332 // Used to allow users see what has been recognized as content. | 331 // Used to allow users see what has been recognized as content. |
333 const size_t kContentIntentDelayMilliseconds = 700; | 332 const size_t kContentIntentDelayMilliseconds = 700; |
334 #endif | 333 #endif |
335 | 334 |
336 static RenderViewImpl* (*g_create_render_view_impl)(RenderViewImplParams*) = | 335 static RenderViewImpl* (*g_create_render_view_impl)(const ViewMsg_New_Params&) = |
337 NULL; | 336 NULL; |
338 | 337 |
339 // static | 338 // static |
340 bool RenderViewImpl::IsReload(FrameMsg_Navigate_Type::Value navigation_type) { | 339 bool RenderViewImpl::IsReload(FrameMsg_Navigate_Type::Value navigation_type) { |
341 return navigation_type == FrameMsg_Navigate_Type::RELOAD || | 340 return navigation_type == FrameMsg_Navigate_Type::RELOAD || |
342 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || | 341 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || |
343 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; | 342 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; |
344 } | 343 } |
345 | 344 |
346 // static | 345 // static |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
634 int32 script = u_getPropertyValueEnum(UCHAR_SCRIPT, (it->first).c_str()); | 633 int32 script = u_getPropertyValueEnum(UCHAR_SCRIPT, (it->first).c_str()); |
635 if (script >= 0 && script < USCRIPT_CODE_LIMIT) { | 634 if (script >= 0 && script < USCRIPT_CODE_LIMIT) { |
636 UScriptCode code = static_cast<UScriptCode>(script); | 635 UScriptCode code = static_cast<UScriptCode>(script); |
637 (*setter)(settings, it->second, GetScriptForWebSettings(code)); | 636 (*setter)(settings, it->second, GetScriptForWebSettings(code)); |
638 } | 637 } |
639 } | 638 } |
640 } | 639 } |
641 | 640 |
642 } // namespace | 641 } // namespace |
643 | 642 |
644 RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) | 643 RenderViewImpl::RenderViewImpl(const ViewMsg_New_Params& params) |
645 : RenderWidget(blink::WebPopupTypeNone, | 644 : RenderWidget(blink::WebPopupTypeNone, |
646 params->initial_size.screen_info, | 645 params.initial_size.screen_info, |
647 params->swapped_out, | 646 params.swapped_out, |
648 params->hidden, | 647 params.hidden, |
649 params->never_visible), | 648 params.never_visible), |
650 webkit_preferences_(params->webkit_prefs), | 649 webkit_preferences_(params.web_preferences), |
651 send_content_state_immediately_(false), | 650 send_content_state_immediately_(false), |
652 enabled_bindings_(0), | 651 enabled_bindings_(0), |
653 send_preferred_size_changes_(false), | 652 send_preferred_size_changes_(false), |
654 navigation_gesture_(NavigationGestureUnknown), | 653 navigation_gesture_(NavigationGestureUnknown), |
655 opened_by_user_gesture_(true), | 654 opened_by_user_gesture_(true), |
656 opener_suppressed_(false), | 655 opener_suppressed_(false), |
657 suppress_dialogs_until_swap_out_(false), | 656 suppress_dialogs_until_swap_out_(false), |
658 page_id_(-1), | 657 page_id_(-1), |
659 last_page_id_sent_to_browser_(-1), | 658 last_page_id_sent_to_browser_(-1), |
660 next_page_id_(params->next_page_id), | 659 next_page_id_(params.next_page_id), |
661 history_list_offset_(-1), | 660 history_list_offset_(-1), |
662 history_list_length_(0), | 661 history_list_length_(0), |
663 frames_in_progress_(0), | 662 frames_in_progress_(0), |
664 target_url_status_(TARGET_NONE), | 663 target_url_status_(TARGET_NONE), |
665 uses_temporary_zoom_level_(false), | 664 uses_temporary_zoom_level_(false), |
666 #if defined(OS_ANDROID) | 665 #if defined(OS_ANDROID) |
667 top_controls_constraints_(cc::BOTH), | 666 top_controls_constraints_(cc::BOTH), |
668 #endif | 667 #endif |
669 has_scrolled_focused_editable_node_into_rect_(false), | 668 has_scrolled_focused_editable_node_into_rect_(false), |
670 speech_recognition_dispatcher_(NULL), | 669 speech_recognition_dispatcher_(NULL), |
671 browser_plugin_manager_(NULL), | 670 browser_plugin_manager_(NULL), |
672 devtools_agent_(NULL), | 671 devtools_agent_(NULL), |
673 mouse_lock_dispatcher_(NULL), | 672 mouse_lock_dispatcher_(NULL), |
674 #if defined(OS_ANDROID) | 673 #if defined(OS_ANDROID) |
675 expected_content_intent_id_(0), | 674 expected_content_intent_id_(0), |
676 #endif | 675 #endif |
677 #if defined(OS_WIN) | 676 #if defined(OS_WIN) |
678 focused_plugin_id_(-1), | 677 focused_plugin_id_(-1), |
679 #endif | 678 #endif |
680 #if defined(ENABLE_PLUGINS) | 679 #if defined(ENABLE_PLUGINS) |
681 plugin_find_handler_(NULL), | 680 plugin_find_handler_(NULL), |
682 focused_pepper_plugin_(NULL), | 681 focused_pepper_plugin_(NULL), |
683 pepper_last_mouse_event_target_(NULL), | 682 pepper_last_mouse_event_target_(NULL), |
684 #endif | 683 #endif |
685 enumeration_completion_id_(0), | 684 enumeration_completion_id_(0), |
686 session_storage_namespace_id_(params->session_storage_namespace_id), | 685 session_storage_namespace_id_(params.session_storage_namespace_id), |
687 next_snapshot_id_(0) { | 686 next_snapshot_id_(0) { |
688 } | 687 } |
689 | 688 |
690 void RenderViewImpl::Initialize(RenderViewImplParams* params) { | 689 void RenderViewImpl::Initialize( |
691 routing_id_ = params->routing_id; | 690 const ViewMsg_New_Params& params, |
692 surface_id_ = params->surface_id; | 691 bool was_created_by_renderer) { |
693 if (params->opener_id != MSG_ROUTING_NONE && params->is_renderer_created) | 692 routing_id_ = params.view_id; |
694 opener_id_ = params->opener_id; | 693 surface_id_ = params.surface_id; |
| 694 if (params.opener_route_id != MSG_ROUTING_NONE && was_created_by_renderer) |
| 695 opener_id_ = params.opener_route_id; |
695 | 696 |
696 // Ensure we start with a valid next_page_id_ from the browser. | 697 // Ensure we start with a valid next_page_id_ from the browser. |
697 DCHECK_GE(next_page_id_, 0); | 698 DCHECK_GE(next_page_id_, 0); |
698 | 699 |
699 main_render_frame_.reset(RenderFrameImpl::Create( | 700 main_render_frame_.reset(RenderFrameImpl::Create( |
700 this, params->main_frame_routing_id)); | 701 this, params.main_frame_routing_id)); |
701 // The main frame WebLocalFrame object is closed by | 702 // The main frame WebLocalFrame object is closed by |
702 // RenderFrameImpl::frameDetached(). | 703 // RenderFrameImpl::frameDetached(). |
703 WebLocalFrame* web_frame = WebLocalFrame::create(main_render_frame_.get()); | 704 WebLocalFrame* web_frame = WebLocalFrame::create(main_render_frame_.get()); |
704 main_render_frame_->SetWebFrame(web_frame); | 705 main_render_frame_->SetWebFrame(web_frame); |
705 | 706 |
706 webwidget_ = WebView::create(this); | 707 webwidget_ = WebView::create(this); |
707 webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_)); | 708 webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_)); |
708 | 709 |
709 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); | 710 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
710 | 711 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 !command_line.HasSwitch(switches::kDisableThreadedScrolling)); | 755 !command_line.HasSwitch(switches::kDisableThreadedScrolling)); |
755 webview()->settings()->setRootLayerScrolls( | 756 webview()->settings()->setRootLayerScrolls( |
756 command_line.HasSwitch(switches::kRootLayerScrolls)); | 757 command_line.HasSwitch(switches::kRootLayerScrolls)); |
757 | 758 |
758 ApplyWebPreferences(webkit_preferences_, webview()); | 759 ApplyWebPreferences(webkit_preferences_, webview()); |
759 | 760 |
760 webview()->settings()->setAllowConnectingInsecureWebSocket( | 761 webview()->settings()->setAllowConnectingInsecureWebSocket( |
761 command_line.HasSwitch(switches::kAllowInsecureWebSocketFromHttpsOrigin)); | 762 command_line.HasSwitch(switches::kAllowInsecureWebSocketFromHttpsOrigin)); |
762 | 763 |
763 RenderFrameProxy* proxy = NULL; | 764 RenderFrameProxy* proxy = NULL; |
764 if (params->proxy_routing_id != MSG_ROUTING_NONE) { | 765 if (params.proxy_routing_id != MSG_ROUTING_NONE) { |
765 CHECK(params->swapped_out); | 766 CHECK(params.swapped_out); |
766 proxy = RenderFrameProxy::CreateProxyToReplaceFrame( | 767 proxy = RenderFrameProxy::CreateProxyToReplaceFrame( |
767 main_render_frame_.get(), params->proxy_routing_id); | 768 main_render_frame_.get(), params.proxy_routing_id); |
768 main_render_frame_->set_render_frame_proxy(proxy); | 769 main_render_frame_->set_render_frame_proxy(proxy); |
769 } | 770 } |
770 | 771 |
771 // In --site-per-process, just use the WebRemoteFrame as the main frame. | 772 // In --site-per-process, just use the WebRemoteFrame as the main frame. |
772 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess) && | 773 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess) && |
773 proxy) { | 774 proxy) { |
774 webview()->setMainFrame(proxy->web_frame()); | 775 webview()->setMainFrame(proxy->web_frame()); |
775 } else { | 776 } else { |
776 webview()->setMainFrame(main_render_frame_->GetWebFrame()); | 777 webview()->setMainFrame(main_render_frame_->GetWebFrame()); |
777 } | 778 } |
778 main_render_frame_->Initialize(); | 779 main_render_frame_->Initialize(); |
779 | 780 |
780 if (switches::IsTouchDragDropEnabled()) | 781 if (switches::IsTouchDragDropEnabled()) |
781 webview()->settings()->setTouchDragDropEnabled(true); | 782 webview()->settings()->setTouchDragDropEnabled(true); |
782 | 783 |
783 if (switches::IsTouchEditingEnabled()) | 784 if (switches::IsTouchEditingEnabled()) |
784 webview()->settings()->setTouchEditingEnabled(true); | 785 webview()->settings()->setTouchEditingEnabled(true); |
785 | 786 |
786 if (!params->frame_name.empty()) | 787 if (!params.frame_name.empty()) |
787 webview()->mainFrame()->setName(params->frame_name); | 788 webview()->mainFrame()->setName(params.frame_name); |
788 | 789 |
789 // TODO(davidben): Move this state from Blink into content. | 790 // TODO(davidben): Move this state from Blink into content. |
790 if (params->window_was_created_with_opener) | 791 if (params.window_was_created_with_opener) |
791 webview()->setOpenedByDOM(); | 792 webview()->setOpenedByDOM(); |
792 | 793 |
793 OnSetRendererPrefs(params->renderer_prefs); | 794 OnSetRendererPrefs(params.renderer_preferences); |
794 | 795 |
795 if (!params->enable_auto_resize) { | 796 if (!params.enable_auto_resize) { |
796 OnResize(params->initial_size); | 797 OnResize(params.initial_size); |
797 } else { | 798 } else { |
798 OnEnableAutoResize(params->min_size, params->max_size); | 799 OnEnableAutoResize(params.min_size, params.max_size); |
799 } | 800 } |
800 | 801 |
801 new MHTMLGenerator(this); | 802 new MHTMLGenerator(this); |
802 #if defined(OS_MACOSX) | 803 #if defined(OS_MACOSX) |
803 new TextInputClientObserver(this); | 804 new TextInputClientObserver(this); |
804 #endif // defined(OS_MACOSX) | 805 #endif // defined(OS_MACOSX) |
805 | 806 |
806 // The next group of objects all implement RenderViewObserver, so are deleted | 807 // The next group of objects all implement RenderViewObserver, so are deleted |
807 // along with the RenderView automatically. | 808 // along with the RenderView automatically. |
808 devtools_agent_ = new DevToolsAgent(this); | 809 devtools_agent_ = new DevToolsAgent(this); |
(...skipping 10 matching lines...) Expand all Loading... |
819 enabled_bindings_ |= BINDINGS_POLICY_DOM_AUTOMATION; | 820 enabled_bindings_ |= BINDINGS_POLICY_DOM_AUTOMATION; |
820 if (command_line.HasSwitch(switches::kStatsCollectionController)) | 821 if (command_line.HasSwitch(switches::kStatsCollectionController)) |
821 enabled_bindings_ |= BINDINGS_POLICY_STATS_COLLECTION; | 822 enabled_bindings_ |= BINDINGS_POLICY_STATS_COLLECTION; |
822 | 823 |
823 ProcessViewLayoutFlags(command_line); | 824 ProcessViewLayoutFlags(command_line); |
824 | 825 |
825 GetContentClient()->renderer()->RenderViewCreated(this); | 826 GetContentClient()->renderer()->RenderViewCreated(this); |
826 | 827 |
827 // If we have an opener_id but we weren't created by a renderer, then | 828 // If we have an opener_id but we weren't created by a renderer, then |
828 // it's the browser asking us to set our opener to another RenderView. | 829 // it's the browser asking us to set our opener to another RenderView. |
829 if (params->opener_id != MSG_ROUTING_NONE && !params->is_renderer_created) { | 830 if (params.opener_route_id != MSG_ROUTING_NONE && !was_created_by_renderer) { |
830 RenderViewImpl* opener_view = FromRoutingID(params->opener_id); | 831 RenderViewImpl* opener_view = FromRoutingID(params.opener_route_id); |
831 if (opener_view) | 832 if (opener_view) |
832 webview()->mainFrame()->setOpener(opener_view->webview()->mainFrame()); | 833 webview()->mainFrame()->setOpener(opener_view->webview()->mainFrame()); |
833 } | 834 } |
834 | 835 |
835 // If we are initially swapped out, navigate to kSwappedOutURL. | 836 // If we are initially swapped out, navigate to kSwappedOutURL. |
836 // This ensures we are in a unique origin that others cannot script. | 837 // This ensures we are in a unique origin that others cannot script. |
837 if (is_swapped_out_ && webview()->mainFrame()->isWebLocalFrame()) | 838 if (is_swapped_out_ && webview()->mainFrame()->isWebLocalFrame()) |
838 main_render_frame_->NavigateToSwappedOutURL(); | 839 main_render_frame_->NavigateToSwappedOutURL(); |
839 } | 840 } |
840 | 841 |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1136 | 1137 |
1137 settings->setPinchOverlayScrollbarThickness( | 1138 settings->setPinchOverlayScrollbarThickness( |
1138 prefs.pinch_overlay_scrollbar_thickness); | 1139 prefs.pinch_overlay_scrollbar_thickness); |
1139 settings->setRubberBandingOnCompositorThread( | 1140 settings->setRubberBandingOnCompositorThread( |
1140 prefs.rubber_banding_on_compositor_thread); | 1141 prefs.rubber_banding_on_compositor_thread); |
1141 settings->setUseSolidColorScrollbars(prefs.use_solid_color_scrollbars); | 1142 settings->setUseSolidColorScrollbars(prefs.use_solid_color_scrollbars); |
1142 } | 1143 } |
1143 | 1144 |
1144 /*static*/ | 1145 /*static*/ |
1145 RenderViewImpl* RenderViewImpl::Create( | 1146 RenderViewImpl* RenderViewImpl::Create( |
1146 int32 opener_id, | 1147 const ViewMsg_New_Params& params, |
1147 bool window_was_created_with_opener, | 1148 bool was_created_by_renderer) { |
1148 const RendererPreferences& renderer_prefs, | 1149 DCHECK(params.view_id != MSG_ROUTING_NONE); |
1149 const WebPreferences& webkit_prefs, | |
1150 int32 routing_id, | |
1151 int32 main_frame_routing_id, | |
1152 int32 surface_id, | |
1153 int64 session_storage_namespace_id, | |
1154 const base::string16& frame_name, | |
1155 bool is_renderer_created, | |
1156 bool swapped_out, | |
1157 int32 proxy_routing_id, | |
1158 bool hidden, | |
1159 bool never_visible, | |
1160 int32 next_page_id, | |
1161 const ViewMsg_Resize_Params& initial_size, | |
1162 bool enable_auto_resize, | |
1163 const gfx::Size& min_size, | |
1164 const gfx::Size& max_size) { | |
1165 DCHECK(routing_id != MSG_ROUTING_NONE); | |
1166 RenderViewImplParams params(opener_id, | |
1167 window_was_created_with_opener, | |
1168 renderer_prefs, | |
1169 webkit_prefs, | |
1170 routing_id, | |
1171 main_frame_routing_id, | |
1172 surface_id, | |
1173 session_storage_namespace_id, | |
1174 frame_name, | |
1175 is_renderer_created, | |
1176 swapped_out, | |
1177 proxy_routing_id, | |
1178 hidden, | |
1179 never_visible, | |
1180 next_page_id, | |
1181 initial_size, | |
1182 enable_auto_resize, | |
1183 min_size, | |
1184 max_size); | |
1185 RenderViewImpl* render_view = NULL; | 1150 RenderViewImpl* render_view = NULL; |
1186 if (g_create_render_view_impl) | 1151 if (g_create_render_view_impl) |
1187 render_view = g_create_render_view_impl(¶ms); | 1152 render_view = g_create_render_view_impl(params); |
1188 else | 1153 else |
1189 render_view = new RenderViewImpl(¶ms); | 1154 render_view = new RenderViewImpl(params); |
1190 | 1155 |
1191 render_view->Initialize(¶ms); | 1156 render_view->Initialize(params, was_created_by_renderer); |
1192 return render_view; | 1157 return render_view; |
1193 } | 1158 } |
1194 | 1159 |
1195 // static | 1160 // static |
1196 void RenderViewImpl::InstallCreateHook( | 1161 void RenderViewImpl::InstallCreateHook( |
1197 RenderViewImpl* (*create_render_view_impl)(RenderViewImplParams*)) { | 1162 RenderViewImpl* (*create_render_view_impl)(const ViewMsg_New_Params&)) { |
1198 CHECK(!g_create_render_view_impl); | 1163 CHECK(!g_create_render_view_impl); |
1199 g_create_render_view_impl = create_render_view_impl; | 1164 g_create_render_view_impl = create_render_view_impl; |
1200 } | 1165 } |
1201 | 1166 |
1202 void RenderViewImpl::AddObserver(RenderViewObserver* observer) { | 1167 void RenderViewImpl::AddObserver(RenderViewObserver* observer) { |
1203 observers_.AddObserver(observer); | 1168 observers_.AddObserver(observer); |
1204 } | 1169 } |
1205 | 1170 |
1206 void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) { | 1171 void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) { |
1207 observer->RenderViewGone(); | 1172 observer->RenderViewGone(); |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1695 bool never_visible = false; | 1660 bool never_visible = false; |
1696 | 1661 |
1697 ViewMsg_Resize_Params initial_size = ViewMsg_Resize_Params(); | 1662 ViewMsg_Resize_Params initial_size = ViewMsg_Resize_Params(); |
1698 initial_size.screen_info = screen_info_; | 1663 initial_size.screen_info = screen_info_; |
1699 | 1664 |
1700 // The initial hidden state for the RenderViewImpl here has to match what the | 1665 // The initial hidden state for the RenderViewImpl here has to match what the |
1701 // browser will eventually decide for the given disposition. Since we have to | 1666 // browser will eventually decide for the given disposition. Since we have to |
1702 // return from this call synchronously, we just have to make our best guess | 1667 // return from this call synchronously, we just have to make our best guess |
1703 // and rely on the browser sending a WasHidden / WasShown message if it | 1668 // and rely on the browser sending a WasHidden / WasShown message if it |
1704 // disagrees. | 1669 // disagrees. |
1705 RenderViewImpl* view = RenderViewImpl::Create( | 1670 ViewMsg_New_Params view_params; |
1706 routing_id_, | 1671 view_params.opener_route_id = routing_id_; |
1707 true, // window_was_created_with_opener | 1672 view_params.window_was_created_with_opener = true; |
1708 renderer_preferences_, | 1673 view_params.renderer_preferences = renderer_preferences_; |
1709 webkit_preferences_, | 1674 view_params.web_preferences = webkit_preferences_; |
1710 routing_id, | 1675 view_params.view_id = routing_id; |
1711 main_frame_routing_id, | 1676 view_params.main_frame_routing_id = main_frame_routing_id; |
1712 surface_id, | 1677 view_params.surface_id = surface_id; |
1713 cloned_session_storage_namespace_id, | 1678 view_params.session_storage_namespace_id = |
1714 base::string16(), // WebCore will take care of setting the correct name. | 1679 cloned_session_storage_namespace_id; |
1715 true, // is_renderer_created | 1680 // WebCore will take care of setting the correct name. |
1716 false, // swapped_out | 1681 view_params.frame_name = base::string16(); |
1717 MSG_ROUTING_NONE, // proxy_routing_id | 1682 view_params.swapped_out = false; |
1718 params.disposition == NEW_BACKGROUND_TAB, // hidden | 1683 view_params.proxy_routing_id = MSG_ROUTING_NONE; |
1719 never_visible, | 1684 view_params.hidden = (params.disposition == NEW_BACKGROUND_TAB); |
1720 1, // next_page_id | 1685 view_params.never_visible = never_visible; |
1721 initial_size, | 1686 view_params.next_page_id = 1; |
1722 false, // enable_auto_resize | 1687 view_params.initial_size = initial_size; |
1723 gfx::Size(), // min_size | 1688 view_params.enable_auto_resize = false; |
1724 gfx::Size() // max_size | 1689 view_params.min_size = gfx::Size(); |
1725 ); | 1690 view_params.max_size = gfx::Size(); |
| 1691 |
| 1692 RenderViewImpl* view = RenderViewImpl::Create(view_params, true); |
1726 view->opened_by_user_gesture_ = params.user_gesture; | 1693 view->opened_by_user_gesture_ = params.user_gesture; |
1727 | 1694 |
1728 // Record whether the creator frame is trying to suppress the opener field. | 1695 // Record whether the creator frame is trying to suppress the opener field. |
1729 view->opener_suppressed_ = params.opener_suppressed; | 1696 view->opener_suppressed_ = params.opener_suppressed; |
1730 | 1697 |
1731 return view->webview(); | 1698 return view->webview(); |
1732 } | 1699 } |
1733 | 1700 |
1734 WebWidget* RenderViewImpl::createPopupMenu(blink::WebPopupType popup_type) { | 1701 WebWidget* RenderViewImpl::createPopupMenu(blink::WebPopupType popup_type) { |
1735 RenderWidget* widget = | 1702 RenderWidget* widget = |
(...skipping 2493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4229 std::vector<gfx::Size> sizes; | 4196 std::vector<gfx::Size> sizes; |
4230 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); | 4197 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); |
4231 if (!url.isEmpty()) | 4198 if (!url.isEmpty()) |
4232 urls.push_back( | 4199 urls.push_back( |
4233 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); | 4200 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); |
4234 } | 4201 } |
4235 SendUpdateFaviconURL(urls); | 4202 SendUpdateFaviconURL(urls); |
4236 } | 4203 } |
4237 | 4204 |
4238 } // namespace content | 4205 } // namespace content |
OLD | NEW |