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

Unified Diff: chrome/common/extensions/extension.cc

Issue 6378009: Only allow extension pages to be displayed in the sidebar to be consistent... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/extension.cc
===================================================================
--- chrome/common/extensions/extension.cc (revision 72219)
+++ chrome/common/extensions/extension.cc (working copy)
@@ -835,19 +835,20 @@
}
result->set_default_title(default_title);
- // Read sidebar's |default_url| (optional).
- std::string default_url;
- if (extension_sidebar->HasKey(keys::kSidebarDefaultUrl)) {
- if (!extension_sidebar->GetString(keys::kSidebarDefaultUrl, &default_url) ||
- default_url.empty()) {
- *error = errors::kInvalidSidebarDefaultUrl;
+ // Read sidebar's |default_page| (optional).
+ std::string default_page;
+ if (extension_sidebar->HasKey(keys::kSidebarDefaultPage)) {
+ if (!extension_sidebar->GetString(keys::kSidebarDefaultPage,
+ &default_page) ||
+ default_page.empty()) {
+ *error = errors::kInvalidSidebarDefaultPage;
return NULL;
}
- GURL resolved_url = extension_sidebar_utils::ResolveAndVerifyUrl(
- default_url, this, error);
- if (!resolved_url.is_valid())
+ GURL url = extension_sidebar_utils::ResolveRelativePath(
+ default_page, this, error);
+ if (!url.is_valid())
return NULL;
- result->set_default_url(resolved_url);
+ result->set_default_page(url);
}
return result.release();
@@ -1897,6 +1898,22 @@
devtools_url_ = GetResourceURL(devtools_str);
}
+ // Initialize sidebar action (optional).
+ if (source.HasKey(keys::kSidebar)) {
+ DictionaryValue* sidebar_value;
+ if (!source.GetDictionary(keys::kSidebar, &sidebar_value)) {
+ *error = errors::kInvalidSidebar;
+ return false;
+ }
+ if (!HasApiPermission(Extension::kExperimentalPermission)) {
+ *error = errors::kSidebarExperimental;
+ return false;
+ }
+ sidebar_defaults_.reset(LoadExtensionSidebarDefaults(sidebar_value, error));
+ if (!sidebar_defaults_.get())
+ return false; // Failed to parse sidebar definition.
+ }
+
// Initialize text-to-speech voices (optional).
if (source.HasKey(keys::kTts)) {
DictionaryValue* tts_dict;
@@ -1976,23 +1993,6 @@
InitEffectiveHostPermissions();
- // Initialize sidebar action (optional). It has to be done after host
- // permissions are initialized to verify default sidebar url.
- if (source.HasKey(keys::kSidebar)) {
- DictionaryValue* sidebar_value;
- if (!source.GetDictionary(keys::kSidebar, &sidebar_value)) {
- *error = errors::kInvalidSidebar;
- return false;
- }
- if (!HasApiPermission(Extension::kExperimentalPermission)) {
- *error = errors::kSidebarExperimental;
- return false;
- }
- sidebar_defaults_.reset(LoadExtensionSidebarDefaults(sidebar_value, error));
- if (!sidebar_defaults_.get())
- return false; // Failed to parse sidebar definition.
- }
-
// Although |source| is passed in as a const, it's still possible to modify
// it. This is dangerous since the utility process re-uses |source| after
// it calls InitFromValue, passing it up to the browser process which calls
« no previous file with comments | « chrome/common/extensions/docs/experimental.sidebar.html ('k') | chrome/common/extensions/extension_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698