Title: [286052] trunk
Revision
286052
Author
commit-qu...@webkit.org
Date
2021-11-19 01:01:37 -0800 (Fri, 19 Nov 2021)

Log Message

REGRESSION(r285859) [GTK][WPE] a number of accessibility/* tests crash on GTK and WPE
https://bugs.webkit.org/show_bug.cgi?id=233221

Patch by Arcady Goldmints-Orlov <agoldmi...@igalia.com> on 2021-11-19
Reviewed by Carlos Garcia Campos.

Tools:

Add null checks in the ATK code to ensure AccessibilityUIElement::create()
is not passed a NULL pointer.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
(WTR::AccessibilityController::focusedElement):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):

LayoutTests:

* platform/glib/TestExpectations:
* platform/glib/accessibility/add-children-pseudo-element-expected.txt:
* platform/glib/accessibility/aria-modal-text-descendants-expected.txt: Added.
* platform/glib/accessibility/table-cell-display-block-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (286051 => 286052)


--- trunk/LayoutTests/ChangeLog	2021-11-19 08:54:33 UTC (rev 286051)
+++ trunk/LayoutTests/ChangeLog	2021-11-19 09:01:37 UTC (rev 286052)
@@ -1,3 +1,15 @@
+2021-11-19  Arcady Goldmints-Orlov  <agoldmi...@igalia.com>
+
+        REGRESSION(r285859) [GTK][WPE] a number of accessibility/* tests crash on GTK and WPE
+        https://bugs.webkit.org/show_bug.cgi?id=233221
+
+        Reviewed by Carlos Garcia Campos.
+
+        * platform/glib/TestExpectations:
+        * platform/glib/accessibility/add-children-pseudo-element-expected.txt:
+        * platform/glib/accessibility/aria-modal-text-descendants-expected.txt: Added.
+        * platform/glib/accessibility/table-cell-display-block-expected.txt: Added.
+
 2021-11-18  Frédéric Wang  <fw...@igalia.com>
 
         Nullptr crash in SimplifiedBackwardsTextIterator::range() via previousSentencePosition

Modified: trunk/LayoutTests/platform/glib/TestExpectations (286051 => 286052)


--- trunk/LayoutTests/platform/glib/TestExpectations	2021-11-19 08:54:33 UTC (rev 286051)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-11-19 09:01:37 UTC (rev 286052)
@@ -2013,7 +2013,7 @@
 webkit.org/b/160248 fast/text/synthetic-bold-transformed.html [ ImageOnlyFailure ]
 webkit.org/b/160248 fast/text/trailing-word-detection.html [ Failure ]
 webkit.org/b/160249 fast/shrink-wrap/rect-shrink-wrap.html [ ImageOnlyFailure ]
-webkit.org/b/161583 accessibility/auto-fill-types.html [ Failure ]
+webkit.org/b/161583 accessibility/auto-fill-types.html [ Timeout ]
 webkit.org/b/161589 css3/masking/mask-repeat-space-padding.html [ ImageOnlyFailure ]
 webkit.org/b/162815 fast/text/variations/font-face-clamp.html [ ImageOnlyFailure ]
 webkit.org/b/162815 fast/text/variations/font-selection-properties.html [ ImageOnlyFailure ]

Modified: trunk/LayoutTests/platform/glib/accessibility/add-children-pseudo-element-expected.txt (286051 => 286052)


--- trunk/LayoutTests/platform/glib/accessibility/add-children-pseudo-element-expected.txt	2021-11-19 08:54:33 UTC (rev 286051)
+++ trunk/LayoutTests/platform/glib/accessibility/add-children-pseudo-element-expected.txt	2021-11-19 09:01:37 UTC (rev 286052)
@@ -1,4 +1,3 @@
-Language Email
 Make sure that we are updating the render block flow element's children correctly.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -5,7 +4,7 @@
 
 
 PASS element.childrenCount is 2
-PASS element.childrenCount is 1
+PASS element.childrenCount === 1
 PASS successfullyParsed is true
 
 TEST COMPLETE

Added: trunk/LayoutTests/platform/glib/accessibility/aria-modal-text-descendants-expected.txt (0 => 286052)


--- trunk/LayoutTests/platform/glib/accessibility/aria-modal-text-descendants-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/glib/accessibility/aria-modal-text-descendants-expected.txt	2021-11-19 09:01:37 UTC (rev 286052)
@@ -0,0 +1,17 @@
+This tests text descendants of modal dialog are accessible.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS backgroundAccessible() is false
+FAIL text.isIgnored should be false. Threw exception TypeError: null is not an object (evaluating 'text.isIgnored')
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Other page content with a dummy focusable element
+
+Display a dialog
+
+Just an example.
+
+text

Added: trunk/LayoutTests/platform/glib/accessibility/table-cell-display-block-expected.txt (0 => 286052)


--- trunk/LayoutTests/platform/glib/accessibility/table-cell-display-block-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/glib/accessibility/table-cell-display-block-expected.txt	2021-11-19 09:01:37 UTC (rev 286052)
@@ -0,0 +1,14 @@
+This tests that if a table cell uses display:block, the table cell will still be accessible
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS cell1a.isEqual(cell1b) is true
+PASS cell1a.role is 'AXRole: AXCell'
+PASS domCell1.style.display is 'block'
+PASS table2.role is 'AXRole: AXGroup'
+FAIL cell2.role == 'AXRole: AXCell' should be false. Threw exception TypeError: null is not an object (evaluating 'cell2.role')
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Modified: trunk/Tools/ChangeLog (286051 => 286052)


--- trunk/Tools/ChangeLog	2021-11-19 08:54:33 UTC (rev 286051)
+++ trunk/Tools/ChangeLog	2021-11-19 09:01:37 UTC (rev 286052)
@@ -1,3 +1,19 @@
+2021-11-19  Arcady Goldmints-Orlov  <agoldmi...@igalia.com>
+
+        REGRESSION(r285859) [GTK][WPE] a number of accessibility/* tests crash on GTK and WPE
+        https://bugs.webkit.org/show_bug.cgi?id=233221
+
+        Reviewed by Carlos Garcia Campos.
+
+        Add null checks in the ATK code to ensure AccessibilityUIElement::create()
+        is not passed a NULL pointer.
+
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
+        (WTR::AccessibilityController::focusedElement):
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+        (WTR::AccessibilityUIElement::getChildren):
+        (WTR::AccessibilityUIElement::getChildrenWithRange):
+
 2021-11-19  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK][a11y] Add implementation of hyperlink interface when building with ATSPI

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp (286051 => 286052)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp	2021-11-19 08:54:33 UTC (rev 286051)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp	2021-11-19 09:01:37 UTC (rev 286052)
@@ -117,6 +117,9 @@
     WKBundlePageRef page = InjectedBundle::singleton().page()->page();
     void* root = WKAccessibilityFocusedObject(page);
 
+    if (!ATK_IS_OBJECT(root))
+        return nullptr;
+
     return AccessibilityUIElement::create(static_cast<AtkObject*>(root));
 }
 

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (286051 => 286052)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2021-11-19 08:54:33 UTC (rev 286051)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2021-11-19 09:01:37 UTC (rev 286052)
@@ -745,6 +745,10 @@
     int count = childrenCount();
     for (int i = 0; i < count; i++) {
         GRefPtr<AtkObject> child = adoptGRef(atk_object_ref_accessible_child(ATK_OBJECT(m_element.get()), i));
+
+        if (!ATK_IS_OBJECT(child.get()))
+            continue;
+
         children.append(AccessibilityUIElement::create(child.get()));
     }
 }
@@ -756,6 +760,10 @@
     unsigned end = location + length;
     for (unsigned i = location; i < end; i++) {
         GRefPtr<AtkObject> child = adoptGRef(atk_object_ref_accessible_child(ATK_OBJECT(m_element.get()), i));
+
+        if (!ATK_IS_OBJECT(child.get()))
+            continue;
+
         children.append(AccessibilityUIElement::create(child.get()));
     }
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to