| // Copyright 2016 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_FEATURES_H_ | 
 | #define COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_FEATURES_H_ | 
 |  | 
 | #include "base/feature_list.h" | 
 | #include "build/build_config.h" | 
 | #include "components/spellcheck/spellcheck_buildflags.h" | 
 |  | 
 | namespace spellcheck { | 
 |  | 
 | #if BUILDFLAG(ENABLE_SPELLCHECK) | 
 |  | 
 | bool UseBrowserSpellChecker(); | 
 |  | 
 | #if defined(OS_WIN) | 
 | extern const base::Feature kWinUseBrowserSpellChecker; | 
 |  | 
 | // If the kWinDelaySpellcheckServiceInit feature flag is enabled, don't | 
 | // initialize the spellcheck dictionaries when the SpellcheckService is | 
 | // instantiated. With this flag set: (1) Completing the initialization of the | 
 | // spellcheck service is on-demand, invoked by calling | 
 | // SpellcheckService::InitializeDictionaries with a callback to indicate when | 
 | // the operation completes. (2) The call to create the spellcheck service in | 
 | // ChromeBrowserMainParts::PreMainMessageLoopRunImpl will be skipped. Chromium | 
 | // will still by default instantiate the spellcheck service on startup for | 
 | // custom dictionary synchronization, but will not load Windows spellcheck | 
 | // dictionaries. The command line for launching the browser with Windows hybrid | 
 | // spellchecking enabled but no initialization of the spellcheck service is: | 
 | //    chrome | 
 | //    --enable-features=WinUseBrowserSpellChecker,WinDelaySpellcheckServiceInit | 
 | // and if instantiation of the spellcheck service needs to be completely | 
 | // disabled: | 
 | //     chrome | 
 | //    --enable-features=WinUseBrowserSpellChecker,WinDelaySpellcheckServiceInit | 
 | //    --disable-sync-types="Dictionary" | 
 | extern const base::Feature kWinDelaySpellcheckServiceInit; | 
 |  | 
 | // When set, do not perform the expensive operation of retrieving suggestions | 
 | // for all misspelled words while performing a text check. Instead retrieve | 
 | // suggestions on demand when the context menu is brought up with a misspelled | 
 | // word selected. | 
 | extern const base::Feature kWinRetrieveSuggestionsOnlyOnDemand; | 
 |  | 
 | bool WindowsVersionSupportsSpellchecker(); | 
 | #endif  // defined(OS_WIN) | 
 |  | 
 | #if defined(OS_ANDROID) | 
 | extern const base::Feature kAndroidSpellChecker; | 
 | extern const base::Feature kAndroidSpellCheckerNonLowEnd; | 
 |  | 
 | bool IsAndroidSpellCheckFeatureEnabled(); | 
 | #endif  // defined(OS_ANDROID) | 
 |  | 
 | #endif  // BUILDFLAG(ENABLE_SPELLCHECK) | 
 |  | 
 | }  // namespace spellcheck | 
 |  | 
 | #endif  // COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_FEATURES_H_ |