Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index 631eafe0f3297fc03ce934fdef150c56fc9433ce..cef656161ad46aec1ab207f5ffe492b5af86b4f3 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -181,6 +181,11 @@ namespace { |
ChromeContentRendererClient* g_current_client; |
#if defined(ENABLE_PLUGINS) |
+const char* const kPredefinedAllowedCameraDeviceOrigins[] = { |
dmichael (off chromium)
2015/02/24 18:24:10
I think it would be helpful to add a comment at th
Justin Chuang
2015/02/25 03:59:02
Done.
|
+ "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", // see crbug.com/383937 |
+ "4EB74897CB187C7633357C2FE832E0AD6A44883A" // see crbug.com/383937 |
+}; |
+ |
const char* const kPredefinedAllowedCompositorOrigins[] = { |
"6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", // see crbug.com/383937 |
"4EB74897CB187C7633357C2FE832E0AD6A44883A" // see crbug.com/383937 |
@@ -334,6 +339,9 @@ ChromeContentRendererClient::ChromeContentRendererClient() { |
ChromeExtensionsRendererClient::GetInstance()); |
#endif |
#if defined(ENABLE_PLUGINS) |
+ for (size_t i = 0; i < arraysize(kPredefinedAllowedCameraDeviceOrigins); ++i) |
+ allowed_camera_device_origins_.insert( |
+ kPredefinedAllowedCameraDeviceOrigins[i]); |
for (size_t i = 0; i < arraysize(kPredefinedAllowedCompositorOrigins); ++i) |
allowed_compositor_origins_.insert(kPredefinedAllowedCompositorOrigins[i]); |
#endif |
@@ -1595,6 +1603,23 @@ bool ChromeContentRendererClient::IsPluginAllowedToUseDevChannelAPIs() { |
#endif |
} |
+bool ChromeContentRendererClient::IsPluginAllowedToUseCameraDeviceAPI( |
+ const GURL& url) { |
+#if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS) |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnablePepperTesting)) |
+ return true; |
+ |
+ if (IsExtensionOrSharedModuleWhitelisted(url, allowed_camera_device_origins_)) |
+ return true; |
+ |
+ chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); |
+ return channel <= chrome::VersionInfo::CHANNEL_DEV; |
dmichael (off chromium)
2015/02/24 18:24:10
This isn't a Dev channel API, so let's not make it
Justin Chuang
2015/02/25 03:59:02
Done.
|
+#else |
+ return false; |
+#endif |
+} |
+ |
bool ChromeContentRendererClient::IsPluginAllowedToUseCompositorAPI( |
const GURL& url) { |
#if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS) |