* Revert "Revert "Android Background Platform Channels (#29147)""
This reverts commit 7ed91e14ccc1f5ffc4cb13d1d37e27d370c8f7cd.
* Made this PR less of a breaking change by keeping setMessageHandler's signature the same
If a class contains a channel, recreating an instance of this class will lead to the following scenario:
- The new channel is created with the same name and assigned with a callback (which overrides the earlier channel's)
- The earlier class is deallocated, deallocating the earlier channel
This PR fixes the problem where the second channel's callback will be cleared by the first channel's deallocation.
* VSyncWaiter on Fuchsia will defer firing until frame start time
The common vsync waiter implementation expects this invariant to be
held.
* Add a test for vsync_waiter
Windows does not provide a system notification the embedder can
subscribe to to determine when a screen reader or other assistive
technology that requires the semantics tree has been enabled. [1]
In the absence of such a notification, we watch for queries for the
IAccessible COM object representing the root node of the semantics tree,
and on receipt of such queries we enable the semantics tree. For the
time being, we assume that if accessiblity is enabled, it will be
enabled for the duration of the application lifetime. In a future patch
we can optimise this by adopting the approach taken by Chromium, which
is to disable semantics if we haven't received a query within some
reasonable timeout.
This patch enables Flutter's semantics tree; a follow-up patch wires in
the AccessibilityBridge which maintains the AXTree of COM objects that
is the Windows representation of the Flutter SemanticsTree.
Issue: https://github.com/flutter/flutter/issues/77838
[1]: https://docs.microsoft.com/en-us/windows/win32/winauto/screen-reader-parameter
* [fuchsia] Keep track of all child transforms in FlatlandExternalViewEmbedder
(cherry picked from commit 0adc38c375cbc982c481771e76b0a464ce95ee79)
* [fuchsia] HandleRemoveview cleanup
The integration test works in debug/jit mode only, and building in
`profile` and `release` modes was not working, breaking some builders.
The workaround was to disable the test.
This PR will enable release/aot mode so it will build, and unblock both
the debug-mode version of the test (tested by CI) and release mode
builds of the repo.
Due to the request to unblock, this PR does not yet build packages in
`profile` mode that will run in Fuchsia, but it should at least build
without errors. Ongoing work is in progress to also support running in
release mode.
When a text input client is cleared, such as when the user changes focus
from one text input widget to another, or when the window itself loses
focus, cancel IME composing mode, close the composing candidates window
(if any), and reset the composing text.
Issue: https://github.com/flutter/flutter/issues/90503
* Reland "Use the systrace recorder if systracing is enabled at startup, and enable systracing in release mode on Android (#28903)" (#29071)"
This reverts commit a7660964b41f64991369341364a43c93317a4a51.
* More logcat
* more logs
* Remove wait
* Avoid plugin registrar exception
* DEFAULT instead of LAUNCHER
* use am instead of monkey
* Update android_systrace_test.py
Bug: fxb/50694
Tested: Ran Spinning Square with the JIT runner.
Some small non-destructive cleanups that should make the CF v2
Flutter runner easier to read in a follow-up PR. No logic is
changed, only naming and location.
Renames Application -> Component. This matches the filename and
Fuchsia's naming.
Moves FileInNamespaceBuffer and related utilities into a separate
file from component.cc. This will enable reusing these utilities
in the CF v2 FLutter runner. Also adds documentation for them.
Renames CreateWithContentsOfFile helper -> LoadFile since that's
what the FML_EVENT_TRACE calls it.
Removes undefined UnregisterApplication method. There are no
usages of this method in our codebase.
Move fields after methods to follow the C++ style guide.