Closed
Bug 1425618
Opened 7 years ago
Closed 7 years ago
{offerToReceiveAudio: false} and {offerToReceiveVideo: false} stopped working.
Categories
(Core :: WebRTC: Signaling, defect, P2)
Tracking
()
VERIFIED
FIXED
mozilla60
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox57 | --- | unaffected |
firefox58 | --- | unaffected |
firefox59 | + | verified |
firefox60 | + | verified |
People
(Reporter: jib, Assigned: bwc)
References
Details
(Keywords: dev-doc-complete, regression)
Attachments
(2 files)
A recent spec change [1] let's us support this legacy case after all.
We should get this in to 59 to avoid regressing support.
[1] https://github.com/w3c/webrtc-pc/pull/1693
[2] https://github.com/webrtc/adapter/pull/729/files
Reporter | ||
Updated•7 years ago
|
tracking-firefox59:
--- → ?
Keywords: regression
Reporter | ||
Updated•7 years ago
|
Assignee: nobody → docfaraday
Reporter | ||
Updated•7 years ago
|
Rank: 11
Priority: -- → P2
Comment 1•7 years ago
|
||
Tracking for 59, as long as we can land the fix(es) by Jan 10 it should be ok for 59.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Reporter | ||
Comment 4•7 years ago
|
||
mozreview-review |
Comment on attachment 8937816 [details]
Bug 1425618 - Part 1: Test-cases for offerToReceiveX: false.
https://reviewboard.mozilla.org/r/208504/#review214692
::: dom/media/tests/mochitest/test_peerConnection_transceivers.html:369
(Diff revision 1)
> + for (let kind of kinds) {
> + if (kind == "audio") {
> + options.offerToReceiveAudio = false;
> + } else if (kind == "video") {
> + options.offerToReceiveVideo = false;
> + }
> + }
Idea: Only because you have this pattern twice in this function, we could do:
let keys = {audio: "offerToReceiveAudio", video: "offerToReceiveVideo"};
// Test offerToReceive: true
for (let kind of kinds) {
options[keys[kind]] = true;
}
// Test offerToReceive: false
for (let kind of kinds) {
options[keys[kind]] = false;
}
Seems safer against typos.
Attachment #8937816 -
Flags: review?(jib) → review+
Reporter | ||
Comment 5•7 years ago
|
||
mozreview-review |
Comment on attachment 8937817 [details]
Bug 1425618 - Part 2: Make offerToReceiveX: false unset the send bit on transceivers.
https://reviewboard.mozilla.org/r/208506/#review214694
::: dom/media/PeerConnection.js:836
(Diff revision 1)
> - if (options.offerToReceiveAudio === false) {
> - this.logWarning("offerToReceiveAudio: false is ignored now. If you " +
> - "want to disallow a recv track, use " +
> - "RTCRtpTransceiver.direction");
> + this._transceivers
> + .filter(transceiver => {
> + return (options.offerToReceiveVideo === false &&
> + transceiver.receiver.track.kind == "video") ||
> + (options.offerToReceiveAudio === false &&
> + transceiver.receiver.track.kind == "audio");
> + })
> + .forEach(transceiver => {
Nit: For simple x => expression transforms, it seems more readable to omit return and {}:
this._transceivers
.filter(transceiver =>
(options.offerToReceiveVideo === false &&
transceiver.receiver.track.kind == "video") ||
(options.offerToReceiveAudio === false &&
transceiver.receiver.track.kind == "audio"))
.forEach(transceiver => {
or with destructuring:
this._transceivers
.filter(({receiver: {track: kind}}) =>
(options.offerToReceiveVideo === false && kind == "video") ||
(options.offerToReceiveAudio === false && kind == "audio"))
.forEach(transceiver => {
Attachment #8937817 -
Flags: review?(jib) → review+
Reporter | ||
Comment 6•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8937817 [details]
Bug 1425618 - Part 2: Make offerToReceiveX: false unset the send bit on transceivers.
https://reviewboard.mozilla.org/r/208506/#review214694
> Nit: For simple x => expression transforms, it seems more readable to omit return and {}:
>
> this._transceivers
> .filter(transceiver =>
> (options.offerToReceiveVideo === false &&
> transceiver.receiver.track.kind == "video") ||
> (options.offerToReceiveAudio === false &&
> transceiver.receiver.track.kind == "audio"))
> .forEach(transceiver => {
>
> or with destructuring:
>
> this._transceivers
> .filter(({receiver: {track: kind}}) =>
> (options.offerToReceiveVideo === false && kind == "video") ||
> (options.offerToReceiveAudio === false && kind == "audio"))
> .forEach(transceiver => {
or
this._transceivers
.filter(({receiver: {track: kind}}) =>
(options[{audio: "offerToReceiveAudio", video: "offerToReceiveVideo"}[kind]] === false))
.forEach(transceiver => {
Assignee | ||
Comment 7•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8937817 [details]
Bug 1425618 - Part 2: Make offerToReceiveX: false unset the send bit on transceivers.
https://reviewboard.mozilla.org/r/208506/#review214694
> or
>
> this._transceivers
> .filter(({receiver: {track: kind}}) =>
> (options[{audio: "offerToReceiveAudio", video: "offerToReceiveVideo"}[kind]] === false))
> .forEach(transceiver => {
Personally, I have a harder time reading those, but I guess I'm not accustomed to destructuring yet.
Assignee | ||
Comment 8•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8937816 [details]
Bug 1425618 - Part 1: Test-cases for offerToReceiveX: false.
https://reviewboard.mozilla.org/r/208504/#review214692
> Idea: Only because you have this pattern twice in this function, we could do:
>
> let keys = {audio: "offerToReceiveAudio", video: "offerToReceiveVideo"};
>
> // Test offerToReceive: true
> for (let kind of kinds) {
> options[keys[kind]] = true;
> }
>
> // Test offerToReceive: false
> for (let kind of kinds) {
> options[keys[kind]] = false;
> }
>
> Seems safer against typos.
I've tweaked this to be better.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 11•7 years ago
|
||
Pushed by bcampen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/50619d5809b4
Part 1: Test-cases for offerToReceiveX: false. r=jib
https://hg.mozilla.org/integration/autoland/rev/403655330301
Part 2: Make offerToReceiveX: false unset the send bit on transceivers. r=jib
Comment 12•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/50619d5809b4
https://hg.mozilla.org/mozilla-central/rev/403655330301
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
Updated•7 years ago
|
status-firefox57:
--- → unaffected
status-firefox58:
--- → unaffected
status-firefox-esr52:
--- → unaffected
Comment 13•7 years ago
|
||
According to this https://bugzilla.mozilla.org/show_bug.cgi?id=1433953#c6 we haven't fixed this properly.
Fiddle to repro: https://jsfiddle.net/jib1/1h8mr8fw/
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Updated•7 years ago
|
status-firefox60:
--- → affected
tracking-firefox60:
--- → ?
Assignee | ||
Comment 14•7 years ago
|
||
I think I know what is going on here...
Assignee | ||
Comment 15•7 years ago
|
||
Comment 16•7 years ago
|
||
Tracking for 59, so that we make sure to follow up with uplift to beta if this is fixed & verified in 60.
Updated•7 years ago
|
Target Milestone: mozilla59 → ---
Comment 17•7 years ago
|
||
The fix for the problem landed over in bug 1435013, because mozreview is a pain for re-opened bugs. Sorry for not updating the status properly here.
Status: REOPENED → RESOLVED
Closed: 7 years ago → 7 years ago
Resolution: --- → FIXED
Updated•7 years ago
|
Target Milestone: --- → mozilla60
Comment 18•7 years ago
|
||
Verified as fixed with Firefox 59 beta 10 and latest Nightly 60.0a1 under Win 10 64-bit, Ubuntu 14.04032-bit and Mac OS X 10.13.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
Updated•7 years ago
|
Keywords: dev-doc-needed
Comment 19•7 years ago
|
||
Since this was uplifted to 59, there's nothing to report in Firefox 60 for developers -- however, I did add these properties to the docs for createOffer()'s options, since they were missing.
Keywords: dev-doc-needed → dev-doc-complete
You need to log in
before you can comment on or make changes to this bug.
Description
•