Skip to content

Ensure about:blank frame visibility#2512

Open
karlseguin wants to merge 1 commit into
mainfrom
about_blank_frame_visibility
Open

Ensure about:blank frame visibility#2512
karlseguin wants to merge 1 commit into
mainfrom
about_blank_frame_visibility

Conversation

@karlseguin
Copy link
Copy Markdown
Collaborator

Our navigate on about:blank short-circuits most of the complex logic and loads the content then and there, not asynchronously. This results in notifications for the frame navigation/creation that happen immediately. With the current code ordering though, the frame isn't entered in child_frames until AFTER navigation, resulting in these events trigger on a frame which can't be found via Session.findFrameByFrameId

This code adds the frame to child_frames BEFORE navigate (and removes it on error).

Note: about:blank iframe navigation is more common than you probably think. As soon as a frame is [dynamically] created, it navigates to about:blank, e.g.:

let iframe = document.createElement('iframe');
// IMPLICIT navigation to about:blank happens here

// and this will be another navigation event
iframe.src = "keemun.php";

Our navigate on about:blank short-circuits most of the complex logic and loads
the content then and there, not asynchronously. This results in notifications
for the frame navigation/creation that happen immediately. With the current
code ordering though, the frame isn't entered in child_frames until AFTER
navigation, resulting in these events trigger on a frame which can't be found
via Session.findFrameByFrameId

This code adds the frame to child_frames BEFORE navigate (and removes it on
error).

Note: about:blank iframe navigation is more common than you probably think. As
soon as a frame is [dynamically] created, it navigates to about:blank, e.g.:

let iframe = document.createElement('iframe');
// IMPLICIT navigation to about:blank happens here

// and this will be another navigation event
iframe.src = "keemun.php";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant