Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Issue 675013005: Split libjingle's signaling thread from the UI thread (Closed)

Created:
6 years, 1 month ago by tommi (sloooow) - chröme
Modified:
6 years, 1 month ago
CC:
chromium-reviews, posciak+watch_chromium.org, jam, mcasas+watch_chromium.org, feature-media-reviews_chromium.org, darin-cc_chromium.org, mkwst+moarreviews-renderer_chromium.org, wjia+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Split libjingle's signaling thread from the UI thread. This addresses the issue of getStats blocking the UI thread for excessive amounts of time and also opens the door for us to do other heavy-lifters such as setRemoteDescription and setLocalDescription asynchronously. This CL builds on several others that have landed this week (see bug for details), but here are the key changes: - PeerConnectionDependencyFactory has a separate signaling thread instead of using the UI thread. - Classes that join WebRTC and Blink objects need to be aware of the signaling thread being different. This means that callbacks will come in on the signaling thread from webrtc and need to be sent to the UI thread for javascript callbacks. BUG=369796 Committed: https://crrev.com/ab51debd424645f6ab4a3281f14ebc403377464a Cr-Commit-Position: refs/heads/master@{#302395}

Patch Set 1 #

Patch Set 2 : Fix mac build error #

Patch Set 3 : Update dcheck for getdefaultcapturer #

Patch Set 4 : Rebase #

Patch Set 5 : more dcheck polish #

Patch Set 6 : Revert change to disable test now that libjingle has been rolled #

Patch Set 7 : Rebase after landing data channel change #

Total comments: 45

Patch Set 8 : Address comments #

Patch Set 9 : Fix missing reference and fix incorrect documentation #

Patch Set 10 : Fix android build error #

