Diff
Modified: tags/Safari-602.1.13.2/Source/WebCore/ChangeLog (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebCore/ChangeLog 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebCore/ChangeLog 2015-12-09 19:48:32 UTC (rev 193848)
@@ -1,3 +1,29 @@
+2015-12-09 Babak Shafiei <bshaf...@apple.com>
+
+ Merge r193645.
+
+ 2015-12-07 Beth Dakin <bda...@apple.com>
+
+ Hook up request and show for typing candidates in WK1
+ https://bugs.webkit.org/show_bug.cgi?id=151831
+ -and corresponding-
+ <rdar://problem/23751214>
+
+ Reviewed by Enrica Casucci.
+
+ New SPI that is needed.
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/spi/mac/NSSpellCheckerSPI.h: Added.
+
+ Request candidates for editable content whenever selection changes.
+ * editing/Editor.cpp:
+ (WebCore::Editor::respondToChangedSelection):
+
+ Implement requestCandidatesForSelection on the EditorClient.
+ * loader/EmptyClients.h:
+ * page/EditorClient.h:
+ (WebCore::EditorClient::requestCandidatesForSelection):
+
2015-12-08 Babak Shafiei <bshaf...@apple.com>
Roll out r193645.
Modified: tags/Safari-602.1.13.2/Source/WebCore/WebCore.xcodeproj/project.pbxproj (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2015-12-09 19:48:32 UTC (rev 193848)
@@ -3571,6 +3571,7 @@
933A14AA0B7D1D0900A53FFD /* DOMTextEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = 933A14A90B7D1D0900A53FFD /* DOMTextEvent.mm */; };
933A14B80B7D1D5200A53FFD /* JSTextEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933A14B60B7D1D5200A53FFD /* JSTextEvent.cpp */; };
933A14B90B7D1D5200A53FFD /* JSTextEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 933A14B70B7D1D5200A53FFD /* JSTextEvent.h */; };
+ 933C7A751C0FBC440034FB97 /* NSSpellCheckerSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 933C7A741C0FBC440034FB97 /* NSSpellCheckerSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
9343CB8112F25E510033C5EE /* TextCodecUTF8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9343CB7F12F25E510033C5EE /* TextCodecUTF8.cpp */; };
9343CB8212F25E510033C5EE /* TextCodecUTF8.h in Headers */ = {isa = PBXBuildFile; fileRef = 9343CB8012F25E510033C5EE /* TextCodecUTF8.h */; };
93442C9E0D2B335C00338FF9 /* HTMLTableRowsCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 93442C9D0D2B335C00338FF9 /* HTMLTableRowsCollection.h */; };
@@ -11095,6 +11096,7 @@
933A14A90B7D1D0900A53FFD /* DOMTextEvent.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMTextEvent.mm; sourceTree = "<group>"; };
933A14B60B7D1D5200A53FFD /* JSTextEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextEvent.cpp; sourceTree = "<group>"; };
933A14B70B7D1D5200A53FFD /* JSTextEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTextEvent.h; sourceTree = "<group>"; };
+ 933C7A741C0FBC440034FB97 /* NSSpellCheckerSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellCheckerSPI.h; sourceTree = "<group>"; };
9343CB7F12F25E510033C5EE /* TextCodecUTF8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextCodecUTF8.cpp; sourceTree = "<group>"; };
9343CB8012F25E510033C5EE /* TextCodecUTF8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCodecUTF8.h; sourceTree = "<group>"; };
93442C9D0D2B335C00338FF9 /* HTMLTableRowsCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableRowsCollection.h; sourceTree = "<group>"; };
@@ -18737,6 +18739,7 @@
F40EA8AA1B867D6500CE5581 /* NSScrollingInputFilterSPI.h */,
2DCB837719F99BBA00A7FBE4 /* NSSharingServicePickerSPI.h */,
2DCB837819F99BBA00A7FBE4 /* NSSharingServiceSPI.h */,
+ 933C7A741C0FBC440034FB97 /* NSSpellCheckerSPI.h */,
2D77AC281BF2B9860072470A /* NSTextFinderSPI.h */,
2D77AC2C1BF2B9A00072470A /* NSViewSPI.h */,
2D0CF8161BCF5DE1007A4937 /* NSWindowSPI.h */,
@@ -27756,6 +27759,7 @@
83C1D430178D5AB500141E68 /* SVGPathSegLinetoHorizontalAbs.h in Headers */,
83C1D431178D5AB500141E68 /* SVGPathSegLinetoHorizontalRel.h in Headers */,
83C1D432178D5AB500141E68 /* SVGPathSegLinetoRel.h in Headers */,
+ 933C7A751C0FBC440034FB97 /* NSSpellCheckerSPI.h in Headers */,
B2227A7D0D00BF220071B782 /* SVGPathSegLinetoVertical.h in Headers */,
83C1D433178D5AB500141E68 /* SVGPathSegLinetoVerticalAbs.h in Headers */,
83C1D434178D5AB500141E68 /* SVGPathSegLinetoVerticalRel.h in Headers */,
Modified: tags/Safari-602.1.13.2/Source/WebCore/editing/Editor.cpp (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebCore/editing/Editor.cpp 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebCore/editing/Editor.cpp 2015-12-09 19:48:32 UTC (rev 193848)
@@ -3264,6 +3264,11 @@
if (client())
client()->respondToChangedSelection(&m_frame);
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+ if (client() && canEdit())
+ client()->requestCandidatesForSelection(m_frame.selection().selection());
+#endif
+
#if ENABLE(TELEPHONE_NUMBER_DETECTION) && !PLATFORM(IOS)
if (shouldDetectTelephoneNumbers())
m_telephoneNumberDetectionUpdateTimer.startOneShot(0);
Modified: tags/Safari-602.1.13.2/Source/WebCore/loader/EmptyClients.h (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebCore/loader/EmptyClients.h 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebCore/loader/EmptyClients.h 2015-12-09 19:48:32 UTC (rev 193848)
@@ -537,6 +537,10 @@
virtual void willSetInputMethodState() override { }
virtual void setInputMethodState(bool) override { }
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+ virtual void requestCandidatesForSelection(const VisibleSelection&) override { }
+#endif
+
private:
EmptyTextCheckerClient m_textCheckerClient;
};
Modified: tags/Safari-602.1.13.2/Source/WebCore/page/EditorClient.h (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebCore/page/EditorClient.h 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebCore/page/EditorClient.h 2015-12-09 19:48:32 UTC (rev 193848)
@@ -186,6 +186,10 @@
// Support for global selections, used on platforms like the X Window System that treat
// selection as a type of clipboard.
virtual bool supportsGlobalSelection() { return false; }
+
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+ virtual void requestCandidatesForSelection(const VisibleSelection&) = 0;
+#endif
};
}
Copied: tags/Safari-602.1.13.2/Source/WebCore/platform/spi/mac/NSSpellCheckerSPI.h (from rev 193645, trunk/Source/WebCore/platform/spi/mac/NSSpellCheckerSPI.h) (0 => 193848)
--- tags/Safari-602.1.13.2/Source/WebCore/platform/spi/mac/NSSpellCheckerSPI.h (rev 0)
+++ tags/Safari-602.1.13.2/Source/WebCore/platform/spi/mac/NSSpellCheckerSPI.h 2015-12-09 19:48:32 UTC (rev 193848)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef NSSpellCheckerSPI_h
+#define NSSpellCheckerSPI_h
+
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+
+// FIXME: This header should include system headers when possible.
+
+@interface NSSpellChecker ()
+- (NSInteger)requestCandidatesForSelectedRange:(NSRange)selectedRange inString:(NSString *)stringToCheck types:(NSTextCheckingTypes)checkingTypes options:(NSDictionary<NSString *, id> *)options inSpellDocumentWithTag:(NSInteger)tag completionHandler:(void (^)(NSInteger sequenceNumber, NSArray<NSTextCheckingResult *> *candidates))completionHandler;
+- (void)showCandidates:(NSArray<NSTextCheckingResult *> *)candidates forString:(NSString *)string inRect:(NSRect)rectOfTypedString view:(NSView *)view completionHandler:(void (^)(NSTextCheckingResult *acceptedCandidate))completionBlock;
+@end
+
+#endif // PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 102000
+
+#endif // NSSpellCheckerSPI_h
Modified: tags/Safari-602.1.13.2/Source/WebKit/mac/ChangeLog (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebKit/mac/ChangeLog 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebKit/mac/ChangeLog 2015-12-09 19:48:32 UTC (rev 193848)
@@ -1,3 +1,40 @@
+2015-12-09 Babak Shafiei <bshaf...@apple.com>
+
+ Merge r193645.
+
+ 2015-12-07 Beth Dakin <bda...@apple.com>
+
+ Hook up request and show for typing candidates in WK1
+ https://bugs.webkit.org/show_bug.cgi?id=151831
+ -and corresponding-
+ <rdar://problem/23751214>
+
+ Reviewed by Enrica Casucci.
+
+ Add member variables to WebEditorClient. One is a WeakPtrFactory for the
+ asynchronous handlers, and the other caches the VisibleSelection at the time
+ candidates were requested so that we can make sure the candidates are still
+ valid once we receive them.
+ * WebCoreSupport/WebEditorClient.h:
+ * WebCoreSupport/WebEditorClient.mm:
+ (WebEditorClient::WebEditorClient):
+
+ Call [NSSpellChecker requestCandidatesForSelectedRange] with the appropriate
+ parameters.
+ (WebEditorClient::requestCandidatesForSelection):
+
+ Two helpers to compute information that we need for both of the handlers
+ below.
+ (candidateRangeForSelection):
+ (candidateWouldReplaceText):
+
+ In this handler, we just need to call [NSSpellChecker showCandidates] with
+ the appropriate parameters.
+ (WebEditorClient::handleRequestedCandidates):
+
+ Once a candidate is accepted, it should be inserted in the right way.
+ (WebEditorClient::handleAcceptedCandidate):
+
2015-12-08 Babak Shafiei <bshaf...@apple.com>
Roll out r193661.
Modified: tags/Safari-602.1.13.2/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h 2015-12-09 19:48:32 UTC (rev 193848)
@@ -29,9 +29,11 @@
#import <WebCore/EditorClient.h>
#import <WebCore/TextCheckerClient.h>
+#import <WebCore/VisibleSelection.h>
#import <wtf/Forward.h>
#import <wtf/RetainPtr.h>
#import <wtf/Vector.h>
+#import <wtf/WeakPtr.h>
#import <wtf/text/StringView.h>
#if PLATFORM(IOS)
@@ -167,6 +169,12 @@
virtual void setInputMethodState(bool enabled) override;
virtual void requestCheckingOfString(PassRefPtr<WebCore::TextCheckingRequest>) override;
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+ virtual void requestCandidatesForSelection(const WebCore::VisibleSelection&) override;
+ void handleRequestedCandidates(NSInteger, NSArray<NSTextCheckingResult *> *);
+ void handleAcceptedCandidate(NSTextCheckingResult *);
+#endif
+
void registerUndoOrRedoStep(PassRefPtr<WebCore::UndoStep>, bool isRedo);
WebView *m_webView;
@@ -177,6 +185,10 @@
bool m_delayingContentChangeNotifications;
bool m_hasDelayedContentChangeNotification;
#endif
+
+ WebCore::VisibleSelection m_lastSelectionForRequestedCandidates;
+
+ WeakPtrFactory<WebEditorClient> m_weakPtrFactory;
};
#if PLATFORM(COCOA)
Modified: tags/Safari-602.1.13.2/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm 2015-12-09 19:48:32 UTC (rev 193848)
@@ -54,18 +54,25 @@
#import <WebCore/ArchiveResource.h>
#import <WebCore/Document.h>
#import <WebCore/DocumentFragment.h>
+#import <WebCore/Editor.h>
+#import <WebCore/FloatQuad.h>
+#import <WebCore/Frame.h>
+#import <WebCore/FrameView.h>
#import <WebCore/HTMLInputElement.h>
#import <WebCore/HTMLNames.h>
#import <WebCore/HTMLTextAreaElement.h>
#import <WebCore/KeyboardEvent.h>
#import <WebCore/LegacyWebArchive.h>
+#import <WebCore/NSSpellCheckerSPI.h>
#import <WebCore/Page.h>
#import <WebCore/PlatformKeyboardEvent.h>
#import <WebCore/Settings.h>
#import <WebCore/SpellChecker.h>
#import <WebCore/StyleProperties.h>
+#import <WebCore/TextIterator.h>
#import <WebCore/UndoStep.h>
#import <WebCore/UserTypingGestureIndicator.h>
+#import <WebCore/VisibleUnits.h>
#import <WebCore/WebCoreObjCExtras.h>
#import <runtime/InitializeThreading.h>
#import <wtf/MainThread.h>
@@ -195,6 +202,7 @@
, m_delayingContentChangeNotifications(0)
, m_hasDelayedContentChangeNotification(0)
#endif
+ , m_weakPtrFactory(this)
{
}
@@ -1109,6 +1117,114 @@
{
}
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+void WebEditorClient::requestCandidatesForSelection(const VisibleSelection& selection)
+{
+ RefPtr<Range> selectedRange = selection.toNormalizedRange();
+ if (!selectedRange)
+ return;
+
+ m_lastSelectionForRequestedCandidates = selection;
+
+ VisiblePosition selectionStart = selection.visibleStart();
+ VisiblePosition selectionEnd = selection.visibleEnd();
+
+ // Use the surrounding paragraphs of text as context.
+ VisiblePosition paragraphStart = startOfParagraph(selectionStart);
+ VisiblePosition paragraphEnd = endOfParagraph(selectionEnd);
+
+ int lengthToSelectionStart = TextIterator::rangeLength(makeRange(paragraphStart, selectionStart).get());
+ int lengthToSelectionEnd = TextIterator::rangeLength(makeRange(paragraphStart, selectionEnd).get());
+ NSRange rangeForCandidates = NSMakeRange(lengthToSelectionStart, lengthToSelectionEnd - lengthToSelectionStart);
+
+ String fullPlainTextStringOfParagraph = plainText(makeRange(paragraphStart, paragraphEnd).get());
+
+ NSTextCheckingTypes checkingTypes = NSTextCheckingTypeSpelling | NSTextCheckingTypeReplacement | NSTextCheckingTypeCorrection;
+ auto weakEditor = m_weakPtrFactory.createWeakPtr();
+ [[NSSpellChecker sharedSpellChecker] requestCandidatesForSelectedRange:rangeForCandidates inString:fullPlainTextStringOfParagraph types:checkingTypes options:nil inSpellDocumentWithTag:spellCheckerDocumentTag() completionHandler:[weakEditor](NSInteger sequenceNumber, NSArray<NSTextCheckingResult *> *candidates) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ if (!weakEditor)
+ return;
+ weakEditor->handleRequestedCandidates(sequenceNumber, candidates);
+ });
+ }];
+}
+
+static RefPtr<Range> candidateRangeForSelection(const VisibleSelection& selection, Frame* frame)
+{
+ return selection.isCaret() ? wordRangeFromPosition(selection.start()) : frame->selection().toNormalizedRange();
+}
+
+static bool candidateWouldReplaceText(const VisibleSelection& selection)
+{
+ // If the character behind the caret in the current selection is anything but a space or a newline then we should
+ // replace the whole current word with the candidate.
+ UChar32 characterAfterSelection, characterBeforeSelection, twoCharacterBeforeSelection = 0;
+ charactersAroundPosition(selection.visibleStart(), characterAfterSelection, characterBeforeSelection, twoCharacterBeforeSelection);
+ return !(characterBeforeSelection == '\0' || characterBeforeSelection == '\n' || characterBeforeSelection == ' ');
+}
+
+void WebEditorClient::handleRequestedCandidates(NSInteger sequenceNumber, NSArray<NSTextCheckingResult *> *candidates)
+{
+ Frame* frame = core([m_webView _selectedOrMainFrame]);
+ if (!frame)
+ return;
+
+ const VisibleSelection& selection = frame->selection().selection();
+ if (selection != m_lastSelectionForRequestedCandidates)
+ return;
+
+ RefPtr<Range> rangeForCurrentlyTypedString = candidateRangeForSelection(selection, frame);
+ NSString *currentlyTypedString;
+ if (rangeForCurrentlyTypedString && candidateWouldReplaceText(selection))
+ currentlyTypedString = plainText(rangeForCurrentlyTypedString.get());
+ else
+ currentlyTypedString = @"";
+
+ RefPtr<Range> selectedRange = frame->selection().selection().toNormalizedRange();
+ if (!selectedRange)
+ return;
+
+ IntRect rectForSelectionCandidates;
+ Vector<FloatQuad> quads;
+ selectedRange->absoluteTextQuads(quads);
+ if (!quads.isEmpty())
+ rectForSelectionCandidates = frame->view()->contentsToWindow(quads[0].enclosingBoundingBox());
+
+ auto weakEditor = m_weakPtrFactory.createWeakPtr();
+ [[NSSpellChecker sharedSpellChecker] showCandidates:candidates forString:currentlyTypedString inRect:rectForSelectionCandidates view:m_webView completionHandler:[weakEditor](NSTextCheckingResult *acceptedCandidate) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ if (!weakEditor)
+ return;
+ weakEditor->handleAcceptedCandidate(acceptedCandidate);
+ });
+ }];
+
+}
+
+void WebEditorClient::handleAcceptedCandidate(NSTextCheckingResult *acceptedCandidate)
+{
+ Frame* frame = core([m_webView _selectedOrMainFrame]);
+ if (!frame)
+ return;
+
+ const VisibleSelection& selection = frame->selection().selection();
+ if (selection != m_lastSelectionForRequestedCandidates)
+ return;
+
+ RefPtr<Range> candidateRange = candidateRangeForSelection(selection, frame);
+
+ frame->editor().setIgnoreCompositionSelectionChange(true);
+
+ if (candidateWouldReplaceText(selection))
+ frame->selection().setSelectedRange(candidateRange.get(), UPSTREAM, true);
+
+ frame->editor().insertText(acceptedCandidate.replacementString, 0);
+ frame->editor().insertText(String(" "), 0);
+ frame->editor().setIgnoreCompositionSelectionChange(false);
+}
+#endif // PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+
#if !PLATFORM(IOS)
@interface WebEditorSpellCheckResponder : NSObject
{
Modified: tags/Safari-602.1.13.2/Source/WebKit2/ChangeLog (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebKit2/ChangeLog 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebKit2/ChangeLog 2015-12-09 19:48:32 UTC (rev 193848)
@@ -1,3 +1,19 @@
+2015-12-09 Babak Shafiei <bshaf...@apple.com>
+
+ Merge r193645.
+
+ 2015-12-07 Beth Dakin <bda...@apple.com>
+
+ Hook up request and show for typing candidates in WK1
+ https://bugs.webkit.org/show_bug.cgi?id=151831
+ -and corresponding-
+ <rdar://problem/23751214>
+
+ Reviewed by Enrica Casucci.
+
+ Empty client for now.
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+
2015-12-08 Babak Shafiei <bshaf...@apple.com>
Roll out r193645.
Modified: tags/Safari-602.1.13.2/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h (193847 => 193848)
--- tags/Safari-602.1.13.2/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h 2015-12-09 19:20:49 UTC (rev 193847)
+++ tags/Safari-602.1.13.2/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h 2015-12-09 19:48:32 UTC (rev 193848)
@@ -149,6 +149,11 @@
virtual void willSetInputMethodState() override;
virtual void setInputMethodState(bool enabled) override;
virtual void requestCheckingOfString(WTF::PassRefPtr<WebCore::TextCheckingRequest>) override;
+
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+ virtual void requestCandidatesForSelection(const WebCore::VisibleSelection&) override { }
+#endif
+
#if PLATFORM(GTK)
virtual bool shouldShowUnicodeMenu() override;
#endif