The useful part, up front

What you’ll take away

  • A cookie name and widget URL alone do not identify the selected partitioned record.
  • Different top-level origins can share a schemeful site, while the same embedded host can have separate records under different sites.
  • SameSite request eligibility and partition selection are separate mechanisms; cookie creation also has rules.
  • HttpOnly permits applicable HTTP exchange while restricting non-HTTP access; one request header is not a complete storage inventory.
  • Browser-specific partitioning and access grants need their own scope, and a missing cookie does not establish complete erasure or anonymity.
01

One widget can have more than one remembered choice

A small embedded panel remembers a compact layout on a shopping page but opens wide on a news page. That difference does not necessarily mean the panel forgot your choice. A browser can keep separate cookie records for the same embedded service according to the site surrounding it. Google's CHIPS documentation describes cookies that opt into this partitioned storage. [1] The useful question is therefore not just whether the panel has a cookie, but which context selects the record the panel is allowed to use.

Our original example follows a fictional layout preference named panel_mode. It belongs to widget.example.net, which appears directly inside several ordinary HTTPS pages. We assume the browser accepts the specified writes, the records remain unexpired and other applicable controls permit the requests. These are paper examples, not observations from a browser or account. We will trace three stored values, then examine a separate request rule called SameSite. Keeping record selection apart from request permission explains why changing one setting need not make every copy of the panel remember the same thing.

Different origins can belong to the same schemeful site. Original address comparisons against HTTPS shop.example.com at its default port. The HTTP row classifies identity only; no cookie request is made.
Original address comparisons against HTTPS shop.example.com at its default port. The HTTP row classifies identity only; no cookie request is made. · Ameer Journal — original explanatory diagramOriginal editorial illustration; no third-party artwork reused.
02

A page origin and a schemeful site group different URLs

An origin identifies an ordinary web address using its scheme, host and port. A scheme is the opening part such as https; the host is the named server; a port distinguishes an endpoint on that host. The HTML Standard's same-origin comparison checks those components. A schemeful site groups more broadly, using the scheme and a registrable domain in our examples. [2] Shop.example.com and learn.example.com are different hosts, but both belong to the example.com site when the scheme is HTTPS.

Compare https://shop.example.com/store with https://learn.example.com:8443/course. Their origins differ, yet both have the schemeful site https://example.com. Changing only /store to /other keeps both identities the same. Changing the shopping address to HTTP changes its schemeful site as well as its origin; we use that address only to illustrate identity, not to send our secure cookie. The domain grouping here is explicitly assigned for example.com, example.org and example.net. It is not a general instruction to take the last two pieces of every hostname.

03

Keep the cookie’s own host and path in the record

Our preference is host-only: the imagined setting response does not provide a Domain attribute. Under the cookie rules in RFC 6265, that keeps its host scope at widget.example.net rather than extending it to other hosts. The name is panel_mode and its Path is /panel. [3] Those details matter even before partitioning enters the picture. A preference with the same name on another host or another cookie path is not automatically the record we are following. The top-level shopping page also does not become the owner of the widget's cookie.

Path matching has a boundary, not just a similar spelling. The /panel record can match /panel and /panel/view, but not /panels. The RFC also warns that cookie paths are not a security barrier and that cookies do not isolate ports in the way ordinary origins do. [3] A different HTTPS port for the same widget host is therefore not, by itself, a separate cookie compartment. Keep that fact distinct from the top-level page's port: the latter already disappeared when we grouped the surrounding page into a schemeful site.

04

Add the surrounding site without changing cookie ownership

For the main trace, give the record Secure, HttpOnly, SameSite=None and Partitioned attributes. Secure limits transmission to a secure channel, and HttpOnly keeps it out of non-HTTP access such as a page script's ordinary cookie access. [3] Google's CHIPS guidance requires Secure for its partitioned cookies and describes a partition key based on the top-level site's scheme and registrable domain. [1] The layout is therefore rendered by the widget's server after receiving the relevant request, not by JavaScript reading this HttpOnly value.

For our fixed attributes, write the identifying label as widget host, cookie path, cookie name and top-level schemeful site. On the shopping page its final part is https://example.com. On https://news.example.org/story it is https://example.org. The first three parts stay unchanged. The surrounding page helps select a compartment; it does not acquire permission to read the widget's cookie. SameSite=None is included so that our accepted cross-site exchanges are not defeated by that particular filter. It does not tell the browser to search every partition for a matching name.

