Commit Graph

86 Commits

Author SHA1 Message Date
Karl Tomlinson
22f0305b78 bug 1208318 ensure that currentTime has advanced sufficiently to easily detect failure r=padenot
--HG--
extra : rebase_source : 7ebf94ac10edb5b4ebd8b76e98e8a3821578ce04
2015-09-29 13:39:24 +13:00
Karl Tomlinson
5b32edea6d bug 1208318 modify test to avoid assuming different clocks are synchronized r=padenot
--HG--
extra : rebase_source : 31ecead7358bdb7b511d5efd802f479af46aef42
2015-09-25 13:05:03 +12:00
Kaustabh Datta Choudhury
5270e212b7 Bug 1162003 - Enable run-by-dir mode on Fx desktop mac debug platform and re-enable a few tests. r=jmaher 2015-09-28 10:54:22 -04:00
Paul Adenot
945decca4e Bug 1203836 - Test that MediaElementAudioSourceNode pipes correct data to an AudioContext. r=karlt
--HG--
extra : rebase_source : a7e55c894e665dcd57f69c730ec8aebc2af9152b
2015-09-21 11:00:12 +02:00
Kaustabh Datta Choudhury
2a080acfd0 Bug 1162003 - Enable run-by-dir mode on Fx desktop debug & ASAN builds. r=jmaher 2015-09-10 09:52:00 +02:00
Dragana Damjanovic dd.mozilla@gmail.com
94779891d5 Bug 1202421 - Rename the network.auth.allow-subresource-auth pref. r=michal 2015-09-08 08:21:19 -07:00
Ehsan Akhgari
f9752f535c Bug 1196361 - Remove the media.useAudioChannelService pref; r=baku
We need to rely on the audio channel service for all products now,
so supporting running without it seems pointless at this point.
2015-08-19 21:00:18 -04:00
Karl Tomlinson
795135daf2 test for bug 1191648
--HG--
extra : rebase_source : 3588805b7e34ac76ed6422c6703c25d1fcc220bc
2015-08-11 13:37:20 +12:00
Karl Tomlinson
da9d3d3591 bug 916387 remove workarounds in tests r=padenot
Zero output channels are used on ScriptProcessorNodes to improve efficiency in
tests when output is not required.

--HG--
extra : rebase_source : f3ddee8031d772bdcedbd482d80d3259a095e0ea
2015-08-06 16:04:23 +12:00
Karl Tomlinson
0f7fc2c09c bug 1184801 Test output of AnalyserNode with GainNode
--HG--
extra : rebase_source : 2158db1151e6b4dd3c862635c1bec4e0498a9135
2015-07-28 11:03:31 +12:00
Jan-Ivar Bruaroey
0ccb51ddc8 Bug 1175523 - Update most (but not all) tests to use elem.srcObject over .mozSrcObject. r=pehrsons
--HG--
extra : rebase_source : bac0027f4bf5d75b8730c44a10141c114002633b
2015-07-14 10:12:31 -04:00
Karl Tomlinson
8fa05ce9cd bug 1187785 test periodic wave band limiting
--HG--
extra : rebase_source : 4124c181cbf5eb46e5c4067faf5298947ebcfb33
2015-07-29 11:57:56 +12:00
Karl Tomlinson
15660ce0a3 bug 1184801 Test effect of AnalyserNode on GainNode output
--HG--
extra : rebase_source : 76315743a411d75937dfa85ecfaddce66864bd87
2015-07-17 13:24:54 +12:00
Benjamin Bouvier
676d79811c Bug 1186343: Throw an InvalidStateError when we set the curve attribute of a WaveShaperNode with a Float32Array of length less than 2; r=padenot,smaug
--HG--
rename : dom/media/webaudio/test/test_waveShaperZeroLengthCurve.html => dom/media/webaudio/test/test_waveShaperInvalidLengthCurve.html
extra : commitid : 6mncD6YlIar
extra : rebase_source : 2522698bcb1e1dcdb4047d8c5ab61f6caba8875e
extra : amend_source : 21cdb3f06b100a5b3a078dbc38ffeecedc675bae
2015-07-22 13:32:12 +02:00
Andrea Marchesini
db14826639 Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan
--HG--
rename : dom/audiochannel/AudioChannelAgent.h => dom/browser-element/BrowserElementAudioChannel.h
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_inproc_AudioChannel.html
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html
rename : dom/audiochannel/AudioChannelCommon.h => dom/webidl/BrowserElementAudioChannel.webidl
2015-07-10 17:38:44 +01:00
Carsten "Tomcat" Book
c07e36b612 Backed out changeset bcfbdb934c37 (bug 1113086) for breaking cpp tests with timeouts in TestAudioChannelService.exe
--HG--
rename : dom/webidl/BrowserElementAudioChannel.webidl => dom/audiochannel/AudioChannelCommon.h
rename : dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html => dom/audiochannel/tests/file_telephonyPolicy.html
2015-07-11 14:14:58 +02:00
Andrea Marchesini
3050bc370c Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan
--HG--
rename : dom/audiochannel/AudioChannelAgent.h => dom/browser-element/BrowserElementAudioChannel.h
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_inproc_AudioChannel.html
rename : dom/audiochannel/tests/file_telephonyPolicy.html => dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html
rename : dom/audiochannel/AudioChannelCommon.h => dom/webidl/BrowserElementAudioChannel.webidl
2015-07-10 21:08:43 -04:00
Xidorn Quan
f23d866f51 Backed out 8 changesets (bug 1113086) for build bustage
Backed out changeset a20839dfd439 (bug 1113086)
Backed out changeset 675ea719b91c (bug 1113086)
Backed out changeset cfb34138bb9f (bug 1113086)
Backed out changeset b9525c60a737 (bug 1113086)
Backed out changeset 380859ae955b (bug 1113086)
Backed out changeset 5ec088f0892f (bug 1113086)
Backed out changeset caf57ae8cbce (bug 1113086)
Backed out changeset 0fc4dec6cd81 (bug 1113086)

