OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_H_ | 5 #ifndef COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_H_ |
6 #define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_H_ | 6 #define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/files/file.h" | 13 #include "base/files/file.h" |
14 #include "base/gtest_prod_util.h" | 14 #include "base/gtest_prod_util.h" |
15 #include "base/macros.h" | 15 #include "base/macros.h" |
16 #include "base/memory/scoped_vector.h" | 16 #include "base/memory/scoped_vector.h" |
17 #include "base/memory/weak_ptr.h" | 17 #include "base/memory/weak_ptr.h" |
18 #include "base/strings/string16.h" | 18 #include "base/strings/string16.h" |
19 #include "components/spellcheck/renderer/custom_dictionary_engine.h" | 19 #include "components/spellcheck/renderer/custom_dictionary_engine.h" |
| 20 #include "components/spellcheck/spellcheck_build_features.h" |
20 #include "content/public/renderer/render_thread_observer.h" | 21 #include "content/public/renderer/render_thread_observer.h" |
21 | 22 |
22 struct SpellCheckBDictLanguage; | 23 struct SpellCheckBDictLanguage; |
23 class SpellcheckLanguage; | 24 class SpellcheckLanguage; |
24 struct SpellCheckResult; | 25 struct SpellCheckResult; |
25 | 26 |
26 namespace blink { | 27 namespace blink { |
27 class WebTextCheckingCompletion; | 28 class WebTextCheckingCompletion; |
28 struct WebTextCheckingResult; | 29 struct WebTextCheckingResult; |
29 template <typename T> class WebVector; | 30 template <typename T> class WebVector; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 | 83 |
83 // SpellCheck a paragraph. | 84 // SpellCheck a paragraph. |
84 // Returns true if |text| is correctly spelled, false otherwise. | 85 // Returns true if |text| is correctly spelled, false otherwise. |
85 // If the spellchecker failed to initialize, always returns true. | 86 // If the spellchecker failed to initialize, always returns true. |
86 bool SpellCheckParagraph( | 87 bool SpellCheckParagraph( |
87 const base::string16& text, | 88 const base::string16& text, |
88 blink::WebVector<blink::WebTextCheckingResult>* results); | 89 blink::WebVector<blink::WebTextCheckingResult>* results); |
89 | 90 |
90 // Requests to spellcheck the specified text in the background. This function | 91 // Requests to spellcheck the specified text in the background. This function |
91 // posts a background task and calls SpellCheckParagraph() in the task. | 92 // posts a background task and calls SpellCheckParagraph() in the task. |
92 #if !defined (USE_BROWSER_SPELLCHECKER) | 93 #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER) |
93 void RequestTextChecking(const base::string16& text, | 94 void RequestTextChecking(const base::string16& text, |
94 blink::WebTextCheckingCompletion* completion); | 95 blink::WebTextCheckingCompletion* completion); |
95 #endif | 96 #endif |
96 | 97 |
97 // Creates a list of WebTextCheckingResult objects (used by WebKit) from a | 98 // Creates a list of WebTextCheckingResult objects (used by WebKit) from a |
98 // list of SpellCheckResult objects (used by Chrome). This function also | 99 // list of SpellCheckResult objects (used by Chrome). This function also |
99 // checks misspelled words returned by the Spelling service and changes the | 100 // checks misspelled words returned by the Spelling service and changes the |
100 // underline colors of contextually-misspelled words. | 101 // underline colors of contextually-misspelled words. |
101 void CreateTextCheckingResults( | 102 void CreateTextCheckingResults( |
102 ResultFilter filter, | 103 ResultFilter filter, |
(...skipping 22 matching lines...) Expand all Loading... |
125 bool OnControlMessageReceived(const IPC::Message& message) override; | 126 bool OnControlMessageReceived(const IPC::Message& message) override; |
126 | 127 |
127 // Message handlers. | 128 // Message handlers. |
128 void OnInit(const std::vector<SpellCheckBDictLanguage>& bdict_languages, | 129 void OnInit(const std::vector<SpellCheckBDictLanguage>& bdict_languages, |
129 const std::set<std::string>& custom_words); | 130 const std::set<std::string>& custom_words); |
130 void OnCustomDictionaryChanged(const std::set<std::string>& words_added, | 131 void OnCustomDictionaryChanged(const std::set<std::string>& words_added, |
131 const std::set<std::string>& words_removed); | 132 const std::set<std::string>& words_removed); |
132 void OnEnableSpellCheck(bool enable); | 133 void OnEnableSpellCheck(bool enable); |
133 void OnRequestDocumentMarkers(); | 134 void OnRequestDocumentMarkers(); |
134 | 135 |
135 #if !defined (USE_BROWSER_SPELLCHECKER) | 136 #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER) |
136 // Posts delayed spellcheck task and clear it if any. | 137 // Posts delayed spellcheck task and clear it if any. |
137 // Takes ownership of |request|. | 138 // Takes ownership of |request|. |
138 void PostDelayedSpellCheckTask(SpellcheckRequest* request); | 139 void PostDelayedSpellCheckTask(SpellcheckRequest* request); |
139 | 140 |
140 // Performs spell checking from the request queue. | 141 // Performs spell checking from the request queue. |
141 void PerformSpellCheck(SpellcheckRequest* request); | 142 void PerformSpellCheck(SpellcheckRequest* request); |
142 | 143 |
143 // The parameters of a pending background-spellchecking request. When WebKit | 144 // The parameters of a pending background-spellchecking request. When WebKit |
144 // sends a background-spellchecking request before initializing hunspell, | 145 // sends a background-spellchecking request before initializing hunspell, |
145 // we save its parameters and start spellchecking after we finish initializing | 146 // we save its parameters and start spellchecking after we finish initializing |
146 // hunspell. (When WebKit sends two or more requests, we cancel the previous | 147 // hunspell. (When WebKit sends two or more requests, we cancel the previous |
147 // requests so we do not have to use vectors.) | 148 // requests so we do not have to use vectors.) |
148 std::unique_ptr<SpellcheckRequest> pending_request_param_; | 149 std::unique_ptr<SpellcheckRequest> pending_request_param_; |
149 #endif | 150 #endif |
150 | 151 |
151 // A vector of objects used to actually check spelling, one for each enabled | 152 // A vector of objects used to actually check spelling, one for each enabled |
152 // language. | 153 // language. |
153 ScopedVector<SpellcheckLanguage> languages_; | 154 ScopedVector<SpellcheckLanguage> languages_; |
154 | 155 |
155 // Custom dictionary spelling engine. | 156 // Custom dictionary spelling engine. |
156 CustomDictionaryEngine custom_dictionary_; | 157 CustomDictionaryEngine custom_dictionary_; |
157 | 158 |
158 // Remember state for spellchecking. | 159 // Remember state for spellchecking. |
159 bool spellcheck_enabled_; | 160 bool spellcheck_enabled_; |
160 | 161 |
161 DISALLOW_COPY_AND_ASSIGN(SpellCheck); | 162 DISALLOW_COPY_AND_ASSIGN(SpellCheck); |
162 }; | 163 }; |
163 | 164 |
164 #endif // COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_H_ | 165 #endif // COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_H_ |
OLD | NEW |