WebKit Bugzilla
Attachment 356412 Details for
Bug 192211
: Web Inspector: Audit: enabling/disabling an audit should put it's container group into an intermediate state
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
192211.diff (text/plain), 4.44 KB, created by
Devin Rousso
on 2018-12-03 15:03:46 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Devin Rousso
Created:
2018-12-03 15:03:46 PST
Size:
4.44 KB
patch
obsolete
>diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index 1f6ce6df7cd..f963587cf02 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,21 @@ >+2018-12-03 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: Audit: enabling/disabling an audit should put it's container group into an intermediate state >+ https://bugs.webkit.org/show_bug.cgi?id=192211 >+ <rdar://problem/46423621> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UserInterface/Models/AuditTestGroup.js: >+ (WI.AuditTestGroup.prototype.get disabled): Added. >+ (WI.AuditTestGroup.prototype.set disabled): Added. >+ (WI.AuditTestGroup.prototype._handleTestDisabledChanged): >+ >+ * UserInterface/Views/AuditTreeElement.js: >+ (WI.AuditTreeElement.prototype._updateTestGroupDisabled): Added. >+ (WI.AuditTreeElement.prototype._handleTestDisabledChanged): >+ (WI.AuditTreeElement.prototype._handleManagerEditingChanged): >+ > 2018-11-29 Devin Rousso <drousso@apple.com> > > Web Inspector: Audit: allow audits to be enabled/disabled >diff --git a/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js b/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js >index f01ed57dd08..d55b54c1151 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js >+++ b/Source/WebInspectorUI/UserInterface/Models/AuditTestGroup.js >@@ -86,6 +86,21 @@ WI.AuditTestGroup = class AuditTestGroup extends WI.AuditTestBase > > get tests() { return this._tests; } > >+ get disabled() >+ { >+ return super.disabled; >+ } >+ >+ set disabled(disabled) >+ { >+ if (!this._preventDisabledPropagation) { >+ for (let test of this._tests) >+ test.disabled = disabled; >+ } >+ >+ super.disabled = disabled; >+ } >+ > stop() > { > // Called from WI.AuditManager. >@@ -165,8 +180,14 @@ WI.AuditTestGroup = class AuditTestGroup extends WI.AuditTestBase > let enabledTestCount = this._tests.filter((test) => !test.disabled).length; > if (event.target.disabled && !enabledTestCount) > this.disabled = true; >- else if (!event.target.disabled && enabledTestCount === 1) >+ else if (!event.target.disabled && enabledTestCount === 1) { >+ this._preventDisabledPropagation = true; > this.disabled = false; >+ this._preventDisabledPropagation = false; >+ } else { >+ // Don't change `disabled`, as we're currently in an "indeterminate" state. >+ this.dispatchEventToListeners(WI.AuditTestBase.Event.DisabledChanged); >+ } > } > > _handleTestProgress(event) >diff --git a/Source/WebInspectorUI/UserInterface/Views/AuditTreeElement.js b/Source/WebInspectorUI/UserInterface/Views/AuditTreeElement.js >index fae55a23a16..f84d4dfbbd6 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/AuditTreeElement.js >+++ b/Source/WebInspectorUI/UserInterface/Views/AuditTreeElement.js >@@ -215,6 +215,14 @@ WI.AuditTreeElement = class AuditTreeElement extends WI.GeneralTreeElement > this.status.value = progress || 0; > } > >+ _updateTestGroupDisabled() >+ { >+ this.status.checked = !this.representedObject.disabled; >+ >+ if (this.representedObject instanceof WI.AuditTestGroup) >+ this.status.indeterminate = this.representedObject.tests.some((test) => test.disabled !== this.representedObject.tests[0].disabled); >+ } >+ > _handleTestCaseCompleted(event) > { > this.representedObject.removeEventListener(WI.AuditTestBase.Event.Completed, this._handleTestCaseCompleted, this); >@@ -225,7 +233,7 @@ WI.AuditTreeElement = class AuditTreeElement extends WI.GeneralTreeElement > _handleTestDisabledChanged(event) > { > if (this.status instanceof HTMLInputElement && this.status.type === "checkbox") >- this.status.checked = !this.representedObject.disabled; >+ this._updateTestGroupDisabled(); > } > > _handleTestResultCleared(event) >@@ -269,7 +277,7 @@ WI.AuditTreeElement = class AuditTreeElement extends WI.GeneralTreeElement > > this.status = document.createElement("input"); > this.status.type = "checkbox"; >- this.status.checked = !this.representedObject.disabled; >+ this._updateTestGroupDisabled(); > this.status.addEventListener("change", () => { > this.representedObject.disabled = !this.representedObject.disabled; > });
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 192211
: 356412