LayoutTest inspector/worker/debugger-pause.html sometimes times out
https://bugs.webkit.org/show_bug.cgi?id=188580
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-08-16
Reviewed by Matt Baker.
Source/WebInspectorUI:
* UserInterface/Protocol/Target.js:
(WI.Target.prototype.get mainResource):
(WI.Target.prototype.set mainResource):
Dispatch an event when the Main Resource is set.
LayoutTests:
* inspector/worker/debugger-pause.html:
* inspector/worker/resources/worker-utilities.js: Added.
(TestPage.registerInitializer.window.awaitTargetMainResource):
(TestPage.registerInitializer):
Use a more deterministic wait for the main resource.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@234945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 444ebfd..7ed9fed 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2018-08-16 Joseph Pecoraro <pecoraro@apple.com>
+
+ LayoutTest inspector/worker/debugger-pause.html sometimes times out
+ https://bugs.webkit.org/show_bug.cgi?id=188580
+
+ Reviewed by Matt Baker.
+
+ * inspector/worker/debugger-pause.html:
+ * inspector/worker/resources/worker-utilities.js: Added.
+ (TestPage.registerInitializer.window.awaitTargetMainResource):
+ (TestPage.registerInitializer):
+ Use a more deterministic wait for the main resource.
+
2018-08-16 Ryosuke Niwa <rniwa@webkit.org>
Perform a microtask checkpoint before creating a custom element
diff --git a/LayoutTests/inspector/worker/debugger-pause.html b/LayoutTests/inspector/worker/debugger-pause.html
index 0de5134..8f4425e 100644
--- a/LayoutTests/inspector/worker/debugger-pause.html
+++ b/LayoutTests/inspector/worker/debugger-pause.html
@@ -3,6 +3,7 @@
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="../debugger/resources/log-pause-location.js"></script>
+<script src="resources/worker-utilities.js"></script>
<script>
TestPage.allowUncaughtExceptions = true;
TestPage.needToSanitizeUncaughtExceptionURLs = true;
@@ -111,8 +112,7 @@
}
});
- // Turn once to ensure workerTarget.mainResource is loaded.
- Promise.resolve().then(() => {
+ awaitTargetMainResource(workerTarget).then(() => {
window.loadLinesFromSourceCode(workerTarget.mainResource).then(() => {
suite.runTestCasesAndFinish();
});
diff --git a/LayoutTests/inspector/worker/resources/worker-utilities.js b/LayoutTests/inspector/worker/resources/worker-utilities.js
new file mode 100644
index 0000000..ae17aa3
--- /dev/null
+++ b/LayoutTests/inspector/worker/resources/worker-utilities.js
@@ -0,0 +1,7 @@
+TestPage.registerInitializer(() => {
+ window.awaitTargetMainResource = function(workerTarget) {
+ if (workerTarget.mainResource)
+ return Promise.resolve();
+ return workerTarget.awaitEvent(WI.Target.Event.MainResourceAdded);
+ }
+});
diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog
index 03e1783..452180e 100644
--- a/Source/WebInspectorUI/ChangeLog
+++ b/Source/WebInspectorUI/ChangeLog
@@ -1,3 +1,15 @@
+2018-08-16 Joseph Pecoraro <pecoraro@apple.com>
+
+ LayoutTest inspector/worker/debugger-pause.html sometimes times out
+ https://bugs.webkit.org/show_bug.cgi?id=188580
+
+ Reviewed by Matt Baker.
+
+ * UserInterface/Protocol/Target.js:
+ (WI.Target.prototype.get mainResource):
+ (WI.Target.prototype.set mainResource):
+ Dispatch an event when the Main Resource is set.
+
2018-08-15 Aditya Keerthi <akeerthi@apple.com>
[Datalist] Add button to TextFieldInputs with a datalist
diff --git a/Source/WebInspectorUI/UserInterface/Protocol/Target.js b/Source/WebInspectorUI/UserInterface/Protocol/Target.js
index 2d4cf13..92d13fc 100644
--- a/Source/WebInspectorUI/UserInterface/Protocol/Target.js
+++ b/Source/WebInspectorUI/UserInterface/Protocol/Target.js
@@ -56,9 +56,6 @@
get name() { return this._name; }
set name(name) { this._name = name; }
- get mainResource() { return this._mainResource; }
- set mainResource(resource) { this._mainResource = resource; }
-
get type() { return this._type; }
get connection() { return this._connection; }
get executionContext() { return this._executionContext; }
@@ -68,6 +65,20 @@
get displayName() { return this._name; }
+ get mainResource()
+ {
+ return this._mainResource;
+ }
+
+ set mainResource(resource)
+ {
+ console.assert(!this._mainResource);
+
+ this._mainResource = resource;
+
+ this.dispatchEventToListeners(WI.Target.Event.MainResourceAdded, {resource});
+ }
+
addResource(resource)
{
this._resourceCollection.add(resource);
@@ -98,6 +109,7 @@
};
WI.Target.Event = {
+ MainResourceAdded: "target-main-resource-added",
ResourceAdded: "target-resource-added",
ScriptAdded: "target-script-added",
};