Title: [264147] trunk/Source/WebCore
- Revision
- 264147
- Author
- [email protected]
- Date
- 2020-07-08 20:19:58 -0700 (Wed, 08 Jul 2020)
Log Message
Implementation of AXIsolatedObject::setSelectedVisiblePositionRange.
https://bugs.webkit.org/show_bug.cgi?id=214118
Reviewed by Chris Fleizach.
Covered by test: accessibility/mac/selected-visible-position-range.html.
Implemented AXIsolatedObject::setSelectedVisiblePositionRange() and
selection() by forwarding the call to the associated AX object.
* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::selection const):
(WebCore::AXIsolatedObject::setSelectedVisiblePositionRange const):
* accessibility/isolatedtree/AXIsolatedObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
call to the backing object should happen on the main thread since it
takes a VisiblePositionRange parameter.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (264146 => 264147)
--- trunk/Source/WebCore/ChangeLog 2020-07-09 03:19:09 UTC (rev 264146)
+++ trunk/Source/WebCore/ChangeLog 2020-07-09 03:19:58 UTC (rev 264147)
@@ -1,3 +1,24 @@
+2020-07-08 Andres Gonzalez <[email protected]>
+
+ Implementation of AXIsolatedObject::setSelectedVisiblePositionRange.
+ https://bugs.webkit.org/show_bug.cgi?id=214118
+
+ Reviewed by Chris Fleizach.
+
+ Covered by test: accessibility/mac/selected-visible-position-range.html.
+
+ Implemented AXIsolatedObject::setSelectedVisiblePositionRange() and
+ selection() by forwarding the call to the associated AX object.
+
+ * accessibility/isolatedtree/AXIsolatedObject.cpp:
+ (WebCore::AXIsolatedObject::selection const):
+ (WebCore::AXIsolatedObject::setSelectedVisiblePositionRange const):
+ * accessibility/isolatedtree/AXIsolatedObject.h:
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
+ call to the backing object should happen on the main thread since it
+ takes a VisiblePositionRange parameter.
+
2020-07-08 Simon Fraser <[email protected]>
Clean up time values in ScrollController
Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp (264146 => 264147)
--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp 2020-07-09 03:19:09 UTC (rev 264146)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp 2020-07-09 03:19:58 UTC (rev 264147)
@@ -1081,6 +1081,22 @@
});
}
+VisibleSelection AXIsolatedObject::selection() const
+{
+ ASSERT(isMainThread());
+
+ auto* object = associatedAXObject();
+ return object ? object->selection() : VisibleSelection();
+}
+
+void AXIsolatedObject::setSelectedVisiblePositionRange(const VisiblePositionRange& visiblePositionRange) const
+{
+ ASSERT(isMainThread());
+
+ if (auto* object = associatedAXObject())
+ object->setSelectedVisiblePositionRange(visiblePositionRange);
+}
+
bool AXIsolatedObject::isListBoxOption() const
{
ASSERT_NOT_REACHED();
Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h (264146 => 264147)
--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h 2020-07-09 03:19:09 UTC (rev 264146)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h 2020-07-09 03:19:58 UTC (rev 264147)
@@ -647,10 +647,11 @@
bool preventKeyboardDOMEventDispatch() const override;
PlainTextRange selectedTextRange() const override;
+ VisibleSelection selection() const override;
+ void setSelectedVisiblePositionRange(const VisiblePositionRange&) const override;
// TODO: Text ranges and selection.
unsigned selectionStart() const override { return 0; }
unsigned selectionEnd() const override { return 0; }
- VisibleSelection selection() const override { return VisibleSelection(); }
String selectedText() const override { return String(); }
VisiblePositionRange visiblePositionRange() const override { return VisiblePositionRange(); }
VisiblePositionRange visiblePositionRangeForLine(unsigned) const override { return VisiblePositionRange(); }
@@ -670,7 +671,6 @@
IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const override { return IntRect(); }
IntRect boundsForRange(const RefPtr<Range>) const override { return IntRect(); }
int lengthForVisiblePositionRange(const VisiblePositionRange&) const override { return 0; }
- void setSelectedVisiblePositionRange(const VisiblePositionRange&) const override { }
VisiblePosition visiblePositionForBounds(const IntRect&, AccessibilityVisiblePositionForBounds) const override { return VisiblePosition(); }
VisiblePosition visiblePositionForPoint(const IntPoint&) const override { return VisiblePosition(); }
VisiblePosition nextVisiblePosition(const VisiblePosition&) const override { return VisiblePosition(); }
Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (264146 => 264147)
--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2020-07-09 03:19:09 UTC (rev 264146)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2020-07-09 03:19:58 UTC (rev 264147)
@@ -3538,7 +3538,10 @@
// handle the command
if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) {
ASSERT(textMarkerRange);
- backingObject->setSelectedVisiblePositionRange([self visiblePositionRangeForTextMarkerRange:textMarkerRange]);
+ Accessibility::performFunctionOnMainThread([&textMarkerRange, protectedSelf = retainPtr(self)] {
+ if (auto* backingObject = protectedSelf.get().axBackingObject)
+ backingObject->setSelectedVisiblePositionRange([protectedSelf visiblePositionRangeForTextMarkerRange:textMarkerRange]);
+ });
} else if ([attributeName isEqualToString: NSAccessibilityFocusedAttribute]) {
[self baseAccessibilitySetFocus:[number boolValue]];
} else if ([attributeName isEqualToString: NSAccessibilityValueAttribute]) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes