Title: [261714] trunk/Source
Revision
261714
Author
dba...@webkit.org
Date
2020-05-14 15:29:28 -0700 (Thu, 14 May 2020)

Log Message

[iOS] Remove dead dictation code
https://bugs.webkit.org/show_bug.cgi?id=211871

Reviewed by Wenson Hsieh.

Source/WebKit:

UIKit has long removed all callers that would call -nextUnperturbedDictationResultBoundaryFromPosition
and -previousUnperturbedDictationResultBoundaryFromPosition. So, remove the implementations.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView previousUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
(-[WKContentView nextUnperturbedDictationResultBoundaryFromPosition:]): Deleted.

Source/WebKitLegacy/ios:

* DefaultDelegates/WebDefaultUIKitDelegate.m:
(-[WebDefaultUIKitDelegate isUnperturbedDictationResultMarker:]): Deleted.
* WebCoreSupport/WebFrameIOS.h:
* WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame previousUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
(-[WebFrame nextUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
* WebView/WebUIKitDelegate.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (261713 => 261714)


--- trunk/Source/WebKit/ChangeLog	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKit/ChangeLog	2020-05-14 22:29:28 UTC (rev 261714)
@@ -1,3 +1,17 @@
+2020-05-14  Daniel Bates  <daba...@apple.com>
+
+        [iOS] Remove dead dictation code
+        https://bugs.webkit.org/show_bug.cgi?id=211871
+
+        Reviewed by Wenson Hsieh.
+
+        UIKit has long removed all callers that would call -nextUnperturbedDictationResultBoundaryFromPosition
+        and -previousUnperturbedDictationResultBoundaryFromPosition. So, remove the implementations.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView previousUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
+        (-[WKContentView nextUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
+
 2020-05-14  Brady Eidson  <beid...@apple.com>
 
         Crash in PDFPlugin::ensureDataBufferLength

Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (261713 => 261714)


--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2020-05-14 22:29:28 UTC (rev 261714)
@@ -5579,18 +5579,6 @@
     return nil;
 }
 
-// Returns the dictation result boundaries from position so that text that was not dictated can be excluded from logging.
-// If these are not implemented, no text will be logged.
-- (UITextPosition *)previousUnperturbedDictationResultBoundaryFromPosition:(UITextPosition *)position
-{
-    return nil;
-}
-
-- (UITextPosition *)nextUnperturbedDictationResultBoundaryFromPosition:(UITextPosition *)position
-{
-    return nil;
-}
-
 // The can all be (and have been) trivially implemented in terms of UITextInput.  Deprecate and remove.
 - (void)moveBackward:(unsigned)count
 {

Modified: trunk/Source/WebKitLegacy/ios/ChangeLog (261713 => 261714)


--- trunk/Source/WebKitLegacy/ios/ChangeLog	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKitLegacy/ios/ChangeLog	2020-05-14 22:29:28 UTC (rev 261714)
@@ -1,3 +1,18 @@
+2020-05-14  Daniel Bates  <daba...@apple.com>
+
+        [iOS] Remove dead dictation code
+        https://bugs.webkit.org/show_bug.cgi?id=211871
+
+        Reviewed by Wenson Hsieh.
+
+        * DefaultDelegates/WebDefaultUIKitDelegate.m:
+        (-[WebDefaultUIKitDelegate isUnperturbedDictationResultMarker:]): Deleted.
+        * WebCoreSupport/WebFrameIOS.h:
+        * WebCoreSupport/WebFrameIOS.mm:
+        (-[WebFrame previousUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
+        (-[WebFrame nextUnperturbedDictationResultBoundaryFromPosition:]): Deleted.
+        * WebView/WebUIKitDelegate.h:
+
 2020-05-10  Tim Horton  <timothy_hor...@apple.com>
 
         Clicking a tel:// link on iPad with a trackpad presents different UI than tapping on it

Modified: trunk/Source/WebKitLegacy/ios/DefaultDelegates/WebDefaultUIKitDelegate.m (261713 => 261714)


--- trunk/Source/WebKitLegacy/ios/DefaultDelegates/WebDefaultUIKitDelegate.m	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKitLegacy/ios/DefaultDelegates/WebDefaultUIKitDelegate.m	2020-05-14 22:29:28 UTC (rev 261714)
@@ -288,11 +288,6 @@
     return 0;
 }
 
-- (BOOL)isUnperturbedDictationResultMarker:(id)metadataForMarker
-{
-    return NO;
-}
-
 - (void)webView:(WebView *)webView willAddPlugInView:(id)plugInView
 {
 }

Modified: trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.h (261713 => 261714)


--- trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.h	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.h	2020-05-14 22:29:28 UTC (rev 261714)
@@ -88,9 +88,6 @@
 
 - (BOOL)renderedCharactersExceed:(NSUInteger)threshold;
 
-- (WebVisiblePosition *)previousUnperturbedDictationResultBoundaryFromPosition:(WebVisiblePosition *)position;
-- (WebVisiblePosition *)nextUnperturbedDictationResultBoundaryFromPosition:(WebVisiblePosition *)position;
-
 - (CGRect)elementRectAtPoint:(CGPoint)point;
 @end
 

Modified: trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm (261713 => 261714)


--- trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm	2020-05-14 22:29:28 UTC (rev 261714)
@@ -805,112 +805,6 @@
     return frame->view()->renderedCharactersExceed(threshold);
 }
 
-// Iterates backward through the document and returns the point at which untouched dictation results end.
-- (WebVisiblePosition *)previousUnperturbedDictationResultBoundaryFromPosition:(WebVisiblePosition *)position
-{
-    VisiblePosition currentVisiblePosition = [position _visiblePosition];
-    if (currentVisiblePosition.isNull())
-        return position;
-    
-    Document& document = currentVisiblePosition.deepEquivalent().anchorNode()->document();
-
-    id uikitDelegate = [[self webView] _UIKitDelegate];
-    if (![uikitDelegate respondsToSelector:@selector(isUnperturbedDictationResultMarker:)])
-        return position;
-    
-    while (currentVisiblePosition.isNotNull()) {
-        WebVisiblePosition *currentWebVisiblePosition = [WebVisiblePosition _wrapVisiblePosition:currentVisiblePosition];
-        
-        auto* currentNode = currentVisiblePosition.deepEquivalent().anchorNode();
-        unsigned lastOffset = lastOffsetForEditing(*currentNode);
-
-        VisiblePosition previousVisiblePosition = currentVisiblePosition.previous();
-        if (previousVisiblePosition.isNull())
-            return currentWebVisiblePosition;
-        
-        auto graphemeRange = Range::create(document, previousVisiblePosition.deepEquivalent(), currentVisiblePosition.deepEquivalent());
-        
-        auto markers = document.markers().markersInRange(graphemeRange, DocumentMarker::DictationResult);
-        if (markers.isEmpty())
-            return currentWebVisiblePosition;
-        
-        // FIXME: Result markers should not overlap, so there should only ever be one for a single grapheme.
-        // <rdar://problem/9810617> Too much document context is omitted when sending dictation hints because of problems with WebCore DocumentMarkers
-        // ASSERT(markers.size() == 1);
-        if (markers.size() > 1)
-            return currentWebVisiblePosition;
-
-        auto& marker = *markers[0];
-        
-        // FIXME: WebCore doesn't always update markers correctly during editing. Bail if resultMarker extends off the edge of this node, because that means it's invalid.
-        if (marker.endOffset() > lastOffset)
-            return currentWebVisiblePosition;
-        
-        if (![uikitDelegate isUnperturbedDictationResultMarker:WTF::get<RetainPtr<id>>(marker.data()).get()])
-            return currentWebVisiblePosition;
-        
-        if (marker.startOffset() > 0)
-            return [WebVisiblePosition _wrapVisiblePosition:VisiblePosition(createLegacyEditingPosition(currentNode, marker.startOffset()))];
-        
-        currentVisiblePosition = VisiblePosition(createLegacyEditingPosition(currentNode, 0));
-    }
-    
-    return position;
-}
-
-// Iterates forward through the document and returns the point at which untouched dictation results end.
-- (WebVisiblePosition *)nextUnperturbedDictationResultBoundaryFromPosition:(WebVisiblePosition *)position
-{
-    VisiblePosition currentVisiblePosition = [position _visiblePosition];
-    if (currentVisiblePosition.isNull())
-        return position;
-    
-    Document& document = currentVisiblePosition.deepEquivalent().anchorNode()->document();
-    
-    id uikitDelegate = [[self webView] _UIKitDelegate];
-    if (![uikitDelegate respondsToSelector:@selector(isUnperturbedDictationResultMarker:)])
-        return position;
-    
-    while (currentVisiblePosition.isNotNull()) {
-        WebVisiblePosition *currentWebVisiblePosition = [WebVisiblePosition _wrapVisiblePosition:currentVisiblePosition];
-        
-        auto* currentNode = currentVisiblePosition.deepEquivalent().anchorNode();
-        unsigned lastOffset = lastOffsetForEditing(*currentNode);
-
-        VisiblePosition nextVisiblePosition = currentVisiblePosition.next();
-        if (nextVisiblePosition.isNull())
-            return currentWebVisiblePosition;
-        
-        auto graphemeRange = Range::create(document, currentVisiblePosition.deepEquivalent(), nextVisiblePosition.deepEquivalent());
-        
-        auto markers = document.markers().markersInRange(graphemeRange, DocumentMarker::DictationResult);
-        if (markers.isEmpty())
-            return currentWebVisiblePosition;
-        
-        // FIXME: Result markers should not overlap, so there should only ever be one for a single grapheme.
-        // <rdar://problem/9810617> Too much document context is omitted when sending dictation hints because of problems with WebCore DocumentMarkers
-        //ASSERT(markers.size() == 1);
-        if (markers.size() > 1)
-            return currentWebVisiblePosition;
-
-        auto& marker = *markers[0];
-
-        // FIXME: WebCore doesn't always update markers correctly during editing. Bail if resultMarker extends off the edge of this node, because that means it's invalid.
-        if (marker.endOffset() > lastOffset)
-            return currentWebVisiblePosition;
-        
-        if (![uikitDelegate isUnperturbedDictationResultMarker:WTF::get<RetainPtr<id>>(marker.data()).get()])
-            return currentWebVisiblePosition;
-        
-        if (marker.endOffset() <= static_cast<unsigned>(lastOffset))
-            return [WebVisiblePosition _wrapVisiblePosition:VisiblePosition(createLegacyEditingPosition(currentNode, marker.endOffset()))];
-        
-        currentVisiblePosition = VisiblePosition(createLegacyEditingPosition(currentNode, lastOffset));
-    }
-    
-    return position;
-}
-
 - (CGRect)elementRectAtPoint:(CGPoint)point
 {
     Frame *frame = [self coreFrame];

Modified: trunk/Source/WebKitLegacy/ios/WebView/WebUIKitDelegate.h (261713 => 261714)


--- trunk/Source/WebKitLegacy/ios/WebView/WebUIKitDelegate.h	2020-05-14 22:28:10 UTC (rev 261713)
+++ trunk/Source/WebKitLegacy/ios/WebView/WebUIKitDelegate.h	2020-05-14 22:29:28 UTC (rev 261714)
@@ -132,7 +132,6 @@
 - (int)deviceOrientation;
 #endif
 
-- (BOOL)isUnperturbedDictationResultMarker:(id)metadataForMarker;
 - (void)webView:(WebView *)webView addMessageToConsole:(NSDictionary *)message withSource:(NSString *)source;
 @end
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to