3126 Commits

Author SHA1 Message Date
Sigurd Meldgaard
2c2ddf97d3 Move texture registry ownership to platform view (flutter/engine#4348)
* Move texture registry ownership to platform view

This enables the texture registry to survive activity pause on Android.
2017-11-22 09:55:45 +01:00
Alexander Aprelev
eca8948a88 Turn off smart minimal IKG compilation (flutter/engine#4383) 2017-11-21 16:09:41 -08:00
Chris Bracken
348fff3dd4 Catch divide-by-zero errors early in license tool (flutter/engine#4382)
If Progress is instantiated with a max of 0, throw immediately to avoid
a divide-by-zero later in toString(). This typically happens if the tool
recurses over an empty top-level component, which can happen when a
component is moved around in the repo and the developer hasn't cleaned
up old empty directories from their git client.
2017-11-21 15:42:17 -08:00
Chris Bracken
2aad4c763e Minor formatting fix in license script (flutter/engine#4381)
Fixes an errrant tab and unnecessary braces.
2017-11-21 15:34:13 -08:00
amirh
353f9063f4 Use a synchronous completer in _futurize. (flutter/engine#4379)
This keeps the futures chain shorter.
2017-11-21 15:31:04 -08:00
Zachary Anderson
2db5ec9775 Roll Dart to 3ee0a4284203ebc6991c78054583a7c02dc8faf9 (flutter/engine#4378) 2017-11-21 12:16:34 -08:00
Martin Kustermann
9f29a0f744 Enable flutter engine to also work with .*so files on android (flutter/engine#4298)
* Enable flutter engine to also work with .*so files on android

We would like to be able to use native tools (e.g. simpleperf, gdb) with
precompiled flutter apps.  The native tools work much better with *.so
files instead of the custom formats the Dart VM uses by default.

This CL adds support for being able to load the flutter app from an *.so
file on Android.

* Add sanity check to ensure we have either shared library or instruction snapshot (but not both)
2017-11-21 13:14:50 +01:00
amirh
b11a529c91 Delete the native implementation for ui.decodeImageFromList. (flutter/engine#4375)
The new ui.Codec API is a superset of the implementation in
image_decoding.cc. While we are not using ui.decodeImageFromList in the
framework anymore, we keep the dart function for backward compatability, and
just make it a thin wrapper around the codec API.
2017-11-20 14:42:42 -08:00
Chris Bracken
dc4ecd943b Use iOS scale when computing render buffer size (#4171) (flutter/engine#4373)
When checking whether render buffer size has changed, apply the device
scale factor used to convert points to pixels to ensure we're not
needlessly re-allocating render buffer storage.

Adds trace + debug log to make this easier to detect in future.

Originally introduced in 72c28f3a01bd9e6bed256edc4629705d96a7cead, but
rolled back in d539abd7c5fe5291bab81b32e6e5697c1b6681b6 to test whether
it was responsible for regressions to
flutter_gallery_ios__transition_perf benchmarks:
  * average_frame_build_time_millis
  * missed_frame_build_budget_count

Re-landed in 1a7ca91e3938abd5720b3553dfb2045a6b805a3b, and reverted in
79b9bdbbf4d3193620be35e3ea3e1a162b553627 after it appeared to regress
the above two benchmarks. After recent changes to microtask execution
order which fixed https://github.com/flutter/flutter/issues/9998,
re-introducing this fix results in benchmark improvements to the above
two benchmarks in local testing.
2017-11-20 14:15:26 -08:00
Sigurd Meldgaard
75ba5f9a2e Avoid double retain of Texture on ios. (flutter/engine#4354)
The "raw" pointer is already managed by ARC.
2017-11-17 13:49:57 +01:00
amirh
6f728c4150 add ui.Codec and ui.FrameInfo constructors to the dart_vm_entry_points.txt (flutter/engine#4371) 2017-11-16 16:49:20 -08:00
Zachary Anderson
3d346b67fc Roll Dart back to 4dd4fd745e588eef64b8d85811d847ab72633cb7 (flutter/engine#4370) 2017-11-16 09:24:13 -08:00
Martin Kustermann
84bad5cf45 Make frontend_server depend on dart/pkg/* files (flutter/engine#4369)
It speeds up local development workflow when doing changes to the front end
when ninja automatically rebuilds the frontend_server.dart.snapshot.
2017-11-16 15:34:23 +01:00
Jason Simmons
d396b92cc8 Removed unused declaration of Animator::RequestDrawOnVSync (flutter/engine#4367) 2017-11-15 17:44:46 -08:00
amirh
587c8f2344 Enable WebP (flutter/engine#4359) 2017-11-15 16:49:50 -08:00
Ian McKellar
ce4849d743 Allow Flutter apps on Fuchsia to shut down cleanly (flutter/engine#4366)
The UIDartState is now always owned by the isolate and always freed in
the isolate cleanup callback.

In the isolate shutdown callback, if the isolate being shut down is the
main isolate, the RuntimeController is informed which in turn notifies
the RuntimeHolder and thus the ApplicationControllerImpl. The
ApplicationControllerImpl tears down the whole Flutter application.

This fixes Fuchsia bug: MI4-328
2017-11-15 13:28:21 -08:00
Zachary Anderson
cb46299d06 Roll Dart forward (flutter/engine#4363) 2017-11-15 13:17:10 -08:00
Brian Osman
1d2ad93157 Prevent Skia from trying to use stencil buffers (flutter/engine#4362)
Fixes flutter/flutter#13018

When linear blending was disabled, we started rendering directly to FBO0 again. We can't attach stencil there, and the profile graph code triggers a path that (by default) uses it. This option forces us to use alternate rendering methods.

Note that the graph rendering code is constructing a fairly complex path. It would probably be much faster to render as a simpler series of drawRect calls for each box (which would get batched inside Skia).
2017-11-15 13:10:56 -05:00
Chinmay Garde
90988d60e1 Allow embedders to respond to platform messages from the Dart application. (flutter/engine#4361)
This updated the native embedder API in a non-ABI breaking way.
2017-11-14 15:51:19 -08:00
Brian Osman
59fc5fe74f Disable linear blending, use SkColorSpaceXformCanvas instead (flutter/engine#4355)
This retains gamut correction (adjusting colors for screens with different capabilities), but does all blending and interpolation with sRGB-encoded values. That matches the behavior expected by most users, as well as the behavior of nearly all other systems. It also greatly simplifies the EGL code.

A future Skia change will make this behavior more of a first-class citizen, so some of these implementation details will change again, but the behavior will not. The bulk of this change (elimination of complication from the GL surface code) is permanent - it's just the SkColorSpaceXformCanvas that will be replaced.
2017-11-14 13:33:26 -05:00
Zachary Anderson
cfef71d946 [Android] Cleanup in FlutterActivityDelegate (flutter/engine#4357) 2017-11-13 14:13:04 -08:00
Zachary Anderson
69f6500182 View destroy listener (flutter/engine#4347)
[Android] Allow persisting a FlutterNativeView across activities.
2017-11-13 13:56:48 -08:00
Jason Simmons
63b797fd55 Delete the native view when destroying the FlutterView (flutter/engine#4356)
Fixes https://github.com/flutter/flutter/issues/12996
2017-11-13 13:16:48 -08:00
Mikkel Nygaard Ravn
025a7673b2 Align iOS event channel semantics to Android counterpart (flutter/engine#4353) 2017-11-13 15:34:29 +01:00
Mikkel Nygaard Ravn
0f1c5d268d Make EventChannel survive hot restart on Android (flutter/engine#4350) 2017-11-13 07:47:36 +01:00
amirh
b0dc211d49 Load animation frames to GPU textures from the IO thread (flutter/engine#4352) 2017-11-10 12:52:32 -08:00
Alexander Markov
ec821c2367 Revert "Enable Dart 2.0 fixed-size integers in Flutter (#4337)" (flutter/engine#4344)
This reverts commit d0d48f63299f9e29d558b17111974adf9ad4f3f6.
2017-11-10 11:08:42 -08:00
Greg Spencer
6f2797a88d Adding Rect.expandToInclude and Rect.longestSide (flutter/engine#4309)
Adding Rect.expandToInclude and Rect.longestSide to make the Rect API more symmetric.
2017-11-09 16:37:21 -08:00
amirh
98d001e88f expose a Duration object from ui.FrameInfo (flutter/engine#4345) 2017-11-09 14:03:19 -08:00
Jason Simmons
1503dd45a8 Log stack traces from exceptions thrown by calls from native into Java (flutter/engine#4346) 2017-11-09 13:04:12 -08:00
Zachary Anderson
9809d5f8e7 [Android] Pulls the native platform view out of FlutterView (flutter/engine#4338) 2017-11-09 12:10:00 -08:00
Jason Simmons
d519c2cbf2 Allow rendering of frames in a paused animator during a change to screen dimensions (flutter/engine#4333)
Fixes https://github.com/flutter/flutter/issues/12886
2017-11-09 10:04:51 -08:00
Jason Simmons
895bbeabed In GetTexture, do not insert missing IDs into the texture registry map (flutter/engine#4339)
Fixes https://github.com/flutter/flutter/issues/12924
2017-11-09 10:04:41 -08:00
amirh
d844a1dbff Make the public ui.Codec API Future based instead of callback based. (flutter/engine#4341) 2017-11-09 09:56:36 -08:00
Alexander Markov
d0d48f6329 Enable Dart 2.0 fixed-size integers in Flutter (flutter/engine#4337) 2017-11-09 09:42:40 -08:00
P.Y. Laligand
598b293898 [fuchsia] Allow flutter_app to be included in non-Fuchsia toolchains. (flutter/engine#4342)
A flutter_app target might be declared in a build file alongside some host tool.
The intent of the assertion seemed to be restricting the use of the template to the Fuchsia codebase.
2017-11-08 18:33:09 -08:00
Chris Bracken
6f144d0bde Revert "Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)" (flutter/engine#4340)
With the update to HEAD of the Fuchsia buildtools repo, the new clang
toolchain picked up caused link-time breakage in android x86_64
libFlutter.so builds.

Sample log:
https://build.chromium.org/p/client.flutter/builders/Linux%20Engine/builds/1974/steps/build%20android_debug_x64/logs/stdio

Sample failure:
FAILED: libflutter.so libflutter.so.TOC lib.stripped/libflutter.so
../../third_party/android_tools/ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld.gold: error: obj/flutter/shell/platform/android/libflutter/android_context_gl.o: unsupported reloc 42 against global symbol std::__ndk1::num_put<char, std::__ndk1::ostreambuf_iterator<char, std::__ndk1::char_traits<char> > >::id

This reverts commit fecc7aa281821e01037089846744b5331e3cbd22.
2017-11-08 16:48:00 -08:00
Chris Bracken
7834aca9f6 Roll garnet to b3ba6b6d6ab8ef658278cc43c9f839a8a8d1718e (flutter/engine#4335)
* Roll garnet to b3ba6b6d6ab8ef658278cc43c9f839a8a8d1718e

Also includes a buildroot patch to pick up new dependency:
  build/config/fuchsia/sdk.gni

This fixes a build breakage in
garnet/public/lib/fxl/strings/string_view_unittest.cc wherein a variable
'sw5' was declared but the test erroneously tested against 'sw4' from
the previous test.

* Update license script for garnet

Reflects structural changes in directories we do not depend on. This
filters out the following directories in addition to what was already
filtered:
  garnet/drivers
  garnet/packages
  garnet/public/build/
  garnet/public/rust/

* Update licenses
2017-11-08 15:25:07 -08:00
mikejurka
f70c94e381 Fix low-res rasterized images on Fuchsia. (flutter/engine#4325)
Plumb through Scenic display metrics to use during
Preroll.
2017-11-08 14:59:54 -08:00
Ryan Macnak
6b1c7131df Roll tonic to da66b94839f788a0bffc34fd9bdfef3360af8c18. (flutter/engine#4332)
Update to moved repository.

Issue https://github.com/flutter/flutter/issues/9998
2017-11-08 14:04:29 -08:00
Chris Bracken
fecc7aa281 Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (flutter/engine#4331)
* Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5

This also updates Flutter buildroot to a6e52dbb776c45cc8c57d7143b8eb8b2e762fdfb
which disables -Wtautological-constant-compare temporarily until
https://reviews.llvm.org/D39462 lands in clang. This is in line with
Fuchsia's compiler options.

* Apply clang-format diffs

No logical changes. This applies clang-format from the latest Fuchsia
buildtools to the engine codebase.
2017-11-08 11:18:17 -08:00
Chris Bracken
5ef7ef761f Respond to safe area inset changes (flutter/engine#4330)
On iOS 11 and above, update viewport padding and notify the framework
when changes to safe area insets occur.
2017-11-07 18:26:59 -08:00
amirh
a036ba85c1 Implement a SingleFrameCodec and return it for non animated images (flutter/engine#4329) 2017-11-07 14:07:02 -08:00
amirh
bccf9371f3 Decode animation frames and pass FrameInfos to dart (flutter/engine#4324)
https://github.com/flutter/flutter/issues/204
2017-11-06 10:36:02 -08:00
Chris Bracken
f3291e79e4 Temporaribly disable bottom safe area padding on iOS (flutter/engine#4322)
There are two different sets of view insets that applications may want
to track in order to avoid unwanted interaction with system UI:

1. OS UI that effectively shrinks the Flutter view from a UX point of
   view: e.g., when the keyboard opens, it occludes the bottom of the
   screen and the view should be adjusted such that the bottom, for the
   purposes of scrolling is just above the keyboard.
2. OS UI that is overlaid over the application, but into which the
   application should draw. e.g., the Home indicator on the iPhone X
   typically appears near the bottom of the screen, overlaid over app
   content. Content should be rendered within this 'safe area' but apps
   should avoid requiring user interaction there. For example, list
   views may want to include some small amount of additional padding to
   ensure the last list item can scroll above this area.

Since Flutter does not currently distinguish between these two cases,
this patch disables the bottom safe area inset until API is added to
support these separately.
2017-11-03 14:20:46 -07:00
amirh
92a0de09f8 Followup on post-merge comments for 9b03bcd7a (flutter/engine#4321) 2017-11-03 11:44:23 -07:00
Ian Hickson
55fb84e01b Support multiple values in SystemChrome.setPreferredOrientations (flutter/engine#4320) 2017-11-03 10:28:31 -07:00
Zachary Anderson
a962edcc28 Fix comment in last commit (flutter/engine#4315) 2017-11-03 08:53:42 -07:00
amirh
9b03bcd7a1 Initial implementation of ui.Codec (a wrapper for SkCodec) (flutter/engine#4318)
This is the first step to support animated GIFs: flutter/flutter#204

TBD in following CLs:
 * Implement Codec.getNextFrame.
 * Add Framework side support to run animations.
2017-11-02 17:56:44 -07:00
Michael Goderbauer
248cd2ba83 Add isTextField and isFocused flags for iOS (flutter/engine#4316) 2017-11-02 16:02:16 -07:00