| Index: chrome/browser/extensions/extension.cc
|
| diff --git a/chrome/browser/extensions/extension.cc b/chrome/browser/extensions/extension.cc
|
| index 1aeaeaab67229608fc479c79caf011ac1a3cb298..d8ab40379d0c0fde26f59ff8b724fc6bde4ea053 100644
|
| --- a/chrome/browser/extensions/extension.cc
|
| +++ b/chrome/browser/extensions/extension.cc
|
| @@ -103,6 +103,21 @@ Extension::Extension(const Extension& rhs)
|
| theme_paths_(rhs.theme_paths_) {
|
| }
|
|
|
| +const GURL& Extension::url() {
|
| + if (!extension_url_.is_valid())
|
| + extension_url_ = GURL(std::string(chrome::kExtensionScheme) +
|
| + chrome::kStandardSchemeSeparator + id_ + "/");
|
| +
|
| + return extension_url_;
|
| +}
|
| +
|
| +void Extension::set_id(const std::string& id) {
|
| + id_ = id;
|
| +
|
| + // Reset url_ so that it gets reinitialized next time.
|
| + extension_url_ = GURL();
|
| +}
|
| +
|
| const std::string Extension::VersionString() const {
|
| return version_->GetString();
|
| }
|
| @@ -320,9 +335,10 @@ bool Extension::LoadUserScriptHelper(const DictionaryValue* content_script,
|
| return true;
|
| }
|
|
|
| -bool Extension::InitFromValue(const DictionaryValue& source, bool require_id,
|
| +bool Extension::InitFromValue(const DictionaryValue& source,
|
| std::string* error) {
|
| - // Initialize id.
|
| + // Initialize id. The ID is not required here because we don't require IDs for
|
| + // extensions used with --load-extension.
|
| if (source.HasKey(kIdKey)) {
|
| if (!source.GetString(kIdKey, &id_)) {
|
| *error = kInvalidIdError;
|
| @@ -340,23 +356,8 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_id,
|
| *error = kInvalidIdError;
|
| return false;
|
| }
|
| - } else if (require_id) {
|
| - *error = kInvalidIdError;
|
| - return false;
|
| - } else {
|
| - // Generate a random ID
|
| - static int counter = 0;
|
| - id_ = StringPrintf("%x", counter);
|
| - ++counter;
|
| -
|
| - // pad the string out to 40 chars with zeroes.
|
| - id_.insert(0, 40 - id_.length(), '0');
|
| }
|
|
|
| - // Initialize the URL.
|
| - extension_url_ = GURL(std::string(chrome::kExtensionScheme) +
|
| - chrome::kStandardSchemeSeparator + id_ + "/");
|
| -
|
| // Initialize version.
|
| std::string version_str;
|
| if (!source.GetString(kVersionKey, &version_str)) {
|
| @@ -456,7 +457,6 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_id,
|
| UserScript script;
|
| if (!LoadUserScriptHelper(content_script, i, error, &script))
|
| return false; // Failed to parse script context definition
|
| - script.set_extension_id(id());
|
| content_scripts_.push_back(script);
|
| }
|
| }
|
|
|