blob: 0d600fa9d0b11f633ff235adaff2b059a2c029f9 [file] [log] [blame]
Xiaocheng Hud9085ee2018-02-16 22:32:301// Copyright 2018 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "components/spellcheck/browser/spell_check_host_impl.h"
6
Guillaume Jenkins03764e1b2020-01-17 21:47:597#include "build/build_config.h"
8#include "components/spellcheck/spellcheck_buildflags.h"
Xiaocheng Hud9085ee2018-02-16 22:32:309#include "content/public/browser/browser_thread.h"
Xiaocheng Hud9085ee2018-02-16 22:32:3010
11SpellCheckHostImpl::SpellCheckHostImpl() = default;
12SpellCheckHostImpl::~SpellCheckHostImpl() = default;
13
Xiaocheng Hud9085ee2018-02-16 22:32:3014void SpellCheckHostImpl::RequestDictionary() {
15 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
16
Xiaocheng Hu730919942018-02-20 21:04:4817 // This API requires Chrome-only features.
Xiaocheng Hud9085ee2018-02-16 22:32:3018 return;
19}
20
21void SpellCheckHostImpl::NotifyChecked(const base::string16& word,
22 bool misspelled) {
23 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
24
Xiaocheng Hu730919942018-02-20 21:04:4825 // This API requires Chrome-only features.
Xiaocheng Hud9085ee2018-02-16 22:32:3026 return;
27}
28
Siye Liude74ce302019-06-20 20:44:4329#if BUILDFLAG(USE_RENDERER_SPELLCHECKER)
Xiaocheng Hud9085ee2018-02-16 22:32:3030void SpellCheckHostImpl::CallSpellingService(
31 const base::string16& text,
32 CallSpellingServiceCallback callback) {
33 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
34
35 if (text.empty())
Guillaume Jenkins2c1717a82019-12-05 21:20:1636 mojo::ReportBadMessage("Requested spelling service with empty text");
Xiaocheng Hud9085ee2018-02-16 22:32:3037
Xiaocheng Hu730919942018-02-20 21:04:4838 // This API requires Chrome-only features.
Xiaocheng Hud9085ee2018-02-16 22:32:3039 std::move(callback).Run(false, std::vector<SpellCheckResult>());
40}
Siye Liude74ce302019-06-20 20:44:4341#endif // BUILDFLAG(USE_RENDERER_SPELLCHECKER)
Xiaocheng Hud9085ee2018-02-16 22:32:3042
Evan Stade38ec3da2019-12-02 19:02:5943#if BUILDFLAG(USE_BROWSER_SPELLCHECKER) && !BUILDFLAG(ENABLE_SPELLING_SERVICE)
Xiaocheng Hud9085ee2018-02-16 22:32:3044void SpellCheckHostImpl::RequestTextCheck(const base::string16& text,
45 int route_id,
46 RequestTextCheckCallback callback) {
47 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
48
49 if (text.empty())
Guillaume Jenkins2c1717a82019-12-05 21:20:1650 mojo::ReportBadMessage("Requested text check with empty text");
Xiaocheng Hud9085ee2018-02-16 22:32:3051
Xiaocheng Hud9085ee2018-02-16 22:32:3052 session_bridge_.RequestTextCheck(text, std::move(callback));
Xiaocheng Hud9085ee2018-02-16 22:32:3053}
54
Xiaocheng Hud9085ee2018-02-16 22:32:3055void SpellCheckHostImpl::CheckSpelling(const base::string16& word,
56 int route_id,
57 CheckSpellingCallback callback) {
58 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
Evan Stade38ec3da2019-12-02 19:02:5959 NOTREACHED();
Xiaocheng Hud9085ee2018-02-16 22:32:3060 std::move(callback).Run(false);
61}
62
63void SpellCheckHostImpl::FillSuggestionList(
64 const base::string16& word,
65 FillSuggestionListCallback callback) {
66 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
Evan Stade38ec3da2019-12-02 19:02:5967 NOTREACHED();
68 std::move(callback).Run({});
Xiaocheng Hud9085ee2018-02-16 22:32:3069}
Evan Stade38ec3da2019-12-02 19:02:5970#endif // BUILDFLAG(USE_BROWSER_SPELLCHECKER) &&
71 // !BUILDFLAG(ENABLE_SPELLING_SERVICE)
Xiaocheng Hu551a8c12019-03-05 22:29:3972
Guillaume Jenkins2c1717a82019-12-05 21:20:1673#if BUILDFLAG(USE_WIN_HYBRID_SPELLCHECKER)
74void SpellCheckHostImpl::GetPerLanguageSuggestions(
75 const base::string16& word,
76 GetPerLanguageSuggestionsCallback callback) {
77 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
78
79 // This API requires Chrome-only features.
80 std::move(callback).Run(std::vector<std::vector<base::string16>>());
81}
82#endif // BUILDFLAG(USE_WIN_HYBRID_SPELLCHECKER)
83
Xiaocheng Hu551a8c12019-03-05 22:29:3984#if defined(OS_ANDROID)
85void SpellCheckHostImpl::DisconnectSessionBridge() {
86 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
87 session_bridge_.DisconnectSession();
88}
89#endif