OLD | NEW |
---|---|
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/spellchecker/spellcheck_host_impl.h" | 5 #include "chrome/browser/spellchecker/spellcheck_host_impl.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
231 // We download from the ui thread because we need to know that | 231 // We download from the ui thread because we need to know that |
232 // |request_context_getter_| is still valid before initiating the download. | 232 // |request_context_getter_| is still valid before initiating the download. |
233 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 233 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
234 NewRunnableMethod(this, &SpellCheckHostImpl::DownloadDictionary)); | 234 NewRunnableMethod(this, &SpellCheckHostImpl::DownloadDictionary)); |
235 return; | 235 return; |
236 } | 236 } |
237 | 237 |
238 request_context_getter_ = NULL; | 238 request_context_getter_ = NULL; |
239 | 239 |
240 scoped_ptr<CustomWordList> custom_words(new CustomWordList()); | 240 scoped_ptr<CustomWordList> custom_words(new CustomWordList()); |
241 if (file_ != base::kInvalidPlatformFileValue) { | 241 if (file_ != base::kInvalidPlatformFileValue) |
242 // Load custom dictionary. | 242 LoadCustomDictionary(custom_words.get()); |
243 std::string contents; | |
244 file_util::ReadFileToString(custom_dictionary_file_, &contents); | |
245 CustomWordList list_of_words; | |
246 base::SplitString(contents, '\n', &list_of_words); | |
247 for (size_t i = 0; i < list_of_words.size(); ++i) | |
248 custom_words->push_back(list_of_words[i]); | |
249 } | |
250 | 243 |
251 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 244 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
252 NewRunnableMethod( | 245 NewRunnableMethod( |
253 this, | 246 this, |
254 &SpellCheckHostImpl::InformProfileOfInitializationWithCustomWords, | 247 &SpellCheckHostImpl::InformProfileOfInitializationWithCustomWords, |
255 custom_words.release())); | 248 custom_words.release())); |
256 } | 249 } |
257 | 250 |
258 void SpellCheckHostImpl::InitializeOnFileThread() { | 251 void SpellCheckHostImpl::InitializeOnFileThread() { |
259 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 252 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
302 } | 295 } |
303 GURL url = GURL(std::string(kDownloadServerUrl) + | 296 GURL url = GURL(std::string(kDownloadServerUrl) + |
304 StringToLowerASCII(bdict_file)); | 297 StringToLowerASCII(bdict_file)); |
305 fetcher_.reset(new URLFetcher(url, URLFetcher::GET, this)); | 298 fetcher_.reset(new URLFetcher(url, URLFetcher::GET, this)); |
306 fetcher_->set_request_context(request_context_getter_); | 299 fetcher_->set_request_context(request_context_getter_); |
307 tried_to_download_ = true; | 300 tried_to_download_ = true; |
308 fetcher_->Start(); | 301 fetcher_->Start(); |
309 request_context_getter_ = NULL; | 302 request_context_getter_ = NULL; |
310 } | 303 } |
311 | 304 |
305 void SpellCheckHostImpl::LoadCustomDictionary(CustomWordList* custom_words) { | |
306 if (!custom_words) | |
307 return; | |
308 | |
309 std::string contents; | |
Hironori Bono
2011/10/20 04:48:50
nit: move this declaration above Line 317 "file_ut
shinyak (Google)
2011/10/20 12:04:52
Done.
| |
310 CustomWordList list_of_words; | |
Hironori Bono
2011/10/20 04:48:50
nit: ditto.
shinyak (Google)
2011/10/20 12:04:52
Done.
| |
311 | |
312 // Load custom dictionary for profile. | |
313 if (profile_) | |
314 profile_->LoadCustomDictionary(custom_words); | |
315 | |
316 // Load custom dictionary. | |
317 file_util::ReadFileToString(custom_dictionary_file_, &contents); | |
318 base::SplitString(contents, '\n', &list_of_words); | |
Hironori Bono
2011/10/20 04:48:50
nit: need 'if (!contents.empty()) {' to avoid call
shinyak (Google)
2011/10/20 12:04:52
Done.
| |
319 for (size_t i = 0; i < list_of_words.size(); ++i) { | |
320 if (list_of_words[i] != "") | |
321 custom_words->push_back(list_of_words[i]); | |
322 } | |
323 } | |
324 | |
312 void SpellCheckHostImpl::WriteWordToCustomDictionary(const std::string& word) { | 325 void SpellCheckHostImpl::WriteWordToCustomDictionary(const std::string& word) { |
313 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 326 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
314 | 327 |
315 // Stored in UTF-8. | 328 if (profile_) |
316 std::string word_to_add(word + "\n"); | 329 profile_->WriteWordToCustomDictionary(word); |
317 FILE* f = file_util::OpenFile(custom_dictionary_file_, "a+"); | |
318 if (f) | |
319 fputs(word_to_add.c_str(), f); | |
320 file_util::CloseFile(f); | |
321 } | 330 } |
322 | 331 |
323 void SpellCheckHostImpl::OnURLFetchComplete(const URLFetcher* source, | 332 void SpellCheckHostImpl::OnURLFetchComplete(const URLFetcher* source, |
324 const GURL& url, | 333 const GURL& url, |
325 const net::URLRequestStatus& status, | 334 const net::URLRequestStatus& status, |
326 int response_code, | 335 int response_code, |
327 const net::ResponseCookies& cookies, | 336 const net::ResponseCookies& cookies, |
328 const std::string& data) { | 337 const std::string& data) { |
329 DCHECK(source); | 338 DCHECK(source); |
330 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 339 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
433 return file_; | 442 return file_; |
434 } | 443 } |
435 | 444 |
436 const std::string& SpellCheckHostImpl::GetLanguage() const { | 445 const std::string& SpellCheckHostImpl::GetLanguage() const { |
437 return language_; | 446 return language_; |
438 } | 447 } |
439 | 448 |
440 bool SpellCheckHostImpl::IsUsingPlatformChecker() const { | 449 bool SpellCheckHostImpl::IsUsingPlatformChecker() const { |
441 return use_platform_spellchecker_; | 450 return use_platform_spellchecker_; |
442 } | 451 } |
OLD | NEW |