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

Side by Side Diff: chrome/browser/translate/translate_manager.cc

Issue 8375039: Create a content::UrlFetcher interface that lives in content/public/common and convert users to i... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: review comments Created 9 years, 2 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/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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_manager.h ('k') | chrome/browser/translate/translate_manager_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698