Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: media/mojo/services/mojo_media_permission.cc

Issue 1838903007: media: Add mojo MediaPermission service Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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 "media/mojo/services/mojo_media_permission.h"
6
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "mojo/shell/public/cpp/connect.h"
10 #include "mojo/shell/public/interfaces/interface_provider.mojom.h"
11
12 namespace media {
13
14 namespace {
15
16 using MojoType = interfaces::MediaPermission::Type;
17 using NativeType = MediaPermission::Type;
18
19 MojoType ConvertMediaPermissionType(NativeType type) {
20 switch (type) {
21 case NativeType::PROTECTED_MEDIA_IDENTIFIER:
22 return MojoType::PROTECTED_MEDIA_IDENTIFIER;
23 case NativeType::AUDIO_CAPTURE:
24 return MojoType::AUDIO_CAPTURE;
25 case NativeType::VIDEO_CAPTURE:
26 return MojoType::VIDEO_CAPTURE;
27 }
28 NOTREACHED();
29 return MojoType::PROTECTED_MEDIA_IDENTIFIER;
30 }
31
32 } // namespace
33
34 MojoMediaPermission::MojoMediaPermission(
35 mojo::shell::mojom::InterfaceProvider* interface_provider)
36 : interface_provider_(interface_provider) {
37 DVLOG(1) << __FUNCTION__;
38 }
39
40 MojoMediaPermission::~MojoMediaPermission() {
41 DVLOG(1) << __FUNCTION__;
42 }
43
44 void MojoMediaPermission::HasPermission(
45 Type type,
46 const GURL& security_origin,
47 const PermissionStatusCB& permission_status_cb) {
48 DVLOG(3) << __FUNCTION__;
49 GetMediaPermission()->HasPermission(
50 ConvertMediaPermissionType(type), security_origin.spec(),
51 base::Bind(&MojoMediaPermission::OnPermissionStatus,
52 base::Unretained(this), permission_status_cb));
53 }
54
55 void MojoMediaPermission::RequestPermission(
56 Type type,
57 const GURL& security_origin,
58 const PermissionStatusCB& permission_status_cb) {
59 DVLOG(3) << __FUNCTION__;
60
61 GetMediaPermission()->RequestPermission(
62 ConvertMediaPermissionType(type), security_origin.spec(),
63 base::Bind(&MojoMediaPermission::OnPermissionStatus,
64 base::Unretained(this), permission_status_cb));
65 }
66
67 interfaces::MediaPermission* MojoMediaPermission::GetMediaPermission() {
68 if (!media_permission_ptr_)
69 mojo::GetInterface(interface_provider_, &media_permission_ptr_);
70
71 return media_permission_ptr_.get();
72 }
73
74 void MojoMediaPermission::OnPermissionStatus(
75 const base::Callback<void(bool)>& callback,
76 bool success) {
77 callback.Run(success);
78 }
79
80 } // namespace media
OLDNEW
« content/browser/media/media_permission_impl.cc ('K') | « media/mojo/services/mojo_media_permission.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698