Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(603)

Side by Side Diff: chrome/browser/prerender/prerender_link_manager.cc

Issue 1896403002: Prerender: Remove MatchComplete (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: re-enable PrerenderDeferredSynchronousXHR Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 : launcher_child_id(launcher_child_id), 265 : launcher_child_id(launcher_child_id),
266 prerender_id(prerender_id), 266 prerender_id(prerender_id),
267 url(url), 267 url(url),
268 rel_types(rel_types), 268 rel_types(rel_types),
269 referrer(referrer), 269 referrer(referrer),
270 size(size), 270 size(size),
271 render_view_route_id(render_view_route_id), 271 render_view_route_id(render_view_route_id),
272 creation_time(creation_time), 272 creation_time(creation_time),
273 deferred_launcher(deferred_launcher), 273 deferred_launcher(deferred_launcher),
274 handle(NULL), 274 handle(NULL),
275 is_match_complete_replacement(false),
276 has_been_abandoned(false) {} 275 has_been_abandoned(false) {}
277 276
278 PrerenderLinkManager::LinkPrerender::LinkPrerender(const LinkPrerender& other) = 277 PrerenderLinkManager::LinkPrerender::LinkPrerender(const LinkPrerender& other) =
279 default; 278 default;
280 279
281 PrerenderLinkManager::LinkPrerender::~LinkPrerender() { 280 PrerenderLinkManager::LinkPrerender::~LinkPrerender() {
282 DCHECK_EQ(static_cast<PrerenderHandle*>(NULL), handle) 281 DCHECK_EQ(static_cast<PrerenderHandle*>(NULL), handle)
283 << "The PrerenderHandle should be destroyed before its Prerender."; 282 << "The PrerenderHandle should be destroyed before its Prerender.";
284 } 283 }
285 284
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 Send(prerender->launcher_child_id, 513 Send(prerender->launcher_child_id,
515 new PrerenderMsg_OnPrerenderDomContentLoaded(prerender->prerender_id)); 514 new PrerenderMsg_OnPrerenderDomContentLoaded(prerender->prerender_id));
516 } 515 }
517 516
518 void PrerenderLinkManager::OnPrerenderStop( 517 void PrerenderLinkManager::OnPrerenderStop(
519 PrerenderHandle* prerender_handle) { 518 PrerenderHandle* prerender_handle) {
520 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle); 519 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle);
521 if (!prerender) 520 if (!prerender)
522 return; 521 return;
523 522
524 // If the prerender became a match complete replacement, the stop 523 Send(prerender->launcher_child_id,
525 // message has already been sent. 524 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id));
526 if (!prerender->is_match_complete_replacement) {
527 Send(prerender->launcher_child_id,
528 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id));
529 }
530 RemovePrerender(prerender); 525 RemovePrerender(prerender);
531 StartPrerenders(); 526 StartPrerenders();
532 } 527 }
533 528
534 void PrerenderLinkManager::OnPrerenderCreatedMatchCompleteReplacement(
535 PrerenderHandle* prerender_handle) {
536 LinkPrerender* prerender = FindByPrerenderHandle(prerender_handle);
537 if (!prerender)
538 return;
539
540 DCHECK(!prerender->is_match_complete_replacement);
541 prerender->is_match_complete_replacement = true;
542 Send(prerender->launcher_child_id,
543 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id));
544 // Do not call RemovePrerender here. The replacement needs to stay connected
545 // to the HTMLLinkElement in the renderer so it notices renderer-triggered
546 // cancelations.
547 }
548
549 } // namespace prerender 529 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_link_manager.h ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698