Since we can determine which browsing context contains an active media session via `MediaSessionController`, we should notify that context directly in order to access correct media session. Especially after we enable Fission, browsing contexts could exist in different processes, so choosing the right context to notify is really important.
Differential Revision: https://phabricator.services.mozilla.com/D60937
--HG--
extra : moz-landing-system : lando
Update media session status from the content process to the chrome process in order to track all alive media session.
Differential Revision: https://phabricator.services.mozilla.com/D60936
--HG--
extra : moz-landing-system : lando
Create a class `MediaSessionController` which is used to track all alive media sessions within a tab and store their metadata which could be used to show on the virtual media control interface. That class would also be responsible to select an active media session with in a tab.
Differential Revision: https://phabricator.services.mozilla.com/D60935
--HG--
extra : moz-landing-system : lando
As we will have a use to send media metadata from the content process to the chrome process in the future, we would like to send only `title`, `artist`, `album` and `artwork` without having anyother member variables and methods which are useless for our use case, such as `nsIGlobalObject`.
Therefore, create a base class which contains what we need, and let `MediaMetadata` inherit from that class.
Differential Revision: https://phabricator.services.mozilla.com/D60934
--HG--
extra : moz-landing-system : lando
Implement the setActionHandler interface. The API will be enabled behind
a pref.
Depends on D45457
Differential Revision: https://phabricator.services.mozilla.com/D45458
--HG--
extra : moz-landing-system : lando
Implement the MediaMetadata interface. The API will be enabled behind a
pref.
Depends on D45456
Differential Revision: https://phabricator.services.mozilla.com/D45457
--HG--
extra : moz-landing-system : lando
Create dummy implementations for the MediaSession interfaces. The files
are generated by running `./mach webidl-example` with necessary changes
to make it buildable.
The internal implementations are blank in this patch. They will be done
in the following patches.
Due to some spec issues, the final implementations only support some
basic operations like "play" and "pause".
Differential Revision: https://phabricator.services.mozilla.com/D45456
--HG--
extra : moz-landing-system : lando
Implement the setActionHandler interface. The API will be enabled behind
a pref.
Differential Revision: https://phabricator.services.mozilla.com//D45458
Depends on D45457
--HG--
extra : histedit_source : 43cf16795b27126a96441b117c9bbfdf2aea6aa9
Implement the MediaMetadata interface. The API will be enabled behind a
pref.
Differential Revision: https://phabricator.services.mozilla.com//D45457
Depends on D45456
--HG--
extra : histedit_source : a572d4abe88c2b4cd8c03a0fadc6c7b30a8c8798
Create dummy implementations for the MediaSession interfaces. The files
are generated by running `./mach webidl-example` with necessary changes
to make it buildable.
The internal implementations are blank in this patch. They will be done
in the following patches.
Due to some spec issues, the final implementations only support some
basic operations like "play" and "pause".
Differential Revision: https://phabricator.services.mozilla.com//D45456
--HG--
extra : histedit_source : 2fc6e1e63347211cad3a19354a38040760c7ce0f
Create dummy implementations for the MediaSession interfaces. The files
are generated by running `./mach webidl-example` with necessary changes
to make it buildable.
The internal implementations are blank in this patch. They will be done
in the following patches.
Due to some spec issues, the final implementations only support some
basic operations like "play" and "pause".
Differential Revision: https://phabricator.services.mozilla.com/D45456
--HG--
extra : moz-landing-system : lando