Title: [163899] trunk
Revision
163899
Author
[email protected]
Date
2014-02-11 12:44:03 -0800 (Tue, 11 Feb 2014)

Log Message

AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
https://bugs.webkit.org/show_bug.cgi?id=128397

Reviewed by Chris Fleizach.

Source/WebCore:

Added text replacement support for the AXSelectTextWithCriteria parameterized attribute.

No new test. Updated platform/mac/accessibility/select-text.html to test the added functionality.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):

Tools:

Updated testing methods to accept a replacement string. This enables us to test text
replacement support for the AXSelectTextWithCriteria parameterized attribute.

* DumpRenderTree/AccessibilityUIElement.cpp:
(selectTextWithCriteriaCallback):
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::selectTextWithCriteria):
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::selectTextWithCriteria):
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(selectTextParameterizedAttributeForCriteria):
(AccessibilityUIElement::selectTextWithCriteria):
* DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::selectTextParameterizedAttributeForCriteria):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

LayoutTests:

Updated test and expectations to handle text replacement.

* platform/mac/accessibility/select-text-expected.txt:
* platform/mac/accessibility/select-text.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (163898 => 163899)


--- trunk/LayoutTests/ChangeLog	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/LayoutTests/ChangeLog	2014-02-11 20:44:03 UTC (rev 163899)
@@ -1,3 +1,15 @@
+2014-02-11  Samuel White  <[email protected]>
+
+        AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
+        https://bugs.webkit.org/show_bug.cgi?id=128397
+
+        Reviewed by Chris Fleizach.
+
+        Updated test and expectations to handle text replacement.
+
+        * platform/mac/accessibility/select-text-expected.txt:
+        * platform/mac/accessibility/select-text.html:
+
 2014-02-11  Brady Eidson  <[email protected]>
 
         IndexedDB tests on some bots are flakey (timeouts)

Modified: trunk/LayoutTests/platform/mac/accessibility/select-text-expected.txt (163898 => 163899)


--- trunk/LayoutTests/platform/mac/accessibility/select-text-expected.txt	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/LayoutTests/platform/mac/accessibility/select-text-expected.txt	2014-02-11 20:44:03 UTC (rev 163899)
@@ -1,6 +1,6 @@
-The quick brown fox jumps over the lazy dog.
+The slow brown cat jumps over the lazy dog.
 
-This tests the ability to select text with respect to selection.
+This tests the ability to select and replace text with respect to selection.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
@@ -17,6 +17,10 @@
 PASS selection is 'dog'
 PASS result is 'fox'
 PASS selection is 'fox'
+PASS result is 'quick'
+PASS selection is 'slow'
+PASS result is 'fox'
+PASS selection is 'cat'
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/platform/mac/accessibility/select-text.html (163898 => 163899)


--- trunk/LayoutTests/platform/mac/accessibility/select-text.html	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/LayoutTests/platform/mac/accessibility/select-text.html	2014-02-11 20:44:03 UTC (rev 163899)
@@ -6,13 +6,13 @@
 </head>
 <body>
 
-<p id="text">The quick brown fox <span id="target">jumps</span> over the lazy dog.</p>
+<p contenteditable="true" id="text">The quick brown fox <span id="target">jumps</span> over the lazy dog.</p>
 
 <p id="description"></p>
 <div id="console"></div>
 
 <script>
-    description("This tests the ability to select text with respect to selection.");
+    description("This tests the ability to select and replace text with respect to selection.");
     
     function selectedText() {
         return window.getSelection().toString();
@@ -74,6 +74,20 @@
         shouldBe("result", "'fox'");
         selection = selectedText();
         shouldBe("selection", "'fox'");
+        
+        // Select and replace text closest to selection (single search string).
+        selectElementText(target);
+        result = text.selectTextWithCriteria("AXSelectTextAmbiguityResolutionClosestToSelection", "quick", "slow");
+        shouldBe("result", "'quick'");
+        selection = selectedText();
+        shouldBe("selection", "'slow'");
+        
+        // Select and replace text closest to selection (multiple search strings).
+        selectElementText(target);
+        result = text.selectTextWithCriteria("AXSelectTextAmbiguityResolutionClosestToSelection", ["dog", "fox"], "cat");
+        shouldBe("result", "'fox'");
+        selection = selectedText();
+        shouldBe("selection", "'cat'");
     }
 </script>
 

