Repository navigation
fix(cooperation): preserve main-page control across iframe refreshes - #599
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A carousel, embedded player or advertisement that refreshes a child iframe can revoke target-policy control for the whole task tab. A click on an unchanged main-page button then fails with
control_context_invalidordocument_changed. This reproduced on the Slick demo while its advertising and comment frames loaded, and in a deterministic carousel-frame regression.Track frame-document generations independently from main-document and human-control revocation. DOM actions whose targets and explicit preconditions all belong to the main document can reuse their context across child-frame navigation. Iframe refs and strict-observation actions require a sync of the current frame documents. Main-document replacement and trusted human input revoke control, including wheel and keyboard events that leave field values unchanged.
The change includes CLI and DSH carousel regressions, checks for iframe targets and preconditions, updated control guidance, and bilingual changelog entries.
Validation completed locally.
The aggregate cooperation suite times out at the mobile-emulation layout check in
compatibility.mjs:476on both baseline and fixed builds. The standalone compatibility suite passes that check. The original Alimama business export flow remains unverified.