Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(580)

Side by Side Diff: chrome/renderer/spellchecker/spellcheck.cc

Issue 1227553002: Removed and replaced outdated mac-specific files and references. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@android_platform_skeleton
Patch Set: Comment updates for line length Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/renderer/spellchecker/spellcheck.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "chrome/renderer/spellchecker/spellcheck.h" 5 #include "chrome/renderer/spellchecker/spellcheck.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 bool auto_spell_correct) { 191 bool auto_spell_correct) {
192 languages_.clear(); 192 languages_.clear();
193 for (const auto& bdict_language : bdict_languages) { 193 for (const auto& bdict_language : bdict_languages) {
194 AddSpellcheckLanguage( 194 AddSpellcheckLanguage(
195 IPC::PlatformFileForTransitToFile(bdict_language.file), 195 IPC::PlatformFileForTransitToFile(bdict_language.file),
196 bdict_language.language); 196 bdict_language.language);
197 } 197 }
198 198
199 custom_dictionary_.Init(custom_words); 199 custom_dictionary_.Init(custom_words);
200 auto_spell_correct_turned_on_ = auto_spell_correct; 200 auto_spell_correct_turned_on_ = auto_spell_correct;
201 #if !defined(OS_MACOSX) 201 #if !defined(USE_BROWSER_SPELLCHECKER)
202 PostDelayedSpellCheckTask(pending_request_param_.release()); 202 PostDelayedSpellCheckTask(pending_request_param_.release());
203 #endif 203 #endif
204 } 204 }
205 205
206 void SpellCheck::OnCustomDictionaryChanged( 206 void SpellCheck::OnCustomDictionaryChanged(
207 const std::set<std::string>& words_added, 207 const std::set<std::string>& words_added,
208 const std::set<std::string>& words_removed) { 208 const std::set<std::string>& words_removed) {
209 custom_dictionary_.OnCustomDictionaryChanged(words_added, words_removed); 209 custom_dictionary_.OnCustomDictionaryChanged(words_added, words_removed);
210 if (words_added.empty()) 210 if (words_added.empty())
211 return; 211 return;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 return true; 254 return true;
255 255
256 return languages_.front()->SpellCheckWord(in_word, in_word_len, tag, 256 return languages_.front()->SpellCheckWord(in_word, in_word_len, tag,
257 misspelling_start, misspelling_len, 257 misspelling_start, misspelling_len,
258 optional_suggestions); 258 optional_suggestions);
259 } 259 }
260 260
261 bool SpellCheck::SpellCheckParagraph( 261 bool SpellCheck::SpellCheckParagraph(
262 const base::string16& text, 262 const base::string16& text,
263 WebVector<WebTextCheckingResult>* results) { 263 WebVector<WebTextCheckingResult>* results) {
264 #if !defined(OS_MACOSX) 264 #if !defined(USE_BROWSER_SPELLCHECKER)
265 // Mac has its own spell checker, so this method will not be used. 265 // Mac and Android have their own spell checkers,so this method won't be used
266 DCHECK(results); 266 DCHECK(results);
267 std::vector<WebTextCheckingResult> textcheck_results; 267 std::vector<WebTextCheckingResult> textcheck_results;
268 size_t length = text.length(); 268 size_t length = text.length();
269 size_t offset = 0; 269 size_t offset = 0;
270 270
271 // Spellcheck::SpellCheckWord() automatically breaks text into words and 271 // Spellcheck::SpellCheckWord() automatically breaks text into words and
272 // checks the spellings of the extracted words. This function sets the 272 // checks the spellings of the extracted words. This function sets the
273 // position and length of the first misspelled word and returns false when 273 // position and length of the first misspelled word and returns false when
274 // the text includes misspelled words. Therefore, we just repeat calling the 274 // the text includes misspelled words. Therefore, we just repeat calling the
275 // function until it returns true to check the whole text. 275 // function until it returns true to check the whole text.
(...skipping 18 matching lines...) Expand all
294 misspelling_start + offset, 294 misspelling_start + offset,
295 misspelling_length, 295 misspelling_length,
296 replacement)); 296 replacement));
297 } 297 }
298 offset += misspelling_start + misspelling_length; 298 offset += misspelling_start + misspelling_length;
299 } 299 }
300 results->assign(textcheck_results); 300 results->assign(textcheck_results);
301 return false; 301 return false;
302 #else 302 #else
303 // This function is only invoked for spell checker functionality that runs 303 // This function is only invoked for spell checker functionality that runs
304 // on the render thread. OSX builds don't have that. 304 // on the render thread. OSX and Android builds don't have that.
305 NOTREACHED(); 305 NOTREACHED();
306 return true; 306 return true;
307 #endif 307 #endif
308 } 308 }
309 309
310 base::string16 SpellCheck::GetAutoCorrectionWord(const base::string16& word, 310 base::string16 SpellCheck::GetAutoCorrectionWord(const base::string16& word,
311 int tag) { 311 int tag) {
312 base::string16 autocorrect_word; 312 base::string16 autocorrect_word;
313 if (!auto_spell_correct_turned_on_) 313 if (!auto_spell_correct_turned_on_)
314 return autocorrect_word; // Return the empty string. 314 return autocorrect_word; // Return the empty string.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 break; 353 break;
354 } 354 }
355 } 355 }
356 356
357 // Restore the swapped characters. 357 // Restore the swapped characters.
358 std::swap(misspelled_word[i], misspelled_word[i + 1]); 358 std::swap(misspelled_word[i], misspelled_word[i + 1]);
359 } 359 }
360 return autocorrect_word; 360 return autocorrect_word;
361 } 361 }
362 362
363 #if !defined(OS_MACOSX) // OSX uses its own spell checker 363 // OSX and Android use their own spell checkers
364 #if !defined(USE_BROWSER_SPELLCHECKER)
364 void SpellCheck::RequestTextChecking( 365 void SpellCheck::RequestTextChecking(
365 const base::string16& text, 366 const base::string16& text,
366 blink::WebTextCheckingCompletion* completion) { 367 blink::WebTextCheckingCompletion* completion) {
367 // Clean up the previous request before starting a new request. 368 // Clean up the previous request before starting a new request.
368 if (pending_request_param_.get()) 369 if (pending_request_param_.get())
369 pending_request_param_->completion()->didCancelCheckingText(); 370 pending_request_param_->completion()->didCancelCheckingText();
370 371
371 pending_request_param_.reset(new SpellcheckRequest( 372 pending_request_param_.reset(new SpellcheckRequest(
372 text, completion)); 373 text, completion));
373 // We will check this text after we finish loading the hunspell dictionary. 374 // We will check this text after we finish loading the hunspell dictionary.
374 if (InitializeIfNeeded()) 375 if (InitializeIfNeeded())
375 return; 376 return;
376 377
377 PostDelayedSpellCheckTask(pending_request_param_.release()); 378 PostDelayedSpellCheckTask(pending_request_param_.release());
378 } 379 }
379 #endif 380 #endif
380 381
381 bool SpellCheck::InitializeIfNeeded() { 382 bool SpellCheck::InitializeIfNeeded() {
382 return languages_.empty() ? true : languages_.front()->InitializeIfNeeded(); 383 return languages_.empty() ? true : languages_.front()->InitializeIfNeeded();
383 } 384 }
384 385
385 #if !defined(OS_MACOSX) // OSX doesn't have |pending_request_param_| 386 // OSX and Android don't have |pending_request_param_|
387 #if !defined(USE_BROWSER_SPELLCHECKER)
386 void SpellCheck::PostDelayedSpellCheckTask(SpellcheckRequest* request) { 388 void SpellCheck::PostDelayedSpellCheckTask(SpellcheckRequest* request) {
387 if (!request) 389 if (!request)
388 return; 390 return;
389 391
390 base::ThreadTaskRunnerHandle::Get()->PostTask( 392 base::ThreadTaskRunnerHandle::Get()->PostTask(
391 FROM_HERE, base::Bind(&SpellCheck::PerformSpellCheck, AsWeakPtr(), 393 FROM_HERE, base::Bind(&SpellCheck::PerformSpellCheck, AsWeakPtr(),
392 base::Owned(request))); 394 base::Owned(request)));
393 } 395 }
394 #endif 396 #endif
395 397
396 #if !defined(OS_MACOSX) // Mac uses its platform engine instead. 398 // Mac and Android use their platform engines instead.
399 #if !defined(USE_BROWSER_SPELLCHECKER)
397 void SpellCheck::PerformSpellCheck(SpellcheckRequest* param) { 400 void SpellCheck::PerformSpellCheck(SpellcheckRequest* param) {
398 DCHECK(param); 401 DCHECK(param);
399 402
400 if (languages_.empty() || !languages_.front()->IsEnabled()) { 403 if (languages_.empty() || !languages_.front()->IsEnabled()) {
401 param->completion()->didCancelCheckingText(); 404 param->completion()->didCancelCheckingText();
402 } else { 405 } else {
403 WebVector<blink::WebTextCheckingResult> results; 406 WebVector<blink::WebTextCheckingResult> results;
404 SpellCheckParagraph(param->text(), &results); 407 SpellCheckParagraph(param->text(), &results);
405 param->completion()->didFinishCheckingText(results); 408 param->completion()->didFinishCheckingText(results);
406 } 409 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 } 459 }
457 460
458 results.push_back(WebTextCheckingResult( 461 results.push_back(WebTextCheckingResult(
459 static_cast<WebTextDecorationType>(decoration), 462 static_cast<WebTextDecorationType>(decoration),
460 line_offset + spellcheck_result.location, spellcheck_result.length, 463 line_offset + spellcheck_result.location, spellcheck_result.length,
461 replacement, spellcheck_result.hash)); 464 replacement, spellcheck_result.hash));
462 } 465 }
463 466
464 textcheck_results->assign(results); 467 textcheck_results->assign(results);
465 } 468 }
OLDNEW
« no previous file with comments | « chrome/renderer/spellchecker/spellcheck.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698