OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/common/extensions/extension.h" | 5 #include "chrome/common/extensions/extension.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 1982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1993 #if defined(USE_VIRTUAL_KEYBOARD) | 1993 #if defined(USE_VIRTUAL_KEYBOARD) |
1994 page != chrome::kChromeUIKeyboardHost && | 1994 page != chrome::kChromeUIKeyboardHost && |
1995 #endif | 1995 #endif |
1996 #if defined(OS_CHROMEOS) | 1996 #if defined(OS_CHROMEOS) |
1997 page != chrome::kChromeUIActivationMessageHost && | 1997 page != chrome::kChromeUIActivationMessageHost && |
1998 #endif | 1998 #endif |
1999 page != chrome::kChromeUIBookmarksHost && | 1999 page != chrome::kChromeUIBookmarksHost && |
2000 page != chrome::kChromeUIHistoryHost | 2000 page != chrome::kChromeUIHistoryHost |
2001 #if defined(FILE_MANAGER_EXTENSION) | 2001 #if defined(FILE_MANAGER_EXTENSION) |
2002 && | 2002 && |
2003 !(location() == COMPONENT && | 2003 !(location() == COMPONENT && |
2004 page == chrome::kChromeUIFileManagerHost) | 2004 page == chrome::kChromeUIFileManagerHost) |
2005 #endif | 2005 #endif |
2006 ) || | 2006 ) || |
2007 !overrides->GetStringWithoutPathExpansion(*iter, &val)) { | 2007 !overrides->GetStringWithoutPathExpansion(*iter, &val)) { |
2008 *error = errors::kInvalidChromeURLOverrides; | 2008 *error = errors::kInvalidChromeURLOverrides; |
2009 return false; | 2009 return false; |
2010 } | 2010 } |
2011 // Replace the entry with a fully qualified chrome-extension:// URL. | 2011 // Replace the entry with a fully qualified chrome-extension:// URL. |
2012 chrome_url_overrides_[page] = GetResourceURL(val); | 2012 chrome_url_overrides_[page] = GetResourceURL(val); |
2013 } | 2013 } |
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2822 return false; | 2822 return false; |
2823 } | 2823 } |
2824 | 2824 |
2825 return true; | 2825 return true; |
2826 } | 2826 } |
2827 | 2827 |
2828 bool Extension::CanSpecifyComponentOnlyPermission() const { | 2828 bool Extension::CanSpecifyComponentOnlyPermission() const { |
2829 // Only COMPONENT extensions can use private APIs. | 2829 // Only COMPONENT extensions can use private APIs. |
2830 // TODO(asargent) - We want a more general purpose mechanism for this, | 2830 // TODO(asargent) - We want a more general purpose mechanism for this, |
2831 // and better error messages. (http://crbug.com/54013) | 2831 // and better error messages. (http://crbug.com/54013) |
2832 if (location_ == Extension::COMPONENT) | 2832 return location_ == Extension::COMPONENT; |
2833 return true; | |
2834 | |
2835 #ifndef NDEBUG | |
2836 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
2837 switches::kExposePrivateExtensionApi)) { | |
2838 return true; | |
2839 } | |
2840 #endif | |
2841 | |
2842 return false; | |
2843 } | 2833 } |
2844 | 2834 |
2845 bool Extension::CanSpecifyExperimentalPermission() const { | 2835 bool Extension::CanSpecifyExperimentalPermission() const { |
2846 if (location_ == Extension::COMPONENT) | 2836 if (location_ == Extension::COMPONENT) |
2847 return true; | 2837 return true; |
2848 | 2838 |
2849 if (CommandLine::ForCurrentProcess()->HasSwitch( | 2839 if (CommandLine::ForCurrentProcess()->HasSwitch( |
2850 switches::kEnableExperimentalExtensionApis)) { | 2840 switches::kEnableExperimentalExtensionApis)) { |
2851 return true; | 2841 return true; |
2852 } | 2842 } |
2853 | 2843 |
2854 // We rely on the webstore to check access to experimental. This way we can | 2844 // We rely on the webstore to check access to experimental. This way we can |
2855 // whitelist extensions to have access to experimental in just the store, and | 2845 // whitelist extensions to have access to experimental in just the store, and |
2856 // not have to push a new version of the client. | 2846 // not have to push a new version of the client. |
2857 if (from_webstore()) | 2847 if (from_webstore()) |
2858 return true; | 2848 return true; |
2859 | 2849 |
2860 return false; | 2850 return false; |
2861 } | 2851 } |
2862 | 2852 |
2863 bool Extension::CanExecuteScriptEverywhere() const { | 2853 bool Extension::CanExecuteScriptEverywhere() const { |
2864 if (location() == Extension::COMPONENT | 2854 if (location() == Extension::COMPONENT) |
2865 #ifndef NDEBUG | |
2866 || CommandLine::ForCurrentProcess()->HasSwitch( | |
2867 switches::kExposePrivateExtensionApi) | |
2868 #endif | |
2869 ) | |
2870 return true; | 2855 return true; |
2871 | 2856 |
2872 ScriptingWhitelist* whitelist = | 2857 ScriptingWhitelist* whitelist = |
2873 ExtensionConfig::GetInstance()->whitelist(); | 2858 ExtensionConfig::GetInstance()->whitelist(); |
2874 | 2859 |
2875 for (ScriptingWhitelist::const_iterator it = whitelist->begin(); | 2860 for (ScriptingWhitelist::const_iterator it = whitelist->begin(); |
2876 it != whitelist->end(); ++it) { | 2861 it != whitelist->end(); ++it) { |
2877 if (id() == *it) { | 2862 if (id() == *it) { |
2878 return true; | 2863 return true; |
2879 } | 2864 } |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3000 already_disabled(false), | 2985 already_disabled(false), |
3001 extension(extension) {} | 2986 extension(extension) {} |
3002 | 2987 |
3003 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( | 2988 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( |
3004 const Extension* extension, | 2989 const Extension* extension, |
3005 const ExtensionPermissionSet* permissions, | 2990 const ExtensionPermissionSet* permissions, |
3006 Reason reason) | 2991 Reason reason) |
3007 : reason(reason), | 2992 : reason(reason), |
3008 extension(extension), | 2993 extension(extension), |
3009 permissions(permissions) {} | 2994 permissions(permissions) {} |
OLD | NEW |