• Daniel Cheng's avatar
    CHECK that CommitNavigation/CommitFailedNavigation IPCs always commit. · 95f797d6
    Daniel Cheng authored
    Currently, state synchronization between the browser and the renderer
    process is complicated and buggy for cross-process navigations. The
    renderer process is responsible for processing the commit IPC and then
    reporting success back up to the browser process, which then updates its
    state. However, it's unclear if this can lead to races.
    
    Instead, if it is possible to assume that one CommitNavigation() IPC
    from the browser always maps to one committed navigation in the
    renderer, the code can be simplified to remove multiphase navigation
    commits. This means the browser would be able to mark a provisional
    local frame as committed as soon as it sends a commit IPC to the
    renderer for that frame.
    
    Bug: 999255
    Change-Id: I7d58293e6c2ec6ca0d09b614ae5a41340f4afd8e
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1775663
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: default avatardanakj <danakj@chromium.org>
    Reviewed-by: default avatarNasko Oskov <nasko@chromium.org>
    Reviewed-by: default avatarCamille Lamy <clamy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#705414}
    95f797d6
render_frame_impl.cc 309 KB