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

Side by Side Diff: chrome/browser/spellchecker/spelling_service_client.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: responding to comments (browsertest, prebind) Created 7 years, 11 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 | 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/spellchecker/spelling_service_client.h" 5 #include "chrome/browser/spellchecker/spelling_service_client.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/json/json_reader.h" 8 #include "base/json/json_reader.h"
9 #include "base/json/string_escape.h" 9 #include "base/json/string_escape.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 10 matching lines...) Expand all
21 #include "google_apis/google_api_keys.h" 21 #include "google_apis/google_api_keys.h"
22 #include "net/base/load_flags.h" 22 #include "net/base/load_flags.h"
23 #include "net/url_request/url_fetcher.h" 23 #include "net/url_request/url_fetcher.h"
24 #include "unicode/uloc.h" 24 #include "unicode/uloc.h"
25 25
26 // Use the public URL to the Spelling service on Chromium. 26 // Use the public URL to the Spelling service on Chromium.
27 #ifndef SPELLING_SERVICE_URL 27 #ifndef SPELLING_SERVICE_URL
28 #define SPELLING_SERVICE_URL "https://www.googleapis.com/rpc" 28 #define SPELLING_SERVICE_URL "https://www.googleapis.com/rpc"
29 #endif 29 #endif
30 30
31 SpellingServiceClient::SpellingServiceClient() : tag_(0) { 31 SpellingServiceClient::SpellingServiceClient() {
32 } 32 }
33 33
34 SpellingServiceClient::~SpellingServiceClient() { 34 SpellingServiceClient::~SpellingServiceClient() {
35 } 35 }
36 36
37 bool SpellingServiceClient::RequestTextCheck( 37 bool SpellingServiceClient::RequestTextCheck(
38 Profile* profile, 38 Profile* profile,
39 int tag,
40 ServiceType type, 39 ServiceType type,
41 const string16& text, 40 const string16& text,
42 const TextCheckCompleteCallback& callback) { 41 const TextCheckCompleteCallback& callback) {
43 DCHECK(type == SUGGEST || type == SPELLCHECK); 42 DCHECK(type == SUGGEST || type == SPELLCHECK);
44 std::string locale = profile->GetPrefs()->GetString( 43 std::string locale = profile->GetPrefs()->GetString(
45 prefs::kSpellCheckDictionary); 44 prefs::kSpellCheckDictionary);
46 char language[ULOC_LANG_CAPACITY] = ULOC_ENGLISH; 45 char language[ULOC_LANG_CAPACITY] = ULOC_ENGLISH;
47 const char* country = "USA"; 46 const char* country = "USA";
48 if (!locale.empty()) { 47 if (!locale.empty()) {
49 // Create the parameters needed by Spelling API. Spelling API needs three 48 // Create the parameters needed by Spelling API. Spelling API needs three
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 api_key.c_str()); 89 api_key.c_str());
91 90
92 static const char kSpellingServiceURL[] = SPELLING_SERVICE_URL; 91 static const char kSpellingServiceURL[] = SPELLING_SERVICE_URL;
93 GURL url = GURL(kSpellingServiceURL); 92 GURL url = GURL(kSpellingServiceURL);
94 fetcher_.reset(CreateURLFetcher(url)); 93 fetcher_.reset(CreateURLFetcher(url));
95 fetcher_->SetRequestContext(profile->GetRequestContext()); 94 fetcher_->SetRequestContext(profile->GetRequestContext());
96 fetcher_->SetUploadData("application/json", request); 95 fetcher_->SetUploadData("application/json", request);
97 fetcher_->SetLoadFlags( 96 fetcher_->SetLoadFlags(
98 net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); 97 net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES);
99 fetcher_->Start(); 98 fetcher_->Start();
100 tag_ = tag;
101 text_ = text; 99 text_ = text;
102 callback_ = callback; 100 callback_ = callback;
103 return true; 101 return true;
104 } 102 }
105 103
106 bool SpellingServiceClient::IsAvailable(Profile* profile, ServiceType type) { 104 bool SpellingServiceClient::IsAvailable(Profile* profile, ServiceType type) {
107 const PrefService* pref = profile->GetPrefs(); 105 const PrefService* pref = profile->GetPrefs();
108 if (!pref->GetBoolean(prefs::kEnableContinuousSpellcheck) || 106 if (!pref->GetBoolean(prefs::kEnableContinuousSpellcheck) ||
109 !pref->GetBoolean(prefs::kSpellCheckUseSpellingService)) 107 !pref->GetBoolean(prefs::kSpellCheckUseSpellingService))
110 return false; 108 return false;
(...skipping 28 matching lines...) Expand all
139 void SpellingServiceClient::OnURLFetchComplete( 137 void SpellingServiceClient::OnURLFetchComplete(
140 const net::URLFetcher* source) { 138 const net::URLFetcher* source) {
141 scoped_ptr<net::URLFetcher> clean_up_fetcher(fetcher_.release()); 139 scoped_ptr<net::URLFetcher> clean_up_fetcher(fetcher_.release());
142 bool success = false; 140 bool success = false;
143 std::vector<SpellCheckResult> results; 141 std::vector<SpellCheckResult> results;
144 if (source->GetResponseCode() / 100 == 2) { 142 if (source->GetResponseCode() / 100 == 2) {
145 std::string data; 143 std::string data;
146 source->GetResponseAsString(&data); 144 source->GetResponseAsString(&data);
147 success = ParseResponse(data, &results); 145 success = ParseResponse(data, &results);
148 } 146 }
149 callback_.Run(tag_, success, text_, results); 147 callback_.Run(success, text_, results);
150 } 148 }
151 149
152 net::URLFetcher* SpellingServiceClient::CreateURLFetcher(const GURL& url) { 150 net::URLFetcher* SpellingServiceClient::CreateURLFetcher(const GURL& url) {
153 return net::URLFetcher::Create(url, net::URLFetcher::POST, this); 151 return net::URLFetcher::Create(url, net::URLFetcher::POST, this);
154 } 152 }
155 153
156 bool SpellingServiceClient::ParseResponse( 154 bool SpellingServiceClient::ParseResponse(
157 const std::string& data, 155 const std::string& data,
158 std::vector<SpellCheckResult>* results) { 156 std::vector<SpellCheckResult>* results) {
159 // When this JSON-RPC call finishes successfully, the Spelling service returns 157 // When this JSON-RPC call finishes successfully, the Spelling service returns
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 if (!suggestions->GetDictionary(0, &suggestion) || 221 if (!suggestions->GetDictionary(0, &suggestion) ||
224 !suggestion->GetString("suggestion", &replacement)) { 222 !suggestion->GetString("suggestion", &replacement)) {
225 return false; 223 return false;
226 } 224 }
227 SpellCheckResult result( 225 SpellCheckResult result(
228 SpellCheckResult::SPELLING, start, length, replacement); 226 SpellCheckResult::SPELLING, start, length, replacement);
229 results->push_back(result); 227 results->push_back(result);
230 } 228 }
231 return true; 229 return true;
232 } 230 }
OLDNEW
« no previous file with comments | « chrome/browser/spellchecker/spelling_service_client.h ('k') | chrome/browser/spellchecker/spelling_service_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698