Migrates to using os_log for app logging on iOS 13 and above, macOS
10.11 and above. On older platform, fall back to syslog(), which is what
we used previously.
This re-lands commit 0f8ec47a019633558f3d51652f2faa53a9fd79f7 with a fix.
That commit was reverted in 1c570178620e77bd1c5969cf8aa783b8f2d543a7.
Migrates to using os_log for app logging on iOS 13 and above, macOS
10.11 and above. On older platform, fall back to syslog(), which is what
we used previously.
* Use Skia to determine "actual" font name.
This way, we don't need to hard-code a mapping of Flutter names
to actual names, we can compute it when the font is registered.
* Refactor to only have loaded and unloaded fonts
This shouldn't result in any logical changes. I've done a quick smoke
test by building a local Android engine and running Flutter gallery, no
compile errors or other obvious issues.
Applied by running `/ci/format.sh | patch -p0` with the altered script
added in flutter/engine#16500. I did locally modify the script slightly
further so it would run against all Java files in the repo instead of
just modified ones.
* Modifies accessibility bridge to populate new node fields in semantics API.
* Adds additional UTs and fixes logic for breaking up updates for nodes with large values.
* Chaged tests to set node flags using bitwise-or instead of addition.
* Address bug in update size arithmetic.
* Fixes issue in TruncatesLargeValue unit test causing unexpected deletes.
* Fixes expected number of updates in BatchesLargeMessages unit test to reflect expected values now that node states are populated.
We now have one mutex guarding all accesses to
the underlying task heaps. This simplifies the more granular
but bug prone mechanism of having striped locks.
This also re-enables GPUThreadMerger tests that are currently
disabled due to their flaky nature. The scenario that gets fixed by this
change is as follows:
1. Thread-1: We lock `queue_meta_mutex_` and grab locks on `queue_1` and release the meta mutex.
2. Thread-1: We add an Observer on `queues` object.
3. Thread-2: We lock `queue_meta_mutex_` and grab locks on `queue_2`.
4. Thread-2: We try to dispose all the pending tasks on `queue_2` which calls `erase` on `queues`.
The above situation is not thread safe without having 1 lock.
Note: This increases the contention on one lock and could potentially be bad for perf. We are
explicitly making this trade-off towards reducing the complexity.
Fixes: https://github.com/flutter/flutter/issues/49007