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

Side by Side Diff: components/domain_reliability/scheduler.h

Issue 357103002: Domain Reliability: Add rudimentary WebUI page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compiler errors (cast size_t to int in WebUI code) Created 6 years, 5 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 | « components/domain_reliability/monitor.cc ('k') | components/domain_reliability/scheduler.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_DOMAIN_RELIABILITY_SCHEDULER_H_ 5 #ifndef COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_
6 #define COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_ 6 #define COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "components/domain_reliability/domain_reliability_export.h" 12 #include "components/domain_reliability/domain_reliability_export.h"
13 13
14 namespace base {
15 class Value;
16 } // namespace base
17
14 namespace domain_reliability { 18 namespace domain_reliability {
15 19
16 class DomainReliabilityConfig; 20 class DomainReliabilityConfig;
17 class MockableTime; 21 class MockableTime;
18 22
19 // Determines when an upload should be scheduled. A domain's config will 23 // Determines when an upload should be scheduled. A domain's config will
20 // specify minimum and maximum upload delays; the minimum upload delay ensures 24 // specify minimum and maximum upload delays; the minimum upload delay ensures
21 // that Chrome will not send too many upload requests to a site by waiting at 25 // that Chrome will not send too many upload requests to a site by waiting at
22 // least that long after the first beacon, while the maximum upload delay makes 26 // least that long after the first beacon, while the maximum upload delay makes
23 // sure the server receives the reports while they are still fresh. 27 // sure the server receives the reports while they are still fresh.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 // be called exactly once during or after the ScheduleUploadCallback but 62 // be called exactly once during or after the ScheduleUploadCallback but
59 // before OnUploadComplete is called. (Also records the upload start time for 63 // before OnUploadComplete is called. (Also records the upload start time for
60 // future retries, if the upload ends up failing.) 64 // future retries, if the upload ends up failing.)
61 size_t OnUploadStart(); 65 size_t OnUploadStart();
62 66
63 // Updates the scheduler state based on the result of an upload. Must be 67 // Updates the scheduler state based on the result of an upload. Must be
64 // called exactly once after |OnUploadStart|. |success| should be true if the 68 // called exactly once after |OnUploadStart|. |success| should be true if the
65 // upload was successful, and false otherwise. 69 // upload was successful, and false otherwise.
66 void OnUploadComplete(bool success); 70 void OnUploadComplete(bool success);
67 71
72 base::Value* GetWebUIData() const;
73
68 private: 74 private:
69 struct CollectorState { 75 struct CollectorState {
70 CollectorState(); 76 CollectorState();
71 77
72 // The number of consecutive failures to upload to this collector, or 0 if 78 // The number of consecutive failures to upload to this collector, or 0 if
73 // the most recent upload succeeded. 79 // the most recent upload succeeded.
74 unsigned failures; 80 unsigned failures;
75 base::TimeTicks next_upload; 81 base::TimeTicks next_upload;
76 }; 82 };
77 83
(...skipping 26 matching lines...) Expand all
104 // Index of the collector selected for the next upload. (Set in 110 // Index of the collector selected for the next upload. (Set in
105 // |OnUploadStart| and cleared in |OnUploadComplete|.) 111 // |OnUploadStart| and cleared in |OnUploadComplete|.)
106 size_t collector_index_; 112 size_t collector_index_;
107 113
108 // Time of the first beacon that was not included in the last successful 114 // Time of the first beacon that was not included in the last successful
109 // upload. 115 // upload.
110 base::TimeTicks first_beacon_time_; 116 base::TimeTicks first_beacon_time_;
111 117
112 // first_beacon_time_ saved during uploads. Restored if upload fails. 118 // first_beacon_time_ saved during uploads. Restored if upload fails.
113 base::TimeTicks old_first_beacon_time_; 119 base::TimeTicks old_first_beacon_time_;
120
121 // Extra bits to return in GetWebUIData.
122 base::TimeTicks scheduled_min_time_;
123 base::TimeTicks scheduled_max_time_;
124 // Whether the other last_upload_* fields are populated.
125 bool last_upload_finished_;
126 base::TimeTicks last_upload_start_time_;
127 base::TimeTicks last_upload_end_time_;
128 size_t last_upload_collector_index_;
129 bool last_upload_success_;
114 }; 130 };
115 131
116 } // namespace domain_reliability 132 } // namespace domain_reliability
117 133
118 #endif // COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_ 134 #endif // COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_
OLDNEW
« no previous file with comments | « components/domain_reliability/monitor.cc ('k') | components/domain_reliability/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698