Backed out changeset bcbab342eed8 (bug 1889658) for causing wpt reftest failures...
[gecko.git] / toolkit / actors / AudioPlaybackParent.sys.mjs
blobdb682fd90b2bb5330497d2cf2158ff4cac6bbc47
1 /* vim: set ts=2 sw=2 sts=2 et tw=80: */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 export class AudioPlaybackParent extends JSWindowActorParent {
7   constructor() {
8     super();
9     this._hasAudioPlayback = false;
10     this._hasBlockMedia = false;
11   }
12   receiveMessage(aMessage) {
13     const browser = this.browsingContext.top.embedderElement;
14     switch (aMessage.name) {
15       case "AudioPlayback:Start":
16         this._hasAudioPlayback = true;
17         browser.audioPlaybackStarted();
18         break;
19       case "AudioPlayback:Stop":
20         this._hasAudioPlayback = false;
21         browser.audioPlaybackStopped();
22         break;
23       case "AudioPlayback:ActiveMediaBlockStart":
24         this._hasBlockMedia = true;
25         browser.activeMediaBlockStarted();
26         break;
27       case "AudioPlayback:ActiveMediaBlockStop":
28         this._hasBlockMedia = false;
29         browser.activeMediaBlockStopped();
30         break;
31     }
32   }
33   didDestroy() {
34     const browser = this.browsingContext.top.embedderElement;
35     if (browser && this._hasAudioPlayback) {
36       browser.audioPlaybackStopped();
37     }
38     if (browser && this._hasBlockMedia) {
39       browser.activeMediaBlockStopped();
40     }
41   }