Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index ed8b491410f443e2e56d58ded84a3b1658ae2210..579b1ea000efc2a94ea3e1b42bf2c74d21993915 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -92,7 +92,6 @@ |
#include "content/renderer/render_frame_proxy.h" |
#include "content/renderer/render_process.h" |
#include "content/renderer/render_thread_impl.h" |
-#include "content/renderer/render_view_impl_params.h" |
#include "content/renderer/render_view_mouse_lock_dispatcher.h" |
#include "content/renderer/render_widget_fullscreen_pepper.h" |
#include "content/renderer/renderer_webapplicationcachehost_impl.h" |
@@ -333,7 +332,7 @@ const int kDelaySecondsForContentStateSync = 1; |
const size_t kContentIntentDelayMilliseconds = 700; |
#endif |
-static RenderViewImpl* (*g_create_render_view_impl)(RenderViewImplParams*) = |
+static RenderViewImpl* (*g_create_render_view_impl)(const ViewMsg_New_Params&) = |
NULL; |
// static |
@@ -641,13 +640,13 @@ void ApplyFontsFromMap(const ScriptFontFamilyMap& map, |
} // namespace |
-RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) |
+RenderViewImpl::RenderViewImpl(const ViewMsg_New_Params& params) |
: RenderWidget(blink::WebPopupTypeNone, |
- params->initial_size.screen_info, |
- params->swapped_out, |
- params->hidden, |
- params->never_visible), |
- webkit_preferences_(params->webkit_prefs), |
+ params.initial_size.screen_info, |
+ params.swapped_out, |
+ params.hidden, |
+ params.never_visible), |
+ webkit_preferences_(params.web_preferences), |
send_content_state_immediately_(false), |
enabled_bindings_(0), |
send_preferred_size_changes_(false), |
@@ -657,7 +656,7 @@ RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) |
suppress_dialogs_until_swap_out_(false), |
page_id_(-1), |
last_page_id_sent_to_browser_(-1), |
- next_page_id_(params->next_page_id), |
+ next_page_id_(params.next_page_id), |
history_list_offset_(-1), |
history_list_length_(0), |
frames_in_progress_(0), |
@@ -683,21 +682,23 @@ RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) |
pepper_last_mouse_event_target_(NULL), |
#endif |
enumeration_completion_id_(0), |
- session_storage_namespace_id_(params->session_storage_namespace_id), |
+ session_storage_namespace_id_(params.session_storage_namespace_id), |
next_snapshot_id_(0) { |
} |
-void RenderViewImpl::Initialize(RenderViewImplParams* params) { |
- routing_id_ = params->routing_id; |
- surface_id_ = params->surface_id; |
- if (params->opener_id != MSG_ROUTING_NONE && params->is_renderer_created) |
- opener_id_ = params->opener_id; |
+void RenderViewImpl::Initialize( |
+ const ViewMsg_New_Params& params, |
+ bool was_created_by_renderer) { |
+ routing_id_ = params.view_id; |
+ surface_id_ = params.surface_id; |
+ if (params.opener_route_id != MSG_ROUTING_NONE && was_created_by_renderer) |
+ opener_id_ = params.opener_route_id; |
// Ensure we start with a valid next_page_id_ from the browser. |
DCHECK_GE(next_page_id_, 0); |
main_render_frame_.reset(RenderFrameImpl::Create( |
- this, params->main_frame_routing_id)); |
+ this, params.main_frame_routing_id)); |
// The main frame WebLocalFrame object is closed by |
// RenderFrameImpl::frameDetached(). |
WebLocalFrame* web_frame = WebLocalFrame::create(main_render_frame_.get()); |
@@ -761,10 +762,10 @@ void RenderViewImpl::Initialize(RenderViewImplParams* params) { |
command_line.HasSwitch(switches::kAllowInsecureWebSocketFromHttpsOrigin)); |
RenderFrameProxy* proxy = NULL; |
- if (params->proxy_routing_id != MSG_ROUTING_NONE) { |
- CHECK(params->swapped_out); |
+ if (params.proxy_routing_id != MSG_ROUTING_NONE) { |
+ CHECK(params.swapped_out); |
proxy = RenderFrameProxy::CreateProxyToReplaceFrame( |
- main_render_frame_.get(), params->proxy_routing_id); |
+ main_render_frame_.get(), params.proxy_routing_id); |
main_render_frame_->set_render_frame_proxy(proxy); |
} |
@@ -783,19 +784,19 @@ void RenderViewImpl::Initialize(RenderViewImplParams* params) { |
if (switches::IsTouchEditingEnabled()) |
webview()->settings()->setTouchEditingEnabled(true); |
- if (!params->frame_name.empty()) |
- webview()->mainFrame()->setName(params->frame_name); |
+ if (!params.frame_name.empty()) |
+ webview()->mainFrame()->setName(params.frame_name); |
// TODO(davidben): Move this state from Blink into content. |
- if (params->window_was_created_with_opener) |
+ if (params.window_was_created_with_opener) |
webview()->setOpenedByDOM(); |
- OnSetRendererPrefs(params->renderer_prefs); |
+ OnSetRendererPrefs(params.renderer_preferences); |
- if (!params->enable_auto_resize) { |
- OnResize(params->initial_size); |
+ if (!params.enable_auto_resize) { |
+ OnResize(params.initial_size); |
} else { |
- OnEnableAutoResize(params->min_size, params->max_size); |
+ OnEnableAutoResize(params.min_size, params.max_size); |
} |
new MHTMLGenerator(this); |
@@ -826,8 +827,8 @@ void RenderViewImpl::Initialize(RenderViewImplParams* params) { |
// If we have an opener_id but we weren't created by a renderer, then |
// it's the browser asking us to set our opener to another RenderView. |
- if (params->opener_id != MSG_ROUTING_NONE && !params->is_renderer_created) { |
- RenderViewImpl* opener_view = FromRoutingID(params->opener_id); |
+ if (params.opener_route_id != MSG_ROUTING_NONE && !was_created_by_renderer) { |
+ RenderViewImpl* opener_view = FromRoutingID(params.opener_route_id); |
if (opener_view) |
webview()->mainFrame()->setOpener(opener_view->webview()->mainFrame()); |
} |
@@ -1143,58 +1144,22 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, |
/*static*/ |
RenderViewImpl* RenderViewImpl::Create( |
- int32 opener_id, |
- bool window_was_created_with_opener, |
- const RendererPreferences& renderer_prefs, |
- const WebPreferences& webkit_prefs, |
- int32 routing_id, |
- int32 main_frame_routing_id, |
- int32 surface_id, |
- int64 session_storage_namespace_id, |
- const base::string16& frame_name, |
- bool is_renderer_created, |
- bool swapped_out, |
- int32 proxy_routing_id, |
- bool hidden, |
- bool never_visible, |
- int32 next_page_id, |
- const ViewMsg_Resize_Params& initial_size, |
- bool enable_auto_resize, |
- const gfx::Size& min_size, |
- const gfx::Size& max_size) { |
- DCHECK(routing_id != MSG_ROUTING_NONE); |
- RenderViewImplParams params(opener_id, |
- window_was_created_with_opener, |
- renderer_prefs, |
- webkit_prefs, |
- routing_id, |
- main_frame_routing_id, |
- surface_id, |
- session_storage_namespace_id, |
- frame_name, |
- is_renderer_created, |
- swapped_out, |
- proxy_routing_id, |
- hidden, |
- never_visible, |
- next_page_id, |
- initial_size, |
- enable_auto_resize, |
- min_size, |
- max_size); |
+ const ViewMsg_New_Params& params, |
+ bool was_created_by_renderer) { |
+ DCHECK(params.view_id != MSG_ROUTING_NONE); |
RenderViewImpl* render_view = NULL; |
if (g_create_render_view_impl) |
- render_view = g_create_render_view_impl(¶ms); |
+ render_view = g_create_render_view_impl(params); |
else |
- render_view = new RenderViewImpl(¶ms); |
+ render_view = new RenderViewImpl(params); |
- render_view->Initialize(¶ms); |
+ render_view->Initialize(params, was_created_by_renderer); |
return render_view; |
} |
// static |
void RenderViewImpl::InstallCreateHook( |
- RenderViewImpl* (*create_render_view_impl)(RenderViewImplParams*)) { |
+ RenderViewImpl* (*create_render_view_impl)(const ViewMsg_New_Params&)) { |
CHECK(!g_create_render_view_impl); |
g_create_render_view_impl = create_render_view_impl; |
} |
@@ -1702,27 +1667,29 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator, |
// return from this call synchronously, we just have to make our best guess |
// and rely on the browser sending a WasHidden / WasShown message if it |
// disagrees. |
- RenderViewImpl* view = RenderViewImpl::Create( |
- routing_id_, |
- true, // window_was_created_with_opener |
- renderer_preferences_, |
- webkit_preferences_, |
- routing_id, |
- main_frame_routing_id, |
- surface_id, |
- cloned_session_storage_namespace_id, |
- base::string16(), // WebCore will take care of setting the correct name. |
- true, // is_renderer_created |
- false, // swapped_out |
- MSG_ROUTING_NONE, // proxy_routing_id |
- params.disposition == NEW_BACKGROUND_TAB, // hidden |
- never_visible, |
- 1, // next_page_id |
- initial_size, |
- false, // enable_auto_resize |
- gfx::Size(), // min_size |
- gfx::Size() // max_size |
- ); |
+ ViewMsg_New_Params view_params; |
+ view_params.opener_route_id = routing_id_; |
+ view_params.window_was_created_with_opener = true; |
+ view_params.renderer_preferences = renderer_preferences_; |
+ view_params.web_preferences = webkit_preferences_; |
+ view_params.view_id = routing_id; |
+ view_params.main_frame_routing_id = main_frame_routing_id; |
+ view_params.surface_id = surface_id; |
+ view_params.session_storage_namespace_id = |
+ cloned_session_storage_namespace_id; |
+ // WebCore will take care of setting the correct name. |
+ view_params.frame_name = base::string16(); |
+ view_params.swapped_out = false; |
+ view_params.proxy_routing_id = MSG_ROUTING_NONE; |
+ view_params.hidden = (params.disposition == NEW_BACKGROUND_TAB); |
+ view_params.never_visible = never_visible; |
+ view_params.next_page_id = 1; |
+ view_params.initial_size = initial_size; |
+ view_params.enable_auto_resize = false; |
+ view_params.min_size = gfx::Size(); |
+ view_params.max_size = gfx::Size(); |
+ |
+ RenderViewImpl* view = RenderViewImpl::Create(view_params, true); |
view->opened_by_user_gesture_ = params.user_gesture; |
// Record whether the creator frame is trying to suppress the opener field. |