| OLD | NEW |
| 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 <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 | 102 |
| 103 // If non-NULL, this link prerender was launched by an unswapped prerender, | 103 // If non-NULL, this link prerender was launched by an unswapped prerender, |
| 104 // |deferred_launcher|. When |deferred_launcher| is swapped in, the field is | 104 // |deferred_launcher|. When |deferred_launcher| is swapped in, the field is |
| 105 // set to NULL. | 105 // set to NULL. |
| 106 PrerenderContents* deferred_launcher; | 106 PrerenderContents* deferred_launcher; |
| 107 | 107 |
| 108 // Initially NULL, |handle| is set once we start this prerender. It is owned | 108 // Initially NULL, |handle| is set once we start this prerender. It is owned |
| 109 // by this struct, and must be deleted before destructing this struct. | 109 // by this struct, and must be deleted before destructing this struct. |
| 110 PrerenderHandle* handle; | 110 PrerenderHandle* handle; |
| 111 | 111 |
| 112 // True if this prerender has become a MatchComplete replacement. This state | |
| 113 // is maintained so the renderer is not notified of a stop twice. | |
| 114 bool is_match_complete_replacement; | |
| 115 | |
| 116 // True if this prerender has been abandoned by its launcher. | 112 // True if this prerender has been abandoned by its launcher. |
| 117 bool has_been_abandoned; | 113 bool has_been_abandoned; |
| 118 }; | 114 }; |
| 119 | 115 |
| 120 class PendingPrerenderManager; | 116 class PendingPrerenderManager; |
| 121 | 117 |
| 122 bool IsEmpty() const; | 118 bool IsEmpty() const; |
| 123 | 119 |
| 124 // Returns a count of currently running prerenders. | 120 // Returns a count of currently running prerenders. |
| 125 size_t CountRunningPrerenders() const; | 121 size_t CountRunningPrerenders() const; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 148 void CancelPendingPrerendersForLauncher(PrerenderContents* launcher); | 144 void CancelPendingPrerendersForLauncher(PrerenderContents* launcher); |
| 149 | 145 |
| 150 // From KeyedService: | 146 // From KeyedService: |
| 151 void Shutdown() override; | 147 void Shutdown() override; |
| 152 | 148 |
| 153 // From PrerenderHandle::Observer: | 149 // From PrerenderHandle::Observer: |
| 154 void OnPrerenderStart(PrerenderHandle* prerender_handle) override; | 150 void OnPrerenderStart(PrerenderHandle* prerender_handle) override; |
| 155 void OnPrerenderStopLoading(PrerenderHandle* prerender_handle) override; | 151 void OnPrerenderStopLoading(PrerenderHandle* prerender_handle) override; |
| 156 void OnPrerenderDomContentLoaded(PrerenderHandle* prerender_handle) override; | 152 void OnPrerenderDomContentLoaded(PrerenderHandle* prerender_handle) override; |
| 157 void OnPrerenderStop(PrerenderHandle* prerender_handle) override; | 153 void OnPrerenderStop(PrerenderHandle* prerender_handle) override; |
| 158 void OnPrerenderCreatedMatchCompleteReplacement( | |
| 159 PrerenderHandle* handle) override; | |
| 160 | 154 |
| 161 bool has_shutdown_; | 155 bool has_shutdown_; |
| 162 | 156 |
| 163 PrerenderManager* manager_; | 157 PrerenderManager* manager_; |
| 164 | 158 |
| 165 // All prerenders known to this PrerenderLinkManager. Insertions are always | 159 // All prerenders known to this PrerenderLinkManager. Insertions are always |
| 166 // made at the back, so the oldest prerender is at the front, and the youngest | 160 // made at the back, so the oldest prerender is at the front, and the youngest |
| 167 // at the back. | 161 // at the back. |
| 168 std::list<LinkPrerender> prerenders_; | 162 std::list<LinkPrerender> prerenders_; |
| 169 | 163 |
| 170 // Helper object to manage prerenders which are launched by other prerenders | 164 // Helper object to manage prerenders which are launched by other prerenders |
| 171 // and must be deferred until the launcher is swapped in. | 165 // and must be deferred until the launcher is swapped in. |
| 172 std::unique_ptr<PendingPrerenderManager> pending_prerender_manager_; | 166 std::unique_ptr<PendingPrerenderManager> pending_prerender_manager_; |
| 173 | 167 |
| 174 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager); | 168 DISALLOW_COPY_AND_ASSIGN(PrerenderLinkManager); |
| 175 }; | 169 }; |
| 176 | 170 |
| 177 } // namespace prerender | 171 } // namespace prerender |
| 178 | 172 |
| 179 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_ | 173 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_LINK_MANAGER_H_ |
| OLD | NEW |