Patch Set 11 : Fix another build error (why don't I get this on windows!) #

Patch Set 12 : rebase #

Total comments: 26

Patch Set 13 : Make setLocalDescription and setRemoteDescription run on the signaling thread #

Patch Set 14 : Update test #

Patch Set 15 : Broken changes for review #

Total comments: 4

Patch Set 16 : Finish observer impl #

Patch Set 17 : Address comments #

Patch Set 18 : Remove async set{Local|Remote}Description #

Patch Set 19 : Fix build #

Patch Set 20 : Restore original order of operations #

Patch Set 21 : Revert GetPcFactory call #

Patch Set 22 : Update tests, remove circular dependency #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1335 lines, -608 lines) Patch
M content/renderer/media/media_stream_track.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -11 lines 0 comments Download
M content/renderer/media/media_stream_track.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -24 lines 0 comments Download
M content/renderer/media/media_stream_video_track.cc View 1 2 3 4 5 6 7 2 chunks +1 line, -3 lines 0 comments Download
M content/renderer/media/peer_connection_tracker.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/media/peer_connection_tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +5 lines, -7 lines 0 comments Download
M content/renderer/media/remote_media_stream_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +61 lines, -13 lines 0 comments Download
M content/renderer/media/remote_media_stream_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +289 lines, -138 lines 0 comments Download
M content/renderer/media/rtc_peer_connection_handler.h View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +41 lines, -26 lines 0 comments Download
M content/renderer/media/rtc_peer_connection_handler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 41 chunks +466 lines, -189 lines 0 comments Download
M content/renderer/media/rtc_peer_connection_handler_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 39 chunks +165 lines, -52 lines 0 comments Download
M content/renderer/media/webrtc/media_stream_remote_video_source.h View 3 chunks +36 lines, -12 lines 0 comments Download
M content/renderer/media/webrtc/media_stream_remote_video_source.cc View 1 2 3 4 5 6 7 6 chunks +77 lines, -30 lines 0 comments Download
M content/renderer/media/webrtc/media_stream_remote_video_source_unittest.cc View 5 chunks +9 lines, -5 lines 0 comments Download
M content/renderer/media/webrtc/peer_connection_dependency_factory.h View 3 chunks +5 lines, -5 lines 0 comments Download
M content/renderer/media/webrtc/peer_connection_dependency_factory.cc View 15 16 17 18 19 20 8 chunks +55 lines, -51 lines 0 comments Download
M content/renderer/media/webrtc/peer_connection_dependency_factory_unittest.cc View 2 chunks +2 lines, -0 lines 0 comments Download
M content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h View 1 2 3 4 5 6 7 5 chunks +9 lines, -3 lines 0 comments Download
M content/renderer/media/webrtc/webrtc_local_audio_track_adapter.cc View 1 2 3 4 5 6 7 9 chunks +41 lines, -10 lines 0 comments Download
M content/renderer/media/webrtc/webrtc_media_stream_adapter_unittest.cc View 1 2 3 4 5 6 7 2 chunks +16 lines, -6 lines 0 comments Download
M content/renderer/media/webrtc_audio_device_impl.cc View 1 2 3 4 4 chunks +10 lines, -13 lines 0 comments Download
M content/renderer/media/webrtc_local_audio_track.h View 1 2 3 4 5 6 7 8 3 chunks +10 lines, -2 lines 0 comments Download
M content/renderer/media/webrtc_local_audio_track.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +28 lines, -7 lines 0 comments Download

Messages

Total messages: 40 (4 generated)
tommi (sloooow) - chröme
Fix mac build error
6 years, 1 month ago (2014-10-29 19:55:55 UTC) #1
tommi (sloooow) - chröme
Update dcheck for getdefaultcapturer
6 years, 1 month ago (2014-10-29 21:27:59 UTC) #2
tommi (sloooow) - chröme
Rebase
6 years, 1 month ago (2014-10-29 21:48:14 UTC) #3
tommi (sloooow) - chröme
more dcheck polish
6 years, 1 month ago (2014-10-29 22:28:13 UTC) #4
tommi (sloooow) - chröme
Revert change to disable test now that libjingle has been rolled
6 years, 1 month ago (2014-10-29 22:55:15 UTC) #5
tommi (sloooow) - chröme
Rebase after landing data channel change
6 years, 1 month ago (2014-10-30 09:52:41 UTC) #6
tommi (sloooow) - chröme
Hey guys - here's the CL that introduces the signaling thread. Here's a proposal for ...
6 years, 1 month ago (2014-10-30 10:01:58 UTC) #8
no longer working on chromium
https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/webrtc/peer_connection_dependency_factory.cc File content/renderer/media/webrtc/peer_connection_dependency_factory.cc (right): https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/webrtc/peer_connection_dependency_factory.cc#newcode328 content/renderer/media/webrtc/peer_connection_dependency_factory.cc:328: if (!MediaStreamAudioProcessor::IsAudioTrackProcessingEnabled()) { just remove line 328-335 :) or ...
6 years, 1 month ago (2014-10-30 11:55:14 UTC) #9
perkj_chrome
Fist pass. https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/remote_media_stream_impl.cc File content/renderer/media/remote_media_stream_impl.cc (right): https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/remote_media_stream_impl.cc#newcode43 content/renderer/media/remote_media_stream_impl.cc:43: class RemoteMediaStreamTrack : public MediaStreamTrack { This ...
6 years, 1 month ago (2014-10-30 12:42:36 UTC) #10
tommi (sloooow) - chröme
Address comments
6 years, 1 month ago (2014-10-30 17:25:30 UTC) #11
tommi (sloooow) - chröme
Fix missing reference and fix incorrect documentation
6 years, 1 month ago (2014-10-30 20:33:49 UTC) #12
tommi (sloooow) - chröme
https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/remote_media_stream_impl.cc File content/renderer/media/remote_media_stream_impl.cc (right): https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/remote_media_stream_impl.cc#newcode43 content/renderer/media/remote_media_stream_impl.cc:43: class RemoteMediaStreamTrack : public MediaStreamTrack { On 2014/10/30 12:42:35, ...
6 years, 1 month ago (2014-10-30 20:37:37 UTC) #13
tommi (sloooow) - chröme
Fix android build error
6 years, 1 month ago (2014-10-30 20:45:18 UTC) #14
tommi (sloooow) - chröme
Fix another build error (why don't I get this on windows!)
6 years, 1 month ago (2014-10-30 21:09:52 UTC) #15
tommi (sloooow) - chröme
rebase
6 years, 1 month ago (2014-10-30 22:01:08 UTC) #16
tommi (sloooow) - chröme
Make setLocalDescription and setRemoteDescription run on the signaling thread
6 years, 1 month ago (2014-10-30 23:10:03 UTC) #17
tommi (sloooow) - chröme
Update test
6 years, 1 month ago (2014-10-30 23:23:25 UTC) #18
tommi (sloooow) - chröme
Hey guys - please ignore patch sets 13 and 14. I was playing around with ...
6 years, 1 month ago (2014-10-31 06:34:16 UTC) #19
perkj_chrome
https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/rtc_peer_connection_handler.cc File content/renderer/media/rtc_peer_connection_handler.cc (right): https://codereview.chromium.org/675013005/diff/120001/content/renderer/media/rtc_peer_connection_handler.cc#newcode267 content/renderer/media/rtc_peer_connection_handler.cc:267: if (!main_thread_->BelongsToCurrentThread()) { On 2014/10/30 20:37:36, tommi wrote: > ...
6 years, 1 month ago (2014-10-31 08:37:25 UTC) #20
tommi (sloooow) - chröme
Changes on the way https://codereview.chromium.org/675013005/diff/180002/content/renderer/media/media_stream_track.cc File content/renderer/media/media_stream_track.cc (right): https://codereview.chromium.org/675013005/diff/180002/content/renderer/media/media_stream_track.cc#newcode28 content/renderer/media/media_stream_track.cc:28: webrtc::AudioTrackInterface* MediaStreamTrack::GetAudioAdapter() { On 2014/10/31 ...
6 years, 1 month ago (2014-10-31 10:06:33 UTC) #21
tommi (sloooow) - chröme
Broken changes for review
6 years, 1 month ago (2014-10-31 10:08:59 UTC) #22
perkj_chrome
LGTM with the comments below considered. https://codereview.chromium.org/675013005/diff/180002/content/renderer/media/remote_media_stream_impl.cc File content/renderer/media/remote_media_stream_impl.cc (right): https://codereview.chromium.org/675013005/diff/180002/content/renderer/media/remote_media_stream_impl.cc#newcode76 content/renderer/media/remote_media_stream_impl.cc:76: webrtc::AudioTrackInterface* GetAudioAdapter() override ...
6 years, 1 month ago (2014-10-31 10:24:26 UTC) #23
tommi (sloooow) - chröme
Finish observer impl
6 years, 1 month ago (2014-10-31 12:30:04 UTC) #24
no longer working on chromium
On 2014/10/31 12:30:04, tommi wrote: > Finish observer impl rubber stamp lgtm
6 years, 1 month ago (2014-10-31 13:02:11 UTC) #25
tommi (sloooow) - chröme
https://codereview.chromium.org/675013005/diff/180002/content/renderer/media/remote_media_stream_impl.cc File content/renderer/media/remote_media_stream_impl.cc (right): https://codereview.chromium.org/675013005/diff/180002/content/renderer/media/remote_media_stream_impl.cc#newcode76 content/renderer/media/remote_media_stream_impl.cc:76: webrtc::AudioTrackInterface* GetAudioAdapter() override { On 2014/10/31 10:24:26, perkj wrote: ...
6 years, 1 month ago (2014-10-31 13:20:42 UTC) #26
tommi (sloooow) - chröme
Address comments
6 years, 1 month ago (2014-10-31 13:20:49 UTC) #27
tommi (sloooow) - chröme
Remove async set{Local|Remote}Description
6 years, 1 month ago (2014-10-31 13:28:43 UTC) #28
tommi (sloooow) - chröme
Fix build
6 years, 1 month ago (2014-10-31 13:40:30 UTC) #29
tommi (sloooow) - chröme
Restore original order of operations
6 years, 1 month ago (2014-10-31 14:31:18 UTC) #30
tommi (sloooow) - chröme
Revert GetPcFactory call
6 years, 1 month ago (2014-10-31 15:04:50 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/675013005/390001
6 years, 1 month ago (2014-10-31 16:03:13 UTC) #33
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel/builds/7768)
6 years, 1 month ago (2014-10-31 17:27:50 UTC) #35
tommi (sloooow) - chröme
Update tests, remove circular dependency
6 years, 1 month ago (2014-11-01 19:52:03 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/675013005/400001
6 years, 1 month ago (2014-11-01 20:52:25 UTC) #38
commit-bot: I haz the power
Committed patchset #22 (id:400001)
6 years, 1 month ago (2014-11-01 21:34:09 UTC) #39
commit-bot: I haz the power
6 years, 1 month ago (2014-11-01 21:34:54 UTC) #40
Message was sent while issue was closed.
Patchset 22 (id:??) landed as
https://crrev.com/ab51debd424645f6ab4a3281f14ebc403377464a
Cr-Commit-Position: refs/heads/master@{#302395}

Powered by Google App Engine
This is Rietveld 408576698