| 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 bool is_renderer_created, |
| 692 surface_id_ = params->surface_id; | 691 const ViewMsg_New_Params& params) { |
| 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 && is_renderer_created) |
| 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 && !is_renderer_created) { |
| 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 bool window_was_created_with_opener, | |
| 1148 const RendererPreferences& renderer_prefs, | |
| 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, | 1147 bool is_renderer_created, |
| 1156 bool swapped_out, | 1148 const ViewMsg_New_Params& params) { |
| 1157 int32 proxy_routing_id, | 1149 DCHECK(params.view_id != MSG_ROUTING_NONE); |
| 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(is_renderer_created, params); |
| 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(true, view_params); |
| 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 |