diff options
author | blundell@chromium.org <blundell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-08 22:45:03 +0000 |
---|---|---|
committer | blundell@chromium.org <blundell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-08 22:45:03 +0000 |
commit | ad0d40c1a2258c7574bb1171ffd8ad9a232fd188 (patch) | |
tree | dc731c1722c85f7b507dfa56ae875fd5c34c34f2 /chrome/browser/translate | |
parent | 934a20156e0471ec36a6418d83c61e6f731c38d1 (diff) | |
download | chromium_src-ad0d40c1a2258c7574bb1171ffd8ad9a232fd188.zip chromium_src-ad0d40c1a2258c7574bb1171ffd8ad9a232fd188.tar.gz chromium_src-ad0d40c1a2258c7574bb1171ffd8ad9a232fd188.tar.bz2 |
Remove most content-level dependencies from TranslateManager.
This CL introduces new TranslateDriver APIs to abstract calls to WebContents,
NavigationController, and NavigationEntry.
BUG=360027
Review URL: https://codereview.chromium.org/228483003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262528 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/translate')
-rw-r--r-- | chrome/browser/translate/translate_manager.cc | 40 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager.h | 4 |
2 files changed, 12 insertions, 32 deletions
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc index cc2fea6..0868817 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()); 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); } diff --git a/chrome/browser/translate/translate_manager.h b/chrome/browser/translate/translate_manager.h index 9870c8b..894c6c9 100644 --- a/chrome/browser/translate/translate_manager.h +++ b/chrome/browser/translate/translate_manager.h @@ -22,10 +22,6 @@ class TranslateDriver; struct TranslateErrorDetails; class TranslateTabHelper; -namespace content { -class WebContents; -} - // The TranslateManager class is responsible for showing an info-bar when a page // in a language different than the user language is loaded. It triggers the // page translation the user requests. |