Modified: trunk/Source/WebCore/ChangeLog (163898 => 163899)


--- trunk/Source/WebCore/ChangeLog	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Source/WebCore/ChangeLog	2014-02-11 20:44:03 UTC (rev 163899)
@@ -1,3 +1,21 @@
+2014-02-11  Samuel White  <[email protected]>
+
+        AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
+        https://bugs.webkit.org/show_bug.cgi?id=128397
+
+        Reviewed by Chris Fleizach.
+
+        Added text replacement support for the AXSelectTextWithCriteria parameterized attribute.
+
+        No new test. Updated platform/mac/accessibility/select-text.html to test the added functionality.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::selectText):
+        * accessibility/AccessibilityObject.h:
+        (WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
+
 2014-02-11  Roger Fong  <[email protected]>
 
         [Windows] Unreviewed. Speculative test fix.

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (163898 => 163899)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2014-02-11 20:44:03 UTC (rev 163899)
@@ -601,7 +601,9 @@
     
     AccessibilitySelectTextActivity& activity = criteria->activity;
     AccessibilitySelectTextAmbiguityResolution& ambiguityResolution = criteria->ambiguityResolution;
+    String& replacementString = criteria->replacementString;
     Vector<String>& searchStrings = criteria->searchStrings;
+    
     RefPtr<Range> selectedStringRange = selectionRange();
     
     RefPtr<Range> closestAfterStringRange = nullptr;
@@ -615,9 +617,15 @@
     
     // Determine which candidate is closest to the selection and perform the activity.
     if (RefPtr<Range> closestStringRange = rangeClosestToRange(selectedStringRange.get(), closestAfterStringRange, closestBeforeStringRange)) {
-        if (activity == FindAndSelectActivity) {
-            frame->selection().setSelectedRange(closestStringRange.get(), DOWNSTREAM, true);
-            return closestStringRange->text();
+        String closestString = closestStringRange->text();
+        if (frame->selection().setSelectedRange(closestStringRange.get(), DOWNSTREAM, true)) {
+            switch (activity) {
+            case FindAndReplaceActivity:
+                frame->editor().replaceSelectionWithText(replacementString, true, true);
+                FALLTHROUGH;
+            case FindAndSelectActivity:
+                return closestString;
+            }
         }
     }
     

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (163898 => 163899)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.h	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h	2014-02-11 20:44:03 UTC (rev 163899)
@@ -387,6 +387,7 @@
 };
 
 enum AccessibilitySelectTextActivity {
+    FindAndReplaceActivity,
     FindAndSelectActivity
 };
 
@@ -399,11 +400,13 @@
 struct AccessibilitySelectTextCriteria {
     AccessibilitySelectTextActivity activity;
     AccessibilitySelectTextAmbiguityResolution ambiguityResolution;
+    String replacementString;
     Vector<String> searchStrings;
     
-    AccessibilitySelectTextCriteria(AccessibilitySelectTextActivity activity, AccessibilitySelectTextAmbiguityResolution ambiguityResolution)
+    AccessibilitySelectTextCriteria(AccessibilitySelectTextActivity activity, AccessibilitySelectTextAmbiguityResolution ambiguityResolution, const String& replacementString)
         : activity(activity)
         , ambiguityResolution(ambiguityResolution)
+        , replacementString(replacementString)
     { }
 };
 

Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (163898 => 163899)


--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2014-02-11 20:44:03 UTC (rev 163899)
@@ -376,6 +376,10 @@
 #define NSAccessibilitySelectTextActivity @"AXSelectTextActivity"
 #endif
 
+#ifndef NSAccessibilitySelectTextActivityFindAndReplace
+#define NSAccessibilitySelectTextActivityFindAndReplace @"AXSelectTextActivityFindAndReplace"
+#endif
+
 #ifndef NSAccessibilitySelectTextActivityFindAndSelect
 #define NSAccessibilitySelectTextActivityFindAndSelect @"AXSelectTextActivityFindAndSelect"
 #endif
@@ -396,6 +400,10 @@
 #define NSAccessibilitySelectTextAmbiguityResolutionClosestToSelection @"AXSelectTextAmbiguityResolutionClosestToSelection"
 #endif
 
+#ifndef NSAccessibilitySelectTextReplacementString
+#define NSAccessibilitySelectTextReplacementString @"AXSelectTextReplacementString"
+#endif
+
 #ifndef NSAccessibilitySelectTextSearchStrings
 #define NSAccessibilitySelectTextSearchStrings @"AXSelectTextSearchStrings"
 #endif
@@ -619,10 +627,16 @@
 
 static AccessibilitySelectTextCriteria accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute(const NSDictionary *parameterizedAttribute)
 {
+    NSString *activityParameter = [parameterizedAttribute objectForKey:NSAccessibilitySelectTextActivity];
     NSString *ambiguityResolutionParameter = [parameterizedAttribute objectForKey:NSAccessibilitySelectTextAmbiguityResolution];
+    NSString *replacementStringParameter = [parameterizedAttribute objectForKey:NSAccessibilitySelectTextReplacementString];
     NSArray *searchStringsParameter = [parameterizedAttribute objectForKey:NSAccessibilitySelectTextSearchStrings];
     
     AccessibilitySelectTextActivity activity = FindAndSelectActivity;
+    if ([activityParameter isKindOfClass:[NSString class]]) {
+        if ([activityParameter isEqualToString:NSAccessibilitySelectTextActivityFindAndReplace])
+            activity = FindAndReplaceActivity;
+    }
     
     AccessibilitySelectTextAmbiguityResolution ambiguityResolution = ClosestToSelectionAmbiguityResolution;
     if ([ambiguityResolutionParameter isKindOfClass:[NSString class]]) {
@@ -632,8 +646,12 @@
             ambiguityResolution = ClosestBeforeSelectionAmbiguityResolution;
     }
     
-    AccessibilitySelectTextCriteria criteria(activity, ambiguityResolution);
+    String replacementString;
+    if ([replacementStringParameter isKindOfClass:[NSString class]])
+        replacementString = replacementStringParameter;
     
+    AccessibilitySelectTextCriteria criteria(activity, ambiguityResolution, replacementString);
+    
     if ([searchStringsParameter isKindOfClass:[NSArray class]]) {
         size_t searchStringsCount = static_cast<size_t>([searchStringsParameter count]);
         criteria.searchStrings.reserveInitialCapacity(searchStringsCount);

Modified: trunk/Tools/ChangeLog (163898 => 163899)


--- trunk/Tools/ChangeLog	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/ChangeLog	2014-02-11 20:44:03 UTC (rev 163899)
@@ -1,3 +1,37 @@
+2014-02-11  Samuel White  <[email protected]>
+
+        AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
+        https://bugs.webkit.org/show_bug.cgi?id=128397
+
+        Reviewed by Chris Fleizach.
+
+        Updated testing methods to accept a replacement string. This enables us to test text
+        replacement support for the AXSelectTextWithCriteria parameterized attribute.
+
+        * DumpRenderTree/AccessibilityUIElement.cpp:
+        (selectTextWithCriteriaCallback):
+        * DumpRenderTree/AccessibilityUIElement.h:
+        * DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
+        (AccessibilityUIElement::selectTextWithCriteria):
+        * DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
+        (AccessibilityUIElement::selectTextWithCriteria):
+        * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
+        (selectTextParameterizedAttributeForCriteria):
+        (AccessibilityUIElement::selectTextWithCriteria):
+        * DumpRenderTree/win/AccessibilityUIElementWin.cpp:
+        (AccessibilityUIElement::selectTextWithCriteria):
+        * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
+        (WTR::AccessibilityUIElement::selectTextWithCriteria):
+        * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
+        * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+        (WTR::AccessibilityUIElement::selectTextWithCriteria):
+        * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
+        (WTR::AccessibilityUIElement::selectTextWithCriteria):
+        * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
+        (WTR::selectTextParameterizedAttributeForCriteria):
+        (WTR::AccessibilityUIElement::selectTextWithCriteria):
+
 2014-02-11  David Kilzer  <[email protected]>
 
         [ASan] Fix build failures in Tools due to missing $(inherited) values

Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp (163898 => 163899)


--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp	2014-02-11 20:44:03 UTC (rev 163899)
@@ -252,13 +252,18 @@
 
 static JSValueRef selectTextWithCriteriaCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
 {
-    if (argumentCount != 2)
+    if (argumentCount < 2 || argumentCount > 3)
         return JSValueMakeUndefined(context);
     
     JSRetainPtr<JSStringRef> ambiguityResolution(Adopt, JSValueToStringCopy(context, arguments[0], exception));
     JSValueRef searchStrings = arguments[1];
+    JSStringRef replacementString = nullptr;
+    if (argumentCount == 3)
+        replacementString = JSValueToStringCopy(context, arguments[2], exception);
     
-    JSRetainPtr<JSStringRef> result(Adopt, toAXElement(thisObject)->selectTextWithCriteria(context, ambiguityResolution.get(), searchStrings));
+    JSRetainPtr<JSStringRef> result(Adopt, toAXElement(thisObject)->selectTextWithCriteria(context, ambiguityResolution.get(), searchStrings, replacementString));
+    if (replacementString)
+        JSStringRelease(replacementString);
     return JSValueMakeString(context, result.get());
 }
 

Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.h (163898 => 163899)


--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.h	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.h	2014-02-11 20:44:03 UTC (rev 163899)
@@ -210,7 +210,7 @@
     bool attributedStringRangeIsMisspelled(unsigned location, unsigned length);
     unsigned uiElementCountForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly);
     AccessibilityUIElement uiElementForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly);
-    JSStringRef selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings);
+    JSStringRef selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString);
 #if PLATFORM(IOS)
     void elementsForRange(unsigned location, unsigned length, Vector<AccessibilityUIElement>& elements);
     JSStringRef stringForSelection();

