Fixes an iOS crash on physical devices in `-[__NSCFString substringWithRange:]`: range out of bounds. According to Apple's docs for `UITextInput` method `positionFromPosition:(UITextPosition*)position offset:(NSInteger)offset`, this method should return:
A custom UITextPosition object that represents the location in a document that is at the specified offset from position. Return nil if the computed text position is less than 0 or greater than the length of the backing string.
* [flutter_runner] Reland "[flutter_runner] Improve frame scheduling"
This is a reland of e28c8beaca82998396aacbd37a03942892654e2b
Original change's description:
> [flutter_runner] Improve frame scheduling
>
> FL-233 #comment
>
> This allows the paint tasks for the next frame to execute in parallel
> with presentation of last frame but still provides back-pressure to
> prevent us from queuing up even more work.
>
> Vsync would be disabled whenever a presentation callback was pending
> prior to this change. That had the outcome of causing us to almost
> always miss one vsync interval. By not turning off vsync until
> another Present call is pending we avoid this problem.
>
> Test: fx shell run fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx --base_shell=fuchsia-pkg://fuchsia.com/spinning_cube#meta/spinning_cube.cmx
> Test: topaz input latency benchmarks
> Test: end-2-end tests
> Change-Id: I46440052cd4f98cb0992ec5027584be80f4fb9d3
Change-Id: I1904683d0dfa509ef28482c4b751c28931ab7647
* fix stuff
The compositor context owns the session connection. The creation of the
session connection also does the initial present to clear the node
hierarchy. This present was happening perviously on the platform task
runner while all subsequent presents were on the GPU task runner. This
has now been rectified so all presents are on the GPU task runner.
BUG: FL-288
Change-Id: Ib294666ffb3b4575f93ad0b02a5d0fda71bfa0a8
This exposes the `Settings::leak_vm` flag to custom embedders. All embedder
unit-tests now shut down the VM on the shutdown of the last engine in the
process. The mechanics of VM shutdown are already tested in the Shell unit-tests
harness in the DartLifecycleUnittests set of of assertions. This just exposes
that functionality to custom embedders. Since it is part of the public stable
API, I also switched the name of the field to be something less snarky than the
field in private shell settings.
Use fdio_ns_connect to connect to services in a namespace. For pure
persistant fidl services the old path of creating a file descriptor and
then opening a channel to that file descriptor doesn't work.
We should provide a way to directly connect to a service without first
treating it as a file.
Test:
* workstation.frank, reboot button on main menu works.
* astro, device_settings "erase user data" reboot works.
Change-Id: I725ba9350547309bebb5530aa44236f841d88f99
When |OS_FUCHSIA| is defined (even when |FUCHSIA_SDK| is defined as
well), use the Fuchsia SDK trace macros rather than the Dart timeline.
Reasons for doing this include:
Fuchsia's trace macros support categories. This allows one to
distinguish between (e.g.) "flutter" and "skia" trace events for trace
recording and trace visualization.
Fuchsia has existing in tree benchmarks that depend on finding certain
events under category "flutter".
See the Fuchsia performance mailing list discussion for more context.
The rasterizer may only be accessed safely on the GPU task runner. The test was accessing the same on a non-engine known task runner instead (i.e the tests main task runner).
Crashes previously reproducible on all platforms with the following filters: `--gtest_filter="*ShellTest.SetResourceCacheSize*" --gtest_repeat=-1 --gtest_shuffle --gtest_random_seed=1988` at run ~400.
Fixes https://github.com/flutter/flutter/issues/37629
The API breaks accessibility highlighting because of
SurfaceView#setZOrderOnTop. Deprecate it since the underlying issue is
an Android SDK one that can't be worked around from within a
SurfaceView.
* Use manifest file to better replicate the existing build
Also fix app/bin error
* Add remaining shit
* patch in the remaining stuff
* Update BUILD.gn