From 22f2e57dfdf8ce540149f15a278897f77191f27e Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Mon, 16 Dec 2024 08:54:54 +0100 Subject: [PATCH] Introduce a generic skip action as a replacement to skipad. Introduce a media kind to allow marking content as either advertisement, generic and so on. --- index.bs | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/index.bs b/index.bs index 0d527a3..3e76be7 100644 --- a/index.bs +++ b/index.bs @@ -371,8 +371,8 @@ platform UI or media keys, thereby improving the user experience. the playback has a notion of playlist.
  • - skipad: the action's - intent is to skip the advertisement that is currently playing. + skip: the action's + intent is to skip the media item that is currently playing.
  • stop: the action's intent @@ -740,7 +740,7 @@ enum MediaSessionAction { "seekforward", "previoustrack", "nexttrack", - "skipad", + "skip", "stop", "seekto", "togglemicrophone", @@ -1066,6 +1066,7 @@ interface MediaMetadata { attribute DOMString title; attribute DOMString artist; attribute DOMString album; + readonly attribute MediaKind kind; attribute FrozenArray<object> artwork; [SameObject] readonly attribute FrozenArray<ChapterInformation> chapterInfo; }; @@ -1074,9 +1075,18 @@ dictionary MediaMetadataInit { DOMString title = ""; DOMString artist = ""; DOMString album = ""; + MediaKind kind = ""; sequence<MediaImage> artwork = []; sequence<ChapterInformationInit> chapterInfo = []; }; + +enum MediaKind { + "advertisement", + "generic", + "pregeneric", + "summary", + "" +};

    @@ -1096,6 +1106,11 @@ dictionary MediaMetadataInit { which are DOMString.

    +

    + A {{MediaMetadata}} has an associated kind, + which is a {{MediaKind}}. +

    +

    A {{MediaMetadata}} has an associated sequence of artwork images, which is a sequence of type @@ -1116,6 +1131,7 @@ dictionary MediaMetadataInit {

  • Its title is the empty string.
  • Its artist is the empty string.
  • Its album is the empty string.
  • +
  • Its kind is the empty string.
  • Its artwork images length is 0.
  • Its chapter information length is @@ -1143,6 +1159,10 @@ dictionary MediaMetadataInit { Set metadata's {{MediaMetadata/album}} to init's {{MediaMetadataInit/album}}.
  • +
  • + Set metadata's {{MediaMetadata/kind}} to + init's {{MediaMetadataInit/kind}}. +
  • Run the convert artwork algorithm with init's {{MediaMetadataInit/artwork}} as input and set @@ -1231,6 +1251,11 @@ user agent MUST run the following steps: set the {{MediaMetadata}}'s album to the given value.

    +

    + The kind attribute reflects the + {{MediaMetadata}}'s kind. On getting, it MUST return + the {{MediaMetadata}}'s kind.

    +

    The artwork attribute reflects the {{MediaMetadata}}'s artwork @@ -1329,12 +1354,14 @@ interface interface ChapterInformation { readonly attribute DOMString title; readonly attribute double startTime; + readonly attribute MediaKind kind; [SameObject] readonly attribute FrozenArray<MediaImage> artwork; }; dictionary ChapterInformationInit { DOMString title = ""; double startTime = 0; + MediaKind kind = ""; sequence<MediaImage> artwork = []; }; @@ -1363,6 +1390,12 @@ dictionary ChapterInformationInit { startTime which is double.

    +

    + A {{ChapterInformation}} has an associated kind + which is a {{MediaKind}}. +

    +

    A {{ChapterInformation}} has an associated list of @@ -1387,6 +1420,10 @@ dictionary ChapterInformationInit { for=ChapterInformation>startTime is negative or greater than [=duration=], throw a TypeError.

  • +
  • + Set chapterInfo's {{ChapterInformation/kind}} to + init's {{ChapterInformationInit/kind}}. +
  • Let {{ChapterInformationInit/artwork}} be the result of running the convert artwork algorithm with init's @@ -1416,6 +1453,12 @@ dictionary ChapterInformationInit { for=ChapterInformation>startTime.

    +

    + The kind attribute reflects the + {{ChapterInformation}}'s kind. On getting, it + MUST return the {{ChapterInformation}}'s kind. +

    +

    The artwork attribute reflects the {{ChapterInformation}}'s