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 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 UScriptCode code = static_cast<UScriptCode>(script); | 637 UScriptCode code = static_cast<UScriptCode>(script); |
638 (*setter)(settings, it->second, GetScriptForWebSettings(code)); | 638 (*setter)(settings, it->second, GetScriptForWebSettings(code)); |
639 } | 639 } |
640 } | 640 } |
641 } | 641 } |
642 | 642 |
643 } // namespace | 643 } // namespace |
644 | 644 |
645 RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) | 645 RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) |
646 : RenderWidget(blink::WebPopupTypeNone, | 646 : RenderWidget(blink::WebPopupTypeNone, |
647 params->screen_info, | 647 params->initial_size.screen_info, |
648 params->swapped_out, | 648 params->swapped_out, |
649 params->hidden, | 649 params->hidden, |
650 params->never_visible), | 650 params->never_visible), |
651 webkit_preferences_(params->webkit_prefs), | 651 webkit_preferences_(params->webkit_prefs), |
652 send_content_state_immediately_(false), | 652 send_content_state_immediately_(false), |
653 enabled_bindings_(0), | 653 enabled_bindings_(0), |
654 send_preferred_size_changes_(false), | 654 send_preferred_size_changes_(false), |
655 navigation_gesture_(NavigationGestureUnknown), | 655 navigation_gesture_(NavigationGestureUnknown), |
656 opened_by_user_gesture_(true), | 656 opened_by_user_gesture_(true), |
657 opener_suppressed_(false), | 657 opener_suppressed_(false), |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
782 | 782 |
783 if (!params->frame_name.empty()) | 783 if (!params->frame_name.empty()) |
784 webview()->mainFrame()->setName(params->frame_name); | 784 webview()->mainFrame()->setName(params->frame_name); |
785 | 785 |
786 // TODO(davidben): Move this state from Blink into content. | 786 // TODO(davidben): Move this state from Blink into content. |
787 if (params->window_was_created_with_opener) | 787 if (params->window_was_created_with_opener) |
788 webview()->setOpenedByDOM(); | 788 webview()->setOpenedByDOM(); |
789 | 789 |
790 OnSetRendererPrefs(params->renderer_prefs); | 790 OnSetRendererPrefs(params->renderer_prefs); |
791 | 791 |
| 792 OnResize(params->initial_size); |
| 793 |
792 new MHTMLGenerator(this); | 794 new MHTMLGenerator(this); |
793 #if defined(OS_MACOSX) | 795 #if defined(OS_MACOSX) |
794 new TextInputClientObserver(this); | 796 new TextInputClientObserver(this); |
795 #endif // defined(OS_MACOSX) | 797 #endif // defined(OS_MACOSX) |
796 | 798 |
797 // The next group of objects all implement RenderViewObserver, so are deleted | 799 // The next group of objects all implement RenderViewObserver, so are deleted |
798 // along with the RenderView automatically. | 800 // along with the RenderView automatically. |
799 devtools_agent_ = new DevToolsAgent(this); | 801 devtools_agent_ = new DevToolsAgent(this); |
800 if (RenderWidgetCompositor* rwc = compositor()) { | 802 if (RenderWidgetCompositor* rwc = compositor()) { |
801 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); | 803 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1129 int32 main_frame_routing_id, | 1131 int32 main_frame_routing_id, |
1130 int32 surface_id, | 1132 int32 surface_id, |
1131 int64 session_storage_namespace_id, | 1133 int64 session_storage_namespace_id, |
1132 const base::string16& frame_name, | 1134 const base::string16& frame_name, |
1133 bool is_renderer_created, | 1135 bool is_renderer_created, |
1134 bool swapped_out, | 1136 bool swapped_out, |
1135 int32 proxy_routing_id, | 1137 int32 proxy_routing_id, |
1136 bool hidden, | 1138 bool hidden, |
1137 bool never_visible, | 1139 bool never_visible, |
1138 int32 next_page_id, | 1140 int32 next_page_id, |
1139 const blink::WebScreenInfo& screen_info) { | 1141 const ViewMsg_Resize_Params& initial_size) { |
1140 DCHECK(routing_id != MSG_ROUTING_NONE); | 1142 DCHECK(routing_id != MSG_ROUTING_NONE); |
1141 RenderViewImplParams params(opener_id, | 1143 RenderViewImplParams params(opener_id, |
1142 window_was_created_with_opener, | 1144 window_was_created_with_opener, |
1143 renderer_prefs, | 1145 renderer_prefs, |
1144 webkit_prefs, | 1146 webkit_prefs, |
1145 routing_id, | 1147 routing_id, |
1146 main_frame_routing_id, | 1148 main_frame_routing_id, |
1147 surface_id, | 1149 surface_id, |
1148 session_storage_namespace_id, | 1150 session_storage_namespace_id, |
1149 frame_name, | 1151 frame_name, |
1150 is_renderer_created, | 1152 is_renderer_created, |
1151 swapped_out, | 1153 swapped_out, |
1152 proxy_routing_id, | 1154 proxy_routing_id, |
1153 hidden, | 1155 hidden, |
1154 never_visible, | 1156 never_visible, |
1155 next_page_id, | 1157 next_page_id, |
1156 screen_info); | 1158 initial_size); |
1157 RenderViewImpl* render_view = NULL; | 1159 RenderViewImpl* render_view = NULL; |
1158 if (g_create_render_view_impl) | 1160 if (g_create_render_view_impl) |
1159 render_view = g_create_render_view_impl(¶ms); | 1161 render_view = g_create_render_view_impl(¶ms); |
1160 else | 1162 else |
1161 render_view = new RenderViewImpl(¶ms); | 1163 render_view = new RenderViewImpl(¶ms); |
1162 | 1164 |
1163 render_view->Initialize(¶ms); | 1165 render_view->Initialize(¶ms); |
1164 return render_view; | 1166 return render_view; |
1165 } | 1167 } |
1166 | 1168 |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1659 return NULL; | 1661 return NULL; |
1660 | 1662 |
1661 WebUserGestureIndicator::consumeUserGesture(); | 1663 WebUserGestureIndicator::consumeUserGesture(); |
1662 | 1664 |
1663 // While this view may be a background extension page, it can spawn a visible | 1665 // While this view may be a background extension page, it can spawn a visible |
1664 // render view. So we just assume that the new one is not another background | 1666 // render view. So we just assume that the new one is not another background |
1665 // page instead of passing on our own value. | 1667 // page instead of passing on our own value. |
1666 // TODO(vangelis): Can we tell if the new view will be a background page? | 1668 // TODO(vangelis): Can we tell if the new view will be a background page? |
1667 bool never_visible = false; | 1669 bool never_visible = false; |
1668 | 1670 |
| 1671 ViewMsg_Resize_Params initial_size = ViewMsg_Resize_Params(); |
| 1672 initial_size.screen_info = screen_info_; |
| 1673 |
1669 // The initial hidden state for the RenderViewImpl here has to match what the | 1674 // The initial hidden state for the RenderViewImpl here has to match what the |
1670 // browser will eventually decide for the given disposition. Since we have to | 1675 // browser will eventually decide for the given disposition. Since we have to |
1671 // return from this call synchronously, we just have to make our best guess | 1676 // return from this call synchronously, we just have to make our best guess |
1672 // and rely on the browser sending a WasHidden / WasShown message if it | 1677 // and rely on the browser sending a WasHidden / WasShown message if it |
1673 // disagrees. | 1678 // disagrees. |
1674 RenderViewImpl* view = RenderViewImpl::Create( | 1679 RenderViewImpl* view = RenderViewImpl::Create( |
1675 routing_id_, | 1680 routing_id_, |
1676 true, // window_was_created_with_opener | 1681 true, // window_was_created_with_opener |
1677 renderer_preferences_, | 1682 renderer_preferences_, |
1678 webkit_preferences_, | 1683 webkit_preferences_, |
1679 routing_id, | 1684 routing_id, |
1680 main_frame_routing_id, | 1685 main_frame_routing_id, |
1681 surface_id, | 1686 surface_id, |
1682 cloned_session_storage_namespace_id, | 1687 cloned_session_storage_namespace_id, |
1683 base::string16(), // WebCore will take care of setting the correct name. | 1688 base::string16(), // WebCore will take care of setting the correct name. |
1684 true, // is_renderer_created | 1689 true, // is_renderer_created |
1685 false, // swapped_out | 1690 false, // swapped_out |
1686 MSG_ROUTING_NONE, // proxy_routing_id | 1691 MSG_ROUTING_NONE, // proxy_routing_id |
1687 params.disposition == NEW_BACKGROUND_TAB, // hidden | 1692 params.disposition == NEW_BACKGROUND_TAB, // hidden |
1688 never_visible, | 1693 never_visible, |
1689 1, // next_page_id | 1694 1, // next_page_id |
1690 screen_info_); | 1695 initial_size); |
1691 view->opened_by_user_gesture_ = params.user_gesture; | 1696 view->opened_by_user_gesture_ = params.user_gesture; |
1692 | 1697 |
1693 // Record whether the creator frame is trying to suppress the opener field. | 1698 // Record whether the creator frame is trying to suppress the opener field. |
1694 view->opener_suppressed_ = params.opener_suppressed; | 1699 view->opener_suppressed_ = params.opener_suppressed; |
1695 | 1700 |
1696 return view->webview(); | 1701 return view->webview(); |
1697 } | 1702 } |
1698 | 1703 |
1699 WebWidget* RenderViewImpl::createPopupMenu(blink::WebPopupType popup_type) { | 1704 WebWidget* RenderViewImpl::createPopupMenu(blink::WebPopupType popup_type) { |
1700 RenderWidget* widget = | 1705 RenderWidget* widget = |
(...skipping 2513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4214 std::vector<gfx::Size> sizes; | 4219 std::vector<gfx::Size> sizes; |
4215 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); | 4220 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); |
4216 if (!url.isEmpty()) | 4221 if (!url.isEmpty()) |
4217 urls.push_back( | 4222 urls.push_back( |
4218 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); | 4223 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); |
4219 } | 4224 } |
4220 SendUpdateFaviconURL(urls); | 4225 SendUpdateFaviconURL(urls); |
4221 } | 4226 } |
4222 | 4227 |
4223 } // namespace content | 4228 } // namespace content |
OLD | NEW |