Bug 1820641: Make a test that calls window.restore handle zoomed windows. r=mstange
[gecko.git] / toolkit / actors / AudioPlaybackParent.jsm
blob5c54058528c57a9c85da49975fd7afd724bcf815
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/. */
5 "use strict";
7 var EXPORTED_SYMBOLS = ["AudioPlaybackParent"];
9 class AudioPlaybackParent extends JSWindowActorParent {
10   constructor() {
11     super();
12     this._hasAudioPlayback = false;
13     this._hasBlockMedia = false;
14   }
15   receiveMessage(aMessage) {
16     const browser = this.browsingContext.top.embedderElement;
17     switch (aMessage.name) {
18       case "AudioPlayback:Start":
19         this._hasAudioPlayback = true;
20         browser.audioPlaybackStarted();
21         break;
22       case "AudioPlayback:Stop":
23         this._hasAudioPlayback = false;
24         browser.audioPlaybackStopped();
25         break;
26       case "AudioPlayback:ActiveMediaBlockStart":
27         this._hasBlockMedia = true;
28         browser.activeMediaBlockStarted();
29         break;
30       case "AudioPlayback:ActiveMediaBlockStop":
31         this._hasBlockMedia = false;
32         browser.activeMediaBlockStopped();
33         break;
34     }
35   }
36   didDestroy() {
37     const browser = this.browsingContext.top.embedderElement;
38     if (browser && this._hasAudioPlayback) {
39       browser.audioPlaybackStopped();
40     }
41     if (browser && this._hasBlockMedia) {
42       browser.activeMediaBlockStopped();
43     }
44   }