| <html> |
| <head> |
| <script type="text/javascript" src="../http/tests/inspector-protocol/inspector-protocol-test.js"></script> |
| <script> |
| var styleElement1; |
| var styleElement2; |
| |
| function createStyleSheet(textContent) |
| { |
| var styleElement = document.createElement("style"); |
| styleElement.textContent = textContent; |
| document.head.appendChild(styleElement); |
| return styleElement; |
| } |
| |
| function reopenWebInspector() |
| { |
| setTimeout(deferredReopening, 0); |
| |
| function deferredReopening() |
| { |
| log("Closing inspector.\n"); |
| closeInspector(); |
| window.didReopen = 1; |
| log("Removing style sheet.\n"); |
| document.head.removeChild(styleElement1); |
| log("Reopening inspector."); |
| openInspector(); |
| } |
| } |
| |
| function openWebInspector() |
| { |
| delete window.didReopen; |
| styleElement1 = createStyleSheet("body.class1 { color: red; } \n /*# sourceURL=foo.css */"); |
| styleElement2 = createStyleSheet("body.class2 { color: green; } \n /*# sourceURL=bar.css */"); |
| runTest(); |
| } |
| |
| function test() |
| { |
| InspectorTest.log("Running test"); |
| InspectorTest.sendCommand("Runtime.evaluate", {"expression": "window.didReopen"}, dispatch); |
| |
| function dispatch(response) |
| { |
| var result = response.result.result; |
| if (result.type !== "number") { |
| InspectorTest.log("Opening front-end for the first time"); |
| runTests(reopenInspector); |
| } else { |
| InspectorTest.log("Opening front-end second time"); |
| runTests(InspectorTest.completeTest.bind(InspectorTest)); |
| } |
| } |
| |
| function reopenInspector() |
| { |
| InspectorTest.sendCommand("Runtime.evaluate", {"expression": "reopenWebInspector()"}); |
| } |
| |
| function runTests(callback) |
| { |
| InspectorTest.eventHandler["CSS.styleSheetAdded"] = styleSheetAdded; |
| InspectorTest.eventHandler["CSS.styleSheetRemoved"] = styleSheetRemoved; |
| var headersAdded = []; |
| var headersRemoved = []; |
| |
| function styleSheetAdded(response) |
| { |
| headersAdded.push(response.params.header); |
| } |
| |
| function styleSheetRemoved(response) |
| { |
| headersRemoved.push(response.params.styleSheetId); |
| } |
| |
| InspectorTest.log("Enabling CSS domain."); |
| InspectorTest.sendCommandOrDie("DOM.enable", {}); |
| InspectorTest.sendCommand("CSS.enable", {}, wasEnabled); |
| |
| function wasEnabled() |
| { |
| function compareFunction(a, b) |
| { |
| return a.styleSheetId - b.styleSheetId; |
| } |
| |
| var headers = {}; |
| headersAdded.sort(compareFunction); |
| for (var i = 0; i < headersAdded.length; ++i) { |
| var header = headersAdded[i]; |
| headers[header.styleSheetId] = header.sourceURL; |
| InspectorTest.log(" - style sheet added: " + header.sourceURL); |
| } |
| |
| headersRemoved.sort(); |
| for (var i = 0; i < headersRemoved.length; ++i) |
| InspectorTest.log(" - style sheet removed: " + headers[headersRemoved[i]]); |
| |
| callback(); |
| } |
| } |
| } |
| </script> |
| </head> |
| <body onload="openWebInspector()"> |
| <p>This test checks that if style sheet is removed between two inspector launches it is not reported to frontend.</p> |
| </body> |
| </html> |