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

Side by Side Diff: chrome/browser/media/webrtc/media_stream_device_permission_context.cc

Issue 2945243002: Permissions: Allow PermissionManager to return more PermissionStatusSources.
Patch Set: Cleanup. Created 3 years, 5 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/webrtc/media_stream_device_permission_context.h" 5 #include "chrome/browser/media/webrtc/media_stream_device_permission_context.h"
6 #include "base/feature_list.h" 6 #include "base/feature_list.h"
7 #include "chrome/browser/media/webrtc/media_stream_device_permissions.h" 7 #include "chrome/browser/media/webrtc/media_stream_device_permissions.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/common/chrome_features.h" 9 #include "chrome/common/chrome_features.h"
10 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 const GURL& embedding_origin, 47 const GURL& embedding_origin,
48 bool user_gesture, 48 bool user_gesture,
49 const BrowserPermissionCallback& callback) { 49 const BrowserPermissionCallback& callback) {
50 DCHECK(base::FeatureList::IsEnabled( 50 DCHECK(base::FeatureList::IsEnabled(
51 features::kUsePermissionManagerForMediaRequests)); 51 features::kUsePermissionManagerForMediaRequests));
52 PermissionContextBase::DecidePermission(web_contents, id, requesting_origin, 52 PermissionContextBase::DecidePermission(web_contents, id, requesting_origin,
53 embedding_origin, user_gesture, 53 embedding_origin, user_gesture,
54 callback); 54 callback);
55 } 55 }
56 56
57 ContentSetting MediaStreamDevicePermissionContext::GetPermissionStatusInternal( 57 PermissionResult
58 MediaStreamDevicePermissionContext::GetPermissionStatusInternal(
58 content::RenderFrameHost* render_frame_host, 59 content::RenderFrameHost* render_frame_host,
59 const GURL& requesting_origin, 60 const GURL& requesting_origin,
60 const GURL& embedding_origin) const { 61 const GURL& embedding_origin) const {
61 // TODO(raymes): Merge this policy check into content settings 62 // TODO(raymes): Merge this policy check into content settings
62 // crbug.com/244389. 63 // crbug.com/244389.
63 const char* policy_name = nullptr; 64 const char* policy_name = nullptr;
64 const char* urls_policy_name = nullptr; 65 const char* urls_policy_name = nullptr;
65 if (content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) { 66 if (content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
66 policy_name = prefs::kAudioCaptureAllowed; 67 policy_name = prefs::kAudioCaptureAllowed;
67 urls_policy_name = prefs::kAudioCaptureAllowedUrls; 68 urls_policy_name = prefs::kAudioCaptureAllowedUrls;
68 } else { 69 } else {
69 DCHECK(content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); 70 DCHECK(content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA);
70 policy_name = prefs::kVideoCaptureAllowed; 71 policy_name = prefs::kVideoCaptureAllowed;
71 urls_policy_name = prefs::kVideoCaptureAllowedUrls; 72 urls_policy_name = prefs::kVideoCaptureAllowedUrls;
72 } 73 }
73 74
74 MediaStreamDevicePolicy policy = GetDevicePolicy( 75 MediaStreamDevicePolicy policy = GetDevicePolicy(
75 profile(), requesting_origin, policy_name, urls_policy_name); 76 profile(), requesting_origin, policy_name, urls_policy_name);
76 77
77 switch (policy) { 78 switch (policy) {
78 case ALWAYS_DENY: 79 case ALWAYS_DENY:
79 return CONTENT_SETTING_BLOCK; 80 return PermissionResult(CONTENT_SETTING_BLOCK,
81 PermissionStatusSource::ENTERPRISE_POLICY);
80 case ALWAYS_ALLOW: 82 case ALWAYS_ALLOW:
81 return CONTENT_SETTING_ALLOW; 83 return PermissionResult(CONTENT_SETTING_ALLOW,
84 PermissionStatusSource::ENTERPRISE_POLICY);
82 default: 85 default:
83 DCHECK_EQ(POLICY_NOT_SET, policy); 86 DCHECK_EQ(POLICY_NOT_SET, policy);
84 } 87 }
85 88
86 // Check the content setting. TODO(raymes): currently mic/camera permission 89 // Check the content setting. TODO(raymes): currently mic/camera permission
87 // doesn't consider the embedder. 90 // doesn't consider the embedder.
88 ContentSetting setting = PermissionContextBase::GetPermissionStatusInternal( 91 PermissionResult result = PermissionContextBase::GetPermissionStatusInternal(
89 render_frame_host, requesting_origin, requesting_origin); 92 render_frame_host, requesting_origin, requesting_origin);
90 93
91 if (setting == CONTENT_SETTING_DEFAULT) 94 if (result.content_setting == CONTENT_SETTING_DEFAULT)
92 setting = CONTENT_SETTING_ASK; 95 result.content_setting = CONTENT_SETTING_ASK;
93 96
94 return setting; 97 return result;
95 } 98 }
96 99
97 void MediaStreamDevicePermissionContext::ResetPermission( 100 void MediaStreamDevicePermissionContext::ResetPermission(
98 const GURL& requesting_origin, 101 const GURL& requesting_origin,
99 const GURL& embedding_origin) { 102 const GURL& embedding_origin) {
100 NOTREACHED() << "ResetPermission is not implemented"; 103 NOTREACHED() << "ResetPermission is not implemented";
101 } 104 }
102 105
103 void MediaStreamDevicePermissionContext::CancelPermissionRequest( 106 void MediaStreamDevicePermissionContext::CancelPermissionRequest(
104 content::WebContents* web_contents, 107 content::WebContents* web_contents,
105 const PermissionRequestID& id) { 108 const PermissionRequestID& id) {
106 NOTREACHED() << "CancelPermissionRequest is not implemented"; 109 NOTREACHED() << "CancelPermissionRequest is not implemented";
107 } 110 }
108 111
109 bool MediaStreamDevicePermissionContext::IsRestrictedToSecureOrigins() const { 112 bool MediaStreamDevicePermissionContext::IsRestrictedToSecureOrigins() const {
110 return base::FeatureList::IsEnabled( 113 return base::FeatureList::IsEnabled(
111 features::kRequireSecureOriginsForPepperMediaRequests); 114 features::kRequireSecureOriginsForPepperMediaRequests);
112 } 115 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698