• Zoe Clifford's avatar
    Unpause virtual time in PendingScript earlier. · 97ad1bab
    Zoe Clifford authored
    Currently there is a virtual time deadlock between HTML imports and
    PendingScript. I'm not sure about modules, but at least classic
    PendingScript is effected.
    
    * PendingScript will keep virtual time paused until it's ready to be
      executed (Until the document is not script-blocking).
    * Script execution will be paused on the document until the HTML import
      has finished.
    * The HTML import will not finish unless virtual time is unpaused
      (It fires an immediate timer to update it's state)
    
    The deadlock happens because timers (even immediate ones) will not fire
    if they were scheduled after virtual time was paused.
    
    To resolve this this CL unpauses PendingScript's virtual time pauser
    earlier; once the script is marked "ready". This means that
    PendingScript will unpause virtual time before waiting for HTML import
    to finish, and the deadlock is resolved.
    
    Change-Id: I1763229bd73096000bc461c678b061a345c3b530
    Reviewed-on: https://chromium-review.googlesource.com/1104314Reviewed-by: default avatarAlex Clarke <alexclarke@chromium.org>
    Reviewed-by: default avatarPavel Feldman <pfeldman@chromium.org>
    Commit-Queue: Zoe Clifford <zoeclifford@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#569630}
    97ad1bab
headless_protocol_browsertest.cc 9.19 KB