• Mathias Carlen's avatar
    [Autofill Assistant] Use base::ObserverList for navigation listeners. · 34026dc2
    Mathias Carlen authored
    Before this patch, the observer/listener for navigation state changes
    were implemented using a std::vector. This would lead to null pointer
    dereferencing when adding and removing listeners while handling an event
    due to std::vector::erase reordering elements (pointers). This patch
    uses a checked observer and ObserverList instead to properly handling
    adding and removing observers/listeners.
    
    This bug was uncovered while working on the bug linked in this patch.
    
    R=arbesser@google.com
    
    Bug: b/152724265
    Change-Id: Ia59bfca5bec5ce326394668eb7d8d62004fc16fb
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2139691
    Commit-Queue: Mathias Carlen <mcarlen@chromium.org>
    Reviewed-by: default avatarClemens Arbesser <arbesser@google.com>
    Cr-Commit-Position: refs/heads/master@{#757021}
    34026dc2
controller.cc 55.4 KB