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