| 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 CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_H_ | 5 #ifndef CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_H_ |
| 6 #define CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_H_ | 6 #define CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_H_ |
| 7 | 7 |
| 8 #include <queue> | 8 #include <queue> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 // list of SpellCheckResult objects (used by Chrome). This function also | 93 // list of SpellCheckResult objects (used by Chrome). This function also |
| 94 // checks misspelled words returned by the Spelling service and changes the | 94 // checks misspelled words returned by the Spelling service and changes the |
| 95 // underline colors of contextually-misspelled words. | 95 // underline colors of contextually-misspelled words. |
| 96 void CreateTextCheckingResults( | 96 void CreateTextCheckingResults( |
| 97 ResultFilter filter, | 97 ResultFilter filter, |
| 98 int line_offset, | 98 int line_offset, |
| 99 const string16& line_text, | 99 const string16& line_text, |
| 100 const std::vector<SpellCheckResult>& spellcheck_results, | 100 const std::vector<SpellCheckResult>& spellcheck_results, |
| 101 WebKit::WebVector<WebKit::WebTextCheckingResult>* textcheck_results); | 101 WebKit::WebVector<WebKit::WebTextCheckingResult>* textcheck_results); |
| 102 | 102 |
| 103 bool is_spellcheck_enabled() { return spellcheck_enabled_; } |
| 104 |
| 103 private: | 105 private: |
| 104 friend class SpellCheckTest; | 106 friend class SpellCheckTest; |
| 105 FRIEND_TEST_ALL_PREFIXES(SpellCheckTest, GetAutoCorrectionWord_EN_US); | 107 FRIEND_TEST_ALL_PREFIXES(SpellCheckTest, GetAutoCorrectionWord_EN_US); |
| 106 FRIEND_TEST_ALL_PREFIXES(SpellCheckTest, | 108 FRIEND_TEST_ALL_PREFIXES(SpellCheckTest, |
| 107 RequestSpellCheckMultipleTimesWithoutInitialization); | 109 RequestSpellCheckMultipleTimesWithoutInitialization); |
| 108 | 110 |
| 109 class SpellcheckRequest; | 111 class SpellcheckRequest; |
| 110 | 112 |
| 111 // RenderProcessObserver implementation: | 113 // RenderProcessObserver implementation: |
| 112 virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE; | 114 virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE; |
| 113 | 115 |
| 114 // Message handlers. | 116 // Message handlers. |
| 115 void OnInit(IPC::PlatformFileForTransit bdict_file, | 117 void OnInit(IPC::PlatformFileForTransit bdict_file, |
| 116 const std::vector<std::string>& custom_words, | 118 const std::vector<std::string>& custom_words, |
| 117 const std::string& language, | 119 const std::string& language, |
| 118 bool auto_spell_correct); | 120 bool auto_spell_correct); |
| 119 void OnWordAdded(const std::string& word); | 121 void OnWordAdded(const std::string& word); |
| 120 void OnWordRemoved(const std::string& word); | 122 void OnWordRemoved(const std::string& word); |
| 121 void OnEnableAutoSpellCorrect(bool enable); | 123 void OnEnableAutoSpellCorrect(bool enable); |
| 124 void OnEnableSpellCheck(bool enable); |
| 122 | 125 |
| 123 // If there is no dictionary file, then this requests one from the browser | 126 // If there is no dictionary file, then this requests one from the browser |
| 124 // and does not block. In this case it returns true. | 127 // and does not block. In this case it returns true. |
| 125 // If there is a dictionary file, but Hunspell has not been loaded, then | 128 // If there is a dictionary file, but Hunspell has not been loaded, then |
| 126 // this loads Hunspell. | 129 // this loads Hunspell. |
| 127 // If Hunspell is already loaded, this does nothing. In both the latter cases | 130 // If Hunspell is already loaded, this does nothing. In both the latter cases |
| 128 // it returns false, meaning that it is OK to continue spellchecking. | 131 // it returns false, meaning that it is OK to continue spellchecking. |
| 129 bool InitializeIfNeeded(); | 132 bool InitializeIfNeeded(); |
| 130 | 133 |
| 131 // When called, relays the request to check the spelling to the proper | 134 // When called, relays the request to check the spelling to the proper |
| (...skipping 26 matching lines...) Expand all Loading... |
| 158 // splits text provided by WebKit into words, contractions, or concatenated | 161 // splits text provided by WebKit into words, contractions, or concatenated |
| 159 // words. The |contraction_iterator_| splits a concatenated word extracted by | 162 // words. The |contraction_iterator_| splits a concatenated word extracted by |
| 160 // |text_iterator_| into word components so we can treat a concatenated word | 163 // |text_iterator_| into word components so we can treat a concatenated word |
| 161 // consisting only of correct words as a correct word. | 164 // consisting only of correct words as a correct word. |
| 162 SpellcheckWordIterator text_iterator_; | 165 SpellcheckWordIterator text_iterator_; |
| 163 SpellcheckWordIterator contraction_iterator_; | 166 SpellcheckWordIterator contraction_iterator_; |
| 164 | 167 |
| 165 // Remember state for auto spell correct. | 168 // Remember state for auto spell correct. |
| 166 bool auto_spell_correct_turned_on_; | 169 bool auto_spell_correct_turned_on_; |
| 167 | 170 |
| 171 // Remember state for spellchecking. |
| 172 bool spellcheck_enabled_; |
| 173 |
| 168 // Pointer to a platform-specific spelling engine, if it is in use. This | 174 // Pointer to a platform-specific spelling engine, if it is in use. This |
| 169 // should only be set if hunspell is not used. (I.e. on OSX, for now) | 175 // should only be set if hunspell is not used. (I.e. on OSX, for now) |
| 170 scoped_ptr<SpellingEngine> platform_spelling_engine_; | 176 scoped_ptr<SpellingEngine> platform_spelling_engine_; |
| 171 | 177 |
| 172 // The parameters of a pending background-spellchecking request. When WebKit | 178 // The parameters of a pending background-spellchecking request. When WebKit |
| 173 // sends a background-spellchecking request before initializing hunspell, | 179 // sends a background-spellchecking request before initializing hunspell, |
| 174 // we save its parameters and start spellchecking after we finish initializing | 180 // we save its parameters and start spellchecking after we finish initializing |
| 175 // hunspell. (When WebKit sends two or more requests, we cancel the previous | 181 // hunspell. (When WebKit sends two or more requests, we cancel the previous |
| 176 // requests so we do not have to use vectors.) | 182 // requests so we do not have to use vectors.) |
| 177 #if !defined (OS_MACOSX) | 183 #if !defined (OS_MACOSX) |
| 178 scoped_ptr<SpellcheckRequest> pending_request_param_; | 184 scoped_ptr<SpellcheckRequest> pending_request_param_; |
| 179 #endif | 185 #endif |
| 180 | 186 |
| 181 DISALLOW_COPY_AND_ASSIGN(SpellCheck); | 187 DISALLOW_COPY_AND_ASSIGN(SpellCheck); |
| 182 }; | 188 }; |
| 183 | 189 |
| 184 #endif // CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_H_ | 190 #endif // CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_H_ |
| OLD | NEW |