зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1192818 - part2 : only dispatch DOMAudioPlaybackStarted when there is audible sound. r=baku
The DOMAudioPlaybackStarted event would affect the tabbrowser's attribute, "soundPlaying", and this attribute should indicate whether the tab is audible or not. However, in present codebase, even the tab has "soundplaying", it doens't mean the tab has audible sound, you need to check extra attribute, "muted". After applying this patch, tabbrowser can only own one of the attributes ("soundplaying" or "mute"). These attributes won't exist at the same time, so we can easily know whether the tab is audible by checking "soundPlaying". Let's see an example, step1. playing a playing audio - tab owns "soundPlaying" step2. mute the tab - tab owns "muted" step3. stop audio - tab owns "muted" step4. replay the audio - tab owns "muted" step5. unmute the tab - tab owns "soundPlaying" step6. stop audio - tab owns "" MozReview-Commit-ID: EEKEbAVzsVm --HG-- extra : rebase_source : 823d501e9162ae8b611f2e97dd763c1eec16c2cf
This commit is contained in:
Родитель
c268fbdbaf
Коммит
606eb319fa
|
@ -698,6 +698,9 @@
|
||||||
<method name="audioPlaybackStarted">
|
<method name="audioPlaybackStarted">
|
||||||
<body>
|
<body>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
if (this._audioMuted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
let event = document.createEvent("Events");
|
let event = document.createEvent("Events");
|
||||||
event.initEvent("DOMAudioPlaybackStarted", true, false);
|
event.initEvent("DOMAudioPlaybackStarted", true, false);
|
||||||
this.dispatchEvent(event);
|
this.dispatchEvent(event);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче