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

Side by Side Diff: chrome/renderer/prerender/prerender_dispatcher.cc

Issue 11551003: Change multi-prerender API to include per launcher slots. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: surprising test deflake Created 8 years 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 | Annotate | Revision Log
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/renderer/prerender/prerender_dispatcher.h" 5 #include "chrome/renderer/prerender/prerender_dispatcher.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/common/prerender_messages.h" 8 #include "chrome/common/prerender_messages.h"
9 #include "chrome/renderer/prerender/prerender_extra_data.h" 9 #include "chrome/renderer/prerender/prerender_extra_data.h"
10 #include "content/public/common/referrer.h" 10 #include "content/public/common/referrer.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 DCHECK_NE(0u, prerenders_.count(prerender_id)); 52 DCHECK_NE(0u, prerenders_.count(prerender_id));
53 running_prerender_urls_.insert( 53 running_prerender_urls_.insert(
54 std::multimap<GURL, int>::value_type(url, prerender_id)); 54 std::multimap<GURL, int>::value_type(url, prerender_id));
55 } 55 }
56 56
57 void PrerenderDispatcher::OnPrerenderStop(int prerender_id) { 57 void PrerenderDispatcher::OnPrerenderStop(int prerender_id) {
58 DCHECK_NE(0u, prerenders_.count(prerender_id)); 58 DCHECK_NE(0u, prerenders_.count(prerender_id));
59 WebPrerender& prerender = prerenders_[prerender_id]; 59 WebPrerender& prerender = prerenders_[prerender_id];
60 60
61 // The prerender should only be null in unit tests. 61 // The prerender should only be null in unit tests.
62 if (!prerender.isNull()) 62 if (!prerender.isNull()) {
63 DVLOG(7) << "stopping...";
63 prerender.didStopPrerender(); 64 prerender.didStopPrerender();
65 } else {
66 DVLOG(7) << "but it was null. :(";
67 }
64 68
65 // TODO(cbentzel): We'd also want to send the map of active prerenders when 69 // TODO(cbentzel): We'd also want to send the map of active prerenders when
66 // creating a new render process, so the Add/Remove go relative to that. 70 // creating a new render process, so the Add/Remove go relative to that.
67 // This may not be that big of a deal in practice, since the newly created tab 71 // This may not be that big of a deal in practice, since the newly created tab
68 // is unlikely to go to the prerendered page. 72 // is unlikely to go to the prerendered page.
69 prerenders_.erase(prerender_id); 73 prerenders_.erase(prerender_id);
70 74
71 std::multimap<GURL, int>::iterator it = running_prerender_urls_.begin(); 75 std::multimap<GURL, int>::iterator it = running_prerender_urls_.begin();
72 while (it != running_prerender_urls_.end()) { 76 while (it != running_prerender_urls_.end()) {
73 std::multimap<GURL, int>::iterator next = it; 77 std::multimap<GURL, int>::iterator next = it;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 } 117 }
114 118
115 void PrerenderDispatcher::abandon(const WebPrerender& prerender) { 119 void PrerenderDispatcher::abandon(const WebPrerender& prerender) {
116 const PrerenderExtraData& extra_data = 120 const PrerenderExtraData& extra_data =
117 PrerenderExtraData::FromPrerender(prerender); 121 PrerenderExtraData::FromPrerender(prerender);
118 content::RenderThread::Get()->Send( 122 content::RenderThread::Get()->Send(
119 new PrerenderHostMsg_AbandonLinkRelPrerender(extra_data.prerender_id())); 123 new PrerenderHostMsg_AbandonLinkRelPrerender(extra_data.prerender_id()));
120 } 124 }
121 125
122 } // namespace prerender 126 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698