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

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

Issue 9875026: **NOTFORLANDING** New link rel=prerender API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: wdyt? Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
6 #define CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
7 #pragma once
8
9 #include <map>
10 #include <utility>
11
12 #include "base/basictypes.h"
13 #include "googleurl/src/gurl.h"
14
15 class Profile;
16
17 namespace content {
18 class Referrer;
19 }
20
21 namespace gfx {
22 class Size;
23 }
24
25 namespace prerender {
26
27 class PrerenderManager;
28
29 // Launch and cancel prerenders based on the LinkPrerender element events.
30 class PrerenderLinkManager {
cbentzel 2012/03/29 00:13:37 It's probably reasonable to unit test some of the
gavinp 2012/04/20 17:54:15 Done.
31 public:
32 explicit PrerenderLinkManager(PrerenderManager* manager);
33 virtual ~PrerenderLinkManager();
34
35 static void OnNewLinkPrerender(
36 Profile* profile,
37 int prerender_id,
38 int child_id,
39 int render_view_route_id,
40 const GURL& url,
41 const content::Referrer& referrer,
42 const gfx::Size& size);
43 static void OnRemovedLinkPrerender(Profile* profile,
cbentzel 2012/03/29 00:13:37 Document. What's different about OnRemoved versus
gavinp 2012/04/20 17:54:15 The new names simplify this; it's Add, Cancel and
44 int prerender_id,
45 int child_id);
46 static void OnUnloadedLinkPrerender(Profile* profile,
47 int prerender_id,
48 int child_id);
49
50 private:
51 typedef std::pair<int, int> ChildAndPrerenderIdPair;
52 typedef std::map<ChildAndPrerenderIdPair, GURL> PrerenderIdToUrlMap;
53 typedef std::multimap<GURL, ChildAndPrerenderIdPair> UrlToPrerenderIdMap;
mmenke 2012/03/29 01:15:39 Do we really need a multimap here? Could just use
gavinp 2012/04/20 17:54:15 The problem with counts is that we're going to nee
54
55 void OnNewLinkPrerenderImpl(
56 int prerender_id,
57 int child_id,
58 int render_view_route_id,
59 const GURL& url,
60 const content::Referrer& referrer,
61 const gfx::Size& size);
62 void OnRemovedLinkPrerenderImpl(int prerender_id, int child_id);
63 void OnUnloadedLinkPrerenderImpl(int prerender_id, int child_id);
64
65 PrerenderManager* manager_;
66 PrerenderIdToUrlMap id_map_;
67 UrlToPrerenderIdMap url_map_;
68
69 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager);
70 };
71
72 } // namespace prerender
73
74 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698