| 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 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1414 | 1414 |
| 1415 bool Extension::LoadIcons(string16* error) { | 1415 bool Extension::LoadIcons(string16* error) { |
| 1416 if (!manifest_->HasKey(keys::kIcons)) | 1416 if (!manifest_->HasKey(keys::kIcons)) |
| 1417 return true; | 1417 return true; |
| 1418 DictionaryValue* icons_value = NULL; | 1418 DictionaryValue* icons_value = NULL; |
| 1419 if (!manifest_->GetDictionary(keys::kIcons, &icons_value)) { | 1419 if (!manifest_->GetDictionary(keys::kIcons, &icons_value)) { |
| 1420 *error = ASCIIToUTF16(errors::kInvalidIcons); | 1420 *error = ASCIIToUTF16(errors::kInvalidIcons); |
| 1421 return false; | 1421 return false; |
| 1422 } | 1422 } |
| 1423 | 1423 |
| 1424 for (size_t i = 0; i < ExtensionIconSet::kNumIconSizes; ++i) { | 1424 for (size_t i = 0; i < icons_.num_allowed_sizes(); ++i) { |
| 1425 std::string key = base::IntToString(ExtensionIconSet::kIconSizes[i]); | 1425 std::string key = base::IntToString(icons_.allowed_sizes()[i]); |
| 1426 if (icons_value->HasKey(key)) { | 1426 if (icons_value->HasKey(key)) { |
| 1427 std::string icon_path; | 1427 std::string icon_path; |
| 1428 if (!icons_value->GetString(key, &icon_path)) { | 1428 if (!icons_value->GetString(key, &icon_path)) { |
| 1429 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( | 1429 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( |
| 1430 errors::kInvalidIconPath, key); | 1430 errors::kInvalidIconPath, key); |
| 1431 return false; | 1431 return false; |
| 1432 } | 1432 } |
| 1433 | 1433 |
| 1434 if (!icon_path.empty() && icon_path[0] == '/') | 1434 if (!icon_path.empty() && icon_path[0] == '/') |
| 1435 icon_path = icon_path.substr(1); | 1435 icon_path = icon_path.substr(1); |
| 1436 | 1436 |
| 1437 if (icon_path.empty()) { | 1437 if (icon_path.empty()) { |
| 1438 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( | 1438 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( |
| 1439 errors::kInvalidIconPath, key); | 1439 errors::kInvalidIconPath, key); |
| 1440 return false; | 1440 return false; |
| 1441 } | 1441 } |
| 1442 icons_.Add(ExtensionIconSet::kIconSizes[i], icon_path); | 1442 icons_.Add(icons_.allowed_sizes()[i], icon_path); |
| 1443 } | 1443 } |
| 1444 } | 1444 } |
| 1445 return true; | 1445 return true; |
| 1446 } | 1446 } |
| 1447 | 1447 |
| 1448 bool Extension::LoadCommands(string16* error) { | 1448 bool Extension::LoadCommands(string16* error) { |
| 1449 if (manifest_->HasKey(keys::kCommands)) { | 1449 if (manifest_->HasKey(keys::kCommands)) { |
| 1450 DictionaryValue* commands = NULL; | 1450 DictionaryValue* commands = NULL; |
| 1451 if (!manifest_->GetDictionary(keys::kCommands, &commands)) { | 1451 if (!manifest_->GetDictionary(keys::kCommands, &commands)) { |
| 1452 *error = ASCIIToUTF16(errors::kInvalidCommandsKey); | 1452 *error = ASCIIToUTF16(errors::kInvalidCommandsKey); |
| (...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2890 bool Extension::IsTrustedId(const std::string& id) { | 2890 bool Extension::IsTrustedId(const std::string& id) { |
| 2891 // See http://b/4946060 for more details. | 2891 // See http://b/4946060 for more details. |
| 2892 return id == std::string("nckgahadagoaajjgafhacjanaoiihapd"); | 2892 return id == std::string("nckgahadagoaajjgafhacjanaoiihapd"); |
| 2893 } | 2893 } |
| 2894 | 2894 |
| 2895 Extension::Extension(const FilePath& path, | 2895 Extension::Extension(const FilePath& path, |
| 2896 scoped_ptr<extensions::Manifest> manifest) | 2896 scoped_ptr<extensions::Manifest> manifest) |
| 2897 : manifest_version_(0), | 2897 : manifest_version_(0), |
| 2898 incognito_split_mode_(false), | 2898 incognito_split_mode_(false), |
| 2899 offline_enabled_(false), | 2899 offline_enabled_(false), |
| 2900 icons_(ExtensionIconSet::ICON_SET_MANIFEST_ICONS), |
| 2900 converted_from_user_script_(false), | 2901 converted_from_user_script_(false), |
| 2901 background_page_is_persistent_(true), | 2902 background_page_is_persistent_(true), |
| 2902 allow_background_js_access_(true), | 2903 allow_background_js_access_(true), |
| 2903 manifest_(manifest.release()), | 2904 manifest_(manifest.release()), |
| 2904 is_storage_isolated_(false), | 2905 is_storage_isolated_(false), |
| 2905 launch_container_(extension_misc::LAUNCH_TAB), | 2906 launch_container_(extension_misc::LAUNCH_TAB), |
| 2906 launch_width_(0), | 2907 launch_width_(0), |
| 2907 launch_height_(0), | 2908 launch_height_(0), |
| 2908 wants_file_access_(false), | 2909 wants_file_access_(false), |
| 2909 creation_flags_(0) { | 2910 creation_flags_(0) { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3007 output->append(is_public ? kPublic : kPrivate); | 3008 output->append(is_public ? kPublic : kPrivate); |
| 3008 output->append(" "); | 3009 output->append(" "); |
| 3009 output->append(kKeyInfoEndMarker); | 3010 output->append(kKeyInfoEndMarker); |
| 3010 output->append("\n"); | 3011 output->append("\n"); |
| 3011 | 3012 |
| 3012 return true; | 3013 return true; |
| 3013 } | 3014 } |
| 3014 | 3015 |
| 3015 // static | 3016 // static |
| 3016 void Extension::DecodeIcon(const Extension* extension, | 3017 void Extension::DecodeIcon(const Extension* extension, |
| 3017 ExtensionIconSet::Icons preferred_icon_size, | 3018 int preferred_icon_size, |
| 3018 ExtensionIconSet::MatchType match_type, | 3019 ExtensionIconSet::MatchType match_type, |
| 3019 scoped_ptr<SkBitmap>* result) { | 3020 scoped_ptr<SkBitmap>* result) { |
| 3020 std::string path = extension->icons().Get(preferred_icon_size, match_type); | 3021 std::string path = extension->icons().Get(preferred_icon_size, match_type); |
| 3021 ExtensionIconSet::Icons size = extension->icons().GetIconSizeFromPath(path); | 3022 int size = extension->icons().GetIconSizeFromPath(path); |
| 3022 ExtensionResource icon_resource = extension->GetResource(path); | 3023 ExtensionResource icon_resource = extension->GetResource(path); |
| 3023 DecodeIconFromPath(icon_resource.GetFilePath(), size, result); | 3024 DecodeIconFromPath(icon_resource.GetFilePath(), size, result); |
| 3024 } | 3025 } |
| 3025 | 3026 |
| 3026 // static | 3027 // static |
| 3027 void Extension::DecodeIcon(const Extension* extension, | 3028 void Extension::DecodeIcon(const Extension* extension, |
| 3028 ExtensionIconSet::Icons icon_size, | 3029 int icon_size, |
| 3029 scoped_ptr<SkBitmap>* result) { | 3030 scoped_ptr<SkBitmap>* result) { |
| 3030 DecodeIcon(extension, icon_size, ExtensionIconSet::MATCH_EXACTLY, result); | 3031 DecodeIcon(extension, icon_size, ExtensionIconSet::MATCH_EXACTLY, result); |
| 3031 } | 3032 } |
| 3032 | 3033 |
| 3033 // static | 3034 // static |
| 3034 void Extension::DecodeIconFromPath(const FilePath& icon_path, | 3035 void Extension::DecodeIconFromPath(const FilePath& icon_path, |
| 3035 ExtensionIconSet::Icons icon_size, | 3036 int icon_size, |
| 3036 scoped_ptr<SkBitmap>* result) { | 3037 scoped_ptr<SkBitmap>* result) { |
| 3037 if (icon_path.empty()) | 3038 if (icon_path.empty()) |
| 3038 return; | 3039 return; |
| 3039 | 3040 |
| 3040 std::string file_contents; | 3041 std::string file_contents; |
| 3041 if (!file_util::ReadFileToString(icon_path, &file_contents)) { | 3042 if (!file_util::ReadFileToString(icon_path, &file_contents)) { |
| 3042 DLOG(ERROR) << "Could not read icon file: " << icon_path.LossyDisplayName(); | 3043 DLOG(ERROR) << "Could not read icon file: " << icon_path.LossyDisplayName(); |
| 3043 return; | 3044 return; |
| 3044 } | 3045 } |
| 3045 | 3046 |
| (...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3901 | 3902 |
| 3902 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( | 3903 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( |
| 3903 const Extension* extension, | 3904 const Extension* extension, |
| 3904 const PermissionSet* permissions, | 3905 const PermissionSet* permissions, |
| 3905 Reason reason) | 3906 Reason reason) |
| 3906 : reason(reason), | 3907 : reason(reason), |
| 3907 extension(extension), | 3908 extension(extension), |
| 3908 permissions(permissions) {} | 3909 permissions(permissions) {} |
| 3909 | 3910 |
| 3910 } // namespace extensions | 3911 } // namespace extensions |
| OLD | NEW |