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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 } | 60 } |
61 } | 61 } |
62 } | 62 } |
63 | 63 |
64 void PrerenderLinkManager::OnAddPrerender(int launcher_child_id, | 64 void PrerenderLinkManager::OnAddPrerender(int launcher_child_id, |
65 int prerender_id, | 65 int prerender_id, |
66 const GURL& url, | 66 const GURL& url, |
67 const content::Referrer& referrer, | 67 const content::Referrer& referrer, |
68 const gfx::Size& size, | 68 const gfx::Size& size, |
69 int render_view_route_id) { | 69 int render_view_route_id) { |
70 DCHECK_EQ(static_cast<LinkPrerender*>(NULL), | 70 // TODO(gavinp): Determine why WebKit appears to be sending duplicate adds, |
71 FindByLauncherChildIdAndPrerenderId(launcher_child_id, | 71 // and prevent it. |
72 prerender_id)); | 72 if (FindByLauncherChildIdAndPrerenderId(launcher_child_id, prerender_id)) |
| 73 return; |
| 74 |
73 content::RenderProcessHost* rph = | 75 content::RenderProcessHost* rph = |
74 content::RenderProcessHost::FromID(launcher_child_id); | 76 content::RenderProcessHost::FromID(launcher_child_id); |
75 // Guests inside <webview> do not support cross-process navigation and so we | 77 // Guests inside <webview> do not support cross-process navigation and so we |
76 // do not allow guests to prerender content. | 78 // do not allow guests to prerender content. |
77 if (rph && rph->IsGuest()) | 79 if (rph && rph->IsGuest()) |
78 return; | 80 return; |
79 | 81 |
80 LinkPrerender | 82 LinkPrerender |
81 prerender(launcher_child_id, prerender_id, url, referrer, size, | 83 prerender(launcher_child_id, prerender_id, url, referrer, size, |
82 render_view_route_id, manager_->GetCurrentTimeTicks()); | 84 render_view_route_id, manager_->GetCurrentTimeTicks()); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); | 346 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); |
345 if (!prerender) | 347 if (!prerender) |
346 return; | 348 return; |
347 | 349 |
348 Send(prerender->launcher_child_id, | 350 Send(prerender->launcher_child_id, |
349 new PrerenderMsg_OnPrerenderAddAlias(prerender->prerender_id, | 351 new PrerenderMsg_OnPrerenderAddAlias(prerender->prerender_id, |
350 alias_url)); | 352 alias_url)); |
351 } | 353 } |
352 | 354 |
353 } // namespace prerender | 355 } // namespace prerender |
OLD | NEW |