Diff
Modified: trunk/Source/WebKit2/ChangeLog (202184 => 202185)
--- trunk/Source/WebKit2/ChangeLog 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/ChangeLog 2016-06-17 23:31:42 UTC (rev 202185)
@@ -1,3 +1,48 @@
+2016-06-16 Enrica Casucci <[email protected]>
+
+ Support configurable autocapitalization.
+ https://bugs.webkit.org/show_bug.cgi?id=158860
+ rdar://problem/26231403
+
+ Reviewed by Tim Horton.
+
+ The behavior of spellchecker should be configurable to avoid
+ unwanted autocapitalization.
+
+ * UIProcess/API/APIPageConfiguration.cpp:
+ (API::PageConfiguration::copy):
+ * UIProcess/API/APIPageConfiguration.h:
+ (API::PageConfiguration::initialCapitalizationEnabled):
+ (API::PageConfiguration::setInitialCapitalizationEnabled):
+ * UIProcess/API/C/WKPageConfigurationRef.cpp:
+ (WKPageConfigurationSetIntialCapitalizationEnabled):
+ * UIProcess/API/C/WKPageConfigurationRef.h:
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _initializeWithConfiguration:]):
+ * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+ (-[WKWebViewConfiguration copyWithZone:]):
+ (-[WKWebViewConfiguration _initialCapitalizationEnabled]):
+ (-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
+ * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
+ * UIProcess/TextChecker.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
+ (WebKit::WebPageProxy::checkTextOfParagraph):
+ (WebKit::WebPageProxy::getGuessesForWord):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/efl/TextCheckerEfl.cpp:
+ (WebKit::TextChecker::checkTextOfParagraph):
+ (WebKit::TextChecker::getGuessesForWord):
+ * UIProcess/gtk/TextCheckerGtk.cpp:
+ (WebKit::TextChecker::getGuessesForWord):
+ (WebKit::TextChecker::checkTextOfParagraph):
+ * UIProcess/ios/TextCheckerIOS.mm:
+ (WebKit::TextChecker::checkTextOfParagraph):
+ (WebKit::TextChecker::getGuessesForWord):
+ * UIProcess/mac/TextCheckerMac.mm:
+ (WebKit::TextChecker::checkTextOfParagraph):
+ (WebKit::TextChecker::getGuessesForWord):
+
2016-06-17 Chris Dumez <[email protected]>
Use WTF::NoncopyableFunction in NetworkDataTaskClient
Modified: trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp 2016-06-17 23:31:42 UTC (rev 202185)
@@ -67,6 +67,7 @@
#if PLATFORM(IOS)
copy->m_alwaysRunsAtForegroundPriority = this->m_alwaysRunsAtForegroundPriority;
#endif
+ copy->m_initialCapitalizationEnabled = this->m_initialCapitalizationEnabled;
return copy;
}
Modified: trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h 2016-06-17 23:31:42 UTC (rev 202185)
@@ -89,6 +89,8 @@
bool alwaysRunsAtForegroundPriority() { return m_alwaysRunsAtForegroundPriority; }
void setAlwaysRunsAtForegroundPriority(bool alwaysRunsAtForegroundPriority) { m_alwaysRunsAtForegroundPriority = alwaysRunsAtForegroundPriority; }
#endif
+ bool initialCapitalizationEnabled() { return m_initialCapitalizationEnabled; }
+ void setInitialCapitalizationEnabled(bool initialCapitalizationEnabled) { m_initialCapitalizationEnabled = initialCapitalizationEnabled; }
private:
@@ -109,6 +111,7 @@
#if PLATFORM(IOS)
bool m_alwaysRunsAtForegroundPriority = false;
#endif
+ bool m_initialCapitalizationEnabled = true;
};
} // namespace API
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp 2016-06-17 23:31:42 UTC (rev 202185)
@@ -103,3 +103,8 @@
{
toImpl(configuration)->setWebsiteDataStore(toImpl(websiteDataStore));
}
+
+void WKPageConfigurationSetInitialCapitalizationEnabled(WKPageConfigurationRef configuration, bool enabled)
+{
+ toImpl(configuration)->setInitialCapitalizationEnabled(enabled);
+}
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h 2016-06-17 23:31:42 UTC (rev 202185)
@@ -54,6 +54,8 @@
WK_EXPORT WKWebsiteDataStoreRef WKPageConfigurationGetWebsiteDataStore(WKPageConfigurationRef configuration);
WK_EXPORT void WKPageConfigurationSetWebsiteDataStore(WKPageConfigurationRef configuration, WKWebsiteDataStoreRef websiteDataStore);
+WK_EXPORT void WKPageConfigurationSetInitialCapitalizationEnabled(WKPageConfigurationRef configuration, bool enabled);
+
#ifdef __cplusplus
}
#endif
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-06-17 23:31:42 UTC (rev 202185)
@@ -434,7 +434,8 @@
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::shouldConvertPositionStyleOnCopyKey(), WebKit::WebPreferencesStore::Value(!![_configuration _convertsPositionStyleOnCopy]));
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::httpEquivEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _allowsMetaRefresh]));
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowUniversalAccessFromFileURLsKey(), WebKit::WebPreferencesStore::Value(!![_configuration _allowUniversalAccessFromFileURLs]));
-
+ pageConfiguration->setInitialCapitalizationEnabled([_configuration _initialCapitalizationEnabled]);
+
#if PLATFORM(MAC)
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::showsURLsInToolTipsEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _showsURLsInToolTips]));
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::serviceControlsEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _serviceControlsEnabled]));
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm 2016-06-17 23:31:42 UTC (rev 202185)
@@ -122,6 +122,7 @@
BOOL _imageControlsEnabled;
BOOL _requiresUserActionForEditingControlsManager;
#endif
+ BOOL _initialCapitalizationEnabled;
#if USE(APPLE_INTERNAL_SDK)
#import <WebKitAdditions/WKWebViewConfigurationIvars.mm>
@@ -171,6 +172,7 @@
_imageControlsEnabled = NO;
_requiresUserActionForEditingControlsManager = NO;
#endif
+ _initialCapitalizationEnabled = YES;
#if ENABLE(WIRELESS_PLAYBACK_TARGET)
_allowsAirPlayForMediaPlayback = YES;
@@ -278,6 +280,7 @@
configuration->_attachmentElementEnabled = self->_attachmentElementEnabled;
configuration->_mediaTypesRequiringUserActionForPlayback = self->_mediaTypesRequiringUserActionForPlayback;
configuration->_mainContentUserGestureOverrideEnabled = self->_mainContentUserGestureOverrideEnabled;
+ configuration->_initialCapitalizationEnabled = self->_initialCapitalizationEnabled;
#if PLATFORM(IOS)
configuration->_allowsInlineMediaPlayback = self->_allowsInlineMediaPlayback;
@@ -649,6 +652,16 @@
_mainContentUserGestureOverrideEnabled = mainContentUserGestureOverrideEnabled;
}
+- (BOOL)_initialCapitalizationEnabled
+{
+ return _initialCapitalizationEnabled;
+}
+
+- (void)_setInitialCapitalizationEnabled:(BOOL)initialCapitalizationEnabled
+{
+ _initialCapitalizationEnabled = initialCapitalizationEnabled;
+}
+
#if PLATFORM(MAC)
- (BOOL)_showsURLsInToolTips
{
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h 2016-06-17 23:31:42 UTC (rev 202185)
@@ -54,6 +54,7 @@
@property (nonatomic, setter=_setInvisibleAutoplayNotPermitted:) BOOL _invisibleAutoplayNotPermitted WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@property (nonatomic, setter=_setMediaDataLoadsAutomatically:) BOOL _mediaDataLoadsAutomatically WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@property (nonatomic, setter=_setAttachmentElementEnabled:) BOOL _attachmentElementEnabled WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+@property (nonatomic, setter=_setInitialCapitalizationEnabled:) BOOL _initialCapitalizationEnabled WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
#if TARGET_OS_IPHONE
@property (nonatomic, setter=_setAlwaysRunsAtForegroundPriority:) BOOL _alwaysRunsAtForegroundPriority WK_AVAILABLE(NA, 9_0);
Modified: trunk/Source/WebKit2/UIProcess/TextChecker.h (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/TextChecker.h 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/TextChecker.h 2016-06-17 23:31:42 UTC (rev 202185)
@@ -72,7 +72,7 @@
static int64_t uniqueSpellDocumentTag(WebPageProxy*);
static void closeSpellDocumentWithTag(int64_t);
#if USE(UNIFIED_TEXT_CHECKING)
- static Vector<WebCore::TextCheckingResult> checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes);
+ static Vector<WebCore::TextCheckingResult> checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes, bool initialCapitalizationEnabled);
#endif
static void checkSpellingOfString(int64_t spellDocumentTag, StringView text, int32_t& misspellingLocation, int32_t& misspellingLength);
static void checkGrammarOfString(int64_t spellDocumentTag, StringView text, Vector<WebCore::GrammarDetail>&, int32_t& badGrammarLocation, int32_t& badGrammarLength);
@@ -80,7 +80,7 @@
static void toggleSpellingUIIsShowing();
static void updateSpellingUIWithMisspelledWord(int64_t spellDocumentTag, const String& misspelledWord);
static void updateSpellingUIWithGrammarString(int64_t spellDocumentTag, const String& badGrammarPhrase, const WebCore::GrammarDetail&);
- static void getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses);
+ static void getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses, bool initialCapitalizationEnabled);
static void learnWord(int64_t spellDocumentTag, const String& word);
static void ignoreWord(int64_t spellDocumentTag, const String& word);
static void requestCheckingOfString(PassRefPtr<TextCheckerCompletion>, int32_t insertionPoint);
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2016-06-17 23:31:42 UTC (rev 202185)
@@ -348,6 +348,7 @@
#if PLATFORM(IOS)
, m_alwaysRunsAtForegroundPriority(m_configuration->alwaysRunsAtForegroundPriority())
#endif
+ , m_initialCapitalizationEnabled(m_configuration->initialCapitalizationEnabled())
, m_backForwardList(WebBackForwardList::create(*this))
, m_maintainsInactiveSelection(false)
, m_isEditable(false)
@@ -4510,7 +4511,7 @@
#if USE(UNIFIED_TEXT_CHECKING)
void WebPageProxy::checkTextOfParagraph(const String& text, uint64_t checkingTypes, int32_t insertionPoint, Vector<TextCheckingResult>& results)
{
- results = TextChecker::checkTextOfParagraph(spellDocumentTag(), text, insertionPoint, checkingTypes);
+ results = TextChecker::checkTextOfParagraph(spellDocumentTag(), text, insertionPoint, checkingTypes, m_initialCapitalizationEnabled);
}
#endif
@@ -4541,7 +4542,7 @@
void WebPageProxy::getGuessesForWord(const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses)
{
- TextChecker::getGuessesForWord(spellDocumentTag(), word, context, insertionPoint, guesses);
+ TextChecker::getGuessesForWord(spellDocumentTag(), word, context, insertionPoint, guesses, m_initialCapitalizationEnabled);
}
void WebPageProxy::learnWord(const String& word)
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2016-06-17 23:31:42 UTC (rev 202185)
@@ -1616,7 +1616,7 @@
bool m_alwaysRunsAtForegroundPriority;
ProcessThrottler::ForegroundActivityToken m_activityToken;
#endif
-
+ bool m_initialCapitalizationEnabled;
Ref<WebBackForwardList> m_backForwardList;
bool m_maintainsInactiveSelection;
Modified: trunk/Source/WebKit2/UIProcess/efl/TextCheckerEfl.cpp (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/efl/TextCheckerEfl.cpp 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/efl/TextCheckerEfl.cpp 2016-06-17 23:31:42 UTC (rev 202185)
@@ -148,7 +148,7 @@
#endif // ENABLE(SPELLCHECK)
#if USE(UNIFIED_TEXT_CHECKING)
-Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes)
+Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes, bool)
{
UNUSED_PARAM(insertionPoint);
@@ -232,7 +232,7 @@
notImplemented();
}
-void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& , int32_t insertionPoint, Vector<String>& guesses)
+void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& , int32_t insertionPoint, Vector<String>& guesses, bool)
{
UNUSED_PARAM(insertionPoint);
#if ENABLE(SPELLCHECK)
@@ -274,7 +274,7 @@
ASSERT(request.sequence() != unrequestedTextCheckingSequence);
ASSERT(request.mask() != TextCheckingTypeNone);
- completion->didFinishCheckingText(checkTextOfParagraph(completion->spellDocumentTag(), request.text(), insertionPoint, request.mask()));
+ completion->didFinishCheckingText(checkTextOfParagraph(completion->spellDocumentTag(), request.text(), insertionPoint, request.mask(), false));
#else
UNUSED_PARAM(completion);
UNUSED_PARAM(insertionPoint);
Modified: trunk/Source/WebKit2/UIProcess/gtk/TextCheckerGtk.cpp (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/gtk/TextCheckerGtk.cpp 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/gtk/TextCheckerGtk.cpp 2016-06-17 23:31:42 UTC (rev 202185)
@@ -166,7 +166,7 @@
{
}
-void TextChecker::getGuessesForWord(int64_t /* spellDocumentTag */, const String& word, const String& /* context */, int32_t /* insertionPoint */, Vector<String>& guesses)
+void TextChecker::getGuessesForWord(int64_t /* spellDocumentTag */, const String& word, const String& /* context */, int32_t /* insertionPoint */, Vector<String>& guesses, bool)
{
#if ENABLE(SPELLCHECK)
guesses = enchantTextChecker().getGuessesForWord(word);
@@ -204,7 +204,7 @@
ASSERT(request.sequence() != unrequestedTextCheckingSequence);
ASSERT(request.mask() != TextCheckingTypeNone);
- completion->didFinishCheckingText(checkTextOfParagraph(completion->spellDocumentTag(), request.text(), insertionPoint, request.mask()));
+ completion->didFinishCheckingText(checkTextOfParagraph(completion->spellDocumentTag(), request.text(), insertionPoint, request.mask(), false));
#else
UNUSED_PARAM(completion);
#endif
@@ -239,7 +239,7 @@
#endif
#if USE(UNIFIED_TEXT_CHECKING)
-Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes)
+Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes, bool)
{
UNUSED_PARAM(insertionPoint);
#if ENABLE(SPELLCHECK)
Modified: trunk/Source/WebKit2/UIProcess/ios/TextCheckerIOS.mm (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/ios/TextCheckerIOS.mm 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/ios/TextCheckerIOS.mm 2016-06-17 23:31:42 UTC (rev 202185)
@@ -132,7 +132,7 @@
#if USE(UNIFIED_TEXT_CHECKING)
-Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t, StringView, int32_t, uint64_t)
+Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t, StringView, int32_t, uint64_t, bool)
{
notImplemented();
return Vector<TextCheckingResult>();
@@ -171,7 +171,7 @@
notImplemented();
}
-void TextChecker::getGuessesForWord(int64_t, const String&, const String&, int32_t, Vector<String>&)
+void TextChecker::getGuessesForWord(int64_t, const String&, const String&, int32_t, Vector<String>&, bool)
{
notImplemented();
}
Modified: trunk/Source/WebKit2/UIProcess/mac/TextCheckerMac.mm (202184 => 202185)
--- trunk/Source/WebKit2/UIProcess/mac/TextCheckerMac.mm 2016-06-17 23:27:28 UTC (rev 202184)
+++ trunk/Source/WebKit2/UIProcess/mac/TextCheckerMac.mm 2016-06-17 23:31:42 UTC (rev 202185)
@@ -47,6 +47,13 @@
static NSString* const WebAutomaticLinkDetectionEnabled = @"WebAutomaticLinkDetectionEnabled";
static NSString* const WebAutomaticTextReplacementEnabled = @"WebAutomaticTextReplacementEnabled";
+#if HAVE(ADVANCED_SPELL_CHECKING)
+// FIXME: this needs to be removed and replaced with NSTextCheckingSuppressInitialCapitalizationKey as soon as
+// rdar://problem/26800924 is fixed.
+
+static NSString* const WebTextCheckingSuppressInitialCapitalizationKey = @"SuppressInitialCapitalization";
+#endif
+
using namespace WebCore;
namespace WebKit {
@@ -291,14 +298,17 @@
#if USE(UNIFIED_TEXT_CHECKING)
-Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes)
+Vector<TextCheckingResult> TextChecker::checkTextOfParagraph(int64_t spellDocumentTag, StringView text, int32_t insertionPoint, uint64_t checkingTypes, bool initialCapitalizationEnabled)
{
Vector<TextCheckingResult> results;
RetainPtr<NSString> textString = text.createNSStringWithoutCopying();
NSDictionary *options = nil;
#if HAVE(ADVANCED_SPELL_CHECKING)
- options = @{ NSTextCheckingInsertionPointKey : [NSNumber numberWithUnsignedInteger:insertionPoint] };
+ options = @{ NSTextCheckingInsertionPointKey : @(insertionPoint),
+ WebTextCheckingSuppressInitialCapitalizationKey : @(!initialCapitalizationEnabled) };
+#else
+ UNUSED_PARAM(initialCapitalizationEnabled);
#endif
NSArray *incomingResults = [[NSSpellChecker sharedSpellChecker] checkString:textString.get()
range:NSMakeRange(0, text.length())
@@ -430,14 +440,15 @@
[[NSSpellChecker sharedSpellChecker] updateSpellingPanelWithGrammarString:badGrammarPhrase detail:grammarDetailDict.get()];
}
-void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses)
+void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses, bool initialCapitalizationEnabled)
{
NSString* language = nil;
NSOrthography* orthography = nil;
NSSpellChecker *checker = [NSSpellChecker sharedSpellChecker];
NSDictionary *options = nil;
#if HAVE(ADVANCED_SPELL_CHECKING)
- options = @{ NSTextCheckingInsertionPointKey : [NSNumber numberWithUnsignedInteger:insertionPoint] };
+ options = @{ NSTextCheckingInsertionPointKey : @(insertionPoint),
+ WebTextCheckingSuppressInitialCapitalizationKey : @(!initialCapitalizationEnabled) };
#endif
if (context.length()) {
[checker checkString:context range:NSMakeRange(0, context.length()) types:NSTextCheckingTypeOrthography options:options inSpellDocumentWithTag:spellDocumentTag orthography:&orthography wordCount:0];