<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://web.dev/</id>
  <title>Steven Bingler on web.dev</title>
  <updated>2026-04-15T23:21:06Z</updated>
  <author>
    <name>Steven Bingler</name>
  </author>
  <link href="https://web.dev/authors/bingler/feed.xml" rel="self"/>
  <link href="https://web.dev/"/>
  <icon>https://web-dev.imgix.net/image/admin/32OlQmcgfam3csi9SBGI.jpg?auto=format</icon>
  <logo>https://web.dev/images/shared/rss-banner.png</logo>
  <subtitle>Software engineer on Chrome&amp;#39;s Privacy Sandbox.</subtitle>
  
  
  <entry>
    <title>Schemeful Same-Site</title>
    <link href="https://web.dev/schemeful-samesite/"/>
    <updated>2020-11-20T00:00:00Z</updated>
    <id>https://web.dev/schemeful-samesite/</id>
    <content type="html" mode="escaped">&lt;aside class=&quot;aside flow bg-state-info-bg color-state-info-text&quot;&gt;&lt;div class=&quot; flow&quot;&gt; This article is part of a series on the &lt;code&gt;SameSite&lt;/code&gt; cookie attribute changes that includes:  &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://web.dev/understanding-cookies/&quot;&gt;Understanding cookies&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://web.dev/samesite-cookies-explained/&quot;&gt;SameSite cookies explained&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://web.dev/samesite-cookie-recipes/&quot;&gt;SameSite cookies recipes&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;&lt;a href=&quot;https://mikewest.github.io/cookie-incrementalism/draft-west-cookie-incrementalism.html#rfc.section.3.3&quot; rel=&quot;noopener&quot;&gt;Schemeful
