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

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: fix memory leak Created 6 years, 10 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
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_link_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 PrerenderContents* deferred_launcher); 84 PrerenderContents* deferred_launcher);
83 ~LinkPrerender(); 85 ~LinkPrerender();
84 86
85 // Parameters from PrerenderLinkManager::OnAddPrerender(): 87 // Parameters from PrerenderLinkManager::OnAddPrerender():
86 int launcher_child_id; 88 int launcher_child_id;
87 int prerender_id; 89 int prerender_id;
88 GURL url; 90 GURL url;
91 uint32 rel_types;
89 content::Referrer referrer; 92 content::Referrer referrer;
90 gfx::Size size; 93 gfx::Size size;
91 int render_view_route_id; 94 int render_view_route_id;
92 95
93 // The time at which this Prerender was added to PrerenderLinkManager. 96 // The time at which this Prerender was added to PrerenderLinkManager.
94 base::TimeTicks creation_time; 97 base::TimeTicks creation_time;
95 98
96 // If non-NULL, this link prerender was launched by an unswapped prerender, 99 // If non-NULL, this link prerender was launched by an unswapped prerender,
97 // |deferred_launcher|. When |deferred_launcher| is swapped in, the field is 100 // |deferred_launcher|. When |deferred_launcher| is swapped in, the field is
98 // set to NULL. 101 // set to NULL.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 // Helper object to manage prerenders which are launched by other prerenders 166 // Helper object to manage prerenders which are launched by other prerenders
164 // and must be deferred until the launcher is swapped in. 167 // and must be deferred until the launcher is swapped in.
165 scoped_ptr<PendingPrerenderManager> pending_prerender_manager_; 168 scoped_ptr<PendingPrerenderManager> pending_prerender_manager_;
166 169
167 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager); 170 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager);
168 }; 171 };
169 172
170 } // namespace prerender 173 } // namespace prerender
171 174
172 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_ 175 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_
173
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_link_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698