WebRTC tests are leaking heavy resources |
||||||||
Issue descriptionIn both external/wpt/webrtc/ and fast/peerconnection/ we are consistently leaking RTCPeerConnection and MediaStreamTrack resources. PCs need to be closed with close() and tracks need to stopped with stop() or else they leak, even if there is no reference to them. These resources may not be GC'd even if we navigate to another test page, I think? In Chrome we can hit the RTCPeerConnection limit and tests flakily fail due to constructor throwing an exception. Other flakes may or may not be possible. According to fippo, the external/wpt/webrtc/ leakages causes problems on Travis, and is even worse when running WPT on Edge. We could wrap promise_test, RTCPeerConnection creation and getUserMedia calls in something that attaches test cleanup logic. Here's an example: https://github.com/webrtc/adapter/blob/master/test/getusermedia-mocha.js
,
Apr 25 2018
ok, done: https://github.com/fippo/web-platform-tests/blob/wip/webrtc/RTCPeerConnection-addTrack.https.html i got a bit confused as apparently mixing test() and promise_test() was showing unexpected peerconnections. If we want to move forward on this we need to make sure that we talk to someone who understands testharness about whether it makes guarantees that only a single test will be executed at a time.
,
Apr 25 2018
I found a statement in the testharness.js documentation some time ago that asserted that async_test would be executed overlapping with other tests, while promise_test would not. And the crash I was working around (caused by the overlap of tests) disappeared when I changed to promise_test, so I think it was true.
,
Apr 25 2018
from foolip: test is synchronous, async_test as asynchronous and run in parallel, promise_test is asynchronous and runs serially -- for webrtc we probably want promise_test. Note for me: the current wrapper might end up executing the setup code sequentially. Needs to be checked if that is ok.
,
Apr 25 2018
idea from jib: use this wrapper to just assert that clean up happens. the main argument against doing a magic cleanup is that magic is bad when people try to copy the magic without understanding it. (cargo cult anyone?)
,
Apr 26 2018
that would be a framework that does a test of the test? how meta. The spec doesn't require that non-closed PCs or tracks are left lying around forever, so it would be appropriate to test that they're gone, not that "close" had been called. It would also require that we fix all the tests when switching to the wrapper. Adding soareschen@ to CC on bug.
,
Apr 26 2018
Agree that this need to be fixed. The biggest challenge is that this is a significant refactoring as it touches almost every test out there, and we need to make sure that the test results remain the same after refactoring. Dealing with rebases on new commits during refactoring is also problematic. I did a pull request back in December here: https://github.com/w3c/web-platform-tests/pull/8542, but it quickly accumulate conflicts and I lost it after getting occupied with some other matters. :( To fix this we need to first agree on a convention for cleaning up, e.g.: - webrtc_test wrapper on promise_test - makePeerConnection(t, options) wrapper on PeerConnection constructor - Manual cleanup with t.add_cleanup - etc Next we need a transition plan on how refactor existing tests. - Many small PRs vs one big PR? - This could cause conflicts on the other unmerged PRs out there. - The convention need to be documented so that new tests will use the same pattern. Would be great if someone can lead the refactoring effort.
,
Apr 26 2018
I think we need to decide whether this is a good test:
promise_test(async () => {
const caller = new RTCPeerConnection();
const callee = new RTCPeerConnection();
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
const [track] = stream.getTracks();
const sender = caller.addTrack(track, stream);
await doSignalingHandshake(caller, callee);
const statsReport = await sender.getStats();
validateStatsReport(statsReport);
assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
}, 'sender.getStats() via addTrack should return stats report containing outbound-rtp stats');
(from https://github.com/w3c/web-platform-tests/blob/master/webrtc/RTCRtpSender-getStats.https.html#L53)
it lacks cleanup but is very readable. And without looking at the CL I doubt any of the reviewers wanted cleanup.
I would prefer this style over
promise_test(async (t) => {
const caller = new RTCPeerConnection();
const callee = new RTCPeerConnection();
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
const [track] = stream.getTracks();
t.add_cleanup(() => {
caller.close();
callee.close();
track.stop();
});
const sender = caller.addTrack(track, stream);
await doSignalingHandshake(caller, callee);
const statsReport = await sender.getStats();
validateStatsReport(statsReport);
assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
}, 'sender.getStats() via addTrack should return stats report containing outbound-rtp stats');
I think its possible to do a jscodeshift codemod that would add cleanup like this:
promise_test(async (t) => {
const caller = new RTCPeerConnection();
t.add_cleanup(() => caller.close());
const callee = new RTCPeerConnection();
t.add_cleanup(() => callee.close());
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = caller.addTrack(track, stream);
await doSignalingHandshake(caller, callee);
const statsReport = await sender.getStats();
validateStatsReport(statsReport);
assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
}, 'sender.getStats() via addTrack should return stats report containing outbound-rtp stats');
but that is quite ugly.
I don't think this would work:
promise_test(async (t) => {
const caller = new RTCPeerConnection();
const callee = new RTCPeerConnection();
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
const [track] = stream.getTracks();
const sender = caller.addTrack(track, stream);
await doSignalingHandshake(caller, callee);
const statsReport = await sender.getStats();
validateStatsReport(statsReport);
assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
caller.close();
callee.close();
track.stop();
}, 'sender.getStats() via addTrack should return stats report containing outbound-rtp stats');
as this would leak resources if the assertion fails.
,
Apr 26 2018
I will be adding a lot of new tests for transceivers very soon. I could try to come up with a suggestion for how to do cleanup related to that and if we're in agreement it could be treated as a canonical example of how to do it for other tests. I would prefer explicit "clean this up" such as... const caller = new RTCPeerConnection(); t.add_cleanup(() => caller.close()); ... or light weight helper methods to more heavy APIs obscuring what happens behind the scenes. What a test does should be as explicit as possible without being bloated. I do not like the fact that if you forget to clean something up, there is nothing that fails. "Tests for the tests", huh... I wonder if it would be possible to run these tests with a flag that made it crash if WebRTC resources are leaked without introducing new JS APIs.
,
Apr 26 2018
I suggest converting one or a few tests per PR once we've figured out what we want to do.
,
Apr 26 2018
There is code inside of the RTCPeerConnection that is called when GC attempts to clean it up that says "no, I'm not ready to be cleaned up because I'm not closed yet". The case should be similar for MediaStreamTrack and stop(). If we're lucky, this code is triggered between every test page (don't know, have to check), and it would be trivial to say "if ensurePCsAreClosedOnGC flag is on, CHECK that we are closed". And we run webrtc tests with this otherwise false flag. What do you think about this crazy idea, hta@?
,
Apr 26 2018
RTCPeerConnection-many would break, it does GC internally :-) I was thinking of fixing the underlying problem .... "if there are no references to me, and I'm asked if I'm closed, reply "yes" and close myself".
,
Apr 26 2018
Even if there are no references to the PC, there could be event listeners wired up to it. The event listeners cannot be cleared, and if an event fires that would "revive" the PC: Something happens (event fires), and the event carries with it a reference to it. Perhaps ontrack, ondatachannel or oniceconnectionstatechange will happen.
Nothing referencing the PC is not sufficient to say that the application is done with it. Perhaps we only want to close the PC if oniceconnectionstatechange fires with state "disconnected"?
let pc = new RTCPeerConnection();
pc.oniceconnectionstatechange = e => {
let targetPc = e.target;
if (targetPc.iceconnnectionstate == 'disconnected')
targetPc.close();
}
/* set up other event listeners that might be interesting */
/* set up a connection with pc */
// Only do stuff in response to events so we don't need the pc reference anymore
// despite not being done with the PC.
pc = null;
,
Apr 26 2018
Well ontrack etc won't fire without setRemoteDescription, but we can always monitor if the connection gets disconnected, and until that happens we may be sending/receiving audio/video and don't need to have any explicit reference to the PC in the application.
,
Apr 26 2018
Hmh, sending/receiving audio/video might mean that there is still a reference to the PC (e.g. <video> -> track -> PC), but you might set up a connection that doesn't do anything interesting except for monitoring when the connection breaks. We could say that we don't care about such uses, but I'm not sure what the spec says?
,
Apr 27 2018
I would count attached handlers as "references" for this purpose. If we're sending / receiving audio/video, there's attached tracks, which should also count as "references"; if there's none, the audio/video isn't doing anything useful anyway, so why not close? Of course a group of handlers & tracks & PCs with internal references need to be collected - that's what mark-and-sweep garbage collectors are good at, but it's hard for any single object to make decisions on that basis.
,
Apr 27 2018
If event handlers count as references then clearing all handlers suddenly become part of cleanup logic, just close() wouldn't cut it, that would be a regression.
// This would leak.
let pc = new RTCPeerConnection();
pc.ontrack = e => {}; // Handler has reference.
pc.close();
pc = null;
I think we need to either...
1. Be able to tell the difference between "forgot to call close" and legitimate cases where events might fire and we do want to listen for them (e.g. waiting for iceconnectionstatechange).
2. Ensure that tests don't leak.
If we solve 1) we ensure no web page leaks and 2) would not be needed, but I don't think there is a spec-compliant way to do this (except for edge cases, i.e. we know ontrack won't fire if nothing can call setRemoteDescription, etc).
Short of solving 1), my suggestion for 2) is still to have a flag that makes the layout test crash if unable to GC the PC.
,
Apr 27 2018
ou're right. Handlers can't be considered to have references to the PC, or Bad Things Happen. So we can't auto-close a PC unless it can't cause legitimate events on its existing handlers. And the pc even has an onclose handler, so closing in gc would be observable gc, which is not considered legitimate.
,
May 2 2018
Back to the issue's subject:
My favorite solution is to do something like this:
Define webrtc_test as a subclass of promise_test (ok, it's not a class, but let's imagine...). The test would allow the following code:
webrtc_test(async t => {
pc = t.getPeerConnection();
track = t.getTrack();
// do stuff
}, 'Test that doesn't test constructors for RTCPeerConnection or MediaStreamTrack');
and "pc" would close and "track" would be stopped, but objects created by direct operations under "do stuff" would not be affected, and the APIs for "pc" and "track" would remain unchanged.
I think that's the least invasive way of rewriting the tests, even though it requires us to rewrite all of them a bit.
,
May 2 2018
Considering this only works with objects created initially, so there still is a need for an API to mark something to be cleaned up, and different tests have different number of PCs and this obscures what's going on, how about a method that is called?
let pc1 = t.needsCleanup(new RTCPeerConnection());
let pc2 = t.needsCleanup(new RTCPeerConnection());
let stream = await t.needsCleanup(navigator.mediaDevices.getUserMedia({audio:true});
pc1.addTrack(stream.getTracks()[0]);
pc2.ontrack = e => {
let remoteTrack = t.needsCleanup(e.track);
...
};
... O/A exchange ...
This does not obscure what the test is doing, does not assume how many PCs or tracks we want, and makes the logic the same whether it's a local or remote track.
t.needsCleanup(arg) can be defined as follows:
- If arg instanceof RTCPeerConnection, add cleanup for closing it.
- If arg instanceof MediaStream, add cleanup for looping through tracks and stopping them.
- If arg instanceof MediaStreamTrack, add cleanup for stopping it.
- If arg is a promise, run the steps above for the value that the promise is resolved with.
,
May 2 2018
t.getBlah() would not work for remote tracks is why we still need an explicit "clean this up" method.
,
May 7 2018
so I have codemods to do transform
promise_test(async t => {
const pc = new RTCPeerConnection(opts);
// do something
}, '...);
to either https://github.com/fippo/webrtc-codemods/blob/wpt/wpt-rtcpeerconnection-no-helpers:
promise_test(async t => {
const pc = new RTCPeerConnection(opts);
t.add_cleanup(() => pc.stop());
// do something
}, '...');
or using a helper (https://github.com/fippo/webrtc-codemods/blob/wpt/wpt-rtcpeerconnection)
promise_test(async t => {
pc = t.getRTCPeerConnection(opts);
}, '...');
We have a minor issue because some of the tests don't pass t but we can have another codemod to fix that (find all promise_test or async tests which have an empty list of arguments)
,
May 8 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ae6a05c5388e96c3e430d385c38e53e8bd61760d commit ae6a05c5388e96c3e430d385c38e53e8bd61760d Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue May 08 06:47:32 2018 webrtc wpt: pass test in promise_test and async_test passes the test argument in promise_test and async_test so it can be used to add cleanup. Change done with a jscodeshift codemod that detects there were no arguments to promise_test (or async_test): export default function transformer(file, api) { const j = api.jscodeshift; return j(file.source) // .find(j.CallExpression) .find(j.CallExpression, {callee: {type: 'Identifier', name: 'promise_test'}}) .forEach(path => { if (path.value.arguments[0].params.length === 0) { path.value.arguments[0].params.push(j.identifier('t')); } }) .toSource(); }; BUG= 836871 Change-Id: Ie7dd7fb0dd8a4da6c4c00f3616fd41d1d47854ef Reviewed-on: https://chromium-review.googlesource.com/1047674 Reviewed-by: Harald Alvestrand <hta@chromium.org> Commit-Queue: Harald Alvestrand <hta@chromium.org> Cr-Commit-Position: refs/heads/master@{#556711} [modify] https://crrev.com/ae6a05c5388e96c3e430d385c38e53e8bd61760d/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getIdentityAssertion.html [modify] https://crrev.com/ae6a05c5388e96c3e430d385c38e53e8bd61760d/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getContributingSources.https.html [modify] https://crrev.com/ae6a05c5388e96c3e430d385c38e53e8bd61760d/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getStats.https.html
,
May 8 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3055ddf805d4bd4923d9702a698a8556a91874f9 commit 3055ddf805d4bd4923d9702a698a8556a91874f9 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue May 08 14:43:46 2018 webrtc wpt: pass test function in more tests passes the test argument in promise_test and async_test so it can be used to add cleanup. followup on https://chromium-review.googlesource.com/c/chromium/src/+/1047674 using the same codemod but a better, non-regexp way to extract the script tag content. BUG= 836871 Change-Id: I41905ce25e22121a6e8b53d37af86b073e020b5c Reviewed-on: https://chromium-review.googlesource.com/1049865 Reviewed-by: Harald Alvestrand <hta@chromium.org> Commit-Queue: Harald Alvestrand <hta@chromium.org> Cr-Commit-Position: refs/heads/master@{#556795} [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCDTMFSender-insertDTMF.https.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCIceTransport.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-canTrickleIceCandidates.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-peerIdentity.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setDescription-transceiver.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html [modify] https://crrev.com/3055ddf805d4bd4923d9702a698a8556a91874f9/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-getStats.https.html
,
May 8 2018
CL for the t.add_cleanup(() => pc.close()) way: https://chromium-review.googlesource.com/#/c/chromium/src/+/1049983 Leaving it as WIP until we agree this is the direction we want to move, this will likely require a rebase due to its size (51 files changed, 395 insertions(+), 45 deletions(-)) This sometimes adds an extra blank line between the new RTCPeerConnection and the add_cleanup. This happens when the new statement is the last in a block, I haven't found a way around this yet. Can do manual replace before merging. Also this sometimes eats dangling blank lines at the end of functions but that seems ok. The codemod can be run repeatedly and will ignore any functions that already have a t.add_cleanup. I should probably change this to "does not call pc.close" but this seems good enough.
,
May 8 2018
Great. Thanks fippo! This looks good to me.
,
May 14 2018
The CL adds "t.add_cleanup(() => pc.close());" after PC creations. That approach looks good to me too. I'll formally review the CL in a bit.
,
May 14 2018
Thanks fippo :) cool tool to be able to replace all of them like that
,
May 14 2018
the failures are pretty odd, for example from https://logs.chromium.org/v/?s=chromium%2Fbuildbucket%2Fcr-buildbucket.appspot.com%2F8946565084924971648%2F%2B%2Fsteps%2Fwebkit_layout_tests_on_Intel_GPU_on_Mac__with_patch__on_Mac-10.12.6%2F0%2Flogs%2Foutdir_json%2F0 "8/layout-test-results/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-actual.txt": { "contents[ :512]": "This is a testharness.js-based test.\nPASS setRemoteDescription with invalid type and invalid SDP should reject with TypeError\nFAIL setRemoteDescription() with invalid SDP and stable state should reject with InvalidStateError assert_throws: function \"function() { throw e }\" threw object \"OperationError: Failed to parse SessionDescription. invalid Expect line: v=\" that is not a DOMException InvalidStateError: property \"code\" is equal to 0, expected 11\nFAIL Calling setRemoteDescription() again after one round ", "contents[-512:]": "nalingstatechange event for Calling setRemoteDescription() again after one round of remote-offer/local-answer should succeed assert_equals: New signaling state is different from expected. expected \"have-remote-offer\" but got \"closed\"\nFAIL Test onsignalingstatechange event for Switching role from offerer to answerer after going back to stable state should succeed assert_equals: New signaling state is different from expected. expected \"have-remote-offer\" but got \"closed\"\nHarness: the test ran to completion.\n\n", "sha1": "2619ef49a1580be2cce0bff35e6678a5e3946c9f", "size": 1459, "type": "text" }, In particular this is odd: New signaling state is different from expected. expected \"have-remote-offer\" but got \"closed\"\nHarness: the test ran to completion. I could reproduce this locally and the backtrace was interesting: at Test.pc.onsignalingstatechange.t.step_func (http://localhost:8000/webrtc/RTCPeerConnection-helper.js:192:7) at Test.pc.onsignalingstatechange.t.step_func (http://localhost:8000/webrtc/RTCPeerConnection-helper.js: https://github.com/w3c/web-platform-tests/blob/master/webrtc/RTCPeerConnection-setRemoteDescription.html#L103 The timing behaviour of executing an async test inside a promise_test is probably quite undefined. AFAICS the async test continues to run after the promise test. Without closing the peerconnection it times out because the test itself throws inside generateOffer since in pre-transceiver behaviour createOffer is stateless and does not permanently create an m-line. I suspect the other SLD/SRD failures are because of this too. I can not see where the harness_status.message = The RTCPeerConnection's signalingState is 'closed'. for RTCPeerConnection-iceGatheringState.html comes from. drive-by: it does (incorrectly) assert_equals(iceTransport.gatheringState, 'complete' -- the iceTransports gatheringstate will go to complete*d*.
,
May 14 2018
I don't believe this is sufficient. Preventing to leak resources requires converting all `async_test` to `promise_test`. Otherwise, all `async_test` will run at the same time which means that if there are 100 test cases, there will be 100 RTCPeerConnection instances active at the same time. I've been through that process (see https://github.com/w3c/web-platform-tests/pull/10468) and it not only requires porting from `async_test` to `promise_test` but also some changes to testharness.js (PR: https://github.com/w3c/web-platform-tests/pull/10933) and the timeout handling. 1. Convert `async_test` to `promise_test` by awaiting the "done" promise at the end: `await t.done_promise`. This fixes the problem mentioned by fippo in comment #29. 2. Add `setup({ explicit_timeout: true });` to the top of each test file to disable global timeouts. Instead, add an explicit local timeout to each test case. This is required because a `promise_test` with no explicit local timeout prevents other tests from running once the global timeout fires. If you agree, be aware of the concerns raised in https://github.com/w3c/web-platform-tests/pull/10933 and please take part in the discussion. Furthermore, you can omit data channel related files since I've changed all of them in a pending PR: https://github.com/w3c/web-platform-tests/pull/10468 (review welcome!)
,
May 14 2018
,
May 16 2018
so what do we do about #29? Remove the async subtests? They test the signalingstatechange behaviour so should be in a file with that name.
,
May 16 2018
The helper shouldn't be executing a test, period. There needs to be tests that test the sequence of states (we have known bugs here), but they shouldn't be done by nesting tests.
,
May 16 2018
looks like jib is taking care of this at least in one case: https://bugzilla.mozilla.org/show_bug.cgi?id=1461563 https://github.com/w3c/web-platform-tests/pull/11031 \o/
,
May 16 2018
And new tests using cleanup: https://chromium-review.googlesource.com/c/chromium/src/+/1057249
,
May 28 2018
,
May 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e8832df8791991c9d462bd6eac1647a2be6fba55 commit e8832df8791991c9d462bd6eac1647a2be6fba55 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Wed May 30 15:43:04 2018 webrtc wpt: remove test_state_change_event removes test_state_change_event which initiates a "subtest" using a shared peerconnection resource. BUG= 836871 Change-Id: I692bb5826c83d0d36d4169858ab2872d41c03b30 Reviewed-on: https://chromium-review.googlesource.com/1074696 Commit-Queue: Henrik Boström <hbos@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#562844} [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-createOffer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-helper.js [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-pranswer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-pranswer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-answer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-answer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-offer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-offer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-pranswer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-pranswer.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt [modify] https://crrev.com/e8832df8791991c9d462bd6eac1647a2be6fba55/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt
,
May 30 2018
so the remaining failure for add_cleanup is an intermittent harness failure: https://isolateserver.appspot.com/browse?namespace=default-gzip&digest=228019b77b830c024c70bc9584576f7591ee4ce3&as=RTCPeerConnection-iceGatheringState-diff.txt Uncaught (in promise) DOMException: The RTCPeerConnection's signalingState is 'closed'. localPc.addEventListener.event @ RTCPeerConnection-helper.js:233 which is a in-flight addIceCandidate. From jgrahams comment in https://github.com/web-platform-tests/wpt/pull/11031#discussion_r188749618 I think the helper would need to run in a step function to catch this and avoid flakyness. Since I want to avoid rewriting this helper *everywhere* right now I'd suggest adding a pc.signalingState !== closed check to the helper.
,
May 31 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d1b660a741bcaa40d2500bcc2bafa2f644f3f742 commit d1b660a741bcaa40d2500bcc2bafa2f644f3f742 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Thu May 31 11:54:02 2018 webrtc wpt: check signalingState before addIceCandidate in order to avoid issues with calling addIceCandidate when the peerconnection is closed BUG= 836871 Change-Id: I698f5365a4e1b72a812fbc5e3adf5e51586718a6 Reviewed-on: https://chromium-review.googlesource.com/1079550 Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Commit-Queue: Henrik Boström <hbos@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#563196} [modify] https://crrev.com/d1b660a741bcaa40d2500bcc2bafa2f644f3f742/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-helper.js
,
May 31 2018
replicating discussion from the big CL here. hbos found a case where the codemod added pc.close() even when the peerconnection was explicitly closed. This is a weakness of the codemod. This happens in a couple of other places as well where the explicitly close -- easy to find by grepping for .close() | grep -v add_cleanup. We should still have the add_cleanup for consistency as well as catching the case where an exception is thrown.
,
May 31 2018
pc.close is supposed to be harmless if you call it multiple times, so that shouldn't be a Big Deal. Only issue is if the cleanup's pc.close is called before the pc.close in the test itself, but that shouldn't happen now that we're not spawning subtests, right?
,
May 31 2018
all those subtests were... terminated :-)
,
May 31 2018
Cleanup should always happen after the test so it should be fine. We should always assume that some unexpected exception is thrown and aborts the test, even for operations that shouldn't fail, so adding cleanup-close is the way to go.
,
Jun 8 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/69af6f380cae26764e8c82a58c145fcf3aff89d3 commit 69af6f380cae26764e8c82a58c145fcf3aff89d3 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Fri Jun 08 09:06:46 2018 webrtc wpt: add cleanup to close peerconnections adds a pc.close() to all RTCPeerConnections in promise_test and async_test. This is codemod-powered by this: https://github.com/fippo/webrtc-codemods/blob/e844b2467cbb76a231c113366b2451cf248f53bc/wpt-rtcpeerconnection-no-helpers BUG= 836871 Change-Id: Iee84ef938bf477a55612b6012c6de464c6aea55b Reviewed-on: https://chromium-review.googlesource.com/1049983 Commit-Queue: Henrik Boström <hbos@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#565591} [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCDTMFSender-insertDTMF.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCDataChannel-id.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCDtlsTransport-getRemoteCertificates.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCIceTransport.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addIceCandidate.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTrack.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-canTrickleIceCandidates.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-connectionState.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-createAnswer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-createDataChannel.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-createOffer-offerToReceive.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-createOffer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-iceConnectionState.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-iceGatheringState.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-ondatachannel.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-onnegotiationneeded.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-ontrack.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-peerIdentity.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-removeTrack.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setDescription-transceiver.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-pranswer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-answer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-offer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-pranswer.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-replaceTrack.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-track-stats.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpParameters-codecs.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpParameters-degradationPreference.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpParameters-encodings.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpParameters-headerExtensions.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpParameters-rtcp.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpParameters-transactionId.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getContributingSources.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getStats.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-getStats.https.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-replaceTrack.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-setParameters.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver-setDirection.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCSctpTransport-constructor.html [modify] https://crrev.com/69af6f380cae26764e8c82a58c145fcf3aff89d3/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCSctpTransport-maxMessageSize.html
,
Jun 8 2018
Wooohooo! \o/
,
Jun 8 2018
Let's do the same for track.stop()? :)
,
Jun 8 2018
yes, GUM and track.stop is next!
,
Jun 8 2018
^ recognition
,
Jun 19 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3aaab5dde5a8d9e72c700077c515efbc6cdfa3ba commit 3aaab5dde5a8d9e72c700077c515efbc6cdfa3ba Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue Jun 19 12:00:36 2018 webrtc wpt: trust getUserMedia to be compliant removes assertions that (unneccesarily) assume getUserMedia returns something else than what was requested BUG= 836871 Change-Id: If8f52f259ea924bdc9ac68a854c34188f3f56cda Reviewed-on: https://chromium-review.googlesource.com/1105528 Reviewed-by: Henrik Boström <hbos@chromium.org> Commit-Queue: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#568407} [modify] https://crrev.com/3aaab5dde5a8d9e72c700077c515efbc6cdfa3ba/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html [modify] https://crrev.com/3aaab5dde5a8d9e72c700077c515efbc6cdfa3ba/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-helper.js [modify] https://crrev.com/3aaab5dde5a8d9e72c700077c515efbc6cdfa3ba/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-removeTrack.https.html [modify] https://crrev.com/3aaab5dde5a8d9e72c700077c515efbc6cdfa3ba/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https.html
,
Jun 25 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/01de4ac266a53eaecd44565a35f8b582a4929868 commit 01de4ac266a53eaecd44565a35f8b582a4929868 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Mon Jun 25 11:16:44 2018 webrtc wpt: make getUserMedia calls await removes the last directly promise-based usage of getUserMedia BUG= 836871 Change-Id: Ib0ef41b58c2fc3930d068d915cb569064db4542d Reviewed-on: https://chromium-review.googlesource.com/1106618 Commit-Queue: Henrik Boström <hbos@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#570005} [modify] https://crrev.com/01de4ac266a53eaecd44565a35f8b582a4929868/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-removeTrack.https.html
,
Jun 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ce98f56501ffbd7258eafd0451bbcd57a5eb2092 commit ce98f56501ffbd7258eafd0451bbcd57a5eb2092 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Wed Jun 27 11:07:30 2018 webrtc wpt: stop tracks returned from getUserMedia stops tracks acquired from getUserMedia BUG= 836871 Change-Id: I828189da35b0c842078cdd4c1b4b38f7e7fbf355 Reviewed-on: https://chromium-review.googlesource.com/1113450 Reviewed-by: Henrik Boström <hbos@chromium.org> Commit-Queue: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#570727} [modify] https://crrev.com/ce98f56501ffbd7258eafd0451bbcd57a5eb2092/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-add-track-no-deadlock.https.html [modify] https://crrev.com/ce98f56501ffbd7258eafd0451bbcd57a5eb2092/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTrack.https.html [modify] https://crrev.com/ce98f56501ffbd7258eafd0451bbcd57a5eb2092/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-removeTrack.https.html [modify] https://crrev.com/ce98f56501ffbd7258eafd0451bbcd57a5eb2092/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html [modify] https://crrev.com/ce98f56501ffbd7258eafd0451bbcd57a5eb2092/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpReceiver-getStats.https.html [modify] https://crrev.com/ce98f56501ffbd7258eafd0451bbcd57a5eb2092/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-getStats.https.html
,
Jun 27 2018
\o/ Anything else that needs to be done before this bug is Fixed?
,
Jun 27 2018
there is a pending CL and there are still tests doing this:
const localStreams = await Promise.all([
navigator.mediaDevices.getUserMedia({audio: true})
navigator.mediaDevices.getUserMedia({audio: true})
]);
(or soon getNoiseStream... leaking captureStream is going to be fun...)
,
Jul 13
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bb69a6a24a7af33d40a0956a12942538d28d993a commit bb69a6a24a7af33d40a0956a12942538d28d993a Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Fri Jul 13 07:46:00 2018 webrtc wpt: remove generateMediaStreamTrack usage removes most usage of generateMediaStreamTrack in favor of await-ing tracks from getUserMedia and stopping them) BUG= 836871 Change-Id: Id84f6cb6b3537faf2bb83332c5d7993550246581 Reviewed-on: https://chromium-review.googlesource.com/1117069 Reviewed-by: Henrik Boström <hbos@chromium.org> Commit-Queue: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#574855} [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCDTMFSender-insertDTMF.https.html [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTrack.https-expected.txt [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTrack.https.html [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getStats.https-expected.txt [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-removeTrack.https-expected.txt [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-removeTrack.https.html [modify] https://crrev.com/bb69a6a24a7af33d40a0956a12942538d28d993a/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-addTrack.https-expected.txt
,
Jul 17
What's left to do here?
,
Jul 17
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ec87d1ca1b51645100ee98b73cc38600d6d71447 commit ec87d1ca1b51645100ee98b73cc38600d6d71447 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue Jul 17 17:12:50 2018 webrtc wpt: rename RTCRtpSender-replaceTrack.html to RTCRtpSender-replaceTrack.https.html BUG= 836871 Change-Id: If259500c8f226ff198586f56a3d711565791b488 Reviewed-on: https://chromium-review.googlesource.com/1140433 Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Commit-Queue: Henrik Boström <hbos@chromium.org> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#575695} [rename] https://crrev.com/ec87d1ca1b51645100ee98b73cc38600d6d71447/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-replaceTrack.https-expected.txt [rename] https://crrev.com/ec87d1ca1b51645100ee98b73cc38600d6d71447/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-replaceTrack.https.html
,
Jul 24
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4bd63c298d4a3933606c6ecdf2c2e1245747d8c6 commit 4bd63c298d4a3933606c6ecdf2c2e1245747d8c6 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue Jul 24 08:14:00 2018 webrtc wpt: close RTCPeerConnection in generateAnswer helper BUG= 836871 Change-Id: Idd0495f538777469043fec30993f5e9399d62c68 Reviewed-on: https://chromium-review.googlesource.com/1140676 Reviewed-by: Henrik Boström <hbos@chromium.org> Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Cr-Commit-Position: refs/heads/master@{#577457} [modify] https://crrev.com/4bd63c298d4a3933606c6ecdf2c2e1245747d8c6/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-helper.js
,
Jul 24
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2923be5550076c6d78b7514340b796bf7278b7b8 commit 2923be5550076c6d78b7514340b796bf7278b7b8 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue Jul 24 09:17:07 2018 webrtc wpt: rename RTCPeerConnection-addTransceiver.html to .https.html BUG= 836871 Change-Id: I16e2419717601e3bb89e83df720eee31cc631edc Reviewed-on: https://chromium-review.googlesource.com/1140781 Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#577466} [rename] https://crrev.com/2923be5550076c6d78b7514340b796bf7278b7b8/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTransceiver.https-expected.txt [rename] https://crrev.com/2923be5550076c6d78b7514340b796bf7278b7b8/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTransceiver.https.html [rename] https://crrev.com/2923be5550076c6d78b7514340b796bf7278b7b8/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-addTransceiver.https-expected.txt
,
Jul 24
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/949034f3c2531f6071ff0b704b3e3e46e5fb542d commit 949034f3c2531f6071ff0b704b3e3e46e5fb542d Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Tue Jul 24 10:23:52 2018 webrtc wpt: remove generateMediaStreamTrack in RTCRtpSender-replaceTrack and add_cleanup BUG= 836871 Change-Id: I175e53f3466719403e5d61a68dc7125bf547e36e Reviewed-on: https://chromium-review.googlesource.com/1140789 Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Reviewed-by: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#577474} [modify] https://crrev.com/949034f3c2531f6071ff0b704b3e3e46e5fb542d/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-replaceTrack.https-expected.txt [modify] https://crrev.com/949034f3c2531f6071ff0b704b3e3e46e5fb542d/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpSender-replaceTrack.https.html [modify] https://crrev.com/949034f3c2531f6071ff0b704b3e3e46e5fb542d/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCRtpSender-replaceTrack.https-expected.txt
,
Jul 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2fd35dd9772161d8e232d486afe551941a252698 commit 2fd35dd9772161d8e232d486afe551941a252698 Author: Philipp Hancke <philipp.hancke@googlemail.com> Date: Fri Jul 27 12:25:55 2018 webrtc wpt: remove generateMediaStreamTrack, add cleanup after getNoiseStream BUG= 836871 Change-Id: I278b34cb305a13a029e84eaaeec57144e2858678 Reviewed-on: https://chromium-review.googlesource.com/1149364 Reviewed-by: Henrik Boström <hbos@chromium.org> Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Cr-Commit-Position: refs/heads/master@{#578611} [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTransceiver.https-expected.txt [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-addTransceiver.https.html [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-helper.js [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https-expected.txt [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https.html [modify] https://crrev.com/2fd35dd9772161d8e232d486afe551941a252698/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/interfaces.https-expected.txt
,
Jul 27
marking this as fixed. I think we got most usage. In case anatoli stops by: h/t, this is just changes to the tests, doesn't need to be mentioned in any release notes.
,
Jul 27
Hurray! Good work, fippo.
,
Aug 27
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by philipp....@googlemail.com
, Apr 25 2018