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

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

Issue 9006027: Rip Out the Sidebar API (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 8 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
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/extension_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <algorithm> 7 #include <algorithm>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 14 matching lines...) Expand all
25 #include "crypto/sha2.h" 25 #include "crypto/sha2.h"
26 #include "chrome/common/chrome_constants.h" 26 #include "chrome/common/chrome_constants.h"
27 #include "chrome/common/chrome_switches.h" 27 #include "chrome/common/chrome_switches.h"
28 #include "chrome/common/chrome_version_info.h" 28 #include "chrome/common/chrome_version_info.h"
29 #include "chrome/common/extensions/csp_validator.h" 29 #include "chrome/common/extensions/csp_validator.h"
30 #include "chrome/common/extensions/extension_action.h" 30 #include "chrome/common/extensions/extension_action.h"
31 #include "chrome/common/extensions/extension_constants.h" 31 #include "chrome/common/extensions/extension_constants.h"
32 #include "chrome/common/extensions/extension_error_utils.h" 32 #include "chrome/common/extensions/extension_error_utils.h"
33 #include "chrome/common/extensions/extension_l10n_util.h" 33 #include "chrome/common/extensions/extension_l10n_util.h"
34 #include "chrome/common/extensions/extension_resource.h" 34 #include "chrome/common/extensions/extension_resource.h"
35 #include "chrome/common/extensions/extension_sidebar_defaults.h"
36 #include "chrome/common/extensions/extension_sidebar_utils.h"
37 #include "chrome/common/extensions/file_browser_handler.h" 35 #include "chrome/common/extensions/file_browser_handler.h"
38 #include "chrome/common/extensions/manifest.h" 36 #include "chrome/common/extensions/manifest.h"
39 #include "chrome/common/extensions/user_script.h" 37 #include "chrome/common/extensions/user_script.h"
40 #include "chrome/common/url_constants.h" 38 #include "chrome/common/url_constants.h"
41 #include "googleurl/src/url_util.h" 39 #include "googleurl/src/url_util.h"
42 #include "grit/chromium_strings.h" 40 #include "grit/chromium_strings.h"
43 #include "grit/generated_resources.h" 41 #include "grit/generated_resources.h"
44 #include "grit/theme_resources.h" 42 #include "grit/theme_resources.h"
45 #include "net/base/registry_controlled_domain.h" 43 #include "net/base/registry_controlled_domain.h"
46 #include "third_party/skia/include/core/SkBitmap.h" 44 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 const int Extension::kIconSizes[] = { 193 const int Extension::kIconSizes[] = {
196 EXTENSION_ICON_LARGE, 194 EXTENSION_ICON_LARGE,
197 EXTENSION_ICON_MEDIUM, 195 EXTENSION_ICON_MEDIUM,
198 EXTENSION_ICON_SMALL, 196 EXTENSION_ICON_SMALL,
199 EXTENSION_ICON_SMALLISH, 197 EXTENSION_ICON_SMALLISH,
200 EXTENSION_ICON_BITTY 198 EXTENSION_ICON_BITTY
201 }; 199 };
202 200
203 const int Extension::kPageActionIconMaxSize = 19; 201 const int Extension::kPageActionIconMaxSize = 19;
204 const int Extension::kBrowserActionIconMaxSize = 19; 202 const int Extension::kBrowserActionIconMaxSize = 19;
205 const int Extension::kSidebarIconMaxSize = 16;
206 203
207 const int Extension::kValidWebExtentSchemes = 204 const int Extension::kValidWebExtentSchemes =
208 URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS; 205 URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS;
209 206
210 const int Extension::kValidHostPermissionSchemes = 207 const int Extension::kValidHostPermissionSchemes =
211 UserScript::kValidUserScriptSchemes | URLPattern::SCHEME_CHROMEUI; 208 UserScript::kValidUserScriptSchemes | URLPattern::SCHEME_CHROMEUI;
212 209
213 Extension::InputComponentInfo::InputComponentInfo() 210 Extension::InputComponentInfo::InputComponentInfo()
214 : type(INPUT_COMPONENT_TYPE_NONE), 211 : type(INPUT_COMPONENT_TYPE_NONE),
215 shortcut_alt(false), 212 shortcut_alt(false),
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 default_icon.empty()) { 852 default_icon.empty()) {
856 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath); 853 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath);
857 return NULL; 854 return NULL;
858 } 855 }
859 result->set_icon_path(default_icon); 856 result->set_icon_path(default_icon);
860 } 857 }
861 858
862 return result.release(); 859 return result.release();
863 } 860 }
864 861
865 ExtensionSidebarDefaults* Extension::LoadExtensionSidebarDefaults(
866 const DictionaryValue* extension_sidebar, string16* error) {
867 scoped_ptr<ExtensionSidebarDefaults> result(new ExtensionSidebarDefaults());
868
869 std::string default_icon;
870 // Read sidebar's |default_icon| (optional).
871 if (extension_sidebar->HasKey(keys::kSidebarDefaultIcon)) {
872 if (!extension_sidebar->GetString(keys::kSidebarDefaultIcon,
873 &default_icon) ||
874 default_icon.empty()) {
875 *error = ASCIIToUTF16(errors::kInvalidSidebarDefaultIconPath);
876 return NULL;
877 }
878 result->set_default_icon_path(default_icon);
879 }
880
881 // Read sidebar's |default_title| (optional).
882 string16 default_title;
883 if (extension_sidebar->HasKey(keys::kSidebarDefaultTitle)) {
884 if (!extension_sidebar->GetString(keys::kSidebarDefaultTitle,
885 &default_title)) {
886 *error = ASCIIToUTF16(errors::kInvalidSidebarDefaultTitle);
887 return NULL;
888 }
889 }
890 result->set_default_title(default_title);
891
892 // Read sidebar's |default_page| (optional).
893 // TODO(rdevlin.cronin): Continue removing std::string errors and replace
894 // with string16
895 std::string default_page;
896 std::string utf8_error;
897 if (extension_sidebar->HasKey(keys::kSidebarDefaultPage)) {
898 if (!extension_sidebar->GetString(keys::kSidebarDefaultPage,
899 &default_page) ||
900 default_page.empty()) {
901 *error = ASCIIToUTF16(errors::kInvalidSidebarDefaultPage);
902 return NULL;
903 }
904 GURL url = extension_sidebar_utils::ResolveRelativePath(
905 default_page, this, &utf8_error);
906 *error = UTF8ToUTF16(utf8_error);
907 if (!url.is_valid())
908 return NULL;
909 result->set_default_page(url);
910 }
911
912 return result.release();
913 }
914
915 bool Extension::LoadExtent(const extensions::Manifest* manifest, 862 bool Extension::LoadExtent(const extensions::Manifest* manifest,
916 const char* key, 863 const char* key,
917 URLPatternSet* extent, 864 URLPatternSet* extent,
918 const char* list_error, 865 const char* list_error,
919 const char* value_error, 866 const char* value_error,
920 string16* error) { 867 string16* error) {
921 Value* temp = NULL; 868 Value* temp = NULL;
922 if (!manifest->Get(key, &temp)) 869 if (!manifest->Get(key, &temp))
923 return true; 870 return true;
924 871
(...skipping 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after
2247 // Initialize devtools page url (optional). 2194 // Initialize devtools page url (optional).
2248 if (manifest->HasKey(keys::kDevToolsPage)) { 2195 if (manifest->HasKey(keys::kDevToolsPage)) {
2249 std::string devtools_str; 2196 std::string devtools_str;
2250 if (!manifest->GetString(keys::kDevToolsPage, &devtools_str)) { 2197 if (!manifest->GetString(keys::kDevToolsPage, &devtools_str)) {
2251 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); 2198 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage);
2252 return false; 2199 return false;
2253 } 2200 }
2254 devtools_url_ = GetResourceURL(devtools_str); 2201 devtools_url_ = GetResourceURL(devtools_str);
2255 } 2202 }
2256 2203
2257 // Initialize sidebar action (optional).
2258 if (manifest->HasKey(keys::kSidebar)) {
2259 DictionaryValue* sidebar_value = NULL;
2260 if (!manifest->GetDictionary(keys::kSidebar, &sidebar_value)) {
2261 *error = ASCIIToUTF16(errors::kInvalidSidebar);
2262 return false;
2263 }
2264 if (!api_permissions.count(ExtensionAPIPermission::kExperimental)) {
2265 *error = ASCIIToUTF16(errors::kSidebarExperimental);
2266 return false;
2267 }
2268 sidebar_defaults_.reset(LoadExtensionSidebarDefaults(sidebar_value, error));
2269 if (!sidebar_defaults_.get())
2270 return false; // Failed to parse sidebar definition.
2271 }
2272
2273 // Initialize text-to-speech voices (optional). 2204 // Initialize text-to-speech voices (optional).
2274 if (manifest->HasKey(keys::kTtsEngine)) { 2205 if (manifest->HasKey(keys::kTtsEngine)) {
2275 DictionaryValue* tts_dict = NULL; 2206 DictionaryValue* tts_dict = NULL;
2276 if (!manifest->GetDictionary(keys::kTtsEngine, &tts_dict)) { 2207 if (!manifest->GetDictionary(keys::kTtsEngine, &tts_dict)) {
2277 *error = ASCIIToUTF16(errors::kInvalidTts); 2208 *error = ASCIIToUTF16(errors::kInvalidTts);
2278 return false; 2209 return false;
2279 } 2210 }
2280 2211
2281 if (tts_dict->HasKey(keys::kTtsVoices)) { 2212 if (tts_dict->HasKey(keys::kTtsVoices)) {
2282 ListValue* tts_voices = NULL; 2213 ListValue* tts_voices = NULL;
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after
3030 already_disabled(false), 2961 already_disabled(false),
3031 extension(extension) {} 2962 extension(extension) {}
3032 2963
3033 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 2964 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
3034 const Extension* extension, 2965 const Extension* extension,
3035 const ExtensionPermissionSet* permissions, 2966 const ExtensionPermissionSet* permissions,
3036 Reason reason) 2967 Reason reason)
3037 : reason(reason), 2968 : reason(reason),
3038 extension(extension), 2969 extension(extension),
3039 permissions(permissions) {} 2970 permissions(permissions) {}
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/extension_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698