Changeset 243719 in webkit
- Timestamp:
- Apr 1, 2019 3:41:24 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r243714 r243719 1 2019-04-01 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: DOMDebugger: breakpoints for attribute modifications still fire when breakpoints are disabled 4 https://bugs.webkit.org/show_bug.cgi?id=196456 5 <rdar://problem/49489747> 6 7 Reviewed by Joseph Pecoraro. 8 9 * inspector/dom-debugger/dom-breakpoints.html: 10 * inspector/dom-debugger/dom-breakpoints-expected.txt: 11 1 12 2019-04-01 Per Arne Vollan <pvollan@apple.com> 2 13 -
trunk/LayoutTests/inspector/dom-debugger/dom-breakpoints-expected.txt
r216681 r243719 10 10 -- Running test teardown. 11 11 12 -- Running test case: BreakOnSubtreeModified12 -- Running test case: DOMBreakpoints.SubtreeModified.BreakpointEnabled 13 13 PASS: Added 'subtree-modified' breakpoint. 14 14 PASS: Breakpoint should have expected type. … … 21 21 -- Running test teardown. 22 22 23 -- Running test case: BreakOnAttributeModified 23 -- Running test case: DOMBreakpoints.SubtreeModified.BreakpointDisabled 24 PASS: Added 'subtree-modified' breakpoint. 25 Wait for evaluate in page to return. 26 PASS: Should not pause for disabled breakpoint. 27 -- Running test teardown. 28 29 -- Running test case: DOMBreakpoints.SubtreeModified.DebuggerDisabled 30 PASS: Added 'subtree-modified' breakpoint. 31 Wait for evaluate in page to return. 32 PASS: Should not pause for disabled breakpoint. 33 -- Running test teardown. 34 35 -- Running test case: DOMBreakpoints.SubtreeModified.RemoveBreakpoint 36 PASS: Added 'subtree-modified' breakpoint. 37 Remove breakpoint. 38 Wait for evaluate in page to return. 39 PASS: Should not pause for removed breakpoint. 40 -- Running test teardown. 41 42 -- Running test case: DOMBreakpoints.AttributeModified.BreakpointEnabled 24 43 PASS: Added 'attribute-modified' breakpoint. 25 44 PASS: Breakpoint should have expected type. … … 32 51 -- Running test teardown. 33 52 34 -- Running test case: BreakOnNodeRemoved 53 -- Running test case: DOMBreakpoints.AttributeModified.BreakpointDisabled 54 PASS: Added 'attribute-modified' breakpoint. 55 Wait for evaluate in page to return. 56 PASS: Should not pause for disabled breakpoint. 57 -- Running test teardown. 58 59 -- Running test case: DOMBreakpoints.AttributeModified.DebuggerDisabled 60 PASS: Added 'attribute-modified' breakpoint. 61 Wait for evaluate in page to return. 62 PASS: Should not pause for disabled breakpoint. 63 -- Running test teardown. 64 65 -- Running test case: DOMBreakpoints.AttributeModified.RemoveBreakpoint 66 PASS: Added 'attribute-modified' breakpoint. 67 Remove breakpoint. 68 Wait for evaluate in page to return. 69 PASS: Should not pause for removed breakpoint. 70 -- Running test teardown. 71 72 -- Running test case: DOMBreakpoints.NodeRemoved.BreakpointEnabled 35 73 PASS: Added 'node-removed' breakpoint. 36 74 PASS: Breakpoint should have expected type. … … 43 81 -- Running test teardown. 44 82 45 -- Running test case: ShouldNotPauseOnDisabledBreakpoint46 PASS: Added ' subtree-modified' breakpoint.83 -- Running test case: DOMBreakpoints.NodeRemoved.BreakpointDisabled 84 PASS: Added 'node-removed' breakpoint. 47 85 Wait for evaluate in page to return. 48 86 PASS: Should not pause for disabled breakpoint. 49 87 -- Running test teardown. 50 88 51 -- Running test case: RemoveBreakpoint 52 PASS: Added 'subtree-modified' breakpoint. 89 -- Running test case: DOMBreakpoints.NodeRemoved.DebuggerDisabled 90 PASS: Added 'node-removed' breakpoint. 91 Wait for evaluate in page to return. 92 PASS: Should not pause for disabled breakpoint. 93 -- Running test teardown. 94 95 -- Running test case: DOMBreakpoints.NodeRemoved.RemoveBreakpoint 96 PASS: Added 'node-removed' breakpoint. 53 97 Remove breakpoint. 54 98 Wait for evaluate in page to return. -
trunk/LayoutTests/inspector/dom-debugger/dom-breakpoints.html
r236766 r243719 27 27 const multipleBreakpointsTestId = "multiple-breakpoints-test"; 28 28 29 let debuggerPausedListener = null; 30 29 31 let suite = InspectorTest.createAsyncSuite("DOMBreakpoints"); 30 32 … … 33 35 for (let breakpoint of breakpoints) 34 36 WI.domDebuggerManager.removeDOMBreakpoint(breakpoint); 37 InspectorTest.assert(!WI.domDebuggerManager.domBreakpoints.length); 38 39 WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, debuggerPausedListener); 40 debuggerPausedListener = null; 35 41 36 42 resolve(); … … 39 45 function rejectOnPause() { 40 46 return new Promise((resolve, reject) => { 41 WI.debuggerManager.awaitEvent(WI.DebuggerManager.Event.Paused)42 .then((event) => {47 InspectorTest.assert(!debuggerPausedListener); 48 debuggerPausedListener = WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, (event) => { 43 49 WI.debuggerManager.resume(); 44 50 InspectorTest.fail("Should not pause."); … … 99 105 }); 100 106 101 WI.domDebuggerManager.addDOMBreakpoint(new WI.DOMBreakpoint(node, type, disabled));102 }); 103 }); 104 } 105 106 function add SimpleTestCase({name, elementIdentifier, type, expression}) {107 WI.domDebuggerManager.addDOMBreakpoint(new WI.DOMBreakpoint(node, type, {disabled})); 108 }); 109 }); 110 } 111 112 function addTestsForBreakpointType({name, elementIdentifier, type, expression}) { 107 113 suite.addTestCase({ 108 name: ` BreakOn${name}`,114 name: `DOMBreakpoints.${name}.BreakpointEnabled`, 109 115 description: "Check that debugger pauses for breakpoint type.", 110 116 teardown, … … 130 136 } 131 137 }); 138 139 suite.addTestCase({ 140 name: `DOMBreakpoints.${name}.BreakpointDisabled`, 141 description: "Check that debugger does not pause for disabled breakpoint.", 142 teardown, 143 test(resolve, reject) { 144 const disabled = true; 145 addBreakpointForElementIdentifier(elementIdentifier, type, disabled) 146 .then(() => Promise.race([awaitEvaluateInPage(expression), rejectOnPause()])) 147 .then(() => { 148 InspectorTest.pass("Should not pause for disabled breakpoint."); 149 resolve(); 150 }) 151 .catch(reject); 152 } 153 }); 154 155 suite.addTestCase({ 156 name: `DOMBreakpoints.${name}.DebuggerDisabled`, 157 description: "Check that debugger does not pause when the debugger is disabled.", 158 teardown, 159 test(resolve, reject) { 160 addBreakpointForElementIdentifier(elementIdentifier, type) 161 .then(() => DebuggerAgent.setBreakpointsActive(false)) 162 .then(() => Promise.race([awaitEvaluateInPage(expression), rejectOnPause()])) 163 .then(() => DebuggerAgent.setBreakpointsActive(true)) 164 .then(() => { 165 InspectorTest.pass("Should not pause for disabled breakpoint."); 166 resolve(); 167 }) 168 .catch(reject); 169 } 170 }); 171 172 suite.addTestCase({ 173 name: `DOMBreakpoints.${name}.RemoveBreakpoint`, 174 description: "Check that debugger does not pause for removed breakpoint.", 175 teardown, 176 test(resolve, reject) { 177 addBreakpointForElementIdentifier(elementIdentifier, type) 178 .then((event) => { 179 let promise = WI.domDebuggerManager.awaitEvent(WI.DOMDebuggerManager.Event.DOMBreakpointRemoved); 180 let breakpoint = event.data.breakpoint; 181 182 InspectorTest.log("Remove breakpoint."); 183 WI.domDebuggerManager.removeDOMBreakpoint(breakpoint); 184 return promise; 185 }) 186 .then(() => Promise.race([awaitEvaluateInPage(expression), rejectOnPause()])) 187 .then(() => { 188 InspectorTest.pass("Should not pause for removed breakpoint."); 189 resolve(); 190 }) 191 .catch(reject); 192 } 193 }); 132 194 } 133 195 … … 151 213 }); 152 214 153 add SimpleTestCase({215 addTestsForBreakpointType({ 154 216 name: "SubtreeModified", 155 217 elementIdentifier: subtreeModifiedTestId, … … 158 220 }); 159 221 160 add SimpleTestCase({222 addTestsForBreakpointType({ 161 223 name: "AttributeModified", 162 224 elementIdentifier: attributeModifiedTestId, … … 165 227 }); 166 228 167 add SimpleTestCase({229 addTestsForBreakpointType({ 168 230 name: "NodeRemoved", 169 231 elementIdentifier: nodeRemovedTestId, 170 232 type: WI.DOMBreakpoint.Type.NodeRemoved, 171 233 expression: "nodeRemovedTest()", 172 });173 174 suite.addTestCase({175 name: "ShouldNotPauseOnDisabledBreakpoint",176 description: "Check that debugger does not pause for disabled breakpoint.",177 teardown,178 test(resolve, reject) {179 const disabled = true;180 addBreakpointForElementIdentifier(subtreeModifiedTestId, WI.DOMBreakpoint.Type.SubtreeModified, disabled)181 .then(() => Promise.race([awaitEvaluateInPage("modifySubtreeTest()"), rejectOnPause()]))182 .then(() => {183 InspectorTest.pass("Should not pause for disabled breakpoint.");184 resolve();185 })186 .catch(reject);187 }188 });189 190 suite.addTestCase({191 name: "RemoveBreakpoint",192 description: "Check that debugger does not pause for removed breakpoint.",193 teardown,194 test(resolve, reject) {195 addBreakpointForElementIdentifier(subtreeModifiedTestId, WI.DOMBreakpoint.Type.SubtreeModified)196 .then((event) => {197 let promise = WI.domDebuggerManager.awaitEvent(WI.DOMDebuggerManager.Event.DOMBreakpointRemoved);198 let breakpoint = event.data.breakpoint;199 200 InspectorTest.log("Remove breakpoint.");201 WI.domDebuggerManager.removeDOMBreakpoint(breakpoint);202 return promise;203 })204 .then(() => Promise.race([awaitEvaluateInPage("modifySubtreeTest()"), rejectOnPause()]))205 .then(() => {206 InspectorTest.pass("Should not pause for removed breakpoint.");207 resolve();208 })209 .catch(reject);210 }211 234 }); 212 235 -
trunk/Source/WebCore/ChangeLog
r243713 r243719 1 2019-04-01 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: DOMDebugger: breakpoints for attribute modifications still fire when breakpoints are disabled 4 https://bugs.webkit.org/show_bug.cgi?id=196456 5 <rdar://problem/49489747> 6 7 Reviewed by Joseph Pecoraro. 8 9 Test: inspector/dom-debugger/dom-breakpoints.html 10 11 * inspector/agents/InspectorDOMDebuggerAgent.cpp: 12 (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): 13 (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent): 14 1 15 2019-04-01 Wenson Hsieh <wenson_hsieh@apple.com> 2 16 -
trunk/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp
r243273 r243719 173 173 void InspectorDOMDebuggerAgent::didInvalidateStyleAttr(Node& node) 174 174 { 175 if (!m_debuggerAgent->breakpointsActive()) 176 return; 177 175 178 if (hasBreakpoint(&node, AttributeModified)) { 176 179 Ref<JSON::Object> eventData = JSON::Object::create(); … … 327 330 void InspectorDOMDebuggerAgent::descriptionForDOMEvent(Node& target, int breakpointType, bool insertion, JSON::Object& description) 328 331 { 332 ASSERT(m_debuggerAgent->breakpointsActive()); 329 333 ASSERT(hasBreakpoint(&target, breakpointType)); 330 334
Note: See TracChangeset
for help on using the changeset viewer.