AX: Make isActionSupported cross-platform.
https://bugs.webkit.org/show_bug.cgi?id=104681

Reviewed by Chris Fleizach.

Source/WebCore:

Add UserGestureIndicator to increment() and decrement()
so that all accessibility actions are treated as
user actions, not scripted actions.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):

Source/WebKit/chromium:

Add support for press, increment, and decrement actions,
including tests to see whether they're supported on a given
object. This allows Chromium to pass three tests that were
previously skipped.

* public/WebAccessibilityObject.h:
(WebAccessibilityObject):
* src/WebAccessibilityObject.cpp:
(WebKit::WebAccessibilityObject::canDecrement):
(WebKit):
(WebKit::WebAccessibilityObject::canIncrement):
(WebKit::WebAccessibilityObject::canPress):
(WebKit::WebAccessibilityObject::increment):
(WebKit::WebAccessibilityObject::decrement):
(WebKit::WebAccessibilityObject::press):

Tools:

Replace isActionSupported, which takes a platform-specific
argument, with three cross-platform methods.

* DumpRenderTree/AccessibilityUIElement.cpp:
(isPressActionSupportedCallback):
(isIncrementActionSupportedCallback):
(isDecrementActionSupportedCallback):
(AccessibilityUIElement::getJSClass):
* DumpRenderTree/AccessibilityUIElement.h:
(AccessibilityUIElement):
* DumpRenderTree/blackberry/AccessibilityUIElementBlackBerry.cpp:
(AccessibilityUIElement::isPressActionSupported):
(AccessibilityUIElement::isIncrementActionSupported):
(AccessibilityUIElement::isDecrementActionSupported):
* DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.cpp:
(WebTestRunner::AccessibilityUIElement::AccessibilityUIElement):
(WebTestRunner::AccessibilityUIElement::isPressActionSupportedCallback):
(WebTestRunner):
(WebTestRunner::AccessibilityUIElement::isIncrementActionSupportedCallback):
(WebTestRunner::AccessibilityUIElement::isDecrementActionSupportedCallback):
(WebTestRunner::AccessibilityUIElement::incrementCallback):
(WebTestRunner::AccessibilityUIElement::decrementCallback):
(WebTestRunner::AccessibilityUIElement::pressCallback):
* DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.h:
(AccessibilityUIElement):
* DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
(AccessibilityUIElement::isPressActionSupported):
(AccessibilityUIElement::isIncrementActionSupported):
(AccessibilityUIElement::isDecrementActionSupported):
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::isPressActionSupported):
(AccessibilityUIElement::isIncrementActionSupported):
(AccessibilityUIElement::isDecrementActionSupported):
* DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::isPressActionSupported):
(AccessibilityUIElement::isIncrementActionSupported):
(AccessibilityUIElement::isDecrementActionSupported):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::isPressActionSupported):
(WTR::AccessibilityUIElement::isIncrementActionSupported):
(WTR::AccessibilityUIElement::isDecrementActionSupported):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
(AccessibilityUIElement):
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::isPressActionSupported):
(WTR):
(WTR::AccessibilityUIElement::isIncrementActionSupported):
(WTR::AccessibilityUIElement::isDecrementActionSupported):

LayoutTests:

Refactor tests that called isActionSupported to call new
cross-platform variants, and unskip three test for Chromium
as a result.

* accessibility/aria-link-supports-press.html:
* accessibility/button-press-action.html:
* accessibility/onclick-handlers.html:
* platform/chromium/TestExpectations:
* platform/chromium/accessibility/aria-popup-expected.txt: Removed.
* platform/mac/accessibility/aria-popup-expected.txt:
* platform/mac/accessibility/aria-popup.html:
* platform/mac/accessibility/slider-supports-actions.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Reachable event listeners on image elements can be collected in a minor DOM GC
https://bugs.webkit.org/show_bug.cgi?id=104734

Reviewed by Kenneth Russell.

A major DOM GC treats image elements specially. In
V8GCController::opaqueRootForGC(), a major DOM GC puts image elements
that have pending activities into the same object group of their document.
This guarantees that image elements that have pending activities
are not garbage collected in the major DOM GC.

This patch adds the same special handling to a minor DOM GC to guarantee
the same thing in the minor DOM GC too.

In long-term, we might want to remove the special handling by making
image elements active DOM nodes.

Test: Manually confirmed that all characters in
http://alteredqualia.com/three/examples/webgl_animation_skinning_tf2.html
are rendered correctly.

* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::opaqueRootForGC):
(WebCore::gcTree):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137415 268f45cc-cd09-0410-ab3c-d52691b4dbfc