• Tommy Li's avatar
    [omnibox] Make realbox paint "incomplete" results, just like the omnibox · 109c9cfe
    Tommy Li authored
    I've been investigating why the realbox has such worse ToPaint metrics
    than the omnibox. I discovered that the realbox is ignoring all
    autocomplete results other than the final "done()" one, which won't come
    in until we get results from the Suggest server, often 60ms away at the
    fastest.
    
    This CL makes the realbox paint incomplete results, just like the
    omnibox does. For the user, it's going to make the realbox feel much
    more responsive, like the omnibox, but also introduces the same
    asynchronous result-changing-after-the-fact issue that the omnibox has.
    
    I think it's best to just keep the behavior the same between the UIs.
    
    It also improves the ToPaint time on my machine from ~70ms to ~15ms,
    which is quite competitive with the actual omnibox.
    
    Some history:
    In the original implementation of the realbox, there was a one-time-use
    callback, which is probably why the original implementer waited until
    the autocomplete machinery was done().
    
    This limitation was removed by this CL:
    https://chromium-review.googlesource.com/c/chromium/src/+/1875030
    
    This CL takes advantage of that new ability by reporting the incomplete
    states as well. (i.e. history provider has returned but search suggest
    has not gotten the remote results yet).
    
    Bug: 1046561
    Change-Id: I8f7fc5760bfefb0e9aa0d3642cde0e30185e71be
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036259Reviewed-by: default avatarMoe Ahmadi <mahmadi@chromium.org>
    Commit-Queue: Tommy Li <tommycli@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#739184}
    109c9cfe
search_tab_helper.cc 35.7 KB