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

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

Issue 11882025: Move "oauth2" manifest key parsing out of Extension class. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 11 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 | Annotate | Revision Log
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 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_
6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <iosfwd> 9 #include <iosfwd>
10 #include <map> 10 #include <map>
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 struct WebIntentServiceData; 51 struct WebIntentServiceData;
52 } 52 }
53 53
54 FORWARD_DECLARE_TEST(TabStripModelTest, Apps); 54 FORWARD_DECLARE_TEST(TabStripModelTest, Apps);
55 55
56 namespace extensions { 56 namespace extensions {
57 57
58 class Manifest; 58 class Manifest;
59 class PermissionSet; 59 class PermissionSet;
60 60
61 typedef std::set<std::string> OAuth2Scopes;
62
63 // Represents a Chrome extension. 61 // Represents a Chrome extension.
64 class Extension : public base::RefCountedThreadSafe<Extension> { 62 class Extension : public base::RefCountedThreadSafe<Extension> {
65 public: 63 public:
66 struct InstallWarning; 64 struct InstallWarning;
67 struct ManifestData; 65 struct ManifestData;
68 66
69 typedef std::map<const std::string, GURL> URLOverrideMap; 67 typedef std::map<const std::string, GURL> URLOverrideMap;
70 typedef std::vector<std::string> ScriptingWhitelist; 68 typedef std::vector<std::string> ScriptingWhitelist;
71 typedef std::vector<InstallWarning> InstallWarningVector; 69 typedef std::vector<InstallWarning> InstallWarningVector;
72 typedef std::map<const std::string, linked_ptr<ManifestData> > 70 typedef std::map<const std::string, linked_ptr<ManifestData> >
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 FilePath path; // Path to the plugin. 166 FilePath path; // Path to the plugin.
169 bool is_public; // False if only this extension can load this plugin. 167 bool is_public; // False if only this extension can load this plugin.
170 }; 168 };
171 169
172 // An NaCl module included in the extension. 170 // An NaCl module included in the extension.
173 struct NaClModuleInfo { 171 struct NaClModuleInfo {
174 GURL url; 172 GURL url;
175 std::string mime_type; 173 std::string mime_type;
176 }; 174 };
177 175
178 // OAuth2 info included in the extension.
179 struct OAuth2Info {
180 OAuth2Info();
181 ~OAuth2Info();
182
183 OAuth2Scopes GetScopesAsSet();
184
185 std::string client_id;
186 std::vector<std::string> scopes;
187 };
188
189 struct ActionInfo { 176 struct ActionInfo {
190 explicit ActionInfo(); 177 explicit ActionInfo();
191 ~ActionInfo(); 178 ~ActionInfo();
192 179
193 // The types of extension actions. 180 // The types of extension actions.
194 enum Type { 181 enum Type {
195 TYPE_BROWSER, 182 TYPE_BROWSER,
196 TYPE_PAGE, 183 TYPE_PAGE,
197 TYPE_SCRIPT_BADGE, 184 TYPE_SCRIPT_BADGE,
198 TYPE_SYSTEM_INDICATOR, 185 TYPE_SYSTEM_INDICATOR,
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 const ExtensionIconSet& icons() const { return icons_; } 711 const ExtensionIconSet& icons() const { return icons_; }
725 const extensions::Manifest* manifest() const { 712 const extensions::Manifest* manifest() const {
726 return manifest_.get(); 713 return manifest_.get();
727 } 714 }
728 const std::string default_locale() const { return default_locale_; } 715 const std::string default_locale() const { return default_locale_; }
729 const URLOverrideMap& GetChromeURLOverrides() const { 716 const URLOverrideMap& GetChromeURLOverrides() const {
730 return chrome_url_overrides_; 717 return chrome_url_overrides_;
731 } 718 }
732 bool incognito_split_mode() const { return incognito_split_mode_; } 719 bool incognito_split_mode() const { return incognito_split_mode_; }
733 bool offline_enabled() const { return offline_enabled_; } 720 bool offline_enabled() const { return offline_enabled_; }
734 const OAuth2Info& oauth2_info() const { return oauth2_info_; }
735 const std::vector<webkit_glue::WebIntentServiceData>& 721 const std::vector<webkit_glue::WebIntentServiceData>&
736 intents_services() const { 722 intents_services() const {
737 return intents_services_; 723 return intents_services_;
738 } 724 }
739 725
740 bool wants_file_access() const { return wants_file_access_; } 726 bool wants_file_access() const { return wants_file_access_; }
741 int creation_flags() const { return creation_flags_; } 727 int creation_flags() const { return creation_flags_; }
742 bool from_webstore() const { return (creation_flags_ & FROM_WEBSTORE) != 0; } 728 bool from_webstore() const { return (creation_flags_ & FROM_WEBSTORE) != 0; }
743 bool from_bookmark() const { return (creation_flags_ & FROM_BOOKMARK) != 0; } 729 bool from_bookmark() const { return (creation_flags_ & FROM_BOOKMARK) != 0; }
744 bool was_installed_by_default() const { 730 bool was_installed_by_default() const {
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 void(UserScript::*add_method)(const std::string& glob), 946 void(UserScript::*add_method)(const std::string& glob),
961 UserScript* instance); 947 UserScript* instance);
962 948
963 // Helper method to load an ExtensionAction from the page_action or 949 // Helper method to load an ExtensionAction from the page_action or
964 // browser_action entries in the manifest. 950 // browser_action entries in the manifest.
965 scoped_ptr<ActionInfo> LoadExtensionActionInfoHelper( 951 scoped_ptr<ActionInfo> LoadExtensionActionInfoHelper(
966 const base::DictionaryValue* manifest_section, 952 const base::DictionaryValue* manifest_section,
967 ActionInfo::Type action_type, 953 ActionInfo::Type action_type,
968 string16* error); 954 string16* error);
969 955
970 // Helper method that loads the OAuth2 info from the 'oauth2' manifest key.
971 bool LoadOAuth2Info(string16* error);
972
973 // Returns true if the extension has more than one "UI surface". For example, 956 // Returns true if the extension has more than one "UI surface". For example,
974 // an extension that has a browser action and a page action. 957 // an extension that has a browser action and a page action.
975 bool HasMultipleUISurfaces() const; 958 bool HasMultipleUISurfaces() const;
976 959
977 // Updates the launch URL and extents for the extension using the given 960 // Updates the launch URL and extents for the extension using the given
978 // |override_url|. 961 // |override_url|.
979 void OverrideLaunchUrl(const GURL& override_url); 962 void OverrideLaunchUrl(const GURL& override_url);
980 963
981 // Custom checks for the experimental permission that can't be expressed in 964 // Custom checks for the experimental permission that can't be expressed in
982 // _permission_features.json. 965 // _permission_features.json.
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
1190 // containers like panels and windows. 1173 // containers like panels and windows.
1191 int launch_width_; 1174 int launch_width_;
1192 int launch_height_; 1175 int launch_height_;
1193 1176
1194 // Should this app be shown in the app launcher. 1177 // Should this app be shown in the app launcher.
1195 bool display_in_launcher_; 1178 bool display_in_launcher_;
1196 1179
1197 // Should this app be shown in the browser New Tab Page. 1180 // Should this app be shown in the browser New Tab Page.
1198 bool display_in_new_tab_page_; 1181 bool display_in_new_tab_page_;
1199 1182
1200 // The OAuth2 client id and scopes, if specified by the extension.
1201 OAuth2Info oauth2_info_;
1202
1203 // List of intent services that this extension provides, if any. 1183 // List of intent services that this extension provides, if any.
1204 std::vector<webkit_glue::WebIntentServiceData> intents_services_; 1184 std::vector<webkit_glue::WebIntentServiceData> intents_services_;
1205 1185
1206 // List of file handlers associated with this extension, if any. 1186 // List of file handlers associated with this extension, if any.
1207 std::vector<FileHandlerInfo> file_handlers_; 1187 std::vector<FileHandlerInfo> file_handlers_;
1208 1188
1209 // Whether the extension has host permissions or user script patterns that 1189 // Whether the extension has host permissions or user script patterns that
1210 // imply access to file:/// scheme URLs (the user may not have actually 1190 // imply access to file:/// scheme URLs (the user may not have actually
1211 // granted it that access). 1191 // granted it that access).
1212 bool wants_file_access_; 1192 bool wants_file_access_;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 1262
1283 UpdatedExtensionPermissionsInfo( 1263 UpdatedExtensionPermissionsInfo(
1284 const Extension* extension, 1264 const Extension* extension,
1285 const PermissionSet* permissions, 1265 const PermissionSet* permissions,
1286 Reason reason); 1266 Reason reason);
1287 }; 1267 };
1288 1268
1289 } // namespace extensions 1269 } // namespace extensions
1290 1270
1291 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 1271 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698