• Chris Hamilton's avatar
    [PM] Fix hanging throttles in TabLoadingFrameNavigation feature. · 610e3a69
    Chris Hamilton authored
    The bug was as follows:
    - mechanism binds to NavigationHandle, storing its NavigationId
    - main frame does a subsequent same-document navigation
    - PMTabHelper observes this navigation, and updates the internally
      stored NavigationId.
    - PM dispatches policy message to mechanism to terminate throttles.
    - Policy message looks up WCProxy::LastNavigationId (taken from
      PMTabHelper), and feeds that into the mechanism.
    - This doesn't match the original NavId stored in the mechanism, and
      the policy message is dispatched.
    
    Fix:
    
    - Have PMTabHelper/WCProxy independently track same-doc and new-doc
      navigation IDs. Use the last new-doc navigation ID with the policy
      message.
    
    BUG=1084555
    
    Change-Id: I726ace3e06ca83cff99b0dec18372647789910c2
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218228Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
    Reviewed-by: default avatarSigurður Ásgeirsson <siggi@chromium.org>
    Commit-Queue: Chris Hamilton <chrisha@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#772318}
    610e3a69
web_contents_proxy.h 2.18 KB