Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index f136d01a35148a06a3a2101951b406bbb3688482..3abed6c03e97efdec77f487d398acf3f4d424355 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,23 @@ bool IsFastTabUnloadEnabled() { |
switches::kEnableFastUnload); |
} |
+const extensions::Extension* GetExtensionForOrigin( |
+ Profile* profile, |
+ const GURL& security_origin) { |
+#if BUILDFLAG(ENABLE_EXTENSIONS) |
+ if (!security_origin.SchemeIs(extensions::kExtensionScheme)) |
+ return nullptr; |
+ |
+ const extensions::Extension* extension = |
+ extensions::ExtensionRegistry::Get(profile)->enabled_extensions().GetByID( |
+ security_origin.host()); |
+ DCHECK(extension); |
+ return extension; |
+#else |
+ return nullptr; |
+#endif |
+} |
+ |
} // namespace |
//////////////////////////////////////////////////////////////////////////////// |
@@ -1821,13 +1837,22 @@ 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 = |
+ GetExtensionForOrigin(profile_, request.security_origin); |
+ 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); |
+ Profile* profile = |
+ Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
+ const extensions::Extension* extension = |
+ GetExtensionForOrigin(profile, security_origin); |
+ return MediaCaptureDevicesDispatcher::GetInstance() |
+ ->CheckMediaAccessPermission(web_contents, security_origin, type, |
+ extension); |
} |
std::string Browser::GetDefaultMediaDeviceID(content::WebContents* web_contents, |