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

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

Issue 7253001: Added a private chromeAuthPrivate API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 6 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
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index ecd638d0f0953f99d1194b6ddf25bdd45d0912fd..87a046fab354acedb54699fe79ba2f2f63726a94 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -272,6 +272,7 @@ const char Extension::kClipboardWritePermission[] = "clipboardWrite";
const char Extension::kContextMenusPermission[] = "contextMenus";
const char Extension::kContentSettingsPermission[] = "contentSettings";
const char Extension::kCookiePermission[] = "cookies";
+const char Extension::kChromeAuthPrivatePermission[] = "chromeAuthPrivate";
const char Extension::kChromePrivatePermission[] = "chromePrivate";
const char Extension::kChromeosInfoPrivatePermission[] = "chromeosInfoPrivate";
const char Extension::kDebuggerPermission[] = "debugger";
@@ -297,6 +298,7 @@ const char Extension::kWebSocketProxyPrivatePermission[] =
const Extension::Permission Extension::kPermissions[] = {
{ kBackgroundPermission, PermissionMessage::ID_NONE },
{ kBookmarkPermission, PermissionMessage::ID_BOOKMARKS },
+ { kChromeAuthPrivatePermission, PermissionMessage::ID_NONE },
{ kChromePrivatePermission, PermissionMessage::ID_NONE },
{ kChromeosInfoPrivatePermission, PermissionMessage::ID_NONE },
{ kClipboardReadPermission, PermissionMessage::ID_CLIPBOARD },
@@ -324,6 +326,7 @@ const size_t Extension::kNumPermissions = arraysize(Extension::kPermissions);
const char* const Extension::kHostedAppPermissionNames[] = {
Extension::kBackgroundPermission,
+ Extension::kChromeAuthPrivatePermission,
Extension::kChromePrivatePermission,
Extension::kClipboardReadPermission,
Extension::kClipboardWritePermission,
@@ -337,6 +340,7 @@ const size_t Extension::kNumHostedAppPermissions =
arraysize(Extension::kHostedAppPermissionNames);
const char* const Extension::kComponentPrivatePermissionNames[] = {
+ Extension::kChromeAuthPrivatePermission,
Extension::kFileBrowserPrivatePermission,
Extension::kWebstorePrivatePermission,
Extension::kMediaPlayerPrivatePermission,
@@ -537,6 +541,29 @@ std::set<Extension::PermissionMessage>
return messages;
}
+void Extension::OverrideLaunchUrl(const GURL& override_url) {
+ GURL new_url(override_url);
+ if (!new_url.is_valid()) {
+ LOG(WARNING) << "Invalid override url given for " << name();
+ } else {
+ if (new_url.has_port()) {
+ LOG(WARNING) << "Override URL passed for " << name()
+ << " should not contain a port. Removing it.";
+
+ GURL::Replacements remove_port;
+ remove_port.ClearPort();
+ new_url = new_url.ReplaceComponents(remove_port);
+ }
+
+ launch_web_url_ = new_url.spec();
+
+ URLPattern pattern(kValidWebExtentSchemes);
+ pattern.Parse(new_url.spec(), URLPattern::PARSE_STRICT);
+ pattern.SetPath(pattern.path() + '*');
+ extent_.AddPattern(pattern);
+ }
+}
+
// static
std::vector<std::string> Extension::GetDistinctHostsForDisplay(
const URLPatternList& list) {
@@ -1377,29 +1404,26 @@ bool Extension::LoadLaunchURL(const DictionaryValue* manifest,
// Empty string means option was not used.
if (!gallery_url_str.empty()) {
GURL gallery_url(gallery_url_str);
- if (!gallery_url.is_valid()) {
- LOG(WARNING) << "Invalid url given in switch "
- << switches::kAppsGalleryURL;
- } else {
- if (gallery_url.has_port()) {
- LOG(WARNING) << "URLs passed to switch " << switches::kAppsGalleryURL
- << " should not contain a port. Removing it.";
-
- GURL::Replacements remove_port;
- remove_port.ClearPort();
- gallery_url = gallery_url.ReplaceComponents(remove_port);
- }
-
- launch_web_url_ = gallery_url.spec();
-
- URLPattern pattern(kValidWebExtentSchemes);
- pattern.Parse(gallery_url.spec(), URLPattern::PARSE_STRICT);
- pattern.SetPath(pattern.path() + '*');
- extent_.AddPattern(pattern);
- }
+ OverrideLaunchUrl(gallery_url);
+ }
+ } else if (id() == extension_misc::kCloudPrintAppId) {
+ // In order for the --cloud-print-service switch to work, we must update
+ // the launch URL and web extent.
+ // TODO(sanjeevr): Ideally we want to use CloudPrintURL here but that is
+ // currently under chrome/browser.
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess();
+ GURL cloud_print_service_url = GURL(command_line.GetSwitchValueASCII(
+ switches::kCloudPrintServiceURL));
+ if (!cloud_print_service_url.is_empty()) {
+ std::string path(
+ cloud_print_service_url.path() + "/enable_chrome_connector");
+ GURL::Replacements replacements;
+ replacements.SetPathStr(path);
+ GURL cloud_print_enable_connector_url =
+ cloud_print_service_url.ReplaceComponents(replacements);
+ OverrideLaunchUrl(cloud_print_enable_connector_url);
}
}
-
return true;
}

Powered by Google App Engine
This is Rietveld 408576698