Modified: trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp (163898 => 163899)


--- trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp	2014-02-11 20:44:03 UTC (rev 163899)
@@ -1209,7 +1209,7 @@
     return nullptr;
 }
 
-JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     // FIXME: implement
     return nullptr;

Modified: trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm (163898 => 163899)


--- trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm	2014-02-11 20:44:03 UTC (rev 163899)
@@ -828,7 +828,7 @@
     return 0;
 }
 
-JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     // FIXME: Implement.
     return nullptr;

Modified: trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm (163898 => 163899)


--- trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm	2014-02-11 20:44:03 UTC (rev 163899)
@@ -245,7 +245,7 @@
     return parameterizedAttribute;
 }
 
-static NSDictionary *selectTextParameterizedAttributeForCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+static NSDictionary *selectTextParameterizedAttributeForCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     NSMutableDictionary *parameterizedAttribute = [NSMutableDictionary dictionary];
     
@@ -277,6 +277,12 @@
         [parameterizedAttribute setObject:searchStringsParameter forKey:@"AXSelectTextSearchStrings"];
     }
     
+    if (replacementString) {
+        [parameterizedAttribute setObject:@"AXSelectTextActivityFindAndReplace" forKey:@"AXSelectTextActivity"];
+        [parameterizedAttribute setObject:[NSString stringWithJSStringRef:replacementString] forKey:@"AXSelectTextReplacementString"];
+    } else
+        [parameterizedAttribute setObject:@"AXSelectTextActivityFindAndSelect" forKey:@"AXSelectTextActivity"];
+    
     return parameterizedAttribute;
 }
 
