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

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: patch sets 3-7 against trunk, for combined browsing Created 8 years, 8 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 "base/gtest_prod_util.h"
14 #include "chrome/browser/profiles/profile_keyed_service.h"
15 #include "googleurl/src/gurl.h"
16
17 class Profile;
18
19 namespace content {
20 struct Referrer;
21 }
22
23 namespace gfx {
24 class Size;
25 }
26
27 namespace prerender {
28
29 class PrerenderManager;
30
31 // Launch and cancel prerenders based on the LinkPrerender element events.
cbentzel 2012/04/24 15:42:59 I'd prefer a bit more description here.
gavinp 2012/04/26 23:55:39 Done.
32 class PrerenderLinkManager : public ProfileKeyedService {
33 public:
34 explicit PrerenderLinkManager(PrerenderManager* manager);
35 virtual ~PrerenderLinkManager();
36
37 // A <link rel=prerender ...> element has been inserted into the document.
38 void OnAddPrerender(
39 int prerender_id,
40 int child_id,
mmenke 2012/04/24 15:26:15 nit: I suggest always putting child_id first. Th
gavinp 2012/04/26 23:55:39 Done.
41 const GURL& url,
42 const content::Referrer& referrer,
43 const gfx::Size& size,
44 int render_view_route_id);
45
46 // A <link rel=prerender ...> element has been explicitly removed from a
47 // document.
48 void OnCancelPrerender(int prerender_id, int child_id);
49
50 // A renderer launching <link rel=prerender ...> has navigated away from the
51 // launching page, the launching renderer process has crashed, or perhaps the
52 // renderer processed was fast-closed when the last render view in it was
cbentzel 2012/04/24 15:42:59 Nit: renderer process
gavinp 2012/04/26 23:55:39 Done.
53 // closed.
54 void OnAbandonPrerender(int prerender_id, int child_id);
55
56 // If a renderer channel closes (crash, fast exit, etc...), that's effectively
57 // an abandon of any prerenders launched by that child.
58 void OnChannelClosing(int child_id);
59
60 private:
61 typedef std::pair<int, int> ChildAndPrerenderIdPair;
62 typedef std::map<ChildAndPrerenderIdPair, GURL> PrerenderIdToUrlMap;
mmenke 2012/04/24 15:26:15 nit: Suggest you rename this either IdToUrlMap, I
gavinp 2012/04/26 23:55:39 Done.
63 typedef std::multimap<GURL, ChildAndPrerenderIdPair> UrlToPrerenderIdMap;
64
65 void RemovePrerender(const PrerenderIdToUrlMap::iterator& id_url_iter);
66
67 PrerenderManager* manager_;
68 PrerenderIdToUrlMap id_map_;
69 UrlToPrerenderIdMap url_map_;
mmenke 2012/04/24 15:26:15 nit: Suggest you rename these ids_to_url_map_, et
gavinp 2012/04/26 23:55:39 Done.
70
71 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager);
72 };
73
74 } // namespace prerender
75
76 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698