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

Side by Side Diff: chrome/browser/speech/speech_recognition_request.cc

Issue 6308009: If user had consented for metrics reporting, send speech input request origin to the server. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/speech/speech_recognition_request.h" 5 #include "chrome/browser/speech/speech_recognition_request.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 : url_context_(context), 116 : url_context_(context),
117 delegate_(delegate) { 117 delegate_(delegate) {
118 DCHECK(delegate); 118 DCHECK(delegate);
119 } 119 }
120 120
121 SpeechRecognitionRequest::~SpeechRecognitionRequest() {} 121 SpeechRecognitionRequest::~SpeechRecognitionRequest() {}
122 122
123 bool SpeechRecognitionRequest::Send(const std::string& language, 123 bool SpeechRecognitionRequest::Send(const std::string& language,
124 const std::string& grammar, 124 const std::string& grammar,
125 const std::string& hardware_info, 125 const std::string& hardware_info,
126 const std::string& origin_url,
126 const std::string& content_type, 127 const std::string& content_type,
127 const std::string& audio_data) { 128 const std::string& audio_data) {
128 DCHECK(!url_fetcher_.get()); 129 DCHECK(!url_fetcher_.get());
129 130
130 std::vector<std::string> parts; 131 std::vector<std::string> parts;
131 132
132 std::string lang_param = language; 133 std::string lang_param = language;
133 if (lang_param.empty() && url_context_) { 134 if (lang_param.empty() && url_context_) {
134 // If no language is provided then we use the first from the accepted 135 // If no language is provided then we use the first from the accepted
135 // language list. If this list is empty then it defaults to "en-US". 136 // language list. If this list is empty then it defaults to "en-US".
(...skipping 18 matching lines...) Expand all
154 parts.push_back("maxresults=3"); 155 parts.push_back("maxresults=3");
155 156
156 GURL url(std::string(kDefaultSpeechRecognitionUrl) + JoinString(parts, '&')); 157 GURL url(std::string(kDefaultSpeechRecognitionUrl) + JoinString(parts, '&'));
157 158
158 url_fetcher_.reset(URLFetcher::Create(url_fetcher_id_for_tests, 159 url_fetcher_.reset(URLFetcher::Create(url_fetcher_id_for_tests,
159 url, 160 url,
160 URLFetcher::POST, 161 URLFetcher::POST,
161 this)); 162 this));
162 url_fetcher_->set_upload_data(content_type, audio_data); 163 url_fetcher_->set_upload_data(content_type, audio_data);
163 url_fetcher_->set_request_context(url_context_); 164 url_fetcher_->set_request_context(url_context_);
165 url_fetcher_->set_referrer(origin_url);
164 166
165 // The speech recognition API does not require user identification as part 167 // The speech recognition API does not require user identification as part
166 // of requests, so we don't send cookies or auth data for these requests to 168 // of requests, so we don't send cookies or auth data for these requests to
167 // prevent any accidental connection between users who are logged into the 169 // prevent any accidental connection between users who are logged into the
168 // domain for other services (e.g. bookmark sync) with the speech requests. 170 // domain for other services (e.g. bookmark sync) with the speech requests.
169 url_fetcher_->set_load_flags( 171 url_fetcher_->set_load_flags(
170 net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES | 172 net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES |
171 net::LOAD_DO_NOT_SEND_AUTH_DATA); 173 net::LOAD_DO_NOT_SEND_AUTH_DATA);
172 url_fetcher_->Start(); 174 url_fetcher_->Start();
173 return true; 175 return true;
(...skipping 12 matching lines...) Expand all
186 SpeechInputResultArray result; 188 SpeechInputResultArray result;
187 if (!error) 189 if (!error)
188 error = !ParseServerResponse(data, &result); 190 error = !ParseServerResponse(data, &result);
189 url_fetcher_.reset(); 191 url_fetcher_.reset();
190 192
191 DVLOG(1) << "SpeechRecognitionRequest: Invoking delegate with result."; 193 DVLOG(1) << "SpeechRecognitionRequest: Invoking delegate with result.";
192 delegate_->SetRecognitionResult(error, result); 194 delegate_->SetRecognitionResult(error, result);
193 } 195 }
194 196
195 } // namespace speech_input 197 } // namespace speech_input
OLDNEW
« no previous file with comments | « chrome/browser/speech/speech_recognition_request.h ('k') | chrome/browser/speech/speech_recognition_request_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698