EditorHost
The frame around a full-screen editor somebody else wrote — ONLYOFFICE, Collabora, a third-party designer. Thin on purpose: the part every host rewrites is not the iframe but the three states around it. LOADING is a cover OVER the frame, not instead of it, because the editor inside needs the frame present and sized to lay itself out. FAILED comes from a timeout, because a cross-origin iframe fires no error event for a 404, a 500, an X-Frame-Options refusal or a dead host — load simply never comes — and Retry remounts the frame with a fresh key rather than resetting a flag. OBSCURED makes the frame inert so a dialog above it keeps its drag and its focus. It never claims to know whether the editor INSIDE is ready; same-origin policy means it cannot, and onMessage is the seam for the editor's own protocol.