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 "chrome/browser/prerender/prerender_contents.h" | 5 #include "chrome/browser/prerender/prerender_contents.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <functional> | 10 #include <functional> |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 DCHECK_EQ(1U, alias_urls_.size()); | 280 DCHECK_EQ(1U, alias_urls_.size()); |
281 | 281 |
282 session_storage_namespace_id_ = session_storage_namespace->id(); | 282 session_storage_namespace_id_ = session_storage_namespace->id(); |
283 bounds_ = bounds; | 283 bounds_ = bounds; |
284 | 284 |
285 DCHECK(load_start_time_.is_null()); | 285 DCHECK(load_start_time_.is_null()); |
286 load_start_time_ = base::TimeTicks::Now(); | 286 load_start_time_ = base::TimeTicks::Now(); |
287 | 287 |
288 prerendering_has_started_ = true; | 288 prerendering_has_started_ = true; |
289 | 289 |
290 content::WebContents::CreateParams create_params = | 290 prerender_contents_.reset(CreateWebContents(session_storage_namespace)); |
291 WebContents::CreateParams(profile_); | 291 TabHelpers::AttachTabHelpers(prerender_contents_.get()); |
292 prerender_contents_.reset( | |
293 CreateWebContents(create_params, session_storage_namespace)); | |
294 TabHelpers::AttachTabHelpers(prerender_contents_.get(), create_params); | |
295 content::WebContentsObserver::Observe(prerender_contents_.get()); | 292 content::WebContentsObserver::Observe(prerender_contents_.get()); |
296 | 293 |
297 // Tag the prerender contents with the task manager specific prerender tag, so | 294 // Tag the prerender contents with the task manager specific prerender tag, so |
298 // that it shows up in the task manager. | 295 // that it shows up in the task manager. |
299 task_manager::WebContentsTags::CreateForPrerenderContents( | 296 task_manager::WebContentsTags::CreateForPrerenderContents( |
300 prerender_contents_.get()); | 297 prerender_contents_.get()); |
301 | 298 |
302 web_contents_delegate_.reset(new WebContentsDelegateImpl(this)); | 299 web_contents_delegate_.reset(new WebContentsDelegateImpl(this)); |
303 prerender_contents_.get()->SetDelegate(web_contents_delegate_.get()); | 300 prerender_contents_.get()->SetDelegate(web_contents_delegate_.get()); |
304 // Set the size of the prerender WebContents. | 301 // Set the size of the prerender WebContents. |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 NOTREACHED() << "Unexpected notification sent."; | 440 NOTREACHED() << "Unexpected notification sent."; |
444 break; | 441 break; |
445 } | 442 } |
446 } | 443 } |
447 | 444 |
448 void PrerenderContents::OnRenderViewHostCreated( | 445 void PrerenderContents::OnRenderViewHostCreated( |
449 RenderViewHost* new_render_view_host) { | 446 RenderViewHost* new_render_view_host) { |
450 } | 447 } |
451 | 448 |
452 WebContents* PrerenderContents::CreateWebContents( | 449 WebContents* PrerenderContents::CreateWebContents( |
453 const content::WebContents::CreateParams& create_params, | |
454 SessionStorageNamespace* session_storage_namespace) { | 450 SessionStorageNamespace* session_storage_namespace) { |
455 // TODO(ajwong): Remove the temporary map once prerendering is aware of | 451 // TODO(ajwong): Remove the temporary map once prerendering is aware of |
456 // multiple session storage namespaces per tab. | 452 // multiple session storage namespaces per tab. |
457 content::SessionStorageNamespaceMap session_storage_namespace_map; | 453 content::SessionStorageNamespaceMap session_storage_namespace_map; |
458 session_storage_namespace_map[std::string()] = session_storage_namespace; | 454 session_storage_namespace_map[std::string()] = session_storage_namespace; |
459 return WebContents::CreateWithSessionStorage(create_params, | 455 return WebContents::CreateWithSessionStorage( |
460 session_storage_namespace_map); | 456 WebContents::CreateParams(profile_), session_storage_namespace_map); |
461 } | 457 } |
462 | 458 |
463 void PrerenderContents::NotifyPrerenderStart() { | 459 void PrerenderContents::NotifyPrerenderStart() { |
464 DCHECK_EQ(FINAL_STATUS_MAX, final_status_); | 460 DCHECK_EQ(FINAL_STATUS_MAX, final_status_); |
465 for (Observer& observer : observer_list_) | 461 for (Observer& observer : observer_list_) |
466 observer.OnPrerenderStart(this); | 462 observer.OnPrerenderStart(this); |
467 } | 463 } |
468 | 464 |
469 void PrerenderContents::NotifyPrerenderStopLoading() { | 465 void PrerenderContents::NotifyPrerenderStopLoading() { |
470 for (Observer& observer : observer_list_) | 466 for (Observer& observer : observer_list_) |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 idle_resources_.push_back(throttle); | 789 idle_resources_.push_back(throttle); |
794 } | 790 } |
795 | 791 |
796 void PrerenderContents::AddNetworkBytes(int64_t bytes) { | 792 void PrerenderContents::AddNetworkBytes(int64_t bytes) { |
797 network_bytes_ += bytes; | 793 network_bytes_ += bytes; |
798 for (Observer& observer : observer_list_) | 794 for (Observer& observer : observer_list_) |
799 observer.OnPrerenderNetworkBytesChanged(this); | 795 observer.OnPrerenderNetworkBytesChanged(this); |
800 } | 796 } |
801 | 797 |
802 } // namespace prerender | 798 } // namespace prerender |
OLD | NEW |