Skip to content

[3.32.7][Impeller][/e/OS][webview_flutter_android] Webview fails to render on the Fairphone 3 running /e/OS 3.0.4 #172622

@e-adrien

Description

@e-adrien

Steps to reproduce

  1. Obtain a Fairphone 3 running /e/OS 3.0.4.
  2. Clone the repository and build the app. I tested with Flutter 3.32.7
  3. Run the app on the device

Expected results

The webview should render properly on the classic Android flavour and the /e/OS flavour.

Actual results

The webview renders properly on the Fairphone 3 with the classic Android flavour, but it fails to render on the Fairphone 3 running /e/OS 3.0.4.

I couldn't try with other devices running /e/OS so I don't know if it is just this combination or if it affects more devices running /e/OS.

Code sample

Code sample

I've just cloned the example available in the webview_flutter package :
webview_flutter_example

Screenshots or Video

Screenshots / Video demonstration

Screenshot of the demo

Image

Screenshot of the demo with Impeller disabled

Added code in android\app\src\main\AndroidManifest.xml :

<meta-data
    android:name="io.flutter.embedding.android.EnableImpeller"
    android:value="false" />
Image

Logs

Logs
Launching lib\main.dart on FP3 in debug mode...
√ Built build\app\outputs\flutter-apk\app-debug.apk
I/flutter_example( 4450): Late-enabling -Xcheck:jni
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getTouchX()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getTouchY()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getProgress()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getSwipeEdge()I (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getProgress()F (blocked, linking, denied)
W/flutter_example( 4450): Accessing hidden method Landroid/window/BackEvent;->getSwipeEdge()I (blocked, linking, denied)
W/flutter_example( 4450): type=1400 audit(0.0:83): avc: denied { read } for name="max_map_count" dev="proc" ino=49468 scontext=u:r:untrusted_app:s0:c172,c256,c512,c768 tcontext=u:object_r:proc_max_map_count:s0 tclass=file permissive=0 app=com.example.webview_flutter_example
I/flutter ( 4450): [IMPORTANT:flutter/shell/platform/android/android_context_vk_impeller.cc(61)] Using the Impeller rendering backend (Vulkan).
W/flutter_example( 4450): Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (unsupported,test-api, reflection, allowed)
W/flutter_example( 4450): Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (unsupported, reflection, allowed)
W/flutter_example( 4450): Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (unsupported, reflection, allowed)
W/flutter_example( 4450): Accessing hidden method Landroid/util/LongArray;->get(I)J (unsupported, reflection, allowed)
Connecting to VM Service at ws://127.0.0.1:57867/LZMnvV_7SsE=/ws
Connected to the VM Service.
I/Choreographer( 4450): Skipped 167 frames!  The application may be doing too much work on its main thread.
I/WebViewFactory( 4450): Loading com.android.webview version 138.0.7204.97 (code 720409733)
2
W/ziparchive( 4450): Unable to open '/system/product/app/TrichromeLibrary/TrichromeLibrary.dm': No such file or directory
W/flutter_example( 4450): Entry not found
I/cr_WVCFactoryProvider( 4450): version=138.0.7204.97 (720409733) minSdkVersion=29 isBundle=false multiprocess=true packageId=127
I/cr_LibraryLoader( 4450): Successfully loaded native library
I/cr_CachingUmaRecorder( 4450): Flushed 8 samples from 8 histograms, 0 samples were dropped.
I/cr_CombinedPProvider( 4450): #registerProvider() provider:WV.O6@20ac031 isPolicyCacheEnabled:false policyProvidersSize:0
I/cr_PolicyProvider( 4450): #setManagerAndSource() 0
I/cr_CombinedPProvider( 4450): #linkNativeInternal() 1
D/CompatibilityChangeReporter( 4450): Compat change id reported: 183155436; UID 10172; state: ENABLED
I/cr_AppResProvider( 4450): #getApplicationRestrictionsFromUserManager() Bundle[EMPTY_PARCEL]
I/cr_PolicyProvider( 4450): #notifySettingsAvailable() 0
I/cr_CombinedPProvider( 4450): #onSettingsAvailable() 0
I/cr_CombinedPProvider( 4450): #flushPolicies()
W/chromium( 4450): [WARNING:net/dns/dns_config_service_android.cc:69] Failed to read DnsConfig.
W/chromium( 4450): [WARNING:android_webview/browser/network_service/net_helpers.cc:143] HTTP Cache size is: 20971520
D/CompatibilityChangeReporter( 4450): Compat change id reported: 214741472; UID 10172; state: ENABLED
I/CameraManagerGlobal( 4450): Connecting to camera service
D/CompatibilityChangeReporter( 4450): Compat change id reported: 171228096; UID 10172; state: ENABLED
W/cr_media( 4450): BLUETOOTH_CONNECT permission is missing.
W/cr_media( 4450): getBluetoothAdapter() requires BLUETOOTH permission
W/cr_media( 4450): registerBluetoothIntentsIfNeeded: Requires BLUETOOTH permission
I/AdrenoVK-0( 4450): QUALCOMM build          : 3b5766d, Ia5561a03a2
I/AdrenoVK-0( 4450): Build Date              : 07/20/21
I/AdrenoVK-0( 4450): Shader Compiler Version : EV031.32.02.12
I/AdrenoVK-0( 4450): Local Branch            : 
2
I/AdrenoVK-0( 4450): Remote Branch           : 
I/AdrenoVK-0( 4450): Reconstruct Branch      : 
I/AdrenoVK-0( 4450): Build Config            : S L 10.0.7 AArch64
I/AdrenoVK-0( 4450): Driver Path             : /vendor/lib64/hw/vulkan.adreno.so
I/PlatformViewsController( 4450): Hosting view in view hierarchy for platform view: 0
D/ProfileInstaller( 4450): Installing profile for com.example.webview_flutter_example
I/PlatformViewsController( 4450): PlatformView is using SurfaceProducer backend
W/Parcel  ( 4450): Expecting binder but got null!
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
D/CompatibilityChangeReporter( 4450): Compat change id reported: 193247900; UID 10172; state: ENABLED
I/Choreographer( 4450): Skipped 65 frames!  The application may be doing too much work on its main thread.
W/Parcel  ( 4450): Expecting binder but got null!
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/OpenGLRenderer( 4450): Davey! duration=1150ms; Flags=1, FrameTimelineVsyncId=29337, IntendedVsync=71737706745, Vsync=72817805765, InputEventId=0, HandleInputStart=72827300804, AnimationStart=72827312314, PerformTraversalsStart=72842270491, DrawStart=72869130231, FrameDeadline=71754373411, FrameInterval=72827124762, FrameStartTime=16666666, SyncQueued=72876836950, SyncStart=72944622210, IssueDrawCommandsStart=72944727991, SwapBuffers=72952334450, FrameCompleted=72956013356, DequeueBufferDuration=6486094, QueueBufferDuration=713438, GpuCompleted=72956013356, SwapBuffersCompleted=72954068981, DisplayPresentTime=-4, CommandSubmissionCompleted=72952334450, 
2
W/VideoCapabilities( 4450): Unrecognized profile/level 0/3 for video/mpeg2
I/flutter ( 4450): WebView is loading (progress : 10%)
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/flutter ( 4450): Page started loading: https://flutter.dev/
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): url change to https://flutter.dev/
I/flutter ( 4450): WebView is loading (progress : 23%)
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): Page resource error:
I/flutter ( 4450):   code: -6
I/flutter ( 4450):   description: net::ERR_CONNECTION_REFUSED
I/flutter ( 4450):   errorType: WebResourceErrorType.connect
I/flutter ( 4450):   isForMainFrame: false
I/flutter ( 4450):           
I/flutter ( 4450): Page resource error:
I/flutter ( 4450):   code: -6
I/flutter ( 4450):   description: net::ERR_CONNECTION_REFUSED
I/flutter ( 4450):   errorType: WebResourceErrorType.connect
I/flutter ( 4450):   isForMainFrame: false
I/flutter ( 4450):           
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 70%)
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
W/ImageReader_JNI( 4450): Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
W/ImageReader_JNI( 4450): Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/cr_MediaCodecBridge( 4450): create MediaCodec video decoder, mime video/avc, decoder name OMX.qcom.video.decoder.avc, block_model=false
I/OMXClient( 4450): IOmx service obtained
I/MediaCodec( 4450): MediaCodec will operate in async mode
D/MediaCodec( 4450): flushMediametrics
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba38660, reason connectToSurface
I/MediaCodec( 4450): [OMX.qcom.video.decoder.avc] setting surface generation to 4556801
D/SurfaceUtils( 4450): disconnecting from surface 0x6f8ba38660, reason connectToSurface(reconnect)
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba38660, reason connectToSurface(reconnect)
D/MediaCodec( 4450): keep callback message for reclaim
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 70%)
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba38660 for 1632x1080, color 0x7fa30c06, rotation 0, usage 0x20402900
I/flutter ( 4450): Page resource error:
I/flutter ( 4450):   code: -1
I/flutter ( 4450):   description: net::ERR_FAILED
I/flutter ( 4450):   errorType: WebResourceErrorType.unknown
I/flutter ( 4450):   isForMainFrame: false
I/flutter ( 4450):           
I/cr_MediaCodecBridge( 4450): create MediaCodec video decoder, mime video/avc, decoder name OMX.qcom.video.decoder.avc, block_model=false
I/OMXClient( 4450): IOmx service obtained
I/MediaCodec( 4450): MediaCodec will operate in async mode
D/MediaCodec( 4450): flushMediametrics
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba34240, reason connectToSurface
I/MediaCodec( 4450): [OMX.qcom.video.decoder.avc] setting surface generation to 4556802
D/SurfaceUtils( 4450): disconnecting from surface 0x6f8ba34240, reason connectToSurface(reconnect)
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba34240, reason connectToSurface(reconnect)
D/MediaCodec( 4450): keep callback message for reclaim
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba34240 for 1632x1080, color 0x7fa30c06, rotation 0, usage 0x20402900
I/cr_MediaCodecBridge( 4450): create MediaCodec video decoder, mime video/avc, decoder name OMX.qcom.video.decoder.avc, block_model=false
I/OMXClient( 4450): IOmx service obtained
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/MediaCodec( 4450): MediaCodec will operate in async mode
D/MediaCodec( 4450): flushMediametrics
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba452c0, reason connectToSurface
I/MediaCodec( 4450): [OMX.qcom.video.decoder.avc] setting surface generation to 4556803
D/SurfaceUtils( 4450): disconnecting from surface 0x6f8ba452c0, reason connectToSurface(reconnect)
D/SurfaceUtils( 4450): connecting to surface 0x6f8ba452c0, reason connectToSurface(reconnect)
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 80%)
D/MediaCodec( 4450): keep callback message for reclaim
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
I/flutter ( 4450): WebView is loading (progress : 80%)
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba452c0 for 1632x1080, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba38660 for 1632x1088, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba34240 for 1632x1088, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils( 4450): set up nativeWindow 0x6f8ba452c0 for 1632x1088, color 0x7fa30c06, rotation 0, usage 0x20402900
2
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
2
E/chromium( 4450): [ERROR:gpu/command_buffer/service/image_reader_gl_owner.cc:311] no buffers currently available in the reader queue
I/flutter ( 4450): WebView is loading (progress : 100%)
E/FrameEvents( 4450): updateAcquireFence: Did not find frame.
E/flutter ( 4450): [ERROR:flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc(146)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not allocate device memory for external image : Incomplete
I/flutter ( 4450): WebView is loading (progress : 100%)
I/flutter ( 4450): Page finished loading: https://flutter.dev/
3
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim
E/chromium( 4450): [ERROR:components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc:195] Invalid first_paint 1.788 s for first_meaningful_paint 1.586 s
3
D/MediaCodec( 4450): keep callback message for reclaim

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.32.7, on Microsoft Windows [version 10.0.26100.4652], locale fr-FR) [637ms]
    • Flutter version 3.32.7 on channel stable at C:\Users\adrie\AppData\Local\Flutter\Sdk
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d7b523b356 (7 days ago), 2025-07-15 17:03:46 -0700
    • Engine revision 39d6d6e699
    • Dart version 3.8.1
    • DevTools version 2.45.1

[✓] Windows Version (11 Professionnel 64-bit, 24H2, 2009) [4,8s]

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [5,2s]
    • Android SDK at C:\Users\adrie\AppData\Local\Android\sdk
    • Platform android-36, build-tools 36.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)
    • All Android licenses accepted.

[✓] Chrome - develop for the web [47ms]
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✗] Visual Studio - develop Windows apps [45ms]
    ✗ Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[✓] Android Studio (version 2025.1.1) [40ms]
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)

[✓] VS Code (version 1.102.1) [37ms]
    • VS Code at C:\Users\adrie\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.114.0

[✓] Connected device (4 available) [554ms]
    • FP3 (mobile)      • A209F8600201 • android-arm64  • Android 13 (API 33)
    • Windows (desktop) • windows      • windows-x64    • Microsoft Windows [version 10.0.26100.4652]
    • Chrome (web)      • chrome       • web-javascript • Google Chrome 138.0.7204.158
    • Edge (web)        • edge         • web-javascript • Microsoft Edge 138.0.3351.95

[✓] Network resources [730ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: platform-viewsEmbedding Android/iOS views in Flutter appse: device-specificOnly manifests on certain devicese: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.platform-androidAndroid applications specificallyr: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions