// 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-client-interface
[
    Exposed=ServiceWorker,
    RuntimeEnabled=ServiceWorker,
    GarbageCollected,
    TypeChecking=Interface,
    ImplementedAs=ServiceWorkerClient,
] interface Client {
    [RuntimeEnabled=ServiceWorkerClientAttributes] readonly attribute USVString url;
    [RuntimeEnabled=ServiceWorkerClientAttributes] readonly attribute ContextFrameType frameType;
    // FIXME: Un-deprecate when the discussion on https://github.com/slightlyoff/ServiceWorker/issues/609 settles.
    [Custom, RaisesException, DeprecateAs=ServiceWorkerClientPostMessage, CallWith=ExecutionContext] void postMessage(SerializedScriptValue message, optional sequence<Transferable> transfer);
};
