New issue
Advanced search Search tips

Issue 852468 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

Bottom toolbar crashing in native on startup

Project Member Reported by mdjones@chromium.org, Jun 13 2018

Issue description

Based on the stack it looks like we're not waiting for native init to be complete before initializing the bottom toolbar controller (which initializes the scene layer). On release builds, it looks like native is fast enough to be ready most of the time before this happens, but it poses a problem on debug (and probably slower devices). We'll probably need to create the scene layer after native is ready, here's the stack I'm getting:


No implementation found for long org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.nativeInit() (tried Java_org_chromium_chrome_browser_compositor_scene_1layer_ScrollingBottomViewSceneLayer_nativeInit and Java_org_chromium_chrome_browser_compositor_scene_1layer_ScrollingBottomViewSceneLayer_nativeInit__)
 	at org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.nativeInit(Native Method)
 	at org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.initializeNative(ScrollingBottomViewSceneLayer.java:65)
 	at org.chromium.chrome.browser.compositor.scene_layer.SceneLayer.<init>(SceneLayer.java:21)
 	at org.chromium.chrome.browser.compositor.scene_layer.SceneOverlayLayer.<init>(SceneOverlayLayer.java:10)
 	at org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.<init>(ScrollingBottomViewSceneLayer.java:47)
 	at org.chromium.chrome.browser.toolbar.BottomToolbarController.<init>(BottomToolbarController.java:66)
 	at org.chromium.chrome.browser.toolbar.ToolbarManager.<init>(ToolbarManager.java:242)
 	at org.chromium.chrome.browser.ChromeActivity.initializeToolbar(ChromeActivity.java:541)
 	at org.chromium.chrome.browser.ChromeTabbedActivity.initializeToolbar(ChromeTabbedActivity.java:1379)
 	at org.chromium.chrome.browser.ChromeActivity.postInflationStartup(ChromeActivity.java:412)
        ...
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c1234f353dbf6289ebbc1069dc656e42d39855c

commit 3c1234f353dbf6289ebbc1069dc656e42d39855c
Author: Ted Choc <tedchoc@google.com>
Date: Thu Jun 14 19:51:47 2018

Fix crash in bottom bar early startup before native.

ScrollingBottomViewSceneLayer extends from SceneLayer and that
does a native call in its constructor, which can cause a crash
if native isn't loaded.

This moves the scene layer to the model and into
initializeWithNative.  This might be a better short term fix
than long term design practice though.

BUG= 850804 , 852468

Change-Id: I5cda1e24787ea6558d7ac07b3ef49f6503c32243
Reviewed-on: https://chromium-review.googlesource.com/1100130
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Pedro Amaral <amaralp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567381}
[modify] https://crrev.com/3c1234f353dbf6289ebbc1069dc656e42d39855c/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarController.java
[modify] https://crrev.com/3c1234f353dbf6289ebbc1069dc656e42d39855c/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarViewBinder.java
[modify] https://crrev.com/3c1234f353dbf6289ebbc1069dc656e42d39855c/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ScrollingBottomViewResourceFrameLayout.java

Issue 852272 has been merged into this issue.
Status: Fixed (was: Assigned)
Cc: ligim...@chromium.org
Components: UI>Browser>Mobile>CustomTabs
Labels: Target-72 FoundIn-72 M-72
Status: Assigned (was: Fixed)
Reopening, still seeing the crash in M71, M72 chrome versions.

Exception
==========
Thread 45java.lang.NullPointerException: Attempt to read from field 'bVp org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.g' on a null object reference
at org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.<init>	(ScrollingBottomViewSceneLayer.java:67 )
at org.chromium.chrome.browser.toolbar.BottomToolbarViewBinder.bind	(BottomToolbarViewBinder.java:78 )
at org.chromium.chrome.browser.toolbar.BottomToolbarViewBinder.bind	(BottomToolbarViewBinder.java:23 )
at org.chromium.chrome.browser.modelutil.PropertyModelChangeProcessor.onPropertyChanged$5166USJ75THMGSJFDLKNAR9FCDK74RRDCKNM4SJFETPMASHFDLNM8PBCELQ6IR1FA1P6US35E9Q7IJR2EDIN4TJ1C9M6AEQCD9GNCO9FDHGMSPPF9TH6KPB3EGTIILG_0	(PropertyModelChangeProcessor.java:70 )
at org.chromium.chrome.browser.modelutil.PropertyModelChangeProcessor$$Lambda$0.onPropertyChanged	(PropertyModelChangeProcessor.java )
at org.chromium.chrome.browser.modelutil.PropertyObservable.notifyPropertyChanged	(PropertyObservable.java:62 )
at org.chromium.chrome.browser.modelutil.PropertyModel.set$5166USJ75THMGSJFDLKNAR9FCDK74RRDCKNM4SJFETPMASHFDLNM8PBCELQ6IR1FA1P6US35E9Q7IJBFCHIMO92NE9KN8OB2DHIKUOJACLHN8K3IDTO6ASJKF55MAU9R9HL62TJ15TM62RJ75T7M4QJ5CDQ3MAAM0	(PropertyModel.java:179 )
at org.chromium.chrome.browser.toolbar.BottomToolbarMediator.setToolbarSwipeLayout	(BottomToolbarMediator.java:227 )
at org.chromium.chrome.browser.toolbar.BottomToolbarCoordinator.setToolbarSwipeLayout	(BottomToolbarCoordinator.java:179 )
at org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome.setToolbarManager	(LayoutManagerChrome.java:127 )
at org.chromium.chrome.browser.ChromeTabbedActivity.initializeUIWithNative	(ChromeTabbedActivity.java:872 )
at org.chromium.chrome.browser.ChromeTabbedActivity.finishNativeInitialization	(ChromeTabbedActivity.java:583 )
at org.chromium.chrome.browser.init.ChromeBrowserInitializer$9.run	(ChromeBrowserInitializer.java:336 )
at org.chromium.chrome.browser.init.ChainedTasks$1.run	(ChainedTasks.java:28 )
at android.os.Handler.handleCallback	(Handler.java:790 )
at android.os.Handler.dispatchMessage	(Handler.java:99 )
at android.os.Looper.loop	(Looper.java:164 )
at android.app.ActivityThread.main	(ActivityThread.java:6494 )
at java.lang.reflect.Method.invoke	(Method.java )
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run	(RuntimeInit.java:440 )
at com.android.internal.os.ZygoteInit.main	(ZygoteInit.java:807 )
at de.robv.android.xposed.XposedBridge.main	(XposedBridge.java:108 )

More Info
=========
https://crash.corp.google.com/browse?q=product_name%3D%27Chrome_Android%27+AND+expanded_custom_data.ChromeCrashProto.ptype%3D%27browser%27+AND+STRPOS%28expanded_custom_data.ChromeCrashProto.magic_signature_1.name%2C+%27%5BAndroid+Java+Exception%5D+%27%29+%3E+0+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BAndroid+Java+Exception%5D+java.lang.NullPointerException+at+org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer.%3Cinit%3E%28ScrollingBottomViewSceneLayer.java%29%27#-propertyselector,-productname:1000,productversion:1000,-magicsignature:50,-magicsignature2:50,-stablesignature:50,+gpuvendor,-magicsignaturesorted:50
Cc: -ligim...@chromium.org amaralp@chromium.org
Labels: Needs-Feedback
Owner: ligim...@chromium.org
Why is this filed as a CustomTabs bug? Is this only happening for CustomTabs? The crash stack suggests that this can't happen in CustomTabs since there is a ChromeTabbedActivity.

Sign in to add a comment