This moves the Metal `GrContext` creation utilities from `GPUSurfaceMetal` into
a separate `IOSContext` object subclass. An analogue of this object was used in
the GL regime for the management of onscreen and offscreen contexts that were
not tied to the lifecycle of the `GPUSurface`. This pattern has now been
generalized for use with all backends that need a resource context
(`IOSContextGL` and `IOContextMetal`).
The platform views controller management in the `ExternalViewEmbedder` interface
implementation was repeated three times for [Metal][metal], [OpenGL](opengl) and
[Software](software) rendering. This repetition has been removed and a single
implementation present in the base `IOSSurface` and used on all platforms.
Addition of new client rendering APIs should not affect how the engine renders
into the platform view interleaving levels.
All rendering API selection logic has been moved into a single set of utilities
in `rendering_api_selection.h`. This enables the removal of a lot of code blocks
guarded by `FLUTTER_SHELL_ENABLE_METAL`. The remaining uses of this will be
removed when unified builds are enabled.
The Metal backend now also adds traces similar to the GL backend.
The `IOGLContext` has been renamed to `IOContextGL` to be more in line with the
convention used in this library.
Fixes https://github.com/flutter/flutter/issues/41827
Adds https://github.com/flutter/flutter/issues/52150
[metal]: 46dbf3a761/shell/platform/darwin/ios/ios_surface_metal.mm (L55)
[opengl]: 46dbf3a761/shell/platform/darwin/ios/ios_surface_gl.mm (L95)
[software]: 46dbf3a761/shell/platform/darwin/ios/ios_surface_software.mm (L146)
This reverts 7205c0e7b3e575a6dd5d14c0c22058ae40f261a3 and re-lands 8b77254d97416bb9b347a578410911ed09efbce3. The 8b77254d97416bb9b347a578410911ed09efbce3 was good. The screenshot changes were expected.
Fixes https://github.com/flutter/flutter/issues/32215
Broke golden file tests in the framework. Reverting to unblock the
engine roll to the framework.
This reverts commit 8b77254d97416bb9b347a578410911ed09efbce3.
We believe this may be implicated in a Windows-specific crash during the
Flutter Gallery integration test.
See:
https://github.com/flutter/flutter/issues/51896
This reverts commit b41f86eb00e16e0dd6e1bfba7d670e05a8dafd4b.
* Safari font collection tests skip failing methods
* add a clear to the semantics test to make sure no DOM elements are leaking to the other tests
* fix semantics_helper_test. skip for semantics_test. teardown didn't work
* skip test, the skipped method run for 8 minutes according to the logs
* history tests methods runs multiple times. only run them on linux for now. they were also already failing in edge/windows
* making edge default test browser on windows. adding some skips (not all) for methods failing on edge
* skip failing tests. make egde default for testing
* skip one more test
* addressing reviewer comments. removing extra bat file