Closed Bug 1324548 Opened 7 years ago Closed 5 years ago

Implement MediaStreamTrackAudioSourceNode

Categories

(Core :: Web Audio, enhancement, P3)

50 Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox68 --- fixed

People

(Reporter: baku, Assigned: padenot)

References

Details

(Keywords: dev-doc-complete)

Attachments

(6 files, 4 obsolete files)

59 bytes, text/x-review-board-request
baku
: review+
Details
59 bytes, text/x-review-board-request
baku
: review+
pehrsons
: review+
Details
59 bytes, text/x-review-board-request
baku
: review+
Details
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
Rank: 25
Priority: -- → P2
Mass change P2->P3 to align with new Mozilla triage process.
Priority: P2 → P3
We changed the version of ReSpec we used on the spec, so the link have changed: https://webaudio.github.io/web-audio-api/#MediaStreamTrackAudioSourceNode is the correct link.
Assignee: nobody → leo.paquet
Comment on attachment 8920050 [details]
Bug 1324548 - Add MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/191040/#review196246


C/C++ static analysis found 1 defect in this patch.

You can run this analysis locally with: `./mach static-analysis check path/to/file.cpp`

If you see a problem in this automated review, please report it here: http://bit.ly/2y9N9Vx


::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:31
(Diff revision 1)
> +
> +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(MediaStreamTrackAudioSourceNode, AudioNode)
> +  NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mInputTrack)
> +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
> +
> +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaStreamTrackAudioSourceNode)

Warning: Do not use 'else' after 'return' [clang-tidy: readability-else-after-return]
Comment on attachment 8920050 [details]
Bug 1324548 - Add MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/191040/#review196312

Good start, needs a bit of work still!

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:94
(Diff revision 1)
> +
> +  // Attaches to the first available audio track in aMediaStream.
> +  void AttachToFirstTrack(const RefPtr<DOMMediaStream>& aMediaStream);
> +
> +  // From DOMMediaStream::TrackListener.
> +  void NotifyTrackAdded(const RefPtr<MediaStreamTrack>& aTrack) override;

