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/common/extensions/extension.h" | 5 #include "chrome/common/extensions/extension.h" |
6 | 6 |
7 #include <ostream> | 7 #include <ostream> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 UserScript::kValidUserScriptSchemes | URLPattern::SCHEME_CHROMEUI; | 336 UserScript::kValidUserScriptSchemes | URLPattern::SCHEME_CHROMEUI; |
337 | 337 |
338 Extension::Requirements::Requirements() | 338 Extension::Requirements::Requirements() |
339 : webgl(false), | 339 : webgl(false), |
340 css3d(false), | 340 css3d(false), |
341 npapi(false) { | 341 npapi(false) { |
342 } | 342 } |
343 | 343 |
344 Extension::Requirements::~Requirements() {} | 344 Extension::Requirements::~Requirements() {} |
345 | 345 |
346 Extension::OAuth2Info::OAuth2Info() {} | |
347 Extension::OAuth2Info::~OAuth2Info() {} | |
348 | |
349 Extension::ActionInfo::ActionInfo() {} | 346 Extension::ActionInfo::ActionInfo() {} |
350 Extension::ActionInfo::~ActionInfo() {} | 347 Extension::ActionInfo::~ActionInfo() {} |
351 | 348 |
352 Extension::FileHandlerInfo::FileHandlerInfo() {} | 349 Extension::FileHandlerInfo::FileHandlerInfo() {} |
353 Extension::FileHandlerInfo::~FileHandlerInfo() {} | 350 Extension::FileHandlerInfo::~FileHandlerInfo() {} |
354 | 351 |
355 // | 352 // |
356 // Extension | 353 // Extension |
357 // | 354 // |
358 | 355 |
(...skipping 1623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1982 !LoadSandboxedPages(error) || | 1979 !LoadSandboxedPages(error) || |
1983 !LoadRequirements(error) || | 1980 !LoadRequirements(error) || |
1984 !LoadDefaultLocale(error) || | 1981 !LoadDefaultLocale(error) || |
1985 !LoadOfflineEnabled(error) || | 1982 !LoadOfflineEnabled(error) || |
1986 !LoadOptionsPage(error) || | 1983 !LoadOptionsPage(error) || |
1987 // LoadBackgroundScripts() must be called before LoadBackgroundPage(). | 1984 // LoadBackgroundScripts() must be called before LoadBackgroundPage(). |
1988 !LoadBackgroundScripts(error) || | 1985 !LoadBackgroundScripts(error) || |
1989 !LoadBackgroundPage(api_permissions, error) || | 1986 !LoadBackgroundPage(api_permissions, error) || |
1990 !LoadBackgroundPersistent(api_permissions, error) || | 1987 !LoadBackgroundPersistent(api_permissions, error) || |
1991 !LoadBackgroundAllowJSAccess(api_permissions, error) || | 1988 !LoadBackgroundAllowJSAccess(api_permissions, error) || |
1992 !LoadWebIntentServices(error) || | 1989 !LoadWebIntentServices(error)) |
1993 !LoadOAuth2Info(error)) | |
1994 return false; | 1990 return false; |
1995 | 1991 |
1996 return true; | 1992 return true; |
1997 } | 1993 } |
1998 | 1994 |
1999 bool Extension::LoadDescription(string16* error) { | 1995 bool Extension::LoadDescription(string16* error) { |
2000 if (manifest_->HasKey(keys::kDescription) && | 1996 if (manifest_->HasKey(keys::kDescription) && |
2001 !manifest_->GetString(keys::kDescription, &description_)) { | 1997 !manifest_->GetString(keys::kDescription, &description_)) { |
2002 *error = ASCIIToUTF16(errors::kInvalidDescription); | 1998 *error = ASCIIToUTF16(errors::kInvalidDescription); |
2003 return false; | 1999 return false; |
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2841 !LoadContentSecurityPolicy(error)) | 2837 !LoadContentSecurityPolicy(error)) |
2842 return false; | 2838 return false; |
2843 | 2839 |
2844 return true; | 2840 return true; |
2845 } | 2841 } |
2846 | 2842 |
2847 bool Extension::LoadManifestHandlerFeatures(string16* error) { | 2843 bool Extension::LoadManifestHandlerFeatures(string16* error) { |
2848 std::vector<std::string> keys = ManifestHandler::GetKeys(); | 2844 std::vector<std::string> keys = ManifestHandler::GetKeys(); |
2849 for (size_t i = 0; i < keys.size(); ++i) { | 2845 for (size_t i = 0; i < keys.size(); ++i) { |
2850 Value* value = NULL; | 2846 Value* value = NULL; |
2851 if (!manifest_->Get(keys[i], &value)) | 2847 if (!manifest_->Get(keys[i], &value)) { |
2852 continue; | 2848 if (!ManifestHandler::Get(keys[i])->HasNoKey(this, error)) |
2853 if (!ManifestHandler::Get(keys[i])->Parse(value, this, error)) | 2849 return false; |
| 2850 } else if (!ManifestHandler::Get(keys[i])->Parse(value, this, error)) { |
2854 return false; | 2851 return false; |
| 2852 } |
2855 } | 2853 } |
2856 return true; | 2854 return true; |
2857 } | 2855 } |
2858 | 2856 |
2859 bool Extension::LoadDevToolsPage(string16* error) { | 2857 bool Extension::LoadDevToolsPage(string16* error) { |
2860 if (!manifest_->HasKey(keys::kDevToolsPage)) | 2858 if (!manifest_->HasKey(keys::kDevToolsPage)) |
2861 return true; | 2859 return true; |
2862 std::string devtools_str; | 2860 std::string devtools_str; |
2863 if (!manifest_->GetString(keys::kDevToolsPage, &devtools_str)) { | 2861 if (!manifest_->GetString(keys::kDevToolsPage, &devtools_str)) { |
2864 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); | 2862 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3648 } | 3646 } |
3649 } else { | 3647 } else { |
3650 DCHECK(result->default_popup_url.is_empty()) | 3648 DCHECK(result->default_popup_url.is_empty()) |
3651 << "Shouldn't be possible for the popup to be set."; | 3649 << "Shouldn't be possible for the popup to be set."; |
3652 } | 3650 } |
3653 } | 3651 } |
3654 | 3652 |
3655 return result.Pass(); | 3653 return result.Pass(); |
3656 } | 3654 } |
3657 | 3655 |
3658 bool Extension::LoadOAuth2Info(string16* error) { | |
3659 if (!manifest_->HasKey(keys::kOAuth2)) | |
3660 return true; | |
3661 | |
3662 if (!manifest_->GetString(keys::kOAuth2ClientId, &oauth2_info_.client_id) || | |
3663 oauth2_info_.client_id.empty()) { | |
3664 *error = ASCIIToUTF16(errors::kInvalidOAuth2ClientId); | |
3665 return false; | |
3666 } | |
3667 | |
3668 ListValue* list = NULL; | |
3669 if (!manifest_->GetList(keys::kOAuth2Scopes, &list)) { | |
3670 *error = ASCIIToUTF16(errors::kInvalidOAuth2Scopes); | |
3671 return false; | |
3672 } | |
3673 | |
3674 for (size_t i = 0; i < list->GetSize(); ++i) { | |
3675 std::string scope; | |
3676 if (!list->GetString(i, &scope)) { | |
3677 *error = ASCIIToUTF16(errors::kInvalidOAuth2Scopes); | |
3678 return false; | |
3679 } | |
3680 oauth2_info_.scopes.push_back(scope); | |
3681 } | |
3682 | |
3683 return true; | |
3684 } | |
3685 | |
3686 bool Extension::HasMultipleUISurfaces() const { | 3656 bool Extension::HasMultipleUISurfaces() const { |
3687 int num_surfaces = 0; | 3657 int num_surfaces = 0; |
3688 | 3658 |
3689 if (page_action_info()) | 3659 if (page_action_info()) |
3690 ++num_surfaces; | 3660 ++num_surfaces; |
3691 | 3661 |
3692 if (browser_action_info()) | 3662 if (browser_action_info()) |
3693 ++num_surfaces; | 3663 ++num_surfaces; |
3694 | 3664 |
3695 if (is_app()) | 3665 if (is_app()) |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3867 | 3837 |
3868 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( | 3838 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( |
3869 const Extension* extension, | 3839 const Extension* extension, |
3870 const PermissionSet* permissions, | 3840 const PermissionSet* permissions, |
3871 Reason reason) | 3841 Reason reason) |
3872 : reason(reason), | 3842 : reason(reason), |
3873 extension(extension), | 3843 extension(extension), |
3874 permissions(permissions) {} | 3844 permissions(permissions) {} |
3875 | 3845 |
3876 } // namespace extensions | 3846 } // namespace extensions |
OLD | NEW |