// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module chrome.mojom;
enum OfflinePageAutoFetcherScheduleResult {
// There are too many in flight requests, so the new request was not
// scheduled.
kNotEnoughQuota,
// An error prevented the request from being scheduled.
kOtherError,
// There already exists a request for the URL, so the request was not
// scheduled.
kAlreadyScheduled,
// The request was scheduled.
kScheduled
};
// Provides controls for fetching offline pages automatically and quietly in
// the background.
interface OfflinePageAutoFetcher {
// Attempts to schedule an auto fetch for the URL on the current page.
// If user_requested is false, only schedules the fetch if there is remaining
// quota.
TrySchedule(bool user_requested) =>
(OfflinePageAutoFetcherScheduleResult out);
// Cancels a previously scheduled auto fetch for the URL of the current page.
CancelSchedule();
};