Skip to content
  • Mikel Astiz's avatar
    Propagate favicons across redirect-like pushState/replaceState · 047511ef
    Mikel Astiz authored
    Many pages use Javascript to change the URL in the omnibox with the
    history API, namely pushState() and replaceState(), which are considered
    in-page navigations because the actual content of the page doesn't
    change.
    
    For pages that trigger such functions early, before the page has loaded,
    no favicon candidates are received (because content reports favicons in
    a late stage) and hence no favicons are associated to the URL prior to
    the URL update. This leads to gray tiles in the New Tab Page, because
    they point to the first.
    
    We fix this by special-handling this particular scenario, by introducing
    a state variable (FaviconHandler::candidates_received_) to distinguish
    whether the previous page was fully loaded (or at least candidates were
    provided).
    
    Bug: 741340,736254,754386
    Change-Id: I2c11a3238bf1e14652bb20abc8cfbb3c46dc848a
    Reviewed-on: https://chromium-review.googlesource.com/595977
    
    
    Commit-Queue: Mikel Astiz <mastiz@chromium.org>
    Reviewed-by: default avatarBrett Wilson <brettw@chromium.org>
    Reviewed-by: default avatarPeter Kotwicz <pkotwicz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#494574}
    047511ef