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

Unified Diff: chrome/renderer/prerender/prerender_dispatcher.cc

Issue 11288002: Lose chrome/renderer/prerender/prerendering_support.* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix method comments Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/prerender/prerender_dispatcher.h ('k') | chrome/renderer/prerender/prerendering_support.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/prerender/prerender_dispatcher.cc
diff --git a/chrome/renderer/prerender/prerender_dispatcher.cc b/chrome/renderer/prerender/prerender_dispatcher.cc
index c5af1cd2124095a1d99b2ee37fa710cc438416a6..a3f72ec5798c2a26acdfbeb7a92d96bb2664a472 100644
--- a/chrome/renderer/prerender/prerender_dispatcher.cc
+++ b/chrome/renderer/prerender/prerender_dispatcher.cc
@@ -6,42 +6,29 @@
#include "base/logging.h"
#include "chrome/common/prerender_messages.h"
-#include "chrome/renderer/prerender/prerendering_support.h"
+#include "chrome/renderer/prerender/prerender_extra_data.h"
+#include "content/public/renderer/render_thread.h"
#include "googleurl/src/gurl.h"
#include "third_party/WebKit/Source/Platform/chromium/public/WebPrerenderingSupport.h"
namespace prerender {
-PrerenderDispatcher::PrerenderDispatcher()
- : prerendering_support_(new PrerenderingSupport()) {
- WebKit::WebPrerenderingSupport::initialize(prerendering_support_.get());
+PrerenderDispatcher::PrerenderDispatcher() {
+ WebKit::WebPrerenderingSupport::initialize(this);
}
PrerenderDispatcher::~PrerenderDispatcher() {
- if (prerendering_support_.get())
- WebKit::WebPrerenderingSupport::shutdown();
+ WebKit::WebPrerenderingSupport::shutdown();
}
bool PrerenderDispatcher::IsPrerenderURL(const GURL& url) const {
return prerender_urls_.find(url) != prerender_urls_.end();
}
-bool PrerenderDispatcher::OnControlMessageReceived(
- const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(PrerenderDispatcher, message)
- IPC_MESSAGE_HANDLER(PrerenderMsg_AddPrerenderURL, OnAddPrerenderURL)
- IPC_MESSAGE_HANDLER(PrerenderMsg_RemovePrerenderURL, OnRemovePrerenderURL)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
-
- return handled;
-}
-
void PrerenderDispatcher::OnAddPrerenderURL(const GURL& url) {
PrerenderMap::iterator it = prerender_urls_.find(url);
if (it != prerender_urls_.end()) {
- DCHECK(it->second > 0);
+ DCHECK_LT(0, it->second);
it->second += 1;
} else {
prerender_urls_[url] = 1;
@@ -57,10 +44,45 @@ void PrerenderDispatcher::OnRemovePrerenderURL(const GURL& url) {
// is unlikely to go to the prerendered page.
if (it == prerender_urls_.end())
return;
- DCHECK(it->second > 0);
+ DCHECK_LT(0, it->second);
it->second -= 1;
if (it->second == 0)
prerender_urls_.erase(it);
}
+bool PrerenderDispatcher::OnControlMessageReceived(
+ const IPC::Message& message) {
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(PrerenderDispatcher, message)
+ IPC_MESSAGE_HANDLER(PrerenderMsg_AddPrerenderURL, OnAddPrerenderURL)
+ IPC_MESSAGE_HANDLER(PrerenderMsg_RemovePrerenderURL, OnRemovePrerenderURL)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+
+ return handled;
+}
+
+void PrerenderDispatcher::add(const WebKit::WebPrerender& prerender) {
+ const PrerenderExtraData& extra_data =
+ PrerenderExtraData::FromPrerender(prerender);
+ content::RenderThread::Get()->Send(new PrerenderHostMsg_AddLinkRelPrerender(
+ extra_data.prerender_id(), GURL(prerender.url()),
+ content::Referrer(GURL(prerender.referrer()), prerender.referrerPolicy()),
+ extra_data.size(), extra_data.render_view_route_id()));
+}
+
+void PrerenderDispatcher::cancel(const WebKit::WebPrerender& prerender) {
+ const PrerenderExtraData& extra_data =
+ PrerenderExtraData::FromPrerender(prerender);
+ content::RenderThread::Get()->Send(
+ new PrerenderHostMsg_CancelLinkRelPrerender(extra_data.prerender_id()));
+}
+
+void PrerenderDispatcher::abandon(const WebKit::WebPrerender& prerender) {
+ const PrerenderExtraData& extra_data =
+ PrerenderExtraData::FromPrerender(prerender);
+ content::RenderThread::Get()->Send(
+ new PrerenderHostMsg_AbandonLinkRelPrerender(extra_data.prerender_id()));
+}
+
} // namespace prerender
« no previous file with comments | « chrome/renderer/prerender/prerender_dispatcher.h ('k') | chrome/renderer/prerender/prerendering_support.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698