Media Session IDL tests

dictionary MediaConfiguration {
  required MediaConfigurationType type;

  VideoConfiguration video;
  AudioConfiguration audio;
};

enum MediaConfigurationType {
  "file",
  "media-source",
};

dictionary VideoConfiguration {
  required DOMString contentType;
  required unsigned long width;
  required unsigned long height;
  required unsigned long bitrate;
  required double framerate;
};

dictionary AudioConfiguration {
  required DOMString contentType;
  DOMString channels;
  unsigned long bitrate;
  unsigned long samplerate;
};

interface MediaDecodingAbility {
  readonly attribute boolean supported;
  readonly attribute boolean smooth;
  readonly attribute boolean powerEfficient;
};

[Exposed=(Window)]
partial interface Navigator {
  [SameObject] readonly attribute MediaCapabilities mediaCapabilities;
};

[Exposed=(Worker)]
partial interface WorkerNavigator {
  [SameObject] readonly attribute MediaCapabilities mediaCapabilities;
};

[Exposed=(Window, Worker)]
interface MediaCapabilities {
  Promise query(MediaConfiguration configuration);
};