| Index: chrome/common/extensions/extension.cc
|
| diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
|
| index 2325ce811d96e296e77417ac95484f46cf831622..b86d1b5e57ae07e2ae2f1b5b22948e9349650145 100644
|
| --- a/chrome/common/extensions/extension.cc
|
| +++ b/chrome/common/extensions/extension.cc
|
| @@ -956,10 +956,11 @@ std::set<FilePath> Extension::GetBrowserImages() const {
|
| }
|
| }
|
|
|
| - if (browser_action_info() && !browser_action_info()->default_icon.empty()) {
|
| + const ActionInfo* browser_action = ActionInfoData::GetBrowserActionInfo(this);
|
| + if (browser_action && !browser_action->default_icon.empty()) {
|
| for (ExtensionIconSet::IconMap::const_iterator iter =
|
| - browser_action_info()->default_icon.map().begin();
|
| - iter != browser_action_info()->default_icon.map().end();
|
| + browser_action->default_icon.map().begin();
|
| + iter != browser_action->default_icon.map().end();
|
| ++iter) {
|
| image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second)));
|
| }
|
| @@ -1264,7 +1265,7 @@ void Extension::ClearTabSpecificPermissions(int tab_id) const {
|
|
|
| Extension::ManifestData* Extension::GetManifestData(const std::string& key)
|
| const {
|
| - DCHECK(finished_parsing_manifest_);
|
| + DCHECK(finished_parsing_manifest_ || thread_checker_.CalledOnValidThread());
|
| ManifestDataMap::const_iterator iter = manifest_data_.find(key);
|
| if (iter != manifest_data_.end())
|
| return iter->second.get();
|
| @@ -1273,7 +1274,7 @@ Extension::ManifestData* Extension::GetManifestData(const std::string& key)
|
|
|
| void Extension::SetManifestData(const std::string& key,
|
| Extension::ManifestData* data) {
|
| - DCHECK(!finished_parsing_manifest_);
|
| + DCHECK(!finished_parsing_manifest_ && thread_checker_.CalledOnValidThread());
|
| manifest_data_[key] = linked_ptr<ManifestData>(data);
|
| }
|
|
|
| @@ -2768,7 +2769,6 @@ bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
|
| !LoadInputComponents(*api_permissions, error) ||
|
| !LoadContentScripts(error) ||
|
| !LoadPageAction(error) ||
|
| - !LoadBrowserAction(error) ||
|
| !LoadSystemIndicator(api_permissions, error) ||
|
| !LoadChromeURLOverrides(error) ||
|
| !LoadTextToSpeechVoices(error) ||
|
| @@ -3011,22 +3011,6 @@ bool Extension::LoadPageAction(string16* error) {
|
| return true;
|
| }
|
|
|
| -bool Extension::LoadBrowserAction(string16* error) {
|
| - if (!manifest_->HasKey(keys::kBrowserAction))
|
| - return true;
|
| - DictionaryValue* browser_action_value = NULL;
|
| - if (!manifest_->GetDictionary(keys::kBrowserAction, &browser_action_value)) {
|
| - *error = ASCIIToUTF16(errors::kInvalidBrowserAction);
|
| - return false;
|
| - }
|
| -
|
| - browser_action_info_ = LoadExtensionActionInfoHelper(
|
| - this, browser_action_value, error);
|
| - if (!browser_action_info_.get())
|
| - return false; // Failed to parse browser action definition.
|
| - return true;
|
| -}
|
| -
|
| bool Extension::LoadSystemIndicator(APIPermissionSet* api_permissions,
|
| string16* error) {
|
| if (!manifest_->HasKey(keys::kSystemIndicator)) {
|
| @@ -3659,7 +3643,7 @@ bool Extension::HasMultipleUISurfaces() const {
|
| if (page_action_info())
|
| ++num_surfaces;
|
|
|
| - if (browser_action_info())
|
| + if (ActionInfoData::GetBrowserActionInfo(this))
|
| ++num_surfaces;
|
|
|
| if (is_app())
|
|
|