@@ -1103,10 +1109,10 @@
     return nullptr;
 }
 
-JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     BEGIN_AX_OBJC_EXCEPTIONS
-    NSDictionary *parameterizedAttribute = selectTextParameterizedAttributeForCriteria(context, ambiguityResolution, searchStrings);
+    NSDictionary *parameterizedAttribute = selectTextParameterizedAttributeForCriteria(context, ambiguityResolution, searchStrings, replacementString);
     id result = [m_element accessibilityAttributeValue:@"AXSelectTextWithCriteria" forParameter:parameterizedAttribute];
     if ([result isKindOfClass:[NSString class]])
         return [result createJSStringRef];

Modified: trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp (163898 => 163899)


--- trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp	2014-02-11 20:44:03 UTC (rev 163899)
@@ -613,7 +613,7 @@
     return 0;
 }
 
-JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+JSStringRef AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     return 0;
 }

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp (163898 => 163899)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp	2014-02-11 20:44:03 UTC (rev 163899)
@@ -173,7 +173,7 @@
 bool AccessibilityUIElement::attributedStringRangeIsMisspelled(unsigned, unsigned) { return false; }
 unsigned AccessibilityUIElement::uiElementCountForSearchPredicate(JSContextRef, AccessibilityUIElement*, bool, JSValueRef, JSStringRef, bool) { return 0; }
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::uiElementForSearchPredicate(JSContextRef, AccessibilityUIElement*, bool, JSValueRef, JSStringRef, bool) { return 0; }
-JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef, JSStringRef, JSValueRef) { return nullptr; }
+JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef, JSStringRef, JSValueRef, JSStringRef) { return nullptr; }
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::cellForColumnAndRow(unsigned, unsigned) { return 0; }
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::horizontalScrollbar() const { return 0; }
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::verticalScrollbar() const { return 0; }

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h (163898 => 163899)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h	2014-02-11 20:44:03 UTC (rev 163899)
@@ -206,7 +206,7 @@
     bool attributedStringRangeIsMisspelled(unsigned location, unsigned length);
     unsigned uiElementCountForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly);
     PassRefPtr<AccessibilityUIElement> uiElementForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly);
