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/common/extensions/extension.h" | 5 #include "chrome/common/extensions/extension.h" |
6 | 6 |
7 #include "app/resource_bundle.h" | 7 #include "app/resource_bundle.h" |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 if (!source.GetString(keys::kVersion, &version_str)) { | 608 if (!source.GetString(keys::kVersion, &version_str)) { |
609 *error = errors::kInvalidVersion; | 609 *error = errors::kInvalidVersion; |
610 return false; | 610 return false; |
611 } | 611 } |
612 version_.reset(Version::GetVersionFromString(version_str)); | 612 version_.reset(Version::GetVersionFromString(version_str)); |
613 if (!version_.get() || version_->components().size() > 4) { | 613 if (!version_.get() || version_->components().size() > 4) { |
614 *error = errors::kInvalidVersion; | 614 *error = errors::kInvalidVersion; |
615 return false; | 615 return false; |
616 } | 616 } |
617 | 617 |
618 // Initialize name. | 618 // Initialize & localize name. |
619 if (!source.GetString(keys::kName, &name_)) { | 619 if (!source.GetString(keys::kName, &name_)) { |
620 *error = errors::kInvalidName; | 620 *error = errors::kInvalidName; |
621 return false; | 621 return false; |
| 622 } else if (message_bundle_.get()) { |
| 623 std::string l10n_name = |
| 624 message_bundle_->GetL10nMessage(ExtensionMessageBundle::kExtensionName); |
| 625 if (!l10n_name.empty()) |
| 626 name_ = l10n_name; |
622 } | 627 } |
623 | 628 |
624 // Initialize description (if present). | 629 // Initialize & localize description (if present). |
625 if (source.HasKey(keys::kDescription)) { | 630 if (source.HasKey(keys::kDescription)) { |
626 if (!source.GetString(keys::kDescription, &description_)) { | 631 if (!source.GetString(keys::kDescription, &description_)) { |
627 *error = errors::kInvalidDescription; | 632 *error = errors::kInvalidDescription; |
628 return false; | 633 return false; |
| 634 } else if (message_bundle_.get()) { |
| 635 std::string l10n_description = message_bundle_->GetL10nMessage( |
| 636 ExtensionMessageBundle::kExtensionDescription); |
| 637 if (!l10n_description.empty()) |
| 638 description_ = l10n_description; |
629 } | 639 } |
630 } | 640 } |
631 | 641 |
632 // Initialize update url (if present). | 642 // Initialize update url (if present). |
633 if (source.HasKey(keys::kUpdateURL)) { | 643 if (source.HasKey(keys::kUpdateURL)) { |
634 std::string tmp; | 644 std::string tmp; |
635 if (!source.GetString(keys::kUpdateURL, &tmp)) { | 645 if (!source.GetString(keys::kUpdateURL, &tmp)) { |
636 *error = ExtensionErrorUtils::FormatErrorMessage( | 646 *error = ExtensionErrorUtils::FormatErrorMessage( |
637 errors::kInvalidUpdateURL, ""); | 647 errors::kInvalidUpdateURL, ""); |
638 return false; | 648 return false; |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
979 (pattern.scheme() != chrome::kHttpsScheme)) { | 989 (pattern.scheme() != chrome::kHttpsScheme)) { |
980 *error = ExtensionErrorUtils::FormatErrorMessage( | 990 *error = ExtensionErrorUtils::FormatErrorMessage( |
981 errors::kInvalidPermissionScheme, IntToString(i)); | 991 errors::kInvalidPermissionScheme, IntToString(i)); |
982 return false; | 992 return false; |
983 } | 993 } |
984 | 994 |
985 host_permissions_.push_back(pattern); | 995 host_permissions_.push_back(pattern); |
986 } | 996 } |
987 } | 997 } |
988 | 998 |
989 // Initialize default locale (if present). | |
990 if (source.HasKey(keys::kDefaultLocale)) { | |
991 std::string default_locale; | |
992 if (!source.GetString(keys::kDefaultLocale, &default_locale)) { | |
993 *error = errors::kInvalidDefaultLocale; | |
994 return false; | |
995 } | |
996 // Normalize underscores to hyphens. | |
997 std::replace(default_locale.begin(), default_locale.end(), '_', '-'); | |
998 set_default_locale(default_locale); | |
999 } | |
1000 | |
1001 // Chrome URL overrides (optional) | 999 // Chrome URL overrides (optional) |
1002 if (source.HasKey(keys::kChromeURLOverrides)) { | 1000 if (source.HasKey(keys::kChromeURLOverrides)) { |
1003 DictionaryValue* overrides; | 1001 DictionaryValue* overrides; |
1004 if (!source.GetDictionary(keys::kChromeURLOverrides, &overrides)) { | 1002 if (!source.GetDictionary(keys::kChromeURLOverrides, &overrides)) { |
1005 *error = errors::kInvalidChromeURLOverrides; | 1003 *error = errors::kInvalidChromeURLOverrides; |
1006 return false; | 1004 return false; |
1007 } | 1005 } |
1008 // Validate that the overrides are all strings | 1006 // Validate that the overrides are all strings |
1009 DictionaryValue::key_iterator iter = overrides->begin_keys(); | 1007 DictionaryValue::key_iterator iter = overrides->begin_keys(); |
1010 while (iter != overrides->end_keys()) { | 1008 while (iter != overrides->end_keys()) { |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1117 UserScript::PatternList::const_iterator pattern = | 1115 UserScript::PatternList::const_iterator pattern = |
1118 content_script->url_patterns().begin(); | 1116 content_script->url_patterns().begin(); |
1119 for (; pattern != content_script->url_patterns().end(); ++pattern) { | 1117 for (; pattern != content_script->url_patterns().end(); ++pattern) { |
1120 if (pattern->match_subdomains() && pattern->host().empty()) | 1118 if (pattern->match_subdomains() && pattern->host().empty()) |
1121 return true; | 1119 return true; |
1122 } | 1120 } |
1123 } | 1121 } |
1124 | 1122 |
1125 return false; | 1123 return false; |
1126 } | 1124 } |
OLD | NEW |