Index: chrome/browser/safe_browsing/srt_fetcher_win.h |
diff --git a/chrome/browser/safe_browsing/srt_fetcher_win.h b/chrome/browser/safe_browsing/srt_fetcher_win.h |
index 7d310194d93001db65c2c1556608c6649b85319a..66ba4cb89eb063ba1586916250ed1782bd6c4478 100644 |
--- a/chrome/browser/safe_browsing/srt_fetcher_win.h |
+++ b/chrome/browser/safe_browsing/srt_fetcher_win.h |
@@ -8,13 +8,14 @@ |
#include <limits.h> |
#include <string> |
+#include <vector> |
#include "base/callback_forward.h" |
+#include "base/command_line.h" |
#include "base/memory/ref_counted.h" |
#include "base/version.h" |
namespace base { |
-class FilePath; |
class TaskRunner; |
} |
@@ -43,19 +44,58 @@ const int kDaysBetweenSwReporterRunsForPendingPrompt = 1; |
// To test SRT Fetches. |
const int kSRTFetcherID = 47; |
+// Parameters used to invoke the sw_reporter component. |
+struct SwReporterInvocation { |
+ base::CommandLine command_line; |
+ |
+ // Experimental versions of the reporter will write metrics to registry keys |
+ // ending in |suffix|. Those metrics should be copid to UMA histograms also |
csharp
2016/08/11 18:58:02
nit: copid -> copied
Joe Mason
2016/08/15 17:24:40
Done.
|
+ // ending in |suffix|. For the canonical version, |suffix| will be empty. |
+ std::string suffix; |
+ |
csharp
2016/08/11 18:58:02
I think this should always contain a bool to deter
Joe Mason
2016/08/15 17:24:40
Done.
|
+ SwReporterInvocation(); |
+ explicit SwReporterInvocation(const base::FilePath& exe_path); |
+ SwReporterInvocation(const base::CommandLine& command_line, |
+ const std::string& suffix); |
+ |
+ bool operator==(const SwReporterInvocation& other) const; |
csharp
2016/08/11 18:58:02
Why do you need to compare SwReporterInvocations?
Joe Mason
2016/08/15 17:24:40
ReporterRunner::Run starts with a check to see if
|
+}; |
+ |
// Tries to run the sw_reporter component, and then schedule the next try. If |
// called multiple times, then multiple sequences of trying to run will happen, |
// yet only one reporter will run per specified period (either |
// |kDaysBetweenSuccessfulSwReporterRuns| or |
// |kDaysBetweenSwReporterRunsForPendingPrompt|) will actually happen. |
-// |exe_path| is the full path to the SwReporter to execute and |version| is its |
-// version. The task runners are provided to allow tests to provide their own. |
+// |command_line| is the command line to execute, including the full path to |
+// the SwReporter to execute, and |version| is its version. The task runners are |
+// provided to allow tests to provide their own. |
void RunSwReporter( |
csharp
2016/08/11 18:58:02
Why not merge this and the next function and make
Joe Mason
2016/08/15 17:24:40
I removed Experimental from the function name but
|
const base::FilePath& exe_path, |
const base::Version& version, |
const scoped_refptr<base::TaskRunner>& main_thread_task_runner, |
const scoped_refptr<base::TaskRunner>& blocking_task_runner); |
+// Try to run multiple invocations of the experimental sw_reporter component, |
+// with different combinations of command line args. Each set of invocations is |
+// treated as a normal scheduled launch of the sw_reporter for the purposes of |
+// retries, as described in |RunSwReporter|. |
+// |
+// |invocation_queue| is a list of sw_reporter configurations which will be |
+// launched in order. Once one has been executed, the reporter is considered to |
+// have "run" - the remainder will also be executed as part of this run, but |
+// then the reporter will not be run again for the specified period. If none of |
+// the invocations in the queue execute, another queue can be tried by calling |
+// this function again. |
+// |
+// See |RunSwReporter| for the meaning of the remaining parameters. |
+// |
+// The experimental sw_reporter never triggers the prompt, just reports results. |
+void RunExperimentalSwReporters( |
+ const std::vector<SwReporterInvocation>& invocation_queue, |
+ const base::Version& version, |
+ const scoped_refptr<base::TaskRunner>& main_thread_task_runner, |
grt (UTC plus 2)
2016/08/10 06:47:02
since this function holds a reference to these two
Joe Mason
2016/08/15 17:24:40
Done.
|
+ const scoped_refptr<base::TaskRunner>& blocking_task_runner); |
+ |
// Returns true iff Local State is successfully accessed and indicates the most |
// recent Reporter run terminated with an exit code indicating the presence of |
// UwS. |