* Refactor BitmapCanvas. Fix image compositing bug. Allocate canvas lazily
* Fix recording canvas test by restoring context save
* Update recording canvas test for drawColor to show multiply blend
* [web] Fix ParagraphRuler.hitTest
* [web] Add a test-case for paragraph.getPositionForOffset and nested TextSpans
* [web] Add a test-case for paragraph.getPositionForOffset and nested TextSpans
* [web] remove trailing spaces
* [web] avoid differences of overflow-wrap between chrome and firefox
* Launch safari browser
* Adding safari tests to supported browsers
* changing the directrory for redirect file. This works without opening a permision pop-up. Note: there is no headless mode in safari
* addressing reviewer comments
This reverts commit 6ea69a0d4339dd153899bb6c299689f1dd43329d.
On top of the revert, it reverted a commit in the PR:
https://github.com/flutter/engine/pull/14024
This reverts commit ea67e5b0b930ebf552bc7dbd678a35ee6a129c39.
Constructing colors using `fromRGBO` should return the same values as the CSS
`rgba()` notation. rgba(0, 0, 255, 0.5) is the same as `#0000ff80`
However `fromRGBO` sometimes creates a color with an off-by-one alpha value:
expect(Color.fromRGBO(0, 0, 255, 0.5), Color(0x800000ff));
Expected: Color:<Color(0x800000ff)>
Actual: Color:<Color(0x7f0000ff)>
If we use `withOpacity` to create the same color, it returns the correct color:
expect(Color.fromRGBO(0, 0, 255, 1).withOpacity(0.5), Color(0x800000ff));
This should also be changed in lib/web_ui/lib/src/ui/painting.dart in a
followup change.
* Introduce `SkiaObject` an object that's backed by Skia C++ objects that need to be explicitly deleted.
* Automatically delete `SkiaObject`s at the end of frame.
* Make `SkPaint` a `SkiaObject`.
Because `SkiaObject`s are deleted at the end of the frame, the object can be reused as many times as necessary within the frame. `SkPaint` in particular is a fairly expensive object. Reusing this object, for example, on `drawRRect` drops the canvas paint time by 30%.
* adding the default text editing strategy
* [DRAFT] Refactoring text editing. Strategy pattern is used to handle different browser/operating system and a11y behaviour. Unit tests are missing. Documentation needs updating.
* addressing PR comments
* addressing PR comments. Fixing documentation
* fixing persistenttextediting element which is used in a11y mode
* removing texteditingelement and using texteditingstrategy from hybridtextediting. fixing the unit tests. fixing comments
* fix unit tests
* add todos for firefox tests
* fixing chrome/android a11y issue
* [web] Update build_web_compilers to 2.7.1
This was causing problems with the dart compiler location
for web.
The compiler seems to be present in out/host_debug_unopt/dart-sdk/lib/dev_compiler/kernel/amd/dart_sdk.js as opposed to out/host_debug_unopt/dart-sdk/lib/dev_compiler/amd/dart_sdk.js
* also update build_runner
* some logs
* Masking moddifier state for lock keys if the key code is not the same as the modifier. this fixes tab issue happening when numlock/capslock is on.
* removing modifier state for locks
* addresing pr comments'