OLD | NEW |
---|---|
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/extension_install_ui.h" | 5 #include "chrome/browser/extensions/extension_install_ui.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
12 #include "base/rand_util.h" | 12 #include "base/rand_util.h" |
13 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
14 #include "chrome/browser/browser_list.h" | 14 #include "chrome/browser/browser_list.h" |
15 #include "chrome/browser/browser_window.h" | 15 #include "chrome/browser/browser_window.h" |
16 #include "chrome/browser/extensions/theme_installed_infobar_delegate.h" | 16 #include "chrome/browser/extensions/theme_installed_infobar_delegate.h" |
17 #include "chrome/browser/profile.h" | 17 #include "chrome/browser/profile.h" |
18 #include "chrome/browser/tab_contents/tab_contents.h" | 18 #include "chrome/browser/tab_contents/tab_contents.h" |
19 #if defined(TOOLKIT_VIEWS) // TODO(port) | 19 #if defined(TOOLKIT_VIEWS) // TODO(port) |
20 #include "chrome/browser/views/extensions/extension_installed_bubble.h" | 20 #include "chrome/browser/views/extensions/extension_installed_bubble.h" |
21 #endif // TOOLKIT_VIEWS | 21 #endif // TOOLKIT_VIEWS |
22 #include "chrome/common/extensions/extension.h" | 22 #include "chrome/common/extensions/extension.h" |
23 #include "chrome/common/notification_service.h" | 23 #include "chrome/common/notification_service.h" |
24 #include "chrome/common/url_constants.h" | |
24 #include "grit/browser_resources.h" | 25 #include "grit/browser_resources.h" |
25 #include "grit/chromium_strings.h" | 26 #include "grit/chromium_strings.h" |
26 #include "grit/generated_resources.h" | 27 #include "grit/generated_resources.h" |
27 #include "grit/theme_resources.h" | 28 #include "grit/theme_resources.h" |
28 | 29 |
29 #if defined(TOOLKIT_GTK) | 30 #if defined(TOOLKIT_GTK) |
30 #include "chrome/browser/extensions/gtk_theme_installed_infobar_delegate.h" | 31 #include "chrome/browser/extensions/gtk_theme_installed_infobar_delegate.h" |
31 #include "chrome/browser/gtk/gtk_theme_provider.h" | 32 #include "chrome/browser/gtk/gtk_theme_provider.h" |
32 #endif | 33 #endif |
33 | 34 |
34 namespace { | 35 namespace { |
35 | 36 |
36 static std::wstring GetInstallWarning(Extension* extension) { | 37 static std::wstring GetInstallWarning(Extension* extension) { |
37 // If the extension has a plugin, it's easy: the plugin has the most severe | 38 // If the extension has a plugin, it's easy: the plugin has the most severe |
38 // warning. | 39 // warning. |
39 if (!extension->plugins().empty()) | 40 if (!extension->plugins().empty()) |
40 return l10n_util::GetString(IDS_EXTENSION_PROMPT_WARNING_NEW_FULL_ACCESS); | 41 return l10n_util::GetString(IDS_EXTENSION_PROMPT_WARNING_NEW_FULL_ACCESS); |
41 | 42 |
43 // We also show the severe warning if the extension has access to any file:// | |
44 // URLs. They aren't *quite* as dangerous as full access to the system via | |
45 // NPAPI, but pretty dang close. Content scripts are currently the only way | |
46 // that extension can get access to file:// URLs. | |
47 for (UserScriptList::const_iterator script = | |
48 extension->content_scripts().begin(); | |
49 script != extension->content_scripts().end(); | |
50 ++script) { | |
51 for (UserScript::PatternList::const_iterator pattern = | |
52 script->url_patterns().begin(); | |
Finnur
2009/11/22 00:13:44
nit: That looks like 3 spaces, not 4... ? :) Also
| |
53 pattern != script->url_patterns().end(); | |
54 ++pattern) { | |
55 if (pattern->scheme() == chrome::kFileScheme) { | |
56 return l10n_util::GetString( | |
57 IDS_EXTENSION_PROMPT_WARNING_NEW_FULL_ACCESS); | |
58 } | |
59 } | |
60 } | |
61 | |
42 // Otherwise, we go in descending order of severity: all hosts, several hosts, | 62 // Otherwise, we go in descending order of severity: all hosts, several hosts, |
43 // a single host, no hosts. For each of these, we also have a variation of the | 63 // a single host, no hosts. For each of these, we also have a variation of the |
44 // message for when api permissions are also requested. | 64 // message for when api permissions are also requested. |
45 if (extension->HasAccessToAllHosts()) { | 65 if (extension->HasAccessToAllHosts()) { |
46 if (extension->api_permissions().empty()) | 66 if (extension->api_permissions().empty()) |
47 return l10n_util::GetString(IDS_EXTENSION_PROMPT_WARNING_NEW_ALL_HOSTS); | 67 return l10n_util::GetString(IDS_EXTENSION_PROMPT_WARNING_NEW_ALL_HOSTS); |
48 else | 68 else |
49 return l10n_util::GetString( | 69 return l10n_util::GetString( |
50 IDS_EXTENSION_PROMPT_WARNING_NEW_ALL_HOSTS_AND_BROWSER); | 70 IDS_EXTENSION_PROMPT_WARNING_NEW_ALL_HOSTS_AND_BROWSER); |
51 } | 71 } |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
223 InfoBarDelegate* ExtensionInstallUI::GetNewInfoBarDelegate( | 243 InfoBarDelegate* ExtensionInstallUI::GetNewInfoBarDelegate( |
224 Extension* new_theme, TabContents* tab_contents) { | 244 Extension* new_theme, TabContents* tab_contents) { |
225 #if defined(TOOLKIT_GTK) | 245 #if defined(TOOLKIT_GTK) |
226 return new GtkThemeInstalledInfoBarDelegate(tab_contents, new_theme, | 246 return new GtkThemeInstalledInfoBarDelegate(tab_contents, new_theme, |
227 previous_theme_id_, previous_use_gtk_theme_); | 247 previous_theme_id_, previous_use_gtk_theme_); |
228 #else | 248 #else |
229 return new ThemeInstalledInfoBarDelegate(tab_contents, new_theme, | 249 return new ThemeInstalledInfoBarDelegate(tab_contents, new_theme, |
230 previous_theme_id_); | 250 previous_theme_id_); |
231 #endif | 251 #endif |
232 } | 252 } |
OLD | NEW |