Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Side by Side Diff: chrome/browser/renderer_host/render_view_host.cc

Issue 3325012: Fix SessionStorage (Closed)
Patch Set: kill the last (new) dcheck Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/renderer_host/render_view_host.h" 5 #include "chrome/browser/renderer_host/render_view_host.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/i18n/rtl.h" 11 #include "base/i18n/rtl.h"
12 #include "base/json/json_reader.h" 12 #include "base/json/json_reader.h"
13 #include "base/stats_counters.h" 13 #include "base/stats_counters.h"
14 #include "base/string_util.h" 14 #include "base/string_util.h"
15 #include "base/time.h" 15 #include "base/time.h"
16 #include "chrome/browser/blocked_plugin_manager.h" 16 #include "chrome/browser/blocked_plugin_manager.h"
17 #include "chrome/browser/browser_list.h" 17 #include "chrome/browser/browser_list.h"
18 #include "chrome/browser/child_process_security_policy.h" 18 #include "chrome/browser/child_process_security_policy.h"
19 #include "chrome/browser/cross_site_request_manager.h" 19 #include "chrome/browser/cross_site_request_manager.h"
20 #include "chrome/browser/debugger/devtools_manager.h" 20 #include "chrome/browser/debugger/devtools_manager.h"
21 #include "chrome/browser/dom_operation_notification_details.h" 21 #include "chrome/browser/dom_operation_notification_details.h"
22 #include "chrome/browser/extensions/extension_message_service.h" 22 #include "chrome/browser/extensions/extension_message_service.h"
23 #include "chrome/browser/in_process_webkit/session_storage_namespace.h"
23 #include "chrome/browser/metrics/user_metrics.h" 24 #include "chrome/browser/metrics/user_metrics.h"
24 #include "chrome/browser/net/predictor_api.h" 25 #include "chrome/browser/net/predictor_api.h"
25 #include "chrome/browser/notifications/desktop_notification_service.h" 26 #include "chrome/browser/notifications/desktop_notification_service.h"
26 #include "chrome/browser/profile.h" 27 #include "chrome/browser/profile.h"
27 #include "chrome/browser/renderer_host/render_process_host.h" 28 #include "chrome/browser/renderer_host/render_process_host.h"
28 #include "chrome/browser/renderer_host/render_view_host_delegate.h" 29 #include "chrome/browser/renderer_host/render_view_host_delegate.h"
29 #include "chrome/browser/renderer_host/render_widget_host.h" 30 #include "chrome/browser/renderer_host/render_widget_host.h"
30 #include "chrome/browser/renderer_host/render_widget_host_view.h" 31 #include "chrome/browser/renderer_host/render_widget_host_view.h"
31 #include "chrome/browser/renderer_host/site_instance.h" 32 #include "chrome/browser/renderer_host/site_instance.h"
32 #include "chrome/common/bindings_policy.h" 33 #include "chrome/common/bindings_policy.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 RenderWidgetHost* widget = static_cast<RenderWidgetHost*>( 108 RenderWidgetHost* widget = static_cast<RenderWidgetHost*>(
108 process->GetListenerByID(render_view_id)); 109 process->GetListenerByID(render_view_id));
109 if (!widget || !widget->IsRenderView()) 110 if (!widget || !widget->IsRenderView())
110 return NULL; 111 return NULL;
111 return static_cast<RenderViewHost*>(widget); 112 return static_cast<RenderViewHost*>(widget);
112 } 113 }
113 114
114 RenderViewHost::RenderViewHost(SiteInstance* instance, 115 RenderViewHost::RenderViewHost(SiteInstance* instance,
115 RenderViewHostDelegate* delegate, 116 RenderViewHostDelegate* delegate,
116 int routing_id, 117 int routing_id,
117 int64 session_storage_namespace_id) 118 SessionStorageNamespace* session_storage)
118 : RenderWidgetHost(instance->GetProcess(), routing_id), 119 : RenderWidgetHost(instance->GetProcess(), routing_id),
119 instance_(instance), 120 instance_(instance),
120 delegate_(delegate), 121 delegate_(delegate),
121 waiting_for_drag_context_response_(false), 122 waiting_for_drag_context_response_(false),
122 enabled_bindings_(0), 123 enabled_bindings_(0),
123 pending_request_id_(0), 124 pending_request_id_(0),
124 navigations_suspended_(false), 125 navigations_suspended_(false),
125 suspended_nav_message_(NULL), 126 suspended_nav_message_(NULL),
126 run_modal_reply_msg_(NULL), 127 run_modal_reply_msg_(NULL),
127 is_waiting_for_beforeunload_ack_(false), 128 is_waiting_for_beforeunload_ack_(false),
128 is_waiting_for_unload_ack_(false), 129 is_waiting_for_unload_ack_(false),
129 unload_ack_is_for_cross_site_transition_(false), 130 unload_ack_is_for_cross_site_transition_(false),
130 are_javascript_messages_suppressed_(false), 131 are_javascript_messages_suppressed_(false),
131 sudden_termination_allowed_(false), 132 sudden_termination_allowed_(false),
132 session_storage_namespace_id_(session_storage_namespace_id), 133 session_storage_namespace_(session_storage),
133 is_extension_process_(false), 134 is_extension_process_(false),
134 autofill_query_id_(0), 135 autofill_query_id_(0),
135 save_accessibility_tree_for_testing_(false) { 136 save_accessibility_tree_for_testing_(false) {
137 if (!session_storage_namespace_) {
138 session_storage_namespace_ =
139 new SessionStorageNamespace(process()->profile());
140 }
141
136 DCHECK(instance_); 142 DCHECK(instance_);
137 DCHECK(delegate_); 143 DCHECK(delegate_);
138 } 144 }
139 145
140 RenderViewHost::~RenderViewHost() { 146 RenderViewHost::~RenderViewHost() {
141 delegate()->RenderViewDeleted(this); 147 delegate()->RenderViewDeleted(this);
142 148
143 // Be sure to clean up any leftover state from cross-site requests. 149 // Be sure to clean up any leftover state from cross-site requests.
144 Singleton<CrossSiteRequestManager>()->SetHasPendingCrossSiteRequest( 150 Singleton<CrossSiteRequestManager>()->SetHasPendingCrossSiteRequest(
145 process()->id(), routing_id(), false); 151 process()->id(), routing_id(), false);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 webkit_prefs.local_storage_enabled = true; 188 webkit_prefs.local_storage_enabled = true;
183 webkit_prefs.databases_enabled = true; 189 webkit_prefs.databases_enabled = true;
184 } 190 }
185 191
186 ViewMsg_New_Params params; 192 ViewMsg_New_Params params;
187 params.parent_window = GetNativeViewId(); 193 params.parent_window = GetNativeViewId();
188 params.renderer_preferences = 194 params.renderer_preferences =
189 delegate_->GetRendererPrefs(process()->profile()); 195 delegate_->GetRendererPrefs(process()->profile());
190 params.web_preferences = webkit_prefs; 196 params.web_preferences = webkit_prefs;
191 params.view_id = routing_id(); 197 params.view_id = routing_id();
192 params.session_storage_namespace_id = session_storage_namespace_id_; 198 params.session_storage_namespace_id = session_storage_namespace_->id();
193 params.frame_name = frame_name; 199 params.frame_name = frame_name;
194 Send(new ViewMsg_New(params)); 200 Send(new ViewMsg_New(params));
195 201
196 // Set the alternate error page, which is profile specific, in the renderer. 202 // Set the alternate error page, which is profile specific, in the renderer.
197 GURL url = delegate_->GetAlternateErrorPageURL(); 203 GURL url = delegate_->GetAlternateErrorPageURL();
198 SetAlternateErrorPageURL(url); 204 SetAlternateErrorPageURL(url);
199 205
200 // If it's enabled, tell the renderer to set up the Javascript bindings for 206 // If it's enabled, tell the renderer to set up the Javascript bindings for
201 // sending messages back to the browser. 207 // sending messages back to the browser.
202 Send(new ViewMsg_AllowBindings(routing_id(), enabled_bindings_)); 208 Send(new ViewMsg_AllowBindings(routing_id(), enabled_bindings_));
(...skipping 1871 matching lines...) Expand 10 before | Expand all | Expand 10 after
2074 } 2080 }
2075 2081
2076 void RenderViewHost::OnSetSuggestResult(int32 page_id, 2082 void RenderViewHost::OnSetSuggestResult(int32 page_id,
2077 const std::string& result) { 2083 const std::string& result) {
2078 RenderViewHostDelegate::BrowserIntegration* integration_delegate = 2084 RenderViewHostDelegate::BrowserIntegration* integration_delegate =
2079 delegate_->GetBrowserIntegrationDelegate(); 2085 delegate_->GetBrowserIntegrationDelegate();
2080 if (!integration_delegate) 2086 if (!integration_delegate)
2081 return; 2087 return;
2082 integration_delegate->OnSetSuggestResult(page_id, result); 2088 integration_delegate->OnSetSuggestResult(page_id, result);
2083 } 2089 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_view_host.h ('k') | chrome/browser/renderer_host/render_view_host_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698