// 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.

// http://fetch.spec.whatwg.org/#request-class
[
    Constructor(optional Dictionary requestInitDict),
    RuntimeEnabled=ServiceWorker,
    Exposed=ServiceWorker
] interface Request {
    attribute ScalarValueString url;
    attribute ByteString method;
    readonly attribute DOMString origin;
    readonly attribute HeaderMap headers;

    // FIXME: Implement the following:
    // attribute unsigned long timeout;
    // readonly attribute Mode mode;
    // attribute boolean synchronous;
    // readonly attribute unsigned long redirectCount;
    // attribute boolean forcePreflight;
    // attribute boolean forceSameOrigin;
    // attribute boolean omitCredentials;
    // readonly attribute DOMString referrer;
    // attribute any body;
};
