3051 Commits

Author SHA1 Message Date
KyleWong
c7754e142b Refactor ios play input sound logic. (flutter/engine#7783)
As there are extra requirement to use playInputClick in iOS, use AudioServicesPlaySystemSound instead to play input sound.
2019-04-08 11:31:23 -07:00
Alan Doubleday
b07ae25f0a Support ContextWrapper when FlutterView is instantiated within a Fragment. (flutter/engine#7776) 2019-04-08 10:30:36 -07:00
Matt Carroll
d2c9597a7f Android Embedding PR25: Prevent black rectangle when launching FlutterActivity (flutter/engine#8460) 2019-04-05 15:59:12 -07:00
Chinmay Garde
b330816fdd Log the correct function on error in the embedder. (flutter/engine#8461) 2019-04-05 15:16:07 -07:00
Chinmay Garde
19d5a39d24 Enable shutting down all root isolates in a VM. (flutter/engine#8457)
This reverts commit 9cd2e8351c47b7a78c1005341f4b5e1a2f125695.
2019-04-05 13:34:40 -07:00
Matt Carroll
7f4451fbbe Android Embedding PR24: Allow FlutterActivity to provide an engine, also adjust FlutterFragment timing to avoid Activity launch lag. (flutter/engine#8448) 2019-04-05 13:04:17 -07:00
xster
6815c85282 Make sure FlutterViewController flushs all pending touches when no longer active (flutter/engine#8400) 2019-04-04 16:22:37 -07:00
stuartmorgan
783b5003c0 Add window title/icon support to GLFW shell (flutter/engine#8435)
The GLFW shell used a hard-coded title and default icon for the window,
but these are things that a client should be able to control.
2019-04-04 13:54:07 -04:00
Chinmay Garde
9cd2e8351c Revert "Enable shutting down all root isolates in a VM. (#8402)" (flutter/engine#8431)
This reverts commit 56252a8aacaf29a17853e3ade6978972689dff18.
2019-04-03 17:08:56 -07:00
Chinmay Garde
56252a8aac Enable shutting down all root isolates in a VM. (flutter/engine#8402) 2019-04-03 15:44:29 -07:00
Chris Bracken
e3beb1ce56 Make AccessibilityViewEmbedder final (flutter/engine#8429)
Since this class implements equals() and hashCode() it should either be
final or handle subclasses in equals(); given this is unlikely to be
subclassed, making it final is the simpler option.
2019-04-03 15:06:11 -07:00
Chris Bracken
df39681b8c Eliminate unused displayBounds parameter (flutter/engine#8427)
Use of this parameter was eliminated in 2f36f15.
2019-04-03 14:28:29 -07:00
Chinmay Garde
736277e9c7 Revert "Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)" (flutter/engine#8414)
This reverts commit 8a0076fdddc96b4ec2fb67f45051aa490827fc02.
2019-04-03 13:38:12 -07:00
stuartmorgan
a6adcffb4c Add scroll wheel support to desktop GLFW shell (flutter/engine#8416)
Sends scroll events from GLFW to the Flutter engine, allowing scrolling
of Scrollables via a scroll wheel.
2019-04-02 18:17:23 -04:00
Zachary Anderson
6982c0e193 [fuchsia] Exclude glfw from the Fuchsia host build (flutter/engine#8407) 2019-04-02 09:49:14 -07:00
Zachary Anderson
8a0076fddd Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (flutter/engine#8406)
This reverts commit 38f5fc418a08ed43945ad21d19494d6b352e1443.
2019-04-02 09:12:56 -07:00
Chris Yang
414f2223de Delay platform view removal to submitFrame. (flutter/engine#8380)
Remove platform views inside OnDispose might cause issue if it happens before SubmitFrame and the active_composition_order has not been updated.
We will be left at a situation where the active_composition_order still contains the old view, but the view is actually removed from the UIView hierarchy.

We now cache the views need to be removed in OnDispose and actually remove them in SubmitFrame. At the same time, we remove stop detaching the subviews if they were disposed. 

As a side effect, this update will also fix flutter/flutter#30220
2019-04-01 17:06:32 -07:00
Chinmay Garde
38f5fc418a Separate the data required to bootstrap the VM into its own class. (flutter/engine#8397)
When attempting to shutdown and subsequently restart the VM, having the
VM own this data introduces lifecycle issues due to circular references.
2019-04-01 14:58:05 -07:00
Dan Field
5d3ec31dd9 Make the resource context primary on iOS (flutter/engine#8387)
* Make resource context primary on iOS
2019-04-01 12:46:28 -07:00
Amir Hardon
db5e2e9492 Don't access a11y APIs with reflection starting Android P. (flutter/engine#8393) 2019-03-31 23:21:51 -07:00
Chinmay Garde
18af29469e Allow native entrypoint registration for runtime unittests. (flutter/engine#8379) 2019-03-29 17:53:49 -07:00
Jason Simmons
7bdf7064c4 Handle null values in TextInputConfiguration.actionLabel JSON (flutter/engine#8377)
Fixes https://github.com/flutter/flutter/issues/29798
2019-03-29 17:15:04 -07:00
Jason Simmons
ec6b6a1317 Check for hover motion events in AndroidTouchProcessor (flutter/engine#8376)
Fixes https://github.com/flutter/flutter/issues/30122
2019-03-29 15:42:11 -07:00
Zachary Anderson
8d8c635813 [flutter_tester] Accept --icu-data-file-path (flutter/engine#8374) 2019-03-29 14:57:40 -07:00
Chinmay Garde
9a54dbc65a Move libdart selection into its own target in //flutter/runtime. (flutter/engine#8373)
Cleanup repeated rules.
2019-03-29 14:29:09 -07:00
stuartmorgan
fe4491e66f Enable Linux shell build (flutter/engine#8233)
Enables building of the GLFW shell and the related unit tests.
2019-03-29 16:34:02 -04:00
Chinmay Garde
1a7c5d7bf3 GN Format all files in the engine. (flutter/engine#8369) 2019-03-29 12:44:57 -07:00
Jason Simmons
04ca9a5cb5 Create a new resource loading EGL context for each PlatformView instance on Android (flutter/engine#8330)
Using one global resource loading context will fail if two PlatformViews are
running concurrently with two different IO threads.
2019-03-28 11:33:56 -07:00
Chinmay Garde
1238fd06a1 Remove the standalone a11y test runners and merge its tests into embedder_unittests. (flutter/engine#8338)
Also cleans up the a11y unittests to use the new builder API and avoids polluting the global namespace with state for assertions.
2019-03-28 11:22:06 -07:00
Chinmay Garde
f3080acb10 Reset min log levels on each engine launch. (flutter/engine#8343) 2019-03-28 11:21:25 -07:00
stuartmorgan
ecb9da1446 Build Windows shell (flutter/engine#8331)
Enables the build of the Windows shell, based on the same GLFW code used
by the current Linux shell.
2019-03-27 23:38:44 -04:00
stuartmorgan
21ff4f0dd3 Build GLFW from source for Linux shell (flutter/engine#8327)
Instead of requiring a system-level GLFW, build it from source and
statically link it into the Linux shell.
2019-03-27 20:22:50 -04:00
Chinmay Garde
792c41fb98 Fix Windows build. (flutter/engine#8336) 2019-03-27 16:43:08 -07:00
stuartmorgan
fcc2ff8886 Remove use of epoxy from Linux shell (flutter/engine#8334)
Simplifies the build and runtime requirements for the Linux shell.
Since the engine does GL extension lookup manually anway, an extension
loader library isn't necessary.
2019-03-27 19:24:03 -04:00
Chris Bracken
c9556833a9 Add super call in FLEView reshape (flutter/engine#8335)
NSOpenGLView reshape is annotated with NS_REQUIRES_SUPER. This avoids
build failures when building with `-Wobjc-missing-super-calls`.
2019-03-27 16:22:12 -07:00
Chinmay Garde
20fe654ef3 Allow embedders to specify their own task runner interfaces. (flutter/engine#8273)
Currently, all Flutter threads are managed by the engine itself. This works for
all threads except the platform thread. On this thread, the engine cannot see
the underlying event multiplexing mechanism. Using the new task runner
interfaces, the engine can relinquish the task of setting up the event
multiplexing mechanism and instead have the embedder provide one for it during
setup.

This scheme is only wired up for the platform thread. But, the eventual goal
is to expose this message loop interoperability for all threads.
2019-03-27 16:16:59 -07:00
Amir Hardon
2f36f159f1 Allow delegation of a11y events from nodes that were not yet traversed (flutter/engine#8333)
The AccessibilityViewEmbedder was not delegating a11y events coming virtual nodes(of the embedded view) that were not previously traversed by the a11y framework.

It turns out the a11y framework might leave parts of the tree untraversed in some circumstances, changed the behavior to create an originId<-->flutterId mapping on the fly when an event is delegated from a not previously traversed node.

Fixes flutter/flutter#30010.
2019-03-27 15:49:15 -07:00
Matt Carroll
87ff155831 Android Embedding PR22: Polish - FlutterActivity Intent factories, FlutterFragment control of render modes, FlutterSurfaceView transparent until rendering is ready. (flutter/engine#8317) 2019-03-27 14:57:23 -07:00
nathanrogersgoogle
c7035c4121 Fix "PointerEvent" flow end event (flutter/engine#8319)
"DispatchPointerDataPacket" should have been "PointerEvent".
2019-03-27 14:34:01 -07:00
Chinmay Garde
fc3d221b49 Reland "Allow specification of std::functions as native entrypoints from Dart code." (flutter/engine#8329)
This reverts commit 90c1cc90cf3a36a2ca2d68719c9c8e266a65aace after fixing Windows issues.
2019-03-27 12:22:48 -07:00
Chris Yang
19be572305 Add a11y support for embedded iOS platform view (flutter/engine#8156)
Follow up the framework change in flutter/flutter#29304.
Inject the accessibility element tree in the semantic node if the node is for platform views.

flutter/flutter#29302
2019-03-26 16:04:42 -07:00
Chinmay Garde
90c1cc90cf Revert "Allow specification of std::functions as native entrypoints from Dart code. (#8309)" (flutter/engine#8312)
This reverts commit 07f506f752b4f1220cf51768fe2dcf595d03a039.
2019-03-26 13:49:41 -07:00
Chinmay Garde
07f506f752 Allow specification of std::functions as native entrypoints from Dart code. (flutter/engine#8309)
This allows for the specification of std::functions (using EmbedderContext::NativeEntry) with their captures as native entrypoints. Earlier, only C functions we allowed which meant that there were no captures and assertions had to use globals which could introduce bugs when used with gtest_repeat.
2019-03-26 12:56:23 -07:00
Chinmay Garde
43a8481ba6 Enable lambda like native callbacks in tests and add support for custom entrypoints. (flutter/engine#8299) 2019-03-26 11:29:08 -07:00
Chinmay Garde
8be9d3af19 Migrate existing embedder unit tests to use the fixture. (flutter/engine#8296)
Also allows tests to specify their own embedder contexts.
2019-03-25 15:10:24 -07:00
Amir Hardon
968cefaef1 Delegate a11y events and action to/from embedded Android platform views. (flutter/engine#8250)
Delegate a11y events and action to/from embedded Android platfrom views.

This handles delegation of:
  * AccessibilityNodeProvider#performAction
  * ViewGroup#requestSendAccessibilityEvent
  * View#onHoverEvent

Additionally updates the currently input accessibility focused node state that is
tracked by the a11y bridge when an embedded view's node is focused.
2019-03-25 14:26:49 -07:00
Chinmay Garde
871d19c495 Make it easy to write embedder unit tests by creating a fixture and config builder. (flutter/engine#8276)
All embedder unit-tests have to setup the Flutter project arguments from scratch
before launching the engine. The boilerplate and having to deal with the low
level C API during each engine launch is a hinderance to writing tests.

This patch introduces an EmbedderTest fixture that sets up all the embedder side snapshots before allowing the unit test to create a FlutterConfigBuilder` that
the test can use to incrementally build and edit the Flutter project
configuration. From the given state state of a configuration, multiple engines
can be launched with their lifecylces managed by appropriate RAII wrappers.

This allows the a fully configured Flutter engine to be launched using 4 lines
of code in a fixture.

```
EmbedderConfigBuilder builder;
builder.SetSoftwareRendererConfig();
builder.SetAssetsPathFromFixture(this);
builder.SetSnapshotsFromFixture(this);
auto engine = builder.LaunchEngine();
```
2019-03-25 11:58:38 -07:00
Jason Simmons
7405924bf1 Do not drop the DartExecutor's message handler when a FlutterNativeView is detached from the FlutterView (flutter/engine#8254)
An activity can use ViewFactory.retainNativeFlutterView to reuse a
FlutterNativeView across multiple instances of the activity.  In this
scenario, the FlutterNativeView should continue to handle incoming messages
sent from Dart.
2019-03-21 18:08:58 -07:00
Amir Hardon
199310695f Mirror Android platform views a11y tree in the Flutter a11y tree. (flutter/engine#8237)
This PR mirrors virtual a11y tree of embedded platform views in the Flutter
a11y tree.

Non virtual hierarchies are not currently supported.

Only works on Android versions earlier than Android P as it relies on
reflection access to hidden system APIs which cannot be done starting
Android P.

A11y is not yet working as we also need to delegate a11y events from the
platform view to the FlutterView. This will be done in a following PR to
keep the change size a little saner.
2019-03-21 15:26:44 -07:00
Matt Carroll
c802d6ce22 FlutterJNI no longer asserts it is attached when dispatching platform messages and instead fizzles with a warning if not attached. Not sure what root cause of issue is, but this is necessary to avoid crashes. (flutter/engine#8246) 2019-03-21 13:45:13 -07:00