Description
Change Intent
The intent is to change the dart:io
SecurityContext
class, used to control the security aspects of a socket connection, from an interface class
to an abstract final class
.
Justification
A user-implemented SecurityContext
cannot be used in place of the dart:io
implementation because the Dart TLS implementation depends on C++ data structures found only in its implementation.
Making SecurityContext
final
also makes it easier for the Dart team to modify in the future e.g. #55679
Impact
This change will break anyone who implements SecurityContext
. On GitHub, I only found two such instances, and both were in tests that just raise if a SecurityContext
method is called e.g. https://github.com/platform-platform/universal_io/blob/37e2dfcae32156b28477365e9dcf357d583098e5/packages/universal_io/lib/src/driver/driver_impl_vm.dart#L499
Mitigation
Developers must modify (or remove) all classes that implement SecurityContext
.
Change Timeline
Remove in Dart 3.5
Associated CLs
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status