4243 Commits

Author SHA1 Message Date
Tong Mu
9b1a97cba6 Revert "[macOS] Make FlutterEngine support multiple views (#37976)" (flutter/engine#39536) 2023-02-10 10:18:41 -08:00
Brandon DeRosier
4d586c0346 Add Animated PNG demuxer (flutter/engine#31098) 2023-02-09 22:34:05 -08:00
Callum Moffat
a367fdc132 Fix position of BackdropFilter above PlatformView (flutter/engine#39244)
* Fix position of BackdropFilter in PlatformView

* Add check of PushFilterToVisitedPlatformViews
2023-02-09 23:58:28 +00:00
Rulong Chen(陈汝龙)
97d65c8a45 [ios] Convert int in Dart to long long in Objective-C. (flutter/engine#39331)
For native targets, an `int` in Dart maps to a signed 64-bit integer representation.
2023-02-09 23:01:22 +00:00
Tong Mu
9aeba94a67 [macOS] Make FlutterEngine support multiple views (flutter/engine#37976)
* Rebase all

* Do not remove views on hot restart

* Remove log, fix doc

* Apply suggestions from code review

Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>

* getDefaultView

* postpone deprecation. Add TODO

* Apply suggestions from code review

Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>

* Change to single

* Update FlutterEngine.h

* Update FlutterEngine_Internal.h

---------

Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
2023-02-09 22:58:19 +00:00
Loïc Sharma
f5f5854e7f [Windows] Prepare keyboard & text input plugins for multi-view (flutter/engine#39464)
* Start

* Add keyboard reset hook

* Update comment

* Format
2023-02-09 22:25:59 +00:00
Matej Knopp
7c8036349d Reland "[macos] Move TextInputPlugin outside of visible area" (flutter/engine#39194) 2023-02-09 21:08:48 +00:00
yaakovschectman
3a963aaf6a Enable UIA in Window (flutter/engine#39513)
* Enable UIA

* Unit test getobject

* Formatting

* Formatting

* Formatting

* Formatting
2023-02-09 15:04:07 -05:00
Jonah Williams
ffc4619fc1 increase first frame timeout (flutter/engine#39504) 2023-02-09 02:08:22 +00:00
Chris Yang
d1a1fc6b90 Revert "Revert "[ios_platform_view] MaskView pool to reuse maskViews. (#38989)" (#39490)" (flutter/engine#39498)
This reverts commit 817f10b675dc620532990579dd56cfc890e54801.
2023-02-08 23:42:54 +00:00
chunhtai
7f0ffe360f Migrate iOS and Android to use pushRouteInformation (flutter/engine#39372)
* Migrate iOS and Android to use pushRouteInformation

* revert

* fix test
2023-02-08 20:00:58 +00:00
Amit Uttamchandani
091acd9397 Disable mouse-input-test (flutter/engine#39492)
See http://fxbug.dev/121501

Co-authored-by: Amit Uttamchandani <amituttam@google.com>
2023-02-08 11:31:31 -08:00
Chris Yang
817f10b675 Revert "[ios_platform_view] MaskView pool to reuse maskViews. (#38989)" (flutter/engine#39490)
This reverts commit 353f0b5b32ff9f3199f5fad0a02110e539c017e8.
2023-02-08 19:14:06 +00:00
Chris Bracken
7d5af83621 [macOS] Support text input autocomplete (flutter/engine#39460)
By default, autocomplete is enabled during text input on macOS. On Macs
with the touchbar enabled, the current text input and any suggested
autocompletions are listed in the touchbar.

This adds support for disabling autocomplete when autofill is disabled,
when obscureText is set in the text input configuration, and when the
autofill hint type is "password" or "username". When an AutofillGroup is
in use, we disable autocomplete for all fields within the group when any
of the fields disables autocomplete.

While OS-level autocomplete support is far more robust on iOS, this
behaviour matches our enable/disable state management behaviour on that
platform.

Issue: https://github.com/flutter/flutter/issues/119824
2023-02-07 20:23:32 -08:00
Loïc Sharma
0dbedd3617 [Windows] Remove accessibility root assumptions (flutter/engine#39441)
* [Windows] Remove accessibility root assumptions

* Improve tests

* Improve comment

* Use helper

* Add TODO

* Fix

* Make test more thorough

* Add assertion

* More assertions

* Format

* Tweak comments based off feedback
2023-02-07 23:27:07 +00:00
hangyu
13c33441ef Override _accessibilityHitTest to fix IOS 16 semantics issues (flutter/engine#38794)
* Update SemanticsObject.mm

* lint

* Update SemanticsObjectTest.mm

test

Update SemanticsObjectTest.mm

Update SemanticsObjectTest.mm

test

test

Update SemanticsObject.mm

Update SemanticsObjectTest.mm

Update SemanticsObjectTest.mm

Update SemanticsObject.mm

Update SemanticsObjectTest.mm

update

Update SemanticsObjectTest.mm

* Update SemanticsObjectTest.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update shell/platform/darwin/ios/framework/Source/SemanticsObject.mm

Co-authored-by: chunhtai <47866232+chunhtai@users.noreply.github.com>

* Update SemanticsObject.mm

* hittestorder

* Update SemanticsObject.h

* Update accessibility_bridge.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObject.mm

* Update SemanticsObjectTest.mm

* Update SemanticsObject.mm

* Update accessibility_bridge_test.mm

---------

Co-authored-by: chunhtai <47866232+chunhtai@users.noreply.github.com>
2023-02-07 22:25:53 +00:00
Jake Schafer
ec42a1d6e0 iOS keyboard animation synchronization (flutter/engine#37604)
* first keyboard commit

* first keyboard commit

* cleaned up from initial testing

* added keyboard animation stop calculation

* added keyboard animation stop calculation

* lucky updates :)

* type change

* final touches

* final touches

* final touches

* removed KeyboardAnimationView class

* removed KeyboardAnimationView class

* dynamic keyboard spring curve implementation

* broke out spring curve to own objc files

* broke out spring curve to own objc files

* simplified and added test

* modified spring formula to use damping

* added logic for compounding simultaneous animation calls

* remove unnecessary code

* cleanup

* cleanup

* update springCurveIos file

* cleaning up

* simple optimizations

* comment update

* bool update

* credit spring calculation project

* improved setupKeyboardAnimationCureveIfNeeded tests

Improved setupKeyboardAnimationCurveIfNeeded tests

* Optimized compounding animation checks and added new tests

* changed viewport update logic

* Update FlutterViewControllerTest.mm

Updated test nits

* Updated license

* Updated tests

* Cleanup

* Migrated spring class based on React

* Updated syntax

* Update shell/platform/darwin/ios/framework/Source/spring_curve_ios.mm

Co-authored-by: Jenn Magder <magder@google.com>

* Update shell/platform/darwin/ios/framework/Source/spring_curve_ios.h

Co-authored-by: Jenn Magder <magder@google.com>

* Updated naming

* Updated naming

* Optimized spring model calculations

* Improved interpolation accuracy

* Revert "Improved interpolation accuracy"

This reverts commit 6d025129b620db44741f70d659900430d9536628.

* Updated comment

* Updated spring curve comments

* updated to work with third_party spring animation

* updated to use SpringAnimation to/from values

* updated license (removed old files)

* updates

* allow updating springanimation position values

* updated test

* update

* fixes

---------

Co-authored-by: Jenn Magder <magder@google.com>
2023-02-07 01:12:23 +00:00
Loïc Sharma
fb53ce4e48 [Windows] Fix the 'engine restart resets keyboard' test (flutter/engine#39380) 2023-02-07 01:00:09 +00:00
godofredoc
9cf8958796 Fix cpp-wrappers archive. (flutter/engine#39400)
* Fix cpp-wrappers archive.

* Include wrapper headers.
2023-02-06 23:22:04 +00:00
luckysmg
f1582eec0a [iOS] Ensure FlutterView's background color is not nil to avoid CAMetalLayer nextDrawable being time-consuming (flutter/engine#39359)
* ++

* Add tests

* ++
2023-02-04 00:49:03 +00:00
Chris Yang
c05f179a2c [ios] Lock refresh rate to 80fps when threads are merged (flutter/engine#39172)
When there are PlatformViews on the screen (threads merged), Flutter engine cannot consistently hit 120 fps, especially when the PlatformView is animating (scrolling etc), thus producing janks.
This PR locks the refresh rate to 80fps to avoid janks.

Fixes flutter/flutter#116640
2023-02-03 14:30:09 -08:00
Miguel
786803bc70 [fuchsia] fdio_service_connect no longer provides rights which we need (flutter/engine#39374)
fdio_service_connect no longer provides rights. Since we need the READABLE right when opening the debug/ctrl/diagnostics directories, this change uses fdio_open_at.

This change also fixes the Clone to remove specific rights and instead use CLONE_SAME_RIGHTS.

Verified locally that we no longer get ACCESS_DENIED on the diagnostics directory when opening in component manager.
2023-02-03 17:03:36 -05:00
yaakovschectman
ce15fbec0e Use Windows high contrast black/white theme with MaterialApp themes (flutter/engine#39206)
* Check high contrast themes

* Formatting

* Test message sending

* Assert channel name

* Formatting

* Calculate luminance

* Refactor brightness check

* Formatting

* Formatting
2023-02-01 13:21:37 -05:00
Brandon DeRosier
841758cc6c Add SkSurface include to every file where it's used (flutter/engine#39304) 2023-02-01 00:50:58 +00:00
Miguel
ea5b6dfa72 Revert "[fuchsia] Diagnostics directory rights are R* (#39203)" (flutter/engine#39271)
This reverts commit f1bbb9058945878a280c37991d4a4488cda0cb96.
2023-01-30 18:10:56 -08:00
Tong Mu
9d1b539c4a Rebase all (flutter/engine#38855) 2023-01-31 01:00:56 +00:00
Loïc Sharma
f0d59792fa [Windows] Use 'FlutterWindowsEngineBuilder' in keyboard unit tests (flutter/engine#39209)
* [Windows] Refactor the keyboard unit tests

* Kick CI

* Second approach

* Undo unnecessary changes
2023-01-30 23:19:32 +00:00
Loïc Sharma
c6e65f2054 [Windows] Remove dead code from FlutterWindow tests (flutter/engine#39216) 2023-01-30 23:16:37 +00:00
Ben Konyi
d3f45828bf Reland "Remove references to Observatory (#38919)" (flutter/engine#39139)
This reverts commit 5dd945442b230a2c0549ee6d798fda71e031a4a9.
2023-01-30 09:50:09 -05:00
Miguel
f1bbb90589 [fuchsia] Diagnostics directory rights are R* (flutter/engine#39203) 2023-01-27 17:44:24 -05:00
Tamir Duberstein
15f53d515e [fuchsia] Migrate to new RealmBuilder API (flutter/engine#39205)
See https://fxrev.dev/793422.

Missed in 92fca42e0667969b3a78815c77afca9c6acd1c83,
3bfa5c5b1db5391d49cc58f9a23f1b4cd802d3e3 and
d429b674f1dd60590fda077fd893a4493c2b5455.
2023-01-27 15:42:15 -05:00
Zachary Anderson
54e53b326e Fix for downstream C++20 compiler (flutter/engine#39197) 2023-01-27 10:12:19 -08:00
Tamir Duberstein
d429b674f1 [fuchsia] Migrate to new RealmBuilder API (flutter/engine#39196)
See https://fxrev.dev/793422.

Missed in 92fca42e0667969b3a78815c77afca9c6acd1c83 and
3bfa5c5b1db5391d49cc58f9a23f1b4cd802d3e3.
2023-01-27 13:01:28 -05:00
Tamir Duberstein
3bfa5c5b1d [fuchsia] Migrate to new RealmBuilder API (flutter/engine#39175)
See https://fxrev.dev/793422.

Missed in 92fca42e0667969b3a78815c77afca9c6acd1c83.
2023-01-26 17:54:43 -08:00
Hannes Winkler
7e99ce795b properly namespace flutter software pixel formats (flutter/engine#38847)
- rename `kGray8 --> kFlutterSoftwarePixelFormatGray8`
- rename `kRGB565 --> kFlutterSoftwarePixelFormatRGB565`
- etc.
2023-01-26 22:30:17 +00:00
Zachary Anderson
56a4d347ae Revert "[macos] Move TextInputPlugin outside of visible area (#39031)" (flutter/engine#39176)
This reverts commit d06ef7a5bfbed4cba6eb98f47b618803ac6c8a53.
2023-01-26 13:47:58 -08:00
Matej Knopp
d06ef7a5bf [macos] Move TextInputPlugin outside of visible area (flutter/engine#39031)
* [macos] Move TextInputPlugin outside of visible area

* Make plugin empty and add test
2023-01-26 21:12:44 +00:00
J-P Nurmi
d7963e6fa1 [Linux][FlView] fix rendering on startup when shown after plugin registration (flutter/engine#38982)
* [FlView] fix rendering on startup when shown after plugin registration

* Add clarifying comment
2023-01-26 21:11:20 +00:00
Tamir Duberstein
92fca42e06 [fuchsia] Migrate to new RealmBuilder API (flutter/engine#39163)
See https://fxrev.dev/793422.
2023-01-26 11:15:23 -08:00
Tong Mu
02a18907ce Reland "[macOS] Formalize FlutterViewController's initialization flow, and prohibit replacing" (flutter/engine#39145)
* Revert "Revert "[macOS] Formalize FlutterViewController's initialization flow, and prohibit replacing (#38981)" (#39144)"

This reverts commit be4ea1a42d27ca88007f9013fd7c5526087b3268.

* Fix?
2023-01-26 00:13:47 +00:00
Tong Mu
be4ea1a42d Revert "[macOS] Formalize FlutterViewController's initialization flow, and prohibit replacing (#38981)" (flutter/engine#39144)
This reverts commit a8242f0b392a03c4c8fb3d299cabceb06462a647.
2023-01-25 15:16:59 -08:00
Tong Mu
a8242f0b39 [macOS] Formalize FlutterViewController's initialization flow, and prohibit replacing (flutter/engine#38981)
This PR adds FlutterViewController.id, and formalizes how FlutterViewController is initialized by FlutterEngine:
When FlutterViewController is set to the engine, the engine calls FlutterViewController#attachToEngine:withId:.
When FlutterViewController is unset from the engine, the engine calls FlutterViewController#detachFromEngine.
This allows the ID to be generated by the engine.

The default View ID is now 1 instead of 0. In this way, we can use 0 as an empty value, the value for FlutterViewController.id when the FVC is not attached to an engine. (IDs are meant to be opaque, and views should be a map, not an array anyway.)

This PR moves almost all initialization code into FVC's CommonInit to ensure that all init path produces the expected result.

With this PR, FlutterEngine no long supports replacing viewController (from non-null to a different non-null). Setting the view controller (from null to non-null) is intended to allow pre-warming an engine before displaying it in add-to-app, but replacing the view controller does not make much sense.

If the developer wants to persist the state of the view between different windows, they could just attach the view controller to different windows.
In fact, Flutter doesn't even have a way to create a FlutterViewController that is unattached to an engine. All initializers either require an engine or create an engine.
As a result, unit tests that used to create FVC with the wrong initializer are fixed.
2023-01-25 14:32:27 -08:00
Zachary Anderson
daeb8316d7 Only build analyze_snapshot on Linux host (flutter/engine#39129) 2023-01-25 08:35:57 -08:00
Loïc Sharma
6de1c715fb Manually roll ANGLE, vulkan-deps, SwiftShader (flutter/engine#38650) 2023-01-25 00:53:25 +00:00
Loïc Sharma
3119b5c02b Improve crashes if messenger APIs are used incorrectly (flutter/engine#39041)
* Clarify messenger APIs

* Feedback
2023-01-24 23:22:51 +00:00
Ahmed Ashour
51c0a9ec65 Remove superfluous words from comments (flutter/engine#39068)
* Remove superfluous words.

* Format

* Duplicate in consecutive lines.
2023-01-24 09:54:19 -08:00
Constantine Shablya
a38bdae396 [embedder] Fix getting vkGetInstanceProcAddr (flutter/engine#39051) 2023-01-24 01:22:38 +00:00
Chris Yang
353f0b5b32 [ios_platform_view] MaskView pool to reuse maskViews. (flutter/engine#38989)
* reuse maskView

reuse mask view

format

format

draft

draft

fixes

test

* comments

* fix comment

* test for releasing maskView

* updates

* fix
2023-01-21 04:26:04 +00:00
Ben Konyi
002fce29e0 Revert "Remove references to Observatory (#38919)" (flutter/engine#39035)
Reason for revert: breaking Flutter -> plugins roll

This reverts commit 1f603711c7b7afe52dff3872a5035789e3ddba02.
2023-01-20 12:33:40 -05:00
Bruno Leroux
258cde6cd2 [macos] Synthesize modifier keys events on pointer events (flutter/engine#37870)
* [macos] Synthesize modifier keys events on pointer events

* Move test to FlutterViewControllerTest

* Simplify by using 'for in'

Co-authored-by: Bruno Leroux <bruno.leroux@gmail.com>
2023-01-20 10:43:16 +00:00