Skip to content

Security

Ian Hickson edited this page Aug 6, 2023 · 1 revision

Best Practices

Runtime assertions

Unopt builds use FML_DCHECK to enable assertion checks across the engine repository. Assertions on dependencies like Dart VM or Skia are not enabled because local and CI builds would be extremely slow. Unopt builds are not published or consumed by the flutter/flutter CI to run integration tests or benchmarks.

Sanitizers

flutter/engine supports thread, address, memory, undefined behavior and leak sanitizers. Sanitizers are not enabled by default but they can be enabled on local builds following the sanitizers with the flutter engine instructions.

Builds with sanitizers, and tests with assertions enabled

flutter/engine runs automated builds with sanitizers and testing with assertions. Testing with assertions is enabled in all the supported platforms and sanitizers are enabled only on the Linux platform. Sanitizer builds:

Tests with assertions enabled:

Flutter Wiki

Process

Framework repo

The Flutter CLI Tool

Engine repo

Packages repo

Engineering Productivity

User documentation

Clone this wiki locally