files/en-us/web/http/reference/headers/permissions-policy/deferred-fetch/index.md
{{SeeCompatTable}}
The deferred-fetch {{HTTPHeader("Permissions-Policy")}} directive is part of the Fetch API.
This directive, along with {{HTTPHeader("Permissions-Policy/deferred-fetch-minimal", "deferred-fetch-minimal")}}, determines how the overall 640KiB quota limit is distributed between the top-level origin and its cross-origin subframes. By default, the top-level origin is granted 512KiB, and each cross-origin subframe is granted 8KiB out of the rest of the 128KiB. The deferred-fetch Permissions Policy can allow sub-frame origins to be granted a larger 64KiB quota out of the top-level 512KiB quota in place of the 8KiB minimal quota they would otherwise receive by default.
See fetchLater() quotas for more details and examples.
Permissions-policy: deferred-fetch=(self)
Permissions-policy: deferred-fetch=(self <url-list>)
Permissions-policy: deferred-fetch=(<url-list>)
<url-list>
A cross-origin subframe can grant deferred-fetch to one of its cross-origin subframe descendants, delegating its entire quota. This only works if none of the quota is currently being used.
Permissions Policy checks are not discernible from quota checks. Calling fetchLater() will throw a QuotaExceededError both if the quota is actually exceeded and if the quota was restricted for that origin via a Permissions Policy.
The default allowlist for deferred-fetch is self.
See fetchLater() quotas for more examples.
Permissions-Policy: deferred-fetch=(self "https://b.com")
b.com receives 64KiB upon creation, from the top-level's 512KiB limit.c.com is not listed and so receives 8KiB upon creation from the 128KiB shared limit.c.com).Permissions-Policy: deferred-fetch=(self "https://b.com")
Permissions-Policy: deferred-fetch-minimal=()
b.com receives 64KiB upon creation.c.com receives no quota upon creation.b.com subframe is created.{{Specifications}}
{{Compat}}