A page can look like one screen while its editor or attachment tool lives in an iframe. Reading a button name and clicking with outer-page coordinates is insufficient. I connected each frame to its tab, parent, document and origin before handling reads and input.

Establish that the frame belongs to the current page

The driver reads the frame tree and discovers out-of-process iframes too. It attaches only targets with a parent relationship belonging to this page. Every browser target cannot be treated as part of the current task.

Frame count and depth are bounded. Those bounds manage reading scope rather than guarantee collection of a larger page. A missing parent context remains explicitly unavailable. Reporting an unestablished relationship is preferable to trusting an unattached child first.

Preserve origin in the observation

Each frame receives an isolated world and retained frame, parent, session and destination metadata together with snapshot and document epoch. Element references bind tab, frame, epoch, snapshot and node identity. Equal names do not make controls from different documents interchangeable.

Combined text marks embedded sections and retains frame views and origin metadata. Presenting an inner document as if its words belonged directly to the outer site would obscure provenance. The caller needs document identity when interpreting material or choosing an action target.

Narrow inheritance for special document addresses

Blank and source-document frames use a connected parent's policy destination. Blob inheritance is narrower: it requires a matching-origin HTTPS parent. Opaque or foreign blobs and data documents do not become allowed through that rule.

Public-destination and frame-readability checks still apply. The unit test distinguishes same-origin blob and source-document inheritance from foreign and opaque addresses. Special address syntax is not a reason to trust any page; the policy stays tied to an established creator relationship.

Correct inner coordinates are not enough for input

A point calculated inside a frame can differ from the actual screen when its parent is obscured or transformed. Top-point conversion walks ancestors and calls framePoint to check position, dimensions and occlusion. Unsupported transforms are rejected rather than guessed.

Parent hit testing must identify the iframe itself. This requires more than adding its top-left offset. Readability and actionability also differ: observing a frame cannot replace checking current owner and connection immediately before input.

Do not hide an unsupported frame inside an empty success

An unavailable child remains in metadata with its unsupported reason, origin and scheme. Failure of the root document ends the read. Reading the outer page while excluding a child cannot establish complete collection of the whole screen.

The blob fixture test checks native input to a visible same-origin button and exclusion of hidden and opaque data frames. I compared that code with the current policy. This is not a new live-service test, and historical embedded-CLI instructions are not presented as current behavior. Version and execution scope remain attached to the evidence.

Ask about ownership when connecting company tools too

Embedded documents, payment interfaces and editors can place several ownership boundaries on one screen. Document and service identity matter more than visual proximity. Retaining that relationship helps prevent selection of a similar control in another account or frame.

Northstar's support does not establish compatibility with every embed or screen transform. Oversized frame trees, unclear origins and unreliable coordinates need further work. Explaining stopping conditions alongside supported operations makes the actual integration scope understandable.