New issue
Advanced search Search tips

Issue 692540 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 7
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Define the metadata that needs to be stored for BackgroundFetch to resume fetches

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

Issue description

BackgroundFetch will be dispatching requests to the DownloadManager to handle the actual processing of the fetch. However, it needs to be able to resume monitoring those fetches after Chrome has been restarted. 

It needs to be able to do the following things:
* Reconnect an observer to a fetch.
* Check for status on (possibly) completed fetches.
* Deliver an event to the service worker when the fetch eventually completes.
* Display in-progress or completed notifications.
* (Possibly) Re-issue parts of a batched request.
 
Cc: mlamouri@chromium.org
Project Member

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

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

commit 98c614330c5ea34ff43692394e63dcb2168fe54b
Author: harkness <harkness@chromium.org>
Date: Tue Mar 28 09:22:22 2017

Start aligning BackgroundFetchRequestInfo with the passed in request object.

This CL makes two changes to BackgroundFetchRequestInfo. First, it adds
a ServiceWorkerFetchRequest object which copies the value passed in from
the Mojo call and will be serialized out as part of storing the request.
As part of this, the old url_ member is removed, since it is replaced by
the FetchRequest's url attribute.

The second change is that the tag_ attribute on the RequestInfo isxi
removed. It was a legacy from when a request tracked the entire job, and
wasn't used.

BUG= 692540 

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

[modify] https://crrev.com/98c614330c5ea34ff43692394e63dcb2168fe54b/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
[modify] https://crrev.com/98c614330c5ea34ff43692394e63dcb2168fe54b/content/browser/background_fetch/background_fetch_job_controller.cc
[modify] https://crrev.com/98c614330c5ea34ff43692394e63dcb2168fe54b/content/browser/background_fetch/background_fetch_job_controller_unittest.cc
[modify] https://crrev.com/98c614330c5ea34ff43692394e63dcb2168fe54b/content/browser/background_fetch/background_fetch_job_response_data.cc
[modify] https://crrev.com/98c614330c5ea34ff43692394e63dcb2168fe54b/content/browser/background_fetch/background_fetch_request_info.cc
[modify] https://crrev.com/98c614330c5ea34ff43692394e63dcb2168fe54b/content/browser/background_fetch/background_fetch_request_info.h

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

Owner: peter@chromium.org
Status: Started (was: Available)
Project Member

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

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

commit 44302d356149f11edfd1e1708e4c171ee073f436
Author: peter <peter@chromium.org>
Date: Thu Mar 30 00:52:55 2017

Implement the new polling system in the BackgroundFetchJobController

This CL changes how the BackgroundFetchJobController interacts with the
requests that have to be made. It'll be given a sequence of requests when
starting a fetch -currently set to a single request-, will fetch them
and will then get the next request from the BackgroundFetchDataManager
once completed.

This significantly simplifies the state we have to maintain, since it
only knows about the in-progress requests, deferring knowledge of which
requests are pending to the DataManager. The tests have been updated to
match this.

In effect, Background Fetch requests made by the developer will now
actually (sequentially) fetch the files. We still have to feed them
back to the developer once all fetches have been completed.

BUG= 692540 

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

[add] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_constants.h
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_context.cc
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_context.h
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_data_manager.cc
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_data_manager.h
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_job_controller.cc
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_job_controller.h
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_job_controller_unittest.cc
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_request_info.cc
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_request_info.h
[modify] https://crrev.com/44302d356149f11edfd1e1708e4c171ee073f436/content/browser/background_fetch/background_fetch_test_base.h

Status: Fixed (was: Started)
Closing since persistence is now in place.

Sign in to add a comment