New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 817084 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

WebView crash for copy paste dialog and <select> element

Project Member Reported by tnagel@chromium.org, Feb 27 2018

Issue description

Copied over from https://partnerissuetracker.corp.google.com/u/1/issues/73893100:

We are using a WebView. If we try to paste any text to a textfield or open the <select> menu, the application crashes.
Stacktraces are attached. A sample apk and source is attached.

We isolated the problem to the usage of custom resources:

override fun getResources(): Resources {
        val resources = baseContext.resources
        otherResources = resources

        if (myResources == null) {
            myResources = CustomResources(resources)
        }

        return myResources as Resources
    }

internal class CustomResources(originalResources: Resources)
        : Resources(originalResources.assets, originalResources.displayMetrics, originalResources.configuration)



Test configuration
Model: Pixel 
Android Version: 8.1.0 
Build: OPM1.171019.016
SDK 26

Reproducibility
always

 

Comment 1 by tnagel@chromium.org, Feb 27 2018

Copying over stacktraces from https://partnerissuetracker.corp.google.com/u/1/issues/73893100:

02-27 12:53:48.461 10372-10372/? W/ResourceType: No known package when getting value for resource number 0x02150009
02-27 12:53:48.461 10372-10372/? W/ResourceType: No known package when getting value for resource number 0x02150009
02-27 12:53:48.465 10372-10372/? W/System.err: android.content.res.Resources$NotFoundException: Resource ID #0x2150009
02-27 12:53:48.466 10372-10372/? W/System.err:     at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:215)
02-27 12:53:48.466 10372-10372/? W/System.err:     at android.content.res.Resources.loadXmlResourceParser(Resources.java:2134)
02-27 12:53:48.466 10372-10372/? W/System.err:     at android.content.res.Resources.getLayout(Resources.java:1143)
02-27 12:53:48.466 10372-10372/? W/System.err:     at android.view.MenuInflater.inflate(MenuInflater.java:111)
02-27 12:53:48.467 10372-10372/? W/System.err:     at org.chromium.content.browser.SelectionPopupController.initializeMenu(SelectionPopupController.java:139)
02-27 12:53:48.467 10372-10372/? W/System.err:     at org.chromium.content.browser.input.FloatingPastePopupMenu$ActionModeCallback.onCreateActionMode(FloatingPastePopupMenu.java:12)
02-27 12:53:48.467 10372-10372/? W/System.err:     at com.android.internal.policy.DecorView$ActionModeCallback2Wrapper.onCreateActionMode(DecorView.java:2450)
02-27 12:53:48.467 10372-10372/? W/System.err:     at com.android.internal.policy.DecorView.startActionMode(DecorView.java:895)
02-27 12:53:48.467 10372-10372/? W/System.err:     at com.android.internal.policy.DecorView.startActionModeForChild(DecorView.java:851)
02-27 12:53:48.467 10372-10372/? W/System.err:     at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:923)
02-27 12:53:48.467 10372-10372/? I/chatty: uid=10365(de.quartettmobile.test) identical 3 lines
02-27 12:53:48.467 10372-10372/? W/System.err:     at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:923)
02-27 12:53:48.467 10372-10372/? W/System.err:     at android.view.View.startActionMode(View.java:6493)
02-27 12:53:48.468 10372-10372/? W/System.err:     at org.chromium.content.browser.input.FloatingPastePopupMenu.show(FloatingPastePopupMenu.java:15)
02-27 12:53:48.468 10372-10372/? W/System.err:     at org.chromium.content.browser.SelectionPopupController.showPastePopup(SelectionPopupController.java:93)
02-27 12:53:48.468 10372-10372/? W/System.err:     at org.chromium.content.browser.SelectionPopupController.showSelectionMenu(SelectionPopupController.java:71)
02-27 12:53:48.468 10372-10372/? W/System.err:     at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
02-27 12:53:48.468 10372-10372/? W/System.err:     at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:9)
02-27 12:53:48.468 10372-10372/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
02-27 12:53:48.468 10372-10372/? W/System.err:     at android.os.Looper.loop(Looper.java:164)
02-27 12:53:48.468 10372-10372/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6494)
02-27 12:53:48.468 10372-10372/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
02-27 12:53:48.468 10372-10372/? W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
02-27 12:53:48.468 10372-10372/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
02-27 12:53:48.482 10372-10372/? A/chromium: [FATAL:jni_android.cc(232)] Please include Java exception stack in crash report
02-27 12:53:48.604 10372-10372/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 10372 (tettmobile.test), pid 10372 (tettmobile.test)

02-27 12:49:09.982 9466-9466/de.quartettmobile.test W/ResourceType: Invalid package identifier when getting bag for resource number 0x020e002c
02-27 12:49:10.079 9466-9466/de.quartettmobile.test W/ResourceType: No package identifier when getting value for resource number 0x00000000
02-27 12:49:10.079 9466-9466/de.quartettmobile.test D/AndroidRuntime: Shutting down VM
02-27 12:49:10.083 9466-9466/de.quartettmobile.test E/AndroidRuntime: FATAL EXCEPTION: main
                                                                      Process: de.quartettmobile.test, PID: 9466
                                                                      android.content.res.Resources$NotFoundException: Resource ID #0x0
                                                                          at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:215)
                                                                          at android.content.res.Resources.loadXmlResourceParser(Resources.java:2134)
                                                                          at android.content.res.Resources.getLayout(Resources.java:1143)
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:421)
                                                                          at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:416)
                                                                          at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407)
                                                                          at org.chromium.content.browser.input.SelectPopupAdapter.getView(SelectPopupAdapter.java:13)
                                                                          at android.widget.AbsListView.obtainView(AbsListView.java:2365)
                                                                          at android.widget.ListView.measureHeightOfChildren(ListView.java:1408)
                                                                          at android.widget.ListView.onMeasure(ListView.java:1315)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at com.android.internal.widget.AlertDialogLayout.tryOnMeasure(AlertDialogLayout.java:144)
                                                                          at com.android.internal.widget.AlertDialogLayout.onMeasure(AlertDialogLayout.java:69)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at com.android.internal.policy.DecorView.onMeasure(DecorView.java:724)
                                                                          at android.view.View.measure(View.java:22071)
                                                                          at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2422)
                                                                          at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1477)
                                                                          at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1761)
                                                                          at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392)
                                                                          at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752)
                                                                          at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
                                                                          at android.view.Choreographer.doCallbacks(Choreographer.java:723)
                                                                          at android.view.Choreographer.doFrame(Choreographer.java:658)
                                                                          at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
                                                                          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(Native Method)
                                                                          at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Comment 2 by torne@chromium.org, Feb 27 2018

Status: WontFix (was: Untriaged)
Don't do this - creating your own Resources objects that the asset manager doesn't know about this doesn't work and is not supposed to be permitted (the Resources constructor is only public due to a historical oversight). WebView relies on the platform managing the Resources objects automatically in AssetManager.

Sign in to add a comment