New issue
Advanced search Search tips

Issue 692535 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Implement a BackgroundFetchService which implements the BackgroundFetch mojo service

Project Member Reported by harkness@chromium.org, Feb 15 2017

Issue description

BackgroundFetch will be using a Mojo service to communicate from the renderer to the browser. This task involves providing the service to be the browser-side entry point.

* Build BackgroundFetchService which implements the BackgroundFetch mojo service.
* Design the interface to the BackgroundFetchContext so that the service can pass requests into the main system.

 
Cc: mlamouri@chromium.org
Project Member

Comment 2 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3226ce85f3ba466797db44fe134abb8b898d2452

commit 3226ce85f3ba466797db44fe134abb8b898d2452
Author: peter <peter@chromium.org>
Date: Thu Mar 16 18:06:28 2017

Implement a Mojo service for Background Fetch

This CL lands the Mojo service that we intend to use for Background
Fetch. Everything but the fetch() event has been hooked up from the
renderer side, and will be received by a strongly binded service
implementation in the browser process.

The fetch() function will be implemented separately, as it will require
some plumbing to support the appropriate types for requests.

BUG= 692534 ,  692535 

Review-Url: https://codereview.chromium.org/2745243002
Cr-Commit-Position: refs/heads/master@{#457490}

[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/BUILD.gn
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/background_fetch/DEPS
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/background_fetch/background_fetch_service_impl.cc
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/background_fetch/background_fetch_service_impl.h
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/browser/storage_partition_impl.h
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BUILD.gn
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.cpp
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.h
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.cpp
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.h
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchRegistration.cpp
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchedEvent.cpp
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchedEvent.h
[modify] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/public/BUILD.gn
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/public/platform/modules/background_fetch/OWNERS
[add] https://crrev.com/3226ce85f3ba466797db44fe134abb8b898d2452/third_party/WebKit/public/platform/modules/background_fetch/background_fetch.mojom

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323

commit a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323
Author: peter <peter@chromium.org>
Date: Fri Mar 24 13:59:53 2017

Implement BackgroundFetchManager.fetch() and struct traits

This implements the BackgroundFetchManager.fetch() method and sends it
to the browser process over IPC. Struct traits have been added for three
C++ types that are analogous to the Web exposed types:

  - BackgroundFetchOptions
    The options provided by the developer when starting the fetch.

  - BackgroundFetchRegistration
    The data associated with an in-progress background fetch.

  - IconDefinition
    The data associated with an individual icon definition. This will
    eventually move to a more generalized location.

What's still missing in the call is the sequence of Request objects.

BUG= 692534 ,  692535 

Review-Url: https://codereview.chromium.org/2762573003
Cr-Commit-Position: refs/heads/master@{#459412}

[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/browser/background_fetch/OWNERS
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/browser/background_fetch/background_fetch_service_impl.cc
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/browser/background_fetch/background_fetch_service_impl.h
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/BUILD.gn
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/DEPS
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/OWNERS
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/background_fetch_struct_traits.cc
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/background_fetch_struct_traits.h
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/background_fetch_struct_traits_unittest.cc
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/background_fetch_types.cc
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/background_fetch_types.h
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/background_fetch/background_fetch_types.typemap
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/common/typemaps.gni
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/content/test/BUILD.gn
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BUILD.gn
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.cpp
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.h
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.cpp
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.h
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchRegistration.cpp
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchRegistration.h
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchTypeConverters.cpp
[add] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchTypeConverters.h
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/Source/modules/background_fetch/OWNERS
[modify] https://crrev.com/a1ab5a9bd84f0a1cf5ebbd322124152bb4cd1323/third_party/WebKit/public/platform/modules/background_fetch/background_fetch.mojom

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9b34b21e479145817c93e1e4870ed2e87376eac0

commit 9b34b21e479145817c93e1e4870ed2e87376eac0
Author: peter <peter@chromium.org>
Date: Fri Mar 24 17:12:17 2017

Convert Background Fetch' input to a WebServiceWorkerRequest vector

Developers can pass in either an individual USVString or Request object,
or a sequence of either. Convert the input provided by the developer to
a sequence of WebServiceWorkerRequest objects, which can (soon) be send
over Mojo to the browser process.

BUG= 692534 ,  692535 

Review-Url: https://codereview.chromium.org/2762243002
Cr-Commit-Position: refs/heads/master@{#459465}

[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/LayoutTests/http/tests/background_fetch/background-fetch-manager-fetch.https.html
[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.cpp
[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.h
[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.cpp
[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.h
[modify] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManager.idl
[add] https://crrev.com/9b34b21e479145817c93e1e4870ed2e87376eac0/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchManagerTest.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8

commit f05540d87c83d707b4e9d7a00f29ebd423b9cfb8
Author: peter <peter@chromium.org>
Date: Wed Mar 29 12:36:28 2017

Enable transmitting Fetch Requests over Mojo

This CL implements support for sending Fetch API requests over Mojo. The
used type in Blink is WebServiceWorkerRequest, where the browser side
will use ServiceWorkerFetchRequest.

It's a lot of extra code and definitely more duplication. However, this
is something that we'll need in the near future to support Onion Soup of
the other users of these types, too. There also are opportunities to
remove duplication, notably of the enum values, by adopting the Mojo
enumerations as opposed to the ones in WebURLRequest.

The introduced type now also supersedes the native struct definition
included in service_worker_event_dispatcher.mojom.

BUG= 692535 

Review-Url: https://codereview.chromium.org/2762303002
Cr-Commit-Position: refs/heads/master@{#460359}

[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/browser/background_fetch/background_fetch_service_impl.cc
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/browser/background_fetch/background_fetch_service_impl.h
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/DEPS
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/background_fetch/background_fetch_struct_traits.cc
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/service_worker/service_worker_event_dispatcher.mojom
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/service_worker/service_worker_fetch_request.typemap
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/service_worker/service_worker_fetch_request_struct_traits.cc
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/service_worker/service_worker_fetch_request_struct_traits.h
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/service_worker/service_worker_types_struct_traits.cc
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/content/common/typemaps.gni
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchBridge.cpp
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/platform/mojo/FetchAPIRequestStructTraits.cpp
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/platform/mojo/FetchAPIRequestStructTraits.h
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/platform/mojo/Referrer.typemap
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/platform/mojo/ReferrerStructTraits.h
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/Source/platform/mojo/blink_typemaps.gni
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/public/platform/modules/background_fetch/background_fetch.mojom
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/public/platform/modules/fetch/FetchAPIRequest.typemap
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/public/platform/modules/fetch/OWNERS
[add] https://crrev.com/f05540d87c83d707b4e9d7a00f29ebd423b9cfb8/third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom

Comment 7 by peter@chromium.org, Mar 29 2017

Owner: peter@chromium.org
Status: Fixed (was: Available)

Sign in to add a comment