Add Presubmit for Devtools Experiment Telemetry
This CL adds a new Presubmit check that ensures that all devtools
experiemnts that are registered in MainImpl.js are also placed
in the UserMetrics.js file so that they have telemetry registered.
Explainer:
https://docs.google.com/document/d/1pcvN11C4onSXqOE0dTjUUHodMj55bRVl_5_e3kMg_rs/edit?ts=5f2329dc#heading=h.ezo3vjjctj8w
Bug: 1107636
Change-Id: If7ca22ef641b037717b808b7c57cc57c6f502536
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2341797
Commit-Queue: Brandon Goddard <[email protected]>
Reviewed-by: Kalon Hinds <[email protected]>
Reviewed-by: Peter Marshall <[email protected]>
Reviewed-by: Patrick Brosset <[email protected]>
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 383c2bc..fc41753 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -100,6 +100,29 @@
return results
+def _CheckExperimentTelemetry(input_api, output_api):
+ results = [
+ output_api.PresubmitNotifyResult('Running Experiment Telemetry check:')
+ ]
+
+ experiment_telemetry_files = [
+ input_api.os_path.join(input_api.PresubmitLocalPath(), 'front_end',
+ 'main', 'MainImpl.js'),
+ input_api.os_path.join(input_api.PresubmitLocalPath(), 'front_end',
+ 'host', 'UserMetrics.js')
+ ]
+ affected_main_files = _getAffectedFiles(input_api,
+ experiment_telemetry_files, [],
+ ['.js'])
+ if len(affected_main_files) == 0:
+ return results
+
+ script_path = input_api.os_path.join(input_api.PresubmitLocalPath(),
+ 'scripts', 'check_experiments.js')
+ results.extend(_checkWithNodeScript(input_api, output_api, script_path))
+ return results
+
+
def _CheckJSON(input_api, output_api):
results = [output_api.PresubmitNotifyResult('Running JSON Validator:')]
script_path = input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts', 'json_validator', 'validate_module_json.js')
@@ -356,6 +379,7 @@
results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace(input_api, output_api))
results.extend(input_api.canned_checks.CheckGenderNeutral(input_api, output_api))
results.extend(_CheckBuildGN(input_api, output_api))
+ results.extend(_CheckExperimentTelemetry(input_api, output_api))
results.extend(_CheckGeneratedFiles(input_api, output_api))
results.extend(_CheckJSON(input_api, output_api))
results.extend(_CheckDevToolsStyleJS(input_api, output_api))