Commit b53fffcc authored by Dominic Mazzoni's avatar Dominic Mazzoni Committed by Commit Bot

Roll back code that serialized at the CSS block level due to performance.

crrev.com/c/1062661 made it so that any time an accessibility node changes,
we re-serialize the entire CSS block it's contained in - while this fixed
some correctness issues, it introduced a performance regression that's
too significant to ignore.

This change rolls back the fix for now until we can find a way to fix it
that doesn't impact performance.

TBR=dtseng@chromium.org

Bug: 868830, 865621, 843746
Change-Id: I900a4e6ba796608974e881f091b99b0d45c09536
Reviewed-on: https://chromium-review.googlesource.com/1174851Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583182}
parent 60eb76e6
...@@ -58,8 +58,10 @@ class AccessibilityLineLayoutBrowserTest : public ContentBrowserTest { ...@@ -58,8 +58,10 @@ class AccessibilityLineLayoutBrowserTest : public ContentBrowserTest {
} }
}; };
// http://crbug.com/868830 - the patch that enabled this test to pass
// caused a performance regression.
IN_PROC_BROWSER_TEST_F(AccessibilityLineLayoutBrowserTest, IN_PROC_BROWSER_TEST_F(AccessibilityLineLayoutBrowserTest,
WholeBlockIsUpdated) { DISABLED_WholeBlockIsUpdated) {
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
AccessibilityNotificationWaiter waiter(shell()->web_contents(), AccessibilityNotificationWaiter waiter(shell()->web_contents(),
......
...@@ -450,17 +450,6 @@ void RenderAccessibilityImpl::SendPendingAccessibilityEvents() { ...@@ -450,17 +450,6 @@ void RenderAccessibilityImpl::SendPendingAccessibilityEvents() {
bundle.events.push_back(event); bundle.events.push_back(event);
// Whenever there's a change to an inline node, it's important to
// invalidate the whole surrounding block so that we have the full
// information about the line layout.
auto block = obj;
while (!block.IsDetached() && (block.ComputedStyleDisplay() != "block" ||
block.AccessibilityIsIgnored())) {
block = block.ParentObject();
}
if (!block.IsDetached() && !block.Equals(obj))
serializer_.InvalidateSubtree(block);
// Whenever there's a change within a table, invalidate the // Whenever there's a change within a table, invalidate the
// whole table so that row and cell indexes are recomputed. // whole table so that row and cell indexes are recomputed.
ax::mojom::Role role = AXRoleFromBlink(obj.Role()); ax::mojom::Role role = AXRoleFromBlink(obj.Role());
......
EVENT_OBJECT_FOCUS on <li#option3> role=ROLE_SYSTEM_LISTITEM name="Banana" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 3 of 3 EVENT_OBJECT_FOCUS on <li#option3> role=ROLE_SYSTEM_LISTITEM name="Banana" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 3 of 3
EVENT_OBJECT_SELECTION on <li#option3> role=ROLE_SYSTEM_LISTITEM name="Banana" SELECTED,FOCUSABLE,SELECTABLE 3 of 3 EVENT_OBJECT_SELECTION on <li#option3> role=ROLE_SYSTEM_LISTITEM name="Banana" SELECTED,FOCUSABLE,SELECTABLE 3 of 3
EVENT_OBJECT_SELECTIONWITHIN on <ul#list> role=ROLE_SYSTEM_LIST IA2_STATE_VERTICAL EVENT_OBJECT_SELECTIONWITHIN on <ul#list> role=ROLE_SYSTEM_LIST IA2_STATE_VERTICAL
EVENT_OBJECT_STATECHANGE on <li#option2> role=ROLE_SYSTEM_LISTITEM name="Orange" FOCUSED,FOCUSABLE,SELECTABLE 2 of 3
EVENT_OBJECT_STATECHANGE on <li#option3> role=ROLE_SYSTEM_LISTITEM name="Banana" SELECTED,FOCUSABLE,SELECTABLE 3 of 3 EVENT_OBJECT_STATECHANGE on <li#option3> role=ROLE_SYSTEM_LISTITEM name="Banana" SELECTED,FOCUSABLE,SELECTABLE 3 of 3
IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on <input> role=ROLE_SYSTEM_COMBOBOX EXPANDED,FOCUSABLE,HASPOPUP IA2_STATE_EDITABLE,IA2_STATE_SELECTABLE_TEXT,IA2_STATE_SINGLE_LINE,IA2_STATE_SUPPORTS_AUTOCOMPLETION IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on <input> role=ROLE_SYSTEM_COMBOBOX EXPANDED,FOCUSABLE,HASPOPUP IA2_STATE_EDITABLE,IA2_STATE_SELECTABLE_TEXT,IA2_STATE_SINGLE_LINE,IA2_STATE_SUPPORTS_AUTOCOMPLETION
\ No newline at end of file
EVENT_OBJECT_FOCUS on <option> role=ROLE_SYSTEM_LISTITEM name="Orange" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 2 of 3 EVENT_OBJECT_FOCUS on <option> role=ROLE_SYSTEM_LISTITEM name="Orange" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 2 of 3
EVENT_OBJECT_SELECTION on <option> role=ROLE_SYSTEM_LISTITEM name="Orange" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 2 of 3 EVENT_OBJECT_SELECTION on <option> role=ROLE_SYSTEM_LISTITEM name="Orange" SELECTED,FOCUSABLE,SELECTABLE 2 of 3
EVENT_OBJECT_SELECTIONWITHIN on <select> role=ROLE_SYSTEM_LIST FOCUSABLE IA2_STATE_VERTICAL EVENT_OBJECT_SELECTIONWITHIN on <select> role=ROLE_SYSTEM_LIST FOCUSABLE IA2_STATE_VERTICAL
EVENT_OBJECT_STATECHANGE on <option> role=ROLE_SYSTEM_LISTITEM name="Apple" FOCUSABLE,SELECTABLE 1 of 3 EVENT_OBJECT_STATECHANGE on <option> role=ROLE_SYSTEM_LISTITEM name="Apple" FOCUSABLE,SELECTABLE 1 of 3
EVENT_OBJECT_STATECHANGE on <option> role=ROLE_SYSTEM_LISTITEM name="Orange" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 2 of 3 EVENT_OBJECT_STATECHANGE on <option> role=ROLE_SYSTEM_LISTITEM name="Orange" SELECTED,FOCUSABLE,SELECTABLE 2 of 3
IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on <select> role=ROLE_SYSTEM_LIST FOCUSABLE IA2_STATE_VERTICAL IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on <select> role=ROLE_SYSTEM_LIST FOCUSABLE IA2_STATE_VERTICAL
\ No newline at end of file
AXFocusedUIElementChanged on AXPopUpButton
AXValueChanged on AXPopUpButton AXValueChanged on AXPopUpButton
\ No newline at end of file
EVENT_OBJECT_FOCUS on <select> role=ROLE_SYSTEM_COMBOBOX FOCUSED,COLLAPSED,FOCUSABLE,HASPOPUP EVENT_OBJECT_STATECHANGE on <option> role=ROLE_SYSTEM_LISTITEM name="Apple" FOCUSED,INVISIBLE,FOCUSABLE,SELECTABLE 1 of 3
EVENT_OBJECT_STATECHANGE on <option> role=ROLE_SYSTEM_LISTITEM name="Apple" INVISIBLE,FOCUSABLE,SELECTABLE 1 of 3 EVENT_OBJECT_VALUECHANGE on <select> role=ROLE_SYSTEM_COMBOBOX COLLAPSED,FOCUSABLE,HASPOPUP
EVENT_OBJECT_VALUECHANGE on <select> role=ROLE_SYSTEM_COMBOBOX FOCUSED,COLLAPSED,FOCUSABLE,HASPOPUP \ No newline at end of file
IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on role=ROLE_SYSTEM_LIST INVISIBLE
\ No newline at end of file
AXFocusedUIElementChanged on AXMenuItem AXValue="Apple" AXFocusedUIElementChanged on AXPopUpButton AXValue="Apple"
AXMenuItemSelected on AXMenuItem AXValue="Apple" \ No newline at end of file
\ No newline at end of file
EVENT_OBJECT_FOCUS on <option> role=ROLE_SYSTEM_LISTITEM name="Apple" SELECTED,FOCUSED,FOCUSABLE,SELECTABLE 1 of 3 EVENT_OBJECT_FOCUS on <select> role=ROLE_SYSTEM_COMBOBOX value="Apple" FOCUSED,COLLAPSED,FOCUSABLE,HASPOPUP
IA2_EVENT_ACTIVE_DESCENDANT_CHANGED on role=ROLE_SYSTEM_LIST INVISIBLE \ No newline at end of file
\ No newline at end of file
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