OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 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 "platform/feature_policy/FeaturePolicy.h" | 5 #include "platform/feature_policy/FeaturePolicy.h" |
6 | 6 |
7 #include "platform/RuntimeEnabledFeatures.h" | 7 #include "platform/RuntimeEnabledFeatures.h" |
8 #include "platform/json/JSONValues.h" | 8 #include "platform/json/JSONValues.h" |
9 #include "platform/network/HTTPParsers.h" | 9 #include "platform/network/HTTPParsers.h" |
10 #include "platform/weborigin/SecurityOrigin.h" | 10 #include "platform/weborigin/SecurityOrigin.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 // If allowfullscreen attribute is present and no fullscreen policy is set, | 121 // If allowfullscreen attribute is present and no fullscreen policy is set, |
122 // enable the feature for all origins; similarly for allowpaymentrequest. | 122 // enable the feature for all origins; similarly for allowpaymentrequest. |
123 if (allowpayment && !override_payment) | 123 if (allowpayment && !override_payment) |
124 AddAllowFeatureToList(WebFeaturePolicyFeature::kPayment, whitelists); | 124 AddAllowFeatureToList(WebFeaturePolicyFeature::kPayment, whitelists); |
125 if (allowfullscreen && !override_fullscreen) | 125 if (allowfullscreen && !override_fullscreen) |
126 AddAllowFeatureToList(WebFeaturePolicyFeature::kFullscreen, whitelists); | 126 AddAllowFeatureToList(WebFeaturePolicyFeature::kFullscreen, whitelists); |
127 | 127 |
128 return whitelists; | 128 return whitelists; |
129 } | 129 } |
130 | 130 |
| 131 bool IsSupportedInFeaturePolicy(WebFeaturePolicyFeature feature) { |
| 132 switch (feature) { |
| 133 // TODO(lunalu): Re-enabled fullscreen in feature policy once tests have |
| 134 // been updated. |
| 135 // crbug.com/666761 |
| 136 case WebFeaturePolicyFeature::kFullscreen: |
| 137 return false; |
| 138 case WebFeaturePolicyFeature::kPayment: |
| 139 return true; |
| 140 case WebFeaturePolicyFeature::kVibrate: |
| 141 return RuntimeEnabledFeatures::featurePolicyExperimentalFeaturesEnabled(); |
| 142 default: |
| 143 return false; |
| 144 } |
| 145 } |
| 146 |
131 const FeatureNameMap& GetDefaultFeatureNameMap() { | 147 const FeatureNameMap& GetDefaultFeatureNameMap() { |
132 DEFINE_STATIC_LOCAL(FeatureNameMap, default_feature_name_map, ()); | 148 DEFINE_STATIC_LOCAL(FeatureNameMap, default_feature_name_map, ()); |
133 if (default_feature_name_map.IsEmpty()) { | 149 if (default_feature_name_map.IsEmpty()) { |
134 default_feature_name_map.Set("fullscreen", | |
135 WebFeaturePolicyFeature::kFullscreen); | |
136 default_feature_name_map.Set("payment", WebFeaturePolicyFeature::kPayment); | 150 default_feature_name_map.Set("payment", WebFeaturePolicyFeature::kPayment); |
137 if (RuntimeEnabledFeatures::featurePolicyExperimentalFeaturesEnabled()) { | 151 if (RuntimeEnabledFeatures::featurePolicyExperimentalFeaturesEnabled()) { |
| 152 default_feature_name_map.Set("fullscreen", |
| 153 WebFeaturePolicyFeature::kFullscreen); |
138 default_feature_name_map.Set("vibrate", | 154 default_feature_name_map.Set("vibrate", |
139 WebFeaturePolicyFeature::kVibrate); | 155 WebFeaturePolicyFeature::kVibrate); |
140 default_feature_name_map.Set("camera", WebFeaturePolicyFeature::kCamera); | 156 default_feature_name_map.Set("camera", WebFeaturePolicyFeature::kCamera); |
141 default_feature_name_map.Set("encrypted-media", | 157 default_feature_name_map.Set("encrypted-media", |
142 WebFeaturePolicyFeature::kEme); | 158 WebFeaturePolicyFeature::kEme); |
143 default_feature_name_map.Set("microphone", | 159 default_feature_name_map.Set("microphone", |
144 WebFeaturePolicyFeature::kMicrophone); | 160 WebFeaturePolicyFeature::kMicrophone); |
145 default_feature_name_map.Set("speaker", | 161 default_feature_name_map.Set("speaker", |
146 WebFeaturePolicyFeature::kSpeaker); | 162 WebFeaturePolicyFeature::kSpeaker); |
147 default_feature_name_map.Set("cookie", | 163 default_feature_name_map.Set("cookie", |
(...skipping 13 matching lines...) Expand all Loading... |
161 WebFeaturePolicyFeature::kSyncScript); | 177 WebFeaturePolicyFeature::kSyncScript); |
162 default_feature_name_map.Set("sync-xhr", | 178 default_feature_name_map.Set("sync-xhr", |
163 WebFeaturePolicyFeature::kSyncXHR); | 179 WebFeaturePolicyFeature::kSyncXHR); |
164 default_feature_name_map.Set("webrtc", WebFeaturePolicyFeature::kWebRTC); | 180 default_feature_name_map.Set("webrtc", WebFeaturePolicyFeature::kWebRTC); |
165 } | 181 } |
166 } | 182 } |
167 return default_feature_name_map; | 183 return default_feature_name_map; |
168 } | 184 } |
169 | 185 |
170 } // namespace blink | 186 } // namespace blink |
OLD | NEW |