[Web GPU] GPURenderPassEncoder updates: setBlendColor, setViewport, setScissorRect
[WebKit-https.git] / LayoutTests / accessibility / loading-iframe-sends-notification.html
1 <html>
2 <head>
3 <script src="../resources/js-test-pre.js"></script>
4 <script src="../resources/accessibility-helper.js"></script>
5 </head>
6 <body>
7
8 <p>Before</p>
9
10 <iframe id="iframe" title="InnerFrame"></iframe>
11
12 <p>After</p>
13
14 <p>End of test</p>
15
16 <p id="description"></p>
17 <div id="console"></div>
18
19 <script>
20     description("This tests that when an iframe finishes loading, it sends a notification.");
21
22     window.jsTestIsAsync = true;
23
24     // Recursively search the entire accessibility tree starting at the given
25     // AccessibilityUIElement (inclusive) and return the element whose title
26     // contains the given string. This makes it possible to find a node even
27     // when there are platform differences in the tree, i.e. due to different
28     // nodes being ignored.
29     function findByAccessibleTitleSubstring(startElement, titleSubstring)
30     {
31         if (startElement.title.indexOf(titleSubstring) >= 0)
32             return startElement;
33
34         for (var i = 0; i < startElement.childrenCount; i++) {
35             var found = findByAccessibleTitleSubstring(startElement.childAtIndex(i), titleSubstring);
36             if (found)
37                 return found;
38         }
39
40         return null;
41     }
42
43     function runTest()
44     {
45         if (window.accessibilityController) {
46             window.root = accessibilityController.rootElement;
47
48             // Initially, the iframe should not be loaded, so we shouldn't be able to find this button.
49             shouldBeFalse("findByAccessibleTitleSubstring(root, 'InnerButton') != null");
50
51             window.accessibilityController.addNotificationListener(function (target, notification) {
52                 // Ignore this notification if it's not on the iframe or not about the iframe being loaded.
53
54                 var targetString = platformValueForW3CName(target);
55                 if (targetString.indexOf("InnerFrame") == -1
56                     || (notification != "AXLoadComplete" && notification != "AXLayoutComplete"))
57                     return;
58
59                 debug("Got notification on iframe.");
60
61                 // Check that the button within the iframe is now reachable from the root.
62                 shouldBeTrue("findByAccessibleTitleSubstring(root, 'InnerButton') != null");
63                 accessibilityController.removeNotificationListener();
64                 finishJSTest();
65             });
66         }
67
68         window.iframeElement = document.getElementById("iframe");
69
70         // Load content into the iframe. This will trigger the event
71         // handler above, which will check that the accessibility tree
72         // was updated with new content.
73         window.iframeElement.src = "data:text/html,<body><button>InnerButton</button></body>";
74     }
75
76     window.addEventListener('load', function() {
77         setTimeout(runTest, 10);
78     }, false);
79
80 </script>
81
82 <script src="../resources/js-test-post.js"></script>
83 </body>
84 </html>