Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: chrome/common/extensions/extension.cc

Issue 11644057: Move BrowserAction out of Extension (Closed) Base URL: http://git.chromium.org/chromium/src.git@dc_ungoop_extension_action
Patch Set: Combined ActionInfo wrappers Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 938 matching lines...) Expand 10 before | Expand all | Expand 10 after
949 949
950 if (page_action_info() && !page_action_info()->default_icon.empty()) { 950 if (page_action_info() && !page_action_info()->default_icon.empty()) {
951 for (ExtensionIconSet::IconMap::const_iterator iter = 951 for (ExtensionIconSet::IconMap::const_iterator iter =
952 page_action_info()->default_icon.map().begin(); 952 page_action_info()->default_icon.map().begin();
953 iter != page_action_info()->default_icon.map().end(); 953 iter != page_action_info()->default_icon.map().end();
954 ++iter) { 954 ++iter) {
955 image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second))); 955 image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second)));
956 } 956 }
957 } 957 }
958 958
959 if (browser_action_info() && !browser_action_info()->default_icon.empty()) { 959 const ActionInfo* browser_action = ActionInfoData::GetBrowserActionInfo(this);
960 if (browser_action && !browser_action->default_icon.empty()) {
960 for (ExtensionIconSet::IconMap::const_iterator iter = 961 for (ExtensionIconSet::IconMap::const_iterator iter =
961 browser_action_info()->default_icon.map().begin(); 962 browser_action->default_icon.map().begin();
962 iter != browser_action_info()->default_icon.map().end(); 963 iter != browser_action->default_icon.map().end();
963 ++iter) { 964 ++iter) {
964 image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second))); 965 image_paths.insert(FilePath::FromWStringHack(UTF8ToWide(iter->second)));
965 } 966 }
966 } 967 }
967 968
968 return image_paths; 969 return image_paths;
969 } 970 }
970 971
971 ExtensionResource Extension::GetIconResource( 972 ExtensionResource Extension::GetIconResource(
972 int size, ExtensionIconSet::MatchType match_type) const { 973 int size, ExtensionIconSet::MatchType match_type) const {
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 runtime_data_.UpdateTabSpecificPermissions(tab_id, permissions); 1258 runtime_data_.UpdateTabSpecificPermissions(tab_id, permissions);
1258 } 1259 }
1259 1260
1260 void Extension::ClearTabSpecificPermissions(int tab_id) const { 1261 void Extension::ClearTabSpecificPermissions(int tab_id) const {
1261 base::AutoLock auto_lock(runtime_data_lock_); 1262 base::AutoLock auto_lock(runtime_data_lock_);
1262 runtime_data_.ClearTabSpecificPermissions(tab_id); 1263 runtime_data_.ClearTabSpecificPermissions(tab_id);
1263 } 1264 }
1264 1265
1265 Extension::ManifestData* Extension::GetManifestData(const std::string& key) 1266 Extension::ManifestData* Extension::GetManifestData(const std::string& key)
1266 const { 1267 const {
1267 DCHECK(finished_parsing_manifest_); 1268 DCHECK(finished_parsing_manifest_ || thread_checker_.CalledOnValidThread());
1268 ManifestDataMap::const_iterator iter = manifest_data_.find(key); 1269 ManifestDataMap::const_iterator iter = manifest_data_.find(key);
1269 if (iter != manifest_data_.end()) 1270 if (iter != manifest_data_.end())
1270 return iter->second.get(); 1271 return iter->second.get();
1271 return NULL; 1272 return NULL;
1272 } 1273 }
1273 1274
1274 void Extension::SetManifestData(const std::string& key, 1275 void Extension::SetManifestData(const std::string& key,
1275 Extension::ManifestData* data) { 1276 Extension::ManifestData* data) {
1276 DCHECK(!finished_parsing_manifest_); 1277 DCHECK(!finished_parsing_manifest_ && thread_checker_.CalledOnValidThread());
1277 manifest_data_[key] = linked_ptr<ManifestData>(data); 1278 manifest_data_[key] = linked_ptr<ManifestData>(data);
1278 } 1279 }
1279 1280
1280 Extension::Location Extension::location() const { 1281 Extension::Location Extension::location() const {
1281 return manifest_->location(); 1282 return manifest_->location();
1282 } 1283 }
1283 1284
1284 const std::string& Extension::id() const { 1285 const std::string& Extension::id() const {
1285 return manifest_->extension_id(); 1286 return manifest_->extension_id();
1286 } 1287 }
(...skipping 1474 matching lines...) Expand 10 before | Expand all | Expand 10 after
2761 string16* error) { 2762 string16* error) {
2762 if (manifest_->HasKey(keys::kConvertedFromUserScript)) 2763 if (manifest_->HasKey(keys::kConvertedFromUserScript))
2763 manifest_->GetBoolean(keys::kConvertedFromUserScript, 2764 manifest_->GetBoolean(keys::kConvertedFromUserScript,
2764 &converted_from_user_script_); 2765 &converted_from_user_script_);
2765 2766
2766 if (!LoadManifestHandlerFeatures(error) || 2767 if (!LoadManifestHandlerFeatures(error) ||
2767 !LoadDevToolsPage(error) || 2768 !LoadDevToolsPage(error) ||
2768 !LoadInputComponents(*api_permissions, error) || 2769 !LoadInputComponents(*api_permissions, error) ||
2769 !LoadContentScripts(error) || 2770 !LoadContentScripts(error) ||
2770 !LoadPageAction(error) || 2771 !LoadPageAction(error) ||
2771 !LoadBrowserAction(error) ||
2772 !LoadSystemIndicator(api_permissions, error) || 2772 !LoadSystemIndicator(api_permissions, error) ||
2773 !LoadChromeURLOverrides(error) || 2773 !LoadChromeURLOverrides(error) ||
2774 !LoadTextToSpeechVoices(error) || 2774 !LoadTextToSpeechVoices(error) ||
2775 !LoadIncognitoMode(error) || 2775 !LoadIncognitoMode(error) ||
2776 !LoadFileHandlers(error) || 2776 !LoadFileHandlers(error) ||
2777 !LoadContentSecurityPolicy(error)) 2777 !LoadContentSecurityPolicy(error))
2778 return false; 2778 return false;
2779 2779
2780 return true; 2780 return true;
2781 } 2781 }
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
3004 if (page_action_value) { 3004 if (page_action_value) {
3005 page_action_info_ = LoadExtensionActionInfoHelper( 3005 page_action_info_ = LoadExtensionActionInfoHelper(
3006 this, page_action_value, error); 3006 this, page_action_value, error);
3007 if (!page_action_info_.get()) 3007 if (!page_action_info_.get())
3008 return false; // Failed to parse page action definition. 3008 return false; // Failed to parse page action definition.
3009 } 3009 }
3010 3010
3011 return true; 3011 return true;
3012 } 3012 }
3013 3013
3014 bool Extension::LoadBrowserAction(string16* error) {
3015 if (!manifest_->HasKey(keys::kBrowserAction))
3016 return true;
3017 DictionaryValue* browser_action_value = NULL;
3018 if (!manifest_->GetDictionary(keys::kBrowserAction, &browser_action_value)) {
3019 *error = ASCIIToUTF16(errors::kInvalidBrowserAction);
3020 return false;
3021 }
3022
3023 browser_action_info_ = LoadExtensionActionInfoHelper(
3024 this, browser_action_value, error);
3025 if (!browser_action_info_.get())
3026 return false; // Failed to parse browser action definition.
3027 return true;
3028 }
3029
3030 bool Extension::LoadSystemIndicator(APIPermissionSet* api_permissions, 3014 bool Extension::LoadSystemIndicator(APIPermissionSet* api_permissions,
3031 string16* error) { 3015 string16* error) {
3032 if (!manifest_->HasKey(keys::kSystemIndicator)) { 3016 if (!manifest_->HasKey(keys::kSystemIndicator)) {
3033 // There was no manifest entry for the system indicator. 3017 // There was no manifest entry for the system indicator.
3034 return true; 3018 return true;
3035 } 3019 }
3036 3020
3037 DictionaryValue* system_indicator_value = NULL; 3021 DictionaryValue* system_indicator_value = NULL;
3038 if (!manifest_->GetDictionary(keys::kSystemIndicator, 3022 if (!manifest_->GetDictionary(keys::kSystemIndicator,
3039 &system_indicator_value)) { 3023 &system_indicator_value)) {
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
3652 3636
3653 return true; 3637 return true;
3654 } 3638 }
3655 3639
3656 bool Extension::HasMultipleUISurfaces() const { 3640 bool Extension::HasMultipleUISurfaces() const {
3657 int num_surfaces = 0; 3641 int num_surfaces = 0;
3658 3642
3659 if (page_action_info()) 3643 if (page_action_info())
3660 ++num_surfaces; 3644 ++num_surfaces;
3661 3645
3662 if (browser_action_info()) 3646 if (ActionInfoData::GetBrowserActionInfo(this))
3663 ++num_surfaces; 3647 ++num_surfaces;
3664 3648
3665 if (is_app()) 3649 if (is_app())
3666 ++num_surfaces; 3650 ++num_surfaces;
3667 3651
3668 return num_surfaces > 1; 3652 return num_surfaces > 1;
3669 } 3653 }
3670 3654
3671 void Extension::OverrideLaunchUrl(const GURL& override_url) { 3655 void Extension::OverrideLaunchUrl(const GURL& override_url) {
3672 GURL new_url(override_url); 3656 GURL new_url(override_url);
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
3837 3821
3838 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 3822 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
3839 const Extension* extension, 3823 const Extension* extension,
3840 const PermissionSet* permissions, 3824 const PermissionSet* permissions,
3841 Reason reason) 3825 Reason reason)
3842 : reason(reason), 3826 : reason(reason),
3843 extension(extension), 3827 extension(extension),
3844 permissions(permissions) {} 3828 permissions(permissions) {}
3845 3829
3846 } // namespace extensions 3830 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698