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

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 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 620 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 default_icon.empty()) { 833 default_icon.empty()) {
837 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath); 834 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath);
838 return NULL; 835 return NULL;
839 } 836 }
840 result->set_icon_path(default_icon); 837 result->set_icon_path(default_icon);
841 } 838 }
842 839
843 return result.release(); 840 return result.release();
844 } 841 }
845 842
846 ExtensionSidebarDefaults* Extension::LoadExtensionSidebarDefaults(
847 const DictionaryValue* extension_sidebar, string16* error) {
848 scoped_ptr<ExtensionSidebarDefaults> result(new ExtensionSidebarDefaults());
849
850 std::string default_icon;
851 // Read sidebar's |default_icon| (optional).
852 if (extension_sidebar->HasKey(keys::kSidebarDefaultIcon)) {
853 if (!extension_sidebar->GetString(keys::kSidebarDefaultIcon,
854 &default_icon) ||
855 default_icon.empty()) {
856 *error = ASCIIToUTF16(errors::kInvalidSidebarDefaultIconPath);
857 return NULL;
858 }
859 result->set_default_icon_path(default_icon);
860 }
861
862 // Read sidebar's |default_title| (optional).
863 string16 default_title;
864 if (extension_sidebar->HasKey(keys::kSidebarDefaultTitle)) {
865 if (!extension_sidebar->GetString(keys::kSidebarDefaultTitle,
866 &default_title)) {
867 *error = ASCIIToUTF16(errors::kInvalidSidebarDefaultTitle);
868 return NULL;
869 }
870 }
871 result->set_default_title(default_title);
872
873 // Read sidebar's |default_page| (optional).
874 // TODO(rdevlin.cronin): Continue removing std::string errors and replace
875 // with string16
876 std::string default_page;
877 std::string utf8_error;
878 if (extension_sidebar->HasKey(keys::kSidebarDefaultPage)) {
879 if (!extension_sidebar->GetString(keys::kSidebarDefaultPage,
880 &default_page) ||
881 default_page.empty()) {
882 *error = ASCIIToUTF16(errors::kInvalidSidebarDefaultPage);
883 return NULL;
884 }
885 GURL url = extension_sidebar_utils::ResolveRelativePath(
886 default_page, this, &utf8_error);
887 *error = UTF8ToUTF16(utf8_error);
888 if (!url.is_valid())
889 return NULL;
890 result->set_default_page(url);
891 }
892
893 return result.release();
894 }
895
896 bool Extension::LoadExtent(const extensions::Manifest* manifest, 843 bool Extension::LoadExtent(const extensions::Manifest* manifest,
897 const char* key, 844 const char* key,
898 URLPatternSet* extent, 845 URLPatternSet* extent,
899 const char* list_error, 846 const char* list_error,
900 const char* value_error, 847 const char* value_error,
901 string16* error) { 848 string16* error) {
902 Value* temp = NULL; 849 Value* temp = NULL;
903 if (!manifest->Get(key, &temp)) 850 if (!manifest->Get(key, &temp))
904 return true; 851 return true;
905 852
(...skipping 1286 matching lines...) Expand 10 before | Expand all | Expand 10 after
2192 // Initialize devtools page url (optional). 2139 // Initialize devtools page url (optional).
2193 if (manifest->HasKey(keys::kDevToolsPage)) { 2140 if (manifest->HasKey(keys::kDevToolsPage)) {
2194 std::string devtools_str; 2141 std::string devtools_str;
2195 if (!manifest->GetString(keys::kDevToolsPage, &devtools_str)) { 2142 if (!manifest->GetString(keys::kDevToolsPage, &devtools_str)) {
2196 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); 2143 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage);
2197 return false; 2144 return false;
2198 } 2145 }
2199 devtools_url_ = GetResourceURL(devtools_str); 2146 devtools_url_ = GetResourceURL(devtools_str);
2200 } 2147 }
2201 2148
2202 // Initialize sidebar action (optional).
2203 if (manifest->HasKey(keys::kSidebar)) {
2204 DictionaryValue* sidebar_value = NULL;
2205 if (!manifest->GetDictionary(keys::kSidebar, &sidebar_value)) {
2206 *error = ASCIIToUTF16(errors::kInvalidSidebar);
2207 return false;
2208 }
2209 if (!api_permissions.count(ExtensionAPIPermission::kExperimental)) {
2210 *error = ASCIIToUTF16(errors::kSidebarExperimental);
2211 return false;
2212 }
2213 sidebar_defaults_.reset(LoadExtensionSidebarDefaults(sidebar_value, error));
2214 if (!sidebar_defaults_.get())
2215 return false; // Failed to parse sidebar definition.
2216 }
2217
2218 // Initialize text-to-speech voices (optional). 2149 // Initialize text-to-speech voices (optional).
2219 if (manifest->HasKey(keys::kTtsEngine)) { 2150 if (manifest->HasKey(keys::kTtsEngine)) {
2220 DictionaryValue* tts_dict = NULL; 2151 DictionaryValue* tts_dict = NULL;
2221 if (!manifest->GetDictionary(keys::kTtsEngine, &tts_dict)) { 2152 if (!manifest->GetDictionary(keys::kTtsEngine, &tts_dict)) {
2222 *error = ASCIIToUTF16(errors::kInvalidTts); 2153 *error = ASCIIToUTF16(errors::kInvalidTts);
2223 return false; 2154 return false;
2224 } 2155 }
2225 2156
2226 if (tts_dict->HasKey(keys::kTtsVoices)) { 2157 if (tts_dict->HasKey(keys::kTtsVoices)) {
2227 ListValue* tts_voices = NULL; 2158 ListValue* tts_voices = NULL;
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after
2975 already_disabled(false), 2906 already_disabled(false),
2976 extension(extension) {} 2907 extension(extension) {}
2977 2908
2978 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 2909 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
2979 const Extension* extension, 2910 const Extension* extension,
2980 const ExtensionPermissionSet* permissions, 2911 const ExtensionPermissionSet* permissions,
2981 Reason reason) 2912 Reason reason)
2982 : reason(reason), 2913 : reason(reason),
2983 extension(extension), 2914 extension(extension),
2984 permissions(permissions) {} 2915 permissions(permissions) {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698