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

Side by Side Diff: chrome/browser/permissions/permission_util.cc

Issue 2458453002: [sensors] Add Permission guard to the generic sensor apis.
Patch Set: rebase + blink reformat Created 3 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
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/permissions/permission_util.h" 5 #include "chrome/browser/permissions/permission_util.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "base/feature_list.h" 8 #include "base/feature_list.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 10 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
11 #include "chrome/browser/permissions/permission_uma_util.h" 11 #include "chrome/browser/permissions/permission_uma_util.h"
12 #include "chrome/common/chrome_features.h" 12 #include "chrome/common/chrome_features.h"
13 #include "components/content_settings/core/browser/host_content_settings_map.h" 13 #include "components/content_settings/core/browser/host_content_settings_map.h"
14 #include "content/public/browser/permission_type.h" 14 #include "content/public/browser/permission_type.h"
15 15
16 using content::PermissionType; 16 using content::PermissionType;
17 17
18 // The returned strings must match the RAPPOR metrics in rappor.xml, 18 // The returned strings must match the RAPPOR metrics in rappor.xml,
19 // and any Field Trial configs for the Permissions kill switch e.g. 19 // and any Field Trial configs for the Permissions kill switch e.g.
20 // Permissions.Action.Geolocation etc.. 20 // Permissions.Action.Geolocation etc..
21 std::string PermissionUtil::GetPermissionString( 21 std::string PermissionUtil::GetPermissionString(
22 ContentSettingsType content_type) { 22 ContentSettingsType content_type) {
23 switch (content_type) { 23 switch (content_type) {
24 case CONTENT_SETTINGS_TYPE_GEOLOCATION: 24 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
25 return "Geolocation"; 25 return "Geolocation";
26 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 26 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
27 return "Notifications"; 27 return "Notifications";
28 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: 28 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
29 return "MidiSysEx"; 29 return "MidiSysEx";
30 case CONTENT_SETTINGS_TYPE_SENSORS:
31 return "Sensors";
30 case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: 32 case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING:
31 return "PushMessaging"; 33 return "PushMessaging";
32 case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: 34 case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE:
33 return "DurableStorage"; 35 return "DurableStorage";
34 case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: 36 case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER:
35 return "ProtectedMediaIdentifier"; 37 return "ProtectedMediaIdentifier";
36 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: 38 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
37 return "AudioCapture"; 39 return "AudioCapture";
38 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: 40 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA:
39 return "VideoCapture"; 41 return "VideoCapture";
(...skipping 12 matching lines...) Expand all
52 54
53 std::string PermissionUtil::ConvertContentSettingsTypeToSafeBrowsingName( 55 std::string PermissionUtil::ConvertContentSettingsTypeToSafeBrowsingName(
54 ContentSettingsType permission_type) { 56 ContentSettingsType permission_type) {
55 switch (permission_type) { 57 switch (permission_type) {
56 case CONTENT_SETTINGS_TYPE_GEOLOCATION: 58 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
57 return "GEOLOCATION"; 59 return "GEOLOCATION";
58 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 60 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
59 return "NOTIFICATIONS"; 61 return "NOTIFICATIONS";
60 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: 62 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
61 return "MIDI_SYSEX"; 63 return "MIDI_SYSEX";
64 case CONTENT_SETTINGS_TYPE_SENSORS:
65 return "Sensors";
62 case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: 66 case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING:
63 return "PUSH_MESSAGING"; 67 return "PUSH_MESSAGING";
64 case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: 68 case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE:
65 return "DURABLE_STORAGE"; 69 return "DURABLE_STORAGE";
66 case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: 70 case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER:
67 return "PROTECTED_MEDIA_IDENTIFIER"; 71 return "PROTECTED_MEDIA_IDENTIFIER";
68 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: 72 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
69 return "AUDIO_CAPTURE"; 73 return "AUDIO_CAPTURE";
70 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: 74 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA:
71 return "VIDEO_CAPTURE"; 75 return "VIDEO_CAPTURE";
72 case CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC: 76 case CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC:
73 return "BACKGROUND_SYNC"; 77 return "BACKGROUND_SYNC";
74 case CONTENT_SETTINGS_TYPE_PLUGINS: 78 case CONTENT_SETTINGS_TYPE_PLUGINS:
75 return "FLASH"; 79 return "FLASH";
76 default: 80 default:
77 break; 81 break;
78 } 82 }
79 NOTREACHED(); 83 NOTREACHED();
80 return std::string(); 84 return std::string();
81 } 85 }
82 86
83 PermissionRequestType PermissionUtil::GetRequestType(ContentSettingsType type) { 87 PermissionRequestType PermissionUtil::GetRequestType(ContentSettingsType type) {
84 switch (type) { 88 switch (type) {
85 case CONTENT_SETTINGS_TYPE_GEOLOCATION: 89 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
86 return PermissionRequestType::PERMISSION_GEOLOCATION; 90 return PermissionRequestType::PERMISSION_GEOLOCATION;
87 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 91 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
88 return PermissionRequestType::PERMISSION_NOTIFICATIONS; 92 return PermissionRequestType::PERMISSION_NOTIFICATIONS;
89 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: 93 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
90 return PermissionRequestType::PERMISSION_MIDI_SYSEX; 94 return PermissionRequestType::PERMISSION_MIDI_SYSEX;
95 case CONTENT_SETTINGS_TYPE_SENSORS:
96 return PermissionRequestType::PERMISSION_SENSORS;
91 case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: 97 case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING:
92 return PermissionRequestType::PERMISSION_PUSH_MESSAGING; 98 return PermissionRequestType::PERMISSION_PUSH_MESSAGING;
93 case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: 99 case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER:
94 return PermissionRequestType::PERMISSION_PROTECTED_MEDIA_IDENTIFIER; 100 return PermissionRequestType::PERMISSION_PROTECTED_MEDIA_IDENTIFIER;
95 case CONTENT_SETTINGS_TYPE_PLUGINS: 101 case CONTENT_SETTINGS_TYPE_PLUGINS:
96 return PermissionRequestType::PERMISSION_FLASH; 102 return PermissionRequestType::PERMISSION_FLASH;
97 default: 103 default:
98 NOTREACHED(); 104 NOTREACHED();
99 return PermissionRequestType::UNKNOWN; 105 return PermissionRequestType::UNKNOWN;
100 } 106 }
101 } 107 }
102 108
103 PermissionRequestGestureType PermissionUtil::GetGestureType(bool user_gesture) { 109 PermissionRequestGestureType PermissionUtil::GetGestureType(bool user_gesture) {
104 return user_gesture ? PermissionRequestGestureType::GESTURE 110 return user_gesture ? PermissionRequestGestureType::GESTURE
105 : PermissionRequestGestureType::NO_GESTURE; 111 : PermissionRequestGestureType::NO_GESTURE;
106 } 112 }
107 113
108 bool PermissionUtil::GetPermissionType(ContentSettingsType type, 114 bool PermissionUtil::GetPermissionType(ContentSettingsType type,
109 PermissionType* out) { 115 PermissionType* out) {
110 if (type == CONTENT_SETTINGS_TYPE_GEOLOCATION) { 116 if (type == CONTENT_SETTINGS_TYPE_GEOLOCATION) {
111 *out = PermissionType::GEOLOCATION; 117 *out = PermissionType::GEOLOCATION;
112 } else if (type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) { 118 } else if (type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) {
113 *out = PermissionType::NOTIFICATIONS; 119 *out = PermissionType::NOTIFICATIONS;
114 } else if (type == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING) { 120 } else if (type == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING) {
115 *out = PermissionType::PUSH_MESSAGING; 121 *out = PermissionType::PUSH_MESSAGING;
116 } else if (type == CONTENT_SETTINGS_TYPE_MIDI) { 122 } else if (type == CONTENT_SETTINGS_TYPE_MIDI) {
117 *out = PermissionType::MIDI; 123 *out = PermissionType::MIDI;
118 } else if (type == CONTENT_SETTINGS_TYPE_MIDI_SYSEX) { 124 } else if (type == CONTENT_SETTINGS_TYPE_MIDI_SYSEX) {
119 *out = PermissionType::MIDI_SYSEX; 125 *out = PermissionType::MIDI_SYSEX;
126 } else if (type == CONTENT_SETTINGS_TYPE_SENSORS) {
127 *out = PermissionType::SENSORS;
128 } else if (type == CONTENT_SETTINGS_TYPE_AMBIENT_LIGHT_SENSOR) {
129 *out = PermissionType::AMBIENT_LIGHT_SENSOR;
130 } else if (type == CONTENT_SETTINGS_TYPE_MAGNETOMETER) {
131 *out = PermissionType::MAGNETOMETER;
132 } else if (type == CONTENT_SETTINGS_TYPE_ACCELEROMETER) {
133 *out = PermissionType::ACCELEROMETER;
134 } else if (type == CONTENT_SETTINGS_TYPE_GYROSCOPE) {
135 *out = PermissionType::GYROSCOPE;
136 } else if (type == CONTENT_SETTINGS_TYPE_ORIENTATION_SENSOR) {
137 *out = PermissionType::ORIENTATION_SENSOR;
120 } else if (type == CONTENT_SETTINGS_TYPE_DURABLE_STORAGE) { 138 } else if (type == CONTENT_SETTINGS_TYPE_DURABLE_STORAGE) {
121 *out = PermissionType::DURABLE_STORAGE; 139 *out = PermissionType::DURABLE_STORAGE;
122 } else if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) { 140 } else if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) {
123 *out = PermissionType::VIDEO_CAPTURE; 141 *out = PermissionType::VIDEO_CAPTURE;
124 } else if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) { 142 } else if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
125 *out = PermissionType::AUDIO_CAPTURE; 143 *out = PermissionType::AUDIO_CAPTURE;
126 } else if (type == CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC) { 144 } else if (type == CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC) {
127 *out = PermissionType::BACKGROUND_SYNC; 145 *out = PermissionType::BACKGROUND_SYNC;
128 } else if (type == CONTENT_SETTINGS_TYPE_PLUGINS) { 146 } else if (type == CONTENT_SETTINGS_TYPE_PLUGINS) {
129 *out = PermissionType::FLASH; 147 *out = PermissionType::FLASH;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 return; 223 return;
206 HostContentSettingsMap* settings_map = 224 HostContentSettingsMap* settings_map =
207 HostContentSettingsMapFactory::GetForProfile(profile_); 225 HostContentSettingsMapFactory::GetForProfile(profile_);
208 ContentSetting final_content_setting = settings_map->GetContentSetting( 226 ContentSetting final_content_setting = settings_map->GetContentSetting(
209 primary_url_, secondary_url_, content_type_, std::string()); 227 primary_url_, secondary_url_, content_type_, std::string());
210 if (final_content_setting != CONTENT_SETTING_ALLOW) { 228 if (final_content_setting != CONTENT_SETTING_ALLOW) {
211 PermissionUmaUtil::PermissionRevoked(content_type_, source_ui_, 229 PermissionUmaUtil::PermissionRevoked(content_type_, source_ui_,
212 primary_url_, profile_); 230 primary_url_, profile_);
213 } 231 }
214 } 232 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_uma_util.cc ('k') | chrome/browser/resources/options/content_settings.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698