Crash when clicking on installed web app
javifernandez opened this issue · comments
Configuration
Wolvic version: 1.6.0
Wolvic build ID: 308
Hardware: Quest2
Steps to Reproduce
- Ensure no webapp is installed (eg, fresh install or remove app data)
- Load the www.igalia.com url
- Cick on the "Save web-app" icon in the navigation bar
- Click on the "Install " button of the dialog
- Click on the "Open Library" Tray icon
- Go to the Web Apps tab of the dialog
Current Behavior
The app crash immediately
Expected Behavior
The list of installed web-apps should be shown
Possible Solution
Context
Error Logs and Stack Traces
2024-03-11 15:39:56.729 28557-28557 AndroidRuntime com.igalia.wolvic.metastore D Shutting down VM
2024-03-11 15:39:56.730 28557-28557 AndroidRuntime com.igalia.wolvic.metastore E FATAL EXCEPTION: main
Process: com.igalia.wolvic.metastore, PID: 28557
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to mozilla.components.concept.engine.manifest.WebAppManifest$Icon
at com.igalia.wolvic.ui.views.TabView$$ExternalSyntheticLambda1.apply(SourceFile:127)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:203)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1390)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:475)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:236)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:517)
at com.igalia.wolvic.ui.adapters.WebApp.getIconResources(SourceFile:26)
at com.igalia.wolvic.ui.adapters.WebAppsAdapter.onBindViewHolder(SourceFile:35)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(SourceFile:1)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:151)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(SourceFile:72)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(SourceFile:145)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:6)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(SourceFile:54)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(SourceFile:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(SourceFile:49)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(SourceFile:770)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(SourceFile:81)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(SourceFile:72)
at androidx.recyclerview.widget.RecyclerView.onLayout(SourceFile:6)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.igalia.wolvic.ui.views.library.LibraryView.onLayout(SourceFile:1)
at com.igalia.wolvic.ui.views.library.WebAppsView.onLayout(SourceFile:1)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
2024-03-11 15:39:56.730 28557-28557 GeckoCrashHandler com.igalia.wolvic.metastore E >>> REPORTING UNCAUGHT EXCEPTION FROM THREAD 2 ("main")
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to mozilla.components.concept.engine.manifest.WebAppManifest$Icon
at com.igalia.wolvic.ui.views.TabView$$ExternalSyntheticLambda1.apply(SourceFile:127)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:203)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1390)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:475)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:236)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:517)
at com.igalia.wolvic.ui.adapters.WebApp.getIconResources(SourceFile:26)
at com.igalia.wolvic.ui.adapters.WebAppsAdapter.onBindViewHolder(SourceFile:35)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(SourceFile:1)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:151)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(SourceFile:72)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(SourceFile:145)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:6)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(SourceFile:54)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(SourceFile:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(SourceFile:49)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(SourceFile:770)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(SourceFile:81)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(SourceFile:72)
at androidx.recyclerview.widget.RecyclerView.onLayout(SourceFile:6)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.igalia.wolvic.ui.views.library.LibraryView.onLayout(SourceFile:1)
at com.igalia.wolvic.ui.views.library.WebAppsView.onLayout(SourceFile:1)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23203)
at android.view.ViewGroup.layout(ViewGroup.java:6412)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
Hmm I've just followed the steps you mentioned and I got no crash.
Hmm I've just followed the steps you mentioned and I got no crash.
You can see the new Web App installed there ?
Yes, I even added several.
BTW I've realized that I'm trying with main not with 1.6. So if that's reproducible in 1.6, it's definitely fixed in main
Confirmed that the crash is not reproducible in main.
Confirmed that the crash is not reproducible in main.
Umm, correction ... it still crashes in quest2 when building a release apk from the main branch.