Index: chrome/browser/profiles/profile_io_data.cc |
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc |
index bddd0e861806d430d6ed65153a11ce49f6b1982a..68cb5ce9e0f4a305e1f5208ce8508478cb7f95f5 100644 |
--- a/chrome/browser/profiles/profile_io_data.cc |
+++ b/chrome/browser/profiles/profile_io_data.cc |
@@ -34,6 +34,7 @@ |
#include "chrome/browser/download/download_service_factory.h" |
#include "chrome/browser/io_thread.h" |
#include "chrome/browser/media/media_device_id_salt.h" |
+#include "chrome/browser/media/media_stream_devices_helper.h" |
#include "chrome/browser/net/about_protocol_handler.h" |
#include "chrome/browser/net/chrome_fraudulent_certificate_reporter.h" |
#include "chrome/browser/net/chrome_http_user_agent_settings.h" |
@@ -872,6 +873,7 @@ void ProfileIOData::set_http_server_properties( |
ProfileIOData::ResourceContext::ResourceContext(ProfileIOData* io_data) |
: io_data_(io_data), |
+ profile_(NULL), |
host_resolver_(NULL), |
request_context_(NULL) { |
DCHECK(io_data); |
@@ -879,6 +881,12 @@ ProfileIOData::ResourceContext::ResourceContext(ProfileIOData* io_data) |
ProfileIOData::ResourceContext::~ResourceContext() {} |
+void ProfileIOData::ResourceContext::set_profile(Profile* profile) { |
+ DCHECK(!profile_); |
+ DCHECK(profile); |
+ profile_ = profile; |
+} |
+ |
net::HostResolver* ProfileIOData::ResourceContext::GetHostResolver() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
DCHECK(io_data_->initialized_); |
@@ -951,10 +959,20 @@ void ProfileIOData::ResourceContext::CreateKeygenHandler( |
} |
bool ProfileIOData::ResourceContext::AllowMicAccess(const GURL& origin) { |
+ DCHECK(profile_); |
+ if (GetDevicePolicy(profile_, origin, prefs::kAudioCaptureAllowed, |
+ prefs::kAudioCaptureAllowedUrls) == ALWAYS_ALLOW) { |
mmenke
2014/08/22 20:08:52
Erm...Aren't we on the IO thread here, not the UI
|
+ return true; |
+ } |
return AllowContentAccess(origin, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); |
} |
bool ProfileIOData::ResourceContext::AllowCameraAccess(const GURL& origin) { |
+ DCHECK(profile_); |
+ if (GetDevicePolicy(profile_, origin, prefs::kVideoCaptureAllowed, |
+ prefs::kVideoCaptureAllowedUrls) == ALWAYS_ALLOW) { |
+ return true; |
+ } |
return AllowContentAccess(origin, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); |
} |