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

Side by Side Diff: components/precache/content/precache_manager.h

Issue 2562573003: Create a synthetic field trial for precache (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 COMPONENTS_PRECACHE_CONTENT_PRECACHE_MANAGER_H_ 5 #ifndef COMPONENTS_PRECACHE_CONTENT_PRECACHE_MANAGER_H_
6 #define COMPONENTS_PRECACHE_CONTENT_PRECACHE_MANAGER_H_ 6 #define COMPONENTS_PRECACHE_CONTENT_PRECACHE_MANAGER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 class PrecacheManager : public KeyedService, 63 class PrecacheManager : public KeyedService,
64 public PrecacheFetcher::PrecacheDelegate, 64 public PrecacheFetcher::PrecacheDelegate,
65 public base::SupportsWeakPtr<PrecacheManager> { 65 public base::SupportsWeakPtr<PrecacheManager> {
66 public: 66 public:
67 typedef base::Callback<void(bool)> PrecacheCompletionCallback; 67 typedef base::Callback<void(bool)> PrecacheCompletionCallback;
68 68
69 PrecacheManager(content::BrowserContext* browser_context, 69 PrecacheManager(content::BrowserContext* browser_context,
70 const syncer::SyncService* const sync_service, 70 const syncer::SyncService* const sync_service,
71 const history::HistoryService* const history_service, 71 const history::HistoryService* const history_service,
72 const base::FilePath& db_path, 72 const base::FilePath& db_path,
73 std::unique_ptr<PrecacheDatabase> precache_database); 73 std::unique_ptr<PrecacheDatabase> precache_database,
74 const base::Callback<void(const base::Time&)>&
75 register_synthetic_field_trial_callback);
74 ~PrecacheManager() override; 76 ~PrecacheManager() override;
75 77
76 // Returns true if the client is in the experiment group -- that is, 78 // Returns true if the client is in the experiment group -- that is,
77 // precaching is allowed based on user settings, and enabled as part of a 79 // precaching is allowed based on user settings, and enabled as part of a
78 // field trial or by commandline flag. Virtual for testing. 80 // field trial or by commandline flag. Virtual for testing.
79 virtual bool IsInExperimentGroup() const; 81 virtual bool IsInExperimentGroup() const;
80 82
81 // Returns true if the client is in the control group -- that is, precaching 83 // Returns true if the client is in the control group -- that is, precaching
82 // is allowed based on user settings, and the browser is in the control group 84 // is allowed based on user settings, and the browser is in the control group
83 // of the field trial. Virtual for testing. 85 // of the field trial. Virtual for testing.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 DISALLOWED, 137 DISALLOWED,
136 PENDING 138 PENDING
137 }; 139 };
138 140
139 // From KeyedService. 141 // From KeyedService.
140 void Shutdown() override; 142 void Shutdown() override;
141 143
142 // From PrecacheFetcher::PrecacheDelegate. 144 // From PrecacheFetcher::PrecacheDelegate.
143 void OnDone() override; 145 void OnDone() override;
144 146
147 // Registers the precache synthetic field trial for users whom the precache
148 // task was run recently. |last_precache_time| is the last time precache task
149 // was run.
150 void RegisterSyntheticFieldTrial(const base::Time& last_precache_time);
151
145 // Callback when fetching unfinished work from storage is done. 152 // Callback when fetching unfinished work from storage is done.
146 void OnGetUnfinishedWorkDone( 153 void OnGetUnfinishedWorkDone(
147 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work); 154 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work);
148 155
149 // From history::HistoryService::TopHosts. 156 // From history::HistoryService::TopHosts.
150 void OnHostsReceived(const history::TopHostsList& host_counts); 157 void OnHostsReceived(const history::TopHostsList& host_counts);
151 158
152 // Initializes and Starts a PrecacheFetcher with unfinished work. 159 // Initializes and Starts a PrecacheFetcher with unfinished work.
153 void InitializeAndStartFetcher(); 160 void InitializeAndStartFetcher();
154 161
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 // The PrecacheDatabase for tracking precache metrics. Should only be used on 206 // The PrecacheDatabase for tracking precache metrics. Should only be used on
200 // the DB thread. 207 // the DB thread.
201 std::unique_ptr<PrecacheDatabase> precache_database_; 208 std::unique_ptr<PrecacheDatabase> precache_database_;
202 209
203 // Flag indicating whether or not precaching is currently in progress. 210 // Flag indicating whether or not precaching is currently in progress.
204 bool is_precaching_; 211 bool is_precaching_;
205 212
206 // Work that hasn't yet finished. 213 // Work that hasn't yet finished.
207 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work_; 214 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work_;
208 215
216 // Callback to register the synthetic field trial.
217 const base::Callback<void(const base::Time&)>
218 register_synthetic_field_trial_callback_;
219
209 DISALLOW_COPY_AND_ASSIGN(PrecacheManager); 220 DISALLOW_COPY_AND_ASSIGN(PrecacheManager);
210 }; 221 };
211 222
212 } // namespace precache 223 } // namespace precache
213 224
214 #endif // COMPONENTS_PRECACHE_CONTENT_PRECACHE_MANAGER_H_ 225 #endif // COMPONENTS_PRECACHE_CONTENT_PRECACHE_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698