• Dan Elphick's avatar
    Add global scheduling to Background Fetch · 14655855
    Dan Elphick authored
    The scheduler is now responsible for choosing which
    BackgroundFetchJobController runs next. It round-robins through the
    list of job controllers launching at most one download from each at a
    time. Previously each JobController would get a new request from the
    DataManager as soon it completed one, meaning that there would be as
    many active downloads as there are JobControllers. The new scheduler
    limits downloads globally and so will prevent too many downloads from
    happening concurrently.
    
    BackgroundFetchScheduler gets requests from a RequestManager
    (implemented by BackgroundFetchDataManager) and delivers them to a
    Controller (implemented by BackgroundFetchJobController).
    
    Also eliminates MarkRequestAsStarted and related functions as we don't
    do anything with the info.
    
    Bug: 757760
    Change-Id: I59f68347e93d278285c83351cbe4e1dd22b91b1b
    Reviewed-on: https://chromium-review.googlesource.com/776666
    Commit-Queue: Dan Elphick <delphick@chromium.org>
    Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
    Reviewed-by: default avatarPeter Beverloo <peter@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#526950}
    14655855
background_fetch_context.h 8.56 KB