Name the exact record before following its update. Original fixed-attribute CHIPS model for direct-child HTTPS embeds. This explanatory tuple is not a complete browser storage-key implementation.
Original fixed-attribute CHIPS model for direct-child HTTPS embeds. This explanatory tuple is not a complete browser storage-key implementation. · Ameer Journal — original explanatory diagramOriginal editorial illustration; no third-party artwork reused.
05

Follow the first two writes before diagnosing a lost preference

Start with an empty model store. While embedded under the shopping site A, the widget receives an accepted write setting panel_mode to compact. There is now one record. Visit the news site B, which embeds the same widget host and path. B selects a different top-level-site compartment, so its first request has no value from this model. Nothing has deleted compact. The request simply did not select the record that contains it. This follows the separation described in the CHIPS documentation. [1]

Now set wide while the widget is under B. The store contains two records: compact for the example.com partition and wide for example.org. Both share the same cookie name, host and path. Returning to A still selects compact. The key distinction is between replacing the value at an existing full key and creating a value at another key. Counting names alone would report one name; counting records reports two. Neither count, without its definition, fully explains what the next embedded request can remember.

06

Different surrounding origins can still select the same record

Open the widget inside https://learn.example.com:8443/course. This surrounding page has a different origin from the shopping page, but their schemeful sites are equal. [2] Our model therefore selects the existing example.com compartment and reads compact. [1] The different host and visible port are not enough to produce another partition here. This is a useful counterexample to the tempting rule that every different-looking page gets an entirely separate copy of embedded state.

Next, return to the shopping page and change its layout preference to roomy. That write replaces compact at the same full key, so the number of stored records remains two. The learning page now reads roomy because it selects that key too. The news page still reads wide. One changed preference has affected two surrounding origins without affecting the other schemeful site. This is not an exception to partitioning: it is the consequence of choosing the site, rather than the full top-level origin, as the selector in this example.

07

A direct visit to the service introduces a third context

Now visit https://widget.example.net/panel as the main page itself. The top-level schemeful site is https://example.net, not example.com or example.org. Google's CHIPS example likewise distinguishes a service's direct top-level visit from the compartments it used when embedded under other sites. [1] In our trace, the first direct visit finds no panel_mode value at this new key. The shopping and news preferences remain stored, but neither becomes the direct visit's preference just because the widget host is the same.

Set plain during that direct visit. There are now three records: roomy for example.com, wide for example.org and plain for example.net, all under HTTPS. A return to the learning page still gives roomy; the news page still gives wide. The direct visit has not joined or copied the earlier compartments. This final inventory is more informative than saying the service remembers three choices: it states which context selects each choice, and it shows why a perfectly successful write can remain invisible in another context.

Four surrounding contexts select three final records. Original accepted writes: A compact → roomy; B wide; direct service plain. HTTPS, host-only widget.example.net, /panel and panel_mode stay fixed.
Original accepted writes: A compact → roomy; B wide; direct service plain. HTTPS, host-only widget.example.net, /panel and panel_mode stay fixed. · Ameer Journal — original explanatory diagramOriginal editorial illustration; no third-party artwork reused.
08

A rendered choice and a cookie header reveal different things

Our widget can show roomy even though its page script cannot read the HttpOnly preference through ordinary script cookie access. The browser can send the applicable cookie in an HTTP request, and the server can use its value when building the response. HttpOnly restricts non-HTTP access; it does not mean the cookie is withheld from every HTTP request. [3] In this example, the visible layout is a result of that server response. It is not evidence that the shopping page or the widget's JavaScript read the protected cookie directly.

An ordinary Cookie request header carries names and values, not a complete description of the stored records. RFC 6265 explains that attributes such as Path, Secure and expiry are not returned in that header. [3] Seeing panel_mode=roomy on one request therefore does not reveal the whole partition inventory or explain the earlier writes. A useful record of the observation also needs the surrounding site, request destination and relevant attributes. Otherwise the same short header can be attached to several incompatible stories about how the browser selected it.

09

SameSite is a separate request test, with its own creation rules

For a separate comparison, imagine valid, already stored unpartitioned cookies created during an earlier first-party visit, with explicit Strict, Lax or None settings. Use the recorded rules of IETF draft 22, dated 1 December 2025 and carrying an expiry of 4 June 2026; it is a work-in-progress snapshot, not a final RFC or a browser compatibility test. [6] With other restrictions held satisfied, all three pass the SameSite filter for a same-site HTTP request. A cross-site embedded GET passes that filter only with None.

For a cross-site top-level navigation using the safe GET method, Lax and None pass this filter; Strict does not. For a cross-site top-level POST, only None passes in this explicit-setting example. [6] Passing is not a guarantee of delivery. We deliberately start with valid stored cookies because the same draft rejects Strict/Lax creation through cross-site subresource responses or nested navigations. [6] This table is not an instruction to create those cookies inside our widget. Its separate unpartitioned records also do not change the three partitioned preferences already traced.

