• David Tseng's avatar
    Fixes performance of Google Calendar + ChromeVox/automation · 35e54b73
    David Tseng authored
    In Google Calendar, the "rooms" tab of a new invite triggers a flood of events (location changes, and attribute changes).
    
    The dynamic room dropdown appears to continually be updating itself resulting in thousands of events per second.
    
    This change:
    - minimizes the js <-> C++ calls by pushing event listener state to C++ from js
    - if there's no event listener for a given event, don't incur the cost of sending it to js
    - in ChromeVox, create a new class, RangeAutomationHandler, which installs event listeners scoped as much as possible, to ChromeVox's currentrange. This ignores events on other parts of the tree.
    
    Test: manually on Google Calendar.
    Change-Id: I4172f504915665dbe7d0a88df11aefceb36439b4
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1947643
    Commit-Queue: David Tseng <dtseng@chromium.org>
    Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#721217}
    35e54b73
background.js 14.2 KB