// 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#client-interface
[
    Exposed=ServiceWorker,
    RuntimeEnabled=ServiceWorker
] interface Client {
    readonly attribute unsigned long id;

    // FIXME: Currently we think targetOrigin's probably not necessary, but
    // re-add it if the ongoing issue [1] concludes the other way.
    // [1] https://github.com/slightlyoff/ServiceWorker/issues/190
    [Custom, RaisesException, CallWith=ExecutionContext] void postMessage(SerializedScriptValue message, optional MessagePort[] messagePorts);
};
