3051 Commits

Author SHA1 Message Date
Chris Yang
3d16c5e91c PlatformViewsController always make sure the touch events are finished (flutter/engine#22406) 2020-11-13 15:38:01 -08:00
Dan Field
714fb9e81b Opt in fixutres (flutter/engine#22502) 2020-11-13 12:02:07 -08:00
Ari Weiland
435a0f38be Fix some serious lifecycle bugs with Android embedding code (flutter/engine#22203) 2020-11-13 11:58:02 -08:00
Kaushik Iska
0b4d2a8c36 [android] Platform view creates external view embedder (flutter/engine#22360) 2020-11-13 05:52:41 -08:00
Kaushik Iska
2665245a45 PlatformViewIOS CreateExternalViewEmbedder refactor (flutter/engine#22353) 2020-11-13 04:58:44 -08:00
Kaushik Iska
356e31aef5 Reland "remove surface dependance on external view embedder (#22468)" (flutter/engine#22470) 2020-11-12 15:37:12 -08:00
Dan Field
b388181b25 Limit heap growth on Android (flutter/engine#20473)
Limit heap growth to half of totalMem by default, with the option to set it higher or lower in the AndroidManifest
2020-11-12 14:53:54 -08:00
Matej Knopp
7fd7ae2252 Disable synchronous resizing until a frame is produced (flutter/engine#22457)
Instead of synchronousResizing flag which in some cases seems to be set too early, synchronous resizing is postponed until framework produces a frame so ResizeSynchronizer knows for sure that the engine is up and running.
2020-11-12 11:50:31 -08:00
LongCatIsLooong
07032ba889 [Android text input] Reland #21534 (flutter/engine#22435) 2020-11-12 11:34:01 -08:00
George Wright
9e74c9daea Add D3D9 fallback path for ANGLE and ensure fallbacks are actually attempted (flutter/engine#22412) 2020-11-12 10:54:02 -08:00
Emmanuel Garcia
1d0a96bd3f Fix talkback in hybrid composition while using FlutterFragmentActivity (flutter/engine#22429) 2020-11-12 10:30:29 -08:00
Jim Graham
2fc96daad5 Fix the event size parameters in the Embedder ComplexClip test (flutter/engine#22455) 2020-11-12 09:34:03 -08:00
Kaushik Iska
ae4dbc51b8 Reverts 2 commits that remove surface dependance on external view embedder (flutter/engine#22468)
* Revert "Remove GetExternalViewEmbedder from surface (#22272)"

This reverts commit 9dffddd08d0ad6fa7434c5a5bdff87e09da92e57.

* Revert "Rasterizer is initialized with an external view embedder (#22405)"

This reverts commit 417c869d6bcd70ba82fdd6efc8db1efa19fb997c.
2020-11-12 08:41:11 -08:00
LongCatIsLooong
fbfb27f515 Revert "[Android Text Input] Make the editing state listenable and allow batch edits (#21534)" (flutter/engine#22434) 2020-11-11 18:24:02 -08:00
Robert Ancell
8e621546e8 Fix typo in documentation for FlPlatformPlugin (flutter/engine#22426) 2020-11-12 12:02:44 +13:00
chunhtai
65456583c8 reland support uri launch in android (flutter/engine#22363)
* Revert "Revert "support uri intent launcher in android (#21275)" (#22298)"

This reverts commit 9a5b6b4e910bcfac97a330a4aa2cbe2f14b57522.

* reland support uri launch for android

* refactor

* update

* fix test

* addressing comments

* addressing comments

* revert throw error
2020-11-11 14:51:04 -08:00
Kaushik Iska
9dffddd08d Remove GetExternalViewEmbedder from surface (flutter/engine#22272)
This decouples surfaces from view embedders.
2020-11-11 13:45:24 -08:00
Kaushik Iska
417c869d6b Rasterizer is initialized with an external view embedder (flutter/engine#22405)
This allows us to not rely on surface methods for getting
the external view embedder.

Conflicts:
	shell/common/rasterizer.cc
	shell/common/rasterizer_unittests.cc
2020-11-11 12:49:03 -08:00
LongCatIsLooong
7d20e41baf [Android Text Input] Make the editing state listenable and allow batch edits (flutter/engine#21534) 2020-11-10 19:19:03 -08:00
gaaclarke
fcbe799c09 Reland deeplinking with info.plist check (flutter/engine#22356) 2020-11-10 15:29:02 -08:00
Kaushik Iska
8b9acb11b8 Move common graphics utils to //flutter/common/graphics (flutter/engine#22320) 2020-11-10 12:34:02 -08:00
xster
8d9b9217d7 move deprecation from the PluginRegistry outer interface to inner, v1-specific fields (flutter/engine#22345) 2020-11-09 13:57:06 -08:00
Chris Yang
7a6f510783 [PlatformViewsController] Clear root_views_ in Reset (flutter/engine#22403) 2020-11-09 12:34:01 -08:00
Chris Yang
e7f73e509c Reland "Do not involve external_view_embedder in submit frame process if threads are not merged. #22275" (flutter/engine#22372) 2020-11-06 21:04:02 -08:00
Gary Qian
6fc7f7b41f Remove extra method in ComputePlatformResolvedLocale (flutter/engine#22362) 2020-11-06 16:34:45 -08:00
Chris Bracken
ca1db50228 Revert "Rasterizer is initialized with an external view embedder (#22348)" (flutter/engine#22367)
This reverts commit cccecc46e10341d655b6bd388222f189215da506.

Due to merge conflicts, this also reverts #22275:

Revert "Do not involve external_view_embedder in submit frame process if threads are not merged. (#22275)"

This reverts commit d3902fc979fac68d498e4fe33584647c375c06ac.
2020-11-06 15:26:47 -08:00
Greg Spencer
b25769b79b Use dispatchKeyEvent, and handle keys sent to InputConnection.sendKeyEvent on Android (flutter/engine#22340)
This (mostly) re-lands #21163, which was reverted in #22321

This switches from using onKeyDown to using dispatchKeyEvent on Android so that keys can be intercepted handled by the framework and not continue to be dispatched to other controls.

It also now intercepts key events sent to InputConnection.sendKeyEvent, as some IMEs do (e.g. the Hacker's Keyboard), and sends them to Flutter.

This fixes the problem where (for example) 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, and system keys (like the back button) are only received if the IME doesn't eat them.
2020-11-06 12:45:47 -08:00
Chris Yang
d3902fc979 Do not involve external_view_embedder in submit frame process if threads are not merged. (flutter/engine#22275) 2020-11-06 11:04:01 -08:00
Kaushik Iska
cccecc46e1 Rasterizer is initialized with an external view embedder (flutter/engine#22348)
This allows us to not rely on surface methods for getting
the external view embedder.
2020-11-06 09:01:28 -08:00
Kaushik Iska
ea42f7eaa0 Platform views have CreateExternalViewEmbedder (flutter/engine#22214) 2020-11-06 05:30:48 -08:00
chunhtai
219e2e549a Revert "Added the ability to set the initial route via launch urls. (#21336)" (flutter/engine#22337) 2020-11-05 16:09:01 -08:00
Kaushik Iska
b2bcc689b7 Roll dart e182eac158cf..9bc7d4604277 (flutter/engine#22332) 2020-11-05 15:59:02 -08:00
William Wold
3fe0d1f1d0 Set the IM context when showing the input method (flutter/engine#21896) 2020-11-06 09:22:17 +13:00
Greg Spencer
440ff6e3f4 Revert "Reland: Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#22304)" (flutter/engine#22321)
This reverts commit b289c1711fd8357fe5a6c8aa66683d0d2ca55e48 because it breaks back button functionality.
2020-11-05 09:02:25 -08:00
freiling
4903a92b2b SKP based shader warmup (flutter/engine#20643) 2020-11-04 23:19:02 -08:00
Greg Spencer
b289c1711f Reland: Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (flutter/engine#22304)
This re-lands #21163, which was reverted in #22004

Now that flutter/flutter#67359 has landed, this change will no longer cause spaces (and other shortcuts) to be ignored in text fields if there is no action associated with the intent, even if there is a shortcut key mapping to an intent.

It also no longer causes web test failures (as far as I can tell without submitting it: the same tests don't fail locally).

Here's the original PR description:

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-11-04 15:54:21 -08:00
stuartmorgan
156dafb961 Switch Linux embedding to proc table embedder API (flutter/engine#22280)
Switches the Linux embedding from the standard C API to the new proctable version, to allow for unit testing of the embedding layer separately from the embedder APIs implementation.
2020-11-04 15:12:44 -08:00
chunhtai
9a5b6b4e91 Revert "support uri intent launcher in android (#21275)" (flutter/engine#22298) 2020-11-04 15:04:02 -08:00
Matej Knopp
309f003ea8 Fix code style issues in MacOS embedder (flutter/engine#22270) 2020-11-04 14:49:03 -08:00
gaaclarke
68eedd5ba3 added unit tests to the rasterizer (flutter/engine#22282) 2020-11-04 13:56:29 -08:00
Omar Emara
fc87f2df63 Fix Linux handling of window exposure events (flutter/engine#22268)
Currently, the Linux embedder does not handle window exposure events.
This is typically not a problem for users who use compositing window
managers, since they keep the display buffers even if the window is
completely covered. However, for users that don't use a compositor, the
window will not be redrawn by the engine if it was previously covered
until another event triggers the redraw.

This patch implements the GtkWidget draw callback to handle window
exposure events. The callback doesn't actually draw anything, it just
schedule a frame for drawing by the engine.

The engine doesn't support exposure events, so instead, we force redraw
by sending a window metrics event of the same geometry. Since the
geometry didn't change, only a frame will be scheduled.
2020-11-04 16:43:47 +13:00
stuartmorgan
1bbf363d80 Switch Windows embedding to proc table embedder API (flutter/engine#22211)
Switches the Windows embedding from the standard C API to the new proctable version, to allow for unit testing of the embedding layer separately from the embedder APIs implementation. This includes moving some engine messaging that was still in flutter_windows to the C++ engine class to better encapsulate the proc table.
2020-11-03 14:36:18 -08:00
Daco Harkes
b6c5eff614 WeakPersistentHandle migration (flutter/engine#19843)
and roll Dart to 52783837369de45d3372cb6c6b7cdd63e71cd829.
2020-11-03 13:06:53 +01:00
stuartmorgan
16113fd7f5 Switch macOS embedding to proc table embedder API (flutter/engine#21811)
Converts the macOS embedding to use the new proc table version of the embedding API, and adds one example unit test using it to demonstrate and validate the approach.
2020-11-02 21:44:10 -08:00
Robert Ancell
396ad5a9a9 Add braces on if statements to match linter style (flutter/engine#22130) 2020-11-03 12:32:39 +13:00
stuartmorgan
9def2f9371 Defer Windows arrow key and delete handling (flutter/engine#22207)
The framework handles arrow keys, delete, and backspace (and with better
unicode support), so we shouldn't handle them at the embedding level.

Fixes #69202
2020-11-02 11:09:03 -08:00
chunhtai
272e2b2bac makes android semanticsnode to ignore hittest if it is not focusable (flutter/engine#22205) 2020-11-02 09:53:01 -08:00
gaaclarke
a92f113402 Refactored the FlutterEngine to make it easier to implement spawn functionality (flutter/engine#21890) 2020-10-30 15:29:10 -07:00
Kaushik Iska
1e2d6b2dbb Fix includes to start with shell (flutter/engine#22227)
See b/172031915
2020-10-30 08:51:32 -07:00
Robert Ancell
524a96de10 Fix warning when no entrypoing args provided. (flutter/engine#22136)
Fixes errors like:
GLib-CRITICAL **: 14:20:17.248: g_strv_length: assertion 'str_array != NULL' failed

Introduced in fe489569a722816acab038ebe0f882722d2434ee
2020-10-30 14:57:35 +13:00