Closed
Bug 952893
Opened 11 years ago
Closed 11 years ago
[B2G] AudioStream (from AudioDestinationNode) Continues to Write Silent Samples until Killing the Dialer App
Categories
(Core :: Web Audio, defect, P1)
Tracking
()
People
(Reporter: mchen, Assigned: roc)
References
Details
(Keywords: perf, power, regression, Whiteboard: [c=power p= s= u=1.3] [CR 595623] [CR 608536] [CR 606932])
Attachments
(6 files, 8 obsolete files)
(deleted),
text/html
|
Details | |
(deleted),
patch
|
padenot
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
padenot
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
karlt
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
Details | Diff | Splinter Review |
Device: Inari
Build: Gecko : HG changeset: 159455:85196889c598
Gaia : e2e7add56f545f2086ab15525ba20b111e5e386f
STR
1. Launch dialer app.
2. No matter dialer app is on foreground or background.
Expected
There is no any PCM data output to audio backend if user didn't press the key.
Actual
There is always silent PCM data output to backend.
Impact
1. This will prevent device from going to deep suspend mode. The normal sleep current will be about 2mA without SIM card attached but it will be more then 40mA in this case.
2. Also impact the idle current from about 150mA to 160mA.
Additional Notes
Reporter | ||
Comment 1•11 years ago
|
||
Hi Ehsan,
I found this issue caused by Gaia to use Web Audio but maybe you can provide some suggestion from perspective of Gecko.
Thanks.
Flags: needinfo?(ehsan)
Comment 2•11 years ago
|
||
That depends on what the dialer app is doing in order to generate the sound. For example, do you create the AudioContext on demand?
Flags: needinfo?(ehsan) → needinfo?(etienne)
Reporter | ||
Comment 3•11 years ago
|
||
Nominate to 1.3+.
User Impact:
Once dialer app is launched in foreground or background, the suspend time of device will become shorter (ex: 1400 (mA/H) / 40 (mA/H) = 37 hours).
(ideal case : 1400 / 10 = 140 Hours)
blocking-b2g: --- → 1.3?
Comment 4•11 years ago
|
||
(In reply to :Ehsan Akhgari (needinfo? me!) from comment #2)
> That depends on what the dialer app is doing in order to generate the sound.
> For example, do you create the AudioContext on demand?
We create/trash it based on visibility changes, just tested and the methods [1] are properly called.
Is there something else we need to do to make sure the context gets properly trashed?
[1] https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/tone_player.js#L19-29
Flags: needinfo?(etienne)
Reporter | ||
Comment 5•11 years ago
|
||
One more information.
I added log into AudioContext's constructor, deconstruct and shutdown API.
1. Launch dialer app : Constructor is called.
2. Put dialer app into background : nothing.
3. put dialer app into foreground : Constructor called again.
4. repeat step 2 and step 3 : see constructor called again and again.
5. kill dialer app : only shutdown is called by multiple times for these AudioContext created by step 2 to 4.
There are also memory leakage there I suspect it is related to strong reference between AudioContext, media stream and mediaStreamGraphic.
Comment 6•11 years ago
|
||
Hmm, then I'm not sure what keeps these objects alive without debugging.
Reporter | ||
Comment 7•11 years ago
|
||
This will impact the battery life seriously so I set it to p1 for v1.3.
Hi Michael,
Did you notice this power issue on your side?
Severity: normal → critical
Flags: needinfo?(mvines)
Priority: -- → P1
Updated•11 years ago
|
Flags: needinfo?(mvines)
Updated•11 years ago
|
Flags: needinfo?(bhargavg1)
Reg power, only Rx PCM will get logged when dialer app is launched, for playing DTMF tones AFE port (RX Path) is opened and when there is no key pressed silent will get logged. And this shouldn't prevent any low power modes being reached. This behavior is same as in LA
Flags: needinfo?(bhargavg1)
Updated•11 years ago
|
Reporter | ||
Comment 9•11 years ago
|
||
(In reply to bhargavg1 from comment #8)
> Reg power, only Rx PCM will get logged when dialer app is launched, for
> playing DTMF tones AFE port (RX Path) is opened and when there is no key
> pressed silent will get logged. And this shouldn't prevent any low power
> modes being reached. This behavior is same as in LA
This is not related to LPA.
What I checked with kernel message is listed as below.
<6>[01-08 09:08:20.861] [2455: kworker/u:1]active wake lock adsp
<6>[01-08 09:08:20.861] [2455: kworker/u:1]active wake lock audio_pcm
It shows that when dialer app is launched without any additional action and user presses power key to suspend.
The system can't go into power collapse mode. (the measured current report is on description)
Maybe you can also check it from power monitor.
Flags: needinfo?(bhargavg1)
Comment 10•11 years ago
|
||
does not seem like a dialer bug
change component to general
Component: Gaia::Dialer → General
Comment 11•11 years ago
|
||
(In reply to Joe Cheng [:jcheng] from comment #10)
> does not seem like a dialer bug
> change component to general
If this isn't a Gaia bug, then it's likely a Web Audio bug.
Component: General → Web Audio
Product: Firefox OS → Core
Comment 12•11 years ago
|
||
blocking+ also, as this has severe impact to power consumption.
blocking-b2g: 1.3? → 1.3+
Comment 13•11 years ago
|
||
Adding regression keyword this is considered a fallout from switching over to Web Audio.
Comment 14•11 years ago
|
||
Rob -- We need a fix for this pretty quickly, and Karl and Paul are pretty swamped with other bugs. Can I give this bug to you? If you think you won't have time for this bug this week, please let me know so I can reassign it to someone else. Thanks.
Assignee: nobody → roc
Flags: needinfo?(roc)
Comment 15•11 years ago
|
||
(In reply to Marco Chen [:mchen] from comment #9)
> (In reply to bhargavg1 from comment #8)
> > Reg power, only Rx PCM will get logged when dialer app is launched, for
> > playing DTMF tones AFE port (RX Path) is opened and when there is no key
> > pressed silent will get logged. And this shouldn't prevent any low power
> > modes being reached. This behavior is same as in LA
>
> This is not related to LPA.
>
> What I checked with kernel message is listed as below.
>
> <6>[01-08 09:08:20.861] [2455: kworker/u:1]active wake lock adsp
> <6>[01-08 09:08:20.861] [2455: kworker/u:1]active wake lock audio_pcm
>
> It shows that when dialer app is launched without any additional action and
> user presses power key to suspend.
> The system can't go into power collapse mode. (the measured current report
> is on description)
> Maybe you can also check it from power monitor.
Yes I see that we aren't hitting the low power modes.
FYI, Another quick way to check low power modes w/o power monitor is to check for,
cat /sys/kernel/debug/rpm_stats
vmin ctr should be incrementing, (ofcourse USB has to be disconnected for entering into low power)
Flags: needinfo?(bhargavg1)
Assignee | ||
Comment 16•11 years ago
|
||
(In reply to Marco Chen [:mchen] from comment #5)
> One more information.
>
> I added log into AudioContext's constructor, deconstruct and shutdown API.
>
> 1. Launch dialer app : Constructor is called.
> 2. Put dialer app into background : nothing.
> 3. put dialer app into foreground : Constructor called again.
> 4. repeat step 2 and step 3 : see constructor called again and again.
> 5. kill dialer app : only shutdown is called by multiple times for these
> AudioContext created by step 2 to 4.
>
> There are also memory leakage there I suspect it is related to strong
> reference between AudioContext, media stream and mediaStreamGraphic.
Did a cycle collection run at any point during this process? Cycle collection has to run before any AudioContexts will be destroyed, and we can run for quite a long time between cycle collections. Can you try triggering one (about:memory can trigger one via "minimize memory usage", but I don't know how to do that on b2g)?
Maybe we should "minimize memory usage" automatically when (or soon after) an app has gone into the background? I don't know what GC heuristics we're using in B2G.
Flags: needinfo?(roc)
Comment 17•11 years ago
|
||
> Did a cycle collection run at any point during this process? Cycle
> collection has to run before any AudioContexts will be destroyed, and we can
> run for quite a long time between cycle collections. Can you try triggering
> one (about:memory can trigger one via "minimize memory usage", but I don't
> know how to do that on b2g)?
https://github.com/mozilla-b2g/B2G/blob/master/tools/get_about_memory.py is the script used to get memory reports on B2G, and you can pass it the --minimize flag, which triggers minimization before measuring.
> Maybe we should "minimize memory usage" automatically when (or soon after)
> an app has gone into the background?
I'm pretty sure we do that, and if we don't, we should. mwu, do you know?
Flags: needinfo?(mwu)
Comment 18•11 years ago
|
||
We also cycle collect roughly every 10 seconds when the browser is active.
Reporter | ||
Comment 21•11 years ago
|
||
I performed "./get_about_memory.py --minimize" during this issue happened and dialer app on the background.
This issue is still there.
Flags: needinfo?(mchen)
Reporter | ||
Comment 22•11 years ago
|
||
After hooking to addref and release functions, the ref count will be remained to 1 after app on the background.
The sequence of addref and release when launching is
1. addref by AudioDestinationNode
2. addref by AudioContext::Constructor() returned a already_AddRefed<AudioContext>
3. addref by AudioContextBinding::Wrap()
4. release by 2 is out of scope in AudioContextBinding::_construct.
5. addref by AudioContext::CreateGain()
The sequence when app falls to background is
6. release by GC to triggered from "memory-pressure"
7. release by CC to reclaim AudioDestinationNode -> AudioNode::unlink().
5.
Assignee | ||
Comment 23•11 years ago
|
||
Thank you! It sounds like we were able to collect the DestinationNode but the GainNode leaked.
Assignee | ||
Comment 24•11 years ago
|
||
Although we create a lot more nodes than just a GainNode and DestinationNode, so I wonder why you didn't see AddRefs for those.
Assignee | ||
Comment 25•11 years ago
|
||
What buttons are you pressing to make this bug happen? Are you pressing buttons that invoke _startAt() with duration == 0? Does the bug go away if you don't press such buttons?
Also, it seems to me that if you call _startAt() twice with duration == 0, we leak the GainNode and oscillators and never stop playing them. But I guess that's not happening here since it should be audible.
What we really need to do here is dump the CC graph so we can see why CC isn't collecting the AudioContext. njn, do you know how to do that with B2G?
Flags: needinfo?(n.nethercote)
Reporter | ||
Comment 26•11 years ago
|
||
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #24)
> Although we create a lot more nodes than just a GainNode and
> DestinationNode, so I wonder why you didn't see AddRefs for those.
The reproduces steps of this bug is
1. Launch dialer app in the foreground.
2. Then just press home to put dialer app into background.
In this cause, just destination and gain nodes are created.
https://github.com/mozilla-b2g/gaia/blob/7e84e2342b81cca00694efa5245d6e0790228f27/apps/communications/dialer/js/tone_player.js#L24
Assignee | ||
Comment 27•11 years ago
|
||
OK, that's interesting. Thanks.
We can definitely collect a simple setup like that in a simple test. So the CC dump would be a very useful way to proceed.
An addref/release log for the GainNode might also be enough.
Reporter | ||
Comment 28•11 years ago
|
||
The suggestion from Rob in comment 25 will try to figure out why AudioContext didn't be collected when dialer app in background.
But there is still an issue we need to solve when dialer app is on the foreground.
Now once dialer app is on the foreground (we expected AudioContext alive in gaia code now), the silent PCM frames will be pushed from MediaStreamGraph even user didn't press any buttons. This will be a problem also.
Assignee | ||
Comment 29•11 years ago
|
||
We guess we can pause the cubeb output stream when the destination node has nothing connected to it.
Assignee | ||
Comment 30•11 years ago
|
||
... but that might hurt latency when a new sound is started.
Reporter | ||
Comment 31•11 years ago
|
||
If we allow silent frames to keep going then system can't go into power collapse mode due to AudioFlinger held a wakelock for PCM coming. We must avoid such situation or power consumption will be impacted deeply.
Comment 32•11 years ago
|
||
> What we really need to do here is dump the CC graph so we can see why CC
> isn't collecting the AudioContext. njn, do you know how to do that with B2G?
The GC/CC logs are collected by default by the get_about_memory.py script: https://github.com/mozilla-b2g/B2G/blob/master/tools/get_about_memory.py#L9
Flags: needinfo?(n.nethercote)
Assignee | ||
Comment 33•11 years ago
|
||
I know.
I think we should do these things:
1) Block the DestinationNode's MediaStream while it has no inputs connected. To ensure audioContext's currentTime keeps running, we'll measure real time while the DestinationNode is blocked and add that to the currentTime.
This probably won't help unless we fix the leak of the GainNode.
2) While a MediaStream with audio output is blocked, we'll pause the cubeb stream.
3) When all MediaStreams in a MediaStreamGraph are blocked, we'll allow the entire graph to go to sleep. Right now we keep it running to keep feeding silence to the audio output streams.
Assignee | ||
Comment 34•11 years ago
|
||
Attachment #8359045 -
Flags: review?(padenot)
Assignee | ||
Comment 35•11 years ago
|
||
Attachment #8359046 -
Flags: review?(padenot)
Assignee | ||
Comment 36•11 years ago
|
||
These two patches should fix this bug *if* we also change TonePlayer to create a fresh GainNode in every start() instead of sharing a single GainNode and keeping it around, and we make sure that those GainNodes don't leak (for which we probably still need to collect a CC graph for debugging).
We could expand these optimizations to detect more "no audio is currently being produced" cases, but I think doing that in the MSG itself makes more sense and I want to fix bug 897796 first.
Comment 37•11 years ago
|
||
Attachment #8359235 -
Flags: review?(padenot)
Comment 38•11 years ago
|
||
Attachment #8359236 -
Flags: review?(padenot)
Updated•11 years ago
|
Attachment #8359045 -
Attachment is obsolete: true
Attachment #8359045 -
Flags: review?(padenot)
Updated•11 years ago
|
Attachment #8359046 -
Attachment is obsolete: true
Attachment #8359046 -
Flags: review?(padenot)
Updated•11 years ago
|
Attachment #8359235 -
Attachment description: Part 2: Block the AudioDestinationNode when it's the only node in the AudioContext (rebased) → Part 2: When all streams in the MSG are blocked, allow the MSG to suspend indefinitely and pause AudioStream outputs while suspended (rebased)
Comment 39•11 years ago
|
||
Comment on attachment 8359236 [details] [diff] [review]
Part 1: Block the AudioDestinationNode when it's the only node in the AudioContext (rebased)
Review of attachment 8359236 [details] [diff] [review]:
-----------------------------------------------------------------
Consider this scenario:
- The author creates an AudioContext at the start of the page
- compressed data are loaded from XHR, this is quite long
- decodeAudioData is then used to decode the assets for playback
- the real application starts after the loading time: the first AudioNode is created
At this point, ExtraCurrentTime() returns the amount of time we spent loading the assets, and everything is delayed by ExtraCurrentTime() seconds.
Maybe we should special-case the time between the creation of the context and the creation of the first node.
Also, trying to troubleshot the delay, I found that for some reason, we always have another graph iteration scheduled when we would like to pause the graph because there is only the destination node, so we don't pause the AudioStream.
Attached is the minimal testcase that does _approximately_ what the dialer do.
Attachment #8359236 -
Flags: review?(padenot)
Comment 40•11 years ago
|
||
Assignee | ||
Comment 41•11 years ago
|
||
(In reply to Paul Adenot (:padenot) from comment #39)
> - The author creates an AudioContext at the start of the page
> - compressed data are loaded from XHR, this is quite long
> - decodeAudioData is then used to decode the assets for playback
> - the real application starts after the loading time: the first AudioNode is
> created
>
> At this point, ExtraCurrentTime() returns the amount of time we spent
> loading the assets, and everything is delayed by ExtraCurrentTime() seconds.
>
> Maybe we should special-case the time between the creation of the context
> and the creation of the first node.
You mean all audio output is delayed by ExtraCurrentTime() seconds? I don't see anything like that. My testcase:
<script>
var ac = new AudioContext();
function addNode() {
var buf = ac.createBuffer(1, 48000, 48000);
var d = buf.getChannelData(0);
for (var i = 0; i < d.length; ++i) {
d[i] = Math.sin((i/48000)*4500*Math.PI)*0.3;
}
var beep = ac.createBufferSource();
beep.buffer = buf;
beep.connect(ac.destination);
beep.start(0);
}
</script>
<p> Wait some time, and then hit the button. </p>
<button onclick="addNode()"> add node </button>
The sounds plays immediately when I click.
> Also, trying to troubleshot the delay, I found that for some reason, we always have another graph iteration
> scheduled when we would like to pause the graph because there is only the destination node, so we don't pause the
> AudioStream.
Yes, I'm also seeing a problem like that. Looking into it.
Assignee | ||
Comment 42•11 years ago
|
||
Fixed a bug where we kept adding the elapsed time since blocking started to mExtraCurrentTime, so if you query AudioContext.currentTime regularly it grows quadratically.
Attachment #8359236 -
Attachment is obsolete: true
Attachment #8360328 -
Flags: review?(padenot)
Assignee | ||
Comment 43•11 years ago
|
||
Rebased
Attachment #8360328 -
Attachment is obsolete: true
Attachment #8360328 -
Flags: review?(padenot)
Attachment #8360337 -
Flags: review?(padenot)
Assignee | ||
Comment 44•11 years ago
|
||
My rebase :-). Patch is unchanged.
Attachment #8359235 -
Attachment is obsolete: true
Attachment #8359235 -
Flags: review?(padenot)
Attachment #8360338 -
Flags: review?(padenot)
Assignee | ||
Comment 45•11 years ago
|
||
In my test, this is the bug that caused the MSG to not actually sleep. We weren't setting allBlockedForever because the MediaStream's mBlocked had mCurrent true but also had an mChange entry setting the value to true, so we thought the mBlocked value was going to change.
Attachment #8360339 -
Flags: review?(padenot)
Comment 46•11 years ago
|
||
Comment on attachment 8360337 [details] [diff] [review]
Part 1 v3
Review of attachment 8360337 [details] [diff] [review]:
-----------------------------------------------------------------
::: content/media/webaudio/AudioDestinationNode.h
@@ +92,5 @@
> nsCOMPtr<nsIAudioChannelAgent> mAudioChannelAgent;
>
> // Audio Channel Type.
> AudioChannel mAudioChannel;
> +<<<<<<< /home/roc/mozilla-central/content/media/webaudio/AudioDestinationNode.h
One of the rebase didn't go that well apparently :)
Updated•11 years ago
|
Status: NEW → ASSIGNED
Whiteboard: [c=power p= s= u=1.3]
Comment 47•11 years ago
|
||
Updated•11 years ago
|
Assignee: roc → paul
Updated•11 years ago
|
Assignee: paul → roc
Comment 48•11 years ago
|
||
Comment on attachment 8360337 [details] [diff] [review]
Part 1 v3
Review of attachment 8360337 [details] [diff] [review]:
-----------------------------------------------------------------
r+ with the rebase fixed.
Attachment #8360337 -
Flags: review?(paul) → review+
Updated•11 years ago
|
Attachment #8360338 -
Flags: review?(paul) → review+
Updated•11 years ago
|
Attachment #8360339 -
Flags: review?(paul) → review+
Comment 52•11 years ago
|
||
There's nothing landed on mozilla-central here to uplift. As usual, I'll take care of it once there is.
Updated•11 years ago
|
Flags: needinfo?(ryanvm)
Updated•11 years ago
|
Whiteboard: [c=power p= s= u=1.3] → [c=power p= s= u=1.3] [CR 595623]
Comment 53•11 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM UTC-5] from comment #52)
> There's nothing landed on mozilla-central here to uplift. As usual, I'll
> take care of it once there is.
Hi Paul, can you help move this along? This is a critical fix for us on 1.3.
Thanks,
-Greg
Flags: needinfo?(paul)
Comment 54•11 years ago
|
||
roc was on vacations. I believe he's back, now. I'll rebase and land those patches tomorrow if it's not already done.
Flags: needinfo?(paul)
Comment 55•11 years ago
|
||
Could we please get a v1.3 version of these patches today so we can check if the issues we attribute to this bug are resolved?
Flags: needinfo?(paul)
Assignee | ||
Comment 56•11 years ago
|
||
I have a rebased patch for mozilla-central but I can't land it there right now because inbound is closed.
Comment 57•11 years ago
|
||
Can we get a v1.3 patch attached to this bug in parallel please? Apparently the m-c patch doesn't apply cleanly.
Updated•11 years ago
|
status-b2g-v1.3:
--- → affected
Assignee | ||
Comment 58•11 years ago
|
||
Someone could can try this patch on the b2g28 branch.
Updated•11 years ago
|
Whiteboard: [c=power p= s= u=1.3] [CR 595623] → [c=power p= s= u=1.3] [CR 595623] [CR 608536]
(In reply to Michael Vines [:m1] [:evilmachines] from comment #59)
> Ta, :tk is on it
It works fine . Communication app is not running AudioTrack thread after ending call on phone.
Flags: needinfo?(tkundu)
Updated•11 years ago
|
Whiteboard: [c=power p= s= u=1.3] [CR 595623] [CR 608536] → [c=power p= s= u=1.3] [CR 595623] [CR 608536] [CR 606932]
Comment 61•11 years ago
|
||
(In reply to Tapas Kumar Kundu from comment #60)
>
> (In reply to Michael Vines [:m1] [:evilmachines] from comment #59)
> > Ta, :tk is on it
>
> It works fine . Communication app is not running AudioTrack thread after
> ending call on phone.
It sounds like we have a confirmed fix, and inbound is now open. I'll ask Paul (:padenot) to land this on inbound and Ryan can then uplift it to Aurora.
Summary: AudioStream (from AudioDestinationNode) Continues to Write Silent Samples until Killing the Dialer App → [B2G] AudioStream (from AudioDestinationNode) Continues to Write Silent Samples until Killing the Dialer App
Comment 62•11 years ago
|
||
Comment 63•11 years ago
|
||
Backed-out and relanded with DONTBUILD to fix the bug number in the commit message.
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/41488ab273c9
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/15fc5d1cb10e
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/f501606dc1d3
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/91c572ac5ee1
Comment 64•11 years ago
|
||
Followup crash fix:
https://hg.mozilla.org/integration/mozilla-inbound/rev/ac4e6f145b9a
Comment 65•11 years ago
|
||
Backed out for test failures on all platforms.
https://hg.mozilla.org/integration/mozilla-inbound/rev/27c8e496895a
https://tbpl.mozilla.org/php/getParsedLog.php?id=33755339&tree=Mozilla-Inbound
Please make sure the Aurora/b2g28 patch gets updated too :)
Assignee | ||
Comment 66•11 years ago
|
||
Fixed those errors with two simple changes:
-- Disabled part 1 for offline audio contexts since it's just wrong. We shouldn't be accumulating ExtraCurrentTime before StartRendering is called, and we shouldn't be suspending the destination node's stream anyway while there are no input nodes, since the resulting silence must be accumulated in the OfflineAudioContext result buffer instead of being thrown away. That fixes the test_mediaDecoding failures.
-- The test_audioParamTimelineDestinationOffset failures are due to AudioParam setter methods not compensating for ExtraCurrentTime.
Assignee | ||
Comment 67•11 years ago
|
||
Attachment #8360337 -
Attachment is obsolete: true
Attachment #8367784 -
Flags: review?(karlt)
Assignee | ||
Comment 68•11 years ago
|
||
Attachment #8367784 -
Attachment is obsolete: true
Attachment #8367784 -
Flags: review?(karlt)
Attachment #8367785 -
Flags: review?(karlt)
Comment 69•11 years ago
|
||
Comment on attachment 8367785 [details] [diff] [review]
Part 1 v5
I reviewed the changes from v3.
Attachment #8367785 -
Flags: review?(karlt) → review+
Comment 70•11 years ago
|
||
Try is taking forever to finish, but previously failing tests now succeed. Since this fix is very much wanted by our B2G folks ASAP, I've asked Jesup to land the patches on inbound now and see if they stick.
Comment 71•11 years ago
|
||
Comment 72•11 years ago
|
||
https://tbpl.mozilla.org/?tree=Try&rev=eeb07dafc25b is looking successful on a few platforms. I don't know whether or not that depends on changes from bug 961996 and bug 941873.
Assignee | ||
Comment 73•11 years ago
|
||
That try push is looking good so I pushed the lot to inbound.
Comment 74•11 years ago
|
||
Thanks, Rob -- Can you create an updated rollup patch for b2g28 (v1.3)?
Flags: needinfo?(roc)
Assignee | ||
Comment 75•11 years ago
|
||
Attachment #8366994 -
Attachment is obsolete: true
Flags: needinfo?(roc)
Comment 76•11 years ago
|
||
Ryan - Can you land the rollup patch for us once we're on mozilla-central?
Flags: needinfo?(ryanvm)
Comment 77•11 years ago
|
||
(In reply to Maire Reavy [:mreavy] from comment #76)
> Ryan - Can you land the rollup patch for us once we're on mozilla-central?
As always ;)
Comment 78•11 years ago
|
||
This hasn't merged to m-c yet, but it's going to stick.
https://hg.mozilla.org/releases/mozilla-aurora/rev/f98bf9a4df97
status-b2g-v1.4:
--- → fixed
status-firefox27:
--- → wontfix
status-firefox28:
--- → fixed
status-firefox29:
--- → fixed
Flags: needinfo?(ryanvm)
Comment 79•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/1424d2e16349
https://hg.mozilla.org/mozilla-central/rev/62a1f3ee8c28
https://hg.mozilla.org/mozilla-central/rev/8d4c383026cd
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
Updated•11 years ago
|
status-b2g-v1.3T:
--- → fixed
Comment 82•11 years ago
|
||
in-testsuite? here to track that we need a test for the regression in bug 988760.
(I would normally mark the regression bug but 988760 is not in the Web Audio component, so I would never find it.)
Depends on: 988760
Flags: in-testsuite+ → in-testsuite?
You need to log in
before you can comment on or make changes to this bug.
Description
•