Commit Graph

64 Commits

Author SHA1 Message Date
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
Paul Adenot
ada66aa858 Bug 1141282 - DynamicCompressorNode's readonly 'reduction' should be a float. r=ehsan 2015-03-12 14:36:39 +01:00
Paul Adenot
437014581d Bug 1130077 - Bump the number of iterations to prevent failures on slow machines. r=ehsan 2015-03-05 13:30:12 +01:00
Geoff Brown
46b3719da5 Bug 1138468 - Disable test_audioBufferSourceNodeNeutered.html on android debug; r=trivial 2015-03-05 10:47:41 -07:00
Paul Adenot
052a2913a9 Bug 1118622 - Apply the gain to AnalyserNode data prior to sending on the main thread. r=ehsan 2015-01-29 18:05:23 +01:00
Ankit Goyal
07ae88b846 Bug 1131529 - Update the maximum FFT size in AnalyserNode to be 2^15. r=padenot 2015-02-16 16:03:07 +01:00
Ryan VanderMeulen
51f96dd133 Bug 1127845 - Skip test_audioBufferSourceNodeNeutered.html for being nearly permafail on Windows. 2015-02-05 14:02:21 -05:00
Paul Adenot
b40239c553 Bug 1128494 - Change the default panning model of the PannerNode to "equalpower". r=smaug
--HG--
extra : rebase_source : 34877a4b518ac354cf1732a16f70b1659986aabc
2015-02-03 11:25:37 +01:00
Carsten "Tomcat" Book
876bf0ff6a Backed out changeset f9101e882c96 (bug 1128494) for dt-tests regression on a CLOSED TREE 2015-02-03 13:08:53 +01:00
Paul Adenot
8671cd4722 Bug 1128494 - Change the default panning model of the PannerNode to "equalpower". r=smaug 2015-02-03 11:25:37 +01:00
Paul Adenot
96c8cd7b84 Bug 1119266 - Properly wrap the table index in ComputeCustom on ARM. r=karlt
On ARM, casting a negative float to an unsigned integer yields zero, whereas on
x86, it wraps. When the OscillatorNode had a negative frequency, the code would
just interpolate between the first and second value of the wave table, instead
of interpolating backward.
2015-01-12 13:32:11 +01:00
Ryan VanderMeulen
d76cb5ba6d Bug 1061675- Disable test_mozaudiochannel.html on Android 2.3 due to frequent failures. 2015-01-16 09:59:57 -05:00
Paul Adenot
84a2b0acc4 Bug 1119266 - Disable test_oscillatorNodeNegativeFrequency.html for failures on Android, on a CLOSED TREE. 2015-01-08 16:28:08 +01:00
Paul Adenot
6e708c08e0 Bug 916285 - Make OscillatorNode handle negative frequencies. r=karlt
--HG--
extra : rebase_source : d45d11150406208e936ac3e78a1cdb1ce22684fb
2014-12-01 16:10:54 -08:00
Ryan VanderMeulen
3d55a15384 Backed out 4 changesets (bug 1106649, bug 916285, bug 997870) for test_periodicWave.html failures.
Backed out changeset 43e2d930ba6f (bug 916285)
Backed out changeset 011c2f2f5899 (bug 916285)
Backed out changeset b7303f56216b (bug 997870)
Backed out changeset a2b0a16b8898 (bug 1106649)

CLOSED TREE
2015-01-05 14:22:29 -05:00
Paul Adenot
9d479b3f5f Bug 916285 - Make OscillatorNode handle negative frequencies. r=karlt
--HG--
extra : rebase_source : 8db864efa7d7fcfc02d6c66b8b0f050180968ac9
2014-12-01 16:10:54 -08:00
Paul Adenot
39bd1d3c7d Backed out changeset 99d7aacbdd3b (bug 916285)
--HG--
extra : rebase_source : 51c9b4ded036dc9ef0cb80c878dde663b4d0f3e2
2015-01-05 16:04:33 +01:00
Paul Adenot
02fe6e9c99 Bug 937718 - Test for MediaElementAudioSourceNode and cross-origin resources. r=roc
--HG--
extra : rebase_source : d5ff27560c2c67361baf6a3e767860060848638e
2014-12-24 13:46:58 +01:00
Paul Adenot
566568c711 Bug 916285 - Make OscillatorNode handle negative frequencies. r=karlt
--HG--
extra : rebase_source : 3ceb0506ad4d9f53a15d30d0e6e5a6b7626c6751
2014-12-01 16:10:54 -08:00
Ryan VanderMeulen
3d3603fd0c Bug 1091965 - Skip test_mixingRules.html on Android 2.3 due to high intermittent failure rate. 2014-12-26 12:22:56 -05:00
Ehsan Akhgari
09a262787c Bug 649012 - Fail mochitest-plains which use flaky timeouts (setTimeout(x) for x > 0); r=ted
We are white-listing the existing set of tests that use setTimeout
like this.  Hopefully these tests will be investigated and fixed
in the future, so that we can narrow down the white-list.

This check is only turned on for mochitest-plain for now.
2014-12-11 13:34:40 -05:00
Bob Owen
d921ff4edf Bug 1103946 Part 1: Change --content-sandbox mach / mochitest option to --strict-content-sandbox. r=jmaher
Also, change tests that are skipped using (contentSandbox != off) to (strictContentSandbox).
2014-12-10 09:34:03 +00:00
Paul Adenot
e3aea8a8ea Bug 1092831 - AnalyserNode should have channelCountMode set to "max" by default. r=ehsan
Spec change: https://github.com/WebAudio/web-audio-api/issues/450

--HG--
extra : rebase_source : f8e71f73e45f31e31c745e29e4b694778d7db445
2014-12-04 11:22:51 -08:00