| 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 <functional> | 7 #include <functional> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 std::unique_ptr<PrerenderHandle> handle = | 385 std::unique_ptr<PrerenderHandle> handle = |
| 386 manager_->AddPrerenderFromLinkRelPrerender( | 386 manager_->AddPrerenderFromLinkRelPrerender( |
| 387 (*i)->launcher_child_id, (*i)->render_view_route_id, (*i)->url, | 387 (*i)->launcher_child_id, (*i)->render_view_route_id, (*i)->url, |
| 388 (*i)->rel_types, (*i)->referrer, (*i)->size); | 388 (*i)->rel_types, (*i)->referrer, (*i)->size); |
| 389 if (!handle) { | 389 if (!handle) { |
| 390 // This prerender couldn't be launched, it's gone. | 390 // This prerender couldn't be launched, it's gone. |
| 391 prerenders_.erase(*i); | 391 prerenders_.erase(*i); |
| 392 continue; | 392 continue; |
| 393 } | 393 } |
| 394 | 394 |
| 395 // We have successfully started a new prerender. | 395 if (handle->IsPrerendering()) { |
| 396 (*i)->handle = handle.release(); | 396 // We have successfully started a new prerender. |
| 397 ++total_started_prerender_count; | 397 (*i)->handle = handle.release(); |
| 398 (*i)->handle->SetObserver(this); | 398 ++total_started_prerender_count; |
| 399 if ((*i)->handle->IsPrerendering()) | 399 (*i)->handle->SetObserver(this); |
| 400 OnPrerenderStart((*i)->handle); | 400 OnPrerenderStart((*i)->handle); |
| 401 RecordLinkManagerStarting((*i)->rel_types); | 401 RecordLinkManagerStarting((*i)->rel_types); |
| 402 | 402 running_launcher_and_render_view_routes.insert( |
| 403 running_launcher_and_render_view_routes.insert( | 403 launcher_and_render_view_route); |
| 404 launcher_and_render_view_route); | 404 } else { |
| 405 Send((*i)->launcher_child_id, |
| 406 new PrerenderMsg_OnPrerenderStop((*i)->prerender_id)); |
| 407 prerenders_.erase(*i); |
| 408 } |
| 405 } | 409 } |
| 406 } | 410 } |
| 407 | 411 |
| 408 PrerenderLinkManager::LinkPrerender* | 412 PrerenderLinkManager::LinkPrerender* |
| 409 PrerenderLinkManager::FindByLauncherChildIdAndPrerenderId(int launcher_child_id, | 413 PrerenderLinkManager::FindByLauncherChildIdAndPrerenderId(int launcher_child_id, |
| 410 int prerender_id) { | 414 int prerender_id) { |
| 411 for (std::list<LinkPrerender>::iterator i = prerenders_.begin(); | 415 for (std::list<LinkPrerender>::iterator i = prerenders_.begin(); |
| 412 i != prerenders_.end(); ++i) { | 416 i != prerenders_.end(); ++i) { |
| 413 if (launcher_child_id == i->launcher_child_id && | 417 if (launcher_child_id == i->launcher_child_id && |
| 414 prerender_id == i->prerender_id) { | 418 prerender_id == i->prerender_id) { |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 515 new PrerenderMsg_OnPrerenderDomContentLoaded(prerender->prerender_id)); | 519 new PrerenderMsg_OnPrerenderDomContentLoaded(prerender->prerender_id)); |
| 516 } | 520 } |
| 517 | 521 |
| 518 void PrerenderLinkManager::OnPrerenderStop( | 522 void PrerenderLinkManager::OnPrerenderStop( |
| 519 PrerenderHandle* prerender_handle) { | 523 PrerenderHandle* prerender_handle) { |
| 520 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); | 524 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); |
| 521 if (!prerender) | 525 if (!prerender) |
| 522 return; | 526 return; |
| 523 | 527 |
| 524 Send(prerender->launcher_child_id, | 528 Send(prerender->launcher_child_id, |
| 525 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id)); | 529 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id)); |
| 526 RemovePrerender(prerender); | 530 RemovePrerender(prerender); |
| 527 StartPrerenders(); | 531 StartPrerenders(); |
| 528 } | 532 } |
| 529 | 533 |
| 530 } // namespace prerender | 534 } // namespace prerender |
| OLD | NEW |