• Tibor Goldschwendt's avatar
    [ntp] Instantiate NTPUserDataLogger per NTP · c49cb8c6
    Tibor Goldschwendt authored
    Previously, we instantiated an NTPUserDataLogger per web contents. And
    it is possible to navigate to multiple NTPs in a single web contents.
    This had a few drawbacks:
    * Logging should be scoped to a single NTP. Navigations from and to NTPs
      had to be tracked to reset certain logging state.
    * It was harder to reason about the life time of a logger and mismatched
      life times might have caused crashes in the WebUI NTP.
    * There is a race condition on the WebUI when navigating quickly from
      and to an NTP that can cause incorrect data logging and hits a DCHECK.
      See crbug/1084360 for details.
    
    Bug: 1144317
    Fixed: 1084360
    Change-Id: I02f683034aa17bc12efe9b58cae3c15c4d0ee038
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2586281
    Commit-Queue: Tibor Goldschwendt <tiborg@chromium.org>
    Reviewed-by: default avatarEsmael Elmoslimany <aee@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#839209}
    c49cb8c6
ntp_user_data_logger.h 5.25 KB