/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

// https://url.spec.whatwg.org/#url
[Exposed=(Window,Worker),
 LegacyWindowAlias=webkitURL]
interface URL {
  [Throws] constructor(USVString url, optional USVString base);
  [SetterThrows]
  stringifier attribute USVString href;
  readonly attribute USVString origin;
           attribute USVString protocol;
           attribute USVString username;
           attribute USVString password;
           attribute USVString host;
           attribute USVString hostname;
           attribute USVString port;
           attribute USVString pathname;
           attribute USVString search;
  readonly attribute URLSearchParams searchParams;
           attribute USVString hash;

  // https://w3c.github.io/FileAPI/#creating-revoking
  static DOMString createObjectURL(Blob blob);
  // static DOMString createFor(Blob blob);
  static void revokeObjectURL(DOMString url);

  USVString toJSON();
};