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

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

Issue 113803003: Add <link rel=next> support to prerender. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unstartable prerenders Created 6 years, 12 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
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 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_ 5 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
6 #define CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_ 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
7 7
8 #include <list> 8 #include <list>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 29 matching lines...) Expand all
40 public: 40 public:
41 explicit PrerenderLinkManager(PrerenderManager* manager); 41 explicit PrerenderLinkManager(PrerenderManager* manager);
42 virtual ~PrerenderLinkManager(); 42 virtual ~PrerenderLinkManager();
43 43
44 // A <link rel=prerender ...> element has been inserted into the document. 44 // A <link rel=prerender ...> element has been inserted into the document.
45 // The |prerender_id| must be unique per |child_id|, and is assigned by the 45 // The |prerender_id| must be unique per |child_id|, and is assigned by the
46 // WebPrerendererClient. 46 // WebPrerendererClient.
47 void OnAddPrerender(int child_id, 47 void OnAddPrerender(int child_id,
48 int prerender_id, 48 int prerender_id,
49 const GURL& url, 49 const GURL& url,
50 uint32 rel_types,
50 const content::Referrer& referrer, 51 const content::Referrer& referrer,
51 const gfx::Size& size, 52 const gfx::Size& size,
52 int render_view_route_id); 53 int render_view_route_id);
53 54
54 // A <link rel=prerender ...> element has been explicitly removed from a 55 // A <link rel=prerender ...> element has been explicitly removed from a
55 // document. 56 // document.
56 void OnCancelPrerender(int child_id, int prerender_id); 57 void OnCancelPrerender(int child_id, int prerender_id);
57 58
58 // A renderer launching <link rel=prerender ...> has navigated away from the 59 // A renderer launching <link rel=prerender ...> has navigated away from the
59 // launching page, the launching renderer process has crashed, or perhaps the 60 // launching page, the launching renderer process has crashed, or perhaps the
60 // renderer process was fast-closed when the last render view in it was 61 // renderer process was fast-closed when the last render view in it was
61 // closed. 62 // closed.
62 void OnAbandonPrerender(int child_id, int prerender_id); 63 void OnAbandonPrerender(int child_id, int prerender_id);
63 64
64 // If a renderer channel closes (crash, fast exit, etc...), that's effectively 65 // If a renderer channel closes (crash, fast exit, etc...), that's effectively
65 // an abandon of any prerenders launched by that child. 66 // an abandon of any prerenders launched by that child.
66 void OnChannelClosing(int child_id); 67 void OnChannelClosing(int child_id);
67 68
68 private: 69 private:
69 friend class PrerenderBrowserTest; 70 friend class PrerenderBrowserTest;
70 friend class PrerenderTest; 71 friend class PrerenderTest;
71 // WebViewTest.NoPrerenderer needs to access the private IsEmpty() method. 72 // WebViewTest.NoPrerenderer needs to access the private IsEmpty() method.
72 FRIEND_TEST_ALL_PREFIXES(::WebViewTest, NoPrerenderer); 73 FRIEND_TEST_ALL_PREFIXES(::WebViewTest, NoPrerenderer);
73 74
74 struct LinkPrerender { 75 struct LinkPrerender {
75 LinkPrerender(int launcher_child_id, 76 LinkPrerender(int launcher_child_id,
76 int prerender_id, 77 int prerender_id,
77 const GURL& url, 78 const GURL& url,
79 uint32 rel_types,
78 const content::Referrer& referrer, 80 const content::Referrer& referrer,
79 const gfx::Size& size, 81 const gfx::Size& size,
80 int render_view_route_id, 82 int render_view_route_id,
81 base::TimeTicks creation_time); 83 base::TimeTicks creation_time);
82 ~LinkPrerender(); 84 ~LinkPrerender();
83 85
84 // Parameters from PrerenderLinkManager::OnAddPrerender(): 86 // Parameters from PrerenderLinkManager::OnAddPrerender():
85 int launcher_child_id; 87 int launcher_child_id;
86 int prerender_id; 88 int prerender_id;
87 GURL url; 89 GURL url;
90 uint32 rel_types;
88 content::Referrer referrer; 91 content::Referrer referrer;
89 gfx::Size size; 92 gfx::Size size;
90 int render_view_route_id; 93 int render_view_route_id;
91 94
92 // The time at which this Prerender was added to PrerenderLinkManager. 95 // The time at which this Prerender was added to PrerenderLinkManager.
93 base::TimeTicks creation_time; 96 base::TimeTicks creation_time;
94 97
95 // Initially NULL, |handle| is set once we start this prerender. It is owned 98 // Initially NULL, |handle| is set once we start this prerender. It is owned
96 // by this struct, and must be deleted before destructing this struct. 99 // by this struct, and must be deleted before destructing this struct.
97 PrerenderHandle* handle; 100 PrerenderHandle* handle;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 // made at the back, so the oldest prerender is at the front, and the youngest 148 // made at the back, so the oldest prerender is at the front, and the youngest
146 // at the back. 149 // at the back.
147 std::list<LinkPrerender> prerenders_; 150 std::list<LinkPrerender> prerenders_;
148 151
149 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager); 152 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager);
150 }; 153 };
151 154
152 } // namespace prerender 155 } // namespace prerender
153 156
154 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_ 157 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
155
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_link_manager.cc » ('j') | chrome/common/prerender_types.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698