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

Side by Side Diff: chrome/browser/tab_contents/spelling_menu_observer.cc

Issue 11635063: [Spellcheck] Removing the "no more suggestions from Google" line when using the spelling service (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleaning code Created 8 years 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 | Annotate | Revision Log
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/browser/tab_contents/spelling_menu_observer.h" 5 #include "chrome/browser/tab_contents/spelling_menu_observer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/i18n/case_conversion.h" 8 #include "base/i18n/case_conversion.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // text to the result text so we can replace its misspelled regions with 79 // text to the result text so we can replace its misspelled regions with
80 // suggestions. 80 // suggestions.
81 succeeded_ = false; 81 succeeded_ = false;
82 result_ = params.misspelled_word; 82 result_ = params.misspelled_word;
83 83
84 // Add a placeholder item. This item will be updated when we receive a 84 // Add a placeholder item. This item will be updated when we receive a
85 // response from the Spelling service. (We do not have to disable this 85 // response from the Spelling service. (We do not have to disable this
86 // item now since Chrome will call IsCommandIdEnabled() and disable it.) 86 // item now since Chrome will call IsCommandIdEnabled() and disable it.)
87 loading_message_ = 87 loading_message_ =
88 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_SPELLING_CHECKING); 88 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_SPELLING_CHECKING);
89 proxy_->AddMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, 89 if (!useSpellingService) {
groby-ooo-7-16 2012/12/21 22:18:13 Can you add a browsertest?
rpetterson 2013/01/04 00:05:34 Done.
90 loading_message_); 90 proxy_->AddMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION,
91 91 loading_message_);
92 }
92 // Invoke a JSON-RPC call to the Spelling service in the background so we 93 // Invoke a JSON-RPC call to the Spelling service in the background so we
93 // can update the placeholder item when we receive its response. It also 94 // can update the placeholder item when we receive its response. It also
94 // starts the animation timer so we can show animation until we receive 95 // starts the animation timer so we can show animation until we receive
95 // it. 96 // it.
96 SpellingServiceClient::ServiceType type = SpellingServiceClient::SUGGEST; 97 SpellingServiceClient::ServiceType type = SpellingServiceClient::SUGGEST;
97 if (useSpellingService) 98 if (useSpellingService)
98 type = SpellingServiceClient::SPELLCHECK; 99 type = SpellingServiceClient::SPELLCHECK;
99 client_.reset(new SpellingServiceClient); 100 client_.reset(new SpellingServiceClient);
100 bool result = client_->RequestTextCheck( 101 bool result = client_->RequestTextCheck(
101 profile, 0, type, params.misspelled_word, 102 profile, 0, type, params.misspelled_word,
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 if (profile) 255 if (profile)
255 profile->GetPrefs()->SetBoolean(prefs::kSpellCheckUseSpellingService, 256 profile->GetPrefs()->SetBoolean(prefs::kSpellCheckUseSpellingService,
256 false); 257 false);
257 } 258 }
258 } 259 }
259 } 260 }
260 261
261 void SpellingMenuObserver::OnTextCheckComplete( 262 void SpellingMenuObserver::OnTextCheckComplete(
262 int tag, 263 int tag,
263 bool success, 264 bool success,
265 SpellingServiceClient::ServiceType type,
264 const string16& text, 266 const string16& text,
265 const std::vector<SpellCheckResult>& results) { 267 const std::vector<SpellCheckResult>& results) {
266 animation_timer_.Stop(); 268 animation_timer_.Stop();
267 269
268 // Scan the text-check results and replace the misspelled regions with 270 // Scan the text-check results and replace the misspelled regions with
269 // suggested words. If the replaced text is included in the suggestion list 271 // suggested words. If the replaced text is included in the suggestion list
270 // provided by the local spellchecker, we show a "No suggestions from Google" 272 // provided by the local spellchecker, we show a "No suggestions from Google"
271 // message. 273 // message.
272 succeeded_ = success; 274 succeeded_ = success;
273 if (results.empty()) { 275 if (results.empty()) {
274 succeeded_ = false; 276 succeeded_ = false;
275 } else { 277 } else {
276 typedef std::vector<SpellCheckResult> SpellCheckResults; 278 typedef std::vector<SpellCheckResult> SpellCheckResults;
277 for (SpellCheckResults::const_iterator it = results.begin(); 279 for (SpellCheckResults::const_iterator it = results.begin();
278 it != results.end(); ++it) { 280 it != results.end(); ++it) {
279 result_.replace(it->location, it->length, it->replacement); 281 result_.replace(it->location, it->length, it->replacement);
280 } 282 }
281 string16 result = base::i18n::ToLower(result_); 283 string16 result = base::i18n::ToLower(result_);
282 for (std::vector<string16>::const_iterator it = suggestions_.begin(); 284 for (std::vector<string16>::const_iterator it = suggestions_.begin();
283 it != suggestions_.end(); ++it) { 285 it != suggestions_.end(); ++it) {
284 if (result == base::i18n::ToLower(*it)) { 286 if (result == base::i18n::ToLower(*it)) {
285 succeeded_ = false; 287 succeeded_ = false;
286 break; 288 break;
287 } 289 }
288 } 290 }
289 } 291 }
290 if (!succeeded_) { 292 if (type != SpellingServiceClient::SPELLCHECK) {
groby-ooo-7-16 2012/12/21 22:18:13 Can you add a browsertest?
rpetterson 2013/01/04 00:05:34 I think this and the one above both cover the same
291 result_ = l10n_util::GetStringUTF16( 293 if (!succeeded_) {
292 IDS_CONTENT_CONTEXT_SPELLING_NO_SUGGESTIONS_FROM_GOOGLE); 294 result_ = l10n_util::GetStringUTF16(
295 IDS_CONTENT_CONTEXT_SPELLING_NO_SUGGESTIONS_FROM_GOOGLE);
296 }
297
298 // Update the menu item with the result text. We disable this item and hide
299 // it when the spelling service does not provide valid suggestions.
300 proxy_->UpdateMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, succeeded_,
301 false, result_);
293 } 302 }
294
295 // Update the menu item with the result text. We disable this item and hide it
296 // when the spelling service does not provide valid suggestions.
297 proxy_->UpdateMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, succeeded_,
298 false, result_);
299 } 303 }
300 304
301 void SpellingMenuObserver::OnAnimationTimerExpired() { 305 void SpellingMenuObserver::OnAnimationTimerExpired() {
302 // Append '.' characters to the end of "Checking". 306 // Append '.' characters to the end of "Checking".
303 loading_frame_ = (loading_frame_ + 1) & 3; 307 loading_frame_ = (loading_frame_ + 1) & 3;
304 string16 loading_message = loading_message_ + string16(loading_frame_,'.'); 308 string16 loading_message = loading_message_ + string16(loading_frame_,'.');
305 309
306 // Update the menu item with the text. We disable this item to prevent users 310 // Update the menu item with the text. We disable this item to prevent users
307 // from selecting it. 311 // from selecting it.
308 proxy_->UpdateMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, false, false, 312 proxy_->UpdateMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, false, false,
309 loading_message); 313 loading_message);
310 } 314 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698