-    JSRetainPtr<JSStringRef> selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings);
+    JSRetainPtr<JSStringRef> selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString);
 
     // Text-specific
     JSRetainPtr<JSStringRef> characterAtOffset(int offset);

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl (163898 => 163899)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl	2014-02-11 20:44:03 UTC (rev 163899)
@@ -158,7 +158,7 @@
     boolean attributedStringRangeIsMisspelled(unsigned long location, unsigned long length);
     [PassContext] unsigned int uiElementCountForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly);
     [PassContext] AccessibilityUIElement uiElementForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly);
-    [PassContext] DOMString selectTextWithCriteria(DOMString ambiguityResolution, object searchStrings);
+    [PassContext] DOMString selectTextWithCriteria(DOMString ambiguityResolution, object searchStrings, DOMString replacementString);
     void setSelectedTextRange(unsigned long location, unsigned long length);
 
     // Scroll area attributes.

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (163898 => 163899)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2014-02-11 20:44:03 UTC (rev 163899)
@@ -1308,6 +1308,12 @@
     return nullptr;
 }
 
+JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
+{
+    // FIXME: implement
+    return nullptr;
+}
+
 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfColumnHeaders()
 {
     if (!ATK_IS_TABLE(m_element.get()))
@@ -1794,12 +1800,6 @@
     return stringAtOffset(m_element, ATK_TEXT_BOUNDARY_SENTENCE_START, offset);
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
-{
-    // FIXME: implement
-    return nullptr;
-}
-
 } // namespace WTR
 
 #endif // HAVE(ACCESSIBILITY)

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm (163898 => 163899)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm	2014-02-11 20:44:03 UTC (rev 163899)
@@ -478,7 +478,7 @@
     return 0;
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     return nullptr;
 }

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm (163898 => 163899)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm	2014-02-11 20:39:02 UTC (rev 163898)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm	2014-02-11 20:44:03 UTC (rev 163899)
@@ -270,7 +270,7 @@
     return parameterizedAttribute;
 }
 
-static NSDictionary *selectTextParameterizedAttributeForCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+static NSDictionary *selectTextParameterizedAttributeForCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     NSMutableDictionary *parameterizedAttribute = [NSMutableDictionary dictionary];
     
@@ -302,6 +302,12 @@
         [parameterizedAttribute setObject:searchStringsParameter forKey:@"AXSelectTextSearchStrings"];
     }
     
+    if (replacementString) {
+        [parameterizedAttribute setObject:@"AXSelectTextActivityFindAndReplace" forKey:@"AXSelectTextActivity"];
+        [parameterizedAttribute setObject:[NSString stringWithJSStringRef:replacementString] forKey:@"AXSelectTextReplacementString"];
+    } else
+        [parameterizedAttribute setObject:@"AXSelectTextActivityFindAndSelect" forKey:@"AXSelectTextActivity"];
+    
     return parameterizedAttribute;
 }
 
@@ -1158,10 +1164,10 @@
     return nullptr;
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings)
+JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef context, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString)
 {
     BEGIN_AX_OBJC_EXCEPTIONS
-    NSDictionary *parameterizedAttribute = selectTextParameterizedAttributeForCriteria(context, ambiguityResolution, searchStrings);
+    NSDictionary *parameterizedAttribute = selectTextParameterizedAttributeForCriteria(context, ambiguityResolution, searchStrings, replacementString);
     id result = [m_element accessibilityAttributeValue:@"AXSelectTextWithCriteria" forParameter:parameterizedAttribute];
     if ([result isKindOfClass:[NSString class]])
         return [result createJSStringRef];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to