Commit 2000b5b1 authored by Rakina Zata Amni's avatar Rakina Zata Amni Committed by Commit Bot

DL: Fix flaky getFullAXTree & wrongly updated accessibility tests

A devtoools display locking a11y test was marked as failing in MSAN bots
and is also flaky when tested locally, this CL updates that test and
fixes the cause of the failure (getFullAXTree might be called when
style/layout is dirty, which caused failing DCHECKs).

Some other display locking a11y tests were not updated correctly, and is
updated in this CL as well.

Bug: 996625
Change-Id: I32eac1385c54eb07b1e6dab800620a2485158437
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1846618
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: default avatarvmpstr <vmpstr@chromium.org>
Reviewed-by: default avatarAlice Boxhall <aboxhall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706834}
parent 9594ae84
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
@BLINK-ALLOW:offscreen @BLINK-ALLOW:offscreen
--> -->
<div> <div>
<div id="locked" rendersubtree="invisible"> <div id="locked" rendersubtree="invisible skip-viewport-activation">
<div>child</div> <div>child</div>
<div id="nested" rendersubtree="invisible">nested locked element!</div> <div id="nested" rendersubtree="invisible skip-viewport-activation">nested locked element!</div>
<div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div> <div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div>
</div> </div>
</div> </div>
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
@BLINK-ALLOW:offscreen @BLINK-ALLOW:offscreen
--> -->
<div> <div>
<div id="locked" rendersubtree="invisible"> <div id="locked" rendersubtree="invisible skip-viewport-activation">
<div>child</div> <div>child</div>
<div id="nested" rendersubtree="invisible">nested locked element!</div> <div id="nested" rendersubtree="invisible skip-viewport-activation">nested locked element!</div>
<div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div> <div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div>
</div> </div>
</div> </div>
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
@BLINK-ALLOW:offscreen @BLINK-ALLOW:offscreen
--> -->
<div> <div>
<div id="locked" rendersubtree="invisible skip-activation"> <div id="locked" rendersubtree="invisible skip-viewport-activation">
<div>child</div> <div>child</div>
<div id="nested" rendersubtree="invisible skip-activation">nested locked element!</div> <div id="nested" rendersubtree="invisible skip-viewport-activation">nested locked element!</div>
<div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div> <div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div>
<!-- <!--
TODO(rakina): Make display:none, visibility:hidden, aria-hidden nodes TODO(rakina): Make display:none, visibility:hidden, aria-hidden nodes
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
@BLINK-ALLOW:offscreen @BLINK-ALLOW:offscreen
--> -->
<div> <div>
<div id="locked" rendersubtree="invisible"> <div id="locked" rendersubtree="invisible skip-viewport-activation">
<div>child</div> <div>child</div>
<div id="nested" rendersubtree="invisible">nested locked element!</div> <div id="nested" rendersubtree="invisible skip-viewport-activation">nested locked element!</div>
<div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div> <div id="nonActivatable" rendersubtree="invisible skip-activation">nested non activatable locked element</div>
<!-- <!--
TODO(rakina): Make display:none, visibility:hidden, aria-hidden nodes TODO(rakina): Make display:none, visibility:hidden, aria-hidden nodes
......
...@@ -5,6 +5,6 @@ ...@@ -5,6 +5,6 @@
<div id="locked" rendersubtree="invisible skip-activation"> <div id="locked" rendersubtree="invisible skip-activation">
<div>child</div> <div>child</div>
<div id="nested" rendersubtree="invisible skip-activation">nested locked element!</div> <div id="nested" rendersubtree="invisible skip-activation">nested locked element!</div>
<div id="activatable" rendersubtree="invisible skip-activation">non activatable locked element</div> <div id="activatable" rendersubtree="invisible skip-viewport-activation">activatable locked element</div>
</div> </div>
</div> </div>
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "third_party/blink/renderer/core/dom/flat_tree_traversal.h" #include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
#include "third_party/blink/renderer/core/dom/node.h" #include "third_party/blink/renderer/core/dom/node.h"
#include "third_party/blink/renderer/core/dom/node_list.h" #include "third_party/blink/renderer/core/dom/node_list.h"
#include "third_party/blink/renderer/core/dom/text.h"
#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/inspector/identifiers_factory.h" #include "third_party/blink/renderer/core/inspector/identifiers_factory.h"
...@@ -724,6 +725,8 @@ Response InspectorAccessibilityAgent::getFullAXTree( ...@@ -724,6 +725,8 @@ Response InspectorAccessibilityAgent::getFullAXTree(
Document* document = inspected_frames_->Root()->GetDocument(); Document* document = inspected_frames_->Root()->GetDocument();
if (!document) if (!document)
return Response::Error("No document."); return Response::Error("No document.");
if (document->View()->NeedsLayout() || document->NeedsLayoutTreeUpdate())
document->UpdateStyleAndLayout();
*nodes = std::make_unique<protocol::Array<protocol::Accessibility::AXNode>>(); *nodes = std::make_unique<protocol::Array<protocol::Accessibility::AXNode>>();
AXContext ax_context(*document); AXContext ax_context(*document);
AXObjectCacheImpl& cache = ToAXObjectCacheImpl(ax_context.GetAXObjectCache()); AXObjectCacheImpl& cache = ToAXObjectCacheImpl(ax_context.GetAXObjectCache());
......
...@@ -260,9 +260,6 @@ crbug.com/1004650 http/tests/security/contentSecurityPolicy/frame-src-cross-orig ...@@ -260,9 +260,6 @@ crbug.com/1004650 http/tests/security/contentSecurityPolicy/frame-src-cross-orig
# Display locking failures # Display locking failures
# MSAN failure
crbug.com/996625 inspector-protocol/accessibility/accessibility-getFullAXTree-display-locked.js [ Skip ]
crbug.com/849459 fragmentation/repeating-thead-under-repeating-thead.html [ Failure ] crbug.com/849459 fragmentation/repeating-thead-under-repeating-thead.html [ Failure ]
# These tests are no longer applicable in BlinkGenPropertyTree mode. # These tests are no longer applicable in BlinkGenPropertyTree mode.
......
(async function(testRunner) { (async function(testRunner) {
var {page, session, dp} = await testRunner.startHTML(` var {page, session, dp} = await testRunner.startHTML(`
<div id='activatable' rendersubtree='invisible-activatable'> <div id='activatable' rendersubtree='invisible skip-viewport-activation'>
locked locked
<div id='child'> <div id='child'>
child child
<div id='grandChild'>grandChild</div> <div id='grandChild'>grandChild</div>
</div> </div>
<div id='invisible' style='display:none'>invisible</div> <div id='invisible' style='display:none'>invisible</div>
<div id='nested' rendersubtree='invisible-activatable'>nested</div> <div id='nested' rendersubtree='invisible skip-viewport-activation'>nested</div>
text text
</div> </div>
<div id='nonActivatable' rendersubtree='invisible'>nonActivatable text</div> <div id='nonActivatable' rendersubtree='invisible skip-activation'>nonActivatable text</div>
<div id='normal'>normal text</div> <div id='normal'>normal text</div>
<script>
activatable.getBoundingClientRect(); // Force layout
</script>
`, 'Tests accessibility values of display locked nodes'); `, 'Tests accessibility values of display locked nodes');
const dumpAccessibilityNodesFromList = const dumpAccessibilityNodesFromList =
(await testRunner.loadScript('../resources/accessibility-dumpAccessibilityNodesFromList.js'))(testRunner, session); (await testRunner.loadScript('../resources/accessibility-dumpAccessibilityNodesFromList.js'))(testRunner, session);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment