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