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/translate/translate_manager.h" | 5 #include "chrome/browser/translate/translate_manager.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 prefs::kAcceptLanguages); | 352 prefs::kAcceptLanguages); |
353 PrefService* prefs = content::Source<PrefService>(source).ptr(); | 353 PrefService* prefs = content::Source<PrefService>(source).ptr(); |
354 InitAcceptLanguages(prefs); | 354 InitAcceptLanguages(prefs); |
355 break; | 355 break; |
356 } | 356 } |
357 default: | 357 default: |
358 NOTREACHED(); | 358 NOTREACHED(); |
359 } | 359 } |
360 } | 360 } |
361 | 361 |
362 void TranslateManager::OnURLFetchComplete(const URLFetcher* source) { | 362 void TranslateManager::OnURLFetchComplete(const content::URLFetcher* source) { |
363 if (translate_script_request_pending_.get() != source && | 363 if (translate_script_request_pending_.get() != source && |
364 language_list_request_pending_.get() != source) { | 364 language_list_request_pending_.get() != source) { |
365 // Looks like crash on Mac is possibly caused with callback entering here | 365 // Looks like crash on Mac is possibly caused with callback entering here |
366 // with unknown fetcher when network is refreshed. | 366 // with unknown fetcher when network is refreshed. |
367 scoped_ptr<const URLFetcher> delete_ptr(source); | 367 scoped_ptr<const content::URLFetcher> delete_ptr(source); |
368 return; | 368 return; |
369 } | 369 } |
370 | 370 |
371 bool error = (source->status().status() != net::URLRequestStatus::SUCCESS || | 371 bool error = |
372 source->response_code() != 200); | 372 (source->GetStatus().status() != net::URLRequestStatus::SUCCESS || |
| 373 source->GetResponseCode() != 200); |
373 if (translate_script_request_pending_.get() == source) { | 374 if (translate_script_request_pending_.get() == source) { |
374 scoped_ptr<const URLFetcher> delete_ptr( | 375 scoped_ptr<const content::URLFetcher> delete_ptr( |
375 translate_script_request_pending_.release()); | 376 translate_script_request_pending_.release()); |
376 if (!error) { | 377 if (!error) { |
377 base::StringPiece str = ResourceBundle::GetSharedInstance(). | 378 base::StringPiece str = ResourceBundle::GetSharedInstance(). |
378 GetRawDataResource(IDR_TRANSLATE_JS); | 379 GetRawDataResource(IDR_TRANSLATE_JS); |
379 DCHECK(translate_script_.empty()); | 380 DCHECK(translate_script_.empty()); |
380 str.CopyToString(&translate_script_); | 381 str.CopyToString(&translate_script_); |
381 std::string data; | 382 std::string data; |
382 source->GetResponseAsString(&data); | 383 source->GetResponseAsString(&data); |
383 translate_script_ += "\n" + data; | 384 translate_script_ += "\n" + data; |
384 // We'll expire the cached script after some time, to make sure long | 385 // We'll expire the cached script after some time, to make sure long |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 request.source_lang, | 419 request.source_lang, |
419 request.target_lang)); | 420 request.target_lang)); |
420 } else { | 421 } else { |
421 // Translate the page. | 422 // Translate the page. |
422 DoTranslatePage(tab, translate_script_, | 423 DoTranslatePage(tab, translate_script_, |
423 request.source_lang, request.target_lang); | 424 request.source_lang, request.target_lang); |
424 } | 425 } |
425 } | 426 } |
426 pending_requests_.clear(); | 427 pending_requests_.clear(); |
427 } else { // if (translate_script_request_pending_.get() == source) | 428 } else { // if (translate_script_request_pending_.get() == source) |
428 scoped_ptr<const URLFetcher> delete_ptr( | 429 scoped_ptr<const content::URLFetcher> delete_ptr( |
429 language_list_request_pending_.release()); | 430 language_list_request_pending_.release()); |
430 if (!error) { | 431 if (!error) { |
431 std::string data; | 432 std::string data; |
432 source->GetResponseAsString(&data); | 433 source->GetResponseAsString(&data); |
433 SetSupportedLanguages(data); | 434 SetSupportedLanguages(data); |
434 } else { | 435 } else { |
435 VLOG(1) << "Failed to Fetch languages from: " << kLanguageListFetchURL; | 436 VLOG(1) << "Failed to Fetch languages from: " << kLanguageListFetchURL; |
436 } | 437 } |
437 } | 438 } |
438 } | 439 } |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
751 // We don't want to do this when translate is disabled. | 752 // We don't want to do this when translate is disabled. |
752 DCHECK(prefs != NULL); | 753 DCHECK(prefs != NULL); |
753 if (CommandLine::ForCurrentProcess()->HasSwitch( | 754 if (CommandLine::ForCurrentProcess()->HasSwitch( |
754 switches::kDisableTranslate) || | 755 switches::kDisableTranslate) || |
755 (prefs != NULL && !prefs->GetBoolean(prefs::kEnableTranslate))) { | 756 (prefs != NULL && !prefs->GetBoolean(prefs::kEnableTranslate))) { |
756 return; | 757 return; |
757 } | 758 } |
758 | 759 |
759 language_list_request_pending_.reset(URLFetcher::Create( | 760 language_list_request_pending_.reset(URLFetcher::Create( |
760 1, GURL(kLanguageListFetchURL), URLFetcher::GET, this)); | 761 1, GURL(kLanguageListFetchURL), URLFetcher::GET, this)); |
761 language_list_request_pending_->set_request_context( | 762 language_list_request_pending_->SetRequestContext( |
762 Profile::Deprecated::GetDefaultRequestContext()); | 763 Profile::Deprecated::GetDefaultRequestContext()); |
763 language_list_request_pending_->set_max_retries(kMaxRetryLanguageListFetch); | 764 language_list_request_pending_->SetMaxRetries(kMaxRetryLanguageListFetch); |
764 language_list_request_pending_->Start(); | 765 language_list_request_pending_->Start(); |
765 } | 766 } |
766 | 767 |
767 void TranslateManager::CleanupPendingUlrFetcher() { | 768 void TranslateManager::CleanupPendingUlrFetcher() { |
768 language_list_request_pending_.reset(); | 769 language_list_request_pending_.reset(); |
769 translate_script_request_pending_.reset(); | 770 translate_script_request_pending_.reset(); |
770 } | 771 } |
771 | 772 |
772 void TranslateManager::RequestTranslateScript() { | 773 void TranslateManager::RequestTranslateScript() { |
773 if (translate_script_request_pending_.get() != NULL) | 774 if (translate_script_request_pending_.get() != NULL) |
774 return; | 775 return; |
775 | 776 |
776 translate_script_request_pending_.reset(URLFetcher::Create( | 777 translate_script_request_pending_.reset(URLFetcher::Create( |
777 0, GURL(kTranslateScriptURL), URLFetcher::GET, this)); | 778 0, GURL(kTranslateScriptURL), URLFetcher::GET, this)); |
778 translate_script_request_pending_->set_request_context( | 779 translate_script_request_pending_->SetRequestContext( |
779 Profile::Deprecated::GetDefaultRequestContext()); | 780 Profile::Deprecated::GetDefaultRequestContext()); |
780 translate_script_request_pending_->set_extra_request_headers( | 781 translate_script_request_pending_->SetExtraRequestHeaders( |
781 kTranslateScriptHeader); | 782 kTranslateScriptHeader); |
782 translate_script_request_pending_->Start(); | 783 translate_script_request_pending_->Start(); |
783 } | 784 } |
784 | 785 |
785 void TranslateManager::ShowInfoBar(TabContents* tab, | 786 void TranslateManager::ShowInfoBar(TabContents* tab, |
786 TranslateInfoBarDelegate* infobar) { | 787 TranslateInfoBarDelegate* infobar) { |
787 DCHECK(infobar != NULL); | 788 DCHECK(infobar != NULL); |
788 TranslateInfoBarDelegate* old_infobar = GetTranslateInfoBarDelegate(tab); | 789 TranslateInfoBarDelegate* old_infobar = GetTranslateInfoBarDelegate(tab); |
789 infobar->UpdateBackgroundAnimation(old_infobar); | 790 infobar->UpdateBackgroundAnimation(old_infobar); |
790 TabContentsWrapper* wrapper = | 791 TabContentsWrapper* wrapper = |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); | 836 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); |
836 | 837 |
837 for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) { | 838 for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) { |
838 TranslateInfoBarDelegate* delegate = | 839 TranslateInfoBarDelegate* delegate = |
839 infobar_helper->GetInfoBarDelegateAt(i)->AsTranslateInfoBarDelegate(); | 840 infobar_helper->GetInfoBarDelegateAt(i)->AsTranslateInfoBarDelegate(); |
840 if (delegate) | 841 if (delegate) |
841 return delegate; | 842 return delegate; |
842 } | 843 } |
843 return NULL; | 844 return NULL; |
844 } | 845 } |
OLD | NEW |