• Vladimir Levin's avatar
    [LayoutTests] Replace multiple dump responses with one callback/struct. · 279708b3
    Vladimir Levin authored
    Before this patch:
    - We issue a CaptureDump callback from the main frame that has finished
      a test. If a secondary renderer issues a test finished, this routes
      via a browser and goes back to the main frame anyway.
    - We issue several IPCs to the browser for each type of dump requested.
    - After everything is done, we issue a test done IPC to the browser.
    
    With this patch:
    - We capture local dumps (temporarily*)
    - We request that a browser initiates a CaptureDump via IPC.
    - We get a mojo call to capture the dump with an output struct containing
      all the relevant fields, which the renderer populates from local dumps.
    - When it finishes populating everything, it issues a callback with that
      struct.
    - The browser then records all of the results from the struct and
      finishes.
    
    The new approach seems to be a bit better in that we can move more logic
    to the browser part and make the renderer part more synchronous. For
    example, if the browser needs to initiate a layout dump, we can just do
    that from the browser instead of requiring that the renderer sends an IPC
    to the browser with that request.
    
    Furthermore, because the end goal of this is to have OOPIF pixel dumps,
    we need those to be initiated from the browser at some point. This also
    aligns with the pattern where the browser is the part that initiates
    a capture dump.
    
    * - We would like to capture as little as possible locally and instead
        move things that capture things by asking the browser to the browser
        directly.
    
    R=lukasza@chromium.org, mkwst@chromium.org
    
    Bug: 667551
    Change-Id: I07d2b16da687b679f6b3020732706e6bd7a77cd4
    Reviewed-on: https://chromium-review.googlesource.com/972578
    Commit-Queue: vmpstr <vmpstr@chromium.org>
    Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
    Reviewed-by: default avatarMike West <mkwst@chromium.org>
    Reviewed-by: default avatarŁukasz Anforowicz <lukasza@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#545880}
    279708b3
BUILD.gn 26.7 KB