Debug check hit in ui::ViewAndroid::AddChild occasionally when exiting VR. |
||||
Issue descriptionThe debug check was added in https://codereview.chromium.org/2708613002 Stack trace is: [FATAL:view_android.cc(118)] Check failed: !SubtreeHasEventForwarder(child) || !ViewTreeHasEventForwarder(this). Only one event handler is allowed. ui::ViewAndroid::AddChild(ui::ViewAndroid*) view_android.cc:118 content::ContentViewCoreImpl::UpdateWindowAndroid(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, long long) content_view_core_impl.cc:285 Java_org_chromium_content_browser_ContentViewCore_nativeUpdateWindowAndroid ContentViewCore_jni.h:77 When entering VR we call CVC#updateWindowAndroid with our VR WindowAndroid. This never crashes. When exiting VR we call CVC#updateWindowAndroid with the original WindowAndroid, restoring it to its initial state. This occasionally crashes.
,
May 2 2017
Let me take a deeper look once I get back from OOO, but it looks like the WindowAndroid and the original view tree both have an event forwarder by the time they are linked again via VrShellImpl#restoreTabFromVR. Is there a step for repro or a user scenario that goes through those calls (init/restore)?
,
May 2 2017
Entering and exiting VR mode will trigger this occasionally. I haven't found a reliable repro case, but if you enter and exit VR a bunch, and restart chrome a bunch, you can get a repro within a few tries. You can use https://webvr.info/samples/03-vr-presentation.html to enter and exit VR. Just hit the Enter VR button. You don't even need a VR headset, VR services will assume you have a cardboard headset and it should just work, but let me know if you run into problems.
,
May 8 2017
,
May 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6 commit 1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6 Author: jinsukkim <jinsukkim@chromium.org> Date: Thu May 11 05:04:35 2017 Refined DCHECK preventing multiple event forwarders in VA tree path A ViewAndroid tree path from the top to a leaf node can have only a single EventForwarder instance. Rewrote helper methods used for DCHECK that enforces the requirement to match the actual job with the intention. BUG= 717271 Review-Url: https://codereview.chromium.org/2861413002 Cr-Commit-Position: refs/heads/master@{#470814} [modify] https://crrev.com/1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6/ui/android/view_android.cc [modify] https://crrev.com/1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6/ui/android/view_android.h [modify] https://crrev.com/1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6/ui/android/view_android_unittests.cc
,
May 11 2017
,
May 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/38ac4c9a36f237bcddf1ae1e723a7ee00c841f64 commit 38ac4c9a36f237bcddf1ae1e723a7ee00c841f64 Author: sebsg <sebsg@chromium.org> Date: Thu May 11 13:20:46 2017 Revert of Refined DCHECK preventing multiple event forwarders in VA tree path (patchset #9 id:200001 of https://codereview.chromium.org/2861413002/ ) Reason for revert: Primary suspect making ViewAndroidTest.ChecksMultipleEventForwarders fails consistently https://uberchromegw.corp.google.com/i/chromium.linux/builders/Android%20Tests Original issue's description: > Refined DCHECK preventing multiple event forwarders in VA tree path > > A ViewAndroid tree path from the top to a leaf node can have only > a single EventForwarder instance. Rewrote helper methods used for > DCHECK that enforces the requirement to match the actual job with > the intention. > > BUG= 717271 > > Review-Url: https://codereview.chromium.org/2861413002 > Cr-Commit-Position: refs/heads/master@{#470814} > Committed: https://chromium.googlesource.com/chromium/src/+/1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6 TBR=boliu@chromium.org,jinsukkim@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 717271 Review-Url: https://codereview.chromium.org/2880583002 Cr-Commit-Position: refs/heads/master@{#470938} [modify] https://crrev.com/38ac4c9a36f237bcddf1ae1e723a7ee00c841f64/ui/android/view_android.cc [modify] https://crrev.com/38ac4c9a36f237bcddf1ae1e723a7ee00c841f64/ui/android/view_android.h [modify] https://crrev.com/38ac4c9a36f237bcddf1ae1e723a7ee00c841f64/ui/android/view_android_unittests.cc
,
May 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e982114658f12e1dd021e74580ef7ccd73c44a85 commit e982114658f12e1dd021e74580ef7ccd73c44a85 Author: jinsukkim <jinsukkim@chromium.org> Date: Fri May 12 09:57:04 2017 Reland "Refined DCHECK preventing multiple event forwarders in VA tree path" Previous CL: https://crrev.com/2861413002 The new test in the CL depends on the presence of DCHECK macro but some buildbots failed since they don't have DCHECK enabled (Trybot passed because they have deliberately DCHECK on). Added #if DCHECK_IS_ON() to handle that, and also used a simpler macro EXPECT_DCHECK_DEATH over DCHECK_DEATH. > A ViewAndroid tree path from the top to a leaf node can have only > a single EventForwarder instance. Rewrote helper methods used for > DCHECK that enforces the requirement to match the actual job with > the intention. BUG= 717271 Review-Url: https://codereview.chromium.org/2861413002 Cr-Commit-Position: refs/heads/master@{#470814} Committed: https://chromium.googlesource.com/chromium/src/+/1a116ecfdf829702b653ded84a0e1cdb8bdfd7d6 patch from issue 2861413002 at patchset 200001 (http://crrev.com/2861413002#ps200001) Review-Url: https://codereview.chromium.org/2879713002 Cr-Commit-Position: refs/heads/master@{#471262} [modify] https://crrev.com/e982114658f12e1dd021e74580ef7ccd73c44a85/ui/android/view_android.cc [modify] https://crrev.com/e982114658f12e1dd021e74580ef7ccd73c44a85/ui/android/view_android.h [modify] https://crrev.com/e982114658f12e1dd021e74580ef7ccd73c44a85/ui/android/view_android_unittests.cc
,
Jun 6 2017
|
||||
►
Sign in to add a comment |
||||
Comment 1 by mthiesse@chromium.org
, May 1 2017Status: Assigned (was: Available)