| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ |
| 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ | 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <list> | 9 #include <list> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 | 205 |
| 206 // Set of TabContents which would be displaying a prerendered page | 206 // Set of TabContents which would be displaying a prerendered page |
| 207 // (for the control group). | 207 // (for the control group). |
| 208 base::hash_set<TabContents*> would_be_prerendered_tc_set_; | 208 base::hash_set<TabContents*> would_be_prerendered_tc_set_; |
| 209 | 209 |
| 210 // Map of child/route id pairs to pending prerender data. | 210 // Map of child/route id pairs to pending prerender data. |
| 211 typedef std::map<std::pair<int, int>, std::vector<PendingContentsData> > | 211 typedef std::map<std::pair<int, int>, std::vector<PendingContentsData> > |
| 212 PendingPrerenderList; | 212 PendingPrerenderList; |
| 213 PendingPrerenderList pending_prerender_list_; | 213 PendingPrerenderList pending_prerender_list_; |
| 214 | 214 |
| 215 // Default maximum permitted elements to prerender. | |
| 216 static const unsigned int kDefaultMaxPrerenderElements = 1; | |
| 217 | |
| 218 // Default maximum age a prerendered element may have, in seconds. | |
| 219 static const int kDefaultMaxPrerenderAgeSeconds = 20; | |
| 220 | |
| 221 // Time window for which we will record windowed PLT's from the last | |
| 222 // observed link rel=prefetch tag. | |
| 223 static const int kWindowDurationSeconds = 30; | |
| 224 | |
| 225 // Time interval at which periodic cleanups are performed. | |
| 226 static const int kPeriodicCleanupIntervalMs = 1000; | |
| 227 | |
| 228 // Time interval before a new prerender is allowed. | |
| 229 static const int kMinTimeBetweenPrerendersMs = 500; | |
| 230 | |
| 231 scoped_ptr<PrerenderContents::Factory> prerender_contents_factory_; | 215 scoped_ptr<PrerenderContents::Factory> prerender_contents_factory_; |
| 232 | 216 |
| 233 static PrerenderManagerMode mode_; | 217 static PrerenderManagerMode mode_; |
| 234 | 218 |
| 235 // The time when we last saw a prefetch request coming from a renderer. | 219 // The time when we last saw a prefetch request coming from a renderer. |
| 236 // This is used to record perceived PLT's for a certain amount of time | 220 // This is used to record perceived PLT's for a certain amount of time |
| 237 // from the point that we last saw a <link rel=prefetch> tag. | 221 // from the point that we last saw a <link rel=prefetch> tag. |
| 238 // This static variable should only be modified on the UI thread. | 222 // This static variable should only be modified on the UI thread. |
| 239 static base::TimeTicks last_prefetch_seen_time_; | 223 static base::TimeTicks last_prefetch_seen_time_; |
| 240 | 224 |
| 241 // A count of how many prerenders we do per session. Initialized to 0 then | 225 // A count of how many prerenders we do per session. Initialized to 0 then |
| 242 // incremented and emitted to a histogram on each successful prerender. | 226 // incremented and emitted to a histogram on each successful prerender. |
| 243 static int prerenders_per_session_count_; | 227 static int prerenders_per_session_count_; |
| 244 | 228 |
| 245 // RepeatingTimer to perform periodic cleanups of pending prerendered | 229 // RepeatingTimer to perform periodic cleanups of pending prerendered |
| 246 // pages. | 230 // pages. |
| 247 base::RepeatingTimer<PrerenderManager> repeating_timer_; | 231 base::RepeatingTimer<PrerenderManager> repeating_timer_; |
| 248 | 232 |
| 249 // Track time of last prerender to limit prerender spam. | 233 // Track time of last prerender to limit prerender spam. |
| 250 base::TimeTicks last_prerender_start_time_; | 234 base::TimeTicks last_prerender_start_time_; |
| 251 | 235 |
| 252 DISALLOW_COPY_AND_ASSIGN(PrerenderManager); | 236 DISALLOW_COPY_AND_ASSIGN(PrerenderManager); |
| 253 }; | 237 }; |
| 254 | 238 |
| 255 } // prerender | 239 } // prerender |
| 256 | 240 |
| 257 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ | 241 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ |
| OLD | NEW |