I don't think we need those two (Added and Removed).

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:47
(Diff revision 1)
> +{
> +}
> +
> +/* static */ already_AddRefed<MediaStreamTrackAudioSourceNode>
> +MediaStreamTrackAudioSourceNode::Create(AudioContext& aAudioContext,
> +                                   const MediaStreamTrackAudioSourceOptions& aOptions,

Indentation is off here.

You can do `./mach clang-format` to fix it up.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:77
(Diff revision 1)
> +{
> +  if (!aMediaStreamTrack) {
> +    aRv.Throw(NS_ERROR_FAILURE);
> +    return;
> +  }
> +

We want to check if the MediaStream track is an audio track here.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:101
(Diff revision 1)
> +
> +void
> +MediaStreamTrackAudioSourceNode::AttachToTrack(const RefPtr<MediaStreamTrack>& aTrack)
> +{
> +  MOZ_ASSERT(!mInputTrack);
> +  MOZ_ASSERT(aTrack->AsAudioStreamTrack());

Otherwise, we'll crash here in debug.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:129
(Diff revision 1)
> +    mInputPort = nullptr;
> +  }
> +}
> +
> +void
> +MediaStreamTrackAudioSourceNode::AttachToFirstTrack(const RefPtr<DOMMediaStream>& aMediaStream)

I think this is dead code.

::: dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html:34
(Diff revision 1)
> +    source.buffer = createBuffer(context);
> +    var dest = sourceGraph.createMediaStreamDestination();
> +    source.connect(dest);
> +
> +    // Extract first audio track from dest.stream
> +    var track = dest.stream.getAudioTracks()[0];

You also want a test that tries to pass in a video track, and check that it throws.

::: dom/webidl/MediaStreamTrackAudioSourceNode.webidl:19
(Diff revision 1)
> +    required MediaStreamTrack mediaStreamTrack;
> +};
> +
> +[Pref="dom.webaudio.enabled",
> + Constructor(AudioContext context, MediaStreamTrackAudioSourceOptions options)]
> +interface MediaStreamTrackAudioSourceNode : AudioNode {

When we make changes to .webidl files, it is mandatory to have a DOM peer (a person that vouch that this new API can be exposed to web pages).

Here, we're copying directly from the spec, but we still need a review.

:baku is a good person in Europe for that.
Attachment #8920050 - Flags: review?(padenot)
Comment on attachment 8920050 [details]
Bug 1324548 - Add MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/191040/#review200982
Attachment #8920050 - Flags: review?(padenot)
Comment on attachment 8924540 [details]
Bug 1324548 - Add context.createMediaStreamTrackSource().

https://reviewboard.mozilla.org/r/195796/#review200980

Can you please split the patch in 2? The restyling of the code should be in a separate patch. This will make the review process faster. Thanks.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:56
(Diff revision 1)
> -                                   public DOMMediaStream::TrackListener,
> -                                   public PrincipalChangeObserver<MediaStreamTrack>
> +  : public AudioNode
> +  , public DOMMediaStream::TrackListener
> +  , public PrincipalChangeObserver<MediaStreamTrack>
>  {
>  public:
> -  static already_AddRefed<MediaStreamTrackAudioSourceNode>
> +  static already_AddRefed<MediaStreamTrackAudioSourceNode> Create(

Why are you using this style?
Attachment #8924540 - Flags: review?(amarchesini) → review-
Attachment #8924629 - Attachment is obsolete: true
Attachment #8924629 - Flags: review?(padenot)
Attachment #8924540 - Attachment is obsolete: true
Attachment #8924540 - Flags: review?(padenot)
Attachment #8924540 - Flags: review?(amarchesini)
Attachment #8920050 - Attachment is obsolete: true
I've uploaded a cleaner patch for baku and pehrsons to look at.
Comment on attachment 8925004 [details]
Bug 1324548 - Implement MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/196248/#review201424

Good start. We'll need the missing file, missing error string, better lifetime support and more extensive tests before this can land though.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:1
(Diff revision 1)
> +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
> +/* vim:set ts=2 sw=2 sts=2 et cindent: */

Per bug 1412125 this should be:
```
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
```

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:11
(Diff revision 1)
> +
> +#ifndef MediaStreamTrackAudioSourceNode_h_
> +#define MediaStreamTrackAudioSourceNode_h_
> +
> +#include "AudioNode.h"
> +#include "DOMMediaStream.h"

Is this really needed?
(I guess it's residue from copying `MediaStreamAudioSourceNode`)

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:47
(Diff revision 1)
> +                                   public DOMMediaStream::TrackListener,
> +                                   public PrincipalChangeObserver<MediaStreamTrack>

Indentation

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:47
(Diff revision 1)
> +private:
> +  bool mEnabled;
> +};
> +
> +class MediaStreamTrackAudioSourceNode : public AudioNode,
> +                                   public DOMMediaStream::TrackListener,

Is this really needed?

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:78
(Diff revision 1)
> +    return "MediaStreamTrackAudioSourceNode";
> +  }
> +
> +  virtual const char* CrossOriginErrorString() const
> +  {
> +    return "MediaStreamTrackAudioSourceNodeCrossOrigin";

The patch adding this string for english is missing.

See http://searchfox.org/mozilla-central/rev/af86a58b157fbed26b0e86fcd81f1b421e80e60a/dom/locales/en-US/chrome/dom/dom.properties#104

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:84
(Diff revision 1)
> +  // Attaches to aTrack so that its audio content will be used as input.
> +  void AttachToTrack(const RefPtr<MediaStreamTrack>& aTrack);
> +
> +  // Detaches from the currently attached track if there is one.
> +  void DetachFromTrack();

This looks like residue from the stream source. It was needed there because tracks could come and go. Here they can't so we can simplify to get rid of them.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:1
(Diff revision 1)
> +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
> +/* vim:set ts=2 sw=2 sts=2 et cindent: */

Same here regarding mode line.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:47
(Diff revision 1)
> +                                   const MediaStreamTrackAudioSourceOptions& aOptions,
> +                                   ErrorResult& aRv)

indentation

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:73
(Diff revision 1)
> +  if (!aMediaStreamTrack) {
> +    aRv.Throw(NS_ERROR_FAILURE);
> +    return;
> +  }

Is NS_ERROR_FAILURE the right thing to throw here? I know we do it in places but I recently got pushed back because it is an internal error.

A DOM peer would know.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:105
(Diff revision 1)
> +  MOZ_ASSERT(!mInputTrack);
> +  MOZ_ASSERT(aTrack->AsAudioStreamTrack());
> +
> +  if (!mStream) {
> +    return;
> +  }
> +
> +  mInputTrack = aTrack;
> +  ProcessedMediaStream* outputStream =
> +    static_cast<ProcessedMediaStream*>(mStream.get());
> +  mInputPort = mInputTrack->ForwardTrackContentsTo(outputStream);
> +  PrincipalChanged(mInputTrack); // trigger enabling/disabling of the connector
> +  mInputTrack->AddPrincipalChangeObserver(this);

Inline this at the callsite.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:112
(Diff revision 1)
> +  mInputTrack = aTrack;
> +  ProcessedMediaStream* outputStream =
> +    static_cast<ProcessedMediaStream*>(mStream.get());
> +  mInputPort = mInputTrack->ForwardTrackContentsTo(outputStream);
> +  PrincipalChanged(mInputTrack); // trigger enabling/disabling of the connector
> +  mInputTrack->AddPrincipalChangeObserver(this);

We also need to listen for the track ending; and when it does, mark this node inactive.

For a listener, see MediaStreamTrackConsumer, [1].
For marking it inactive, see [2].


[1] http://searchfox.org/mozilla-central/rev/af86a58b157fbed26b0e86fcd81f1b421e80e60a/dom/media/MediaStreamTrack.h#235
[2] http://searchfox.org/mozilla-central/rev/af86a58b157fbed26b0e86fcd81f1b421e80e60a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp#159

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:116
(Diff revision 1)
> +
> +  mInputTrack = aTrack;
> +  ProcessedMediaStream* outputStream =
> +    static_cast<ProcessedMediaStream*>(mStream.get());
> +  mInputPort = mInputTrack->ForwardTrackContentsTo(outputStream);
> +  PrincipalChanged(mInputTrack); // trigger enabling/disabling of the connector

Connector?

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:123
(Diff revision 1)
> +  if (mInputTrack) {
> +    mInputTrack->RemovePrincipalChangeObserver(this);
> +    mInputTrack = nullptr;
> +  }
> +  if (mInputPort) {
> +    mInputPort->Destroy();
> +    mInputPort = nullptr;
> +  }

Inline this at the callsite.

::: dom/media/webaudio/test/mochitest.ini:180
(Diff revision 1)
>  [test_mediaStreamAudioSourceNodeNoGC.html]
>  [test_mediaStreamAudioSourceNodePassThrough.html]
>  [test_mediaStreamAudioSourceNodeResampling.html]
>  tags=capturestream
> +[test_mediaStreamTrackAudioSourceNode.html]
> +[test_mediaStreamTrackAudioSourceNodeVideo.html]

This file is missing.

::: dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html:23
(Diff revision 1)
> +var gTest = {
> +  length: 2048,
> +  skipOfflineContextTests: true,
> +  createGraph: function(context) {
> +    var sourceGraph = new AudioContext();
> +    var source = sourceGraph.createBufferSource();
> +    source.buffer = createBuffer(context);
> +    var dest = sourceGraph.createMediaStreamDestination();
> +    source.connect(dest);
> +
> +    // Extract first audio track from dest.stream
> +    var track = dest.stream.getAudioTracks()[0];
> +
> +    source.start(0);
> +
> +    var mediaStreamTrackSource = new MediaStreamTrackAudioSourceNode(context, { mediaStreamTrack: track });
> +    // channelCount and channelCountMode should have no effect
> +    mediaStreamTrackSource.channelCount = 1;
> +    mediaStreamTrackSource.channelCountMode = "explicit";
> +    return mediaStreamTrackSource;
> +  },
> +  createExpectedBuffers: function(context) {
> +    return createBuffer(context);
> +  },
> +};
> +
> +runTest();

I'm not so well aware of the webaudio test framework we have but in general I think we also need to test:
- AudioContext.createMediaStreamTrackSource()
- audio content, i.e., that the audio bits we produce and pipe through the MediaStreamTrackAudioSourceNode comes out the same on the output side.
- tracks from different sources. We should include tests for audio tracks from getUserMedia and RTCPeerConnection too (see dom/media/tests/mochitest).
- that a cross-origin source is blocked.
- the node's lifetime. If no reference are held to it other it being connected to a graph it should stay alive while the track is live and be collected after the track has ended.
Attachment #8925004 - Flags: review?(apehrson)
Comment on attachment 8925004 [details]
Bug 1324548 - Implement MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/196248/#review201446

r+ only for the WebIDL part.
You should also implement "MediaStreamTrackAudioSourceNode createMediaStreamTrackSource(MediaStreamTrack mediaStreamTrack);" in AudioContext.

::: dom/webidl/MediaStreamTrackAudioSourceNode.webidl:7
(Diff revision 1)
> +/* This Source Code Form is subject to the terms of the Mozilla Public
> + * License, v. 2.0. If a copy of the MPL was not distributed with this file,
> + * You can obtain one at http://mozilla.org/MPL/2.0/.
> + *
> + * The origin of this IDL file is
> + * https://webaudio.github.io/web-audio-api/

https://webaudio.github.io/web-audio-api/#MediaStreamTrackAudioSourceNode
Attachment #8925004 - Flags: review?(amarchesini) → review+
(last push just adds the test file that I forgot to hg add)
Attachment #8925004 - Flags: review?(padenot)
Attachment #8925004 - Flags: review?(apehrson)
Comment on attachment 8925004 [details]
Bug 1324548 - Implement MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/196248/#review201852

These comments are for the added tests, previous ones still apply and are the reason for clearing the r?

::: dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNodeVideo.html:14
(Diff revision 2)
> +  createVideoTrack = () => {
> +    let c = document.createElement("canvas");
> +    c.getContext("2d");
> +    return c.captureStream().getTracks()[0];
> +  }

Inline this at the callsite.

::: dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNodeVideo.html:23
(Diff revision 2)
> +  expectException(() => {
> +    let mediaStreamTrackSource = new MediaStreamTrackAudioSourceNode(
> +      context,
> +      { mediaStreamTrack: track });
> +  }, DOMException.INVALID_STATE_ERR);

Looks good, but we should also test `context.createMediaStreamTrackSource()`.
(In reply to Andreas Pehrson [:pehrsons] from comment #18)
> Comment on attachment 8925004 [details]
> Bug 1324548 - Implement MediaStreamTrackAudioSourceNode.
> 
> https://reviewboard.mozilla.org/r/196248/#review201852
> 
> These comments are for the added tests, previous ones still apply and are
> the reason for clearing the r?

Ah, I missed that you had already cleared it. Still good feedback I suppose :-)
Sorry for not sending this earlier. Some tests are still missing but here is a first part of it.
Comment on attachment 8924540 [details]
Bug 1324548 - Add context.createMediaStreamTrackSource().

https://reviewboard.mozilla.org/r/195796/#review216786

::: dom/webidl/AudioContext.webidl:31
(Diff revision 3)
>      MediaElementAudioSourceNode createMediaElementSource(HTMLMediaElement mediaElement);
>  
>      [NewObject, Throws, UnsafeInPrerendering]
>      MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream);
>  
> -    // Bug 1324548: MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (AudioMediaStreamTrack mediaStreamTrack);
> +	[NewObject, Throws, UnsafeInPrerendering]

indentation.
Attachment #8924540 - Flags: review?(amarchesini) → review+
Comment on attachment 8920050 [details]
Bug 1324548 - Add MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/191040/#review216784

::: dom/locales/en-US/chrome/dom/dom.properties:106
(Diff revision 3)
>  # LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
>  MediaElementAudioSourceNodeCrossOrigin=The HTMLMediaElement passed to createMediaElementSource has a cross-origin resource, the node will output silence.
>  # LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
>  MediaStreamAudioSourceNodeCrossOrigin=The MediaStream passed to createMediaStreamSource has a cross-origin resource, the node will output silence.
> +# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
> +MediaStreamTrackAudioSourceNodeCrossOrigin=The MediaStreamTrack passed to createMediaStreamTrackSource is a cross-origin resource, the node will output slence.

silence

::: dom/webidl/MediaStreamTrackAudioSourceNode.webidl:7
(Diff revision 3)
> +/* This Source Code Form is subject to the terms of the Mozilla Public
> + * License, v. 2.0. If a copy of the MPL was not distributed with this file,
> + * You can obtain one at http://mozilla.org/MPL/2.0/.
> + *
> + * The origin of this IDL file is
> + * https://webaudio.github.io/web-audio-api/

Maybe use this URL: https://webaudio.github.io/web-audio-api/#MediaStreamTrackAudioSourceNode
Attachment #8920050 - Flags: review?(amarchesini) → review+
Comment on attachment 8920050 [details]
Bug 1324548 - Add MediaStreamTrackAudioSourceNode.

https://reviewboard.mozilla.org/r/191040/#review217030

What you have here is good for r+, but I'd like to see two more tests first:
- That GC works after the input track ends but not before.
- That we block cross-origin audio, both on creation of the node and after a dynamic change in origin at the input track.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.h:96
(Diff revision 3)
> +    TrackListener(MediaStreamTrackAudioSourceNode* aNode)
> +    {
> +      mNode = aNode;
> +    }

TrackListener(aNode) : mNode(aNode) {}

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:12
(Diff revision 3)
> +#include "nsIDocument.h"
> +#include "mozilla/CORSMode.h"

nit: Includes should be sorted. See the coding style on how.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:74
(Diff revision 3)
> +  if (!aMediaStreamTrack) {
> +    aRv.Throw(NS_ERROR_FAILURE);
> +    return;
> +  }

I don't think this is possible. MOZ_ASSERT might be enough.

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:101
(Diff revision 3)
> +  mInputPort = mInputTrack->ForwardTrackContentsTo(outputStream);
> +  PrincipalChanged(mInputTrack); // trigger enabling/disabling of the connector
> +  mInputTrack->AddPrincipalChangeObserver(this);
> +
> +  mInputTrack->AddConsumer(&mTrackListener);
> +

nit: superfluous newline

::: dom/media/webaudio/MediaStreamTrackAudioSourceNode.cpp:108
(Diff revision 3)
> +
> +void
> +MediaStreamTrackAudioSourceNode::Destroy()
> +{
> +  if (mInputTrack) {
> +    mInputTrack->RemovePrincipalChangeObserver(this);

Also mInputTrack->RemoveConsumer(&mTrackConsumer).

It's stored as a WeakPtr in the MediaStreamTrack so it's not strictly necessary, but it's good form and expected of users.
Attachment #8920050 - Flags: review?(apehrson)
Comment on attachment 8924540 [details]
Bug 1324548 - Add context.createMediaStreamTrackSource().

https://reviewboard.mozilla.org/r/195796/#review217034
Attachment #8924540 - Flags: review?(apehrson) → review+
Paul: are these patches still relevant? If so can you review them please?
Flags: needinfo?(padenot)
MozReview-Commit-ID: IdVqfNigMyu
MozReview-Commit-ID: 5rvz0K7Hp0q
MozReview-Commit-ID: IdVqfNigMyu
Attachment #9035073 - Attachment is obsolete: true
Attachment #9035361 - Attachment is obsolete: true
Assignee: leo.paquet → padenot
Flags: needinfo?(padenot)
Attachment #8920050 - Flags: review?(padenot)
Attachment #8924540 - Flags: review?(padenot)
Attachment #9035569 - Attachment is obsolete: true
Pushed by padenot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8e6135544e33
Tests for MediaStreamTrackAudioSourceNode. r=pehrsons
https://hg.mozilla.org/integration/autoland/rev/fda93e03e469
Add MediaStreamTrackAudioSourceNode. r=pehrsons,baku
Type: defect → enhancement
Attachment #9035072 - Attachment description: Bug 1324548 - Add MediaStreamTrackAudioSourceNode. r?pehrsons → Bug 1324548 - Add MediaStreamTrackAudioSourceNode. r?pehrsons,baku

There are also these android failures https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=237904963&repo=autoland&lineNumber=2180

[task 2019-04-03T17:42:12.401Z] 17:42:12 INFO - id: emulator-5554
[task 2019-04-03T17:42:12.402Z] 17:42:12 INFO - Test root: /sdcard/tests
[task 2019-04-03T17:42:12.402Z] 17:42:12 INFO - Buffered messages finished
[task 2019-04-03T17:42:12.402Z] 17:42:12 INFO - SUITE-END | took 1418s
[task 2019-04-03T17:42:12.420Z] 17:42:12 ERROR - Return code: 1
[task 2019-04-03T17:42:12.420Z] 17:42:12 INFO - TinderboxPrint: mochitest-media<br/>4652/<em class="testfail">1</em>/54
[task 2019-04-03T17:42:12.420Z] 17:42:12 INFO - ##### mochitest-media log ends
[task 2019-04-03T17:42:12.420Z] 17:42:12 WARNING - # TBPL WARNING #
[task 2019-04-03T17:42:12.420Z] 17:42:12 WARNING - setting return code to 1
[task 2019-04-03T17:42:12.421Z] 17:42:12 WARNING - The mochitest-media suite: mochitest-media ran with return status: WARNING

Pushed by padenot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7aefaab277fe
Tests for MediaStreamTrackAudioSourceNode. r=pehrsons
https://hg.mozilla.org/integration/autoland/rev/055578135fba
Add MediaStreamTrackAudioSourceNode. r=pehrsons,baku
Pushed by padenot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/397a9577d91b
Tests for MediaStreamTrackAudioSourceNode. r=pehrsons
https://hg.mozilla.org/integration/autoland/rev/8097b8fdb9bc
Add MediaStreamTrackAudioSourceNode. r=pehrsons,baku
https://hg.mozilla.org/integration/autoland/rev/2bb8fcac7edf
Adjust WPT expectations

Documentation updates:

Regressions: 1594136
Depends on: 1596433
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: