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

Unified Diff: chrome/browser/chrome_content_browser_client.cc

Issue 9539011: Make socket permission also allow Pepper sockets (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 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/browser/chrome_content_browser_client.cc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 5a898a9a27de3fdaa886864d8837ee019cecb781..9867e8f410008a0dc286beaad7c7af813c904fae 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1424,9 +1424,28 @@ std::string ChromeContentBrowserClient::GetDefaultDownloadName() {
return l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME);
}
-bool ChromeContentBrowserClient::AllowSocketAPI(const GURL& url) {
- return url.is_valid() &&
- allowed_socket_origins_.find(url.host()) != allowed_socket_origins_.end();
+bool ChromeContentBrowserClient::AllowSocketAPI(
+ content::BrowserContext* browser_context, const GURL& url) {
+ if (!url.is_valid())
+ return false;
+
+ std::string host = url.host();
+ if (allowed_socket_origins_.count(host))
+ return true;
+
+ Profile* profile = Profile::FromBrowserContext(browser_context);
+ if (!profile || !profile->GetExtensionService())
+ return false;
+
+ const Extension* extension = profile->GetExtensionService()->extensions()->
+ GetExtensionOrAppByURL(ExtensionURLInfo(url));
+ if (!extension)
+ return false;
+
+ if (extension->HasAPIPermission(ExtensionAPIPermission::kSocket))
Mihai Parparita -not on Chrome 2012/03/01 06:25:31 I may need some more context about this CL, but I
Dmitry Polukhin 2012/03/01 06:36:05 I'm sorry I'm not sure that I understand what do y
+ return true;
+
+ return false;
}
#if defined(OS_POSIX) && !defined(OS_MACOSX)

Powered by Google App Engine
This is Rietveld 408576698