[web] Add 'nonce' prop to flutter.js loadEntrypoint#137204
Merged
auto-submit[bot] merged 2 commits intoflutter:masterfrom Oct 27, 2023
Merged
[web] Add 'nonce' prop to flutter.js loadEntrypoint#137204auto-submit[bot] merged 2 commits intoflutter:masterfrom
auto-submit[bot] merged 2 commits intoflutter:masterfrom
Conversation
Member
Author
|
/cc @eyebrowsoffire this is the change I wanted to make to /cc @jacobsimionato LMK if the API is acceptable. Repeating the |
jacobsimionato
approved these changes
Oct 26, 2023
Contributor
jacobsimionato
left a comment
There was a problem hiding this comment.
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.
Member
Author
|
Thanks for the reviews! Let's land this so internal customers get unblocked! |
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Oct 28, 2023
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Oct 28, 2023
auto-submit bot
pushed a commit
to flutter/packages
that referenced
this pull request
Oct 28, 2023
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
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Feb 16, 2024
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.
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.