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