Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

web_compiler_test fails on LUCI in Dart SDK

Ouverte Adaptée aux débutants
#10,032 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
73/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
dart, flutter
Domaine
testing

Piste de recherche

Lisez web_compiler_test.dart autour des lignes 37–45 et comparez ses options Chrome avec web_driver_service.dart autour des lignes 361–369. Exécutez le test webdriver en échec sur LUCI ou dans une configuration headless comparable ; le travail est terminé lorsque le test sélectionne le moteur de rendu skwasm attendu au lieu de revenir à canvaskit.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Recently devtools webdriver tests failed on LUCI in Dart SDK: https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket/8668669452558670145/+/u/test_devtools/stdout?format=raw

Gemini had this to say:

Root Cause of the web_compiler_test.dart Failure on Windows

In web_compiler_test.dart:66-86, the test opens DevTools with ?compiler=wasm and checks that <body flt-renderer="..."> equals 'skwasm', but got 'canvaskit':

  1. When ?compiler=wasm is passed, flutter_bootstrap.js:116-125 calls _flutter.loader.load without forcing a renderer (rendererConfig = {}), letting Flutter's FlutterLoader pick the first compatible build from _flutter.buildConfig.builds (skwasm first, then canvaskit).

  2. FlutterLoader requires browserEnvironment.webGLVersion > 0 for skwasm (checked via canvas.getContext('webgl2') / canvas.getContext('webgl') in browser_environment.js:69-81), whereas canvaskit does not check webGLVersion > 0.

  3. web_compiler_test.dart:37-45 starts Chrome with only 'args': ['--headless']:

    driver = await createDriver(
      uri: Uri.parse('http://127.0.0.1:${ChromeDriver.port}'),
      desired: {
        ...Capabilities.chrome,
        Capabilities.chromeOptions: {
          'args': ['--headless'],
        },
      },
    );
    
  4. Starting in Chrome 139+ (LUCI uses Chrome 155), Chrome disabled automatic fallback to its bundled SwiftShader for WebGL on headless VMs without a hardware GPU unless --enable-unsafe-swiftshader is passed (which is why flutter_tools added SwiftShader flags when rolling Chrome 145+). On the GPU-less Windows LUCI VM, getContext('webgl2') returns null (webGLVersion == -1), causing FlutterLoader to reject the skwasm build and fall back to canvaskit.

Upstream Change Needed in flutter/devtools

In web_compiler_test.dart:37-45, pass the SwiftShader flags (and optionally CHROME_EXECUTABLE as 'binary') in Capabilities.chromeOptions, matching web_driver_service.dart:361-369:

    driver = await createDriver(
      uri: Uri.parse('http://127.0.0.1:${ChromeDriver.port}'),
      desired: {
        ...Capabilities.chrome,
        Capabilities.chromeOptions: {
          if (Platform.environment['CHROME_EXECUTABLE'] case final chromeExe?)
            'binary': chromeExe,
          'args': [
            '--headless',
            if (Platform.isLinux || Platform.isWindows) ...[
              '--use-gl=angle',
              '--use-angle=swiftshader',
              '--enable-unsafe-swiftshader',
              '--disable-gpu-sandbox',
            ],
          ],
        },
      },
    );

Do these words make sense to you, @kenzieschmoll ?

Langage dominant
Dart
Étoiles
1.7k
Forks
407
Merge moyen
3 j 14 h
PR mergées (30 j)
15

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de flutter/devtools

Toutes les issues de flutter/devtools

Issues similaires

Plus d'issues Dart

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.