OLD | NEW |
(Empty) | |
| 1 <html> |
| 2 <head> |
| 3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto
r-protocol-test.js"></script> |
| 4 <script type="text/javascript" src="css-protocol-test.js"></script> |
| 5 <script type="text/javascript"> |
| 6 function test() |
| 7 { |
| 8 var nodeInfo = {}; |
| 9 InspectorTest.eventHandler["DOM.setChildNodes"] = setChildNodes; |
| 10 InspectorTest.sendCommandOrDie("CSS.enable", {}, onCSSEnabled); |
| 11 |
| 12 function onCSSEnabled() |
| 13 { |
| 14 InspectorTest.requestNodeId("#redlink", onNodeReceived); |
| 15 } |
| 16 |
| 17 function onNodeReceived(nodeId) |
| 18 { |
| 19 dumpVisitedAndLinkRules(nodeId, onLinkDumped); |
| 20 } |
| 21 |
| 22 function onLinkDumped() |
| 23 { |
| 24 InspectorTest.requestNodeId("#shadow-host", onShadowHost); |
| 25 } |
| 26 |
| 27 function onShadowHost(nodeId) |
| 28 { |
| 29 var node = nodeInfo[nodeId]; |
| 30 if (!node) { |
| 31 InspectorTest.log("ERROR: didn't get node from backend"); |
| 32 InspectorTest.completeTest(); |
| 33 return; |
| 34 } |
| 35 var shadowRoots = node.shadowRoots || []; |
| 36 if (shadowRoots.length !== 1) { |
| 37 InspectorTest.log("ERROR: shadow host doesn't have any shadow roots"
); |
| 38 InspectorTest.completeTest(); |
| 39 return; |
| 40 } |
| 41 var shadowRoot = shadowRoots[0]; |
| 42 InspectorTest.sendCommandOrDie("DOM.querySelector", { |
| 43 nodeId: shadowRoot.nodeId, |
| 44 selector: ".shadow-link" |
| 45 }, onShadowAnchor); |
| 46 } |
| 47 |
| 48 function onShadowAnchor(result) |
| 49 { |
| 50 dumpVisitedAndLinkRules(result.nodeId, InspectorTest.completeTest.bind(I
nspectorTest)); |
| 51 } |
| 52 |
| 53 function setChildNodes(message) |
| 54 { |
| 55 var nodes = message.params.nodes; |
| 56 for (var i = 0; i < nodes.length; ++i) { |
| 57 nodeInfo[nodes[i].nodeId] = nodes[i]; |
| 58 delete nodes[i].nodeId; |
| 59 } |
| 60 } |
| 61 |
| 62 function dumpVisitedAndLinkRules(nodeId, callback) |
| 63 { |
| 64 InspectorTest.log("==== Styles for unvisited link ===="); |
| 65 InspectorTest.loadAndDumpMatchingRulesForNode(nodeId, onUnvisitedLinkDum
ped); |
| 66 function onUnvisitedLinkDumped() |
| 67 { |
| 68 InspectorTest.sendCommandOrDie("CSS.forcePseudoState", { |
| 69 nodeId: nodeId, |
| 70 forcedPseudoClasses: [ "visited" ] |
| 71 }, onVisitedForced); |
| 72 } |
| 73 |
| 74 function onVisitedForced() |
| 75 { |
| 76 InspectorTest.log("==== Styles for visited link ===="); |
| 77 InspectorTest.loadAndDumpMatchingRulesForNode(nodeId, callback); |
| 78 } |
| 79 } |
| 80 |
| 81 } |
| 82 </script> |
| 83 <style> |
| 84 #redlink:visited { |
| 85 color: red; |
| 86 } |
| 87 #redlink:link { |
| 88 color: blue; |
| 89 } |
| 90 |
| 91 #redlink { |
| 92 color: gray; |
| 93 } |
| 94 </style> |
| 95 <template id="shadow"> |
| 96 <style> |
| 97 .shadow-link:visited { |
| 98 color: blue; |
| 99 } |
| 100 .shadow-link:link { |
| 101 color: green; |
| 102 } |
| 103 .shadow-link { |
| 104 color: lightgray; |
| 105 } |
| 106 </style> |
| 107 <a class="shadow-link" href="definitely-unvisited-shadow-link-2232">This is shad
ow link</a> |
| 108 </template> |
| 109 </head> |
| 110 <body> |
| 111 <a id="redlink" href="definitely-unvisited-link-address-1989-42.html">This i
s visited link</a> |
| 112 <div id="shadow-host"></div> |
| 113 <script> |
| 114 var host = document.querySelector("#shadow-host").createShadowRoot(); |
| 115 var template = document.querySelector("#shadow"); |
| 116 host.appendChild(template.content); |
| 117 template.remove(); |
| 118 runTest(); |
| 119 </script> |
| 120 </body> |
| 121 </html> |
OLD | NEW |