Same-Site&lt;/a&gt;
modifies the definition of a (web)site from just the registrable domain to the
scheme + registrable domain. You can find more details and examples in
&lt;a href=&quot;https://web.dev/same-site-same-origin/#%22schemeful-same-site%22&quot;&gt;Understanding &amp;quot;same-site&amp;quot; and
&amp;quot;same-origin&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;aside class=&quot;aside flow color-secondary-box-text bg-secondary-box-bg&quot;&gt;&lt;p class=&quot;cluster &quot;&gt;&lt;span class=&quot;aside__icon box-block &quot;&gt;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; role=&quot;img&quot; aria-label=&quot;Highlighter pen&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;   &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M10.22 9.49l-5.91 6c-.77.8-.7 2.05.08 2.85L.77 22h5.68l.74-.75c.78.81 1.95.86 2.73.05l5.96-6.05-5.66-5.76zm12.46-4l-2.82-2.87c-.78-.8-2.07-.84-2.84-.04l-5.75 5.85 5.66 5.75 5.69-5.78c.77-.81.83-2.11.06-2.91z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/span&gt;&lt;strong&gt;Key Term&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot; flow&quot;&gt; This means that the insecure HTTP version of a site, for example, &lt;strong&gt;http&lt;/strong&gt;://website.example, and the secure HTTPS version of that site, &lt;strong&gt;https&lt;/strong&gt;://website.example, are now considered &lt;strong&gt;cross-site&lt;/strong&gt; to each other. &lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;The good news is: if your website is already fully upgraded to HTTPS then you
don&#39;t need to worry about anything. Nothing will change for you.&lt;/p&gt;
&lt;p&gt;If you haven&#39;t fully upgraded your website yet then this should be the priority.
However, if there are cases where your site visitors will go between HTTP and
HTTPS then some of those common scenarios and the associated &lt;code&gt;SameSite&lt;/code&gt; cookie
behavior are outlined below.&lt;/p&gt;
&lt;aside class=&quot;aside flow bg-state-warn-bg color-state-warn-text&quot;&gt;&lt;p class=&quot;cluster &quot;&gt;&lt;span class=&quot;aside__icon box-block color-state-warn-text&quot;&gt;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; role=&quot;img&quot; aria-label=&quot;Warning sign&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;   &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M23 21L12 2 1 21h22zm-12-3v-2h2v2h-2zm0-4h2v-4h-2v4z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/span&gt;&lt;strong&gt;Warning&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot; flow&quot;&gt; The long-term plan is to &lt;a href=&quot;https://blog.chromium.org/2020/10/progress-on-privacy-sandbox-and.html&quot;&gt;phase out support for third-party cookies entirely&lt;/a&gt;, replacing them with privacy preserving alternatives. Setting &lt;code&gt;SameSite=None; Secure&lt;/code&gt; on a cookie to allow it to be sent across schemes should only be considered a temporary solution in the migration towards full HTTPS. &lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;You can enable these changes for testing in both Chrome and Firefox.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From Chrome 86, enable &lt;code&gt;about://flags/#schemeful-same-site&lt;/code&gt;. Track progress
on the &lt;a href=&quot;https://chromestatus.com/feature/5096179480133632&quot; rel=&quot;noopener&quot;&gt;Chrome Status
page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;From Firefox 79, set &lt;code&gt;network.cookie.sameSite.schemeful&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; via
&lt;code&gt;about:config&lt;/code&gt;. Track progress via &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1651119&quot; rel=&quot;noopener&quot;&gt;the Bugzilla
issue&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the main reasons for the change to &lt;code&gt;SameSite=Lax&lt;/code&gt; as the default for
cookies was to protect against &lt;a href=&quot;https://developer.mozilla.org/docs/Glossary/CSRF&quot; rel=&quot;noopener&quot;&gt;Cross-Site Request Forgery
(CSRF)&lt;/a&gt;. However,
insecure HTTP traffic still presents an opportunity for network attackers to
tamper with cookies that will then be used on the secure HTTPS version of the
site. Creating this additional cross-site boundary between schemes provides
further defense against these attacks.&lt;/p&gt;
&lt;h2 id=&quot;common-cross-scheme-scenarios&quot;&gt;Common cross-scheme scenarios &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#common-cross-scheme-scenarios&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;aside class=&quot;aside flow color-secondary-box-text bg-secondary-box-bg&quot;&gt;&lt;p class=&quot;cluster &quot;&gt;&lt;span class=&quot;aside__icon box-block &quot;&gt;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; role=&quot;img&quot; aria-label=&quot;Highlighter pen&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;   &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M10.22 9.49l-5.91 6c-.77.8-.7 2.05.08 2.85L.77 22h5.68l.74-.75c.78.81 1.95.86 2.73.05l5.96-6.05-5.66-5.76zm12.46-4l-2.82-2.87c-.78-.8-2.07-.84-2.84-.04l-5.75 5.85 5.66 5.75 5.69-5.78c.77-.81.83-2.11.06-2.91z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/span&gt;&lt;strong&gt;Key Term&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot; flow&quot;&gt; In the examples below where the URLs all have the same registrable domain, e.g. site.example, but different schemes, for example, &lt;strong&gt;http&lt;/strong&gt;://site.example vs. &lt;strong&gt;https&lt;/strong&gt;://site.example, they are referred to as &lt;strong&gt;cross-scheme&lt;/strong&gt; to each other. &lt;/div&gt;&lt;/aside&gt;
&lt;h3 id=&quot;navigation&quot;&gt;Navigation &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#navigation&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Navigating between cross-scheme versions of a website (for example, linking from
&lt;strong&gt;http&lt;/strong&gt;://site.example to &lt;strong&gt;https&lt;/strong&gt;://site.example) would previously allow
&lt;code&gt;SameSite=Strict&lt;/code&gt; cookies to be sent. This is now treated as a cross-site
navigation which means &lt;code&gt;SameSite=Strict&lt;/code&gt; cookies will be blocked.&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt=&quot;A cross-scheme navigation triggered by following a link on the insecure HTTP version of a site to the secure HTTPS version. SameSite=Strict cookies blocked, SameSite=Lax and SameSite=None; Secure cookies are allowed.&quot; decoding=&quot;async&quot; height=&quot;342&quot; loading=&quot;lazy&quot; sizes=&quot;(min-width: 800px) 800px, calc(100vw - 48px)&quot; src=&quot;https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&quot; srcset=&quot;https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=200 200w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=228 228w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=260 260w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=296 296w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=338 338w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=385 385w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=439 439w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=500 500w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=571 571w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=650 650w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=741 741w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=845 845w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=964 964w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=1098 1098w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=1252 1252w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=1428 1428w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/yDViqKg9eeEeAEiCNqe4.png?auto=format&amp;w=1600 1600w&quot; width=&quot;800&quot; /&gt;
  &lt;figcaption&gt;
    Cross-scheme navigation from HTTP to HTTPS.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;strong&gt;HTTP → HTTPS&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;strong&gt;HTTPS → HTTP&lt;/strong&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=Strict&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=Lax&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;✓ Allowed
   &lt;/td&gt;
   &lt;td&gt;✓ Allowed
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=None;Secure&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;✓ Allowed
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h3 id=&quot;loading-subresources&quot;&gt;Loading subresources &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#loading-subresources&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;aside class=&quot;aside flow bg-state-warn-bg color-state-warn-text&quot;&gt;&lt;p class=&quot;cluster &quot;&gt;&lt;span class=&quot;aside__icon box-block color-state-warn-text&quot;&gt;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; role=&quot;img&quot; aria-label=&quot;Warning sign&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;   &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M23 21L12 2 1 21h22zm-12-3v-2h2v2h-2zm0-4h2v-4h-2v4z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/span&gt;&lt;strong&gt;Warning&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot; flow&quot;&gt; All major browsers block &lt;a href=&quot;https://developer.mozilla.org/docs/Web/Security/Mixed_content&quot;&gt;active mixed content&lt;/a&gt; such as scripts or iframes. Additionally, browsers including &lt;a href=&quot;https://blog.chromium.org/2019/10/no-more-mixed-messages-about-https.html&quot;&gt;Chrome&lt;/a&gt; and &lt;a href=&quot;https://groups.google.com/g/mozilla.dev.platform/c/F163Jz32oYY&quot;&gt;Firefox&lt;/a&gt; are working toward upgrading or blocking passive mixed content. &lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;Any changes you make here should only be considered a temporary fix while you
work to upgrade to full HTTPS.&lt;/p&gt;
&lt;p&gt;Examples of subresources include images, iframes, and network requests made with
XHR or Fetch.&lt;/p&gt;
&lt;p&gt;Loading a cross-scheme subresource on a page would previously allow
&lt;code&gt;SameSite=Strict&lt;/code&gt; or &lt;code&gt;SameSite=Lax&lt;/code&gt; cookies to be sent or set. Now this is
treated the same way as any other third-party or cross-site subresource which
means that any &lt;code&gt;SameSite=Strict&lt;/code&gt; or &lt;code&gt;SameSite=Lax&lt;/code&gt; cookies will be blocked.&lt;/p&gt;
&lt;p&gt;Additionally, even if the browser does allow resources from insecure schemes to
be loaded on a secure page, all cookies will be blocked on these requests as
third-party or cross-site cookies require &lt;code&gt;Secure&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt=&quot;A cross-scheme subresource resulting from a resource from the secure HTTPS version of the site being included on the insecure HTTP version. SameSite=Strict and SameSite=Lax cookies blocked, and SameSite=None; Secure cookies are allowed.&quot; decoding=&quot;async&quot; height=&quot;285&quot; loading=&quot;lazy&quot; sizes=&quot;(min-width: 800px) 800px, calc(100vw - 48px)&quot; src=&quot;https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&quot; srcset=&quot;https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=200 200w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=228 228w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=260 260w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=296 296w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=338 338w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=385 385w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=439 439w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=500 500w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=571 571w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=650 650w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=741 741w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=845 845w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=964 964w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=1098 1098w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=1252 1252w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=1428 1428w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/GgR6Yln1f9JGkt04exRC.png?auto=format&amp;w=1600 1600w&quot; width=&quot;800&quot; /&gt;
  &lt;figcaption&gt;
    An HTTP page including a cross-scheme subresource via HTTPS.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;strong&gt;HTTP → HTTPS&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;strong&gt;HTTPS → HTTP&lt;/strong&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=Strict&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=Lax&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=None;Secure&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;✓ Allowed
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h3 id=&quot;posting-a-form&quot;&gt;POSTing a form &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#posting-a-form&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Posting between cross-scheme versions of a website would previously allow
cookies set with &lt;code&gt;SameSite=Lax&lt;/code&gt; or &lt;code&gt;SameSite=Strict&lt;/code&gt; to be sent. Now this is
treated as a cross-site POST—only &lt;code&gt;SameSite=None&lt;/code&gt; cookies can be sent. You may
encounter this scenario on sites that present the insecure version by default,
but upgrade users to the secure version on submission of the sign-in or
check-out form.&lt;/p&gt;
&lt;p&gt;As with subresources, if the request is going from a secure, e.g. HTTPS, to an
insecure, e.g. HTTP, context then all cookies will be blocked on these requests
as third-party or cross-site cookies require &lt;code&gt;Secure&lt;/code&gt;.&lt;/p&gt;
&lt;aside class=&quot;aside flow bg-state-warn-bg color-state-warn-text&quot;&gt;&lt;p class=&quot;cluster &quot;&gt;&lt;span class=&quot;aside__icon box-block color-state-warn-text&quot;&gt;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; role=&quot;img&quot; aria-label=&quot;Warning sign&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;   &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M23 21L12 2 1 21h22zm-12-3v-2h2v2h-2zm0-4h2v-4h-2v4z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/span&gt;&lt;strong&gt;Warning&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot; flow&quot;&gt; The best solution here is to ensure both the form page and destination are on a secure connection such as HTTPS. This is especially important if the user is entering any sensitive information into the form. &lt;/div&gt;&lt;/aside&gt;
&lt;figure&gt;
  &lt;img alt=&quot;A cross-scheme form submission resulting from a form on the insecure HTTP version of the site being submitted to the secure HTTPS version. SameSite=Strict and SameSite=Lax cookies blocked, and SameSite=None; Secure cookies are allowed.&quot; decoding=&quot;async&quot; height=&quot;376&quot; loading=&quot;lazy&quot; sizes=&quot;(min-width: 800px) 800px, calc(100vw - 48px)&quot; src=&quot;https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&quot; srcset=&quot;https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=200 200w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=228 228w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=260 260w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=296 296w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=338 338w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=385 385w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=439 439w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=500 500w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=571 571w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=650 650w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=741 741w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=845 845w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=964 964w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=1098 1098w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=1252 1252w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=1428 1428w, https://web-dev.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/ud9LkDeGJUWHObifD718.png?auto=format&amp;w=1600 1600w&quot; width=&quot;800&quot; /&gt;
  &lt;figcaption&gt;
    Cross-scheme form submission from HTTP to HTTPS.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;strong&gt;HTTP → HTTPS&lt;/strong&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;strong&gt;HTTPS → HTTP&lt;/strong&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=Strict&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=Lax&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;&lt;code&gt;SameSite=None;Secure&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;✓ Allowed
   &lt;/td&gt;
   &lt;td&gt;⛔ Blocked
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&quot;how-can-i-test-my-site&quot;&gt;How can I test my site? &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#how-can-i-test-my-site&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Developer tooling and messaging are available in Chrome and Firefox.&lt;/p&gt;
&lt;p&gt;From Chrome 86, the &lt;a href=&quot;https://developer.chrome.com/docs/devtools/issues/&quot; rel=&quot;noopener&quot;&gt;Issue tab in
DevTools&lt;/a&gt; will
include Schemeful Same-Site issues. You may see the following issues highlighted
for your site.&lt;/p&gt;
&lt;p&gt;Navigation issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;Migrate entirely to HTTPS to continue having cookies sent on same-site
requests&amp;quot;—A warning that the cookie &lt;strong&gt;will be&lt;/strong&gt; blocked in a future version
of Chrome.&lt;/li&gt;
&lt;li&gt;&amp;quot;Migrate entirely to HTTPS to have cookies sent on same-site requests&amp;quot;—A
warning that the cookie &lt;strong&gt;has been&lt;/strong&gt; blocked.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Subresource loading issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;Migrate entirely to HTTPS to continue having cookies sent to same-site
subresources&amp;quot; or &amp;quot;Migrate entirely to HTTPS to continue allowing cookies to
be set by same-site subresources&amp;quot;—Warnings that the cookie &lt;strong&gt;will be&lt;/strong&gt;
blocked in a future version of Chrome.&lt;/li&gt;
&lt;li&gt;&amp;quot;Migrate entirely to HTTPS to have cookies sent to same-site subresources&amp;quot;
or &amp;quot;Migrate entirely to HTTPS to allow cookies to be set by same-site
subresources&amp;quot;—Warnings that the cookie &lt;strong&gt;has been&lt;/strong&gt; blocked. The latter
warning can also appear when POSTing a form.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More detail is available in &lt;a href=&quot;https://www.chromium.org/updates/schemeful-same-site/testing-and-debugging-tips-for-schemeful-same-site&quot; rel=&quot;noopener&quot;&gt;Testing and Debugging Tips for Schemeful
Same-Site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From Firefox 79, with &lt;code&gt;network.cookie.sameSite.schemeful&lt;/code&gt; set to &lt;code&gt;true&lt;/code&gt; via
&lt;code&gt;about:config&lt;/code&gt; the console will display message for Schemeful Same-Site issues.
You may see the following on your site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;Cookie &lt;code&gt;cookie_name&lt;/code&gt; &lt;strong&gt;will be soon&lt;/strong&gt; treated as cross-site cookie against
&lt;code&gt;http://site.example/&lt;/code&gt; because the scheme does not match.&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;Cookie &lt;code&gt;cookie_name&lt;/code&gt; &lt;strong&gt;has been&lt;/strong&gt; treated as cross-site against
&lt;code&gt;http://site.example/&lt;/code&gt; because the scheme does not match.&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#faq&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;my-site-is-already-fully-available-on-https,-why-am-i-seeing-issues-in-my-browsers-devtools&quot;&gt;My site is already fully available on HTTPS, why am I seeing issues in my browser&#39;s DevTools? &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#my-site-is-already-fully-available-on-https,-why-am-i-seeing-issues-in-my-browsers-devtools&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;It&#39;s possible that some of your links and subresources still point to insecure
URLs.&lt;/p&gt;
&lt;p&gt;One way to fix this issue is to use &lt;a href=&quot;https://developer.mozilla.org/docs/Web/HTTP/Headers/Strict-Transport-Security&quot; rel=&quot;noopener&quot;&gt;HTTP
Strict-Transport-Security&lt;/a&gt;
(HSTS) and the &lt;code&gt;includeSubDomain&lt;/code&gt; directive. With HSTS + &lt;code&gt;includeSubDomain&lt;/code&gt; even
if one of your pages accidentally includes an insecure link the browser will
automatically use the secure version instead.&lt;/p&gt;
&lt;h3 id=&quot;what-if-i-cant-upgrade-to-https&quot;&gt;What if I can&#39;t upgrade to HTTPS? &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#what-if-i-cant-upgrade-to-https&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;While we strongly recommend that you upgrade your site entirely to HTTPS to
protect your users, if you&#39;re unable to do so yourself we suggest speaking with
your hosting provider to see if they can offer that option. If you self-host,
then &lt;a href=&quot;https://letsencrypt.org/&quot; rel=&quot;noopener&quot;&gt;Let&#39;s Encrypt&lt;/a&gt; provides a number of tools to
install and configure a certificate. You can also investigate moving your site
behind a CDN or other proxy that can provide the HTTPS connection.&lt;/p&gt;
&lt;p&gt;If that&#39;s still not possible then try relaxing the &lt;code&gt;SameSite&lt;/code&gt; protection on
affected cookies.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In cases where only &lt;code&gt;SameSite=Strict&lt;/code&gt; cookies are being blocked you can lower
the protection to &lt;code&gt;Lax&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In cases where both &lt;code&gt;Strict&lt;/code&gt; and &lt;code&gt;Lax&lt;/code&gt; cookies are being blocked and your
cookies are being sent to (or set from) a secure URL you can lower the
protections to &lt;code&gt;None&lt;/code&gt;.
&lt;ul&gt;
&lt;li&gt;This workaround will &lt;strong&gt;fail&lt;/strong&gt; if the URL you&#39;re sending cookies to (or
setting them from) is insecure. This is because &lt;code&gt;SameSite=None&lt;/code&gt; requires the
&lt;code&gt;Secure&lt;/code&gt; attribute on cookies which means those cookies may not be sent or
set over an insecure connection. In this case you will be unable to access
that cookie until your site is upgraded to HTTPS.&lt;/li&gt;
&lt;li&gt;Remember, this is only temporary as eventually third-party cookies will be
phased out entirely.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;how-does-this-affect-my-cookies-if-i-havent-specified-a-samesite-attribute&quot;&gt;How does this affect my cookies if I haven&#39;t specified a &lt;code&gt;SameSite&lt;/code&gt; attribute? &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#how-does-this-affect-my-cookies-if-i-havent-specified-a-samesite-attribute&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Cookies without a &lt;code&gt;SameSite&lt;/code&gt; attribute are treated as if they specified
&lt;code&gt;SameSite=Lax&lt;/code&gt; and the same cross-scheme behavior applies to these cookies as
well. Note that the temporary exception to unsafe methods still applies, see
&lt;a href=&quot;https://www.chromium.org/updates/same-site/faq&quot; rel=&quot;noopener&quot;&gt;the Lax + POST mitigation in the Chromium &lt;code&gt;SameSite&lt;/code&gt;
FAQ&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;how-are-websockets-affected&quot;&gt;How are WebSockets affected? &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/schemeful-samesite/#how-are-websockets-affected&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;WebSocket connections will still be considered same-site if they&#39;re the same
secureness as the page.&lt;/p&gt;
&lt;p&gt;Same-site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wss://&lt;/code&gt; connection from &lt;code&gt;https://&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ws://&lt;/code&gt; connection from &lt;code&gt;http://&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cross-site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wss://&lt;/code&gt; connection from &lt;code&gt;http://&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ws://&lt;/code&gt; connection from &lt;code&gt;https://&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Photo by &lt;a href=&quot;https://unsplash.com/photos/wNjgWrEXAL0?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot; rel=&quot;noopener&quot;&gt;Julissa
Capdevilla&lt;/a&gt;
on
&lt;a href=&quot;https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot; rel=&quot;noopener&quot;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content>
    <author>
      <name>Steven Bingler</name>
    </author><author>
      <name>Rowan Merewood</name>
    </author>
  </entry>
</feed>
