Chromium Code Reviews| Index: chrome/common/extensions/extension.cc |
| diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc |
| index 2325ce811d96e296e77417ac95484f46cf831622..3f76f168571d88c776ca623f1a3af2903927735b 100644 |
| --- a/chrome/common/extensions/extension.cc |
| +++ b/chrome/common/extensions/extension.cc |
| @@ -30,6 +30,7 @@ |
| // SystemIndicator have been moved out of Extension. |
| #include "chrome/common/extensions/api/extension_action/action_handler_helpers.h" |
| #include "chrome/common/extensions/api/extension_action/action_info.h" |
| +#include "chrome/common/extensions/api/extension_action/browser_action_handler.h" |
| #include "chrome/common/extensions/csp_validator.h" |
| #include "chrome/common/extensions/extension_manifest_constants.h" |
| #include "chrome/common/extensions/extension_resource.h" |
| @@ -956,10 +957,11 @@ std::set<FilePath> Extension::GetBrowserImages() const { |
| } |
| } |
| - if (browser_action_info() && !browser_action_info()->default_icon.empty()) { |
| + const ActionInfo* browser_action = BrowserActionInfo::GetBrowserAction(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 +1266,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,6 +1275,7 @@ Extension::ManifestData* Extension::GetManifestData(const std::string& key) |
| void Extension::SetManifestData(const std::string& key, |
| Extension::ManifestData* data) { |
| + |
|
Yoyo Zhou
2012/12/21 23:50:59
newline is extraneous
Devlin
2012/12/27 20:36:46
Done.
|
| DCHECK(!finished_parsing_manifest_); |
|
Yoyo Zhou
2012/12/21 23:50:59
&& thread_checker_.CalledOnValidThread()
Devlin
2012/12/27 20:36:46
Done.
|
| manifest_data_[key] = linked_ptr<ManifestData>(data); |
| } |
| @@ -2768,7 +2771,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 +3013,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 +3645,7 @@ bool Extension::HasMultipleUISurfaces() const { |
| if (page_action_info()) |
| ++num_surfaces; |
| - if (browser_action_info()) |
| + if (BrowserActionInfo::GetBrowserAction(this)) |
| ++num_surfaces; |
| if (is_app()) |