Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(oopifs): account for various races between processes #5320

Merged
merged 1 commit into from
Feb 5, 2021
Merged

fix(oopifs): account for various races between processes #5320

merged 1 commit into from
Feb 5, 2021

Commits on Feb 5, 2021

  1. fix(oopifs): account for various races between processes

    Consider the following situation (one among many possible).
    - FrameA has an oopif child FrameB;
    - FrameA navigates to same-process origin (e.g. about:blank);
    - at the same time, FrameC is attached to the FrameB in the
      FrameB's process.
    
    In this case, we get `frameNavigated` event for FrameA, immediately
    followed by `frameAttached` event for FrameC. Since we detach all
    FrameA's child frames on navigation, including the oopif FrameB,
    there is no parent frame for FrameC to attach to.
    
    In general, multiple processes coming from oopif may send their
    events in wildly different order, and their view about the frame
    tree may not always correspond to the "up to date" frame tree as
    seen from the main frame's process. We try to keep our frame tree
    aligned with what main process thinks, and ignore events that
    reference frames absent in this tree.
    
    Drive-by: handle filechooser exceptions because of async processing.
    dgozman committed Feb 5, 2021
    Configuration menu
    Copy the full SHA
    cf52b3d View commit details
    Browse the repository at this point in the history