Changeset 239646 in webkit
- Timestamp:
- Jan 4, 2019 4:28:57 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r239644 r239646 1 2019-01-04 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Audit: disable breakpoints when running Audit 4 https://bugs.webkit.org/show_bug.cgi?id=193158 5 <rdar://problem/47057083> 6 7 Reviewed by Joseph Pecoraro. 8 9 * inspector/audit/basic.html: 10 * inspector/audit/basic-expected.txt: 11 12 * inspector/audit/resources/audit-utilities.js: 13 (TestPage.registerInitializer.InspectorTest.Audit.addTest): 14 1 15 2019-01-04 Youenn Fablet <youenn@apple.com> 2 16 -
trunk/LayoutTests/inspector/audit/basic-expected.txt
r238850 r239646 127 127 - rejected 128 128 129 -- Running test case: Audit.Basic.Debugger 130 Testing `debugger`... 131 PASS: Should not pause on the debugger statement. 132 PASS: Result should be "pass". 133 -
trunk/LayoutTests/inspector/audit/basic.html
r238850 r239646 46 46 InspectorTest.Audit.addPromiseTest("Audit.Basic.Error.Promise.Rejected", `setTimeout(reject, 0, "rejected")`, WI.AuditTestCaseResult.Level.Error); 47 47 48 suite.addTestCase({ 49 name: "Audit.Basic.Debugger", 50 description: "Test that a debugger statement doesn't pause when running an audit.", 51 test(resolve, reject) { 52 const level = "pass"; 53 let audit = new WI.AuditTestCase("Audit.Basic.Debugger", `function() { debugger; return "${level}"; }`); 54 55 let paused = false; 56 let pausedListener = WI.debuggerManager.singleFireEventListener(WI.DebuggerManager.Event.Paused, (event) => { 57 paused = true; 58 59 WI.debuggerManager.resume(); 60 }); 61 62 WI.auditManager.awaitEvent(WI.AuditManager.Event.TestCompleted).then((event) => { 63 InspectorTest.expectFalse(paused, "Should not pause on the debugger statement."); 64 65 let results = WI.auditManager.results.lastValue; 66 InspectorTest.assert(results.length === 1, "There should be 1 result."); 67 68 let result = results[0]; 69 InspectorTest.assert(result instanceof WI.AuditTestCaseResult, "Result should be a WI.AuditTestCaseResult."); 70 if (!result) 71 return; 72 73 InspectorTest.expectEqual(result.level, level, `Result should be "${level}".`); 74 75 WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, pausedListener); 76 }); 77 78 InspectorTest.log("Testing `debugger`..."); 79 80 WI.auditManager.start([audit]) 81 .then(resolve, reject); 82 }, 83 }); 84 48 85 suite.runTestCasesAndFinish(); 49 86 } -
trunk/LayoutTests/inspector/audit/resources/audit-utilities.js
r238850 r239646 59 59 if (data.errors) 60 60 logArray("errors", data.errors); 61 }) 62 .then(resolve, reject); 61 }); 63 62 64 63 InspectorTest.log("Testing" + (logs.beforeStart || "") + "..."); -
trunk/Source/WebInspectorUI/ChangeLog
r239635 r239646 1 2019-01-04 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Audit: disable breakpoints when running Audit 4 https://bugs.webkit.org/show_bug.cgi?id=193158 5 <rdar://problem/47057083> 6 7 Reviewed by Joseph Pecoraro. 8 9 * UserInterface/Controllers/DebuggerManager.js: 10 (WI.DebuggerManager): 11 (WI.DebuggerManager.prototype._startDisablingBreakpointsTemporarily): 12 (WI.DebuggerManager.prototype._stopDisablingBreakpointsTemporarily): 13 (WI.DebuggerManager.prototype._handleAuditManagerTestScheduled): Added. 14 (WI.DebuggerManager.prototype._handleAuditManagerTestCompleted): Added. 15 16 * UserInterface/Views/DebuggerSidebarPanel.js: 17 (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart): 18 (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped): 19 (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestScheduled): Added. 20 (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestCompleted): Added. 21 (WI.DebuggerSidebarPanel.prototype._updateBreakpointsDisabledBanner): 22 * UserInterface/Views/DebuggerSidebarPanel.css: 23 (.sidebar > .panel.navigation.debugger .warning-banner + .warning-banner): Added. 24 25 * UserInterface/Base/Main.js: 26 (WI.loaded): 27 * UserInterface/Test/Test.js: 28 (WI.loaded): 29 Move `WI.auditManager` higher in the managers list so that it can be used in 30 `WI.DebuggerManager`'s constructor. 31 32 * Localizations/en.lproj/localizedStrings.js: 33 1 34 2019-01-04 Joseph Pecoraro <pecoraro@apple.com> 2 35 -
trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
r239635 r239646 277 277 localizedStrings["Debugger Paused"] = "Debugger Paused"; 278 278 localizedStrings["Debugger Statement"] = "Debugger Statement"; 279 localizedStrings["Debugger disabled during Audit"] = "Debugger disabled during Audit"; 279 280 localizedStrings["Debugger disabled during Timeline recording"] = "Debugger disabled during Timeline recording"; 280 281 localizedStrings["Debugger:"] = "Debugger:"; … … 897 898 localizedStrings["Stiffness"] = "Stiffness"; 898 899 localizedStrings["Stop"] = "Stop"; 900 localizedStrings["Stop Audit"] = "Stop Audit"; 899 901 localizedStrings["Stop Recording"] = "Stop Recording"; 900 902 localizedStrings["Stop element selection (%s)"] = "Stop element selection (%s)"; -
trunk/Source/WebInspectorUI/UserInterface/Base/Main.js
r239460 r239646 115 115 WI.applicationCacheManager = new WI.ApplicationCacheManager, 116 116 WI.timelineManager = new WI.TimelineManager, 117 WI.auditManager = new WI.AuditManager, 117 118 WI.debuggerManager = new WI.DebuggerManager, 118 119 WI.layerTreeManager = new WI.LayerTreeManager, … … 120 121 WI.domDebuggerManager = new WI.DOMDebuggerManager, 121 122 WI.canvasManager = new WI.CanvasManager, 122 WI.auditManager = new WI.AuditManager,123 123 ]; 124 124 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js
r238048 r239646 42 42 WI.timelineManager.addEventListener(WI.TimelineManager.Event.CapturingStopped, this._timelineCapturingStopped, this); 43 43 44 WI.auditManager.addEventListener(WI.AuditManager.Event.TestScheduled, this._handleAuditManagerTestScheduled, this); 45 WI.auditManager.addEventListener(WI.AuditManager.Event.TestCompleted, this._handleAuditManagerTestCompleted, this); 46 44 47 WI.targetManager.addEventListener(WI.TargetManager.Event.TargetRemoved, this._targetRemoved, this); 45 48 … … 94 97 this._temporarilyDisabledBreakpointsRestoreSetting.value = null; 95 98 } 99 this._temporarilyDisableBreakpointsRequestCount = 0; 96 100 97 101 this._ignoreBreakpointDisplayLocationDidChangeEvent = false; … … 1111 1115 _startDisablingBreakpointsTemporarily() 1112 1116 { 1117 if (++this._temporarilyDisableBreakpointsRequestCount > 1) 1118 return; 1119 1113 1120 console.assert(!this.breakpointsDisabledTemporarily, "Already temporarily disabling breakpoints."); 1114 1121 if (this.breakpointsDisabledTemporarily) 1115 1122 return; 1116 1123 1124 1117 1125 this._temporarilyDisabledBreakpointsRestoreSetting.value = this._breakpointsEnabledSetting.value; 1118 1126 … … 1122 1130 _stopDisablingBreakpointsTemporarily() 1123 1131 { 1132 this._temporarilyDisableBreakpointsRequestCount = Math.max(0, this._temporarilyDisableBreakpointsRequestCount - 1); 1133 if (this._temporarilyDisableBreakpointsRequestCount > 0) 1134 return; 1135 1124 1136 console.assert(this.breakpointsDisabledTemporarily, "Was not temporarily disabling breakpoints."); 1125 1137 if (!this.breakpointsDisabledTemporarily) … … 1141 1153 1142 1154 _timelineCapturingStopped(event) 1155 { 1156 this._stopDisablingBreakpointsTemporarily(); 1157 } 1158 1159 _handleAuditManagerTestScheduled(event) 1160 { 1161 this._startDisablingBreakpointsTemporarily(); 1162 1163 if (this.paused) 1164 this.resume(); 1165 } 1166 1167 _handleAuditManagerTestCompleted(event) 1143 1168 { 1144 1169 this._stopDisablingBreakpointsTemporarily(); -
trunk/Source/WebInspectorUI/UserInterface/Test/Test.js
r239452 r239646 58 58 WI.memoryManager = new WI.MemoryManager, 59 59 WI.timelineManager = new WI.TimelineManager, 60 WI.auditManager = new WI.AuditManager, 60 61 WI.debuggerManager = new WI.DebuggerManager, 61 62 WI.layerTreeManager = new WI.LayerTreeManager, … … 63 64 WI.domDebuggerManager = new WI.DOMDebuggerManager, 64 65 WI.canvasManager = new WI.CanvasManager, 65 WI.auditManager = new WI.AuditManager,66 66 ]; 67 67 -
trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.css
r236540 r239646 63 63 } 64 64 65 .sidebar > .panel.navigation.debugger .warning-banner + .warning-banner { 66 display: none; 67 } 68 65 69 .sidebar > .panel.navigation.debugger .tree-outline.single-thread > .item.thread { 66 70 display: none; -
trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js
r238859 r239646 59 59 WI.timelineManager.addEventListener(WI.TimelineManager.Event.CapturingStopped, this._timelineCapturingStopped, this); 60 60 61 WI.auditManager.addEventListener(WI.AuditManager.Event.TestScheduled, this._handleAuditManagerTestScheduled, this); 62 WI.auditManager.addEventListener(WI.AuditManager.Event.TestCompleted, this._handleAuditManagerTestCompleted, this); 63 61 64 WI.targetManager.addEventListener(WI.TargetManager.Event.TargetAdded, this._targetAdded, this); 62 65 WI.targetManager.addEventListener(WI.TargetManager.Event.TargetRemoved, this._targetRemoved, this); … … 64 67 this._timelineRecordingWarningElement = document.createElement("div"); 65 68 this._timelineRecordingWarningElement.classList.add("warning-banner"); 66 this._timelineRecordingWarningElement.append(WI.UIString("Debugger disabled during Timeline recording"), " "); 67 let stopRecordingLink = this._timelineRecordingWarningElement.appendChild(document.createElement("a")); 68 stopRecordingLink.textContent = WI.UIString("Stop recording"); 69 stopRecordingLink.addEventListener("click", () => { WI.timelineManager.stopCapturing(); }); 69 this._timelineRecordingWarningElement.append(WI.UIString("Debugger disabled during Timeline recording"), document.createElement("br")); 70 let timelineStopRecordingLink = this._timelineRecordingWarningElement.appendChild(document.createElement("a")); 71 timelineStopRecordingLink.textContent = WI.UIString("Stop recording"); 72 timelineStopRecordingLink.addEventListener("click", () => { WI.timelineManager.stopCapturing(); }); 73 74 this._auditTestWarningElement = document.createElement("div"); 75 this._auditTestWarningElement.classList.add("warning-banner"); 76 this._auditTestWarningElement.append(WI.UIString("Debugger disabled during Audit"), document.createElement("br")); 77 let auditStopRecordingLink = this._auditTestWarningElement.appendChild(document.createElement("a")); 78 auditStopRecordingLink.textContent = WI.UIString("Stop Audit"); 79 auditStopRecordingLink.addEventListener("click", () => { WI.auditManager.stop(); }); 70 80 71 81 this._breakpointsDisabledWarningElement = document.createElement("div"); … … 623 633 _timelineCapturingWillStart(event) 624 634 { 625 this._debuggerBreakpointsButtonItem.enabled = false; 626 this._debuggerPauseResumeButtonItem.enabled = false; 635 this._updateTemporarilyDisabledBreakpointsButtons(); 627 636 628 637 this.contentView.element.insertBefore(this._timelineRecordingWarningElement, this.contentView.element.firstChild); … … 632 641 _timelineCapturingStopped(event) 633 642 { 634 this._debuggerBreakpointsButtonItem.enabled = true; 635 this._debuggerPauseResumeButtonItem.enabled = true; 643 this._updateTemporarilyDisabledBreakpointsButtons(); 636 644 637 645 this._timelineRecordingWarningElement.remove(); … … 639 647 } 640 648 649 _handleAuditManagerTestScheduled(event) 650 { 651 this._updateTemporarilyDisabledBreakpointsButtons(); 652 653 this.contentView.element.insertBefore(this._auditTestWarningElement, this.contentView.element.firstChild); 654 this._updateBreakpointsDisabledBanner(); 655 } 656 657 _handleAuditManagerTestCompleted(event) 658 { 659 this._updateTemporarilyDisabledBreakpointsButtons(); 660 661 this._auditTestWarningElement.remove(); 662 this._updateBreakpointsDisabledBanner(); 663 } 664 665 _updateTemporarilyDisabledBreakpointsButtons() 666 { 667 let breakpointsDisabledTemporarily = WI.debuggerManager.breakpointsDisabledTemporarily; 668 this._debuggerBreakpointsButtonItem.enabled = !breakpointsDisabledTemporarily; 669 this._debuggerPauseResumeButtonItem.enabled = !breakpointsDisabledTemporarily; 670 } 671 641 672 _updateBreakpointsDisabledBanner() 642 673 { 643 674 let breakpointsEnabled = WI.debuggerManager.breakpointsEnabled; 644 675 let timelineWarningShowing = !!this._timelineRecordingWarningElement.parentElement; 645 646 if (!breakpointsEnabled && !timelineWarningShowing) 676 let auditWarningShowing = !!this._auditTestWarningElement.parentElement; 677 678 if (!breakpointsEnabled && !timelineWarningShowing && !auditWarningShowing) 647 679 this.contentView.element.insertBefore(this._breakpointsDisabledWarningElement, this.contentView.element.firstChild); 648 680 else
Note: See TracChangeset
for help on using the changeset viewer.