1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/media_utils.h" 6 7 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/media/media_capture_devices_dispatcher.h" 9 #include "chrome/browser/profiles/profile.h" 10 #include "extensions/browser/extension_system.h" 11 #include "extensions/common/constants.h" 12 13 class Profile; 14 15 namespace content { 16 class WebContents; 17 } 18 19 void RequestMediaAccessPermission( 20 content::WebContents* web_contents, 21 Profile* profile, 22 const content::MediaStreamRequest& request, 23 const content::MediaResponseCallback& callback) { 24 const extensions::Extension* extension = NULL; 25 GURL origin(request.security_origin); 26 if (origin.SchemeIs(extensions::kExtensionScheme)) { 27 ExtensionService* extensions_service = 28 extensions::ExtensionSystem::Get(profile)->extension_service(); 29 extension = extensions_service->extensions()->GetByID(origin.host()); 30 DCHECK(extension); 31 } 32 33 MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest( 34 web_contents, request, callback, extension); 35 } 36