561 Commits

Author SHA1 Message Date
Daco Harkes
b6c5eff614 WeakPersistentHandle migration (flutter/engine#19843)
and roll Dart to 52783837369de45d3372cb6c6b7cdd63e71cd829.
2020-11-03 13:06:53 +01:00
Chris Yang
4512036697 update golden (flutter/engine#22247) 2020-11-02 08:03:53 -08:00
xster
256561e284 disable AppLifecycleTests (flutter/engine#22236) 2020-10-30 15:44:18 -07:00
Chris Yang
fba0836112 Report image diff status for iOS scenario golden tests (flutter/engine#22230) 2020-10-30 13:05:34 -07:00
Siva
f5ef63edb2 Manual roll of Dart 1a18fff9ad2e...ba80ed989cc (flutter/engine#22216) 2020-10-29 21:28:01 -07:00
stuartmorgan
ff1528235d Add a proc table version of embedder API (flutter/engine#21813) 2020-10-29 13:13:03 -07:00
Kaushik Iska
5fe332317b Reland [ios] Refactor IOSSurface factory and unify surface creation (flutter/engine#22016) 2020-10-29 11:58:03 -07:00
Yuqian Li
5fbc34bfcf Allow parse_and_send to use access tokens (flutter/engine#22019) 2020-10-28 17:57:03 -07:00
godofredoc
58515d6a7f Add metrics scripts in preparation to move the builder to LUCI. (flutter/engine#22086)
* Add metrics scripts in preparation to move the builder to LUCI.

Bug:
  https://github.com/flutter/flutter/issues/67579

* set -ex to fail scripts inmediately.
2020-10-26 12:49:23 -07:00
Chris Bracken
736d19ecbf Fix _lerpInt precision bug (flutter/engine#22089)
Fixes a precision bug was introduced in 5f363dc, which improved the
precision of lerpDouble when the extrema differed significantly in
magnitude.

_lerpInt doesn't have this issue since the extrema are passed as 64-bit
twos-complement values, therefore the difference will always be accurate
so long as it doesn't overflow. This reverts the _lerpInt implementation
to the original a + (b - a) * t, but adds a test to avoid a regression
if anyone is tempted to make it consistent with the others.
2020-10-24 09:49:21 -07:00
Dan Field
fb578c4ede Revert "Add a golden scenario test for fallback font rendering on iOS take 2 (#22033)" (flutter/engine#22095)
This reverts commit 97eed1d8e4523b6049eb7742c4bb9308489b16b2.
2020-10-23 21:10:24 -07:00
Filip Filmar
cb5828068f [fuchsia] Adds a test for timezone change (flutter/engine#21934) 2020-10-23 18:52:02 -07:00
Dan Field
ab0d43bf69 Add debugDisposed to Image (flutter/engine#21547) 2020-10-23 10:27:02 -07:00
xster
97eed1d8e4 Add a golden scenario test for fallback font rendering on iOS take 2 (flutter/engine#22033) 2020-10-22 17:12:01 -07:00
Greg Spencer
06b6f8af89 Reland: Migration to PlatformDispatcher and multi-window (flutter/engine#21932)
This re-lands #20496 and #21780 after fixing the semantics-enabling code that was causing the post-submit web_smoke_test to fail.

Below is the description from the original PR:

This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-22 14:54:25 -07:00
Clement Skau
559463b492 Enable lazy-async-stacks by-default in all modes (Take 4) (flutter/engine#21802) 2020-10-20 10:31:15 +02:00
godofredoc
f5f38e9000 Collect logs in the background. (flutter/engine#21828)
* Collect logs in the background.

* Use fuchsia_ctl log_file option.

* Delete the correct file.

* Remove commented code.
2020-10-16 21:51:37 -07:00
Chris Bracken
2a726cbb36 Eliminate unnecessary linter opt-outs (flutter/engine#21935)
Eliminates FLUTTER_NOLINT where they can be landed without triggering
lint failures.
2020-10-16 17:24:23 -07:00
Chinmay Garde
db5c793ed5 Enable loading snapshots with sound null safety enabled. (flutter/engine#21820)
Snapshots compiled with sound null-safety enabled require changes to the way in
which isolates are launched. Specifically, the `Dart_IsolateFlags::null_safety`
field needs to be known upfront. The value of this field can only be determined
once the kernel snapshot is available. This poses a problem in the engine
because the engine used to launch the isolate at shell initialization and only
need the kernel mappings later at isolate launch (when transitioning the root
isolate to the `DartIsolate::Phase::Running` phase). This patch delays launch of
the isolate on the UI task runner till a kernel mapping is available. The side
effects of this delay (callers no longer having access to the non-running
isolate handle) have been addressed in this patch. The DartIsolate API has also
been amended to hide the method that could return a non-running isolate to the
caller.  Instead, it has been replaced with a method that requires a valid
isolate configuration that returns a running root isolate. The isolate will be
launched by asking the isolate configuration for its null-safety
characteristics.

A side effect of enabling null-safety is that Dart APIs that work with legacy
types will now terminate the process if used with an isolate that has sound
null-safety enabled. These APIs may no longer be used in the engine. This
primarily affects the Dart Convertors in Tonic that convert certain C++ objects
into the Dart counterparts. All known Dart Converters have been updated to
convert C++ objects to non-nullable Dart types inferred using type traits of the
corresponding C++ object. The few spots in the engine that used the old Dart
APIs directly have been manually updated. To ensure that no usage of the legacy
APIs remain in the engine (as these would cause runtime process terminations),
the legacy APIs were prefixed with the `DART_LEGACY_API` macro and the macro
defined to `[[deprecated]]` in all engine translation units. While the engine
now primarily works with non-nullable Dart types, callers can still use
`Dart_TypeToNonNullableType` to acquire nullable types for use directly or with
Tonic. One use case that is not addressed with the Tonic Dart Convertors is the
creation of non-nullable lists of nullable types. This hasn’t come up so far in
the engine.

A minor related change is reworking tonic to define a single library target.
This allows the various tonic subsystems to depend on one another. Primarily,
this is used to make the Dart convertors use the logging utilities. This now
allows errors to be more descriptive as the presence of error handles is caught
(and logged) earlier.

Fixes https://github.com/flutter/flutter/issues/59879
2020-10-16 14:53:26 -07:00
Chris Bracken
ef868edd36 Eliminate FLUTTER_NOLINT where possible (flutter/engine#21904)
This removes most of the remaining FLUTTER_NOLINT comments and opts
these files back into linter enforcement.

I've filed https://github.com/flutter/flutter/issues/68273 to require
that all FLUTTER_NOLINT comments be followed by a GitHub issue URL
describing the problem to be fixed.
2020-10-16 12:44:49 -07:00
Dan Field
1c9b3e2299 Ocmock dylib (flutter/engine#21786)
- Build OCMock as a dylib for iOS tests
- Set install_name for ios_flutter_test and ocmock dylibs
- Copy and sign dylibs during build process
2020-10-13 09:36:29 -07:00
Yuqian Li
0c645869e3 Revert "Migration to PlatformDispatcher and multi-window #20496" (flutter/engine#21792)
* Revert "Fix documentation build for window changes. (#21780)"

This reverts commit a539d91840d2fbbb4aa07eeed6a92d654db167ab.

* Revert "Migration to PlatformDispatcher and multi-window (#20496)"

This reverts commit a58fec63f196175eedfc5fbaedce9336dab5c508.
2020-10-12 19:26:41 -07:00
Zachary Anderson
ebbd3f7a49 Ignore analysis warning for doc comment (flutter/engine#21773)
This is to unblock a Dart -> engine roll.
2020-10-12 10:08:27 -07:00
LongCatIsLooong
5742a097fd Use buildroot clang for scenario app (flutter/engine#21690) 2020-10-12 08:12:02 -07:00
Greg Spencer
a58fec63f1 Migration to PlatformDispatcher and multi-window (flutter/engine#20496)
This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-09 16:29:16 -07:00
Kaushik Iska
6104a7e793 [macOS] flutter_desktop_darwin_unittests can be enabled for all runtime modes (flutter/engine#21681) 2020-10-08 10:12:03 -07:00
Pieter van Loon
3ce29048c0 Enabled metal on ios simulator (flutter/engine#17881) 2020-10-07 17:47:03 -07:00
Kaushik Iska
6db42cf2a9 Run desktop darwin tests in debug mode (flutter/engine#21660) 2020-10-07 16:32:01 -07:00
fredlee12345678
5194240b61 add checker board for clip_path,clip_rect,clip_rrect,physical_shap_layer (flutter/engine#20997) 2020-09-30 10:27:11 -07:00
bungeman
fd93916c27 Replace kLegacyFontHost_InitType with kUnknown_SkPixelGeometry. (flutter/engine#21474)
Skia is removing the deprecated legacy display setting globals and
associated kLegacyFontHost_InitType. This change replaces all such uses
with default surface properties with no special flags and an unknown
pixel geometry. Flutter never set the associated globals, leaving them
with their initial default values, which were no special flags and
horizontal RGB pixel geometry. The values used here are different but
this change should make no difference as Flutter never mentions
SkFont::kSubpixelAntiAlias to take advantage of the pixel geometry.
2020-09-29 12:46:08 -04:00
George Wright
ea9cc6cf3c Run embedder_tests on Fuchsia CI (flutter/engine#21462) 2020-09-28 12:22:02 -07:00
Dan Field
f7bbb7d405 Fix getNextFrame (flutter/engine#21422) 2020-09-25 17:26:59 -07:00
Alexander Brusher
2afe2bffaf Revert "Revert "Adds fuchsia node roles to accessibility bridge updates. (#20385)" (#20936)" (flutter/engine#21367)
This reverts commit 22e1f69704ed0f67b6b57d72197abac4a35f94b3.
2020-09-25 11:07:10 -07:00
Ian Hickson
49b2401dfe Revert "Make drain() consistently asynchronous. (#21062)" (flutter/engine#21391)
This reverts commit 7a237c9b68fc5fc2813c732d316e9cde5a932def.
2020-09-24 18:19:53 -07:00
Ian Hickson
7a237c9b68 Make drain() consistently asynchronous. (flutter/engine#21062) 2020-09-23 22:17:02 -07:00
Dan Field
3b207ab1f7 isCloneOf for Image (flutter/engine#21371)
* isCloneOf for Image

* Update docs, add missing impl
2020-09-23 21:09:44 -07:00
Dan Field
182a38b446 Create an ImageHandle wrapper (flutter/engine#21057)
Allows for reference counting of images before disposal.

This will allow multiple callers to hold a reference to an image and dispose of their reference without disposing the underlying image until all handles have been disposed.

This will be used by the framework to help resolve some of the kludge I was trying to introduce in flutter/flutter#64582
2020-09-23 14:33:29 -07:00
Richard Cai
cf3f9f793a Update docs specifying addPlatformView offset param is not used (flutter/engine#21331)
for Android and iOS and remove offset from scenario_app test for iOS and Android.
2020-09-23 10:37:57 -07:00
Chris Yang
73ae0bb94c Fix iOS platform view's mask view blocking touch events. (flutter/engine#21286) 2020-09-21 15:22:47 -07:00
xster
e1cfc1ac6b Fix a AppLifecycleTest present time race between the animation and the rest of the test (flutter/engine#21107) 2020-09-14 08:50:16 -07:00
Chris Bracken
2586db3b22 Clean up C++ includes (flutter/engine#21127)
Cleans up header order/grouping for consistency: associated header, C/C++ system/standard library headers, library headers, platform-specific #includes.

Adds <cstring> where strlen, memcpy are being used: there are a bunch of places we use them transitively.

Applies linter-required cleanups. Disables linter on one file due to included RapidJson header. See https://github.com/flutter/flutter/issues/65676

This patch does not cover flutter/shell/platform/darwin. There's a separate, slightly more intensive cleanup for those in progress.
2020-09-11 21:18:35 -07:00
Chris Bracken
eaa458dd36 Disable iOS application lifetime Scenario tests (flutter/engine#21125)
This speculatively disables the ApplicationLifecycle Scenarios iOS tests
which continue to fail after being re-enabled in flutter/engine#21087.

Related P0 issue: https://github.com/flutter/flutter/issues/61620
2020-09-11 16:12:22 -07:00
xster
a0944e63b4 re-enable scenario tests on iOS (flutter/engine#21088) 2020-09-11 09:21:37 -07:00
Chris Bracken
9ff7d7ca44 Copyright header hygiene improvements (flutter/engine#21089)
Add copyright headers in a few files where they were missing.

Trim trailing blank comment line where present, for consistency with
other engine code.

Use the standard libtxt copyright header in one file where it differed
(extra (C) and comma compared to other files in libtxt).

This also amends tools/const_finder/test/const_finder_test.dart to look
for a const an additional four lines down to account for the copyright
header added to the test fixture.
2020-09-11 08:55:37 -07:00
Chris Bracken
c117a411ae Re-enable (most) iOS Scenarios tests (flutter/engine#21087)
This re-enables the iOS Scenarios tests which have been flaky in the
last couple days.

Disabling two tests where we've seen the flakes:
* AppLifecycleTests testFlutterViewControllerDetachingSendsApplicationLifecycle
* FlutterViewControllerInitialRouteTest testSettingInitialRoute

This reverts commit 84995bd516d94a3a7e52e752ad666a8b22068498.
2020-09-10 22:57:56 -07:00
xster
7f02d137c3 add back a line to build host for scenario tests (flutter/engine#21076) 2020-09-10 21:05:03 -07:00
Chris Bracken
84995bd516 Disable iOS ScenariosTests suite (flutter/engine#21080)
This disables the macOS Scenarios app tests until a fix for the current
flakiness is found.

This also reverts commit 9ef075582e0dcaa4df990338b931219465ffcbce where
one test was previously disabled. However, another started failing soon
after, so instead we disable the whole suite here.
2020-09-10 19:50:03 -07:00
Chris Bracken
9ef075582e Disable a flaky Scenarios test (flutter/engine#21075)
This disables the macOS Scenarios app test
testFlutterViewControllerDetachingSendsApplicationLifecycle
until a fix for the flakiness is found.

Related issue: https://github.com/flutter/flutter/issues/61620
2020-09-10 13:21:17 -07:00
xster
8e3ed9ca9f Delete unused iOS test scripts after LUCI change (flutter/engine#18712)
This deletes old LUCI build scripts that have been unused since
https://flutter-review.googlesource.com/c/recipes/+/3160
2020-09-09 18:22:45 -07:00
Zachary Anderson
5ef8d060bc Revert "Enable lazy-async-stacks by-default in all modes (Take 3) (#20895)" (flutter/engine#21043)
This reverts commit 4200d23617a13ae4e477483ad43493dd36e4d00b.
2020-09-09 09:25:17 -07:00