Adding instrumentation to locate the source of jankiness
[chromium-blink-merge.git] / chrome / browser / ui / media_utils.cc
blob52d463377281ae737f208b65045eb4907c1504b8
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.
5 #include "chrome/browser/ui/media_utils.h"
7 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "content/public/browser/web_contents.h"
11 #if defined(ENABLE_EXTENSIONS)
12 #include "chrome/browser/extensions/extension_service.h"
13 #include "extensions/browser/extension_system.h"
14 #include "extensions/common/constants.h"
15 #endif
17 namespace {
19 #if defined(ENABLE_EXTENSIONS)
20 const extensions::Extension* GetExtensionForOrigin(Profile* profile,
21 const GURL& security_origin) {
22 if (!security_origin.SchemeIs(extensions::kExtensionScheme))
23 return NULL;
25 ExtensionService* extensions_service =
26 extensions::ExtensionSystem::Get(profile)->extension_service();
27 const extensions::Extension* extension =
28 extensions_service->extensions()->GetByID(security_origin.host());
29 DCHECK(extension);
30 return extension;
32 #endif
34 } // namespace
36 void RequestMediaAccessPermission(
37 content::WebContents* web_contents,
38 Profile* profile,
39 const content::MediaStreamRequest& request,
40 const content::MediaResponseCallback& callback) {
41 const extensions::Extension* extension = NULL;
42 #if defined(ENABLE_EXTENSIONS)
43 extension = GetExtensionForOrigin(profile, request.security_origin);
44 #endif
45 MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
46 web_contents, request, callback, extension);
49 bool CheckMediaAccessPermission(content::WebContents* web_contents,
50 const GURL& security_origin,
51 content::MediaStreamType type) {
52 #if defined(ENABLE_EXTENSIONS)
53 Profile* profile =
54 Profile::FromBrowserContext(web_contents->GetBrowserContext());
55 const extensions::Extension* extension =
56 GetExtensionForOrigin(profile, security_origin);
57 if (extension) {
58 return MediaCaptureDevicesDispatcher::GetInstance()
59 ->CheckMediaAccessPermission(
60 web_contents, security_origin, type, extension);
62 return MediaCaptureDevicesDispatcher::GetInstance()
63 ->CheckMediaAccessPermission(web_contents, security_origin, type);
64 #else
65 return MediaCaptureDevicesDispatcher::GetInstance()
66 ->CheckMediaAccessPermission(web_contents, security_origin, type);
67 #endif