* Update prod builders.
This is to make the builders show up in the flutter dashboard.
Bug:
https://github.com/flutter/flutter/issues/63256
* Add mac and windows bots.
* Fix flaky flag.
* Rename taskName as task_name.
This makes the processing of RawKeyboardEventData.getModifierSide consistent among the platforms.
Before this change, some platforms (Android) didn't handle the case where the "either" flag was set, but no side flag was set (e.g. "shift" was set, but not "shift left"), and instead said that no keys were down by returning null (which was wrong).
Some platforms (Linux, Windows) also returned KeyboardSide.any from getModifierSide, when the contract says that it will never return KeyboardSide.any. Those methods now return KeyboardSide.all in the case where no side is specified, as macOS and Fuchsia already did.
Now, all platforms will return KeyboardSide.all from getModifierSide when it's not clear which side the key was on.
This adds an assert in RawKeyboard that catches the case where it tries to send a key down event, but (after synchronizing modifiers) there are no keys in keysPressed. This state can occur if the modifier flags are not set properly for the platform.
Also prevents shortcuts attempting to handle a key down when no keys are pressed at the moment (which was causing a crash in release mode).
It now uses the scroll metrics as they stood at the end of the last frame.
It previously used a weird combination of the old extents and the newish position, which led to some weird effects when the position had been changed in expectation of a viewport or content dimension change.
* Ignore dead_code hints for weak-only null checks.
When https://github.com/dart-lang/sdk/issues/41985 is fixed, the
analyzer will begin detecting dead code due to "unnecessary" null
checks. Since we want to retain null checks in Flutter even when they
appear unnecessary (in order to preserve runtime behavior in weak
mode), we need to suppress these dead code hints.
* Add comments explaining why we're ignoring dead_code hints
* Add native stacktrace field for PlatformException
* Mute the readValue check for stacktrace.
* polish
* Add unit test and further polish
* Added more comments
* remove unnecessary import
* fill in stacktrace to JSONMethodCodec and fix tests
Co-authored-by: Ben Li <libe@google.com>