Commit e6a4614b authored by dominikg@chromium.org's avatar dominikg@chromium.org

Do not show translate bar for MHTML files.

Add a check for MHTML files to TranslateManager::IsTranslatableURL(). This
causes the translate infobar to not be shown for MHTML files, because Chrome
fails when trying to translate MHTML files.
BUG=217945

Review URL: https://chromiumcodereview.appspot.com/19857005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215878 0039d316-1c4b-4281-b951-d872f2087c98
parent 804eb491
...@@ -27,6 +27,7 @@ enum InitiationStatusType { ...@@ -27,6 +27,7 @@ enum InitiationStatusType {
INITIATION_STATUS_DISABLED_BY_SWITCH, INITIATION_STATUS_DISABLED_BY_SWITCH,
INITIATION_STATUS_DISABLED_BY_CONFIG, INITIATION_STATUS_DISABLED_BY_CONFIG,
INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED, INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED,
INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED,
INITIATION_STATUS_URL_IS_NOT_SUPPORTED, INITIATION_STATUS_URL_IS_NOT_SUPPORTED,
INITIATION_STATUS_SIMILAR_LANGUAGES, INITIATION_STATUS_SIMILAR_LANGUAGES,
INITIATION_STATUS_ACCEPT_LANGUAGES, INITIATION_STATUS_ACCEPT_LANGUAGES,
......
...@@ -32,6 +32,7 @@ class MetricsRecorder { ...@@ -32,6 +32,7 @@ class MetricsRecorder {
int expected_disabled_by_switch, int expected_disabled_by_switch,
int expected_disabled_by_config, int expected_disabled_by_config,
int expected_language_is_not_supported, int expected_language_is_not_supported,
int expected_mime_type_is_not_supported,
int expected_url_is_not_supported, int expected_url_is_not_supported,
int expected_similar_languages, int expected_similar_languages,
int expected_accept_languages, int expected_accept_languages,
...@@ -48,6 +49,8 @@ class MetricsRecorder { ...@@ -48,6 +49,8 @@ class MetricsRecorder {
TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG)); TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG));
EXPECT_EQ(expected_language_is_not_supported, GetCountWithoutSnapshot( EXPECT_EQ(expected_language_is_not_supported, GetCountWithoutSnapshot(
TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED)); TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED));
EXPECT_EQ(expected_mime_type_is_not_supported, GetCountWithoutSnapshot(
TranslateBrowserMetrics::INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED));
EXPECT_EQ(expected_url_is_not_supported, GetCountWithoutSnapshot( EXPECT_EQ(expected_url_is_not_supported, GetCountWithoutSnapshot(
TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED)); TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED));
EXPECT_EQ(expected_similar_languages, GetCountWithoutSnapshot( EXPECT_EQ(expected_similar_languages, GetCountWithoutSnapshot(
...@@ -107,37 +110,40 @@ TEST(TranslateBrowserMetricsTest, ReportInitiationStatus) { ...@@ -107,37 +110,40 @@ TEST(TranslateBrowserMetricsTest, ReportInitiationStatus) {
MetricsRecorder recorder(TranslateBrowserMetrics::GetMetricsName( MetricsRecorder recorder(TranslateBrowserMetrics::GetMetricsName(
TranslateBrowserMetrics::UMA_INITIATION_STATUS)); TranslateBrowserMetrics::UMA_INITIATION_STATUS));
recorder.CheckInitiationStatus(0, 0, 0, 0, 0, 0, 0, 0, 0, 0); recorder.CheckInitiationStatus(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_PREFS); TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_PREFS);
recorder.CheckInitiationStatus(1, 0, 0, 0, 0, 0, 0, 0, 0, 0); recorder.CheckInitiationStatus(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_SWITCH); TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_SWITCH);
recorder.CheckInitiationStatus(1, 1, 0, 0, 0, 0, 0, 0, 0, 0); recorder.CheckInitiationStatus(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG); TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG);
recorder.CheckInitiationStatus(1, 1, 1, 0, 0, 0, 0, 0, 0, 0); recorder.CheckInitiationStatus(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED); TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED);
recorder.CheckInitiationStatus(1, 1, 1, 1, 0, 0, 0, 0, 0, 0); recorder.CheckInitiationStatus(1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED); TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 0, 0, 0, 0, 0); recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 0, 0, 0, 0); recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_ACCEPT_LANGUAGES); TranslateBrowserMetrics::INITIATION_STATUS_ACCEPT_LANGUAGES);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 0, 0, 0); recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_AUTO_BY_CONFIG); TranslateBrowserMetrics::INITIATION_STATUS_AUTO_BY_CONFIG);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 0, 0); recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_AUTO_BY_LINK); TranslateBrowserMetrics::INITIATION_STATUS_AUTO_BY_LINK);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 0); recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_SHOW_INFOBAR); TranslateBrowserMetrics::INITIATION_STATUS_SHOW_INFOBAR);
recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 1); recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
} }
TEST(TranslateBrowserMetricsTest, ReportLanguageDetectionError) { TEST(TranslateBrowserMetricsTest, ReportLanguageDetectionError) {
......
...@@ -332,6 +332,14 @@ void TranslateManager::InitiateTranslation(WebContents* web_contents, ...@@ -332,6 +332,14 @@ void TranslateManager::InitiateTranslation(WebContents* web_contents,
return; return;
} }
// MHTML pages currently cannot be translated.
// See bug: 217945.
if (web_contents->GetContentsMimeType() == "multipart/related") {
TranslateBrowserMetrics::ReportInitiationStatus(
TranslateBrowserMetrics::INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED);
return;
}
// Don't translate any Chrome specific page, e.g., New Tab Page, Download, // Don't translate any Chrome specific page, e.g., New Tab Page, Download,
// History, and so on. // History, and so on.
GURL page_url = web_contents->GetURL(); GURL page_url = web_contents->GetURL();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment