Chromium Code Reviews| 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_manager.h" | 5 #include "chrome/browser/prerender/prerender_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 1075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1086 } | 1086 } |
| 1087 | 1087 |
| 1088 seen_target_route_id_ = true; | 1088 seen_target_route_id_ = true; |
| 1089 target_route_id_ = PrerenderTracker::ChildRouteIdPair( | 1089 target_route_id_ = PrerenderTracker::ChildRouteIdPair( |
| 1090 render_view_host->GetMainFrame()->GetProcess()->GetID(), | 1090 render_view_host->GetMainFrame()->GetProcess()->GetID(), |
| 1091 render_view_host->GetMainFrame()->GetRoutingID()); | 1091 render_view_host->GetMainFrame()->GetRoutingID()); |
| 1092 manager_->prerender_tracker()->AddPrerenderPendingSwap( | 1092 manager_->prerender_tracker()->AddPrerenderPendingSwap( |
| 1093 target_route_id_, url_); | 1093 target_route_id_, url_); |
| 1094 } | 1094 } |
| 1095 | 1095 |
| 1096 void PrerenderManager::PendingSwap::ProvisionalChangeToMainFrameUrl( | |
| 1097 const GURL& url, | |
| 1098 content::RenderFrameHost* render_frame_host) { | |
| 1099 // We must only cancel the pending swap if the |url| navigated to is not | |
| 1100 // the URL being attempted to be swapped in. That's because in the normal | |
| 1101 // flow, a ProvisionalChangeToMainFrameUrl will happen for the URL attempted | |
| 1102 // to be swapped in immediately after the pending swap has issued its merge. | |
| 1103 if (url != url_) | |
|
tburkard
2014/09/17 14:19:42
How about this logic here? Why was this removed co
tburkard
2014/09/17 14:21:02
Ah I see that davidben@ mentioned that this may be
davidben
2014/09/17 15:08:30
That logic is actually a pretty good indication th
tburkard
2014/09/18 09:36:04
Saying a certain code path is not needed because i
Avi (use Gerrit)
2014/09/18 21:00:21
OK, I'm putting it back.
davidben
2014/09/18 22:14:21
Heh. Well, the better answer is that DidFailProvis
| |
| 1104 prerender_data_->ClearPendingSwap(); | |
| 1105 } | |
| 1106 | |
| 1107 void PrerenderManager::PendingSwap::DidCommitProvisionalLoadForFrame( | 1096 void PrerenderManager::PendingSwap::DidCommitProvisionalLoadForFrame( |
| 1108 content::RenderFrameHost* render_frame_host, | 1097 content::RenderFrameHost* render_frame_host, |
| 1109 const GURL& validated_url, | 1098 const GURL& validated_url, |
| 1110 content::PageTransition transition_type) { | 1099 content::PageTransition transition_type) { |
| 1111 if (render_frame_host->GetParent()) | 1100 if (render_frame_host->GetParent()) |
| 1112 return; | 1101 return; |
| 1113 prerender_data_->ClearPendingSwap(); | 1102 prerender_data_->ClearPendingSwap(); |
| 1114 } | 1103 } |
| 1115 | 1104 |
| 1116 void PrerenderManager::PendingSwap::DidFailProvisionalLoad( | 1105 void PrerenderManager::PendingSwap::DidFailProvisionalLoad( |
| (...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1885 content::RenderProcessHost* host) { | 1874 content::RenderProcessHost* host) { |
| 1886 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1875 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1887 prerender_process_hosts_.erase(host); | 1876 prerender_process_hosts_.erase(host); |
| 1888 BrowserThread::PostTask( | 1877 BrowserThread::PostTask( |
| 1889 BrowserThread::IO, FROM_HERE, | 1878 BrowserThread::IO, FROM_HERE, |
| 1890 base::Bind(&PrerenderTracker::RemovePrerenderCookieStoreOnIOThread, | 1879 base::Bind(&PrerenderTracker::RemovePrerenderCookieStoreOnIOThread, |
| 1891 base::Unretained(prerender_tracker()), host->GetID(), false)); | 1880 base::Unretained(prerender_tracker()), host->GetID(), false)); |
| 1892 } | 1881 } |
| 1893 | 1882 |
| 1894 } // namespace prerender | 1883 } // namespace prerender |
| OLD | NEW |