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_link_manager.h" | 5 #include "chrome/browser/prerender/prerender_link_manager.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <set> | 8 #include <set> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 prerender_id)); | 72 prerender_id)); |
73 LinkPrerender | 73 LinkPrerender |
74 prerender(launcher_child_id, prerender_id, url, referrer, size, | 74 prerender(launcher_child_id, prerender_id, url, referrer, size, |
75 render_view_route_id, manager_->GetCurrentTimeTicks()); | 75 render_view_route_id, manager_->GetCurrentTimeTicks()); |
76 prerenders_.push_back(prerender); | 76 prerenders_.push_back(prerender); |
77 StartPrerenders(); | 77 StartPrerenders(); |
78 } | 78 } |
79 | 79 |
80 void PrerenderLinkManager::OnCancelPrerender(int child_id, int prerender_id) { | 80 void PrerenderLinkManager::OnCancelPrerender(int child_id, int prerender_id) { |
81 LinkPrerender* prerender = FindByLauncherChildIdAndPrerenderId(child_id, | 81 LinkPrerender* prerender = FindByLauncherChildIdAndPrerenderId(child_id, |
82 prerender_id); | 82 prerender_id); |
83 if (!prerender) | 83 if (!prerender) |
84 return; | 84 return; |
85 | 85 |
86 // Remove the handle from the PrerenderLinkManager before we cancel this | 86 // Remove the handle from the PrerenderLinkManager before we cancel this |
87 // prerender, to avoid reentering the PrerenderLinkManager, sending events to | 87 // prerender, to avoid reentering the PrerenderLinkManager, sending events to |
88 // the underlying prerender and making a second erase. | 88 // the underlying prerender and making a second erase. |
89 scoped_ptr<PrerenderHandle> own_prerender_handle(prerender->handle); | 89 scoped_ptr<PrerenderHandle> own_prerender_handle(prerender->handle); |
90 prerender->handle = NULL; | 90 prerender->handle = NULL; |
91 RemovePrerender(prerender); | 91 RemovePrerender(prerender); |
92 | 92 |
93 if (own_prerender_handle) | 93 if (own_prerender_handle) |
94 own_prerender_handle->OnCancel(); | 94 own_prerender_handle->OnCancel(); |
95 | 95 |
96 StartPrerenders(); | 96 StartPrerenders(); |
97 } | 97 } |
98 | 98 |
99 void PrerenderLinkManager::OnAbandonPrerender(int child_id, int prerender_id) { | 99 void PrerenderLinkManager::OnAbandonPrerender(int child_id, int prerender_id) { |
100 LinkPrerender* prerender = FindByLauncherChildIdAndPrerenderId(child_id, | 100 LinkPrerender* prerender = FindByLauncherChildIdAndPrerenderId(child_id, |
101 prerender_id); | 101 prerender_id); |
102 if (!prerender) | 102 if (!prerender) |
103 return; | 103 return; |
104 | 104 |
105 if (!prerender->handle) { | 105 if (!prerender->handle) { |
106 RemovePrerender(prerender); | 106 RemovePrerender(prerender); |
107 return; | 107 return; |
108 } | 108 } |
109 | 109 |
110 prerender->handle->OnNavigateAway(); | 110 prerender->handle->OnNavigateAway(); |
111 DCHECK(prerender->handle); | 111 DCHECK(prerender->handle); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); | 337 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); |
338 if (!prerender) | 338 if (!prerender) |
339 return; | 339 return; |
340 | 340 |
341 Send(prerender->launcher_child_id, | 341 Send(prerender->launcher_child_id, |
342 new PrerenderMsg_OnPrerenderAddAlias(prerender->prerender_id, | 342 new PrerenderMsg_OnPrerenderAddAlias(prerender->prerender_id, |
343 alias_url)); | 343 alias_url)); |
344 } | 344 } |
345 | 345 |
346 } // namespace prerender | 346 } // namespace prerender |
OLD | NEW |