1*6777b538SAndroid Build Coastguard Worker // Copyright 2022 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_COOKIES_COOKIE_SETTING_OVERRIDE_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_COOKIES_COOKIE_SETTING_OVERRIDE_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/containers/enum_set.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace net { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker // An enum of possible overrides for cookie setting checks. 13*6777b538SAndroid Build Coastguard Worker // Use CookieSettingOverrides below for specifying any number of overrides 14*6777b538SAndroid Build Coastguard Worker // together. The notion of no overrides is conveyable via an empty set. 15*6777b538SAndroid Build Coastguard Worker enum class CookieSettingOverride { 16*6777b538SAndroid Build Coastguard Worker kMinValue = 0, 17*6777b538SAndroid Build Coastguard Worker // When specified, third-party cookies may be allowed based on existence of 18*6777b538SAndroid Build Coastguard Worker // TopLevelStorageAccess grants. 19*6777b538SAndroid Build Coastguard Worker kTopLevelStorageAccessGrantEligible = kMinValue, 20*6777b538SAndroid Build Coastguard Worker // When present, the caller may use an existing Storage Access API grant (if 21*6777b538SAndroid Build Coastguard Worker // a matching grant exists) to access third-party cookies. Otherwise, Storage 22*6777b538SAndroid Build Coastguard Worker // Access API grants do not apply. 23*6777b538SAndroid Build Coastguard Worker kStorageAccessGrantEligible = 1, 24*6777b538SAndroid Build Coastguard Worker // Allows TPCD mitigations to be skipped when checking if third party cookies 25*6777b538SAndroid Build Coastguard Worker // are allowed, meaning cookies will be blocked despite the presence of any of 26*6777b538SAndroid Build Coastguard Worker // these grants/heuristics. 27*6777b538SAndroid Build Coastguard Worker kSkipTPCDHeuristicsGrant = 2, 28*6777b538SAndroid Build Coastguard Worker kSkipTPCDMetadataGrant = 3, 29*6777b538SAndroid Build Coastguard Worker // Corresponds to skipping checks on the TPCD_TRIAL content setting, which 30*6777b538SAndroid Build Coastguard Worker // backs 3PC accesses granted via 3PC deprecation trial. 31*6777b538SAndroid Build Coastguard Worker kSkipTPCDTrial = 4, 32*6777b538SAndroid Build Coastguard Worker // Corresponds to skipping checks on the TOP_LEVEL_TPCD_TRIAL content setting, 33*6777b538SAndroid Build Coastguard Worker // which backs 3PC accesses granted via top-level 3PC deprecation trial. 34*6777b538SAndroid Build Coastguard Worker kSkipTopLevelTPCDTrial = 5, 35*6777b538SAndroid Build Coastguard Worker // Corresponds to checks that may grant 3PCs when a request opts into 36*6777b538SAndroid Build Coastguard Worker // credentials and CORS protection. 37*6777b538SAndroid Build Coastguard Worker // One example are subresource requests that are same-site with the top-level 38*6777b538SAndroid Build Coastguard Worker // site but originate from a cross-site embed. 39*6777b538SAndroid Build Coastguard Worker kCrossSiteCredentialedWithCORS = 6, 40*6777b538SAndroid Build Coastguard Worker // When specified, third party cookies should be forced disabled. 41*6777b538SAndroid Build Coastguard Worker // Other cookie exceptions like the storage access API could result in 42*6777b538SAndroid Build Coastguard Worker // third party cookies still being used when this is forced disabled. 43*6777b538SAndroid Build Coastguard Worker // Used by WebView. 44*6777b538SAndroid Build Coastguard Worker kForceDisableThirdPartyCookies = 7, 45*6777b538SAndroid Build Coastguard Worker 46*6777b538SAndroid Build Coastguard Worker kMaxValue = kForceDisableThirdPartyCookies, 47*6777b538SAndroid Build Coastguard Worker }; 48*6777b538SAndroid Build Coastguard Worker 49*6777b538SAndroid Build Coastguard Worker using CookieSettingOverrides = base::EnumSet<CookieSettingOverride, 50*6777b538SAndroid Build Coastguard Worker CookieSettingOverride::kMinValue, 51*6777b538SAndroid Build Coastguard Worker CookieSettingOverride::kMaxValue>; 52*6777b538SAndroid Build Coastguard Worker 53*6777b538SAndroid Build Coastguard Worker } // namespace net 54*6777b538SAndroid Build Coastguard Worker 55*6777b538SAndroid Build Coastguard Worker #endif // NET_COOKIES_COOKIE_SETTING_OVERRIDE_H_ 56