Commit Graph

2366 Commits

Author SHA1 Message Date
Ian Hickson
515f72380c Pass TextDirection to ParagraphBuilder. (flutter/engine#4001) 2017-08-23 10:34:57 -07:00
Chris Bracken
433b2507db Disable all rasterizer work while backgrounded on iOS (flutter/engine#4002)
On iOS, backgrounded applications are not permitted to execute GPU work.
See [1].  When backgrounding the application, we now tear down the
underlying iOS render surface, and re-create when the app returns to
foreground.

See [2] for a Technica Q&A on GL-related crashes when rendering is
attempted by a backgrounded application.

[1]: https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ImplementingaMultitasking-awareOpenGLESApplication/ImplementingaMultitasking-awareOpenGLESApplication.html#//apple_ref/doc/uid/TP40008793-CH5-SW1
[2]: https://developer.apple.com/library/content/qa/qa1766/_index.html
2017-08-22 19:57:52 -07:00
Ian McKellar
294cb8fa86 Update to new Dart FIDL bindings API. (flutter/engine#3988)
* Update to new Dart FIDL bindings API.
2017-08-22 13:32:46 -07:00
Alexander Aprelev
cf23a4d599 Fix frontend_server problem with _filename not being set in compile. (flutter/engine#3998)
* Fix problem with _filename not being set. Add tests for that(and add mockito to mock IKG).

* Initialize KernelSerializer, Fix indentation

* Style nits and reworded comment
2017-08-22 11:19:24 -07:00
Alexander Aprelev
e859ef3093 Missed one feedback item from https://github.com/flutter/engine/pull/3982 (flutter/engine#3996) 2017-08-21 17:41:16 -07:00
Jason Simmons
1e5a61b584 Revert to a Jellybean compatible variant of getDrawable (flutter/engine#3997) 2017-08-21 17:25:31 -07:00
jbauman42
68448fcd3c Update VK_KHX_external_memory dependency to KHR (flutter/engine#3992)
The extension was made official.
2017-08-21 17:09:29 -07:00
Alexander Aprelev
c5c4abaeff Introduce frontend_server that flutter tools will use for compilation. (flutter/engine#3982)
* Introduce frontend_server that allows for interactive and batch modes.

Example of batch mode:
```
$ dart $HOME/p/f/t11/flutter/engine/src/flutter/frontend_server/bin/server.dart --sdk-root=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk --platform-kernel-dill=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk/platform.dill $HOME/p/f/t11/flutter/flutter/examples/flutter_gallery/lib/main.dart

out: result 79256789-598c-4909-a9e4-0ef36d4c26ba
out: 'State&TickerProviderStateMixin^#U0^' is exported from both 'package:flutter/src/widgets/animated_cross_fade.dart' and 'package:flutter/src/widgets/animated_list.dart'.
...
out: Superclass has no method named 'hitTest'.
out: 79256789-598c-4909-a9e4-0ef36d4c26ba $HOME/p/f/t11/flutter/flutter/examples/flutter_gallery/lib/main.dart.dill
$
```

Example of interactive mode - communication via stdin/stdout:
```
$ dart $HOME/p/f/t11/flutter/engine/src/flutter/frontend_server/bin/server.dart --sdk-root=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk --platform-kernel-dill=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk/platform.dill --incremental

out: Frontend server is ready.
in: compile abc.dart
out: result fd99c0f9-12bb-4083-818e-2521d454fdc8
out: fd99c0f9-12bb-4083-818e-2521d454fdc8 abc.dart.dill
in: accept
in: recompile kuka
in: 123.dart
in: 456.dart
in: kuka
out: result d12f8d05-6c79-44f7-a775-1d3469e1be53
in: quit
$
```

* Add test. Cleanup dependencies.

* One more test with mocks

* Remove platform-kernel option. Refactored CompilerOptions. Clean up comments.

* Update license

* Use Uri.base.resolve consistently. Ensure folder path for sdk root. Fix test.

* Fix main_dart for frontend_server build target

* Reintroduce .packages file, add README.md, revert changes to licenses_flutter

* Run analyzer on frontend-server. Update .packages deps so tests can be run too.

* Add analyzer options file

* Clean up dependencies

* Add frontend_server files to license file back

* Fix comment in analysis_options.yaml

* Run frontend_server tests in travis

* Update licenses

* Change a+x permission on travis/test.sh

* pub get before pub run test

* Fix path to when

* Clarify accept/reject instructions

* Formatting, fixed docs, style

* Update license script to skip .travis.yml, when/example. Update license file.

* Update style nits

* Fix license

* Trim license extracted text. Fix licenses

* Update licenses_third_party signature

* Few more tests

* Update dart license

* Update dart license

* Style changes. Fix return value for Future<Null>
2017-08-21 12:55:17 -07:00
Chris Bracken
1fda50a2c0 Fire TextInputClient.updateEditingState on text changes (iOS) (flutter/engine#3995)
For consistency with Android, when the engine receives a
TextInput.setEditingState message from the framework, and the text has
changed, we now send a TextInputClient.updateEditingState message back
to the framework with the updated state from the engine. The framework
currently relies on this behaviour to trigger onChanged events in
certain scenarios (e.g., on tapping Paste in the selection controls).

Note: it may be more desirable for the framework to trigger the
onChanged calls without relying on the return message from the engine,
but this change ensures consistent behaviour across iOS and Android
until we've evaluated the pros/cons of such an approach.
2017-08-21 12:39:56 -07:00
Jason Simmons
de38c0b15a Improve checks for calls into native code made after the platform view has been detached (flutter/engine#3926) 2017-08-17 10:24:12 -07:00
Jason Simmons
e6c9b04074 Skip third_party/benchmark in the license source crawl (flutter/engine#3986)
Also regenerate sky_engine/LICENSE to include libtxt
2017-08-16 16:35:14 -07:00
Jason Simmons
bd7ae44737 Allow infinity values in the Dart wrappers for Skia Canvas (flutter/engine#3985)
Fixes https://github.com/flutter/flutter/issues/11586
2017-08-16 16:21:52 -07:00
Carlo Bernaschina
a78aa4cde4 Roll Dart to 491390eeaa7974f44a8931d10a899c39c0df8dda (flutter/engine#3984)
- Roll Dart to 491390eeaa7974f44a8931d10a899c39c0df8dda
- Register the EmbedderInformationCallback
2017-08-16 13:17:11 -07:00
Petr Hosek
8f73cd6c6c No longer need to use fuchsia_shared_library (flutter/engine#3983)
Use $shlib_toolchain to find the shared_library output file.
2017-08-15 23:44:38 -07:00
Carlo Bernaschina
e2b8d9e76b Avoid race condition into NotifyNextFrameOnce (flutter/engine#3980)
If GPURasterizer::NotifyNextFrameOnce was rapidly invoked twice could
have lead to a null pointer exception.

Also ftp::WeakPtr are not thread safe and should not be dereferenced
from other threads.
2017-08-15 14:35:16 -07:00
Jason Simmons
05dd4a01dd Remove use of a deprecated getDrawable API (flutter/engine#3979) 2017-08-15 11:54:04 -07:00
xster
d6d217cb4a Add an explicit user configurable check for whether to keep showing the splash screen. (flutter/engine#3976) 2017-08-15 11:01:12 -07:00
Zachary Anderson
1cf8c8f32e Fixes for gypi -> gni change in Dart (flutter/engine#3977) 2017-08-15 07:44:27 -07:00
xster
d85d4cc9ce Create platform API for first frame callback. Use for defer hiding splash screens on Android and iOS (flutter/engine#3956)
* Add back launch screen view until first frame on iOS

* improvements

* Move callback plumbing from ios surfaces to the gpu rasterizer. Didn’t wire java JNI yet.

* Android JNI

* Fix ios reference count and let android engine manage a view on top with launch screen

* Hook up Android activity and view

* review notes

* review notes

* Move thread switching upstream. Use weak references for callbacks.

* Some clean up
2017-08-14 15:44:52 -07:00
Jason Simmons
22e8ceec69 Allow infinite cull rectangles on a Canvas (flutter/engine#3975) 2017-08-10 17:20:59 -07:00
Jason Simmons
0f2c77f194 Capture fractional pixel coordinates in the bounds of raster cache bitmaps (flutter/engine#3974)
The bitmap used to hold a prerolled image in the raster cache must have an
integer width/height in pixels.  However, the picture used to draw the image
may have a non-integer width/height in physical coordinates and thus not
completely fill the bitmap.  The compositor should only select the subset
of the bitmap that reflects the portion filled by the rendered picture.
2017-08-10 14:08:16 -07:00
Jason Simmons
89d9d751f9 Apply antialiasing in calls to SkCanvas::clipRect (flutter/engine#3973)
Without this, the cull rect calculated by an SkPicture may be truncated
to integer pixel coordinates.  The raster cache relies on a precise cull
rect in logical coordinates.

See https://bugs.chromium.org/p/skia/issues/detail?id=6954
2017-08-10 13:23:35 -07:00
Alexander Aprelev
2e8e755815 Reapply introduction of dart sdk build steps into Flutter engine (flutter/engine#3972)
* Revert "Revert "Build standalone dart sdk as part of Flutter engine. (#3954)" (#3970)"

This reverts commit 7ae7ef3fb0.

* Add 7-zip download as a hook

* Advance buildroot dependency

* Fix buildroot dependency
2017-08-10 08:42:05 -07:00
Chinmay Garde
e65145ba04 Only enable_lto on platforms where the toolchain recognizes the flag. (flutter/engine#3971) 2017-08-09 14:29:05 -07:00
Alexander Aprelev
7ae7ef3fb0 Revert "Build standalone dart sdk as part of Flutter engine. (#3954)" (flutter/engine#3970)
This reverts commit 67e073ae89.

This doesn't work on Windows.
2017-08-09 12:11:10 -07:00
Alexander Aprelev
67e073ae89 Build standalone dart sdk as part of Flutter engine. (flutter/engine#3954)
* Update dart deps and add create_sdk for host builds

* Set and use is_flutter flag

* Update to make it compatible with latest changes in https://codereview.chromium.org/2998503002/

* Fix deps

* Roll dart dependency to pick up new arguments

* Merge

* Update deps

* Update license
2017-08-09 09:25:10 -07:00
Sarah Zakarias
d5a7209ef9 Add flutter-driven navigation on iOS (flutter/engine#3865) 2017-08-09 13:01:35 +02:00
Jason Simmons
d26681b396 Assert checks for NaN/infinite values in Skia canvas Dart wrappers (flutter/engine#3967) 2017-08-08 15:49:51 -07:00
Jason Simmons
e0735d0a6b Remove usage of NaN values in canvas_test that caused a Skia assert failure (flutter/engine#3962) 2017-08-07 17:36:29 -07:00
Jason Simmons
0ebb76f8b5 Exclude lib/txt/third_party/fonts from the license source tree traversal (flutter/engine#3960) 2017-08-07 16:04:08 -07:00
Jason Simmons
7ac768eeb8 Improve support for x86 and x86_64 devices in flutter_gdb (flutter/engine#3953) 2017-08-07 15:15:36 -07:00
Chinmay Garde
2e10df7cb4 Implement all known blink::PointerData fields on iOS. (flutter/engine#3955) 2017-08-07 15:04:10 -07:00
Chinmay Garde
672b209e5e Update buildroot and opt out of LTO on unopt builds. (flutter/engine#3952) 2017-08-04 13:12:36 -07:00
Yegor
51dcdbc223 enable async stack traces in all modes (flutter/engine#3948) 2017-08-04 12:22:20 -07:00
Carlo Bernaschina
3d9fad41c6 Upgrade progress reporting in licenses tool (flutter/engine#3951)
On linux the licenses tools progress reporting was cluttering the screen with extra characters and sometimes was missing the last progress update.
2017-08-04 11:30:55 -07:00
Jason Simmons
ed7261c110 Fixes related to usage of std::weak_ptr to hold PlatformViews (flutter/engine#3949)
* Call weak_ptr.lock(), which returns a null shared_ptr and does not throw
* IsViewInvalid was inverted
2017-08-03 10:53:17 -07:00
Vyacheslav Egorov
e2889dacca hide Symbol exported from dart:_internal (flutter/engine#3861)
Both dart:core and dart:_internal export Symbol. 

This is silently ignored by the VM but some tools (e.g. fasta) report a warning when processing dart:ui sources.

See https://github.com/dart-lang/sdk/issues/30127 for more details.
2017-08-02 16:55:10 -07:00
Chinmay Garde
e94546d547 On emulators, render onscreen (with warnings) if any of the MakeS32 based SkSurface creation calls fail. (flutter/engine#3947) 2017-08-02 14:29:29 -07:00
Michael Goderbauer
a8ea6bd4af Mention Goma for Googlers in CONTRIBUTING.md (flutter/engine#3946)
* Mention Goma for Googlers in CONTRIBUTING.md

* review comments
2017-08-02 13:49:27 -07:00
Abhishek Amit
5ec8f6d9f2 Fix android-cpu flag reference (flutter/engine#3943) 2017-08-01 14:02:28 -07:00
Jason Simmons
e5fed53de7 fix sRGB typo (flutter/engine#3942) 2017-07-31 17:12:45 -07:00
Jason Simmons
521031a50c Support sendKeyEvent for arrow keys (flutter/engine#3940)
Fixes https://github.com/flutter/flutter/issues/11352
2017-07-31 16:52:34 -07:00
Carlo Bernaschina
94f1311b9e Roll Dart to a67d798841ec6379c39c6cd20e9b867689df0e64 (flutter/engine#3936)
The new `dart_observatory_pub_packages_rev` dependent on the rolled `dart_revision` required the update of the licensing files
2017-07-31 16:26:06 -07:00
Chinmay Garde
6d71aee780 Update buildroot to account for stricter warning flags. (flutter/engine#3939) 2017-07-31 16:22:15 -07:00
Jason Simmons
dc8f103ca8 Check for an empty selection in deleteSurroundingText (flutter/engine#3938)
Fixes https://github.com/flutter/flutter/issues/11437
2017-07-31 16:18:27 -07:00
Chinmay Garde
62108dc53e Always consume items from the pipeline in the null rasterizer. (flutter/engine#3937)
Now, frame requests past the pipeline depth will never be deferred due
to back pressure. This backend is only used in the test runner.
2017-07-31 15:16:48 -07:00
xster
62ee1c8b95 Extend iOS's drawing time to viewWillAppear <-> viewDidDisappear (flutter/engine#3934)
* fix (with squashed debug stuff)

* clean up
2017-07-31 15:12:32 -07:00
Chinmay Garde
a8b230ae6c Update the Vulkan backend to account for GPUSurface API updates. (flutter/engine#3933) 2017-07-28 18:25:13 -07:00
Ian Hickson
a802c739ee More documentation, mainly around saveLayer. (flutter/engine#3932) 2017-07-28 14:38:42 -07:00
Chinmay Garde
7314a7e0bc When the surface does not support SRGB, render to an offscreen texture. (flutter/engine#3930) 2017-07-28 12:48:32 -07:00