1*6777b538SAndroid Build Coastguard Worker // Copyright 2013 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 #include "net/cookies/cookie_constants.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_functions.h" 8*6777b538SAndroid Build Coastguard Worker #include "base/metrics/histogram_macros.h" 9*6777b538SAndroid Build Coastguard Worker #include "base/notreached.h" 10*6777b538SAndroid Build Coastguard Worker #include "base/strings/string_util.h" 11*6777b538SAndroid Build Coastguard Worker #include "url/url_constants.h" 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker namespace net { 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker const base::TimeDelta kLaxAllowUnsafeMaxAge = base::Minutes(2); 16*6777b538SAndroid Build Coastguard Worker const base::TimeDelta kShortLaxAllowUnsafeMaxAge = base::Seconds(10); 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker namespace { 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker const char kPriorityLow[] = "low"; 21*6777b538SAndroid Build Coastguard Worker const char kPriorityMedium[] = "medium"; 22*6777b538SAndroid Build Coastguard Worker const char kPriorityHigh[] = "high"; 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker const char kSameSiteLax[] = "lax"; 25*6777b538SAndroid Build Coastguard Worker const char kSameSiteStrict[] = "strict"; 26*6777b538SAndroid Build Coastguard Worker const char kSameSiteNone[] = "none"; 27*6777b538SAndroid Build Coastguard Worker const char kSameSiteExtended[] = "extended"; 28*6777b538SAndroid Build Coastguard Worker const char kSameSiteUnspecified[] = "unspecified"; 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker } // namespace 31*6777b538SAndroid Build Coastguard Worker CookiePriorityToString(CookiePriority priority)32*6777b538SAndroid Build Coastguard Workerstd::string CookiePriorityToString(CookiePriority priority) { 33*6777b538SAndroid Build Coastguard Worker switch(priority) { 34*6777b538SAndroid Build Coastguard Worker case COOKIE_PRIORITY_HIGH: 35*6777b538SAndroid Build Coastguard Worker return kPriorityHigh; 36*6777b538SAndroid Build Coastguard Worker case COOKIE_PRIORITY_MEDIUM: 37*6777b538SAndroid Build Coastguard Worker return kPriorityMedium; 38*6777b538SAndroid Build Coastguard Worker case COOKIE_PRIORITY_LOW: 39*6777b538SAndroid Build Coastguard Worker return kPriorityLow; 40*6777b538SAndroid Build Coastguard Worker default: 41*6777b538SAndroid Build Coastguard Worker NOTREACHED(); 42*6777b538SAndroid Build Coastguard Worker } 43*6777b538SAndroid Build Coastguard Worker return std::string(); 44*6777b538SAndroid Build Coastguard Worker } 45*6777b538SAndroid Build Coastguard Worker StringToCookiePriority(const std::string & priority)46*6777b538SAndroid Build Coastguard WorkerCookiePriority StringToCookiePriority(const std::string& priority) { 47*6777b538SAndroid Build Coastguard Worker std::string priority_comp = base::ToLowerASCII(priority); 48*6777b538SAndroid Build Coastguard Worker 49*6777b538SAndroid Build Coastguard Worker if (priority_comp == kPriorityHigh) 50*6777b538SAndroid Build Coastguard Worker return COOKIE_PRIORITY_HIGH; 51*6777b538SAndroid Build Coastguard Worker if (priority_comp == kPriorityMedium) 52*6777b538SAndroid Build Coastguard Worker return COOKIE_PRIORITY_MEDIUM; 53*6777b538SAndroid Build Coastguard Worker if (priority_comp == kPriorityLow) 54*6777b538SAndroid Build Coastguard Worker return COOKIE_PRIORITY_LOW; 55*6777b538SAndroid Build Coastguard Worker 56*6777b538SAndroid Build Coastguard Worker return COOKIE_PRIORITY_DEFAULT; 57*6777b538SAndroid Build Coastguard Worker } 58*6777b538SAndroid Build Coastguard Worker CookieSameSiteToString(CookieSameSite same_site)59*6777b538SAndroid Build Coastguard Workerstd::string CookieSameSiteToString(CookieSameSite same_site) { 60*6777b538SAndroid Build Coastguard Worker switch (same_site) { 61*6777b538SAndroid Build Coastguard Worker case CookieSameSite::LAX_MODE: 62*6777b538SAndroid Build Coastguard Worker return kSameSiteLax; 63*6777b538SAndroid Build Coastguard Worker case CookieSameSite::STRICT_MODE: 64*6777b538SAndroid Build Coastguard Worker return kSameSiteStrict; 65*6777b538SAndroid Build Coastguard Worker case CookieSameSite::NO_RESTRICTION: 66*6777b538SAndroid Build Coastguard Worker return kSameSiteNone; 67*6777b538SAndroid Build Coastguard Worker case CookieSameSite::UNSPECIFIED: 68*6777b538SAndroid Build Coastguard Worker return kSameSiteUnspecified; 69*6777b538SAndroid Build Coastguard Worker } 70*6777b538SAndroid Build Coastguard Worker } 71*6777b538SAndroid Build Coastguard Worker StringToCookieSameSite(const std::string & same_site,CookieSameSiteString * samesite_string)72*6777b538SAndroid Build Coastguard WorkerCookieSameSite StringToCookieSameSite(const std::string& same_site, 73*6777b538SAndroid Build Coastguard Worker CookieSameSiteString* samesite_string) { 74*6777b538SAndroid Build Coastguard Worker // Put a value on the stack so that we can assign to |*samesite_string| 75*6777b538SAndroid Build Coastguard Worker // instead of having to null-check it all the time. 76*6777b538SAndroid Build Coastguard Worker CookieSameSiteString ignored = CookieSameSiteString::kUnspecified; 77*6777b538SAndroid Build Coastguard Worker if (!samesite_string) 78*6777b538SAndroid Build Coastguard Worker samesite_string = &ignored; 79*6777b538SAndroid Build Coastguard Worker 80*6777b538SAndroid Build Coastguard Worker *samesite_string = CookieSameSiteString::kUnrecognized; 81*6777b538SAndroid Build Coastguard Worker CookieSameSite samesite = CookieSameSite::UNSPECIFIED; 82*6777b538SAndroid Build Coastguard Worker 83*6777b538SAndroid Build Coastguard Worker if (base::EqualsCaseInsensitiveASCII(same_site, kSameSiteNone)) { 84*6777b538SAndroid Build Coastguard Worker samesite = CookieSameSite::NO_RESTRICTION; 85*6777b538SAndroid Build Coastguard Worker *samesite_string = CookieSameSiteString::kNone; 86*6777b538SAndroid Build Coastguard Worker } else if (base::EqualsCaseInsensitiveASCII(same_site, kSameSiteLax)) { 87*6777b538SAndroid Build Coastguard Worker samesite = CookieSameSite::LAX_MODE; 88*6777b538SAndroid Build Coastguard Worker *samesite_string = CookieSameSiteString::kLax; 89*6777b538SAndroid Build Coastguard Worker } else if (base::EqualsCaseInsensitiveASCII(same_site, kSameSiteStrict)) { 90*6777b538SAndroid Build Coastguard Worker samesite = CookieSameSite::STRICT_MODE; 91*6777b538SAndroid Build Coastguard Worker *samesite_string = CookieSameSiteString::kStrict; 92*6777b538SAndroid Build Coastguard Worker } else if (base::EqualsCaseInsensitiveASCII(same_site, kSameSiteExtended)) { 93*6777b538SAndroid Build Coastguard Worker // Extended isn't supported anymore -- we just parse it for UMA stats. 94*6777b538SAndroid Build Coastguard Worker *samesite_string = CookieSameSiteString::kExtended; 95*6777b538SAndroid Build Coastguard Worker } else if (same_site == "") { 96*6777b538SAndroid Build Coastguard Worker *samesite_string = CookieSameSiteString::kEmptyString; 97*6777b538SAndroid Build Coastguard Worker } 98*6777b538SAndroid Build Coastguard Worker return samesite; 99*6777b538SAndroid Build Coastguard Worker } 100*6777b538SAndroid Build Coastguard Worker RecordCookieSameSiteAttributeValueHistogram(CookieSameSiteString value)101*6777b538SAndroid Build Coastguard Workervoid RecordCookieSameSiteAttributeValueHistogram(CookieSameSiteString value) { 102*6777b538SAndroid Build Coastguard Worker UMA_HISTOGRAM_ENUMERATION("Cookie.SameSiteAttributeValue", value); 103*6777b538SAndroid Build Coastguard Worker } 104*6777b538SAndroid Build Coastguard Worker ReducePortRangeForCookieHistogram(const int port)105*6777b538SAndroid Build Coastguard WorkerCookiePort ReducePortRangeForCookieHistogram(const int port) { 106*6777b538SAndroid Build Coastguard Worker switch (port) { 107*6777b538SAndroid Build Coastguard Worker case 80: 108*6777b538SAndroid Build Coastguard Worker return CookiePort::k80; 109*6777b538SAndroid Build Coastguard Worker case 81: 110*6777b538SAndroid Build Coastguard Worker return CookiePort::k81; 111*6777b538SAndroid Build Coastguard Worker case 82: 112*6777b538SAndroid Build Coastguard Worker return CookiePort::k82; 113*6777b538SAndroid Build Coastguard Worker case 83: 114*6777b538SAndroid Build Coastguard Worker return CookiePort::k83; 115*6777b538SAndroid Build Coastguard Worker case 84: 116*6777b538SAndroid Build Coastguard Worker return CookiePort::k84; 117*6777b538SAndroid Build Coastguard Worker case 85: 118*6777b538SAndroid Build Coastguard Worker return CookiePort::k85; 119*6777b538SAndroid Build Coastguard Worker case 443: 120*6777b538SAndroid Build Coastguard Worker return CookiePort::k443; 121*6777b538SAndroid Build Coastguard Worker case 444: 122*6777b538SAndroid Build Coastguard Worker return CookiePort::k444; 123*6777b538SAndroid Build Coastguard Worker case 445: 124*6777b538SAndroid Build Coastguard Worker return CookiePort::k445; 125*6777b538SAndroid Build Coastguard Worker case 446: 126*6777b538SAndroid Build Coastguard Worker return CookiePort::k446; 127*6777b538SAndroid Build Coastguard Worker case 447: 128*6777b538SAndroid Build Coastguard Worker return CookiePort::k447; 129*6777b538SAndroid Build Coastguard Worker case 448: 130*6777b538SAndroid Build Coastguard Worker return CookiePort::k448; 131*6777b538SAndroid Build Coastguard Worker case 3000: 132*6777b538SAndroid Build Coastguard Worker return CookiePort::k3000; 133*6777b538SAndroid Build Coastguard Worker case 3001: 134*6777b538SAndroid Build Coastguard Worker return CookiePort::k3001; 135*6777b538SAndroid Build Coastguard Worker case 3002: 136*6777b538SAndroid Build Coastguard Worker return CookiePort::k3002; 137*6777b538SAndroid Build Coastguard Worker case 3003: 138*6777b538SAndroid Build Coastguard Worker return CookiePort::k3003; 139*6777b538SAndroid Build Coastguard Worker case 3004: 140*6777b538SAndroid Build Coastguard Worker return CookiePort::k3004; 141*6777b538SAndroid Build Coastguard Worker case 3005: 142*6777b538SAndroid Build Coastguard Worker return CookiePort::k3005; 143*6777b538SAndroid Build Coastguard Worker case 4200: 144*6777b538SAndroid Build Coastguard Worker return CookiePort::k4200; 145*6777b538SAndroid Build Coastguard Worker case 4201: 146*6777b538SAndroid Build Coastguard Worker return CookiePort::k4201; 147*6777b538SAndroid Build Coastguard Worker case 4202: 148*6777b538SAndroid Build Coastguard Worker return CookiePort::k4202; 149*6777b538SAndroid Build Coastguard Worker case 4203: 150*6777b538SAndroid Build Coastguard Worker return CookiePort::k4203; 151*6777b538SAndroid Build Coastguard Worker case 4204: 152*6777b538SAndroid Build Coastguard Worker return CookiePort::k4204; 153*6777b538SAndroid Build Coastguard Worker case 4205: 154*6777b538SAndroid Build Coastguard Worker return CookiePort::k4205; 155*6777b538SAndroid Build Coastguard Worker case 5000: 156*6777b538SAndroid Build Coastguard Worker return CookiePort::k5000; 157*6777b538SAndroid Build Coastguard Worker case 5001: 158*6777b538SAndroid Build Coastguard Worker return CookiePort::k5001; 159*6777b538SAndroid Build Coastguard Worker case 5002: 160*6777b538SAndroid Build Coastguard Worker return CookiePort::k5002; 161*6777b538SAndroid Build Coastguard Worker case 5003: 162*6777b538SAndroid Build Coastguard Worker return CookiePort::k5003; 163*6777b538SAndroid Build Coastguard Worker case 5004: 164*6777b538SAndroid Build Coastguard Worker return CookiePort::k5004; 165*6777b538SAndroid Build Coastguard Worker case 5005: 166*6777b538SAndroid Build Coastguard Worker return CookiePort::k5005; 167*6777b538SAndroid Build Coastguard Worker case 7000: 168*6777b538SAndroid Build Coastguard Worker return CookiePort::k7000; 169*6777b538SAndroid Build Coastguard Worker case 7001: 170*6777b538SAndroid Build Coastguard Worker return CookiePort::k7001; 171*6777b538SAndroid Build Coastguard Worker case 7002: 172*6777b538SAndroid Build Coastguard Worker return CookiePort::k7002; 173*6777b538SAndroid Build Coastguard Worker case 7003: 174*6777b538SAndroid Build Coastguard Worker return CookiePort::k7003; 175*6777b538SAndroid Build Coastguard Worker case 7004: 176*6777b538SAndroid Build Coastguard Worker return CookiePort::k7004; 177*6777b538SAndroid Build Coastguard Worker case 7005: 178*6777b538SAndroid Build Coastguard Worker return CookiePort::k7005; 179*6777b538SAndroid Build Coastguard Worker case 8000: 180*6777b538SAndroid Build Coastguard Worker return CookiePort::k8000; 181*6777b538SAndroid Build Coastguard Worker case 8001: 182*6777b538SAndroid Build Coastguard Worker return CookiePort::k8001; 183*6777b538SAndroid Build Coastguard Worker case 8002: 184*6777b538SAndroid Build Coastguard Worker return CookiePort::k8002; 185*6777b538SAndroid Build Coastguard Worker case 8003: 186*6777b538SAndroid Build Coastguard Worker return CookiePort::k8003; 187*6777b538SAndroid Build Coastguard Worker case 8004: 188*6777b538SAndroid Build Coastguard Worker return CookiePort::k8004; 189*6777b538SAndroid Build Coastguard Worker case 8005: 190*6777b538SAndroid Build Coastguard Worker return CookiePort::k8005; 191*6777b538SAndroid Build Coastguard Worker case 8080: 192*6777b538SAndroid Build Coastguard Worker return CookiePort::k8080; 193*6777b538SAndroid Build Coastguard Worker case 8081: 194*6777b538SAndroid Build Coastguard Worker return CookiePort::k8081; 195*6777b538SAndroid Build Coastguard Worker case 8082: 196*6777b538SAndroid Build Coastguard Worker return CookiePort::k8082; 197*6777b538SAndroid Build Coastguard Worker case 8083: 198*6777b538SAndroid Build Coastguard Worker return CookiePort::k8083; 199*6777b538SAndroid Build Coastguard Worker case 8084: 200*6777b538SAndroid Build Coastguard Worker return CookiePort::k8084; 201*6777b538SAndroid Build Coastguard Worker case 8085: 202*6777b538SAndroid Build Coastguard Worker return CookiePort::k8085; 203*6777b538SAndroid Build Coastguard Worker case 8090: 204*6777b538SAndroid Build Coastguard Worker return CookiePort::k8090; 205*6777b538SAndroid Build Coastguard Worker case 8091: 206*6777b538SAndroid Build Coastguard Worker return CookiePort::k8091; 207*6777b538SAndroid Build Coastguard Worker case 8092: 208*6777b538SAndroid Build Coastguard Worker return CookiePort::k8092; 209*6777b538SAndroid Build Coastguard Worker case 8093: 210*6777b538SAndroid Build Coastguard Worker return CookiePort::k8093; 211*6777b538SAndroid Build Coastguard Worker case 8094: 212*6777b538SAndroid Build Coastguard Worker return CookiePort::k8094; 213*6777b538SAndroid Build Coastguard Worker case 8095: 214*6777b538SAndroid Build Coastguard Worker return CookiePort::k8095; 215*6777b538SAndroid Build Coastguard Worker case 8100: 216*6777b538SAndroid Build Coastguard Worker return CookiePort::k8100; 217*6777b538SAndroid Build Coastguard Worker case 8101: 218*6777b538SAndroid Build Coastguard Worker return CookiePort::k8101; 219*6777b538SAndroid Build Coastguard Worker case 8102: 220*6777b538SAndroid Build Coastguard Worker return CookiePort::k8102; 221*6777b538SAndroid Build Coastguard Worker case 8103: 222*6777b538SAndroid Build Coastguard Worker return CookiePort::k8103; 223*6777b538SAndroid Build Coastguard Worker case 8104: 224*6777b538SAndroid Build Coastguard Worker return CookiePort::k8104; 225*6777b538SAndroid Build Coastguard Worker case 8105: 226*6777b538SAndroid Build Coastguard Worker return CookiePort::k8105; 227*6777b538SAndroid Build Coastguard Worker case 8200: 228*6777b538SAndroid Build Coastguard Worker return CookiePort::k8200; 229*6777b538SAndroid Build Coastguard Worker case 8201: 230*6777b538SAndroid Build Coastguard Worker return CookiePort::k8201; 231*6777b538SAndroid Build Coastguard Worker case 8202: 232*6777b538SAndroid Build Coastguard Worker return CookiePort::k8202; 233*6777b538SAndroid Build Coastguard Worker case 8203: 234*6777b538SAndroid Build Coastguard Worker return CookiePort::k8203; 235*6777b538SAndroid Build Coastguard Worker case 8204: 236*6777b538SAndroid Build Coastguard Worker return CookiePort::k8204; 237*6777b538SAndroid Build Coastguard Worker case 8205: 238*6777b538SAndroid Build Coastguard Worker return CookiePort::k8205; 239*6777b538SAndroid Build Coastguard Worker case 8443: 240*6777b538SAndroid Build Coastguard Worker return CookiePort::k8443; 241*6777b538SAndroid Build Coastguard Worker case 8444: 242*6777b538SAndroid Build Coastguard Worker return CookiePort::k8444; 243*6777b538SAndroid Build Coastguard Worker case 8445: 244*6777b538SAndroid Build Coastguard Worker return CookiePort::k8445; 245*6777b538SAndroid Build Coastguard Worker case 8446: 246*6777b538SAndroid Build Coastguard Worker return CookiePort::k8446; 247*6777b538SAndroid Build Coastguard Worker case 8447: 248*6777b538SAndroid Build Coastguard Worker return CookiePort::k8447; 249*6777b538SAndroid Build Coastguard Worker case 8448: 250*6777b538SAndroid Build Coastguard Worker return CookiePort::k8448; 251*6777b538SAndroid Build Coastguard Worker case 8888: 252*6777b538SAndroid Build Coastguard Worker return CookiePort::k8888; 253*6777b538SAndroid Build Coastguard Worker case 8889: 254*6777b538SAndroid Build Coastguard Worker return CookiePort::k8889; 255*6777b538SAndroid Build Coastguard Worker case 8890: 256*6777b538SAndroid Build Coastguard Worker return CookiePort::k8890; 257*6777b538SAndroid Build Coastguard Worker case 8891: 258*6777b538SAndroid Build Coastguard Worker return CookiePort::k8891; 259*6777b538SAndroid Build Coastguard Worker case 8892: 260*6777b538SAndroid Build Coastguard Worker return CookiePort::k8892; 261*6777b538SAndroid Build Coastguard Worker case 8893: 262*6777b538SAndroid Build Coastguard Worker return CookiePort::k8893; 263*6777b538SAndroid Build Coastguard Worker case 9000: 264*6777b538SAndroid Build Coastguard Worker return CookiePort::k9000; 265*6777b538SAndroid Build Coastguard Worker case 9001: 266*6777b538SAndroid Build Coastguard Worker return CookiePort::k9001; 267*6777b538SAndroid Build Coastguard Worker case 9002: 268*6777b538SAndroid Build Coastguard Worker return CookiePort::k9002; 269*6777b538SAndroid Build Coastguard Worker case 9003: 270*6777b538SAndroid Build Coastguard Worker return CookiePort::k9003; 271*6777b538SAndroid Build Coastguard Worker case 9004: 272*6777b538SAndroid Build Coastguard Worker return CookiePort::k9004; 273*6777b538SAndroid Build Coastguard Worker case 9005: 274*6777b538SAndroid Build Coastguard Worker return CookiePort::k9005; 275*6777b538SAndroid Build Coastguard Worker case 9090: 276*6777b538SAndroid Build Coastguard Worker return CookiePort::k9090; 277*6777b538SAndroid Build Coastguard Worker case 9091: 278*6777b538SAndroid Build Coastguard Worker return CookiePort::k9091; 279*6777b538SAndroid Build Coastguard Worker case 9092: 280*6777b538SAndroid Build Coastguard Worker return CookiePort::k9092; 281*6777b538SAndroid Build Coastguard Worker case 9093: 282*6777b538SAndroid Build Coastguard Worker return CookiePort::k9093; 283*6777b538SAndroid Build Coastguard Worker case 9094: 284*6777b538SAndroid Build Coastguard Worker return CookiePort::k9094; 285*6777b538SAndroid Build Coastguard Worker case 9095: 286*6777b538SAndroid Build Coastguard Worker return CookiePort::k9095; 287*6777b538SAndroid Build Coastguard Worker default: 288*6777b538SAndroid Build Coastguard Worker return CookiePort::kOther; 289*6777b538SAndroid Build Coastguard Worker } 290*6777b538SAndroid Build Coastguard Worker } 291*6777b538SAndroid Build Coastguard Worker GetSchemeNameEnum(const GURL & url)292*6777b538SAndroid Build Coastguard WorkerCookieSourceSchemeName GetSchemeNameEnum(const GURL& url) { 293*6777b538SAndroid Build Coastguard Worker // The most likely schemes are first, to improve performance. 294*6777b538SAndroid Build Coastguard Worker if (url.SchemeIs(url::kHttpsScheme)) { 295*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kHttpsScheme; 296*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kHttpScheme)) { 297*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kHttpScheme; 298*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kWssScheme)) { 299*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kWssScheme; 300*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kWsScheme)) { 301*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kWsScheme; 302*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs("chrome-extension")) { 303*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kChromeExtensionScheme; 304*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kFileScheme)) { 305*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kFileScheme; 306*6777b538SAndroid Build Coastguard Worker } 307*6777b538SAndroid Build Coastguard Worker // These all aren't marked as cookieable and so are much less likely to 308*6777b538SAndroid Build Coastguard Worker // occur. 309*6777b538SAndroid Build Coastguard Worker else if (url.SchemeIs(url::kAboutBlankURL)) { 310*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kAboutBlankURL; 311*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kAboutSrcdocURL)) { 312*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kAboutSrcdocURL; 313*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kAboutBlankPath)) { 314*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kAboutBlankPath; 315*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kAboutSrcdocPath)) { 316*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kAboutSrcdocPath; 317*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kAboutScheme)) { 318*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kAboutScheme; 319*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kBlobScheme)) { 320*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kBlobScheme; 321*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kContentScheme)) { 322*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kContentScheme; 323*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kContentIDScheme)) { 324*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kContentIDScheme; 325*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kDataScheme)) { 326*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kDataScheme; 327*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kFileSystemScheme)) { 328*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kFileSystemScheme; 329*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kFtpScheme)) { 330*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kFtpScheme; 331*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kJavaScriptScheme)) { 332*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kJavaScriptScheme; 333*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kMailToScheme)) { 334*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kMailToScheme; 335*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kTelScheme)) { 336*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kTelScheme; 337*6777b538SAndroid Build Coastguard Worker } else if (url.SchemeIs(url::kUrnScheme)) { 338*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kUrnScheme; 339*6777b538SAndroid Build Coastguard Worker } 340*6777b538SAndroid Build Coastguard Worker 341*6777b538SAndroid Build Coastguard Worker return CookieSourceSchemeName::kOther; 342*6777b538SAndroid Build Coastguard Worker } 343*6777b538SAndroid Build Coastguard Worker 344*6777b538SAndroid Build Coastguard Worker const char kEmptyCookiePartitionKey[] = ""; 345*6777b538SAndroid Build Coastguard Worker 346*6777b538SAndroid Build Coastguard Worker } // namespace net 347