| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../inspector-test.js"></script> |
| 4 <script src="../../http/tests/inspector/elements-test.js"></script> | 4 <script src="../elements-test.js"></script> |
| 5 <script src="../../http/tests/inspector/debugger-test.js"></script> | |
| 6 <link rel="stylesheet" href="resources/stylesheet-tracking.css" /> | 5 <link rel="stylesheet" href="resources/stylesheet-tracking.css" /> |
| 7 | 6 |
| 8 <style> | 7 <style> |
| 9 html { | 8 html { |
| 10 font-size: 12px; | 9 font-size: 12px; |
| 11 } | 10 } |
| 12 </style> | 11 </style> |
| 13 | 12 |
| 14 <script> | 13 <script> |
| 15 | 14 |
| 16 function addStyleSheet() | 15 function addStyleSheet() |
| 17 { | 16 { |
| 18 var styleElement = document.createElement("style"); | 17 var styleElement = document.createElement("style"); |
| 19 styleElement.id = "style"; | 18 styleElement.id = "style"; |
| 20 styleElement.type = "text/css"; | 19 styleElement.type = "text/css"; |
| 21 styleElement.textContent = "@import url(\"resources/styles-new-API.css\");\n
a { color: green; }" | 20 styleElement.textContent = "@import url(\"resources/stylesheet-tracking-impo
rt.css\");\na { color: green; }" |
| 22 document.head.appendChild(styleElement); | 21 document.head.appendChild(styleElement); |
| 23 } | 22 } |
| 24 | 23 |
| 25 function removeImport() | 24 function removeImport() |
| 26 { | 25 { |
| 27 document.getElementById("style").sheet.deleteRule(0); | 26 document.getElementById("style").sheet.deleteRule(0); |
| 28 } | 27 } |
| 29 | 28 |
| 30 function removeStyleSheet() | 29 function removeStyleSheet() |
| 31 { | 30 { |
| 32 document.head.removeChild(document.getElementById("style")); | 31 document.head.removeChild(document.getElementById("style")); |
| 33 } | 32 } |
| 34 | 33 |
| 34 function loadIframe() |
| 35 { |
| 36 var iframe = document.createElement("iframe"); |
| 37 iframe.setAttribute("seamless", "seamless"); |
| 38 iframe.src = "resources/stylesheet-tracking-iframe.html"; |
| 39 document.body.appendChild(iframe); |
| 40 } |
| 41 |
| 42 function iframe() |
| 43 { |
| 44 return document.getElementsByTagName("iframe")[0]; |
| 45 } |
| 46 |
| 47 function addIframeStyleSheet() |
| 48 { |
| 49 iframe().contentWindow.postMessage("addStyleSheet", "*"); |
| 50 } |
| 51 |
| 52 function removeIframeStyleSheet() |
| 53 { |
| 54 iframe().contentWindow.postMessage("removeStyleSheet", "*"); |
| 55 } |
| 56 |
| 57 function removeIframe() |
| 58 { |
| 59 var element = iframe(); |
| 60 element.parentElement.removeChild(element); |
| 61 } |
| 62 |
| 35 function test() | 63 function test() |
| 36 { | 64 { |
| 37 var inspectorResource; | 65 var inspectedNode; |
| 38 | 66 |
| 39 WebInspector.showPanel("elements"); | 67 WebInspector.showPanel("elements"); |
| 40 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty
leSheetAdded, styleSheetAdded, null); | 68 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty
leSheetAdded, styleSheetAdded, null); |
| 41 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty
leSheetRemoved, styleSheetRemoved, null); | 69 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.Sty
leSheetRemoved, styleSheetRemoved, null); |
| 42 var headers = WebInspector.cssModel.styleSheetHeaders(); | 70 var headers = WebInspector.cssModel.styleSheetHeaders(); |
| 43 InspectorTest.addResult(headers.length + " headers known:"); | 71 InspectorTest.addResult(headers.length + " headers known:"); |
| 44 sortAndDumpData(headers); | 72 sortAndDumpData(headers); |
| 45 | 73 |
| 46 InspectorTest.selectNodeAndWaitForStyles("inspected", step1); | 74 InspectorTest.selectNodeAndWaitForStyles("inspected", step0); |
| 47 | 75 |
| 48 var inspectedNode; | 76 function step0(node) |
| 49 function step1(node) | |
| 50 { | 77 { |
| 51 inspectedNode = node; | 78 inspectedNode = node; |
| 79 InspectorTest.addResult("=== Adding iframe... ==="); |
| 80 InspectorTest.evaluateInPage("loadIframe()"); |
| 81 waitStyleSheetAdded(1, iframeAdded); |
| 82 |
| 83 function iframeAdded() |
| 84 { |
| 85 InspectorTest.addResult("=== Adding iframe stylesheet... ==="); |
| 86 waitStyleSheetAdded(1, removeIframeStyleSheet); |
| 87 InspectorTest.evaluateInPage("addIframeStyleSheet()"); |
| 88 } |
| 89 |
| 90 function removeIframeStyleSheet() |
| 91 { |
| 92 InspectorTest.addResult("=== Removing iframe stylesheet... ==="); |
| 93 waitStyleSheetRemoved(1, step1) |
| 94 InspectorTest.evaluateInPage("removeIframeStyleSheet()"); |
| 95 } |
| 96 } |
| 97 |
| 98 function step1() |
| 99 { |
| 52 InspectorTest.addResult("=== Adding stylesheet... ==="); | 100 InspectorTest.addResult("=== Adding stylesheet... ==="); |
| 53 waitStyleSheetAdded(4, step2); | 101 waitStyleSheetAdded(4, step2); |
| 54 InspectorTest.evaluateInPage("addStyleSheet()"); | 102 InspectorTest.evaluateInPage("addStyleSheet()"); |
| 55 } | 103 } |
| 56 | 104 |
| 57 function step2() | 105 function step2() |
| 58 { | 106 { |
| 59 InspectorTest.addResult("=== Removing @import... ==="); | 107 InspectorTest.addResult("=== Removing @import... ==="); |
| 60 waitStyleSheetRemoved(3, step3); | 108 waitStyleSheetRemoved(3, step3); |
| 61 InspectorTest.evaluateInPage("removeImport()"); | 109 InspectorTest.evaluateInPage("removeImport()"); |
| 62 } | 110 } |
| 63 | 111 |
| 64 function step3() | 112 function step3() |
| 65 { | 113 { |
| 66 InspectorTest.addResult("=== Removing stylesheet... ==="); | 114 InspectorTest.addResult("=== Removing stylesheet... ==="); |
| 67 waitStyleSheetRemoved(1, step4); | 115 waitStyleSheetRemoved(1, step4); |
| 68 InspectorTest.evaluateInPage("removeStyleSheet()"); | 116 InspectorTest.evaluateInPage("removeStyleSheet()"); |
| 69 } | 117 } |
| 70 | 118 |
| 71 function step4() | 119 function step4() |
| 72 { | 120 { |
| 73 InspectorTest.addResult("=== Adding rule... ==="); | 121 InspectorTest.addResult("=== Adding rule... ==="); |
| 122 waitStyleSheetAdded(1); |
| 74 WebInspector.cssModel.addRule(inspectedNode.id, "#inspected", successCal
lback, failureCallback); | 123 WebInspector.cssModel.addRule(inspectedNode.id, "#inspected", successCal
lback, failureCallback); |
| 75 | 124 |
| 76 function successCallback() | 125 function successCallback() |
| 77 { | 126 { |
| 78 InspectorTest.addResult("Rule added"); | 127 InspectorTest.addResult("Rule added"); |
| 79 InspectorTest.completeTest(); | 128 step5(); |
| 80 } | 129 } |
| 81 function failureCallback() | 130 function failureCallback() |
| 82 { | 131 { |
| 83 InspectorTest.addResult("Failed to add rule."); | 132 InspectorTest.addResult("Failed to add rule."); |
| 84 InspectorTest.completeTest(); | 133 InspectorTest.completeTest(); |
| 85 } | 134 } |
| 86 } | 135 } |
| 87 | 136 |
| 137 function step5() |
| 138 { |
| 139 InspectorTest.addResult("=== Removing iframe... ==="); |
| 140 InspectorTest.evaluateInPage("removeIframe()"); |
| 141 waitStyleSheetRemoved(1, step6); |
| 142 } |
| 143 |
| 144 function step6() |
| 145 { |
| 146 InspectorTest.completeTest(); |
| 147 } |
| 148 |
| 88 var addedCallback; | 149 var addedCallback; |
| 89 var addedSheetCount; | 150 var addedSheetCount; |
| 90 var addedSheets = []; | 151 var addedSheets = []; |
| 91 | 152 |
| 92 function waitStyleSheetAdded(count, next) | 153 function waitStyleSheetAdded(count, next) |
| 93 { | 154 { |
| 94 addedSheetCount = count; | 155 addedSheetCount = count; |
| 95 addedCallback = next; | 156 addedCallback = next; |
| 96 } | 157 } |
| 97 | 158 |
| 98 function styleSheetAdded(event) | 159 function styleSheetAdded(event) |
| 99 { | 160 { |
| 100 var header = event.data; | 161 var header = event.data; |
| 101 addedSheets.push(header); | 162 addedSheets.push(header); |
| 102 --addedSheetCount; | 163 --addedSheetCount; |
| 103 if (addedSheetCount > 0) | 164 if (addedSheetCount > 0) |
| 104 return; | 165 return; |
| 166 else if (addedSheetCount < 0) |
| 167 InspectorTest.addResult("Unexpected styleSheetAdded()"); |
| 168 |
| 105 InspectorTest.addResult("Stylesheets added:"); | 169 InspectorTest.addResult("Stylesheets added:"); |
| 106 sortAndDumpData(addedSheets); | 170 sortAndDumpData(addedSheets); |
| 107 addedSheets = []; | 171 addedSheets = []; |
| 108 if (addedCallback) { | 172 if (addedCallback) { |
| 109 var callback = addedCallback; | 173 var callback = addedCallback; |
| 110 addedCallback = null; | 174 addedCallback = null; |
| 111 callback(); | 175 callback(); |
| 112 } | 176 } |
| 113 } | 177 } |
| 114 | 178 |
| 115 var removedCallback; | 179 var removedCallback; |
| 116 var removedSheetCount; | 180 var removedSheetCount; |
| 117 var removedSheets = []; | 181 var removedSheets = []; |
| 118 | 182 |
| 119 function waitStyleSheetRemoved(count, next) | 183 function waitStyleSheetRemoved(count, next) |
| 120 { | 184 { |
| 121 removedSheetCount = count; | 185 removedSheetCount = count; |
| 122 removedCallback = next; | 186 removedCallback = next; |
| 123 } | 187 } |
| 124 | 188 |
| 125 function styleSheetRemoved(event) | 189 function styleSheetRemoved(event) |
| 126 { | 190 { |
| 127 var header = event.data; | 191 var header = event.data; |
| 128 removedSheets.push(header); | 192 removedSheets.push(header); |
| 129 --removedSheetCount; | 193 --removedSheetCount; |
| 130 if (removedSheetCount > 0) | 194 if (removedSheetCount > 0) |
| 131 return; | 195 return; |
| 196 else if (removedSheetCount < 0) |
| 197 InspectorTest.addResult("Unexpected styleSheetRemoved()"); |
| 198 |
| 132 InspectorTest.addResult("Stylesheets removed:"); | 199 InspectorTest.addResult("Stylesheets removed:"); |
| 133 sortAndDumpData(removedSheets); | 200 sortAndDumpData(removedSheets); |
| 134 removedSheets = []; | 201 removedSheets = []; |
| 135 if (removedCallback) { | 202 if (removedCallback) { |
| 136 var callback = removedCallback; | 203 var callback = removedCallback; |
| 137 removedCallback = null; | 204 removedCallback = null; |
| 138 callback(); | 205 callback(); |
| 139 } | 206 } |
| 140 } | 207 } |
| 141 | 208 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 170 | 237 |
| 171 <body onload="runTest()"> | 238 <body onload="runTest()"> |
| 172 <p> | 239 <p> |
| 173 Tests that the styleSheetAdded and styleSheetRemoved events are reported into th
e frontend. <a href="https://bugs.webkit.org/show_bug.cgi?id=105828">Bug 105828<
/a>. | 240 Tests that the styleSheetAdded and styleSheetRemoved events are reported into th
e frontend. <a href="https://bugs.webkit.org/show_bug.cgi?id=105828">Bug 105828<
/a>. |
| 174 </p> | 241 </p> |
| 175 | 242 |
| 176 <div id="inspected">Text</div> | 243 <div id="inspected">Text</div> |
| 177 | 244 |
| 178 </body> | 245 </body> |
| 179 </html> | 246 </html> |
| OLD | NEW |