This repository was archived by the owner on Feb 25, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6k
[web] Removes patchCanvasKitModule. #42941
Merged
auto-submit
merged 3 commits into
flutter:main
from
ditman:web-mitigate-browserify-hack
Jun 27, 2023
Merged
[web] Removes patchCanvasKitModule. #42941
auto-submit
merged 3 commits into
flutter:main
from
ditman:web-mitigate-browserify-hack
Jun 27, 2023
Conversation
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
8 tasks
harryterkelsen
approved these changes
Jun 16, 2023
Contributor
harryterkelsen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
mdebbar
approved these changes
Jun 20, 2023
This comment was marked as resolved.
This comment was marked as resolved.
Member
Author
|
I think I'll test this by initializing an engine (ensuring that it's downloaded canvaskit) and then checking that |
fluttermirroringbot
pushed a commit
to flutter/flutter
that referenced
this pull request
Jun 23, 2023
Flutter web uses requireJS in `debug` mode to assemble a DDC-compiled app from a bunch of small files ("modules").
This caused that `canvaskit.js` (and all other modules that used a browserify-like loading header) didn't work because they attempted to use the `define` function provided by Flutter's instance of `requireJS` (which kept the defined modules private, rather than as globals on the page, as the users of the JS expected).
A [fix](flutter/engine#27342) was added to `flutter/engine` to trick loaders into *not* using the `requireJS` module loader, but a recent change in the fix's js-interop layer *subtly* changed its JS output on the page (objects went from `undefined` to `null`), causing this:
* #126131 (and others)
This PR hides a bit of code that is commonly used by module loaders to decide that they may use the `define` function provided by requireJS (so the engine workaround can be removed).
## Next steps
* flutter/engine#42941
## Issues
Partially addresses: #126131 (and others)
## Tests
* Added a unit test to ensure the `delete` stays
* Manually tested with the Gallery app in `debug` mode with a bunch of user-supplied scripts that currently fail to load.
* Also tested hot restart as suggested by @nshahan
After flutter/flutter#129032, this shouldn't be needed anymore.
8e09381 to
cfa7b1a
Compare
Member
Author
|
Added a test for the change. (Also rename other initialization tests inside the initialization directory to not start with initialization, because there's too many initializations in those paths!) |
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Jun 27, 2023
fluttermirroringbot
pushed a commit
to flutter/flutter
that referenced
this pull request
Jun 27, 2023
…129599) flutter/engine@715eff2...f320b8c 2023-06-27 [email protected] [web] Removes patchCanvasKitModule. (flutter/engine#42941) 2023-06-26 [email protected] Roll ANGLE from cafbf6e2660f to cba77bceb26c (1 revision) (flutter/engine#43222) 2023-06-26 [email protected] [Impeller] Fix CPU Porter-Duff blends (flutter/engine#43217) 2023-06-26 [email protected] Roll Skia from c1effc01211e to 370132bcadb1 (2 revisions) (flutter/engine#43221) 2023-06-26 [email protected] Roll ANGLE from 4a4b13cc6931 to cafbf6e2660f (2 revisions) (flutter/engine#43219) 2023-06-26 [email protected] Roll Skia from 4ae209493390 to c1effc01211e (4 revisions) (flutter/engine#43218) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
kjlubick
pushed a commit
to kjlubick/engine
that referenced
this pull request
Jul 14, 2023
**This must land _after_ flutter/flutter#129032 Flutter web uses requireJS in `debug` mode to assemble a DDC-compiled app from a bunch of small files ("modules"). This caused that `canvaskit.js` (then, but probably all other modules that used a browserify-like loading header) didn't work because it attempted to use the `define` function provided by Flutter's instance of `requireJS` (which kept the defined modules private, rather than as globals on the page, as the users of the JS expected). A [fix](flutter#27342) was added to `flutter/engine` to trick loaders into *not* using the `requireJS` module loader, but a recent change in the fix's js-interop layer *subtly* changed its JS output on the page (objects went from `undefined` to `null`), causing this: * flutter/flutter#126131 (and others) After flutter/flutter#129032, the engine fix shouldn't be required anymore, so this PR removes it. ## Issues * Fixes flutter/flutter#126131 (and possibly others) ## Testing * Manually tested with some test apps, and miscellanous JS scripts as reported by users. [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
autosubmit
Merge PR when tree becomes green via auto submit App
platform-web
Code specifically for the web engine
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.
This must land after flutter/flutter#129032
Flutter web uses requireJS in
debugmode to assemble a DDC-compiled app from a bunch of small files ("modules").This caused that
canvaskit.js(then, but probably all other modules that used a browserify-like loading header) didn't work because it attempted to use thedefinefunction provided by Flutter's instance ofrequireJS(which kept the defined modules private, rather than as globals on the page, as the users of the JS expected).A fix was added to
flutter/engineto trick loaders into not using therequireJSmodule loader, but a recent change in the fix's js-interop layer subtly changed its JS output on the page (objects went fromundefinedtonull), causing this:After flutter/flutter#129032, the engine fix shouldn't be required anymore, so this PR removes it.
Issues
Testing
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.