| 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 |