Chris Bracken
68f375fe38
[macOS] support secure restorable state by default ( #151605 )
...
By default, Flutter apps only do default AppKit app serialisation of
Window location etc. and by default, state serialisation in AppKit apps
is compatible with `NSSecureCoding`. AppKit apps generated since Xcode
13.2 include this method in the app delegate generated by the default
app template.
Background
==========
This method was added to opt into having [de]serialization require a
coder implementing the `NSSecureCoding` protocol. Apple wasn't able to
force this across the board, because `NSSecureCoding` limits certain
behaviours during deserialisation, which some third-party apps have have
previously relied on.
Specific background on the sorts of vulnerabilities that
`NSSecureCoding` was designed to prevent are described in the
`NSSecureCoding` documentation:
https://developer.apple.com/documentation/foundation/nssecurecoding?language=objc
A demonstration of a root privilege escalation and SIP bypass
vulnerability is described in the following blog post:
https://sector7.computest.nl/post/2022-08-process-injection-breaking-all-macos-security-layers-with-a-single-vulnerability/
Fixes: https://github.com/flutter/flutter/issues/150062
## Pre-launch Checklist
- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [X] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2024-07-12 11:08:26 -07:00
Loïc Sharma
86135b7774
[macOS] Migrate @NSApplicationMain attribute to @main ( #146848 )
...
This migrates Flutter to use the `@main` attribute introduced in Swift 5.3. The `@NSApplicationMain` attribute is deprecated and will be removed in Swift 6. See: https://github.com/apple/swift-evolution/blob/main/proposals/0383-deprecate-uiapplicationmain-and-nsapplicationmain.md
This change is split into two commits:
1. a508d3e503
- This updates the macOS app template and adds a migration to replace `@NSApplicationMain` uses with `@main`.
2. f43482786e
- I ran `flutter run -d macos` on each Flutter macOS app in this repository to verify the app migrates and launches successfully.
Follow-up to https://github.com/flutter/flutter/pull/146707
Fixes https://github.com/flutter/flutter/issues/143044
2024-04-18 03:08:36 +00:00
Stephen (Alex) Wallen
27bfc511ba
[macOS] Bring up "complex_layout" devicelab, startup tests for x64 ( #110100 )
2022-08-25 23:35:00 +00:00
Zachary Anderson
366648ae90
Revert "Reland: "Update outdated runners in the benchmarks folder ( #91126 )" ( #92535 )" ( #93323 )
...
This reverts commit bfe9c59831
.
2021-11-09 08:44:56 -08:00
Greg Spencer
bfe9c59831
Reland: "Update outdated runners in the benchmarks folder ( #91126 )" ( #92535 )
2021-11-08 21:28:02 -08:00
Zachary Anderson
b412f6fff8
Revert "Update outdated runners in the benchmarks folder ( #91126 )" ( #92106 )
...
This reverts commit 31e3364771
.
2021-10-19 10:35:15 -07:00
Greg Spencer
31e3364771
Update outdated runners in the benchmarks folder ( #91126 )
...
This change updates the platform runners in the benchmarks subdir.
I've attempted to replace the entire group with new code as if the project were recreated with flutter create so that they don't become a Frankenstein of minor changes to make it work again, but just plain old generated code that can be replaced and updated in place.
2021-10-19 08:27:29 -07:00