* logging
* fixing positions with wrong a11y borders screenreader-on/mobile browsers
* remove logs from the window class
* work on unit tests
* using reviewer suggestion for translations
* compute bounding matrix
* compute bounding matrix
* addding more comments
* reenable failing test case
This re-lands #20496 and #21780 after fixing the semantics-enabling code that was causing the post-submit web_smoke_test to fail.
Below is the description from the original PR:
This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.
The design doc for this change is here.
The major changes in this PR:
Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:
Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.
The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
* Workaround for canvas element lacking support for 3d setTransform
* update golden test
* Add webkit workaround
* Implement DOM rendering for perspective
* cleanup
* update goldens lock
* Add check for shader and filtermask for dom use
* Fix svg viewBox. Move zIndex check to bitmap canvas
* Fix null check warning
* Fix scene_builder zIndex=-1 test to force canvas usage
* Add blendmode handling for DOM mode
* Update maxdiff and golden locks
* Remove unused import
* Add drawcolor/drawpaint test. Fix bounds for drawColor/drawPaint
* update golden locks
* adjust drawColor for dpr
* Update test to use canvas
* Fix toDataUrl NNBD
* Update Picture.toImage to use canvas to obstain image data
* Remove write:true from golden calls
* Add fill-rule for _pathToSvgElement
* Update golden locks
* Fix sceneBuilder pushClip / add missing clipBehaviour
* Fix test now that clipping works correctly
* move overflow handling for tests into DOMClip.addOverflow
* Add clipRect to test to keep render inside bitmap canvas area
* Update compositing test, fix drawColor coordinates
* update golden locks
* Skip test for matchGolden infra fail
* update golden lock
* merge
* update maxdiff for text over canvas
* update golden diff
* update paint spread bounds maxdiff
* update paint spread maxDiff
* WIP on Paragraph
* WIP skparagraph
* Add more Paragraph features in CanvasKit mode
* Fix addRoundRect test
* Respond to review comments
* Remove unused (and potentially harmful) getters from Sk classes
* enabling firefox screenshot tests. adding to documentation
* test with correct goldens
* update goldens SHA
* change the goldens with flutter/goldens repo
* do not run preparation step twice. this will cause test_results to be deleted
* Revert "Fix documentation build for window changes. (#21780)"
This reverts commit 931a04683d6eb49fc92059b2384ac5b1618d5422.
* Revert "Migration to PlatformDispatcher and multi-window (#20496)"
This reverts commit 85b0031f73544e448354047dc6a236c0b0808252.
* carrying code
* more changes for carrying the code
* rebase changes onto ios-screenshot tests
* adding screenshot capability to text_editing e2e test
* address some comments
* change enable flag for isUnitTestsScreenshotsAvailable
* addressing the reviewer comments
* change the dependency for path
* add to licencense file
* changing goldens commit no. the new commit has the screenshot goldens
* update readme file
* firefox tests needs LUCI changes
* change to release mode since screenshots were taken in release mode
* change window size
* some argument changes
* small comment change
* test the chrome linux tests again
* use roboto font instead of default font
* addressing reviewer comments
* change commit for goldens
This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.
The design doc for this change is here.
The major changes in this PR:
Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:
Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.
The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
* Move shader.dart into shaders directory
* Add Shader builder basic structure and decls
* rewrite drawVertices with ShaderBuilder
* Fix in parameters in fragment shader to use varying for webgl1