1190 Commits

Author SHA1 Message Date
Chris Bracken
804d54ddff
Eliminate unused displayBounds parameter (#8427)
Use of this parameter was eliminated in 37947f9.
2019-04-03 14:28:29 -07:00
Chinmay Garde
7e38b0aa23
Revert "Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)" (#8414)
This reverts commit f7b4903d7c9913447af3aaebc4308d1a1e2a4dde.
2019-04-03 13:38:12 -07:00
stuartmorgan
a650790e44
Add scroll wheel support to desktop GLFW shell (#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
f27c5730ae
[fuchsia] Exclude glfw from the Fuchsia host build (#8407) 2019-04-02 09:49:14 -07:00
Zachary Anderson
f7b4903d7c
Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)
This reverts commit c991647404f8117dab2ca4ed49aa3ba48a634240.
2019-04-02 09:12:56 -07:00
Chris Yang
cfe8675ff5
Delay platform view removal to submitFrame. (#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
c991647404
Separate the data required to bootstrap the VM into its own class. (#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
40eb74c50b
Make the resource context primary on iOS (#8387)
* Make resource context primary on iOS
2019-04-01 12:46:28 -07:00
Amir Hardon
82071e9161
Don't access a11y APIs with reflection starting Android P. (#8393) 2019-03-31 23:21:51 -07:00
Chinmay Garde
131cc625a1
Allow native entrypoint registration for runtime unittests. (#8379) 2019-03-29 17:53:49 -07:00
Jason Simmons
ca7623eb39
Handle null values in TextInputConfiguration.actionLabel JSON (#8377)
Fixes https://github.com/flutter/flutter/issues/29798
2019-03-29 17:15:04 -07:00
Jason Simmons
71d59cde9e
Check for hover motion events in AndroidTouchProcessor (#8376)
Fixes https://github.com/flutter/flutter/issues/30122
2019-03-29 15:42:11 -07:00
Zachary Anderson
fdcbb40fe9
[flutter_tester] Accept --icu-data-file-path (#8374) 2019-03-29 14:57:40 -07:00
Chinmay Garde
86f4b741b8
Move libdart selection into its own target in //flutter/runtime. (#8373)
Cleanup repeated rules.
2019-03-29 14:29:09 -07:00
stuartmorgan
8412c199a5
Enable Linux shell build (#8233)
Enables building of the GLFW shell and the related unit tests.
2019-03-29 16:34:02 -04:00
Chinmay Garde
a1a2129bc4
GN Format all files in the engine. (#8369) 2019-03-29 12:44:57 -07:00
Jason Simmons
930033d95c
Create a new resource loading EGL context for each PlatformView instance on Android (#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
8d56284cda
Remove the standalone a11y test runners and merge its tests into embedder_unittests. (#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
975fe8776c
Reset min log levels on each engine launch. (#8343) 2019-03-28 11:21:25 -07:00
stuartmorgan
84c62b4c7d
Build Windows shell (#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
5c99138fa8
Build GLFW from source for Linux shell (#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
68002458f4
Fix Windows build. (#8336) 2019-03-27 16:43:08 -07:00
stuartmorgan
6d8b836777
Remove use of epoxy from Linux shell (#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
4efc32163c
Add super call in FLEView reshape (#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
cb8eb801a4
Allow embedders to specify their own task runner interfaces. (#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
37947f961a
Allow delegation of a11y events from nodes that were not yet traversed (#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
7620056277
Android Embedding PR22: Polish - FlutterActivity Intent factories, FlutterFragment control of render modes, FlutterSurfaceView transparent until rendering is ready. (#8317) 2019-03-27 14:57:23 -07:00
nathanrogersgoogle
6bd697dd4c
Fix "PointerEvent" flow end event (#8319)
"DispatchPointerDataPacket" should have been "PointerEvent".
2019-03-27 14:34:01 -07:00
Chinmay Garde
3a3f707d5a
Reland "Allow specification of std::functions as native entrypoints from Dart code." (#8329)
This reverts commit 7e77d5c484a08cc1c189619e80ae71a7f1df62fb after fixing Windows issues.
2019-03-27 12:22:48 -07:00
Chris Yang
fd7d7fa5a0
Add a11y support for embedded iOS platform view (#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
7e77d5c484
Revert "Allow specification of std::functions as native entrypoints from Dart code. (#8309)" (#8312)
This reverts commit 400a86a62efd3c8504672b8a63323cc837282135.
2019-03-26 13:49:41 -07:00
Chinmay Garde
400a86a62e
Allow specification of std::functions as native entrypoints from Dart code. (#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
78de8dcb42
Enable lambda like native callbacks in tests and add support for custom entrypoints. (#8299) 2019-03-26 11:29:08 -07:00
Chinmay Garde
22ee8ee08f
Migrate existing embedder unit tests to use the fixture. (#8296)
Also allows tests to specify their own embedder contexts.
2019-03-25 15:10:24 -07:00
Amir Hardon
345ae7d373
Delegate a11y events and action to/from embedded Android platform views. (#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
d6ead18f43
Make it easy to write embedder unit tests by creating a fixture and config builder. (#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
68bd4f2c64
Do not drop the DartExecutor's message handler when a FlutterNativeView is detached from the FlutterView (#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
06635d38a9
Mirror Android platform views a11y tree in the Flutter a11y tree. (#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
28433c513c
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. (#8246) 2019-03-21 13:45:13 -07:00
Jason Simmons
fa435385b6
Use the GPU thread for Android surface on-screen context lifecycle operations (#8234)
Fixes https://github.com/flutter/flutter/issues/29679
2019-03-20 17:43:53 -07:00
Matt Carroll
188adf7e5e
Removed Activity reference from AccessibilityBridge by using a View for insets instead of the Activity (#18115) (#8231) 2019-03-20 14:18:34 -07:00
stuartmorgan
d452dd5c36
Initial import of GLFW Linux shell from FDE (#8159)
Changes include:
- File structure
- Header guards
- Include paths
- Namespaces
- Integration with the engine's GN build
- Conversion from jsoncpp to rapidjson
- Style and clang-format adjustment to match engine repository
2019-03-20 17:15:52 -04:00
Amir Hardon
6a8a45fc4f
Have the AccessibilityBridge attach/detach itself to the (#8229)
PlatformViewsDelegate.

Since onDetachedFromWindow can be called after the activity was
destroyed, the previous call to detach the accessibility bridge could
have crash as the NativeFlutterView was already null.
2019-03-20 12:26:30 -07:00
Matt Carroll
1dbd2046b5
Moved io.flutter.embedding.engine.android package to io.flutter.embedding.android (#8221) 2019-03-20 11:30:49 -07:00
Kaushik Iska
a1dcb2ea98
[ios] Set contentsScale before we commit CATransaction (#8218)
Layout occurs after [CATransaction commit]. layoutSubviews was where we set the contentsScale on the CALayer. This meant that for one frame, we would see content on the overlay view which was did not have the correct content scale.

This change makes it so that we initialize the FlutterOverlayView with the correct contentsScale.

This also updates the overlay_gr_context_ when we first create the overlay_view. This is an artifact of #8175.

This manifests as jank as seen in: flutter/flutter#29573
2019-03-19 16:36:11 -07:00
Francisco Magdaleno
fa1931f6a0
Send macOS keyboard data to the engine (#8219) 2019-03-19 15:58:11 -07:00
Amir Hardon
45f69ac471
Plumb a reference of PlatformViewsController and AccessibilityBridge to each other (#8208)
This is in preparation for implementing platform views a11y on Android.

And e2e working prototype is available here: https://github.com/amirh/engine/tree/a11y_hacks

flutter/flutter#19418
2019-03-19 15:48:45 -07:00
Dan Field
bc8ebcb96b
Export FlutterSemanticsUpdateNotification and improve docs (#8203)
* Export FlutterSemanticsUpdateNotification and improve docs
2019-03-18 19:32:49 -07:00
Chinmay Garde
ad5b722a72
Simplify the fallback waiter and add traces for vsync scheduling overhead. (#8185) 2019-03-18 15:49:16 -07:00
Chris Yang
6980a83563
[platform_view] iOSP platformView composition optimize. (#8202)
Optimize the performance of the platform view composition.
When recomposition is required, we previously remove all the platform view related views (intercepting view, platform view) and re-add them for each frame. This is mentioned in flutter/flutter#23793.
This PR enhanced the performance by re-arrange the existing UIViews and only add the newly created Views.

As a result, it would also fix flutter/flutter#29427
2019-03-18 15:38:40 -07:00