SameSite filters a separate set of valid stored cookies. Separate pre-existing UNPARTITIONED cookies; explicit flags; all other gates pass. Pinned draft 22 rules. “Pass” means this filter only, not guaranteed delivery.
Separate pre-existing UNPARTITIONED cookies; explicit flags; all other gates pass. Pinned draft 22 rules. “Pass” means this filter only, not guaranteed delivery. · Ameer Journal — original explanatory diagramOriginal editorial illustration; no third-party artwork reused.
10

Partitioning settings and unpartitioned access need their own scope

A browser's wider privacy feature is not necessarily the same mechanism as a cookie explicitly opting into CHIPS. Google documents CHIPS support from Chrome 114, while Mozilla describes its own state-partitioning system and says it became the default for Firefox users from version 103. [1][4] Mozilla also discusses exceptions and transitional compatibility heuristics. [4] Those are scoped implementation descriptions. They are a reason to record the browser and version when investigating behavior, not a basis for assuming every browser setting creates exactly our three-record model.

The Storage Access API addresses access to unpartitioned state in certain embedded situations. Its retrieved document is a Draft Community Group Report dated 26 October 2026, and it explicitly says it is neither a WHATWG Living Standard nor a W3C standards-track document. [5] It distinguishes checking access from requesting it, leaves room for browser grant decisions and warns that an overall granted state does not ensure every outgoing request includes an unpartitioned cookie. [5] Asking for access is therefore not the same as automatically merging our partitioned choices into a shared preference.

11

One missing value does not establish what was erased

Return to the final three-record map and perform one additional hypothetical operation: delete only the exact example.com partition record. The shopping and learning contexts now lack their preference, while the news context keeps wide and the service's direct visit keeps plain. Two records remain. This is a deliberately specified deletion, not a claim about what a particular browser's clear-data button removes. Its purpose is to show why the scope of an operation must be known before interpreting a changed layout.

A missing value on a request can have several different explanations in the documented mechanisms: the selected key may lack a record, a cookie may have expired or been removed, or matching and browser policy may prevent it being sent. [1][3][6] The visible symptom alone cannot decide among them. Nor does partitioning establish complete anonymity: the IETF draft notes that cookies are not the only way to correlate users across sites. [6] A precise observation describes the missing value and its context without turning it into a claim that every other record or identification route has disappeared.

12

Describe the state and request before interpreting a privacy label

A useful explanation of a remembered choice starts with a short record: the surrounding page URL, the embedded request's host and path, the cookie's name and attributes, and whether the observation concerns a write, a request value or a rendered response. Those fields correspond to different parts of the documented identity and matching rules. [1][2][3] They should not be collapsed into a single statement that the site allowed or blocked cookies. In our example, writing wide under the news site was successful even while the shopping site continued showing another value.

Then ask which change would actually alter the explanation. A sibling top-level origin may keep the same site key. A direct visit to the service changes that key. A SameSite setting can change request eligibility without changing an existing record's partition identity. [1][2][6] Browser-specific policies and access grants require their own evidence. [4][5] This sequence gives the reader a way to interpret apparently inconsistent preferences: keep the storage selector, the request conditions and the observed result separate, and claim only what their documented relationship can establish.

Keep an observation tied to its context. A reading method based on the documented boundaries. It neither disables protections nor promises a particular browser will grant access.
A reading method based on the documented boundaries. It neither disables protections nor promises a particular browser will grant access. · Ameer Journal — original explanatory diagramOriginal editorial illustration; no third-party artwork reused.
Follow the evidence

Sources & further reading

Explore the references behind this guide. External pages may change after our review.

  1. Cookies Having Independent Partitioned State (CHIPS) | Privacy Sandbox
    Google Privacy Sandbox · Accessed 7 Nov 2026
  2. HTML Standard
    WHATWG · Accessed 7 Nov 2026
  3. RFC 6265: HTTP State Management Mechanism
    IETF / RFC Editor · Accessed 7 Nov 2026
  4. State Partitioning - Privacy on the web | MDN
    Mozilla / MDN · Accessed 7 Nov 2026
  5. The Storage Access API
    W3C Privacy Community Group · Accessed 7 Nov 2026
  6. Cookies: HTTP State Management Mechanism
    IETF HTTP Working Group · Accessed 7 Nov 2026

Article updated 7 Nov 2026.

Found something we should revisit?

Good explanations get better with thoughtful feedback.

Suggest a correction