Chromium Code Reviews| Index: chrome/browser/translate/translate_manager.cc |
| diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc |
| index cc2fea6d1c7fd868c5132bd0d96e8a073b39b32d..0868817233e0b63c704b7afcc4434c2d6ddaef43 100644 |
| --- a/chrome/browser/translate/translate_manager.cc |
| +++ b/chrome/browser/translate/translate_manager.cc |
| @@ -17,8 +17,6 @@ |
| #include "chrome/browser/ui/browser_finder.h" |
| #include "chrome/browser/ui/browser_tabstrip.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| -#include "chrome/common/url_constants.h" |
| -#include "components/translate/content/common/translate_messages.h" |
| #include "components/translate/core/browser/language_state.h" |
| #include "components/translate/core/browser/page_translated_details.h" |
| #include "components/translate/core/browser/translate_accept_languages.h" |
| @@ -35,16 +33,10 @@ |
| #include "components/translate/core/common/translate_constants.h" |
| #include "components/translate/core/common/translate_pref_names.h" |
| #include "components/translate/core/common/translate_switches.h" |
| -#include "content/public/browser/navigation_controller.h" |
| -#include "content/public/browser/navigation_entry.h" |
| -#include "content/public/browser/render_process_host.h" |
| -#include "content/public/browser/render_view_host.h" |
| #include "content/public/browser/web_contents.h" |
| #include "net/base/url_util.h" |
| #include "net/http/http_status_code.h" |
| -using content::NavigationController; |
| -using content::NavigationEntry; |
| using content::WebContents; |
| namespace { |
| @@ -124,8 +116,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { |
| // MHTML pages currently cannot be translated. |
| // See bug: 217945. |
| - WebContents* web_contents = translate_tab_helper_->GetWebContents(); |
| - if (web_contents->GetContentsMimeType() == "multipart/related") { |
| + if (translate_driver_->GetContentsMimeType() == "multipart/related") { |
| TranslateBrowserMetrics::ReportInitiationStatus( |
| TranslateBrowserMetrics::INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED); |
| return; |
| @@ -133,7 +124,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { |
| // Don't translate any Chrome specific page, e.g., New Tab Page, Download, |
| // History, and so on. |
| - GURL page_url = web_contents->GetURL(); |
| + const GURL& page_url = translate_driver_->GetVisibleURL(); |
| if (!translate_client_->IsTranslatableURL(page_url)) { |
| TranslateBrowserMetrics::ReportInitiationStatus( |
| TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED); |
| @@ -224,10 +215,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { |
| void TranslateManager::TranslatePage(const std::string& original_source_lang, |
| const std::string& target_lang, |
| bool triggered_from_menu) { |
| - WebContents* web_contents = translate_tab_helper_->GetWebContents(); |
| - DCHECK(web_contents); |
| - NavigationEntry* entry = web_contents->GetController().GetActiveEntry(); |
| - if (!entry) { |
| + if (!translate_driver_->HasCurrentPage()) { |
| NOTREACHED(); |
| return; |
| } |
| @@ -260,7 +248,7 @@ void TranslateManager::TranslatePage(const std::string& original_source_lang, |
| TranslateScript::RequestCallback callback = |
| base::Bind(&TranslateManager::OnTranslateScriptFetchComplete, |
| weak_method_factory_.GetWeakPtr(), |
| - entry->GetPageID(), |
| + translate_driver_->GetCurrentPageID(), |
| source_lang, |
| target_lang); |
| @@ -285,11 +273,10 @@ void TranslateManager::ReportLanguageDetectionError() { |
| GURL report_error_url = GURL(kReportLanguageDetectionErrorURL); |
| - GURL page_url = web_contents->GetController().GetActiveEntry()->GetURL(); |
| - report_error_url = net::AppendQueryParameter( |
| - report_error_url, |
| - kUrlQueryName, |
| - page_url.spec()); |
| + report_error_url = |
| + net::AppendQueryParameter(report_error_url, |
| + kUrlQueryName, |
| + translate_driver_->GetActiveURL().spec()); |
|
droger
2014/04/08 12:01:28
I'm sure you know this is related to http://crbug.
blundell
2014/04/08 12:46:02
I was planning on leaving this code in TranslateMa
droger
2014/04/08 13:01:21
I think this is fine, yes. Initially I had another
|
| report_error_url = net::AppendQueryParameter( |
| report_error_url, |
| @@ -328,12 +315,11 @@ void TranslateManager::PageTranslated(const std::string& source_lang, |
| error_type, |
| false); |
| - WebContents* web_contents = translate_tab_helper_->GetWebContents(); |
| if (error_type != TranslateErrors::NONE && |
| !translate_driver_->IsOffTheRecord()) { |
| TranslateErrorDetails error_details; |
| error_details.time = base::Time::Now(); |
| - error_details.url = web_contents->GetLastCommittedURL(); |
| + error_details.url = translate_driver_->GetLastCommittedURL(); |
| error_details.error = error_type; |
| NotifyTranslateError(error_details); |
| } |
| @@ -345,10 +331,8 @@ void TranslateManager::OnTranslateScriptFetchComplete( |
| const std::string& target_lang, |
| bool success, |
| const std::string& data) { |
| - WebContents* web_contents = translate_tab_helper_->GetWebContents(); |
| - DCHECK(web_contents); |
| - NavigationEntry* entry = web_contents->GetController().GetActiveEntry(); |
| - if (!entry || entry->GetPageID() != page_id) { |
| + if (!translate_driver_->HasCurrentPage() || |
| + translate_driver_->GetCurrentPageID() != page_id) { |
| // We navigated away from the page the translation was triggered on. |
| return; |
| } |
| @@ -369,7 +353,7 @@ void TranslateManager::OnTranslateScriptFetchComplete( |
| if (!translate_driver_->IsOffTheRecord()) { |
| TranslateErrorDetails error_details; |
| error_details.time = base::Time::Now(); |
| - error_details.url = entry->GetURL(); |
| + error_details.url = translate_driver_->GetActiveURL(); |
| error_details.error = TranslateErrors::NETWORK; |
| NotifyTranslateError(error_details); |
| } |