-
Notifications
You must be signed in to change notification settings - Fork 29.7k
[web] Add 'nonce' prop to flutter.js loadEntrypoint #137204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
/cc @eyebrowsoffire this is the change I wanted to make to /cc @jacobsimionato LMK if the API is acceptable. Repeating the |
jacobsimionato
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.
This looks great! Re the duplication: yep it'd be great to remove when possible, but for now we have wrappers around this anyway, so we can just set the nonce in two places in a way that clients won't have to worry about.
eyebrowsoffire
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!
|
Thanks for the reviews! Let's land this so internal customers get unblocked! |
flutter/flutter@5907c97...a4ec627 2023-10-28 [email protected] Roll Flutter Engine from f5fbd9cd60c6 to 84dcb4fb9301 (1 revision) (flutter/flutter#137468) 2023-10-28 [email protected] Roll Flutter Engine from 03de8a41995b to f5fbd9cd60c6 (2 revisions) (flutter/flutter#137467) 2023-10-28 [email protected] Instrument more disposables. (flutter/flutter#137309) 2023-10-28 [email protected] TextPainter should dispatch creation and disposal events. (flutter/flutter#137416) 2023-10-28 [email protected] Roll Flutter Engine from a76821199d9d to 03de8a41995b (2 revisions) (flutter/flutter#137464) 2023-10-28 [email protected] Roll Flutter Engine from f1e30b4b9f27 to a76821199d9d (3 revisions) (flutter/flutter#137462) 2023-10-28 [email protected] Roll Flutter Engine from 7e2aa68b2f27 to f1e30b4b9f27 (2 revisions) (flutter/flutter#137461) 2023-10-27 [email protected] Roll Flutter Engine from 513e007ed682 to 7e2aa68b2f27 (1 revision) (flutter/flutter#137460) 2023-10-27 [email protected] Roll Flutter Engine from 32bb5b057c86 to 513e007ed682 (3 revisions) (flutter/flutter#137457) 2023-10-27 [email protected] Roll Flutter Engine from f2ec263cebf9 to 32bb5b057c86 (1 revision) (flutter/flutter#137452) 2023-10-27 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 2.22.4 to 2.22.5 (flutter/flutter#137450) 2023-10-27 [email protected] Roll Flutter Engine from 453a04dbf891 to f2ec263cebf9 (2 revisions) (flutter/flutter#137449) 2023-10-27 [email protected] [web] Add 'nonce' prop to flutter.js loadEntrypoint (flutter/flutter#137204) 2023-10-27 [email protected] Roll Flutter Engine from 1e66c0ae7bda to 453a04dbf891 (1 revision) (flutter/flutter#137446) 2023-10-27 [email protected] Provide exception for listing an issue. (flutter/flutter#137092) 2023-10-27 [email protected] Roll Flutter Engine from 0bba9eeb8f5d to 1e66c0ae7bda (1 revision) (flutter/flutter#137442) 2023-10-27 [email protected] Roll Flutter Engine from a198ad4e740d to 0bba9eeb8f5d (1 revision) (flutter/flutter#137437) 2023-10-27 [email protected] Bump goldctl in .ci.yaml (flutter/flutter#137441) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages 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 Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Description
This PR adds a
nonceparameter to flutter.js'loadEntrypointmethod.When set, loadEntrypoint will add a
nonceattribute to themain.dart.jsscript tag, which allows Flutter to run in environments slightly more restricted by CSP; those that don't add'self'as a valid source forscript-src.CSP directive
After this change, the CSP directive for a Flutter Web index.html can be:
When CSP is set via a
metatag (like in the test accompanying this change), and to use a service worker, the CSP needs an additional directive:worker-src 'self';When CSP set via response headers, the CSP that applies to
flutter_service_worker.jsis determined by its response headers. See Web Workers API > Content security policy in MDN.)Initialization
If the CSP is set to disallow
script-src 'self', a nonce needs to also be passed toloadEntrypoint:(
nonceshows twice for now, because the entrypoint loader script doesn't have direct access to theinitializeEnginecall.)Tests
Issues
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.