| 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 |