Generate ARIAProperties.js on presubmit

This checks in the ARIAProperties in the source tree file and ensures
that it is kept in sync whenever the third_party location has been
updated.

Bug: 1056614
Change-Id: Ic48b6cba17fe0a3c6b7d28dd3f74483ceac2969b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2085176
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index a359beb..2dc49c8 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -42,6 +42,18 @@
 
 AUTOROLL_ACCOUNT = "devtools-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com"
 
+
+def _ExecuteSubProcess(input_api, output_api, script_path, args, results):
+    process = input_api.subprocess.Popen(
+        [input_api.python_executable, script_path] + args, stdout=input_api.subprocess.PIPE, stderr=input_api.subprocess.STDOUT)
+    out, _ = process.communicate()
+    if process.returncode != 0:
+        results.append(output_api.PresubmitError(out))
+    else:
+        results.append(output_api.PresubmitNotifyResult(out))
+    return results
+
+
 def _CheckChangesAreExclusiveToDirectory(input_api, output_api):
     if input_api.change.DISABLE_THIRD_PARTY_CHECK != None:
         return []
@@ -167,28 +179,15 @@
 
         # Scan only added or modified files with specific extensions.
         args = ['--autofix', '--file-list', file_list.name]
-    process = input_api.subprocess.Popen(
-        [input_api.python_executable, script_path] + args, stdout=input_api.subprocess.PIPE, stderr=input_api.subprocess.STDOUT)
-    out, _ = process.communicate()
-    if process.returncode != 0:
-        results.append(output_api.PresubmitError(out))
-    else:
-        results.append(output_api.PresubmitNotifyResult(out))
-    return results
+
+    return _ExecuteSubProcess(input_api, output_api, script_path, args, results)
 
 
 def _CheckDevtoolsStyle(input_api, output_api):
     results = [output_api.PresubmitNotifyResult('Running Devtools Style Check:')]
     lint_path = input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts', 'test', 'run_lint_check.py')
-    process = input_api.subprocess.Popen([input_api.python_executable, lint_path],
-                                         stdout=input_api.subprocess.PIPE,
-                                         stderr=input_api.subprocess.STDOUT)
-    out, _ = process.communicate()
-    if process.returncode != 0:
-        results.append(output_api.PresubmitError(out))
-    else:
-        results.append(output_api.PresubmitNotifyResult(out))
-    return results
+
+    return _ExecuteSubProcess(input_api, output_api, lint_path, [], results)
 
 
 def _CheckOptimizeSVGHashes(input_api, output_api):
@@ -232,6 +231,15 @@
     return results
 
 
+def _CheckGeneratedFiles(input_api, output_api):
+    results = [output_api.PresubmitNotifyResult('Running Generated Files Check:')]
+
+    generated_aria_path = input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts', 'build', 'generate_aria.py')
+    results = _ExecuteSubProcess(input_api, output_api, generated_aria_path, [], results)
+
+    return results
+
+
 def _CheckNoUncheckedFiles(input_api, output_api):
     results = []
     process = input_api.subprocess.Popen(['git', 'diff', '--exit-code'],
@@ -283,6 +291,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(_CheckGeneratedFiles(input_api, output_api))
     results.extend(_CheckJSON(input_api, output_api))
     results.extend(_CheckLicenses(input_api, output_api))
     results.extend(_CheckDevtoolsStyle(input_api, output_api))