2415 Commits

Author SHA1 Message Date
gaaclarke
a2046aeb6c
Revert "fix On iOS, dialog titles are announced twice (#19826)" (#21714) 2020-10-09 19:57:04 -07:00
Alexander Markov
0d151816c3
Remove uses of Dart VM bytecode mode from Flutter engine (#21741) 2020-10-09 16:34:08 -07:00
Greg Spencer
85b0031f73
Migration to PlatformDispatcher and multi-window (#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
George Wright
11d756a62e
Add dart_entrypoint_argc/argv to the FlutterProjectArgs (#21737) 2020-10-09 16:17:02 -07:00
Kaushik Iska
5c1960284a
Fix filesystem access prior to macOS 10.15 (#21740) 2020-10-09 13:42:01 -07:00
Chris Bracken
48d837b7ee
Perform selection check in DeleteSelected (#21711)
At every call site for TextInputModel::DeleteSelected, we perform a
check for a collapsed selection. This moves that check into the method
itself.
2020-10-08 16:02:06 -07:00
Dan Field
48687ca3ca
Forbid android.util.Log (#21696) 2020-10-08 14:52:05 -07:00
J-P Nurmi
2ab369fca1
fl_method_response.cc: fix lint failures (#21406)
Fix lint issues caused by `google-readability-braces-around-statements`.
2020-10-08 14:47:07 -07:00
Hamdi Kahloun
b2ace0cccb
SecurityException: Permission Denial (#21290)
Fix `java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider`

Fixes flutter/flutter#66108

Co-authored-by: Dan Field <dfield@gmail.com>
2020-10-08 14:36:51 -07:00
Kaushik Iska
8b1799b616
[macOS] Fix docs for loadAOTData and minor refactor (#21699) 2020-10-08 11:34:02 -07:00
Kaushik Iska
75bc9360d9
[macOS] flutter_desktop_darwin_unittests can be enabled for all runtime modes (#21681) 2020-10-08 10:12:03 -07:00
Jason Simmons
b474a508a7
Remove dependencies on _product variants of libdart from the Fuchsia release mode build (#21668) 2020-10-08 09:55:43 -07:00
Jonah Williams
15c587404c
Preserve specified AssetResolvers when performing a hot restart or updating the asset directory (#21611)
Follow up from #21436 . That PR works for all embeddings except for Android, which creates a special JNI AssetResolver. Since the shell cannot recreate this resolver, update the logic to preserve existing resolvers instead.
2020-10-08 09:22:01 -07:00
Dan Field
4c6f2ad747
Skip flaky test (#21694) 2020-10-08 08:25:48 -07:00
Chris Bracken
21a6aa2c75
Make TextInputModel::selection_start/end const (#21685)
Neither of these methods mutate the state of the model.
2020-10-07 22:04:02 -07:00
Chris Bracken
fbe6859106
Store selection base/extent as integers (#21663)
Previously, the selection base and extent were stored internally as
iterators over text_. Since iterators must be treated as invalidated
whenever the underlying container changes, this requires that
selection_base_ and selection_extent_ be re-assigned after every change
to text_.

This is not currently particularly problematic, but once we add fields
to track the base and extent of the composing region for multi-step
input method support, as well as support for the sub-range within the
composing region to which edits/completions apply, we end up having to
regenerate a lot of iterators with each change, many of which are
logically unchanged in position.

A side benefit is that this simplifies inspection of these fields when
debugging.
2020-10-07 18:31:17 -07:00
Chinmay Garde
a068e459ae
Avoid leaking the FlutterEngineAOTData structure in FlutterEngineCollectAOTData. (#21680) 2020-10-07 17:57:04 -07:00
Pieter van Loon
85ed656722
Enabled metal on ios simulator (#17881) 2020-10-07 17:47:03 -07:00
Emmanuel Garcia
aab33c155a
Ensure JNI is not called from raster thread (#21665) 2020-10-07 16:37:02 -07:00
Kaushik Iska
15739917f3
[macOS] Allow loading of AOT snapshots and instructions from elf bundle (#21670) 2020-10-07 16:34:49 -07:00
Kaushik Iska
2eac514f26
Run desktop darwin tests in debug mode (#21660) 2020-10-07 16:32:01 -07:00
David Worsham
d5dddf32e7
fuchsia: Don't send ViewportMetrics w/ 0 DPR (#21392) 2020-10-06 17:57:28 -07:00
Justin McCandless
9a7b556f91
hasStrings Linux (#21388)
hasStrings method for clipboard status, Linux
2020-10-06 16:29:12 -07:00
stuartmorgan
042c7f0422
[linux] Allow engine flags via environment vars (#21497)
Adds the ability to pass engine switches temporarily at runtime via
environment variables. Uses the same approach recently added to
Windows and macOS.

This is enabled only for debug/profile to avoid potential issues with
tampering with released applications, but if there is a need for that in
the future it could be added (potentially with a whitelist, as is
currently used for Dart VM flags).

Fixes flutter/flutter#60393
2020-10-06 11:17:19 -07:00
Chris Bracken
7e6191de07
Separate mutators for text and selection (#21612)
Previously, TextInputModel's SetEditingState method was a 1:1 mapping of
the underlying protocol used on the text input channel between the
framework and the engine. This breaks it up into two methods, which
allows the selection to be updated independently of the text, and avoids
tying the API the the underlying protocol.

This will become more important when we add additional state to support
composing regions for multi-step input methods such as those used for
Japanese.

SetText resets the selection rather than making a best-efforts attempt
to preserve it. This choice was primarily to keep the code simple and
make the API easier to reason about. An alternative would have been to
make a best-effort attempt to preserve the selection, potentially
clamping one or both to the end of the new string. In all cases where an
embedder resets the string, it is expected that they also have the
selection, so can call SetSelection with an updated selection if needed.
2020-10-06 11:07:21 -07:00
Sanjay Chouksey
bede93e532
Hookup view connected/disconnected events for platform view codepath (#21576)
This change adds support for forwarding scenic's viewConnected,
viewDisconnected and viewStateChanged events to flutter. The
corrensponding change on fuchsia side is at:
https://fuchsia-review.googlesource.com/c/topaz/+/434356

Test: Includes unittest to verify the events are forwarded.

Co-authored-by: Sanjay Chouksey <sanjayc@google.com>
2020-10-05 22:09:38 -07:00
LongCatIsLooong
77d0760a32
Use absolute path in ios_test_flutter target (#21578) 2020-10-05 10:27:02 -07:00
Chris Yang
9ede9bfa43
iOS: only add explicit transactions when there are platform views (only on main threads) (#21526) 2020-10-02 14:57:01 -07:00
Sanjay Chouksey
af899d6529
Adds response to view requestFocus platformview message (#21550)
This change adds a response to the platform view message: requestFocus
This allows the caller to handle the case when the request fails with
an error value.

Co-authored-by: Sanjay Chouksey <sanjayc@google.com>
2020-10-02 14:20:50 -07:00
Justin McCandless
69cbb2bbb8
iOS Text Editing Infinite Loop (#20160)
Fixes an infinite loop by eliminating an unnecessary engine/framework message.
2020-10-02 13:51:50 -07:00
Jason Simmons
43828e86fa
Workaround for an Android emulator EGL bug that can cause inaccurate GL version strings (#21258) 2020-10-02 12:17:02 -07:00
Jason Simmons
88fd4cea43
Extract the WindowInsetsAnimation.Callback subclass into a separate class that will be lazily loaded (#21548)
WindowInsetsAnimation.Callback was introduced in API level 30.  This
PR moves the text input plugin's WindowInsetsAnimation.Callback subclass
into a class that will only be loaded if the embedding has checked for a
sufficient API level.

See https://github.com/flutter/flutter/issues/66908
2020-10-02 11:23:42 -07:00
David Worsham
2c3fc4aae0
embedder: Exclude GL code (#21544) 2020-10-01 12:20:10 -07:00
Yilong Li
995965d36b
fuchsia: Remove display device availability check from Flutter. (#21495)
When Flutter engine connects to Scenic, Scenic has already
checked the display and graphics device availability before
Scenic starts; so it is guaranteed that display devices are
available and surface is valid when it is created.

Thus this change removes the device watching details from
flutter surface on Fuchsia so that it doesn't need to do
duplicated checks and hides the device-specific details.
2020-10-01 10:08:25 -07:00
stuartmorgan
870b093a0a
Add missing returns in system channels handlers (#21523)
The Windows and GLFW embeddings both had cases of missing returns after
calling `Error` on a method channel result object, leading to incorrect
double-calls on the result if the error paths were ever hit.
2020-09-30 14:34:50 -07:00
Ren You
83b9df9df5
Revert "Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#21163)" (#21513)
This reverts commit 539034ae850d422a5449edcb36c60ad90ac91905.
2020-09-30 09:34:05 -07:00
Felipe Archondo
3268278834
[fuchsia] fix typo (#21488) 2020-09-29 15:48:52 -05:00
Greg Spencer
539034ae85
Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#21163)
This switches from using dispatchKeyEvent to using dispatchKeyEventPreIme so that keys can be intercepted before they reach the IME and be handled by the framework.

It also now intercepts key events sent to InputConnection.sendKeyEvent, as some IMEs do (e.g. the Hacker's Keyboard), and sends the to Flutter before sending them to the IME (which it now only does if they are not handled by the framework).

This fixes the problem where pressing TAB on a hardware keyboard sends the tab to both the text field and to the focus traversal system.

Note that we still can't intercept all keystrokes given to a soft keyboard, only those which the soft keyboard decides to send to InputConnection.sendKeyEvent.
2020-09-29 12:46:29 -07:00
lucasradaelli
20be778250
[fuchsia][a11y] Don't populate hidden state. (#21484) 2020-09-29 10:07:01 -07:00
bungeman
a6a6fd163b
Replace kLegacyFontHost_InitType with kUnknown_SkPixelGeometry. (#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
stuartmorgan
41ce791926
[macos] Allow engine flags via environment vars (#21468)
Replaces the (temporary) compile-time option to pass engine switches
with the ability to pass them temporarily at runtime via environment
variables. This moves the recently-added code for doing this on Windows
to a shared location for use by all desktop embeddings.

This is enabled only for debug/profile to avoid potential issues with
tampering with released applications, but if there is a need for that in
the future it could be added (potentially with a whitelist, as is
currently used for Dart VM flags).

Temporarily adds a way to enable mirrors as a compile time option,
as is already provided in the Linux embedding, to provide a migration
path for the one remaining known need for compile-time options
that has been raised in flutter/flutter#38569.
2020-09-29 09:36:30 -07:00
chunhtai
70f7ef0c05
Reland Apply dpr transform to fuchsia accessibility bridge (#21459)
* Reland "Apply dpr transform to fuchsia accessibility bridge (#21364)"

This reverts commit 9db9a57a24ebb749f6372d2380db97d303191ce4.

* fix test
2020-09-28 12:50:53 -07:00
Kaushik Iska
149df4318d
Reland multiple display support for embedder API (#21464) 2020-09-28 12:35:34 -07:00
George Wright
ab2b0111f7
Enable embedder_unittests on Fuchsia (#21418) 2020-09-28 11:12:02 -07:00
Kaushik Iska
8d165faca1
Revert multiple display support for embedder API (#21456)
This reverts commits
- 67fdd7ededcbb161a857cc187619ae115c8c8e7f.
- 854943d5c8670a241524b71945b2c8ca77246556.

See: https://github.com/flutter/flutter/issues/66829
2020-09-28 09:46:46 -07:00
Zachary Anderson
9db9a57a24
Revert "Apply dpr transform to fuchsia accessibility bridge (#21364)" (#21458)
This reverts commit cf1fbf27195a8ee62758483898e0903622d091a3.
2020-09-28 09:42:50 -07:00
chunhtai
cf1fbf2719
Apply dpr transform to fuchsia accessibility bridge (#21364)
* Apply dpr transform to fuchsia accessibility bridge

* fix format

* addressing comment

* fix typo
2020-09-28 09:24:02 -07:00
Kaushik Iska
2917a65011
[ios] Remove unused is_valid_ from IOS Metal Context (#21432) 2020-09-28 08:05:48 -07:00
Kaushik Iska
854943d5c8
[macOS] Set the display refresh rate (#21095)
Fixes: https://github.com/flutter/flutter/issues/49222
2020-09-26 06:47:26 -07:00
Emmanuel Garcia
db9991279d
Support dragging native platform views (#21396) 2020-09-25 17:46:34 -07:00