// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#service-worker-registration-obj
[
    ActiveScriptWrappable,
    DependentLifetime,
    Exposed=(Window,Worker),
] interface ServiceWorkerRegistration : EventTarget {
    readonly attribute ServiceWorker? installing;
    readonly attribute ServiceWorker? waiting;
    readonly attribute ServiceWorker? active;
    [RuntimeEnabled=ServiceWorkerNavigationPreload] readonly attribute NavigationPreloadManager navigationPreload;

    readonly attribute USVString scope;

    [CallWith=ScriptState] Promise<void> update();
    [CallWith=ScriptState] Promise<boolean> unregister();

    attribute EventHandler onupdatefound;
};
