Chromium Code Reviews| 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 045a52160d6c2a2abf5429fababb0c8a49332496..aadf8415038ea0226e3377e99756d1d5949f28e7 100644 |
| --- a/chrome/browser/chrome_content_browser_client.cc |
| +++ b/chrome/browser/chrome_content_browser_client.cc |
| @@ -78,6 +78,7 @@ |
| #include "chrome/common/extensions/extension.h" |
| #include "chrome/common/extensions/extension_process_policy.h" |
| #include "chrome/common/extensions/extension_set.h" |
| +#include "chrome/common/extensions/permissions/socket_permission.h" |
| #include "chrome/common/logging_chrome.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/render_messages.h" |
| @@ -1681,7 +1682,9 @@ void ChromeContentBrowserClient::DidCreatePpapiPlugin( |
| } |
| bool ChromeContentBrowserClient::AllowPepperSocketAPI( |
| - content::BrowserContext* browser_context, const GURL& url) { |
| + content::BrowserContext* browser_context, |
| + const GURL& url, |
| + const SocketPermissionParam& params) { |
| if (!url.is_valid()) |
| return false; |
| @@ -1717,7 +1720,33 @@ bool ChromeContentBrowserClient::AllowPepperSocketAPI( |
| if (!extension) |
| return false; |
| - if (extension->HasAPIPermission(APIPermission::kSocket)) |
| + extensions::SocketPermissionData::OperationType type = |
| + extensions::SocketPermissionData::NONE; |
| + switch (params.type) { |
| + case SocketPermissionParam::TCP_CONNECT: |
| + type = extensions::SocketPermissionData::TCP_CONNECT; |
| + break; |
| + |
| + case SocketPermissionParam::TCP_LISTEN: |
| + type = extensions::SocketPermissionData::TCP_LISTEN; |
| + break; |
| + |
| + case SocketPermissionParam::UDP_BIND: |
| + type = extensions::SocketPermissionData::UDP_BIND; |
| + break; |
| + |
| + case SocketPermissionParam::UDP_SEND_TO: |
| + type = extensions::SocketPermissionData::UDP_SEND_TO; |
| + break; |
| + |
| + default: |
| + NOTREACHED(); |
| + } |
| + |
| + extensions::SocketPermission::CheckParam extension_params( |
| + type, params.host, params.port); |
| + if (extension->CheckAPIPermissionWithParam(APIPermission::kSocket, |
| + &extension_params)) |
|
ygorshenin1
2012/09/28 14:43:34
nit: delete single space before "&extension_params
Dmitry Polukhin
2012/10/01 11:00:24
Done.
|
| return true; |
| return false; |