WebKit Bugzilla
Attachment 362352 Details for
Bug 194793
: Web Inspector: Provide a way to avoid a recording auto-stop on reload
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
[PATCH] For Landing
for-landing2.patch (text/plain), 10.65 KB, created by
Joseph Pecoraro
on 2019-02-18 15:57:59 PST
(
hide
)
Description:
[PATCH] For Landing
Filename:
MIME Type:
Creator:
Joseph Pecoraro
Created:
2019-02-18 15:57:59 PST
Size:
10.65 KB
patch
obsolete
>diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index ed809cbef09..c91f302613d 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,35 @@ >+2019-02-18 Joseph Pecoraro <pecoraro@apple.com> >+ >+ Web Inspector: Provide a way to avoid a recording auto-stop on reload >+ https://bugs.webkit.org/show_bug.cgi?id=194793 >+ >+ Reviewed by Matt Baker. >+ >+ * Localizations/en.lproj/localizedStrings.js: >+ New tooltip. >+ >+ * UserInterface/Controllers/TimelineManager.js: >+ (WI.TimelineManager.prototype.willAutoStop): >+ (WI.TimelineManager.prototype.relaxAutoStop): >+ Getter and relaxer for auto stop behavior. >+ >+ * UserInterface/Views/AuditNavigationSidebarPanel.js: >+ (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView): >+ Drive-by fix some whitespace issues. >+ >+ * UserInterface/Views/TimelineTabContentView.js: >+ (WI.TimelineTabContentView): >+ (WI.TimelineTabContentView.prototype._showRecordButton): >+ (WI.TimelineTabContentView.prototype._showContinueButton): >+ (WI.TimelineTabContentView.prototype._updateNavigationBarButtons): >+ (WI.TimelineTabContentView.prototype._capturingStartedOrStopped): >+ (WI.TimelineTabContentView.prototype._globalModifierKeysDidChange): >+ (WI.TimelineTabContentView.prototype._continueButtonClicked): >+ Show a "continue" like icon instead of the usual stop button when >+ a recording would auto-stop and the alt key is down. When pressed >+ this button will relax the auto-stop and continue the recording >+ until explicitly stopped by the user. >+ > 2019-02-18 Joseph Pecoraro <pecoraro@apple.com> > > Web Inspector: Fix a typo causing assertions in ConsoleManager >diff --git a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >index b29e9268319..60e51e62661 100644 >--- a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >+++ b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >@@ -254,6 +254,7 @@ localizedStrings["Content Security Policy violation of directive: %s"] = "Conten > localizedStrings["Continuation Frame"] = "Continuation Frame"; > localizedStrings["Continue script execution (%s or %s)"] = "Continue script execution (%s or %s)"; > localizedStrings["Continue to Here"] = "Continue to Here"; >+localizedStrings["Continue without automatically stopping"] = "Continue without automatically stopping"; > localizedStrings["Controls"] = "Controls"; > localizedStrings["Cookies"] = "Cookies"; > localizedStrings["Copy"] = "Copy"; >diff --git a/Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js b/Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js >index 62c1d1117a9..8ca9d97ba43 100644 >--- a/Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js >+++ b/Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js >@@ -201,6 +201,24 @@ WI.TimelineManager = class TimelineManager extends WI.Object > return this._isCapturingPageReload; > } > >+ willAutoStop() >+ { >+ return !!this._stopCapturingTimeout; >+ } >+ >+ relaxAutoStop() >+ { >+ if (this._stopCapturingTimeout) { >+ clearTimeout(this._stopCapturingTimeout); >+ this._stopCapturingTimeout = undefined; >+ } >+ >+ if (this._deadTimeTimeout) { >+ clearTimeout(this._deadTimeTimeout); >+ this._deadTimeTimeout = undefined; >+ } >+ } >+ > startCapturing(shouldCreateRecording) > { > console.assert(!this._isCapturing, "TimelineManager is already capturing."); >diff --git a/Source/WebInspectorUI/UserInterface/Views/AuditNavigationSidebarPanel.js b/Source/WebInspectorUI/UserInterface/Views/AuditNavigationSidebarPanel.js >index 1c17635cf48..9ec2bf7f594 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/AuditNavigationSidebarPanel.js >+++ b/Source/WebInspectorUI/UserInterface/Views/AuditNavigationSidebarPanel.js >@@ -52,11 +52,11 @@ WI.AuditNavigationSidebarPanel = class AuditNavigationSidebarPanel extends WI.Na > let contentPlaceholder = WI.createMessageTextView(WI.UIString("No audit selected")); > contentView.element.appendChild(contentPlaceholder); > >- let importNavigationItem = new WI.ButtonNavigationItem("import-audit", WI.UIString("Import"), "Images/Import.svg", 15, 15); >+ let importNavigationItem = new WI.ButtonNavigationItem("import-audit", WI.UIString("Import"), "Images/Import.svg", 15, 15); > importNavigationItem.buttonStyle = WI.ButtonNavigationItem.Style.ImageAndText; > importNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._handleImportButtonNavigationItemClicked, this); > >- let importHelpElement = WI.createNavigationItemHelp(WI.UIString("Press %s to import a test or result file"), importNavigationItem); >+ let importHelpElement = WI.createNavigationItemHelp(WI.UIString("Press %s to import a test or result file"), importNavigationItem); > contentPlaceholder.appendChild(importHelpElement); > } > >diff --git a/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.css b/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.css >index f25565ef186..4f859178fb9 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.css >@@ -28,18 +28,22 @@ > filter: brightness(100%); > } > >-.timeline.tab.content-view .navigation-bar > .item.record-start-stop:hover { >+.timeline.tab.content-view .navigation-bar > .item:matches(.record-start-stop, .record-continue):hover { > filter: brightness(95%); > } > >-.timeline.tab.content-view .navigation-bar > .item.record-start-stop:active { >+.timeline.tab.content-view .navigation-bar > .item:matches(.record-start-stop, .record-continue):active { > filter: brightness(80%); > } > >-.timeline.tab.content-view .navigation-bar > .item.record-start-stop * { >+.timeline.tab.content-view .navigation-bar > .item:matches(.record-start-stop, .record-continue) * { > pointer-events: none; > } > >+.timeline.tab.content-view .navigation-bar > .item.record-continue { >+ fill: var(--glyph-color); >+} >+ > .timeline.tab.content-view .navigation-bar > .item.radio { > height: 17px; > } >diff --git a/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js b/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js >index e9d70cecdce..db139b8757d 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js >@@ -52,7 +52,13 @@ WI.TimelineTabContentView = class TimelineTabContentView extends WI.ContentBrows > this._recordButton.visibilityPriority = WI.NavigationItem.VisibilityPriority.Low; > this._recordButton.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._recordButtonClicked, this); > >+ this._continueButton = new WI.ButtonNavigationItem("record-continue", WI.UIString("Continue without automatically stopping"), "Images/Resume.svg", 13, 13); >+ this._continueButton.visibilityPriority = WI.NavigationItem.VisibilityPriority.Low; >+ this._continueButton.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._continueButtonClicked, this); >+ this._continueButton.hidden = true; >+ > this.contentBrowser.navigationBar.insertNavigationItem(this._recordButton, 0); >+ this.contentBrowser.navigationBar.insertNavigationItem(this._continueButton, 1); > > if (WI.FPSInstrument.supported()) { > let timelinesNavigationItem = new WI.RadioButtonNavigationItem(WI.TimelineOverview.ViewMode.Timelines, WI.UIString("Events")); >@@ -61,7 +67,7 @@ WI.TimelineTabContentView = class TimelineTabContentView extends WI.ContentBrows > let viewModeGroup = new WI.GroupNavigationItem([timelinesNavigationItem, renderingFramesNavigationItem]); > viewModeGroup.visibilityPriority = WI.NavigationItem.VisibilityPriority.High; > >- this.contentBrowser.navigationBar.insertNavigationItem(viewModeGroup, 1); >+ this.contentBrowser.navigationBar.insertNavigationItem(viewModeGroup, 2); > this.contentBrowser.navigationBar.addEventListener(WI.NavigationBar.Event.NavigationItemSelected, this._viewModeSelected, this); > } > >@@ -72,6 +78,7 @@ WI.TimelineTabContentView = class TimelineTabContentView extends WI.ContentBrows > WI.timelineManager.addEventListener(WI.TimelineManager.Event.CapturingStopped, this._capturingStartedOrStopped, this); > > WI.notifications.addEventListener(WI.Notification.VisibilityStateDidChange, this._inspectorVisibilityChanged, this); >+ WI.notifications.addEventListener(WI.Notification.GlobalModifierKeysDidChange, this._globalModifierKeysDidChange, this); > > this._displayedRecording = null; > this._displayedContentView = null; >@@ -398,10 +405,32 @@ WI.TimelineTabContentView = class TimelineTabContentView extends WI.ContentBrows > > // Private > >+ _showRecordButton() >+ { >+ this._recordButton.hidden = false; >+ this._continueButton.hidden = true; >+ } >+ >+ _showContinueButton() >+ { >+ this._recordButton.hidden = true; >+ this._continueButton.hidden = false; >+ } >+ >+ _updateNavigationBarButtons() >+ { >+ if (!WI.modifierKeys.altKey || !WI.timelineManager.willAutoStop()) >+ this._showRecordButton(); >+ else >+ this._showContinueButton(); >+ } >+ > _capturingStartedOrStopped(event) > { > let isCapturing = WI.timelineManager.isCapturing(); > this._recordButton.toggled = isCapturing; >+ >+ this._updateNavigationBarButtons(); > } > > _inspectorVisibilityChanged(event) >@@ -409,6 +438,11 @@ WI.TimelineTabContentView = class TimelineTabContentView extends WI.ContentBrows > WI.timelineManager.autoCaptureOnPageLoad = !!this.visible && !!WI.visible; > } > >+ _globalModifierKeysDidChange(event) >+ { >+ this._updateNavigationBarButtons(); >+ } >+ > _toggleRecordingOnSpacebar(event) > { > if (WI.isEventTargetAnEditableField(event)) >@@ -450,6 +484,15 @@ WI.TimelineTabContentView = class TimelineTabContentView extends WI.ContentBrows > this._toggleRecording(shouldCreateNewRecording); > } > >+ _continueButtonClicked(event) >+ { >+ console.assert(WI.timelineManager.willAutoStop()); >+ >+ WI.timelineManager.relaxAutoStop(); >+ >+ this._updateNavigationBarButtons(); >+ } >+ > _recordingsTreeSelectionDidChange(event) > { > let treeElement = this._recordingsTreeOutline.selectedTreeElement;
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 194793
:
362343
| 362352