DevTools: Wait for external scripts to load in tests

The file run-after-layout-and-paint.js is used by a few tracing tests.
This file is written to the document as a script tag, but nothing was
waiting for the script tag's onload event. This made these tests
occasionally flake.

Change-Id: I5cf4e0d69d9bcabfab675e39e987cb0c576c5213
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1516037
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Joel Einbinder <einbinder@chromium.org>
Cr-Commit-Position: refs/heads/master@{#639710}
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/anonymous-image-object.js b/third_party/blink/web_tests/http/tests/devtools/tracing/anonymous-image-object.js
index 70556fa8..1be322e 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/anonymous-image-object.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/anonymous-image-object.js
@@ -8,7 +8,6 @@
   await TestRunner.loadModule('performance_test_runner');
   await TestRunner.showPanel('timeline');
   await TestRunner.loadHTML(`
-      <script src="../../resources/run-after-layout-and-paint.js"></script>
       <style>
       div.marker::before {
           content: url(resources/test.bmp);
@@ -16,6 +15,7 @@
       </style>
       <div id="marker"></div>
     `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
   await TestRunner.evaluateInPagePromise(`
       function doActions()
       {
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/decode-resize.js b/third_party/blink/web_tests/http/tests/devtools/tracing/decode-resize.js
index a83bd44..9a546f0 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/decode-resize.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/decode-resize.js
@@ -7,7 +7,6 @@
   await TestRunner.loadModule('performance_test_runner');
   await TestRunner.showPanel('timeline');
   await TestRunner.loadHTML(`
-    <script src="../../resources/run-after-layout-and-paint.js"></script>
     <style>
     div {
         display: inline-block;
@@ -32,6 +31,7 @@
 
     </style>
   `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
 
   await TestRunner.evaluateInPagePromise(`
     var images = [
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-js/timeline-gc-event.js b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-js/timeline-gc-event.js
index ba20d38..acb8646 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-js/timeline-gc-event.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-js/timeline-gc-event.js
@@ -6,9 +6,7 @@
   TestRunner.addResult(`Tests the Timeline API instrumentation of a gc event\n`);
   await TestRunner.loadModule('performance_test_runner');
   await TestRunner.showPanel('timeline');
-  await TestRunner.loadHTML(`
-    <script src="../../../resources/run-after-layout-and-paint.js"></script>
-  `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
   await TestRunner.evaluateInPagePromise(`
       function produceGarbageForGCEvents()
       {
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-dom-gc.js b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-dom-gc.js
index 24b74ecb..87a383e 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-dom-gc.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-dom-gc.js
@@ -7,9 +7,7 @@
       `Tests the Timeline API instrumentation of a DOM GC event\n`);
   await TestRunner.loadModule('performance_test_runner');
   await TestRunner.showPanel('timeline');
-  await TestRunner.loadHTML(`
-    <script src="../../../resources/run-after-layout-and-paint.js"></script>
-  `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
 
   await TestRunner.evaluateInPagePromise(`
         function produceGarbageForGCEvents()
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-grouped-invalidations.js b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-grouped-invalidations.js
index 3316923d..266dd79 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-grouped-invalidations.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-misc/timeline-grouped-invalidations.js
@@ -8,10 +8,10 @@
   await TestRunner.showPanel('timeline');
   await TestRunner.loadHTML(`
     <!DOCTYPE HTML>
-    <script src="../../../resources/run-after-layout-and-paint.js"></script>
     <div class="testElement">P</div><div class="testElement">A</div>
     <div class="testElement">S</div><div class="testElement">S</div>
   `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
   await TestRunner.evaluateInPagePromise(`
     function display()
     {
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/paint-profiler-update.js b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/paint-profiler-update.js
index 4fac56a5..38f4770 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/paint-profiler-update.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/paint-profiler-update.js
@@ -7,9 +7,9 @@
   await TestRunner.loadModule('performance_test_runner');
   await TestRunner.showPanel('timeline');
   await TestRunner.loadHTML(`
-    <script src="../../../resources/run-after-layout-and-paint.js"></script>
     <div id="square" style="width: 40px; height: 40px"></div>
   `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
   await TestRunner.evaluateInPagePromise(`
       function performActions()
       {
diff --git a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/update-layer-tree.js b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/update-layer-tree.js
index 561b46c..ae4a2c0 100644
--- a/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/update-layer-tree.js
+++ b/third_party/blink/web_tests/http/tests/devtools/tracing/timeline-paint/update-layer-tree.js
@@ -7,7 +7,6 @@
   await TestRunner.loadModule('performance_test_runner');
   await TestRunner.showPanel('timeline');
   await TestRunner.loadHTML(`
-      <script src="../../../resources/run-after-layout-and-paint.js"></script>
       <style>
       .layer {
           position: absolute;
@@ -18,6 +17,7 @@
       </style>
       <div id="parent-layer"></div>
     `);
+  await TestRunner.addScriptTag('../../../resources/run-after-layout-and-paint.js');
   await TestRunner.evaluateInPagePromise(`
       function doActions()
       {