Igalia / wolvic

A fast and secure browser for standalone virtual-reality and augmented-reality headsets.

Home Page:https://wolvic.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  1. Ensure no webapp is installed (eg, fresh install or remove app data)
  2. Load the www.igalia.com url
  3. Cick on the "Save web-app" icon in the navigation bar
  4. Click on the "Install " button of the dialog
  5. Click on the "Open Library" Tray icon
  6. 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.