• ckitagawa's avatar
    [Paint Preview] Paint Preview Recorder · 66cdca60
    ckitagawa authored
    Renderer side paint preview implementation. This CL creates a mojo
    service on a RenderFrameObserver that facilitates most of the paint
    preview capture management.
    
    Flow:
    - Browser calls this service to request paint preview capture of current
      frame (future CL 1)
    - PaintPreviewServiceImpl sets up for capture in Blink (this CL)
    - Blink handles the capture via a flow similar to printing (future CL 2)
      - This will include invoking a request to the browser to forward
        requests to OOP subframes.
    - PaintPreviewServiceImpl does post-processing and marshals a response
      (this CL)
      - Two artifacts are produced:
        - A SkPicture is written to the file handle provided by the browser
        - A proto containing metadata for the frame is sent via shared
          memory to the browser.
    - Browser does some minor modifications to the proto then either stores
      the proto to disk or forwards the proto and SkPicture files to a
      utility process for playback. The browser will retain the links from
      the proto for hit testing. (future CLs)
    
    Part of landing:
    https://chromium-review.googlesource.com/c/chromium/src/+/1786583
    
    Internal Doc: go/fdt-design
    
    Bug: 994833
    Change-Id: I88ffb89d92dfcb78b61a91a21df2b842c713f8b0
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1824669Reviewed-by: default avatarScott Violet <sky@chromium.org>
    Reviewed-by: default avatarKhushal <khushalsagar@chromium.org>
    Reviewed-by: default avatarJochen Eisinger <jochen@chromium.org>
    Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
    Reviewed-by: default avatarIan Vollick <vollick@chromium.org>
    Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#706443}
    66cdca60
BUILD.gn 1.51 KB