10892 Commits

Author SHA1 Message Date
skia-flutter-autoroll
449a11bedc Roll Fuchsia Linux SDK from 9tLNFbjA1... to knpSoAoZq... (flutter/engine#20944) 2020-09-02 09:43:01 -07:00
skia-flutter-autoroll
712abf928a Roll Skia from 7b46300fe4ff to 1338a37a1add (16 revisions) (flutter/engine#20943) 2020-09-02 09:38:02 -07:00
Emmanuel Garcia
21c1d0ac9f Clear the GL context only after submitting the frame (flutter/engine#20931)
* Clear the GL context only after submitting the frame
* Fix Screenshot test
2020-09-02 08:46:11 -07:00
Gary Qian
a1755b3feb [Android R] Integrate DisplayCutouts into viewportMetrics (flutter/engine#20921) 2020-09-02 05:18:35 -07:00
Yuqian Li
19ebd61442 Revert "Create root isolate asynchronously (#20142)" (flutter/engine#20937)
This reverts commit b3bb6df94c4537240fb563c2394c18ed984a82df.
2020-09-01 22:05:53 -07:00
Jim Graham
22e1f69704 Revert "Adds fuchsia node roles to accessibility bridge updates. (#20385)" (flutter/engine#20936)
This reverts commit 26659fa0fd05b2f3cc3c2e530298659702e1f869.
2020-09-01 21:21:07 -07:00
Gábor
70cb5eec9e Image.toByteData and Picture.toImage implementations (#3) (flutter/engine#20750)
* `Image.toByteData()` was not implemented in either DomCanvas or CanvasKit. This PR covers **both.**
* `Picture.toImage()` was not implemented in either DomCanvas or CanvasKit. This PR covers **CanvasKit**
2020-09-01 17:01:18 -07:00
Emmanuel Garcia
12b8249404 Ensure all images are closed in FlutterImageView (flutter/engine#20842) 2020-09-01 16:57:45 -07:00
Alexander Brusher
26659fa0fd Adds fuchsia node roles to accessibility bridge updates. (flutter/engine#20385) 2020-09-01 13:33:02 -07:00
chenjianguang
b3bb6df94c Create root isolate asynchronously (flutter/engine#20142)
## Description
As the related issue refer, the application may be doing too much work on its main thread even in a simple hello_world demo.
That is because the creation of `Engine` on the ui thread takes a noticeable time, and it is blocking the platform thread in order to run `Shell::Setup` synchronously.
The cost of `Engine`'s constructor is mainly about the creating of root isolate. Actually, there used to be another time-consuming process, the default font manager setup, which was resolved by https://github.com/flutter/engine/pull/18225. 
Similar to https://github.com/flutter/engine/pull/18225, this pr move the creation of root isolate out from creating `Engine`. After this action, the main thread blocking is quite an acceptable slice.

## Related Issues
https://github.com/flutter/flutter/issues/40563 could be resolved by this pr.
2020-09-01 13:31:00 -07:00
skia-flutter-autoroll
e5c71ad2c6 Roll Skia from 3913d3e137ed to 7b46300fe4ff (4 revisions) (flutter/engine#20924) 2020-09-01 11:08:01 -07:00
skia-flutter-autoroll
589860265e Roll Fuchsia Linux SDK from _SVZn8uN2... to 9tLNFbjA1... (flutter/engine#20920) 2020-09-01 11:03:02 -07:00
stuartmorgan
d8919860ab Default C++ wrapper templates to EncodableValue (flutter/engine#20760)
The C++ wrapper makes heavy use of templates to support arbitrary types
in the platform channel classes, but in practice EncodableValue is what
essentially all code will use. This defaults those template types to
reduce boilerplate in plugin code (e.g., allowing the use of
MethodChannel<> instead of MethodChannel<EncodableValue>).
2020-09-01 10:56:46 -07:00
Jason Simmons
4bd9085a47 Pass text input key events to the EventResponder if they do not yield characters (flutter/engine#20912)
If the InputConnectionAdaptor receives a key event that does not move
the caret or produce a text character (such as the back button), then
the event should be given to the EventResponder which will forward it
to the view.

Fixes https://github.com/flutter/flutter/issues/64864
2020-08-31 17:56:09 -07:00
Jason Simmons
5aa323a30c Reset Shell::weak_factory_gpu_ on the raster thread (flutter/engine#20869) 2020-08-31 16:03:02 -07:00
stuartmorgan
f38bc774e7 [windows] Add horizontal scroll support (flutter/engine#20668)
The embedding was only handling vertical scroll events from the OS; this
adds horizontal as well.

Fixes https://github.com/flutter/flutter/issues/60835
2020-08-31 16:01:38 -07:00
skia-flutter-autoroll
1830e42468 Roll Skia from 44e96bee4b6a to 3913d3e137ed (2 revisions) (flutter/engine#20909) 2020-08-31 15:48:02 -07:00
Emmanuel Garcia
6f802144be Wait for first frame before checking layer tree (flutter/engine#20910) 2020-08-31 15:03:31 -07:00
xster
7b62a6c11a Add auto plugin registration to FlutterFragmentActivity as well (flutter/engine#20865) 2020-08-31 13:43:46 -07:00
skia-flutter-autoroll
467d29ac83 Roll Skia from db5582b71116 to 44e96bee4b6a (4 revisions) (flutter/engine#20908) 2020-08-31 13:23:02 -07:00
Emmanuel Garcia
2f8279900b Reland: Enable hybrid composition by default on Android (#20722) (flutter/engine#20864)
This reverts commit bb885a23e20d79c163dc884530acaafd6c311f2a.
2020-08-31 12:17:11 -07:00
skia-flutter-autoroll
1d7f442c77 Roll Skia from ffd61ca01246 to db5582b71116 (2 revisions) (flutter/engine#20904) 2020-08-31 11:18:01 -07:00
skia-flutter-autoroll
dada8a8e82 Roll Fuchsia Linux SDK from URyuiPqyX... to _SVZn8uN2... (flutter/engine#20903) 2020-08-31 11:13:02 -07:00
Emmanuel Garcia
2308969ed6 Fix race condition (flutter/engine#20905) 2020-08-31 10:11:41 -07:00
skia-flutter-autoroll
0c957e9594 Roll Skia from c23eeb8c78ec to ffd61ca01246 (1 revision) (flutter/engine#20901) 2020-08-31 08:08:02 -07:00
skia-flutter-autoroll
84098030b8 Roll Skia from ba1e083d37f6 to c23eeb8c78ec (3 revisions) (flutter/engine#20893) 2020-08-31 01:58:01 -07:00
skia-flutter-autoroll
7e1d09247e Roll Skia from 85f51b2a409c to ba1e083d37f6 (1 revision) (flutter/engine#20892) 2020-08-30 22:58:01 -07:00
Chris Bracken
5f363dcee6 Improve the precision of lerpDouble (flutter/engine#20879)
Reduces errors caused by the loss of floating point precision when the
two extrema of the lerp differ significantly in magnitude. Previously,
we used the calculation:

    a + (b - a) * t

When the difference in magnitude between `a` and `b` exceeds the
precision representable by double-precision floating point math, `b - a`
results in the larger-magnitude value of `a` or `b`. The error between
the value produced and the correct value is then scaled by t.

A simple example of the impact can be seen when `a` is significantly
larger in magnitude than `b`. In that case, `b - a` results in `a` and
when `t` is 1.0, the resulting value is `a - (a) * 1.0 == 0`.

The patch transforms the computation to the mathematically-equivalent
expression:

    a * (1.0 - t) + b * t

By scaling each value independently, the behaviour is more accurate.
From the point of view of performance, this adds an extra
multiplication, but multiplication is relatively cheap and the behaviour
is significantly better.

This patch also adds a `precisionErrorTolerance` constant to
test_utils.dart and migrates existing tests to use `closeTo()` for
testing.

The tests themselves *do* currently use values that have an exact
floating-point representation, but we should allow for flexibility in
future implementation changes.
2020-08-30 22:26:10 -07:00
Ferhat
aaefbb493c [web] Fix path clip crash when reused (flutter/engine#20846) 2020-08-30 19:35:39 -07:00
skia-flutter-autoroll
4fb1e6175b Roll Fuchsia Linux SDK from UAi35C_0e... to URyuiPqyX... (flutter/engine#20889) 2020-08-30 11:33:01 -07:00
Chris Bracken
f113960205 lerpDouble: stricter handling of NaN and infinity (flutter/engine#20871)
Previously, the behaviour of lerpDouble with respect to NaN and infinity
was relatively complex and difficult to reason about. This patch
simplifies the behaviour with respect to those conditions and adds
documentation and tests.

In general, if `a == b` or both values are null, infinite, or NaN, `a`
is returned. Otherwise we require `a` and `b` and `t` to be finite or
null and the result of the linear interpolation is returned.
2020-08-30 11:08:59 -07:00
Chris Bracken
d42e2f004c Extract Dart test utilities library (flutter/engine#20874)
This extracts a Dart test utilities library, containing
`expectAssertion` and `expectArgumentError` functions that simplify
running tests that test assertions across debug, profile, and release
configurations.

This change also restricts Dart unit tests to testing files whose
filename matches `*_test.dart` under `flutter/testing/dart`; previously
any file in that directory was run, but all files matched the above
pattern.
2020-08-30 11:07:05 -07:00
skia-flutter-autoroll
02bc5ffa90 Roll Skia from 3872c989512c to 85f51b2a409c (1 revision) (flutter/engine#20888) 2020-08-30 09:23:01 -07:00
skia-flutter-autoroll
8cee49c7ae Roll Skia from d5961b33e87f to 3872c989512c (1 revision) (flutter/engine#20887) 2020-08-30 07:23:01 -07:00
skia-flutter-autoroll
9f7b181e23 Roll Skia from 8702b8f4444f to d5961b33e87f (1 revision) (flutter/engine#20885) 2020-08-30 00:48:01 -07:00
xster
c09700b409 Add a java injector for testing (flutter/engine#20789) 2020-08-29 22:29:23 -07:00
skia-flutter-autoroll
caf1b0b806 Roll Fuchsia Linux SDK from KkG4iMAx5... to UAi35C_0e... (flutter/engine#20883) 2020-08-29 22:13:01 -07:00
Chris Bracken
399a7961cd Add integer input tests for lerpDouble (flutter/engine#20880)
The `a` and `b` parameters to `lerpDouble` have type `num`. This adds
tests for integer parameter values.
2020-08-29 16:48:41 -07:00
skia-flutter-autoroll
1cba2c8570 Roll Skia from 5d3314c53ce5 to 8702b8f4444f (1 revision) (flutter/engine#20878) 2020-08-29 12:33:01 -07:00
skia-flutter-autoroll
8e9330d955 Roll Fuchsia Linux SDK from eOA32nYKY... to KkG4iMAx5... (flutter/engine#20876) 2020-08-29 07:28:02 -07:00
skia-flutter-autoroll
36d3b3fd3f Roll Skia from 6fd391a016f3 to 5d3314c53ce5 (1 revision) (flutter/engine#20875) 2020-08-29 07:23:02 -07:00
skia-flutter-autoroll
58de64e442 Roll Fuchsia Linux SDK from jyKllAGRu... to eOA32nYKY... (flutter/engine#20870) 2020-08-28 18:08:02 -07:00
Emmanuel Garcia
9d05be2966 Add ability to disable the raster thread merger (flutter/engine#20800) 2020-08-28 17:25:00 -07:00
skia-flutter-autoroll
28aa4c1ccc Roll Skia from 6052c0bee0d9 to 6fd391a016f3 (5 revisions) (flutter/engine#20866) 2020-08-28 16:18:02 -07:00
Chris Bracken
6a210704a8 lerpDouble: add tests for NaN, infinity (flutter/engine#20848)
Adds tests for lerpDouble for cases where NaN or infinite values are
passed. These tests simply specify the current behaviour.
2020-08-28 15:11:15 -07:00
skia-flutter-autoroll
ab7adb1d36 Roll Skia from 280fa3d303bf to 6052c0bee0d9 (6 revisions) (flutter/engine#20859) 2020-08-28 14:48:02 -07:00
Greg Spencer
408d2228fa Reland: Implement delayed event synthesis key event handling for Android (flutter/engine#20736)
This re-lands the key event synthesis implementation for Android (Original PR: #19024, Revert PR: #19956). The only difference is sending the synthesized key events to the root view instead of the current view.

Without sending it to the root view, the system doesn't have any chance of handling keys like the back button. The event will still not be sent to the framework twice, since we turn off event propagation while re-dispatching the event.
2020-08-28 14:45:38 -07:00
Mouad Debbar
fd88de8492 [web] Better format for line break tests (flutter/engine#20767) 2020-08-28 14:43:01 -07:00
David Worsham
c852497059 fuchsia: create new flutter_runner render path (flutter/engine#19584) 2020-08-28 14:17:17 -07:00
nturgut
8a60d590bc Fix debugging issue (flutter/engine#20841) 2020-08-28 10:03:55 -07:00