Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index b6b805d0871b04b7576490e5fada056120005d8c..093e9ffaa0c3aefca9fb0a29ac9b94f4ca46ca41 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -123,7 +123,6 @@ |
#include "chrome/browser/ui/global_error/global_error_service_factory.h" |
#include "chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.h" |
#include "chrome/browser/ui/location_bar/location_bar.h" |
-#include "chrome/browser/ui/media_utils.h" |
#include "chrome/browser/ui/search/search_delegate.h" |
#include "chrome/browser/ui/search/search_model.h" |
#include "chrome/browser/ui/search/search_tab_helper.h" |
@@ -262,6 +261,21 @@ bool IsFastTabUnloadEnabled() { |
switches::kEnableFastUnload); |
} |
+#if BUILDFLAG(ENABLE_EXTENSIONS) |
Peter Kasting
2017/01/24 00:26:41
Nit: If you do this instead:
const extensions::Ex
Guido Urdaneta
2017/01/24 10:45:39
Done.
|
+const extensions::Extension* GetExtensionForOrigin( |
+ Profile* profile, |
+ const GURL& security_origin) { |
+ if (!security_origin.SchemeIs(extensions::kExtensionScheme)) |
+ return NULL; |
Peter Kasting
2017/01/24 00:26:42
Nit: nullptr
Guido Urdaneta
2017/01/24 10:45:39
Done.
|
+ |
+ const extensions::Extension* extension = |
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions().GetByID( |
+ security_origin.host()); |
+ DCHECK(extension); |
+ return extension; |
+} |
+#endif |
+ |
} // namespace |
//////////////////////////////////////////////////////////////////////////////// |
@@ -1816,13 +1830,33 @@ void Browser::RequestMediaAccessPermission( |
content::WebContents* web_contents, |
const content::MediaStreamRequest& request, |
const content::MediaResponseCallback& callback) { |
- ::RequestMediaAccessPermission(web_contents, profile_, request, callback); |
+ const extensions::Extension* extension = NULL; |
Peter Kasting
2017/01/24 00:26:41
Nit: Can be combined with the next line if you fol
Guido Urdaneta
2017/01/24 10:45:39
Done.
|
+#if BUILDFLAG(ENABLE_EXTENSIONS) |
+ extension = GetExtensionForOrigin(profile_, request.security_origin); |
+#endif |
+ MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest( |
+ web_contents, request, callback, extension); |
} |
bool Browser::CheckMediaAccessPermission(content::WebContents* web_contents, |
const GURL& security_origin, |
content::MediaStreamType type) { |
- return ::CheckMediaAccessPermission(web_contents, security_origin, type); |
+#if BUILDFLAG(ENABLE_EXTENSIONS) |
+ Profile* profile = |
+ Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
+ const extensions::Extension* extension = |
+ GetExtensionForOrigin(profile, security_origin); |
+ if (extension) { |
+ return MediaCaptureDevicesDispatcher::GetInstance() |
+ ->CheckMediaAccessPermission(web_contents, security_origin, type, |
+ extension); |
+ } |
+ return MediaCaptureDevicesDispatcher::GetInstance() |
+ ->CheckMediaAccessPermission(web_contents, security_origin, type); |
Peter Kasting
2017/01/24 00:26:41
Nit: Since the four-arg version of CheckMediaAcces
Guido Urdaneta
2017/01/24 10:45:39
Done.
|
+#else |
+ return MediaCaptureDevicesDispatcher::GetInstance() |
+ ->CheckMediaAccessPermission(web_contents, security_origin, type); |
+#endif |
} |
std::string Browser::GetDefaultMediaDeviceId(content::WebContents* web_contents, |