[web] Add Skwasm artifact variant test support#188614
Closed
MarlonJD wants to merge 1 commit into
Closed
Conversation
MarlonJD
force-pushed
the
skwasm-artifact-variant-test-support
branch
from
June 26, 2026 08:30
e606900 to
c11b5b6
Compare
This was referenced Jun 26, 2026
Contributor
Author
|
Closing this draft because it is no longer needed for the Safari enablement path. Safari already selects skwasm_heavy through the existing auto logic, and the remaining enablement work is tracked in #178893 and #186600. The artifact-loading test can still be reused later if maintainers want that coverage. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds explicit Skwasm artifact selection and browser-test coverage for Safari and Firefox.
The new tests prove which Skwasm artifact was loaded and verify that the run did not silently fall back to CanvasKit.
Why now
#188797 fixed the stock
RenderCanvasCSS-size drift observed on Safari, and the corresponding issue #188723 is now closed.With that specific rendering blocker addressed, the next gap is artifact-level confidence. Safari and Firefox automatically select
skwasm_heavy, but existing tests do not prove which runtime files were loaded. This makes it possible to accidentally measure another Skwasm variant, Wimp, or a CanvasKit fallback.This PR makes that selection explicit and testable.
Changes
skwasmVariantwithauto,normal, andheavyoptions.The default remains
auto; existing production selection behavior is unchanged.Local validation
A three-pass local macrobenchmark comparison used the same SDK and browser harness for CanvasKit and Skwasm. The metric is
drawFrameDuration.average; lower is better.skwasmskwasm_heavyskwasm_heavyThe selected artifact was recorded on every run, and the direction did not change across the three passes.
A controlled variant check also showed why this proof matters: forcing normal
skwasmon Safari or Firefox fails during text layout becauseIntl.v8BreakIteratoris unavailable.skwasm_heavyincludes the required text-segmentation data and runs successfully.These are local results supporting the test infrastructure in this PR. They are not a default-enablement or CI-readiness claim.
Scope
This PR does not:
Related: #178893, #188797.
Tests
dart analyze test/skwasm/artifact_loading_test.dart dev/felt_config.dart dev/felt_config_test.dart dev/test_platform.dart dev/test_runner.dart dev/steps/copy_artifacts_step.dartdart test dev/felt_config_test.dart./dev/felt test --suite=firefox-dart2wasm-skwasm-skwasm --suite=safari-dart2wasm-skwasm-skwasm test/skwasm/artifact_loading_test.dart