OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/extensions/settings_api_bubble_controller.h" | 5 #include "chrome/browser/extensions/settings_api_bubble_controller.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
| 8 #include "base/strings/utf_string_conversions.h" |
8 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
9 #include "chrome/browser/extensions/settings_api_helpers.h" | 10 #include "chrome/browser/extensions/settings_api_helpers.h" |
10 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
11 #include "chrome/browser/ui/startup/startup_browser_creator.h" | 12 #include "chrome/browser/ui/startup/startup_browser_creator.h" |
12 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.
h" | 13 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.
h" |
13 #include "chrome/common/url_constants.h" | 14 #include "chrome/common/url_constants.h" |
14 #include "chrome/grit/chromium_strings.h" | 15 #include "chrome/grit/chromium_strings.h" |
15 #include "chrome/grit/generated_resources.h" | 16 #include "chrome/grit/generated_resources.h" |
16 #include "extensions/browser/extension_prefs.h" | 17 #include "extensions/browser/extension_prefs.h" |
17 #include "extensions/browser/extension_registry.h" | 18 #include "extensions/browser/extension_registry.h" |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 extension ? SettingsOverrides::Get(extension) : NULL; | 157 extension ? SettingsOverrides::Get(extension) : NULL; |
157 if (!extension || !settings) { | 158 if (!extension || !settings) { |
158 NOTREACHED(); | 159 NOTREACHED(); |
159 return base::string16(); | 160 return base::string16(); |
160 } | 161 } |
161 | 162 |
162 bool home_change = settings->homepage != NULL; | 163 bool home_change = settings->homepage != NULL; |
163 bool startup_change = !settings->startup_pages.empty(); | 164 bool startup_change = !settings->startup_pages.empty(); |
164 bool search_change = settings->search_engine != NULL; | 165 bool search_change = settings->search_engine != NULL; |
165 | 166 |
| 167 int first_line_id = 0; |
| 168 int second_line_id = 0; |
| 169 |
166 base::string16 body; | 170 base::string16 body; |
167 switch (type_) { | 171 switch (type_) { |
168 case BUBBLE_TYPE_HOME_PAGE: | 172 case BUBBLE_TYPE_HOME_PAGE: |
169 body = l10n_util::GetStringUTF16( | 173 first_line_id = anchored_to_browser_action ? |
170 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_HOME_PAGE); | 174 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_HOME_PAGE_SPECIFIC : |
| 175 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_HOME_PAGE; |
171 if (startup_change && search_change) { | 176 if (startup_change && search_change) { |
172 body += l10n_util::GetStringUTF16( | 177 second_line_id = |
173 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_AND_SEARCH); | 178 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_AND_SEARCH; |
174 } else if (startup_change) { | 179 } else if (startup_change) { |
175 body += l10n_util::GetStringUTF16( | 180 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES; |
176 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES); | |
177 } else if (search_change) { | 181 } else if (search_change) { |
178 body += l10n_util::GetStringUTF16( | 182 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE; |
179 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE); | |
180 } | 183 } |
181 break; | 184 break; |
182 case BUBBLE_TYPE_STARTUP_PAGES: | 185 case BUBBLE_TYPE_STARTUP_PAGES: |
183 body = l10n_util::GetStringUTF16( | 186 first_line_id = anchored_to_browser_action ? |
184 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_START_PAGES); | 187 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_START_PAGES_SPECIFIC : |
| 188 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_START_PAGES; |
185 if (home_change && search_change) { | 189 if (home_change && search_change) { |
186 body += l10n_util::GetStringUTF16( | 190 second_line_id = |
187 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_AND_SEARCH); | 191 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_AND_SEARCH; |
188 } else if (home_change) { | 192 } else if (home_change) { |
189 body += l10n_util::GetStringUTF16( | 193 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_PAGE; |
190 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_PAGE); | |
191 } else if (search_change) { | 194 } else if (search_change) { |
192 body += l10n_util::GetStringUTF16( | 195 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE; |
193 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE); | |
194 } | 196 } |
195 break; | 197 break; |
196 case BUBBLE_TYPE_SEARCH_ENGINE: | 198 case BUBBLE_TYPE_SEARCH_ENGINE: |
197 body = l10n_util::GetStringUTF16( | 199 first_line_id = anchored_to_browser_action ? |
198 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_SEARCH_ENGINE); | 200 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_SEARCH_ENGINE_SPECIFIC : |
199 if (startup_change && home_change) { | 201 IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_SEARCH_ENGINE; |
200 body += l10n_util::GetStringUTF16( | 202 if (startup_change && home_change) |
201 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_AND_HOME); | 203 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_AND_HOME; |
202 } else if (startup_change) { | 204 else if (startup_change) |
203 body += l10n_util::GetStringUTF16( | 205 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES; |
204 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES); | 206 else if (home_change) |
205 } else if (home_change) { | 207 second_line_id = IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_PAGE; |
206 body += l10n_util::GetStringUTF16( | |
207 IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_PAGE); | |
208 } | |
209 break; | 208 break; |
210 } | 209 } |
211 if (!body.empty()) | 210 DCHECK_NE(0, first_line_id); |
212 body += l10n_util::GetStringUTF16( | 211 body = anchored_to_browser_action ? |
213 IDS_EXTENSIONS_SETTINGS_API_THIRD_LINE_CONFIRMATION); | 212 l10n_util::GetStringUTF16(first_line_id) : |
| 213 l10n_util::GetStringFUTF16(first_line_id, |
| 214 base::UTF8ToUTF16(extension->name())); |
| 215 if (second_line_id) |
| 216 body += l10n_util::GetStringUTF16(second_line_id); |
| 217 |
| 218 body += l10n_util::GetStringUTF16( |
| 219 IDS_EXTENSIONS_SETTINGS_API_THIRD_LINE_CONFIRMATION); |
| 220 |
214 return body; | 221 return body; |
215 } | 222 } |
216 | 223 |
217 base::string16 SettingsApiBubbleDelegate::GetOverflowText( | 224 base::string16 SettingsApiBubbleDelegate::GetOverflowText( |
218 const base::string16& overflow_count) const { | 225 const base::string16& overflow_count) const { |
219 // Does not have more than one extension in the list at a time. | 226 // Does not have more than one extension in the list at a time. |
220 NOTREACHED(); | 227 NOTREACHED(); |
221 return base::string16(); | 228 return base::string16(); |
222 } | 229 } |
223 | 230 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 return true; | 325 return true; |
319 } | 326 } |
320 | 327 |
321 bool SettingsApiBubbleController::CloseOnDeactivate() { | 328 bool SettingsApiBubbleController::CloseOnDeactivate() { |
322 // Startup bubbles tend to get lost in the focus storm that happens on | 329 // Startup bubbles tend to get lost in the focus storm that happens on |
323 // startup. Other types should dismiss on focus loss. | 330 // startup. Other types should dismiss on focus loss. |
324 return type_ != BUBBLE_TYPE_STARTUP_PAGES; | 331 return type_ != BUBBLE_TYPE_STARTUP_PAGES; |
325 } | 332 } |
326 | 333 |
327 } // namespace extensions | 334 } // namespace extensions |
OLD | NEW |