The direct answer

Decide who may embed the review document using that document’s supported enforced frame-ancestors response policy. Child sandbox settings, frame-src, script nonces and default-src do not establish this ancestor restriction. Keep actual policy delivery and browser support separate from current user rights and exact-action approval.

Ask which document is being protected

A fictional console presents a stored action for human review. Its generated-note preview already uses a restricted child iframe, and its trusted bootstrap has a reviewed script policy. Neither design answers whether another page may display the console itself inside a frame.

Choose one owned review document R-A, release V-A, with top-level use only. Its proposed embedding plan permits no ancestor. Same-origin dashboards, partner portals and nested helper frames are intentionally outside this application profile. It supplies no partner allowlist, frame-busting script or compatibility fallback.

This is an educational response-policy worksheet. Every card is PROPOSED_UNRUN. No frame, header, page, browser, configuration or attack fixture was constructed or exercised. Ordinary documentation reads and editorial file handling are separate.

Separate incoming embedding from outgoing capabilities

The MDN frame-ancestors reference distinguishes parents allowed to embed a document from frame-src, which controls where that document loads child frames. It describes checking every ancestor, not only the immediate parent, and defines the single value 'none' as prohibiting embedding.

Apply the question to R-A's own response. A sandbox on a generated child controls a different relationship. A working script nonce addresses an executable-entry decision. Do not accept either as the missing evidence for this response's ancestor policy.

The existing preview contract and widget message contract remain unchanged. This plan does not authorize the console to frame a new destination or establish that any displayed third-party document is trustworthy.

Require the right delivery mechanism

The same reference says frame-ancestors has no default-src fallback and is unsupported in a meta element. A restrictive default resource rule or an HTML policy label cannot substitute for the selected ancestor restriction.

MDN's CSP guide describes delivery through the Content-Security-Policy response header. It distinguishes enforced policies from report-only policies, which do not enforce their restrictions. A response can have both; knowing a reporting policy exists does not establish the enforced plan.

Record the independently reviewed effective policy associated with R-A rather than treating one template fragment as the complete configuration. Actual publisher ownership, transformations, intermediaries, supported browser behavior and relevant response coverage need separate evidence. An unknown delivery path stays a hold. This article implements no middleware or policy-composition algorithm.

Make a small response association sheet

PROPOSED_UNRUN — symbolic plan, not emitted headers
Protected document: R-A / trusted release V-A
Business purpose: inspect stored action A-A / revision Q-A
Embedding plan E-A: no permitted ancestors
Delivery requirement: supported enforced response policy
Ordinary context: independently established top-level review
Unknown prerequisite: actual effective response and browser evidence
Effect authority: separate exact-action backend

The useful positive is an ordinary reviewer directly opening the owned review surface and inspecting its unchanged action. This selected embedding policy excludes framed presentation; it does not itself authenticate the reviewer or create the top-level document association. Actual context and delivery evidence must already support the proposed path.

A future implementation review should connect the document route, publisher release, effective policy evidence and supported environment to the same R-A. Do not substitute a help page's result, a different deployment or an earlier screenshot. The application must also establish that the real review content and controls remain the intended ones.

If a new product requirement genuinely needs embedded review, stop using E-A as its eligibility claim. That is a different presentation contract requiring its own security and usability review, not a small exception automatically inherited from a trusted company name.

Check eight independent admission cards

Original R-A response worksheet — all PROPOSED_UNRUN
ConditionRequired application decision
Owned R-A/V-A; supported effective E-A; established top-level context and current review rightsConditionally admit ordinary review only; no approval or effect result.
A foreign page proposes framing R-AOutside E-A. No observed browser blocking is claimed by this table.
A same-origin dashboard proposes framing R-AStill outside the selected no-ancestor plan; familiarity is insufficient.
A nested context is justified only by its immediate parentIncomplete ancestry reasoning; do not mark the presentation eligible.
Only child sandbox, outgoing frame restrictions or script-admission evidence is suppliedWrong control direction or resource; ancestor evidence remains missing.
Only default-src or a meta-delivered policy is knownRequired response-level ancestor plan is unestablished.
Only reporting configuration or an unverified response path is availableNo enforcement claim; hold applicability.
Embedding checks pass but the stored action, session or current rights changedIndependently deny or require fresh exact review; no authority override.

Keep presentation and approval evidence apart

A user can encounter misleading content without a frame, and trusted-origin code can still be compromised or mistaken. This narrower embedding plan certifies neither visual honesty nor user comprehension. Do not describe it as complete protection against deceptive interfaces.

The keyboard review contract still needs its supported interaction behavior. The browser request boundary still needs its own server checks. At final approval, authenticate the approver and match the current stored action through the existing backend design.

Likewise, a browser failing to display a framed review is not evidence that an earlier action was canceled, that a confidential response never reached another component or that previously delivered copies were erased. Keep effect status, access control, response caching and incident handling in their separate evidence records.

Report only the supported scope

The reference was modified 27 August 2026; the guide was modified 22 March 2026. Both actual bodies were read for this worksheet. Neither identifies a tested application browser or proves that this hub or any production console sends the selected policy.

Actual effective policy composition, route coverage, publisher and proxy behavior, document provenance, top-level association, safe rendering and current reviewer rights are unimplemented or unknown. They block real admission. No header fragment here is a complete CSP deployment recipe or a confidentiality, XSS, CSRF, referrer or network-isolation guarantee.

Boundary remains prelaunch with planned request-path checks. It does not ship this response-policy controller; its separate synthetic policy evidence does not test browser embedding behavior.

Primary sources

Official references supporting the guidance. Examples in this guide are synthetic and are not reports of a production incident.

  1. MDN — CSP frame-ancestors directive
  2. MDN — Content Security Policy guide