Igalia / wolvic

A fast and secure browser for standalone virtual-reality and augmented-reality headsets.
https://wolvic.org
Mozilla Public License 2.0
796 stars 100 forks source link

Prevent crash when clearing the focus of the URL bar #1417

Closed felipeerias closed 4 months ago

felipeerias commented 4 months ago

This change prevents a crash when clearing the focus of the URL bar from the wrong thread.

felipeerias commented 4 months ago

Stack trace:

FATAL EXCEPTION: GeckoInputConnection
    Process: com.igalia.wolvic.dev, PID: 4882
    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
        at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:8439)
        at android.view.ViewRootImpl.clearChildFocus(ViewRootImpl.java:4295)
        at android.view.ViewGroup.clearChildFocus(ViewGroup.java:1152)
        at android.view.ViewGroup.clearChildFocus(ViewGroup.java:1152)
        at android.view.ViewGroup.clearChildFocus(ViewGroup.java:1152)
        at android.view.ViewGroup.clearChildFocus(ViewGroup.java:1152)
        at android.view.View.clearFocusInternal(View.java:7761)
        at android.view.View.clearFocus(View.java:7743)
        at android.view.ViewGroup.clearFocus(ViewGroup.java:1162)
        at com.igalia.wolvic.ui.widgets.KeyboardWidget.lambda$handleDone$21$com-igalia-wolvic-ui-widgets-KeyboardWidget(KeyboardWidget.java:1018)
        at com.igalia.wolvic.ui.widgets.KeyboardWidget$$ExternalSyntheticLambda24.run(Unknown Source:6)
        at com.igalia.wolvic.ui.widgets.KeyboardWidget.postDisplayCommand(KeyboardWidget.java:1192)
        at com.igalia.wolvic.ui.widgets.KeyboardWidget.lambda$handleDone$22$com-igalia-wolvic-ui-widgets-KeyboardWidget(KeyboardWidget.java:1010)
        at com.igalia.wolvic.ui.widgets.KeyboardWidget$$ExternalSyntheticLambda2.run(Unknown Source:6)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:220)
        at org.mozilla.geckoview.GeckoInputConnection$9.run(GeckoInputConnection.java:504)
        at java.lang.Thread.run(Thread.java:919)

This issue was accidentally introduced by https://github.com/Igalia/wolvic/pull/1407