Origin chain: parent → cross-origin → back to parent's origin. The postMessage relay must hop across a cross-origin boundary and back; same-origin contentDocument recursion cannot traverse the whole chain. The actionable target lives in the innermost frame.