Diff
Modified: trunk/LayoutTests/ChangeLog (238332 => 238333)
--- trunk/LayoutTests/ChangeLog 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/LayoutTests/ChangeLog 2018-11-17 02:10:43 UTC (rev 238333)
@@ -1,3 +1,12 @@
+2018-11-16 Devin Rousso <drou...@apple.com>
+
+ Web Inspector: Audit: minor style improvements
+ https://bugs.webkit.org/show_bug.cgi?id=191727
+
+ Reviewed by Joseph Pecoraro.
+
+ * inspector/audit/resources/audit-utilities.js:
+
2018-11-16 Joseph Pecoraro <pecor...@apple.com>
Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Local Inspector)
Modified: trunk/LayoutTests/inspector/audit/resources/audit-utilities.js (238332 => 238333)
--- trunk/LayoutTests/inspector/audit/resources/audit-utilities.js 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/LayoutTests/inspector/audit/resources/audit-utilities.js 2018-11-17 02:10:43 UTC (rev 238333)
@@ -13,7 +13,7 @@
if (!array.length)
return;
- InspectorTest.assert(array.every((item) => typeof item === "string"), name + "should only contain strings.");
+ InspectorTest.assert(array.every((item) => typeof item === "string"), name + " should only contain strings.");
InspectorTest.log(" " + name + ":");
for (let item of array)
InspectorTest.log(" - " + item);
@@ -45,8 +45,14 @@
let data = ""
if (data.domNodes) {
- InspectorTest.assert(data.domNodes.every((domNode) => domNode instanceof WI.DOMNode), "domNodes should only contain WI.DOMNode.");
- logArray("domNodes", data.domNodes.map((domNode) => domNode.displayName));
+ if (result.resolvedDOMNodes) {
+ InspectorTest.assert(result.resolvedDOMNodes.every((domNode) => domNode instanceof WI.DOMNode), "domNodes should only contain WI.DOMNode.");
+ logArray("domNodes", result.resolvedDOMNodes.map((domNode) => domNode.displayName));
+
+ for (let i = 0; i < result.resolvedDOMNodes.length; ++i)
+ InspectorTest.assert(WI.cssPath(result.resolvedDOMNodes[i], {full: true}) === data.domNodes[i], "The resolved DOM node should match the saved CSS path.");
+ } else
+ logArray("domNodes", data.domNodes);
}
if (data.domAttributes)
logArray("domAttributes", data.domAttributes);
Modified: trunk/Source/WebInspectorUI/ChangeLog (238332 => 238333)
--- trunk/Source/WebInspectorUI/ChangeLog 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/ChangeLog 2018-11-17 02:10:43 UTC (rev 238333)
@@ -1,3 +1,42 @@
+2018-11-16 Devin Rousso <drou...@apple.com>
+
+ Web Inspector: Audit: minor style improvements
+ https://bugs.webkit.org/show_bug.cgi?id=191727
+
+ Reviewed by Joseph Pecoraro.
+
+ * UserInterface/Controllers/AuditManager.js:
+ (WI.AuditManager):
+ (WI.AuditManager.prototype._handleFrameMainResourceDidChange): Added.
+ Clear test results when the main frame navigates, but don't clear the saved results.
+
+ * UserInterface/Models/AuditTestCase.js:
+ (WI.AuditTestCase.prototype.async run):
+ * UserInterface/Models/AuditTestCaseResult.js:
+ (WI.AuditTestCaseResult):
+ (WI.AuditTestCaseResult.async fromPayload):
+ (WI.AuditTestCaseResult.prototype.get resolvedDOMNodes): Added.
+ (WI.AuditTestCaseResult.prototype.toJSON):
+ Capture the full CSS path for any returned DOM nodes when the test finishes running, so that
+ if the node moves around the path isn't modified as well.
+
+ * UserInterface/Views/AuditTestCaseContentView.js:
+ (WI.AuditTestCaseContentView.prototype.layout):
+ Always show the URL for the test when viewing a saved result.
+
+ * UserInterface/Views/AuditTestContentView.css:
+ (.content-view-container > .content-view.audit-test > header p):
+ (.content-view.audit-test > header):
+ * UserInterface/Views/AuditTestCaseContentView.css:
+ (.content-view.audit-test-case > header): Added.
+ (.content-view.audit-test-case > header h1 > img):
+ (.content-view.audit-test-case > header > .metadata > .source): Added.
+ (.content-view.audit-test-case > header > .metadata > .duration):
+ (.content-view.audit-test-case > section table > tr > td:first-child):
+ * UserInterface/Views/AuditTestGroupContentView.css:
+ (.content-view.audit-test-group > header):
+ Horizontally align items in the header for visual consistency.
+
2018-11-16 Joseph Pecoraro <pecor...@apple.com>
Web Inspector: Include default filtering of InspectorBackend.dumpInspectorProtocolMessages with multi target backend
Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js 2018-11-17 02:10:43 UTC (rev 238333)
@@ -34,6 +34,8 @@
this._runningState = WI.AuditManager.RunningState.Inactive;
this._runningTests = [];
+
+ WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._handleFrameMainResourceDidChange, this);
}
static synthesizeError(message)
@@ -181,6 +183,15 @@
index: this._results.length - 1,
});
}
+
+ _handleFrameMainResourceDidChange(event)
+ {
+ if (!event.target.isMainFrame())
+ return;
+
+ for (let test of this._tests)
+ test.clearResult();
+ }
};
WI.AuditManager.RunningState = {
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js 2018-11-17 02:10:43 UTC (rev 238333)
@@ -82,6 +82,7 @@
startTimestamp: null,
endTimestamp: null,
};
+ let resolvedDOMNodes = null;
function setLevel(newLevel) {
let newLevelIndex = levelStrings.indexOf(newLevel);
@@ -205,7 +206,11 @@
if (!data.domNodes)
data.domNodes = [];
- data.domNodes.push(domNode);
+ data.domNodes.push(WI.cssPath(domNode, {full: true}));
+
+ if (!resolvedDOMNodes)
+ resolvedDOMNodes = [];
+ resolvedDOMNodes.push(domNode);
});
await resultArrayForEach("domAttributes", (item) => {
@@ -243,6 +248,8 @@
};
if (!isEmptyObject(data))
options.data = ""
+ if (resolvedDOMNodes)
+ options.resolvedDOMNodes = resolvedDOMNodes;
this._result = new WI.AuditTestCaseResult(this.name, level, options);
}
};
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCaseResult.js (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCaseResult.js 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/AuditTestCaseResult.js 2018-11-17 02:10:43 UTC (rev 238333)
@@ -25,7 +25,7 @@
WI.AuditTestCaseResult = class AuditTestCaseResult extends WI.AuditTestResultBase
{
- constructor(name, level, {description, data, metadata} = {})
+ constructor(name, level, {description, data, metadata, resolvedDOMNodes} = {})
{
console.assert(Object.values(WI.AuditTestCaseResult.Level).includes(level));
console.assert(!data || typeof data ="" "object");
@@ -36,6 +36,9 @@
this._level = level;
this._data = data || {};
this._metadata = metadata || {};
+
+ // This array is a mirror of `this._data.domNodes` where each item is a `WI.DOMNode`.
+ this._resolvedDOMNodes = resolvedDOMNodes || [];
}
// Static
@@ -87,14 +90,14 @@
if (!isEmptyObject(data)) {
options.data = ""
if (data.domNodes && data.domNodes.length) {
- if (window.DOMAgent) {
+ if (window.DOMAgent && (!metadata.url || metadata.url ="" WI.networkManager.mainFrame.url)) {
let documentNode = await new Promise((resolve) => WI.domManager.requestDocument(resolve));
- data.domNodes = await Promise.all(data.domNodes.map(async (domNodeString) => {
+ options.resolvedDOMNodes = 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;
+ return WI.domManager.nodeForId(nodeId) || null;
}));
}
@@ -123,6 +126,7 @@
get level() { return this._level; }
get data() { return this._data; }
get metadata() { return this._metadata; }
+ get resolvedDOMNodes() { return this._resolvedDOMNodes; }
get result()
{
@@ -161,7 +165,7 @@
let data = ""
if (this._data.domNodes && this._data.domNodes.length) {
- data.domNodes = this._data.domNodes.map((domNode) => domNode instanceof WI.DOMNode ? WI.cssPath(domNode, {full: true}) : domNode);
+ data.domNodes = this._data.domNodes;
if (this._data.domAttributes && this._data.domAttributes.length)
data.domAttributes = this._data.domAttributes;
}
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.css (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.css 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.css 2018-11-17 02:10:43 UTC (rev 238333)
@@ -37,6 +37,10 @@
margin-top: var(--audit-test-vertical-space);
}
+.content-view.audit-test-case > header {
+ -webkit-padding-end: calc(var(--audit-test-horizontal-space) / 2);
+}
+
.content-view.audit-test-case > header h1 {
display: flex;
align-items: center;
@@ -47,7 +51,7 @@
height: 1em;
min-width: 16px;
min-height: 16px;
- -webkit-margin-end: 4px;
+ -webkit-margin-end: 0.25em;
}
.content-view.audit-test-case > header > .metadata {
@@ -56,6 +60,10 @@
text-align: end;
}
+.content-view.audit-test-case > header > .metadata > .source {
+ -webkit-margin-end: 3px;
+}
+
.content-view.audit-test-case > header > .metadata > .source > time {
display: block;
font-style: italic;
@@ -68,9 +76,10 @@
.content-view.audit-test-case > header > .metadata > .duration {
display: inline-block;
- width: var(--metadata-width);
+ min-width: var(--metadata-width);
-webkit-margin-start: var(--audit-test-horizontal-space);
font-size: 12px;
+ text-align: center;
font-weight: bold;
}
@@ -104,7 +113,6 @@
}
.content-view.audit-test-case > section table > tr > td:first-child {
- -webkit-padding-start: calc(8px - 0.375em);
font-family: -webkit-system-font, sans-serif;
font-size: 11px;
font-variant-numeric: tabular-nums;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js 2018-11-17 02:10:43 UTC (rev 238333)
@@ -110,7 +110,7 @@
}
}
- if (metadata.url && metadata.url !== WI.networkManager.mainFrame.url) {
+ if (metadata.url && (metadata.url !== WI.networkManager.mainFrame.url || this.representedObject instanceof WI.AuditTestResultBase)) {
let url = "" URL(metadata.url);
let origin = url.origin;
if (url.pathname.startsWith("/"))
@@ -133,6 +133,8 @@
let tableContainer = domNodesContainer.appendChild(document.createElement("table"));
resultData.domNodes.forEach((domNode, index) => {
+ domNode = result.resolvedDOMNodes[index] || domNode;
+
let rowElement = tableContainer.appendChild(document.createElement("tr"));
let indexElement = rowElement.appendChild(document.createElement("td"));
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.css (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.css 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.css 2018-11-17 02:10:43 UTC (rev 238333)
@@ -39,6 +39,7 @@
.content-view-container > .content-view.audit-test > header p {
font-size: 1.25em;
+ opacity: 0.85;
}
.content-view.audit-test {
@@ -54,7 +55,9 @@
.content-view.audit-test > header {
display: flex;
align-items: center;
- padding: var(--audit-test-vertical-space) var(--audit-test-horizontal-space);
+ padding-top: var(--audit-test-vertical-space);
+ padding-bottom: var(--audit-test-vertical-space);
+ -webkit-padding-start: var(--audit-test-horizontal-space);
--metadata-width: 60px;
}
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.css (238332 => 238333)
--- trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.css 2018-11-17 01:34:04 UTC (rev 238332)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.css 2018-11-17 02:10:43 UTC (rev 238333)
@@ -29,6 +29,7 @@
.content-view.audit-test-group > header {
margin-top: -1px;
+ -webkit-padding-end: var(--audit-test-horizontal-space);
border-top: 1px solid var(--border-color);
}