Changeset 170008 in webkit
- Timestamp:
- Jun 16, 2014, 8:01:06 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 2 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r170005 r170008 1 2014-06-16 Mario Sanchez Prada <mario.prada@samsung.com> 2 3 [ATK] Missing 'selection-changed' signal when navigating a combo box with keyboard 4 https://bugs.webkit.org/show_bug.cgi?id=133512 5 6 Reviewed by Chris Fleizach. 7 8 Re-implemented test for combo boxes in terms of addNotificationListener() 9 instead of using the (already deprecated) logAccessibilityEvents method, 10 and made the test cross platform (as the fix is not platform specific). 11 12 * accessibility/combo-box-collapsed-selection-changed.html: 13 Implemented based on the former gtk-only test, and made it cross-platform. 14 * accessibility/combo-box-collapsed-selection-changed-expected.txt: New. 15 * platform/gtk/accessibility/combo-box-collapsed-selection-changed.html: Removed. 16 * platform/gtk/accessibility/combo-box-collapsed-selection-changed-expected.txt: Removed. 17 18 Updated expectation for test that checks that a notification is 19 sent when navigating through a multiselection list box, now that 20 we are actually printing such a notification. 21 22 * accessibility/multiselect-list-reports-active-option-expected.txt: Updated. 23 24 Removed two expected failures from TestExpectations for tests that 25 are now passing, one for the combo box test mentioned above and 26 another one for a test that is passing as well now, after applying 27 this fix: accessibility/menu-list-sends-change-notification.html 28 29 * platform/gtk/TestExpectations: Removed two 'failure' expectations. 30 31 * platform/mac/TestExpectations: Skip accessiblity test timing out, probably because 32 those kind of notifications while navigating a combo box are not needed in the Mac. 33 1 34 2014-06-16 Frédéric Wang <fred.wang@free.fr> 2 35 -
trunk/LayoutTests/accessibility/multiselect-list-reports-active-option-expected.txt
r160095 r170008 23 23 PASS accessibleThree.isSelected is true 24 24 PASS accessibleThree.isSelectedOptionActive is true 25 List notification: AXSelectedChildrenChanged 26 List notification: AXSelectedChildrenChanged 25 27 26 28 TEST COMPLETE -
trunk/LayoutTests/platform/gtk/TestExpectations
r169940 r170008 1682 1682 webkit.org/b/113772 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html [ Failure ] 1683 1683 1684 webkit.org/b/114259 platform/gtk/accessibility/combo-box-collapsed-selection-changed.html [ Failure ]1685 1686 1684 webkit.org/b/115025 fast/events/constructors/mouse-event-constructor.html [ Failure ] 1687 1685 webkit.org/b/115025 fast/events/constructors/wheel-event-constructor.html [ Failure ] … … 1786 1784 1787 1785 webkit.org/b/125406 fast/regions/relative-in-absolute-borders-overflow.html [ ImageOnlyFailure ] 1788 1789 webkit.org/b/126521 accessibility/menu-list-sends-change-notification.html [ Failure ]1790 1786 1791 1787 webkit.org/b/126619 http/tests/media/video-auth.html [ Failure ] -
trunk/LayoutTests/platform/mac/TestExpectations
r170005 r170008 42 42 # Accessibility tests for notifications that don't exist or aren't needed on Mac OS X. 43 43 accessibility/aria-checkbox-sends-notification.html 44 accessibility/combo-box-collapsed-selection-changed.html 44 45 accessibility/children-changed-sends-notification.html 45 46 accessibility/menu-list-sends-change-notification.html -
trunk/Source/WebCore/ChangeLog
r170007 r170008 1 2014-06-16 Mario Sanchez Prada <mario.prada@samsung.com> 2 3 [ATK] Missing 'selection-changed' signal when navigating a combo box with keyboard 4 https://bugs.webkit.org/show_bug.cgi?id=133512 5 6 Reviewed by Chris Fleizach. 7 8 Make sure that AccessibilityMenuList objects update their active 9 option when it changes, which will send a platform-dependent 10 accessibility-related notification when needed. 11 12 Test: accessibility/combo-box-collapsed-selection-changed.html 13 14 * rendering/RenderMenuList.cpp: 15 (RenderMenuList::didUpdateActiveOption): Keep the out-of-bounds 16 check for the index passed but don't avoid updating the option for 17 the associated AccessibilityMenuList object if the selected list 18 item does not have a renderer, because that could be the case for 19 cases where the popup (and its elements) would be rendered in the 20 UI Process (e.g. GTK+ port uses GtkMenu and GtkMenuItem for that). 21 22 * accessibility/AccessibilityMenuList.cpp: 23 (WebCore::AccessibilityMenuList::didUpdateActiveOption): Ensure 24 that the AccessibilityMenuListPopup object for a given menu list 25 has accessibility children before updating its active option. 26 1 27 2014-06-16 Commit Queue <commit-queue@webkit.org> 2 28 -
trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp
r167024 r170008 114 114 ASSERT(childObjects[0]->isMenuListPopup()); 115 115 116 if (childObjects[0]->isMenuListPopup()) { 116 // We might be calling this method in situations where the renderers for list items 117 // associated to the menu list have not been created (e.g. they might be rendered 118 // in the UI process, as it's the case in the GTK+ port, which uses GtkMenuItem). 119 // So, we need to make sure that the accessibility popup object has some children 120 // before asking it to update its active option, or it will read invalid memory. 121 // You can reproduce the issue in the GTK+ port by removing this check and running 122 // accessibility/insert-selected-option-into-select-causes-crash.html (will crash). 123 if (childObjects[0]->isMenuListPopup() && childObjects[0]->children().size()) { 117 124 if (AccessibilityMenuListPopup* popup = toAccessibilityMenuListPopup(childObjects[0].get())) 118 125 popup->didUpdateActiveOption(optionIndex); -
trunk/Source/WebCore/rendering/RenderMenuList.cpp
r169591 r170008 437 437 return; 438 438 439 HTMLElement* listItem = selectElement().listItems()[listIndex]; 440 ASSERT(listItem); 441 if (listItem->renderer()) { 442 if (AccessibilityMenuList* menuList = toAccessibilityMenuList(document().axObjectCache()->get(this))) 439 if (AXObjectCache* cache = document().existingAXObjectCache()) { 440 if (AccessibilityMenuList* menuList = toAccessibilityMenuList(cache->get(this))) 443 441 menuList->didUpdateActiveOption(optionIndex); 444 442 } -
trunk/Tools/ChangeLog
r169997 r170008 1 2014-06-16 Mario Sanchez Prada <mario.prada@samsung.com> 2 3 [ATK] Missing 'selection-changed' signal when navigating a combo box with keyboard 4 https://bugs.webkit.org/show_bug.cgi?id=133512 5 6 Reviewed by Chris Fleizach. 7 8 Added support for connecting to AtkSelection's 'selection-changed' 9 signal, and print it out as AXSelectedChildrenChanged in the tests. 10 11 Also removed some dead code, that became useless after r169487. 12 13 * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: 14 (WTR::AccessibilityNotificationHandler::connectAccessibilityCallbacks): Updated. 15 1 16 2014-06-15 Ryuan Choi <ryuan.choi@samsung.com> 2 17 -
trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp
r169487 r170008 64 64 65 65 GSignalQuery signalQuery; 66 GUniquePtr<char> signalName;67 GUniquePtr<char> signalValue;68 66 const char* notificationName = nullptr; 69 67 Vector<JSValueRef> extraArgs; … … 72 70 73 71 if (!g_strcmp0(signalQuery.signal_name, "state-change")) { 74 signalName.reset(g_strdup_printf("state-change:%s", g_value_get_string(¶mValues[1])));75 signalValue.reset(g_strdup_printf("%d", g_value_get_boolean(¶mValues[2])));76 72 if (!g_strcmp0(g_value_get_string(¶mValues[1]), "checked")) 77 73 notificationName = "CheckedStateChanged"; … … 79 75 notificationName = "AXInvalidStatusChanged"; 80 76 } else if (!g_strcmp0(signalQuery.signal_name, "focus-event")) { 81 signalName.reset(g_strdup("focus-event"));82 signalValue.reset(g_strdup_printf("%d", g_value_get_boolean(¶mValues[1])));83 77 if (g_value_get_boolean(¶mValues[1])) 84 78 notificationName = "AXFocusedUIElementChanged"; 79 } else if (!g_strcmp0(signalQuery.signal_name, "selection-changed")) { 80 notificationName = "AXSelectedChildrenChanged"; 85 81 } else if (!g_strcmp0(signalQuery.signal_name, "children-changed")) { 86 82 const gchar* childrenChangedDetail = g_quark_to_string(signalHint->detail); 87 signalName.reset(g_strdup_printf("children-changed:%s", childrenChangedDetail));88 signalValue.reset(g_strdup_printf("%d", g_value_get_uint(¶mValues[1])));89 83 notificationName = !g_strcmp0(childrenChangedDetail, "add") ? "AXChildrenAdded" : "AXChildrenRemoved"; 90 84 } else if (!g_strcmp0(signalQuery.signal_name, "property-change")) { 91 signalName.reset(g_strdup_printf("property-change:%s", g_quark_to_string(signalHint->detail)));92 85 if (!g_strcmp0(g_quark_to_string(signalHint->detail), "accessible-value")) 93 86 notificationName = "AXValueChanged"; … … 96 89 else if (!g_strcmp0(signalQuery.signal_name, "text-caret-moved")) { 97 90 notificationName = "AXTextCaretMoved"; 98 signalName.reset(g_strdup(signalQuery.signal_name)); 99 signalValue.reset(g_strdup_printf("%d", g_value_get_int(¶mValues[1]))); 91 GUniquePtr<char> signalValue(g_strdup_printf("%d", g_value_get_int(¶mValues[1]))); 100 92 JSRetainPtr<JSStringRef> jsSignalValue(Adopt, JSStringCreateWithUTF8CString(signalValue.get())); 101 93 extraArgs.append(JSValueMakeString(jsContext, jsSignalValue.get())); 102 } else 103 signalName.reset(g_strdup(signalQuery.signal_name)); 94 } 104 95 105 96 if (!jsContext) … … 226 217 "ATK:AtkObject:visible-data-changed", 227 218 "ATK:AtkDocument:load-complete", 219 "ATK:AtkSelection:selection-changed", 228 220 "ATK:AtkText:text-caret-moved", 229 221 0
Note:
See TracChangeset
for help on using the changeset viewer.