• Han Leon's avatar
    [OnionSoup] Move blink.mojom.FetchAPIResponse into blink/public/mojom/fetch/ · 6bbe791f
    Han Leon authored
    This CL is the 2nd step of the plan below aiming to eliminate the native
    struct content::ServiceWorkerResponse defined in
    content/common/service_worker/service_worker_types.h.
    
    1st step:
    https://chromium-review.googlesource.com/c/chromium/src/+/1134731
    - Remove the typemapping of blink.mojom.FetchAPIResponse.
      The mojom struct blink.mojom.FetchAPIResponse describes a Response in
      terms of the concept from the Fetch spec, currently it's defined under
      blink/public/platform/modules/fetch/ and is used only by Cache Storage
      API implementation (by both Browser and Renderer code), as this struct
      meets the 2 conditions below, it should be fine to go into
      blink/public/mojom/:
         - it is expected to be used by both Browser and Renderer code.
         - it is expected to be passed over Mojo between Browser and
           Renderer (Blink).
      But, currently for Chromium Mojo binding variant it is typemapped to
      content::ServiceWorkerResponse being used in
      content/browser/cache_storage/, this blocks it being moved to
      blink/public/mojom/. So we need to remove this typemapping first, this
      removal also helps reduce 1 user of content::ServiceWorkerResponse.
    
    2nd step: (This CL)
      Now we can just move blink.mojom.FetchAPIResponse into
      blink/public/mojom/fetch/, which makes the next steps possible.
    
    3rd step:
    - Use blink.mojom.FetchAPIResponse to represent the response a service
      worker provides to FetchEvent#respondWith. Specifically, use this
      mojom struct to replace the existing [Native] mojom struct
      content.mojom.ServiceWorkerResponse in
      content/common/service_worker/service_worker_fetch_response_callback.mojom.
      Thus we can reduce another 1 user of content::ServiceWorkerResponse.
      More importantly, this makes it possible for us to move
      service_worker_fetch_response_callback.mojom into
      blink/public/mojom/service_worker/ in future.
    
    4th step:
    - Use blink.mojom.FetchAPIResponse to represent responses to background
      fetches. Specifically, use this mojom struct to replace the existing
      [Native] mojom struct content.mojom.ServiceWorkerResponse defined in
      content/common/service_worker/service_worker.mojom.
      Thus we can reduce the last 1 user of content::ServiceWorkerResponse.
    
    5th step:
    - Remove content::ServiceWorkerResponse and do any left cleanup.
    
    BUG=789854
    
    Change-Id: I9afad29a89887369c211cb46bce5bc98df16064f
    Reviewed-on: https://chromium-review.googlesource.com/1149706
    Commit-Queue: Han Leon <leon.han@intel.com>
    Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
    Reviewed-by: default avatarMakoto Shimazu <shimazu@chromium.org>
    Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
    Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#579273}
    6bbe791f
DEPS 4.86 KB