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

Issue 1294953004: Make startCapture return synchronously to avoid Chrome no-responding on N9 with fast tab switching. (Closed)

Created:
5 years, 4 months ago by braveyao
Modified:
5 years, 4 months ago
Reviewers:
mcasas, magjed_chromium
CC:
chromium-reviews, posciak+watch_chromium.org, avayvod+watch_chromium.org, mcasas+watch_chromium.org, feature-media-reviews_chromium.org, wjia+watch_chromium.org, mlamouri+watch-media_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

On Nexus9, if you open two webrtc tabs and switch them very quickly, then chrome will stop responding soon. The reason is tab switching on Android will cause capture start/stop accordingly on the OnWasHidden/OnWasShown events. On N9 it's Camera2 API deployed. And with Camera2, capture will start asynchronously. If stopCapture comes too soon, it will fail and the next startCapture will cause the Camera2 into error status(You can't start capture twice in a row with Camera2 API) and freezes Chrome. This is a simple/straight patch to make the startCapture return synchronously. Please help to advice if this is proper here, or what other ideas you may have. BUG=501790 Test=Manual Test Committed: https://crrev.com/e4f0b8fffdaa39c929fde3dccd1561efbc7b6935 Cr-Commit-Position: refs/heads/master@{#345254}

Patch Set 1 #

Patch Set 2 : revise according to the review comments. #

Total comments: 15

Patch Set 3 : address comments #

Total comments: 4

Patch Set 4 : address comments #

Total comments: 2

Patch Set 5 : Address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+40 lines, -21 lines) Patch
M media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java View 1 2 3 4 10 chunks +40 lines, -21 lines 0 comments Download

Messages

Total messages: 18 (3 generated)
braveyao
Please help to take a look and advise!
5 years, 4 months ago (2015-08-18 10:18:32 UTC) #2
magjed_chromium
How about you replace |mOpeningCamera|, |mConfiguringCamera|, and |mCaptureStarted| with a new camera state enum. Something ...
5 years, 4 months ago (2015-08-19 14:32:50 UTC) #3
braveyao
On 2015/08/19 14:32:50, magjed wrote: > How about you replace |mOpeningCamera|, |mConfiguringCamera|, and > |mCaptureStarted| ...
5 years, 4 months ago (2015-08-20 08:07:22 UTC) #4
magjed_chromium
On 2015/08/20 08:07:22, braveyao wrote: > On 2015/08/19 14:32:50, magjed wrote: > > How about ...
5 years, 4 months ago (2015-08-20 08:50:47 UTC) #5
braveyao
On 2015/08/20 08:50:47, magjed wrote: > On 2015/08/20 08:07:22, braveyao wrote: > > On 2015/08/19 ...
5 years, 4 months ago (2015-08-20 09:08:24 UTC) #6
braveyao
Revised! Please help to take another look!
5 years, 4 months ago (2015-08-20 11:07:39 UTC) #7
magjed_chromium
I like this. https://codereview.chromium.org/1294953004/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java File media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java (left): https://codereview.chromium.org/1294953004/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java#oldcode438 media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java:438: if (mCaptureSession == null) return false; ...
5 years, 4 months ago (2015-08-20 12:02:38 UTC) #8
braveyao
Comments are all addressed/answered. PTAL! https://codereview.chromium.org/1294953004/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java File media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java (left): https://codereview.chromium.org/1294953004/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java#oldcode438 media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java:438: if (mCaptureSession == null) ...
5 years, 4 months ago (2015-08-21 07:19:56 UTC) #9
magjed_chromium
lgtm https://codereview.chromium.org/1294953004/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java File media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java (left): https://codereview.chromium.org/1294953004/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java#oldcode438 media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java:438: if (mCaptureSession == null) return false; On 2015/08/21 ...
5 years, 4 months ago (2015-08-21 08:40:18 UTC) #10
braveyao
Thanks so much magjed@! mcasas@, the OWNER! https://codereview.chromium.org/1294953004/diff/40001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java File media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java (right): https://codereview.chromium.org/1294953004/diff/40001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java#newcode395 media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java:395: || mCameraState ...
5 years, 4 months ago (2015-08-21 09:53:08 UTC) #11
mcasas
LGTM % comment+nit below. https://codereview.chromium.org/1294953004/diff/60001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java File media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java (right): https://codereview.chromium.org/1294953004/diff/60001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java#newcode282 media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java:282: private void cameraStateChangeNotify(CameraState state) { ...
5 years, 4 months ago (2015-08-21 21:22:14 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1294953004/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1294953004/80001
5 years, 4 months ago (2015-08-25 03:12:57 UTC) #15
commit-bot: I haz the power
Committed patchset #5 (id:80001)
5 years, 4 months ago (2015-08-25 04:21:14 UTC) #16
commit-bot: I haz the power
Patchset 5 (id:??) landed as https://crrev.com/e4f0b8fffdaa39c929fde3dccd1561efbc7b6935 Cr-Commit-Position: refs/heads/master@{#345254}
5 years, 4 months ago (2015-08-25 04:21:53 UTC) #17
battre
5 years, 4 months ago (2015-08-25 07:26:37 UTC) #18
Message was sent while issue was closed.
A revert of this CL (patchset #5 id:80001) has been created in
https://codereview.chromium.org/1316653002/ by battre@chromium.org.

The reason for reverting is: Attempting a revert to see whether this fixes
WebRtcGetUserMediaBrowserTest.RenderVideoTrackInMultipleTagsAndPause.

Powered by Google App Engine
This is Rietveld 408576698