OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/options_menu_model.h" | 5 #include "chrome/browser/translate/options_menu_model.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "chrome/app/chrome_command_ids.h" | 8 #include "chrome/app/chrome_command_ids.h" |
9 #include "chrome/browser/translate/translate_infobar_delegate.h" | 9 #include "chrome/browser/translate/translate_infobar_delegate.h" |
10 #include "chrome/common/url_constants.h" | 10 #include "components/translate/core/browser/translate_client.h" |
11 #include "content/public/browser/web_contents.h" | 11 #include "components/translate/core/browser/translate_driver.h" |
12 #include "grit/component_strings.h" | 12 #include "grit/component_strings.h" |
13 #include "grit/locale_settings.h" | 13 #include "grit/locale_settings.h" |
14 #include "ui/base/l10n/l10n_util.h" | 14 #include "ui/base/l10n/l10n_util.h" |
15 | 15 |
16 using content::NavigationEntry; | 16 namespace { |
17 using content::OpenURLParams; | 17 |
18 using content::Referrer; | 18 const char kAboutGoogleTranslateURL[] = |
blundell
2014/05/19 12:38:42
Why did you move this here, out of curiosity?
| |
19 using content::WebContents; | 19 #if defined(OS_CHROMEOS) |
20 "https://support.google.com/chromeos/?p=ib_translation_bar"; | |
21 #else | |
22 "https://support.google.com/chrome/?p=ib_translation_bar"; | |
23 #endif | |
24 | |
25 } // namespace | |
20 | 26 |
21 OptionsMenuModel::OptionsMenuModel( | 27 OptionsMenuModel::OptionsMenuModel( |
22 TranslateInfoBarDelegate* translate_delegate) | 28 TranslateInfoBarDelegate* translate_delegate) |
23 : ui::SimpleMenuModel(this), | 29 : ui::SimpleMenuModel(this), |
24 translate_infobar_delegate_(translate_delegate) { | 30 translate_infobar_delegate_(translate_delegate) { |
25 // |translate_delegate| must already be owned. | |
26 DCHECK(translate_infobar_delegate_->GetWebContents()); | |
27 | |
28 base::string16 original_language = translate_delegate->language_name_at( | 31 base::string16 original_language = translate_delegate->language_name_at( |
29 translate_delegate->original_language_index()); | 32 translate_delegate->original_language_index()); |
30 base::string16 target_language = translate_delegate->language_name_at( | 33 base::string16 target_language = translate_delegate->language_name_at( |
31 translate_delegate->target_language_index()); | 34 translate_delegate->target_language_index()); |
32 | 35 |
33 bool autodetermined_source_language = | 36 bool autodetermined_source_language = |
34 translate_delegate->original_language_index() == | 37 translate_delegate->original_language_index() == |
35 TranslateInfoBarDelegate::kNoIndex; | 38 TranslateInfoBarDelegate::kNoIndex; |
36 | 39 |
37 // Populate the menu. | 40 // Populate the menu. |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
114 | 117 |
115 case IDC_TRANSLATE_OPTIONS_ALWAYS: | 118 case IDC_TRANSLATE_OPTIONS_ALWAYS: |
116 translate_infobar_delegate_->ToggleAlwaysTranslate(); | 119 translate_infobar_delegate_->ToggleAlwaysTranslate(); |
117 break; | 120 break; |
118 | 121 |
119 case IDC_TRANSLATE_REPORT_BAD_LANGUAGE_DETECTION: | 122 case IDC_TRANSLATE_REPORT_BAD_LANGUAGE_DETECTION: |
120 translate_infobar_delegate_->ReportLanguageDetectionError(); | 123 translate_infobar_delegate_->ReportLanguageDetectionError(); |
121 break; | 124 break; |
122 | 125 |
123 case IDC_TRANSLATE_OPTIONS_ABOUT: { | 126 case IDC_TRANSLATE_OPTIONS_ABOUT: { |
124 WebContents* web_contents = translate_infobar_delegate_->GetWebContents(); | 127 TranslateClient* translate_client = |
blundell
2014/05/19 12:38:42
It seems like it would also be OK for this code to
| |
125 if (web_contents) { | 128 translate_infobar_delegate_->GetTranslateClient(); |
126 OpenURLParams params( | 129 if (translate_client) { |
127 GURL(chrome::kAboutGoogleTranslateURL), Referrer(), | 130 translate_client->GetTranslateDriver()->OpenUrlInNewTab( |
128 NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false); | 131 GURL(kAboutGoogleTranslateURL)); |
129 web_contents->OpenURL(params); | |
130 } | 132 } |
131 break; | 133 break; |
132 } | 134 } |
133 | 135 |
134 default: | 136 default: |
135 NOTREACHED() << "Invalid command id from menu."; | 137 NOTREACHED() << "Invalid command id from menu."; |
136 break; | 138 break; |
137 } | 139 } |
138 } | 140 } |
OLD | NEW |