--HG--
extra : histedit_source : d8dfd75d9dae36b7309ce78e3b4488faf57003da%2C48081711b7067191d8e4749fd3b572db59bc03f9
2015-07-11 10:55:59 +10:00
Andrea Marchesini
bbb0a11f31 Bug 1113086 - AudioChannel policy in Browser API - patch 1 - BrowserElementAudioChannel, r=ehsan
--HG--
rename : dom/browser-element/mochitest/test_browserElement_inproc_GetContentDimensions.html => dom/browser-element/mochitest/test_browserElement_inproc_AudioChannel.html
rename : dom/browser-element/mochitest/test_browserElement_oop_GetContentDimensions.html => dom/browser-element/mochitest/test_browserElement_oop_AudioChannel.html
2015-07-10 17:38:44 +01:00
Ehsan Akhgari
2c2295d295 Bug 1180539 - Correctly dispatch media-playback notifications when an AudioContext is closed/suspended/resumed; r=baku
Since navigating away from a page with an active AudioContext will close
it internally, this patch fixes a similar issue to bug 1180535 for Web
Audio too.
2015-07-06 21:21:19 -04:00
Ehsan Akhgari
c6f415d397 Bug 1180347 - Split media.useAudioChannelService to support turning the service on without turning the Firefox OS specific APIs on; r=baku
This is going to be needed for us to be able to turn the AudioChannelService
on for desktop without exposing the Firefox OS specific APIs.
2015-07-06 09:05:00 -04:00
JW Wang
13addbc548 Bug 1175786 - Rewrite test_mediaElementAudioSourceNodeCrossOrigin.html. r=padenot
--HG--
extra : rebase_source : 1d754c33cfbc706914ef7f92b80ac7c3250f3423
2015-06-17 19:45:00 +02:00
Karl Tomlinson
f8b1474d38 bug 1061220 work around bug 916387
--HG--
extra : rebase_source : 3966cb91ec36ee07621b90b00153e3dafeb9d722
2015-06-12 15:44:19 +12:00
Paul Adenot
2567778c41 Bug 1118372 - Invert two lines in the mochitest.ini to keep the right text disabled, on a CLOSED TREE. 2015-06-11 18:46:46 +02:00
Yanis Sellami
ece36044f6 Bug 1118372 - Properly apply volume in WaveShaperNodeEngine. r=padenot 2015-06-08 10:57:05 +02:00
JW Wang
85ff952ec4 Bug 1169356 - increase loop count so the test runs more reliably on slow machines like B2G. r=padenot. 2015-06-10 13:55:27 +08:00
Bobby Holley
aa6c9ce796 Bug 1160695 - Drop Support for Content-Duration. r=cpearce 2015-06-08 09:22:46 -07:00
Paul Adenot
75aeb0a54f Bug 1002513 - Clamp gain to zero in PannerNode to avoid inverting the phase when the distance is greater than maxDistance. r= 2015-01-14 17:11:06 +01:00
JW Wang
486a5586c0 Bug 1170081 - Add a tag to run only mochitests that use HTMLMediaElement::MozCaptureStream. r=cpearce. 2015-06-02 17:31:46 +08:00
Andreas Pehrson
23c2c9bf54 Bug 1166659 - Add mochitest tags for webaudio and webrtc. r=jesup, r=padenot 2015-05-20 02:49:00 -04:00
Paul Adenot
df59990b19 Bug 1127188 - Make test_audioContextSuspendResumeClose.html less flaky. r=ehsan 2015-05-20 14:30:47 +02:00
Paul Adenot
03ac4f75ca Bug 1127188 - Close() AudioContext when Freeing inner window object. r=ehsan 2015-05-20 14:30:47 +02:00
Paul Adenot
78e7f42537 Bug 1166803 - Add an msg tag to mochitest.ini in dom/media/*. r=jesup 2015-05-22 10:57:51 +02:00
Geoff Brown
4bb32f5282 Bug 1140454 - Skip some tests on Android 4.3 Debug for intermittent failures; r=me,trivial 2015-05-09 20:04:44 -06:00
Andrea Marchesini
7a242bbc5d Bug 1027864 - webaudio - Implement AudioChunk::IsSilentOrSubnormal(), r=karlt 2015-04-23 12:25:36 +02:00
Neil Deakin
af1ece91c4 Bug 1153248, re-enable a bunch of tests that now work with e10s, r=billm 2015-04-16 15:38:12 -04:00
Paul Adenot
e32b404e54 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Ryan VanderMeulen
5615c15366 Bug 1097721 - Skip test_mozaudiochannel.html on OSX 10.6 due to intermittent crashes. 2015-04-15 14:35:59 -04:00
Paul Adenot
bc7866deae Bug 1134034 - Add a chrome-only parentId and name on AudioParam for devtools. r=ehsan 2015-04-14 17:03:52 +02:00
Paul Adenot
e86047f94a Bug 1153783 - Implement the detune AudioParam for the AudioBufferSourceNode. r=ehsan 2015-04-14 17:03:50 +02:00
Carsten "Tomcat" Book
31c4421faf Backed out changeset 7fc52c48e6e3 (bug 1094764) for mulet m-3 perma failure in /test_dataChannel_basicAudioVideo.html 2015-04-09 13:44:27 +02:00
Paul Adenot
70b6a9e143 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Dragana Damjanovic
b658f9d97e Bug 647010 - Limit when HTTP authentication dialog is shown. Block cross-origin http auth prompts with pref. r=mayhemer, r=tanvi 2015-04-01 06:56:00 -04:00
Carsten "Tomcat" Book
60382cb6ba Backed out changeset bf22c9e5c5a3 (bug 1094764) for crashtest failures on a CLOSED TREE 2015-03-30 15:14:09 +02:00
Paul Adenot
6ee36e38f6 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Geoff Brown
53daff6584 Bug 1140148 - Update mochitest manifests for Android 4.3 emulator; r=dminor 2015-03-26 20:35:35 -06:00
Wes Kocher
5e68488fa0 Bug 1145816 - Disable test_mediaStreamAudioDestinationNode.html as well for frequent timeouts CLOSED TREE 2015-03-20 16:22:05 -07:00
Ryan VanderMeulen
edd40992cc Bug 1145816 - Disable test_mediaElementAudioSourceNodePassThrough.html on Android for being nearly perma-timeout.
CLOSED TREE
2015-03-20 17:15:43 -04:00
Jonathan Griffin
d1c61bc9b6 Bug 1116187 - Disable failing mochitest-chrome tests for B2G, r=gbrown 2015-02-06 16:30:37 -08:00
Paul Adenot
1a25b47c65 Bug 1141282 - Test the type of the attributes of the DynamicCompressoNode, and make sure it returns sane values. r=ehsan 2015-03-12 14:36:40 +01:00