1061 Commits

Author SHA1 Message Date
Dan Field
a9c8a6c06a Revert "Android embedding refactor pr3 add remaining systemchannels (#7874)" (flutter/engine#7886)
This reverts commit 08a8b11065ca3417490ed789bf5a642988d5e8d4.
2019-02-20 11:18:12 -08:00
Dan Field
4206f443f7 Revert "Shut down and restart the Dart VM as needed. (#7832)" (flutter/engine#7877)
This reverts commit 75a66f31dc2a02ccb54f10fb4477233086f4906b.
2019-02-19 16:14:18 -08:00
Matt Carroll
08a8b11065 Android embedding refactor pr3 add remaining systemchannels (flutter/engine#7874) 2019-02-19 15:51:13 -08:00
stuartmorgan
7524aa2d8c Expose more pointer phases in embedder.h (flutter/engine#7813)
Adds 'add', 'remove', and 'hover' to the set of pointer phases that are
available to embedders. This is necessary for them to send hover events
to the engine.
2019-02-19 07:06:57 -08:00
Stanislav Baranov
86dac86486 Revert "Support for binary decompression of dynamic patches. (#7777)" (flutter/engine#7853)
This reverts commit c50fe4fb9a7691b223b17132200e676e7d4cbb60.
2019-02-15 17:07:06 -08:00
Chris Bracken
273c0cf7c7 Revert "Android embedding refactor pr3 add remaining systemchannels (#7738)" (flutter/engine#7849)
From build log:
```
../../flutter/shell/platform/android/io/flutter/view/FlutterView.java:95: error: cannot find symbol
    private final LocalizationChannel localizationChannel;
                  ^
  symbol:   class LocalizationChannel
  location: class FlutterView
../../flutter/shell/platform/android/io/flutter/view/FlutterView.java:172: error: cannot find symbol
        localizationChannel = new LocalizationChannel(dartExecutor);
                                  ^
  symbol:   class LocalizationChannel
  location: class FlutterView
2 errors
```

This reverts commit 914dc5a0b6d168159c3949c67b28f6f7e5bf7ba6.
2019-02-15 15:03:19 -08:00
Chinmay Garde
75a66f31dc Shut down and restart the Dart VM as needed. (flutter/engine#7832)
The shell was already designed to cleanly shut down the VM but it couldnt
earlier as |Dart_Initialize| could never be called after a |Dart_Cleanup|. This
meant that shutting down an engine instance could not shut down the VM to save
memory because newly created engines in the process after that point couldn't
restart the VM. There can only be one VM running in a process at a time.

This patch separate the previous DartVM object into one that references a
running instance of the DartVM and a set of immutable dependencies that
components can reference even as the VM is shutting down.

Unit tests have been added to assert that non-overlapping engine launches use
difference VM instances.
2019-02-15 14:16:17 -08:00
Matt Carroll
914dc5a0b6 Android embedding refactor pr3 add remaining systemchannels (flutter/engine#7738) 2019-02-15 13:45:24 -08:00
Todd Volkert
146cc39aa2 Don't call static method from instance variable (flutter/engine#7841) 2019-02-15 16:18:02 -05:00
Amir Hardon
333458c95e Delete GL textures when they are released from the texture registry. (flutter/engine#7836)
On Android we were never deleting the textures allocated for
the texture registry, which resulted in a memory leak, see:
https://github.com/flutter/flutter/issues/24145
2019-02-15 13:11:49 -08:00
najeira
cd5ceb29be Fix NullPointerException in SurfaceTextureRegistryEntry (flutter/engine#7837) 2019-02-15 13:01:41 -08:00
najeira
a3e6ae8948 Fix NullPointerException in ResourceCleaner (flutter/engine#7838) 2019-02-15 12:56:37 -08:00
Ben Konyi
640bed91e3 Add support for calling into other plugins from a background context on iOS (flutter/engine#7843)
Added `FlutterPluginRegistrantCallback` typedef and optional `setPluginRegistrantCallback` static method in `FlutterPlugin`. `setPluginRegistrantCallback` is used to set a callback defined in AppDelegate.m which registers some subset of plugins with a `FlutterPluginRegistry` (for example, a headless FlutterEngine). This allows for plugins which utilize background execution functionality to enable the use of other plugins on the background isolate. This puts iOS on par with Android for background execution.

Along with updated examples and Medium posts, this fixes [flutter/flutter#21925](https://github.com/flutter/flutter/issues/21925).
2019-02-15 11:18:56 -08:00
Jason Simmons
a0f4916009 Remove the Dart JIT snapshot data from AOT builds of the embedder library (flutter/engine#7806)
Also extend the embedder unit tests to cover AOT execution
2019-02-15 09:43:23 -08:00
Gary Qian
f85d8b60f5 Track flow id (flutter/engine#7826)
(Authored by @nathanrogersgoogle )
2019-02-14 12:30:29 -08:00
nathanrogersgoogle
7517ae90c3 Add flow events connecting pointer events to frames (flutter/engine#7807) 2019-02-13 22:27:12 -08:00
Stanislav Baranov
c50fe4fb9a Support for binary decompression of dynamic patches. (flutter/engine#7777) 2019-02-11 16:56:33 -08:00
Chinmay Garde
8d53a804f3 Allow embedders to specify pointer device IDs. (flutter/engine#7790) 2019-02-11 16:49:45 -08:00
Matt Carroll
4c7a50516c Recommended implementation of combining characters implementation. (flutter/engine#7758) 2019-02-11 15:27:55 -08:00
Jason Simmons
3a709976b2 Provide a default pressure range if a MotionEvent does not have a device (flutter/engine#7737)
Fixes https://github.com/flutter/flutter/issues/27641
2019-02-11 09:29:07 -08:00
KyleWong
e6b2d000dd Provide public api to allow FlutterEngine related context to be destoryed (flutter/engine#7610)
Provide public api to allow FlutterEngine related context  to be destoryed.
2019-02-09 17:13:04 +08:00
nathanrogersgoogle
69a16cbb01 Don't call OnAnimatorNotifyIdle if a frame is scheduled (flutter/engine#7746)
If a frame is scheduled by the time the delayed animator notify idle
task runs, then we should not call |NotifyIdle|.

Also, add a trace event in the task, to make it more clear in traces
when a notify idle call is coming from here (as opposed to
|Animator::AwaitVSync|).
2019-02-08 15:14:06 -08:00
Chris Bracken
8ff6f25fc1 Add flutter config to macOS targets (flutter/engine#7756)
In c3ad553 (#7642), //shell/platform/darwin:framework_shared was added
without the root flutter config, causing a build breakage in Fuchsia,
where flutter sits under //third_party/flutter as opposed to at the
root. The flutter root config is required to set -I../../third_party as
an include path.
2019-02-08 14:30:16 -08:00
Chinmay Garde
cb31ce37fa Document GPUSurfaceGLDelegate methods and move it to its own file. (flutter/engine#7755) 2019-02-08 14:21:47 -08:00
stuartmorgan
4c7fa286f3 Rename macOS framework to FlutterMacOS.framework (flutter/engine#7740)
Avoids potential confusion due to the iOS framework already being called
Flutter.framework.
2019-02-08 12:00:17 -08:00
Stanislav Baranov
34bfbdf99f Support for loading dynamic patches in AOT mode. (flutter/engine#7744)
* Dynamic patching support for AOT mode.

* Cleanup.
2019-02-08 10:47:01 -08:00
Chinmay Garde
46842b5f57 Update documentation for command line args in FlutterProjectArgs. (flutter/engine#7733) 2019-02-07 14:14:44 -08:00
Matt Carroll
a6cf9b2895 Introduced a number of Java system channels in io/flutter/embedding/engine/systemchannels/ (flutter/engine#7500) 2019-02-06 17:07:30 -08:00
Chris Bracken
7ff50beb59 Add FlutterProjectArgs::root_isolate_create_callback (flutter/engine#7651)
Allows embedders to specify a callback to be invoked in isolate scope
once root isolate has been created and marked runnable.

As an example of where this is useful, embedder unit test fixtures may
want to include Dart functions backed by a native implementation. On
isolate creation, this patch allows the unit test author to call
Dart_SetNativeResolver in root isolate scope.
2019-02-06 14:16:47 -08:00
liyuqian
2c4e59e1c6 Revert "Disable the persistent cache (#6835)" (flutter/engine#7689)
This reverts commit 366503ca2dd5297b7f73591330770b215b521c8c.

For https://github.com/flutter/flutter/issues/24058, We now only get a
"Program linking failed" error message on Windows Android simulators
without crahsing. Skia seems to have handled the linking failure in
https://skia-review.googlesource.com/c/skia/+/180372 by rebuilding the
program.
2019-02-05 11:17:21 -08:00
Matt Carroll
e1aeaf5dd4 Implemented Dark Mode for Android (#25525) (flutter/engine#7488) 2019-02-04 19:30:15 -08:00
Kaushik Iska
da09acaad9 Don't warn for Async texture uploads on Fuchsia (flutter/engine#7691) 2019-02-04 17:04:08 -08:00
stuartmorgan
c3ad553a23 Initial import of FDE macOS framework (flutter/engine#7642)
Merges the current flutter-desktop-embedding macOS framework into the
engine. Notable changes:
- All channel/codec related code is eliminated in favor of using the
  existing iOS implementations.
- All .m files renamed to .mm for consistency with the iOS code.
  - Some minor code changes to fix new warnings in Objective-C++ mode.
- License headers, basic format (e.g., clang-format changes) updated to
  use repo style.
- Xcode project is not included; instead adds GN build rules to create
  an integrated framework that combines what was the FDE library with
  what is present in FlutterEmbedder.framework.

Other changes are left as follow-ups, including:
- Moving shared code out of ios/ into common/.
- Potentially improving sharing between iOS and macOS BUILD.gn.
- Class renaming; the FLE prefix will be eliminated, but that API
  surface isn't stable yet, so that can be changed later.
2019-01-31 14:14:43 -08:00
Chris Bracken
03b5b4a509 Fix two typos in embedder docs (flutter/engine#7649) 2019-01-30 18:11:08 -08:00
Kaushik Iska
ec6f6c35b3 Expose the Flutter engine, Dart and Skia versions to Dart. (flutter/engine#7634)
- Moved versions from shell to common
- versions singleton contains all the required versions.
2019-01-30 16:22:45 -08:00
Chinmay Garde
f7b24f4d90 Document make_resource_current on FlutterOpenGLRendererConfig and warn if the callback is not set. (flutter/engine#7648) 2019-01-30 16:13:00 -08:00
Jason Simmons
8a941d7b3c Embed ICU data inside libflutter.so on Android (flutter/engine#7588)
Prior to this the Android embedder code would extract the icudtl.dat asset out
of the APK and write it to local disk during the first startup of the app.

This change will make that work unnecessary and eliminate the risk of ICU
failures due to errors in the extraction process.
2019-01-30 11:56:17 -08:00
stuartmorgan
9292896011 Rename FlutterResult in embedder.h (flutter/engine#7567)
FlutterResult is also the name of a class in the Objective-C API
surface, which is problematic when building a framework that contains
both (such as a macOS implementation of the Flutter framework).
2019-01-29 14:01:31 -08:00
Chinmay Garde
e361547b05 Allow the engine to redirect traces to systrace via settings. (flutter/engine#7617) 2019-01-28 17:39:31 -08:00
Chinmay Garde
1d7eebcc1b [embedder] Avoid looking for the kernel binary in AOT builds. (flutter/engine#7577) 2019-01-24 14:22:39 -08:00
Dan Field
de191d5476 Fix #26966 (flutter/engine#7566) 2019-01-24 12:36:23 -08:00
Qxyat
7c379b06b2 Don't accept gestures by ForwardingGestureRecognizer (flutter/engine#7558)
ForwardingGestureRecognizer was previously accepting the gesture when the touch sequence ended, this was causing some other gesture recognizers to not accept the gestures (e.g tapping on the my location button in a Google Map didn't work).
2019-01-23 09:28:55 -08:00
jslavitz
9b55d2ced1 fixes android pressure range (flutter/engine#7516) 2019-01-22 15:09:02 -08:00
Dan Field
8d6ec47a36 Keep engine alive if VC is not deallocated (flutter/engine#7544) 2019-01-22 15:03:25 -08:00
Jason Simmons
e2884a11f1 Remove the shell build target's dependency on the embedder library (flutter/engine#7549) 2019-01-22 14:38:19 -08:00
Brian Osman
3dd1198f0d Remove SkColorSpaceXformCanvas, use color-managed SkSurfaces instead (flutter/engine#7548)
Behavior (visual) changes should be very minor. Things that are to be expected:
* A few things were not color managed correctly by the transform canvas (color emoji, some color filters). Those will be handled correctly with the tagged surfaces (although we're always transforming to sRGB, so nothing should change until we target a wider gamut).
* Image filtering will happen in the source color space, rather than the destination. Very minor.
* The transform canvas did caching of images in the destination color space. Now, the conversion happens at draw time. If there are performance issues, images can be pre-converted to the destination with makeColorSpace().
2019-01-22 15:34:51 -05:00
Dan Field
1ffde0e2bd Update default flutter_assets path for iOS embedding (flutter/engine#7518) 2019-01-21 13:43:01 -08:00
KyleWong
6a671a1458 When the instance method:init is unavailable, mark the class method:new unavailable. (flutter/engine#7532) 2019-01-20 14:36:13 -08:00
Chinmay Garde
1f528fef75 Allow embedders to specify AOT snapshot buffers. (flutter/engine#7538) 2019-01-18 16:32:35 -08:00
Dan Field
1b3d586cfe Roll buildroot and update method of getting android SDK and support libs (flutter/engine#7284)
* Get support, use new SDK tooling from buildroot
* Roll NDK to 19
* Skip Android bits on Windows with note
2019-01-18 15:20:56 -08:00