Changeset 47312 in webkit
- Timestamp:
- Aug 14, 2009 11:15:05 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r47308 r47312 1 2009-08-14 Jon Honeycutt <jhoneycutt@apple.com> 2 3 Add a layout test for <rdar://problem/6218721> No MSAA focus events 4 fired for Webkit nightly (20866) 5 6 https://bugs.webkit.org/show_bug.cgi?id=20866 7 8 Reviewed by Oliver Hunt. 9 10 * platform/win/Skipped: 11 Remove the blanket skipping of accessibility/, and add the individual 12 tests. 13 14 * platform/win/accessibility/focus-events-expected.txt: Added. 15 * platform/win/accessibility/focus-events.html: Added. 16 1 17 2009-08-14 Dmitry Titov <dimich@chromium.org> 2 18 -
trunk/LayoutTests/platform/win/Skipped
r47289 r47312 356 356 http/tests/xmlhttprequest/access-control-basic-non-simple-allow.html 357 357 358 # Still need to implement AccessibilityController for DumpRenderTree on Windows 359 accessibility 358 # Accessibility tests without results or with Mac-specific results. 359 accessibility/aria-describedby-on-input.html 360 accessibility/aria-disabled.html 361 accessibility/aria-hidden.html 362 accessibility/aria-label.html 363 accessibility/aria-labelledby-on-input.html 364 accessibility/aria-labelledby-stay-within.html 365 accessibility/aria-link-supports-press.html 366 accessibility/aria-readonly.html 367 accessibility/aria-roles.html 368 accessibility/aria-tables.html 369 accessibility/button-press-action.html 370 accessibility/canvas.html 371 accessibility/editable-webarea-context-menu-point.html 372 accessibility/iframe-bastardization.html 373 accessibility/ignore-spacer-elements.html 374 accessibility/image-map1.html 375 accessibility/image-map2.html 376 accessibility/img-aria-button-alt-tag.html 377 accessibility/input-image-alt.html 378 accessibility/input-slider.html 379 accessibility/internal-link-anchors2.html 380 accessibility/language-attribute.html 381 accessibility/legend.html 382 accessibility/listelements-detection.html 383 accessibility/lists.html 384 accessibility/nochildren-elements.html 385 accessibility/non-data-table-cell-title-ui-element.html 386 accessibility/non-native-image-crash.html 387 accessibility/onclick-handlers.html 388 accessibility/parent-element.html 389 accessibility/placeholder.html 390 accessibility/plugin.html 391 accessibility/radio-button-checkbox-size.html 392 accessibility/radio-button-group-members.html 393 accessibility/radio-button-title-label.html 394 accessibility/secure-textfield-title-ui.html 395 accessibility/table-attributes.html 396 accessibility/table-cell-spans.html 397 accessibility/table-cells.html 398 accessibility/table-detection.html 399 accessibility/table-modification-crash.html 400 accessibility/table-nofirstbody.html 401 accessibility/table-notbody.html 402 accessibility/table-one-cell.html 403 accessibility/table-sections.html 404 accessibility/table-with-aria-role.html 405 accessibility/table-with-rules.html 406 accessibility/textarea-insertion-point-line-number.html 407 accessibility/textarea-line-for-index.html 408 accessibility/textarea-selected-text-range.html 409 accessibility/th-as-title-ui.html 410 accessibility/transformed-element.html 411 accessibility/visible-elements.html 360 412 361 413 # No support for print-to-pdf in Windows DRT -
trunk/WebKitTools/ChangeLog
r47294 r47312 1 2009-08-14 Jon Honeycutt <jhoneycutt@apple.com> 2 3 Add a mechanism for logging MSAA focus events. 4 5 Part of <rdar://problem/6218721> No MSAA focus events fired for Webkit 6 nightly (20866) 7 8 https://bugs.webkit.org/show_bug.cgi?id=20866 9 10 Reviewed by Oliver Hunt. 11 12 * DumpRenderTree/AccessibilityController.cpp: 13 (logFocusEventsCallback): 14 Call the AccessibilityController's logFocusEvents() function. 15 (AccessibilityController::getJSClass): 16 Add a "logFocusEvents" function to the AccessibilityController's JS 17 class definition. 18 19 * DumpRenderTree/AccessibilityController.h: 20 On Windows, include windows.h, and add a member variable to hold the 21 handle to the event hook for focus events. Add a declaration for a 22 function that enables logging of focus events. 23 24 * DumpRenderTree/gtk/AccessibilityControllerGtk.cpp: 25 (AccessibilityController::logFocusEvents): 26 Stubbed. 27 28 * DumpRenderTree/mac/AccessibilityControllerMac.mm: 29 (AccessibilityController::logFocusEvents): 30 Stubbed. 31 32 * DumpRenderTree/win/AccessibilityControllerWin.cpp: 33 (AccessibilityController::AccessibilityController): 34 (AccessibilityController::~AccessibilityController): 35 If we hooked the focus event, unhook it. 36 (logFocusEventProc): 37 When we receive a focus event, get the accessible object for the event, 38 and log its name to stdout. 39 (AccessibilityController::logFocusEvents): 40 Setup the focus event hook to listen for events in the current process. 41 1 42 2009-08-14 Eric Seidel <eric@webkit.org> 2 43 -
trunk/WebKitTools/DumpRenderTree/AccessibilityController.cpp
r42056 r47312 53 53 } 54 54 55 static JSValueRef logFocusEventsCallback(JSContextRef ctx, JSObjectRef, JSObjectRef thisObject, size_t, const JSValueRef[], JSValueRef*) 56 { 57 AccessibilityController* controller = static_cast<AccessibilityController*>(JSObjectGetPrivate(thisObject)); 58 controller->logFocusEvents(); 59 return JSValueMakeUndefined(ctx); 60 } 61 55 62 JSClassRef AccessibilityController::getJSClass() 56 63 { 64 static JSStaticFunction staticFunctions[] = { 65 { "logFocusEvents", logFocusEventsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 66 { 0, 0, 0 } 67 }; 68 57 69 static JSStaticValue staticValues[] = { 58 70 { "focusedElement", getFocusedElementCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, … … 62 74 63 75 static JSClassDefinition classDefinition = { 64 0, kJSClassAttributeNone, "AccessibilityController", 0, staticValues, 0,76 0, kJSClassAttributeNone, "AccessibilityController", 0, staticValues, staticFunctions, 65 77 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 66 78 }; -
trunk/WebKitTools/DumpRenderTree/AccessibilityController.h
r35903 r47312 28 28 29 29 #include <JavaScriptCore/JSObjectRef.h> 30 #if PLATFORM(WIN) 31 #include <windows.h> 32 #endif 30 33 31 34 class AccessibilityUIElement; … … 42 45 AccessibilityUIElement focusedElement(); 43 46 47 void logFocusEvents(); 48 44 49 private: 45 50 static JSClassRef getJSClass(); 51 52 #if PLATFORM(WIN) 53 HWINEVENTHOOK m_focusEventHook; 54 #endif 46 55 }; 47 56 -
trunk/WebKitTools/DumpRenderTree/gtk/AccessibilityControllerGtk.cpp
r46952 r47312 62 62 return AccessibilityUIElement(axObject); 63 63 } 64 65 void AccessibilityController::logFocusEvents() 66 { 67 } -
trunk/WebKitTools/DumpRenderTree/mac/AccessibilityControllerMac.mm
r46340 r47312 54 54 return AccessibilityUIElement(accessibilityObject); 55 55 } 56 57 void AccessibilityController::logFocusEvents() 58 { 59 } -
trunk/WebKitTools/DumpRenderTree/win/AccessibilityControllerWin.cpp
r37587 r47312 33 33 #include <WebKit/WebKit.h> 34 34 #include <oleacc.h> 35 #include <string> 36 37 using namespace std; 35 38 36 39 AccessibilityController::AccessibilityController() 40 : m_focusEventHook(0) 37 41 { 38 42 } … … 40 44 AccessibilityController::~AccessibilityController() 41 45 { 46 if (m_focusEventHook) 47 UnhookWinEvent(m_focusEventHook); 42 48 } 43 49 … … 83 89 return rootAccessible; 84 90 } 91 92 static void CALLBACK logFocusEventProc(HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD, DWORD) 93 { 94 ASSERT_ARG(event, event == EVENT_OBJECT_FOCUS); 95 96 // Get the accessible object for this event. 97 COMPtr<IAccessible> parentObject; 98 99 VARIANT vChild; 100 VariantInit(&vChild); 101 102 HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &parentObject, &vChild); 103 ASSERT(SUCCEEDED(hr)); 104 105 // Get the name of the focused element, and log it to stdout. 106 BSTR nameBSTR; 107 hr = parentObject->get_accName(vChild, &nameBSTR); 108 ASSERT(SUCCEEDED(hr)); 109 wstring name(nameBSTR, ::SysStringLen(nameBSTR)); 110 SysFreeString(nameBSTR); 111 112 printf("Received focus event for object '%S'.\n", name.c_str()); 113 } 114 115 void AccessibilityController::logFocusEvents() 116 { 117 ASSERT(!m_focusEventHook); 118 119 // Ensure that accessibility is initialized for the WebView by querying for 120 // the root accessible object. 121 rootElement(); 122 123 m_focusEventHook = SetWinEventHook(EVENT_OBJECT_FOCUS, EVENT_OBJECT_FOCUS, GetModuleHandle(0), logFocusEventProc, GetCurrentProcessId(), 0, WINEVENT_INCONTEXT); 124 125 ASSERT(m_focusEventHook); 126 }
Note: See TracChangeset
for help on using the changeset viewer.