chromium/third_party/blink/web_tests/accessibility/removed-anonymous-block-child-causes-crash.html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script>

    function removeElement() {
        document.getElementById('div').removeChild(document.getElementById('div').children[2]);
    }

    function queryIsEnabledOnDescendants(accessibilityObject) {
        accessibilityObject.isEnabled

        var count = accessibilityObject.childrenCount;
        for (var i = 0; i < count; ++i)
            queryIsEnabledOnDescendants(accessibilityObject.childAtIndex(i));
    }
</script>
<script src="../resources/js-test.js"></script>
</head>
<body>

<div id="div">
  <span>
    <div>a</div>
  </span>
  <div style="float:left">a</div>
  <span title="title">b</span>
</div>

<p id="description"></p>
<div id="console"></div>

<script>
    description("In certain cases removing a descendant from an anonymous block element does not update the parent chain correctly. This can cause a crash.");

    if (window.accessibilityController) {
        // First build up full accessibility tree.
        document.body.focus();
        queryIsEnabledOnDescendants(accessibilityController.focusedElement);

        removeElement()

        // Now call isEnabled on each accessibility object.
        document.body.focus();
        queryIsEnabledOnDescendants(accessibilityController.focusedElement);
    }

</script>

</body>
</html>