New issue
Advanced search Search tips

Issue 770809 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug


Show other hotlists

Hotlists containing this issue:
Hotlist-2


Sign in to add a comment

DCHECK violation: scroll_offset.y() can be negative when going fullscreen.

Project Member Reported by ntfschr@chromium.org, Oct 2 2017

Issue description

Observed when investigating  issue 507609 .

Steps to repro:

1. Open m.youtube.com
2. Click any video, start playing
3. Scroll a little bit down on the screen (so the top-half of the video is cut-off)
4. Press the fullscreen button
5. Observe crash (if DCHECK enabled)

---

The stack looks like:

0x00000000000c01c4: base::debug::(anonymous namespace)::DebugBreak()
  at [chromium] //src/base/debug/debugger_posix.cc:228
 (inlined by) base::debug::BreakDebugger()
  at [chromium] //src/base/debug/debugger_posix.cc:258
0x00000000000e4b7c: logging::LogMessage::~LogMessage()
  at [chromium] //src/base/logging.cc:791
0x00000000000fe87c: gfx::Vector2d::y() const
  at [chromium] //src/ui/gfx/geometry/vector2d.h:31
 (inlined by) android_webview::BrowserViewRenderer::SetTotalRootLayerScrollOffset(gfx::Vector2dF const&)
  at [chromium] //src/android_webview/browser/browser_view_renderer.cc:650
0x00000000000feb84: android_webview::BrowserViewRenderer::UpdateRootLayerState(content::SynchronousCompositor*, gfx::Vector2dF const&, gfx::Vector2dF const&, gfx::SizeF const&, float, float, float)
  at [chromium] //src/android_webview/browser/browser_view_renderer.cc:680 (discriminator 8)
0x0000000000e5777c: content::SynchronousCompositorHost::ProcessCommonParams(content::SyncCompositorCommonRendererParams const&)
  at [chromium] //src/content/browser/android/synchronous_compositor_host.cc:414
0x0000000000e558c4: content::SynchronousCompositorBrowserFilter::VSyncComplete()
  at [chromium] //src/content/browser/android/synchronous_compositor_browser_filter.cc:212 (discriminator 4)
0x000000000002084c: base::RepeatingCallback<void ()>::Run() const &
  at [chromium] //src/base/callback.h:92 (discriminator 2)
 (inlined by) ui::WindowAndroid::OnVSync(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, long long, long long)
  at [chromium] //src/ui/android/window_android.cc:226 (discriminator 2)
0x0000000000020764: Java_org_chromium_ui_base_WindowAndroid_nativeOnVSync
  at [chromium] //src/out/Default/gen/ui/android/ui_android_jni_headers/ui_android/jni/WindowAndroid_jni.h:59 (discriminator 2)

---

I added some logs (inside SetTotalRootLayerScrollOffset) and saw:

 - scroll_offset.x(): 0
 - scroll_offset.y(): -262
 - max_offset.x(): 1082
 - max_offset.y(): 5311

---

Bo, I'm guessing this DCHECK is not really valid, since the behavior seems correct. Or is the DCHECK correct, and our mistake is somewhere else?
 

Sign in to add a comment