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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 10831116: Move SessionStorageNamespace entirely into NavigationController and support StoragePartitions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merged ToT Created 8 years, 4 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 | Annotate | Revision Log
OLDNEW
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/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
11 #include "base/metrics/stats_counters.h" 11 #include "base/metrics/stats_counters.h"
12 #include "base/string16.h" 12 #include "base/string16.h"
13 #include "base/string_number_conversions.h" 13 #include "base/string_number_conversions.h"
14 #include "base/string_util.h" 14 #include "base/string_util.h"
15 #include "base/sys_info.h" 15 #include "base/sys_info.h"
16 #include "base/time.h" 16 #include "base/time.h"
17 #include "base/utf_string_conversions.h" 17 #include "base/utf_string_conversions.h"
18 #include "content/browser/browser_plugin/old/old_browser_plugin_host.h" 18 #include "content/browser/browser_plugin/old/old_browser_plugin_host.h"
19 #include "content/browser/child_process_security_policy_impl.h" 19 #include "content/browser/child_process_security_policy_impl.h"
20 #include "content/browser/debugger/devtools_manager_impl.h" 20 #include "content/browser/debugger/devtools_manager_impl.h"
21 #include "content/browser/dom_storage/dom_storage_context_impl.h"
21 #include "content/browser/dom_storage/session_storage_namespace_impl.h" 22 #include "content/browser/dom_storage/session_storage_namespace_impl.h"
22 #include "content/browser/download/download_stats.h" 23 #include "content/browser/download/download_stats.h"
23 #include "content/browser/download/mhtml_generation_manager.h" 24 #include "content/browser/download/mhtml_generation_manager.h"
24 #include "content/browser/download/save_package.h" 25 #include "content/browser/download/save_package.h"
25 #include "content/browser/gpu/gpu_data_manager_impl.h" 26 #include "content/browser/gpu/gpu_data_manager_impl.h"
26 #include "content/browser/gpu/gpu_process_host.h" 27 #include "content/browser/gpu/gpu_process_host.h"
27 #include "content/browser/host_zoom_map_impl.h" 28 #include "content/browser/host_zoom_map_impl.h"
28 #include "content/browser/intents/web_intents_dispatcher_impl.h" 29 #include "content/browser/intents/web_intents_dispatcher_impl.h"
29 #include "content/browser/renderer_host/render_process_host_impl.h" 30 #include "content/browser/renderer_host/render_process_host_impl.h"
30 #include "content/browser/renderer_host/render_view_host_impl.h" 31 #include "content/browser/renderer_host/render_view_host_impl.h"
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 } 275 }
275 276
276 } // namespace 277 } // namespace
277 278
278 namespace content { 279 namespace content {
279 280
280 WebContents* WebContents::Create( 281 WebContents* WebContents::Create(
281 BrowserContext* browser_context, 282 BrowserContext* browser_context,
282 SiteInstance* site_instance, 283 SiteInstance* site_instance,
283 int routing_id, 284 int routing_id,
285 const WebContents* base_web_contents) {
286 return WebContentsImpl::Create(
287 browser_context, site_instance, routing_id,
288 static_cast<const WebContentsImpl*>(base_web_contents));
289 }
290
291 WebContents* WebContents::CreateWithSessionStorage(
292 BrowserContext* browser_context,
293 SiteInstance* site_instance,
294 int routing_id,
284 const WebContents* base_web_contents, 295 const WebContents* base_web_contents,
285 SessionStorageNamespace* session_storage_namespace) { 296 const SessionStorageNamespaceMap& session_storage_namespace_map) {
286 return new WebContentsImpl( 297 WebContentsImpl* new_contents = new WebContentsImpl(browser_context, NULL);
287 browser_context, 298
288 site_instance, 299 for (SessionStorageNamespaceMap::const_iterator it =
289 routing_id, 300 session_storage_namespace_map.begin();
290 static_cast<const WebContentsImpl*>(base_web_contents), 301 it != session_storage_namespace_map.end();
291 NULL, 302 ++it) {
292 static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace)); 303 new_contents->GetController().SetSessionStorageNamespace(it->first,
304 it->second);
305 }
306
307 new_contents->Init(browser_context, site_instance, routing_id,
308 static_cast<const WebContentsImpl*>(base_web_contents));
309 return new_contents;
293 } 310 }
294 311
295 WebContents* WebContents::FromRenderViewHost(const RenderViewHost* rvh) { 312 WebContents* WebContents::FromRenderViewHost(const RenderViewHost* rvh) {
296 return rvh->GetDelegate()->GetAsWebContents(); 313 return rvh->GetDelegate()->GetAsWebContents();
297 } 314 }
298 315
299 } 316 }
300 317
301 // WebContentsImpl ------------------------------------------------------------- 318 // WebContentsImpl -------------------------------------------------------------
302 319
303 WebContentsImpl::WebContentsImpl( 320 WebContentsImpl::WebContentsImpl(
304 content::BrowserContext* browser_context, 321 content::BrowserContext* browser_context,
305 SiteInstance* site_instance, 322 WebContentsImpl* opener)
306 int routing_id,
307 const WebContentsImpl* base_web_contents,
308 WebContentsImpl* opener,
309 SessionStorageNamespaceImpl* session_storage_namespace)
310 : delegate_(NULL), 323 : delegate_(NULL),
311 ALLOW_THIS_IN_INITIALIZER_LIST(controller_( 324 ALLOW_THIS_IN_INITIALIZER_LIST(controller_(this, browser_context)),
312 this, browser_context, session_storage_namespace)),
313 render_view_host_delegate_view_(NULL), 325 render_view_host_delegate_view_(NULL),
314 opener_(opener), 326 opener_(opener),
315 ALLOW_THIS_IN_INITIALIZER_LIST(render_manager_(this, this, this)), 327 ALLOW_THIS_IN_INITIALIZER_LIST(render_manager_(this, this, this)),
316 is_loading_(false), 328 is_loading_(false),
317 crashed_status_(base::TERMINATION_STATUS_STILL_RUNNING), 329 crashed_status_(base::TERMINATION_STATUS_STILL_RUNNING),
318 crashed_error_code_(0), 330 crashed_error_code_(0),
319 waiting_for_response_(false), 331 waiting_for_response_(false),
320 load_state_(net::LOAD_STATE_IDLE, string16()), 332 load_state_(net::LOAD_STATE_IDLE, string16()),
321 upload_size_(0), 333 upload_size_(0),
322 upload_position_(0), 334 upload_position_(0),
323 displayed_insecure_content_(false), 335 displayed_insecure_content_(false),
324 capturing_contents_(false), 336 capturing_contents_(false),
325 is_being_destroyed_(false), 337 is_being_destroyed_(false),
326 notify_disconnection_(false), 338 notify_disconnection_(false),
327 dialog_creator_(NULL), 339 dialog_creator_(NULL),
328 #if defined(OS_WIN) 340 #if defined(OS_WIN)
329 message_box_active_(CreateEvent(NULL, TRUE, FALSE, NULL)), 341 message_box_active_(CreateEvent(NULL, TRUE, FALSE, NULL)),
330 #endif 342 #endif
331 is_showing_before_unload_dialog_(false), 343 is_showing_before_unload_dialog_(false),
332 opener_web_ui_type_(WebUI::kNoWebUI), 344 opener_web_ui_type_(WebUI::kNoWebUI),
333 closed_by_user_gesture_(false), 345 closed_by_user_gesture_(false),
334 minimum_zoom_percent_( 346 minimum_zoom_percent_(
335 static_cast<int>(content::kMinimumZoomFactor * 100)), 347 static_cast<int>(content::kMinimumZoomFactor * 100)),
336 maximum_zoom_percent_( 348 maximum_zoom_percent_(
337 static_cast<int>(content::kMaximumZoomFactor * 100)), 349 static_cast<int>(content::kMaximumZoomFactor * 100)),
338 temporary_zoom_settings_(false), 350 temporary_zoom_settings_(false),
339 content_restrictions_(0), 351 content_restrictions_(0),
340 color_chooser_(NULL) { 352 color_chooser_(NULL) {
341 render_manager_.Init(browser_context, site_instance, routing_id);
342
343 view_.reset(content::GetContentClient()->browser()->
344 OverrideCreateWebContentsView(this, &render_view_host_delegate_view_));
345 if (view_.get()) {
346 CHECK(render_view_host_delegate_view_);
347 } else {
348 content::WebContentsViewDelegate* delegate =
349 content::GetContentClient()->browser()->GetWebContentsViewDelegate(
350 this);
351 view_.reset(CreateWebContentsView(
352 this, delegate, &render_view_host_delegate_view_));
353 CHECK(render_view_host_delegate_view_);
354 }
355 CHECK(view_.get());
356
357 // We have the initial size of the view be based on the size of the view of
358 // the passed in WebContents.
359 view_->CreateView(base_web_contents ?
360 base_web_contents->GetView()->GetContainerSize() : gfx::Size());
361
362 // Listen for whether our opener gets destroyed.
363 if (opener_) {
364 registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
365 content::Source<WebContents>(opener_));
366 }
367
368 registrar_.Add(this,
369 content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
370 content::NotificationService::AllBrowserContextsAndSources());
371
372 #if defined(ENABLE_JAVA_BRIDGE)
373 java_bridge_dispatcher_host_manager_.reset(
374 new JavaBridgeDispatcherHostManager(this));
375 #endif
376
377 old_browser_plugin_host_.reset(new content::old::BrowserPluginHost(this));
378 } 353 }
379 354
380 WebContentsImpl::~WebContentsImpl() { 355 WebContentsImpl::~WebContentsImpl() {
381 is_being_destroyed_ = true; 356 is_being_destroyed_ = true;
382 357
383 // Clear out any JavaScript state. 358 // Clear out any JavaScript state.
384 if (dialog_creator_) 359 if (dialog_creator_)
385 dialog_creator_->ResetJavaScriptState(this); 360 dialog_creator_->ResetJavaScriptState(this);
386 361
387 if (color_chooser_) 362 if (color_chooser_)
(...skipping 24 matching lines...) Expand all
412 base::TimeTicks::Now() - close_start_time_); 387 base::TimeTicks::Now() - close_start_time_);
413 } 388 }
414 389
415 FOR_EACH_OBSERVER(WebContentsObserver, 390 FOR_EACH_OBSERVER(WebContentsObserver,
416 observers_, 391 observers_,
417 WebContentsImplDestroyed()); 392 WebContentsImplDestroyed());
418 393
419 SetDelegate(NULL); 394 SetDelegate(NULL);
420 } 395 }
421 396
397 WebContentsImpl* WebContentsImpl::Create(
398 BrowserContext* browser_context,
399 SiteInstance* site_instance,
400 int routing_id,
401 const WebContentsImpl* base_web_contents) {
402 return CreateWithOpener(browser_context, site_instance, routing_id,
403 base_web_contents, NULL);
404 }
405
406 WebContentsImpl* WebContentsImpl::CreateWithOpener(
407 BrowserContext* browser_context,
408 SiteInstance* site_instance,
409 int routing_id,
410 const WebContentsImpl* base_web_contents,
411 WebContentsImpl* opener) {
412 WebContentsImpl* new_contents = new WebContentsImpl(browser_context, opener);
413
414 new_contents->Init(browser_context, site_instance, routing_id,
415 static_cast<const WebContentsImpl*>(base_web_contents));
416 return new_contents;
417 }
418
422 WebPreferences WebContentsImpl::GetWebkitPrefs(RenderViewHost* rvh, 419 WebPreferences WebContentsImpl::GetWebkitPrefs(RenderViewHost* rvh,
423 const GURL& url) { 420 const GURL& url) {
424 WebPreferences prefs; 421 WebPreferences prefs;
425 422
426 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); 423 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
427 424
428 prefs.developer_extras_enabled = true; 425 prefs.developer_extras_enabled = true;
429 prefs.javascript_enabled = 426 prefs.javascript_enabled =
430 !command_line.HasSwitch(switches::kDisableJavaScript); 427 !command_line.HasSwitch(switches::kDisableJavaScript);
431 prefs.web_security_enabled = 428 prefs.web_security_enabled =
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 prefs.fixed_position_creates_stacking_context = !command_line.HasSwitch( 610 prefs.fixed_position_creates_stacking_context = !command_line.HasSwitch(
614 switches::kDisableFixedPositionCreatesStackingContext); 611 switches::kDisableFixedPositionCreatesStackingContext);
615 612
616 prefs.number_of_cpu_cores = base::SysInfo::NumberOfProcessors(); 613 prefs.number_of_cpu_cores = base::SysInfo::NumberOfProcessors();
617 614
618 content::GetContentClient()->browser()->OverrideWebkitPrefs(rvh, url, &prefs); 615 content::GetContentClient()->browser()->OverrideWebkitPrefs(rvh, url, &prefs);
619 616
620 return prefs; 617 return prefs;
621 } 618 }
622 619
623 NavigationControllerImpl& WebContentsImpl::GetControllerImpl() {
624 return controller_;
625 }
626
627 RenderViewHostManager* WebContentsImpl::GetRenderManagerForTesting() { 620 RenderViewHostManager* WebContentsImpl::GetRenderManagerForTesting() {
628 return &render_manager_; 621 return &render_manager_;
629 } 622 }
630 623
631 bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host, 624 bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host,
632 const IPC::Message& message) { 625 const IPC::Message& message) {
633 if (GetWebUI() && 626 if (GetWebUI() &&
634 static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) { 627 static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) {
635 return true; 628 return true;
636 } 629 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 return handled; 685 return handled;
693 } 686 }
694 687
695 void WebContentsImpl::RunFileChooser( 688 void WebContentsImpl::RunFileChooser(
696 RenderViewHost* render_view_host, 689 RenderViewHost* render_view_host,
697 const content::FileChooserParams& params) { 690 const content::FileChooserParams& params) {
698 if (delegate_) 691 if (delegate_)
699 delegate_->RunFileChooser(this, params); 692 delegate_->RunFileChooser(this, params);
700 } 693 }
701 694
702 NavigationController& WebContentsImpl::GetController() { 695 NavigationControllerImpl& WebContentsImpl::GetController() {
703 return controller_; 696 return controller_;
704 } 697 }
705 698
706 const NavigationController& WebContentsImpl::GetController() const { 699 const NavigationControllerImpl& WebContentsImpl::GetController() const {
707 return controller_; 700 return controller_;
708 } 701 }
709 702
710 content::BrowserContext* WebContentsImpl::GetBrowserContext() const { 703 content::BrowserContext* WebContentsImpl::GetBrowserContext() const {
711 return controller_.GetBrowserContext(); 704 return controller_.GetBrowserContext();
712 } 705 }
713 706
714 const GURL& WebContentsImpl::GetURL() const { 707 const GURL& WebContentsImpl::GetURL() const {
715 // We may not have a navigation entry yet 708 // We may not have a navigation entry yet
716 NavigationEntry* entry = controller_.GetActiveEntry(); 709 NavigationEntry* entry = controller_.GetActiveEntry();
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 1003
1011 void WebContentsImpl::Stop() { 1004 void WebContentsImpl::Stop() {
1012 render_manager_.Stop(); 1005 render_manager_.Stop();
1013 FOR_EACH_OBSERVER(WebContentsObserver, observers_, StopNavigation()); 1006 FOR_EACH_OBSERVER(WebContentsObserver, observers_, StopNavigation());
1014 } 1007 }
1015 1008
1016 WebContents* WebContentsImpl::Clone() { 1009 WebContents* WebContentsImpl::Clone() {
1017 // We use our current SiteInstance since the cloned entry will use it anyway. 1010 // We use our current SiteInstance since the cloned entry will use it anyway.
1018 // We pass |this| for the |base_web_contents| to size the view correctly, and 1011 // We pass |this| for the |base_web_contents| to size the view correctly, and
1019 // our own opener so that the cloned page can access it if it was before. 1012 // our own opener so that the cloned page can access it if it was before.
1020 WebContentsImpl* tc = new WebContentsImpl( 1013 WebContentsImpl* tc = CreateWithOpener(GetBrowserContext(),
1021 GetBrowserContext(), GetSiteInstance(), 1014 GetSiteInstance(), MSG_ROUTING_NONE,
1022 MSG_ROUTING_NONE, this, opener_, NULL); 1015 this, opener_);
1023 tc->GetControllerImpl().CopyStateFrom(controller_); 1016 tc->GetController().CopyStateFrom(controller_);
1024 return tc; 1017 return tc;
1025 } 1018 }
1026 1019
1027 void WebContentsImpl::AddNewContents(WebContents* new_contents, 1020 void WebContentsImpl::AddNewContents(WebContents* new_contents,
1028 WindowOpenDisposition disposition, 1021 WindowOpenDisposition disposition,
1029 const gfx::Rect& initial_pos, 1022 const gfx::Rect& initial_pos,
1030 bool user_gesture) { 1023 bool user_gesture) {
1031 if (!delegate_) 1024 if (!delegate_)
1032 return; 1025 return;
1033 1026
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 break; 1061 break;
1069 } 1062 }
1070 } 1063 }
1071 break; 1064 break;
1072 } 1065 }
1073 default: 1066 default:
1074 NOTREACHED(); 1067 NOTREACHED();
1075 } 1068 }
1076 } 1069 }
1077 1070
1071 void WebContentsImpl::Init(BrowserContext* browser_context,
1072 SiteInstance* site_instance,
1073 int routing_id,
1074 const WebContents* base_web_contents) {
1075 render_manager_.Init(browser_context, site_instance, routing_id);
1076
1077 view_.reset(content::GetContentClient()->browser()->
1078 OverrideCreateWebContentsView(this, &render_view_host_delegate_view_));
1079 if (view_.get()) {
1080 CHECK(render_view_host_delegate_view_);
1081 } else {
1082 content::WebContentsViewDelegate* delegate =
1083 content::GetContentClient()->browser()->GetWebContentsViewDelegate(
1084 this);
1085 view_.reset(CreateWebContentsView(
1086 this, delegate, &render_view_host_delegate_view_));
1087 CHECK(render_view_host_delegate_view_);
1088 }
1089 CHECK(view_.get());
1090
1091 // We have the initial size of the view be based on the size of the view of
1092 // the passed in WebContents.
1093 view_->CreateView(base_web_contents ?
1094 base_web_contents->GetView()->GetContainerSize() : gfx::Size());
1095
1096 // Listen for whether our opener gets destroyed.
1097 if (opener_) {
1098 registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
1099 content::Source<WebContents>(opener_));
1100 }
1101
1102 registrar_.Add(this,
1103 content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
1104 content::NotificationService::AllBrowserContextsAndSources());
1105 #if defined(ENABLE_JAVA_BRIDGE)
1106 java_bridge_dispatcher_host_manager_.reset(
1107 new JavaBridgeDispatcherHostManager(this));
1108 #endif
1109
1110 old_browser_plugin_host_.reset(new content::old::BrowserPluginHost(this));
1111 }
1112
1078 void WebContentsImpl::OnWebContentsDestroyed(WebContents* web_contents) { 1113 void WebContentsImpl::OnWebContentsDestroyed(WebContents* web_contents) {
1079 // Clear the opener if it has been closed. 1114 // Clear the opener if it has been closed.
1080 if (web_contents == opener_) { 1115 if (web_contents == opener_) {
1081 registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 1116 registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
1082 content::Source<WebContents>(opener_)); 1117 content::Source<WebContents>(opener_));
1083 opener_ = NULL; 1118 opener_ = NULL;
1084 } 1119 }
1085 } 1120 }
1086 1121
1087 void WebContentsImpl::AddObserver(WebContentsObserver* observer) { 1122 void WebContentsImpl::AddObserver(WebContentsObserver* observer) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 // script-related windows), by passing in the current SiteInstance. However, 1217 // script-related windows), by passing in the current SiteInstance. However,
1183 // if the opener is being suppressed, we create a new SiteInstance in its own 1218 // if the opener is being suppressed, we create a new SiteInstance in its own
1184 // BrowsingInstance. 1219 // BrowsingInstance.
1185 scoped_refptr<SiteInstance> site_instance = 1220 scoped_refptr<SiteInstance> site_instance =
1186 params.opener_suppressed ? 1221 params.opener_suppressed ?
1187 SiteInstance::Create(GetBrowserContext()) : 1222 SiteInstance::Create(GetBrowserContext()) :
1188 GetSiteInstance(); 1223 GetSiteInstance();
1189 1224
1190 // Create the new web contents. This will automatically create the new 1225 // Create the new web contents. This will automatically create the new
1191 // WebContentsView. In the future, we may want to create the view separately. 1226 // WebContentsView. In the future, we may want to create the view separately.
1192 WebContentsImpl* new_contents = new WebContentsImpl( 1227 WebContentsImpl* new_contents =
1193 GetBrowserContext(), 1228 new WebContentsImpl(GetBrowserContext(),
1194 site_instance, 1229 params.opener_suppressed ? NULL : this);
1195 route_id, 1230
1196 this, 1231 // We must assign the SessionStorageNamespace before calling Init().
1197 params.opener_suppressed ? NULL : this, 1232 const std::string& partition_id =
1198 static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace)); 1233 content::GetContentClient()->browser()->
1234 GetStoragePartitionIdForSiteInstance(GetBrowserContext(),
1235 site_instance);
1236 DOMStorageContextImpl* dom_storage_context =
1237 static_cast<DOMStorageContextImpl*>(
1238 BrowserContext::GetDOMStorageContextByPartitionId(
1239 GetBrowserContext(), partition_id));
1240 SessionStorageNamespaceImpl* session_storage_namespace_impl =
1241 static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace);
1242 CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context));
1243 new_contents->GetController().SetSessionStorageNamespace(
1244 partition_id,
1245 session_storage_namespace);
1246 new_contents->Init(GetBrowserContext(), site_instance, route_id, this);
1247
1199 new_contents->set_opener_web_ui_type(GetWebUITypeForCurrentState()); 1248 new_contents->set_opener_web_ui_type(GetWebUITypeForCurrentState());
1200 1249
1201 if (!params.opener_suppressed) { 1250 if (!params.opener_suppressed) {
1202 content::WebContentsView* new_view = new_contents->GetView(); 1251 content::WebContentsView* new_view = new_contents->GetView();
1203 1252
1204 // TODO(brettw): It seems bogus that we have to call this function on the 1253 // TODO(brettw): It seems bogus that we have to call this function on the
1205 // newly created object and give it one of its own member variables. 1254 // newly created object and give it one of its own member variables.
1206 new_view->CreateViewForWidget(new_contents->GetRenderViewHost()); 1255 new_view->CreateViewForWidget(new_contents->GetRenderViewHost());
1207 1256
1208 // Save the created window associated with the route so we can show it 1257 // Save the created window associated with the route so we can show it
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after
1982 2031
1983 content::NotificationService::current()->Notify( 2032 content::NotificationService::current()->Notify(
1984 content::NOTIFICATION_LOAD_FROM_MEMORY_CACHE, 2033 content::NOTIFICATION_LOAD_FROM_MEMORY_CACHE,
1985 content::Source<NavigationController>(&controller_), 2034 content::Source<NavigationController>(&controller_),
1986 content::Details<content::LoadFromMemoryCacheDetails>(&details)); 2035 content::Details<content::LoadFromMemoryCacheDetails>(&details));
1987 } 2036 }
1988 2037
1989 void WebContentsImpl::OnDidDisplayInsecureContent() { 2038 void WebContentsImpl::OnDidDisplayInsecureContent() {
1990 content::RecordAction(UserMetricsAction("SSL.DisplayedInsecureContent")); 2039 content::RecordAction(UserMetricsAction("SSL.DisplayedInsecureContent"));
1991 displayed_insecure_content_ = true; 2040 displayed_insecure_content_ = true;
1992 SSLManager::NotifySSLInternalStateChanged(&GetControllerImpl()); 2041 SSLManager::NotifySSLInternalStateChanged(&GetController());
1993 } 2042 }
1994 2043
1995 void WebContentsImpl::OnDidRunInsecureContent( 2044 void WebContentsImpl::OnDidRunInsecureContent(
1996 const std::string& security_origin, const GURL& target_url) { 2045 const std::string& security_origin, const GURL& target_url) {
1997 LOG(INFO) << security_origin << " ran insecure content from " 2046 LOG(INFO) << security_origin << " ran insecure content from "
1998 << target_url.possibly_invalid_spec(); 2047 << target_url.possibly_invalid_spec();
1999 content::RecordAction(UserMetricsAction("SSL.RanInsecureContent")); 2048 content::RecordAction(UserMetricsAction("SSL.RanInsecureContent"));
2000 if (EndsWith(security_origin, kDotGoogleDotCom, false)) 2049 if (EndsWith(security_origin, kDotGoogleDotCom, false))
2001 content::RecordAction(UserMetricsAction("SSL.RanInsecureContentGoogle")); 2050 content::RecordAction(UserMetricsAction("SSL.RanInsecureContentGoogle"));
2002 controller_.ssl_manager()->DidRunInsecureContent(security_origin); 2051 controller_.ssl_manager()->DidRunInsecureContent(security_origin);
2003 displayed_insecure_content_ = true; 2052 displayed_insecure_content_ = true;
2004 SSLManager::NotifySSLInternalStateChanged(&GetControllerImpl()); 2053 SSLManager::NotifySSLInternalStateChanged(&GetController());
2005 } 2054 }
2006 2055
2007 void WebContentsImpl::OnDocumentLoadedInFrame(int64 frame_id) { 2056 void WebContentsImpl::OnDocumentLoadedInFrame(int64 frame_id) {
2008 controller_.DocumentLoadedInFrame(); 2057 controller_.DocumentLoadedInFrame();
2009 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 2058 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
2010 DocumentLoadedInFrame(frame_id, message_source_)); 2059 DocumentLoadedInFrame(frame_id, message_source_));
2011 } 2060 }
2012 2061
2013 void WebContentsImpl::OnDidFinishLoad( 2062 void WebContentsImpl::OnDidFinishLoad(
2014 int64 frame_id, 2063 int64 frame_id,
(...skipping 995 matching lines...) Expand 10 before | Expand all | Expand 10 after
3010 // SiteInstance as well. 3059 // SiteInstance as well.
3011 if (opener_) 3060 if (opener_)
3012 opener_route_id = opener_->CreateOpenerRenderViews(instance); 3061 opener_route_id = opener_->CreateOpenerRenderViews(instance);
3013 3062
3014 // Create a swapped out RenderView in the given SiteInstance if none exists, 3063 // Create a swapped out RenderView in the given SiteInstance if none exists,
3015 // setting its opener to the given route_id. Return the new view's route_id. 3064 // setting its opener to the given route_id. Return the new view's route_id.
3016 return render_manager_.CreateRenderView(instance, opener_route_id, true); 3065 return render_manager_.CreateRenderView(instance, opener_route_id, true);
3017 } 3066 }
3018 3067
3019 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { 3068 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() {
3020 return GetControllerImpl(); 3069 return GetController();
3021 } 3070 }
3022 3071
3023 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) { 3072 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) {
3024 return static_cast<WebUIImpl*>(CreateWebUI(url)); 3073 return static_cast<WebUIImpl*>(CreateWebUI(url));
3025 } 3074 }
3026 3075
3027 NavigationEntry* 3076 NavigationEntry*
3028 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { 3077 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() {
3029 return controller_.GetLastCommittedEntry(); 3078 return controller_.GetLastCommittedEntry();
3030 } 3079 }
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
3135 old_browser_plugin_host()->embedder_render_process_host(); 3184 old_browser_plugin_host()->embedder_render_process_host();
3136 *embedder_container_id = old_browser_plugin_host()->instance_id(); 3185 *embedder_container_id = old_browser_plugin_host()->instance_id();
3137 int embedder_process_id = 3186 int embedder_process_id =
3138 embedder_render_process_host ? embedder_render_process_host->GetID() : -1; 3187 embedder_render_process_host ? embedder_render_process_host->GetID() : -1;
3139 if (embedder_process_id != -1) { 3188 if (embedder_process_id != -1) {
3140 *embedder_channel_name = 3189 *embedder_channel_name =
3141 StringPrintf("%d.r%d", render_view_host->GetProcess()->GetID(), 3190 StringPrintf("%d.r%d", render_view_host->GetProcess()->GetID(),
3142 embedder_process_id); 3191 embedder_process_id);
3143 } 3192 }
3144 } 3193 }
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/browser/web_contents/web_contents_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698