123456789101112131415161718192021222324252627282930313233343536373839 |
- // Copyright 2019 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.
- #include "components/spellcheck/renderer/spelling_engine.h"
- #include "build/build_config.h"
- #include "components/spellcheck/common/spellcheck_features.h"
- #include "components/spellcheck/spellcheck_buildflags.h"
- #include "services/service_manager/public/cpp/local_interface_provider.h"
- #if BUILDFLAG(USE_RENDERER_SPELLCHECKER)
- #include "components/spellcheck/renderer/hunspell_engine.h"
- #endif
- #if BUILDFLAG(USE_BROWSER_SPELLCHECKER)
- #include "components/spellcheck/renderer/platform_spelling_engine.h"
- #endif
- SpellingEngine* CreateNativeSpellingEngine(
- service_manager::LocalInterfaceProvider* embedder_provider) {
- DCHECK(embedder_provider);
- #if BUILDFLAG(IS_WIN)
- // On Windows, always return a HunspellEngine. This is a simplification to
- // avoid needing an async Mojo call to the browser process to determine which
- // languages are supported by the native spell checker. Returning a
- // HunspellEngine for languages supported by the native spell checker is
- // harmless because the SpellingEngine object returned here is never used
- // during native spell checking. It also doesn't affect Hunspell, since these
- // languages are skipped during the Hunspell check.
- return new HunspellEngine(embedder_provider);
- #elif BUILDFLAG(USE_BROWSER_SPELLCHECKER)
- return new PlatformSpellingEngine(embedder_provider);
- #elif BUILDFLAG(USE_RENDERER_SPELLCHECKER)
- return new HunspellEngine(embedder_provider);
- #else
- return nullptr;
- #endif
- }
|