Diff
Modified: trunk/LayoutTests/ChangeLog (237655 => 237656)
--- trunk/LayoutTests/ChangeLog 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/LayoutTests/ChangeLog 2018-10-31 22:00:34 UTC (rev 237656)
@@ -1,3 +1,16 @@
+2018-10-31 Devin Rousso <drou...@apple.com>
+
+ Web Inspector: Audit: attempt to re-link DOM nodes for imported results
+ https://bugs.webkit.org/show_bug.cgi?id=191044
+ <rdar://problem/45687364>
+
+ Reviewed by Brian Burg.
+
+ * inspector/model/auditTestCase.html:
+ * inspector/model/auditTestCaseResult.html:
+ * inspector/model/auditTestGroup.html:
+ * inspector/model/auditTestGroupResult.html:
+
2018-10-31 Jer Noble <jer.no...@apple.com>
MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L60.B0') is inproperly rejected
Modified: trunk/LayoutTests/inspector/model/auditTestCase.html (237655 => 237656)
--- trunk/LayoutTests/inspector/model/auditTestCase.html 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/LayoutTests/inspector/model/auditTestCase.html 2018-10-31 22:00:34 UTC (rev 237656)
@@ -11,7 +11,7 @@
suite.addTestCase({
name,
async test() {
- let object = WI.AuditTestCase.fromPayload(payload);
+ let object = await WI.AuditTestCase.fromPayload(payload);
InspectorTest.log(object ? JSON.stringify(object, null, 2) : object);
},
});
Modified: trunk/LayoutTests/inspector/model/auditTestCaseResult.html (237655 => 237656)
--- trunk/LayoutTests/inspector/model/auditTestCaseResult.html 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/LayoutTests/inspector/model/auditTestCaseResult.html 2018-10-31 22:00:34 UTC (rev 237656)
@@ -11,7 +11,7 @@
suite.addTestCase({
name,
async test() {
- let object = WI.AuditTestCaseResult.fromPayload(payload);
+ let object = await WI.AuditTestCaseResult.fromPayload(payload);
InspectorTest.log(object ? JSON.stringify(object, null, 2) : object);
},
});
Modified: trunk/LayoutTests/inspector/model/auditTestGroup.html (237655 => 237656)
--- trunk/LayoutTests/inspector/model/auditTestGroup.html 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/LayoutTests/inspector/model/auditTestGroup.html 2018-10-31 22:00:34 UTC (rev 237656)
@@ -11,7 +11,7 @@
suite.addTestCase({
name,
async test() {
- let object = WI.AuditTestGroup.fromPayload(payload);
+ let object = await WI.AuditTestGroup.fromPayload(payload);
InspectorTest.log(object ? JSON.stringify(object, null, 2) : object);
},
});
Modified: trunk/LayoutTests/inspector/model/auditTestGroupResult.html (237655 => 237656)
--- trunk/LayoutTests/inspector/model/auditTestGroupResult.html 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/LayoutTests/inspector/model/auditTestGroupResult.html 2018-10-31 22:00:34 UTC (rev 237656)
@@ -11,7 +11,7 @@
suite.addTestCase({
name,
async test() {
- let object = WI.AuditTestGroupResult.fromPayload(payload);
+ let object = await WI.AuditTestGroupResult.fromPayload(payload);
InspectorTest.log(object ? JSON.stringify(object, null, 2) : object);
},
});
Modified: trunk/Source/WebInspectorUI/ChangeLog (237655 => 237656)
--- trunk/Source/WebInspectorUI/ChangeLog 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/Source/WebInspectorUI/ChangeLog 2018-10-31 22:00:34 UTC (rev 237656)
@@ -1,3 +1,33 @@
+2018-10-31 Devin Rousso <drou...@apple.com>
+
+ Web Inspector: Audit: attempt to re-link DOM nodes for imported results
+ https://bugs.webkit.org/show_bug.cgi?id=191044
+ <rdar://problem/45687364>
+
+ Reviewed by Brian Burg.
+
+ When importing a `WI.AuditTestCaseResult`, attempt to `querySelector` for each item in
+ `data.domNodes`. If a node is found, replace it with that node and show a tree instead.
+
+ * UserInterface/Models/AuditTestCase.js:
+ (WI.AuditTestCase.async fromPayload): Added.
+ (WI.AuditTestCase.fromPayload): Deleted.
+
+ * UserInterface/Models/AuditTestGroup.js:
+ (WI.AuditTestGroup.async fromPayload): Added.
+ (WI.AuditTestGroup.fromPayload): Deleted.
+
+ * UserInterface/Models/AuditTestCaseResult.js:
+ (WI.AuditTestCaseResult.async fromPayload): Added.
+ (WI.AuditTestCaseResult.fromPayload): Deleted.
+
+ * UserInterface/Models/AuditTestGroupResult.js:
+ (WI.AuditTestGroupResult.async fromPayload): Added.
+ (WI.AuditTestGroupResult.fromPayload): Deleted.
+
+ * UserInterface/Controllers/AuditManager.js:
+ (WI.AuditManager.prototype.import):
+
2018-10-31 Joseph Pecoraro <pecor...@apple.com>
Follow-up review comment to r237652.
Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js (237655 => 237656)
--- trunk/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js 2018-10-31 22:00:34 UTC (rev 237656)
@@ -95,7 +95,7 @@
import()
{
- WI.loadDataFromFile((data, filename) => {
+ WI.loadDataFromFile(async (data, filename) => {
if (!data)
return;
@@ -107,9 +107,9 @@
return;
}
- let object = WI.AuditTestGroup.fromPayload(payload) || WI.AuditTestCase.fromPayload(payload);
+ let object = await WI.AuditTestGroup.fromPayload(payload) || await WI.AuditTestCase.fromPayload(payload);
if (!object) {
- object = WI.AuditTestGroupResult.fromPayload(payload) || WI.AuditTestCaseResult.fromPayload(payload);
+ object = await WI.AuditTestGroupResult.fromPayload(payload) || await WI.AuditTestCaseResult.fromPayload(payload);
if (!object) {
WI.AuditManager.synthesizeError(WI.UIString("invalid JSON."));
return;
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js (237655 => 237656)
--- trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js 2018-10-31 22:00:34 UTC (rev 237656)
@@ -36,7 +36,7 @@
// Static
- static fromPayload(payload)
+ static async fromPayload(payload)
{
if (typeof payload !== "object" || payload === null)
return null;
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCaseResult.js (237655 => 237656)
--- trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCaseResult.js 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCaseResult.js 2018-10-31 22:00:34 UTC (rev 237656)
@@ -40,7 +40,7 @@
// Static
- static fromPayload(payload)
+ static async fromPayload(payload)
{
if (typeof payload !== "object" || payload === null)
return null;
@@ -86,8 +86,20 @@
options.description = description;
if (!isEmptyObject(data)) {
options.data = ""
- if (data.domNodes && data.domNodes.length)
+ if (data.domNodes && data.domNodes.length) {
+ if (window.DOMAgent) {
+ let documentNode = await new Promise((resolve) => WI.domManager.requestDocument(resolve));
+ data.domNodes = await Promise.all(data.domNodes.map(async (domNodeString) => {
+ let nodeId = 0;
+ try {
+ nodeId = await WI.domManager.querySelector(documentNode, domNodeString);
+ } catch { }
+ return WI.domManager.nodeForId(nodeId) || domNodeString;
+ }));
+ }
+
options.data.domNodes = data.domNodes;
+ }
if (data.domAttributes && data.domAttributes.length)
options.data.domAttributes = data.domAttributes;
if (data.errors && data.errors.length)
@@ -102,6 +114,7 @@
if (metadata.url)
options.metadata.url = ""
}
+
return new WI.AuditTestCaseResult(name, level, options);
}
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js (237655 => 237656)
--- trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js 2018-10-31 22:00:34 UTC (rev 237656)
@@ -41,7 +41,7 @@
// Static
- static fromPayload(payload)
+ static async fromPayload(payload)
{
if (typeof payload !== "object" || payload === null)
return null;
@@ -57,7 +57,17 @@
if (!Array.isArray(tests))
return null;
- tests = tests.map((test) => WI.AuditTestCase.fromPayload(test) || WI.AuditTestGroup.fromPayload(test));
+ tests = await Promise.all(tests.map(async (test) => {
+ let testCase = await WI.AuditTestCase.fromPayload(test);
+ if (testCase)
+ return testCase;
+
+ let testGroup = await WI.AuditTestGroup.fromPayload(test);
+ if (testGroup)
+ return testGroup;
+
+ return null;
+ }));
tests = tests.filter((test) => !!test);
if (!tests.length)
return null;
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestGroupResult.js (237655 => 237656)
--- trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestGroupResult.js 2018-10-31 21:52:07 UTC (rev 237655)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestGroupResult.js 2018-10-31 22:00:34 UTC (rev 237656)
@@ -36,7 +36,7 @@
// Static
- static fromPayload(payload)
+ static async fromPayload(payload)
{
if (typeof payload !== "object" || payload === null)
return null;
@@ -52,7 +52,17 @@
if (!Array.isArray(results))
return null;
- results = results.map((result) => WI.AuditTestGroupResult.fromPayload(result) || WI.AuditTestCaseResult.fromPayload(result));
+ results = await Promise.all(results.map(async (test) => {
+ let testCaseResult = await WI.AuditTestCaseResult.fromPayload(test);
+ if (testCaseResult)
+ return testCaseResult;
+
+ let testGroupResult = await WI.AuditTestGroupResult.fromPayload(test);
+ if (testGroupResult)
+ return testGroupResult;
+
+ return null;
+ }));
results = results.filter((result) => !!result);
if (!results.length)
return null;