WebKit Bugzilla
Attachment 358648 Details for
Bug 193262
: Web Inspector: expose Audit and Recording versions to the frontend
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
193262.diff (text/plain), 25.82 KB, created by
Devin Rousso
on 2019-01-08 16:21:47 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Devin Rousso
Created:
2019-01-08 16:21:47 PST
Size:
25.82 KB
patch
obsolete
>diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 14ee1c345f0..1b1f7de1e7f 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,16 @@ >+2019-01-08 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: expose Audit and Recording versions to the frontend >+ https://bugs.webkit.org/show_bug.cgi?id=193262 >+ <rdar://problem/47130684> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * inspector/audit/getAuditSystemVersion.html: Added. >+ * inspector/audit/getAuditSystemVersion-expected.txt: Added. >+ * inspector/canvas/getRecordingSystemVersion.html: Added. >+ * inspector/canvas/getRecordingSystemVersion-expected.txt: Added. >+ > 2019-01-06 Devin Rousso <drousso@apple.com> > > Web Inspector: Audit: create new IDL type for exposing special functionality in test context >diff --git a/LayoutTests/inspector/audit/getAuditSystemVersion-expected.txt b/LayoutTests/inspector/audit/getAuditSystemVersion-expected.txt >new file mode 100644 >index 00000000000..448702c1109 >--- /dev/null >+++ b/LayoutTests/inspector/audit/getAuditSystemVersion-expected.txt >@@ -0,0 +1,4 @@ >+Tests Audit.getAuditSystemVersion command. >+ >+PASS: Audit system version should be 1 >+ >diff --git a/LayoutTests/inspector/audit/getAuditSystemVersion.html b/LayoutTests/inspector/audit/getAuditSystemVersion.html >new file mode 100644 >index 00000000000..84b6d39a0a2 >--- /dev/null >+++ b/LayoutTests/inspector/audit/getAuditSystemVersion.html >@@ -0,0 +1,24 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<script src="../../http/tests/inspector/resources/protocol-test.js"></script> >+<script> >+function test() >+{ >+ InspectorProtocol.sendCommand("Audit.getAuditSystemVersion", {}, (messageObject) => { >+ if ("error" in messageObject) >+ ProtocolTest.log(messageObject.error.message); >+ else { >+ const version = 1; >+ ProtocolTest.expectEqual(messageObject.result.version, version, `Audit system version should be ${version}.`); >+ } >+ >+ ProtocolTest.completeTest(); >+ }); >+} >+</script> >+</head> >+<body onload="runTest()"> >+ <p>Tests Audit.getAuditSystemVersion command.</p> >+</body> >+</html> >diff --git a/LayoutTests/inspector/canvas/getRecordingSystemVersion-expected.txt b/LayoutTests/inspector/canvas/getRecordingSystemVersion-expected.txt >new file mode 100644 >index 00000000000..a4a1dafe478 >--- /dev/null >+++ b/LayoutTests/inspector/canvas/getRecordingSystemVersion-expected.txt >@@ -0,0 +1,4 @@ >+Tests Canvas.getRecordingSystemVersion command. >+ >+PASS: Canvas Recording system version should be 1 >+ >diff --git a/LayoutTests/inspector/canvas/getRecordingSystemVersion.html b/LayoutTests/inspector/canvas/getRecordingSystemVersion.html >new file mode 100644 >index 00000000000..cfa3b7b9fec >--- /dev/null >+++ b/LayoutTests/inspector/canvas/getRecordingSystemVersion.html >@@ -0,0 +1,24 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<script src="../../http/tests/inspector/resources/protocol-test.js"></script> >+<script> >+function test() >+{ >+ InspectorProtocol.sendCommand("Canvas.getRecordingSystemVersion", {}, (messageObject) => { >+ if ("error" in messageObject) >+ ProtocolTest.log(messageObject.error.message); >+ else { >+ const version = 1; >+ ProtocolTest.expectEqual(messageObject.result.version, version, `Canvas Recording system version should be ${version}.`); >+ } >+ >+ ProtocolTest.completeTest(); >+ }); >+} >+</script> >+</head> >+<body onload="runTest()"> >+ <p>Tests Canvas.getRecordingSystemVersion command.</p> >+</body> >+</html> >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 96a1bc17c4d..a78f4282422 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,20 @@ >+2019-01-08 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: expose Audit and Recording versions to the frontend >+ https://bugs.webkit.org/show_bug.cgi?id=193262 >+ <rdar://problem/47130684> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * inspector/protocol/Audit.json: >+ * inspector/protocol/Canvas.json: >+ * inspector/protocol/Recording.json: >+ Add `Version` types and getters that return a value of that type. >+ >+ * inspector/agents/InspectorAuditAgent.h: >+ * inspector/agents/InspectorAuditAgent.cpp: >+ (Inspector::InspectorAuditAgent::getAuditSystemVersion): Added. >+ > 2019-01-06 Devin Rousso <drousso@apple.com> > > Web Inspector: Audit: create new IDL type for exposing special functionality in test context >diff --git a/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.cpp b/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.cpp >index 64e59308252..4fc4ec157b5 100644 >--- a/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.cpp >+++ b/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.cpp >@@ -40,6 +40,8 @@ namespace Inspector { > > using namespace JSC; > >+#define AUDIT_VERSION 1 >+ > InspectorAuditAgent::InspectorAuditAgent(AgentContext& context) > : InspectorAgentBase("Audit"_s) > , m_backendDispatcher(AuditBackendDispatcher::create(context.backendDispatcher, this)) >@@ -56,6 +58,11 @@ void InspectorAuditAgent::willDestroyFrontendAndBackend(DisconnectReason) > { > } > >+void InspectorAuditAgent::getAuditSystemVersion(ErrorString&, double* version) >+{ >+ *version = AUDIT_VERSION; >+} >+ > void InspectorAuditAgent::setup(ErrorString& errorString, const int* executionContextId) > { > if (m_injectedAUDITValue) { >diff --git a/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.h >index dd9a398ee13..3cf2b6e9a85 100644 >--- a/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.h >+++ b/Source/JavaScriptCore/inspector/agents/InspectorAuditAgent.h >@@ -48,6 +48,7 @@ public: > void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override; > void willDestroyFrontendAndBackend(DisconnectReason) override; > >+ void getAuditSystemVersion(ErrorString&, double* version) final; > void setup(ErrorString&, const int* executionContextId) final; > void run(ErrorString&, const String& test, const int* executionContextId, RefPtr<Protocol::Runtime::RemoteObject>& result, Optional<bool>& wasThrown) final; > void teardown(ErrorString&) final; >diff --git a/Source/JavaScriptCore/inspector/protocol/Audit.json b/Source/JavaScriptCore/inspector/protocol/Audit.json >index 718fcada43e..f6828c33042 100644 >--- a/Source/JavaScriptCore/inspector/protocol/Audit.json >+++ b/Source/JavaScriptCore/inspector/protocol/Audit.json >@@ -1,7 +1,20 @@ > { > "domain": "Audit", > "description": "", >+ "types": [ >+ { >+ "id": "Version", >+ "type": "number" >+ } >+ ], > "commands": [ >+ { >+ "name": "getAuditSystemVersion", >+ "description": "Requests the backend's audit system version number.", >+ "returns": [ >+ { "name": "version", "$ref": "Version" } >+ ] >+ }, > { > "name": "setup", > "description": "", >diff --git a/Source/JavaScriptCore/inspector/protocol/Canvas.json b/Source/JavaScriptCore/inspector/protocol/Canvas.json >index 1591d605e44..871b8b04eca 100644 >--- a/Source/JavaScriptCore/inspector/protocol/Canvas.json >+++ b/Source/JavaScriptCore/inspector/protocol/Canvas.json >@@ -104,6 +104,13 @@ > { "name": "object", "$ref": "Runtime.RemoteObject", "description": "JavaScript object wrapper for given canvas context." } > ] > }, >+ { >+ "name": "getRecordingSystemVersion", >+ "description": "Requests the backend's recording system version number.", >+ "returns": [ >+ { "name": "version", "$ref": "Recording.Version" } >+ ] >+ }, > { > "name": "setRecordingAutoCaptureFrameCount", > "description": "Tells the backend to record `count` frames whenever a new context is created.", >diff --git a/Source/JavaScriptCore/inspector/protocol/Recording.json b/Source/JavaScriptCore/inspector/protocol/Recording.json >index 853710e89ed..cd33f805879 100644 >--- a/Source/JavaScriptCore/inspector/protocol/Recording.json >+++ b/Source/JavaScriptCore/inspector/protocol/Recording.json >@@ -3,6 +3,10 @@ > "description": "General types used for recordings of actions performed in the inspected page.", > "availability": ["web"], > "types": [ >+ { >+ "id": "Version", >+ "type": "number" >+ }, > { > "id": "Type", > "type": "string", >@@ -39,7 +43,7 @@ > "id": "Recording", > "type": "object", > "properties": [ >- { "name": "version", "type": "integer", "description": "Used for future/backwards compatibility." }, >+ { "name": "version", "$ref": "Version", "description": "Used for future/backwards compatibility." }, > { "name": "type", "$ref": "Type" }, > { "name": "initialState", "$ref": "InitialState", "description": "JSON data of inital state of object before recording." }, > { "name": "data", "type": "array", "items": { "type": "any" }, "description": "Array of objects that can be referenced by index. Used to avoid duplicating objects." }, >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 4af98717cd5..b88cbafc06e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,19 @@ >+2019-01-08 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: expose Audit and Recording versions to the frontend >+ https://bugs.webkit.org/show_bug.cgi?id=193262 >+ <rdar://problem/47130684> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Tests: inspector/audit/getAuditSystemVersion.html >+ inspector/canvas/getRecordingSystemVersion.html >+ >+ * inspector/agents/InspectorCanvasAgent.h: >+ * inspector/agents/InspectorCanvasAgent.cpp: >+ (WebCore::InspectorCanvasAgent::getRecordingSystemVersion): Added. >+ (WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame): >+ > 2019-01-06 Devin Rousso <drousso@apple.com> > > Web Inspector: Audit: create new IDL type for exposing special functionality in test context >diff --git a/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp b/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp >index e38d1a383d3..a49639eb7c1 100644 >--- a/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp >+++ b/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp >@@ -65,6 +65,8 @@ namespace WebCore { > > using namespace Inspector; > >+#define RECORDING_VERSION 1 >+ > InspectorCanvasAgent::InspectorCanvasAgent(WebAgentContext& context) > : InspectorAgentBase("Canvas"_s, context) > , m_frontendDispatcher(std::make_unique<Inspector::CanvasFrontendDispatcher>(context.frontendRouter)) >@@ -265,6 +267,11 @@ void InspectorCanvasAgent::resolveCanvasContext(ErrorString& errorString, const > result = injectedScript.wrapObject(value, objectGroupName); > } > >+void InspectorCanvasAgent::getRecordingSystemVersion(ErrorString&, double* version) >+{ >+ *version = RECORDING_VERSION; >+} >+ > void InspectorCanvasAgent::setRecordingAutoCaptureFrameCount(ErrorString&, int count) > { > if (count > 0) >@@ -558,7 +565,7 @@ void InspectorCanvasAgent::didFinishRecordingCanvasFrame(CanvasRenderingContext& > } > > auto recording = Inspector::Protocol::Recording::Recording::create() >- .setVersion(1) >+ .setVersion(RECORDING_VERSION) > .setType(type) > .setInitialState(inspectorCanvas->releaseInitialState()) > .setData(inspectorCanvas->releaseData()) >diff --git a/Source/WebCore/inspector/agents/InspectorCanvasAgent.h b/Source/WebCore/inspector/agents/InspectorCanvasAgent.h >index fa3ff7964be..90a3e2d97eb 100644 >--- a/Source/WebCore/inspector/agents/InspectorCanvasAgent.h >+++ b/Source/WebCore/inspector/agents/InspectorCanvasAgent.h >@@ -73,6 +73,7 @@ public: > void requestContent(ErrorString&, const String& canvasId, String* content) override; > void requestCSSCanvasClientNodes(ErrorString&, const String& canvasId, RefPtr<JSON::ArrayOf<int>>&) override; > void resolveCanvasContext(ErrorString&, const String& canvasId, const String* objectGroup, RefPtr<Inspector::Protocol::Runtime::RemoteObject>&) override; >+ void getRecordingSystemVersion(ErrorString&, double* version) override; > void setRecordingAutoCaptureFrameCount(ErrorString&, int count) override; > void startRecording(ErrorString&, const String& canvasId, const int* frameCount, const int* memoryLimit) override; > void stopRecording(ErrorString&, const String& canvasId) override; >diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index 0c1b1cdbcbd..4dbfa093c09 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,41 @@ >+2019-01-08 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: expose Audit and Recording versions to the frontend >+ https://bugs.webkit.org/show_bug.cgi?id=193262 >+ <rdar://problem/47130684> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UserInterface/Models/AuditTestCase.js: >+ * UserInterface/Models/Recording.js: >+ (WI.Recording.fromPayload): >+ Add "Interface" version values. >+ >+ * UserInterface/Controllers/AuditManager.js: >+ (WI.AuditManager): >+ (WI.AuditManager.prototype.async getAuditSystemVersion): Added. >+ * UserInterface/Controllers/CanvasManager.js: >+ (WI.CanvasManager): >+ (WI.CanvasManager.prototype.async getRecordingSystemVersion): Added. >+ Add "System" version getters. >+ >+ * UserInterface/Views/SettingsTabContentView.js: >+ (WI.SettingsTabContentView.prototype.initialLayout): >+ (WI.SettingsTabContentView.prototype._createInfoSettingsView.addVersionDisplay): Added. >+ (WI.SettingsTabContentView.prototype._createInfoSettingsView): Added. >+ * UserInterface/Views/SettingsTabContentView.css: >+ (.content-view.settings > .settings-view > .container): >+ (.content-view.settings > .settings-view > .container > .editor-group > .editor:first-child input): Added. >+ (.content-view.settings > .settings-view > .container > .editor-group > .editor:last-child input): Added. >+ (.content-view.settings > .settings-view > .container > .editor-group .backend-version-placeholder): Added. >+ (.content-view.settings > .settings-view > .container > .editor-group .backend-version-placeholder > .indeterminate-progress-spinner): Added. >+ Drive-by: make the title of each group align to the top of the group. >+ >+ * UserInterface/Views/SettingsGroup.js: >+ (WI.SettingsGroup.prototype.addValueDisplay): Added. >+ >+ * Localizations/en.lproj/localizedStrings.js: >+ > 2019-01-06 Devin Rousso <drousso@apple.com> > > Web Inspector: Audit: create new IDL type for exposing special functionality in test context >diff --git a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >index 90fa41ed08f..394e0016d3d 100644 >--- a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >+++ b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >@@ -508,6 +508,7 @@ localizedStrings["Indent width:"] = "Indent width:"; > localizedStrings["Index"] = "Index"; > localizedStrings["Index Key \u2014 %s"] = "Index Key \u2014 %s"; > localizedStrings["Indexed Databases"] = "Indexed Databases"; >+localizedStrings["Info"] = "Info"; > localizedStrings["Info: "] = "Info: "; > localizedStrings["Infos"] = "Infos"; > localizedStrings["Inherited From"] = "Inherited From"; >@@ -518,6 +519,7 @@ localizedStrings["Initiator"] = "Initiator"; > localizedStrings["Input: "] = "Input: "; > localizedStrings["Inspector Style Sheet"] = "Inspector Style Sheet"; > localizedStrings["Instances"] = "Instances"; >+localizedStrings["Interface Version %s"] = "Interface Version %s"; > localizedStrings["Invalid"] = "Invalid"; > localizedStrings["Invalid characters"] = "Invalid characters"; > localizedStrings["Inverted"] = "Inverted"; >@@ -719,6 +721,7 @@ localizedStrings["Recording"] = "Recording"; > localizedStrings["Recording %d"] = "Recording %d"; > localizedStrings["Recording Timeline Data"] = "Recording Timeline Data"; > localizedStrings["Recording error: %s"] = "Recording error: %s"; >+localizedStrings["Recording:"] = "Recording:"; > localizedStrings["Recordings"] = "Recordings"; > localizedStrings["Redirect Response"] = "Redirect Response"; > localizedStrings["Redirects"] = "Redirects"; >@@ -919,6 +922,9 @@ localizedStrings["Stylesheets"] = "Stylesheets"; > localizedStrings["Subject"] = "Subject"; > localizedStrings["Subtree Modified"] = "Subtree Modified"; > localizedStrings["Summary"] = "Summary"; >+localizedStrings["System %s"] = "System %s"; >+localizedStrings["System Unsupported"] = "System Unsupported"; >+localizedStrings["System Version %s"] = "System Version %s"; > localizedStrings["TCP"] = "TCP"; > localizedStrings["Tab width:"] = "Tab width:"; > localizedStrings["Tabs"] = "Tabs"; >diff --git a/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js b/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js >index b99fa399fd6..16903121dc7 100644 >--- a/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js >+++ b/Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js >@@ -35,9 +35,13 @@ WI.AuditManager = class AuditManager extends WI.Object > this._runningState = WI.AuditManager.RunningState.Inactive; > this._runningTests = []; > >+ this._auditSystemVersion = undefined; >+ > WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._handleFrameMainResourceDidChange, this); > } > >+ // Static >+ > static synthesizeError(message) > { > let consoleMessage = new WI.ConsoleMessage(WI.mainTarget, WI.ConsoleMessage.MessageSource.Other, WI.ConsoleMessage.MessageLevel.Error, WI.UIString("Audit error: %s").format(message)); >@@ -188,6 +192,18 @@ WI.AuditManager = class AuditManager extends WI.Object > WI.objectStores.audits.deleteObject(test); > } > >+ async getAuditSystemVersion() >+ { >+ if (this._auditSystemVersion === undefined) { >+ if (InspectorBackend.domains.Audit && InspectorBackend.domains.Audit.getAuditSystemVersion) { >+ let {version} = await AuditAgent.getAuditSystemVersion(); >+ this._auditSystemVersion = version; >+ } else >+ this._auditSystemVersion = 0; >+ } >+ return this._auditSystemVersion; >+ } >+ > // Private > > _addTest(test) >diff --git a/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js b/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js >index 317815d309f..5846cb6a9c8 100644 >--- a/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js >+++ b/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js >@@ -36,6 +36,8 @@ WI.CanvasManager = class CanvasManager extends WI.Object > this._canvasIdentifierMap = new Map; > this._shaderProgramIdentifierMap = new Map; > this._importedRecordings = new Set; >+ >+ this._recordingSystemVersion = undefined; > } > > // Target >@@ -90,6 +92,18 @@ WI.CanvasManager = class CanvasManager extends WI.Object > this.dispatchEventToListeners(WI.CanvasManager.Event.RecordingImported, {recording, initiatedByUser: true}); > } > >+ async getRecordingSystemVersion() >+ { >+ if (this._recordingSystemVersion === undefined) { >+ if (!InspectorBackend.domains.Canvas || !InspectorBackend.domains.Canvas.getRecordingSystemVersion) >+ return null; >+ >+ let {version} = await CanvasAgent.getRecordingSystemVersion(); >+ this._recordingSystemVersion = version; >+ } >+ return this._recordingSystemVersion; >+ } >+ > setRecordingAutoCaptureFrameCount(enabled, count) > { > console.assert(!isNaN(count) && count >= 0); >diff --git a/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js b/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js >index faaf3332c41..324837ccfd9 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js >+++ b/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js >@@ -277,4 +277,6 @@ WI.AuditTestCase = class AuditTestCase extends WI.AuditTestBase > } > }; > >+WI.AuditTestCase.Version = 1; >+ > WI.AuditTestCase.TypeIdentifier = "test-case"; >diff --git a/Source/WebInspectorUI/UserInterface/Models/Recording.js b/Source/WebInspectorUI/UserInterface/Models/Recording.js >index d05f104155d..b1d8f6e9692 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/Recording.js >+++ b/Source/WebInspectorUI/UserInterface/Models/Recording.js >@@ -51,7 +51,7 @@ WI.Recording = class Recording extends WI.Object > if (typeof payload !== "object" || payload === null) > return null; > >- if (isNaN(payload.version) || payload.version <= 0) >+ if (isNaN(payload.version) || payload.version <= 0 || payload.version > WI.Recording.Version) > return null; > > let type = null; >@@ -472,6 +472,8 @@ WI.Recording = class Recording extends WI.Object > } > }; > >+WI.Recording.Version = 1; >+ > WI.Recording.Event = { > ProcessedAction: "recording-processed-action", > StartProcessingFrame: "recording-start-processing-frame", >diff --git a/Source/WebInspectorUI/UserInterface/Views/SettingsGroup.js b/Source/WebInspectorUI/UserInterface/Views/SettingsGroup.js >index e851dbbd4de..a9d341b1eb4 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/SettingsGroup.js >+++ b/Source/WebInspectorUI/UserInterface/Views/SettingsGroup.js >@@ -64,4 +64,10 @@ WI.SettingsGroup = class SettingsGroup extends WI.Object > this._editorGroupElement.append(editor.element); > return editor; > } >+ >+ addValueDisplay(value) >+ { >+ let wrapper = this._editorGroupElement.appendChild(document.createElement("div")); >+ wrapper.append(value); >+ } > }; >diff --git a/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.css b/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.css >index e6621ddb78d..69c07a23131 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.css >@@ -55,7 +55,6 @@ > > .content-view.settings > .settings-view > .container { > display: flex; >- align-items: center; > margin-top: 1em; > font-size: 13px; > } >@@ -89,6 +88,14 @@ > font-size: inherit; > } > >+.content-view.settings > .settings-view > .container > .editor-group > .editor:first-child input { >+ margin-top: 0; >+} >+ >+.content-view.settings > .settings-view > .container > .editor-group > .editor:last-child input { >+ margin-bottom: 0; >+} >+ > .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"] { > -webkit-margin-end: 4px; > /* Vertically align <select> with the group title text. */ >@@ -127,6 +134,14 @@ body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-gro > margin-right: var(--settings-input-number-margin-start); > } > >+.content-view.settings > .settings-view > .container > .editor-group .backend-version-placeholder { >+ display: flex; >+} >+ >+.content-view.settings > .settings-view > .container > .editor-group .backend-version-placeholder > .indeterminate-progress-spinner { >+ -webkit-margin-start: 4px; >+} >+ > @media (prefers-dark-interface) { > .content-view.settings .navigation-bar { > background-color: var(--background-color-content); >diff --git a/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js b/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js >index d123dc00b75..0b58f0e98d1 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js >@@ -163,6 +163,7 @@ WI.SettingsTabContentView = class SettingsTabContentView extends WI.TabContentVi > > this._createGeneralSettingsView(); > this._createExperimentalSettingsView(); >+ this._createInfoSettingsView(); > > WI.notifications.addEventListener(WI.Notification.DebugUIEnabledDidChange, this._updateDebugSettingsViewVisibility, this); > this._updateDebugSettingsViewVisibility(); >@@ -302,6 +303,36 @@ WI.SettingsTabContentView = class SettingsTabContentView extends WI.TabContentVi > this.addSettingsView(experimentalSettingsView); > } > >+ _createInfoSettingsView() >+ { >+ let infoSettingsView = new WI.SettingsView("info", WI.UIString("Info")); >+ >+ function addVersionDisplay(title, frontendVersion, backendVersionPromise) { >+ let group = infoSettingsView.addGroup(title); >+ >+ group.addValueDisplay(WI.UIString("Interface Version %s").format(frontendVersion)); >+ >+ let backendVersionPlaceholder = document.createElement("div"); >+ backendVersionPlaceholder.classList.add("backend-version-placeholder"); >+ group.addValueDisplay(backendVersionPlaceholder); >+ >+ const format = WI.UIString("System %s"); >+ String.format(format, [(new WI.IndeterminateProgressSpinner).element], String.standardFormatters, backendVersionPlaceholder, (a, b) => { >+ a.append(b); >+ return a; >+ }); >+ >+ backendVersionPromise.then((version) => { >+ let versionString = (version || version === 0) ? WI.UIString("System Version %s").format(version) : WI.UIString("System Unsupported"); >+ backendVersionPlaceholder.parentNode.replaceChild(document.createTextNode(versionString), backendVersionPlaceholder); >+ }); >+ } >+ addVersionDisplay(WI.UIString("Recording:"), WI.Recording.Version, WI.canvasManager.getRecordingSystemVersion()); >+ addVersionDisplay(WI.UIString("Audit:"), WI.AuditTestCase.Version, WI.auditManager.getAuditSystemVersion()); >+ >+ this.addSettingsView(infoSettingsView); >+ } >+ > _createDebugSettingsView() > { > if (this._debugSettingsView)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193262
:
358648
|
358649
|
359000
|
359252
|
359254
|
359790
|
359837