| OLD | NEW |
| 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/renderer/render_view.h" | 5 #include "chrome/renderer/render_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 } | 237 } |
| 238 | 238 |
| 239 return false; | 239 return false; |
| 240 } | 240 } |
| 241 | 241 |
| 242 /////////////////////////////////////////////////////////////////////////////// | 242 /////////////////////////////////////////////////////////////////////////////// |
| 243 | 243 |
| 244 int32 RenderView::next_page_id_ = 1; | 244 int32 RenderView::next_page_id_ = 1; |
| 245 | 245 |
| 246 RenderView::RenderView(RenderThreadBase* render_thread, | 246 RenderView::RenderView(RenderThreadBase* render_thread, |
| 247 const WebPreferences& webkit_preferences) | 247 const WebPreferences& webkit_preferences, |
| 248 int64 session_storage_namespace_id) |
| 248 : RenderWidget(render_thread, true), | 249 : RenderWidget(render_thread, true), |
| 249 enabled_bindings_(0), | 250 enabled_bindings_(0), |
| 250 target_url_status_(TARGET_NONE), | 251 target_url_status_(TARGET_NONE), |
| 251 is_loading_(false), | 252 is_loading_(false), |
| 252 navigation_gesture_(NavigationGestureUnknown), | 253 navigation_gesture_(NavigationGestureUnknown), |
| 253 page_id_(-1), | 254 page_id_(-1), |
| 254 last_page_id_sent_to_browser_(-1), | 255 last_page_id_sent_to_browser_(-1), |
| 255 last_indexed_page_id_(-1), | 256 last_indexed_page_id_(-1), |
| 256 opened_by_user_gesture_(true), | 257 opened_by_user_gesture_(true), |
| 257 opener_suppressed_(false), | 258 opener_suppressed_(false), |
| (...skipping 13 matching lines...) Expand all Loading... |
| 271 ALLOW_THIS_IN_INITIALIZER_LIST( | 272 ALLOW_THIS_IN_INITIALIZER_LIST( |
| 272 notification_provider_(new NotificationProvider(this))), | 273 notification_provider_(new NotificationProvider(this))), |
| 273 determine_page_text_after_loading_stops_(false), | 274 determine_page_text_after_loading_stops_(false), |
| 274 view_type_(ViewType::INVALID), | 275 view_type_(ViewType::INVALID), |
| 275 browser_window_id_(-1), | 276 browser_window_id_(-1), |
| 276 last_top_level_navigation_page_id_(-1), | 277 last_top_level_navigation_page_id_(-1), |
| 277 #if defined(OS_MACOSX) | 278 #if defined(OS_MACOSX) |
| 278 has_document_tag_(false), | 279 has_document_tag_(false), |
| 279 #endif | 280 #endif |
| 280 document_tag_(0), | 281 document_tag_(0), |
| 281 webkit_preferences_(webkit_preferences) { | 282 webkit_preferences_(webkit_preferences), |
| 283 session_storage_namespace_id_(session_storage_namespace_id) { |
| 282 } | 284 } |
| 283 | 285 |
| 284 RenderView::~RenderView() { | 286 RenderView::~RenderView() { |
| 285 if (decrement_shared_popup_at_destruction_) | 287 if (decrement_shared_popup_at_destruction_) |
| 286 shared_popup_counter_->data--; | 288 shared_popup_counter_->data--; |
| 287 | 289 |
| 288 // Dispose of un-disposed image fetchers. | 290 // Dispose of un-disposed image fetchers. |
| 289 for (ImageResourceFetcherSet::iterator i = image_fetchers_.begin(); | 291 for (ImageResourceFetcherSet::iterator i = image_fetchers_.begin(); |
| 290 i != image_fetchers_.end(); ++i) { | 292 i != image_fetchers_.end(); ++i) { |
| 291 delete *i; | 293 delete *i; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 } | 330 } |
| 329 | 331 |
| 330 /*static*/ | 332 /*static*/ |
| 331 RenderView* RenderView::Create( | 333 RenderView* RenderView::Create( |
| 332 RenderThreadBase* render_thread, | 334 RenderThreadBase* render_thread, |
| 333 gfx::NativeViewId parent_hwnd, | 335 gfx::NativeViewId parent_hwnd, |
| 334 int32 opener_id, | 336 int32 opener_id, |
| 335 const RendererPreferences& renderer_prefs, | 337 const RendererPreferences& renderer_prefs, |
| 336 const WebPreferences& webkit_prefs, | 338 const WebPreferences& webkit_prefs, |
| 337 SharedRenderViewCounter* counter, | 339 SharedRenderViewCounter* counter, |
| 338 int32 routing_id) { | 340 int32 routing_id, |
| 341 int64 session_storage_namespace_id) { |
| 339 DCHECK(routing_id != MSG_ROUTING_NONE); | 342 DCHECK(routing_id != MSG_ROUTING_NONE); |
| 340 scoped_refptr<RenderView> view = new RenderView(render_thread, webkit_prefs); | 343 scoped_refptr<RenderView> view = new RenderView(render_thread, webkit_prefs, |
| 344 session_storage_namespace_id); |
| 341 view->Init(parent_hwnd, | 345 view->Init(parent_hwnd, |
| 342 opener_id, | 346 opener_id, |
| 343 renderer_prefs, | 347 renderer_prefs, |
| 344 counter, | 348 counter, |
| 345 routing_id); // adds reference | 349 routing_id); // adds reference |
| 346 return view; | 350 return view; |
| 347 } | 351 } |
| 348 | 352 |
| 349 /*static*/ | 353 /*static*/ |
| 350 void RenderView::SetNextPageID(int32 next_page_id) { | 354 void RenderView::SetNextPageID(int32 next_page_id) { |
| (...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1348 if (shared_popup_counter_->data > kMaximumNumberOfUnacknowledgedPopups) | 1352 if (shared_popup_counter_->data > kMaximumNumberOfUnacknowledgedPopups) |
| 1349 return NULL; | 1353 return NULL; |
| 1350 | 1354 |
| 1351 // This window can't be closed from a window.close() call until we receive a | 1355 // This window can't be closed from a window.close() call until we receive a |
| 1352 // message from the Browser process explicitly allowing it. | 1356 // message from the Browser process explicitly allowing it. |
| 1353 popup_notification_visible_ = true; | 1357 popup_notification_visible_ = true; |
| 1354 | 1358 |
| 1355 int32 routing_id = MSG_ROUTING_NONE; | 1359 int32 routing_id = MSG_ROUTING_NONE; |
| 1356 bool user_gesture = creator->isProcessingUserGesture(); | 1360 bool user_gesture = creator->isProcessingUserGesture(); |
| 1357 bool opener_suppressed = creator->willSuppressOpenerInNewFrame(); | 1361 bool opener_suppressed = creator->willSuppressOpenerInNewFrame(); |
| 1362 int64 cloned_session_storage_namespace_id; |
| 1358 | 1363 |
| 1359 render_thread_->Send( | 1364 render_thread_->Send( |
| 1360 new ViewHostMsg_CreateWindow(routing_id_, user_gesture, &routing_id)); | 1365 new ViewHostMsg_CreateWindow(routing_id_, user_gesture, |
| 1366 session_storage_namespace_id_, |
| 1367 &routing_id, |
| 1368 &cloned_session_storage_namespace_id)); |
| 1361 if (routing_id == MSG_ROUTING_NONE) | 1369 if (routing_id == MSG_ROUTING_NONE) |
| 1362 return NULL; | 1370 return NULL; |
| 1363 | 1371 |
| 1364 RenderView* view = RenderView::Create(render_thread_, | 1372 RenderView* view = RenderView::Create(render_thread_, |
| 1365 0, | 1373 0, |
| 1366 routing_id_, | 1374 routing_id_, |
| 1367 renderer_preferences_, | 1375 renderer_preferences_, |
| 1368 webkit_preferences_, | 1376 webkit_preferences_, |
| 1369 shared_popup_counter_, | 1377 shared_popup_counter_, |
| 1370 routing_id); | 1378 routing_id, |
| 1379 cloned_session_storage_namespace_id); |
| 1371 view->opened_by_user_gesture_ = user_gesture; | 1380 view->opened_by_user_gesture_ = user_gesture; |
| 1372 | 1381 |
| 1373 // Record whether the creator frame is trying to suppress the opener field. | 1382 // Record whether the creator frame is trying to suppress the opener field. |
| 1374 view->opener_suppressed_ = opener_suppressed; | 1383 view->opener_suppressed_ = opener_suppressed; |
| 1375 | 1384 |
| 1376 // Record the security origin of the creator. | 1385 // Record the security origin of the creator. |
| 1377 GURL creator_url(creator->securityOrigin().toString().utf8()); | 1386 GURL creator_url(creator->securityOrigin().toString().utf8()); |
| 1378 if (!creator_url.is_valid() || !creator_url.IsStandard()) | 1387 if (!creator_url.is_valid() || !creator_url.IsStandard()) |
| 1379 creator_url = GURL(); | 1388 creator_url = GURL(); |
| 1380 view->creator_url_ = creator_url; | 1389 view->creator_url_ = creator_url; |
| (...skipping 2590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3971 new PluginMsg_SignalModalDialogEvent(host_window_)); | 3980 new PluginMsg_SignalModalDialogEvent(host_window_)); |
| 3972 | 3981 |
| 3973 message->EnableMessagePumping(); // Runs a nested message loop. | 3982 message->EnableMessagePumping(); // Runs a nested message loop. |
| 3974 bool rv = Send(message); | 3983 bool rv = Send(message); |
| 3975 | 3984 |
| 3976 PluginChannelHost::Broadcast( | 3985 PluginChannelHost::Broadcast( |
| 3977 new PluginMsg_ResetModalDialogEvent(host_window_)); | 3986 new PluginMsg_ResetModalDialogEvent(host_window_)); |
| 3978 | 3987 |
| 3979 return rv; | 3988 return rv; |
| 3980 } | 3989 } |
| OLD | NEW |