960 Commits

Author SHA1 Message Date
Anthony Bullard
1bc7ccf605
Support real fonts in 'flutter test' (#6913)
* Support real fonts in 'flutter test'

Change the order of font_managers to query in font_collection
so that dynamic_font_manager fonts will be resolved.

Tested with test case in `flutter/flutter` repo:

`packages/flutter/test/rendering/localized_fonts_test.dart`

Ensured:
- A font loaded with FontLoader will be used
- The default 'Ahem' font is still loaded by default

The test above still cannot be fixed because FontLoader and the
underlying mechanisms don't cover Locale-specific font loading
and therefore a CJK font-family won't be able to be loaded as needed
for that test.

Fixes #17700

* Format fixup
2018-12-14 10:05:41 -08:00
jslavitz
1a2714bbef
Adds force cursor support (#6945)
* engine force cursor support
2018-12-13 18:45:38 -08:00
Chris Bracken
826f342641
[Fuchsia] Depend on libtrace when that is what's really meant (#7214)
libtrace-provider has libtrace listed as a dependency when really it
does not have any such dependency. This lets trace clients use
libtrace-provider as a dependency when what they really mean is libtrace.

This errant dependency in trace-provider is being fixed, which
means we need to fix these clients.
2018-12-13 13:13:38 -08:00
Stanislav Baranov
18a4e33c2a
Downloading and installation of dynamic updates on Android (#7207) 2018-12-13 10:17:37 -08:00
Justin McCandless
571f47457c
Update marked text before selection so textInRange is never called with (#6989)
invalid input
2018-12-12 15:32:36 -08:00
liyuqian
2bd75ae8ba
Support querying display refresh rate in engine (#7002)
The current implementation only deals with Android devices and we'll add iOS devices support soon.
2018-12-12 10:28:44 -08:00
Brian Salomon
e5195ee479 Remove unnecessary includes of Ganesh headers (#7189) 2018-12-12 10:58:14 -05:00
Rafael Ring
9071a39dd2 Fix keyboard not showing for targetSdk 28 (#6985)
After bumping the targetSdk of Flutter apps to 28, the keyboard doesn't open anymore when inputting text on an Android Pie devices. The problem is caused by a change on the way the focus in handled: when the call `mImm.showSoftInput(view, 0);` is made, the currently focused view is the `DecorView` from the `Activity` hosting Flutter but the passed view reference (`view` argument) is the `FlutterView`. As the `InputMethodManager` checks if both views are the same before showing the keyboard, it never appears because the `FlutterView` never has focus.
As Flutter doesn't have any input views as far as the Android side is concerned, the focus should always stay on the `FlutterView` itself and thus, this PR changes the `TextInputPlugin` to focus on the `FlutterView` as soon as it's created, fixing the keyboard issue.

Co-authored-by: Igor Borges <igorborges12@gmail.com>
2018-12-10 21:01:12 -08:00
Chris Bracken
97d96bc9a5
Eliminate obsolete FlutterDartProject initializers (#6967)
Technically both of these are part of the public API exposed in
Flutter.framework. Neither is used within Flutter itself, and both have
been broken since the removal of Dart 1 support, so eliminating rather
than marking unavailable.
2018-12-10 17:07:00 -08:00
Jason Simmons
3011c2b754
Handle null bundlePaths in FlutterRunArguments (#7161) 2018-12-10 14:38:44 -08:00
Chris Bracken
08922e112d
Rename dart-non-checked-mode: disable-dart-asserts (#6977)
In Dart 2, runtime checked mode has been eliminated. Many of these type
checks have been moved to static compile-time checks, the remainder are
enforced at runtime, and are no longer optional.
2018-12-10 12:36:09 -08:00
Stanislav Baranov
be36ba6468
Generalize runFromBundle to support multiple bundlePaths (#7151) 2018-12-10 12:19:22 -08:00
Chris Bracken
dcfae4e803
Eliminate main_dart_file_path, package_file_path (#6973)
These settings were specific to Dart 1 and are no longer used in the
engine. This eliminates them from the Settings class.
2018-12-10 09:12:10 -08:00
Gary Qian
72c7a75672
Prepend [NSLocale currentLocale] for first locale on iOS to ensure countryCode exists. Allow language-only locales. (#6995) 2018-11-28 12:59:57 -08:00
Michael Goderbauer
2f706bea07
Fix EXIF orentation problem (#6974) 2018-11-27 14:12:13 -08:00
Chris Bracken
2ab019412d
Use application_kernel_asset in flutter_tester (#6972)
Since the migration to Dart 2, the first positional command-line
argument to flutter_tester has been a Dart kernel .dill file. Use
Settings::application_kernel_asset here for consistency/clarity.
2018-11-27 13:51:54 -08:00
Chris Bracken
f804a1fc6b
Improve error message when kernel not set (#6924)
Pushes the check up front so that we don't always land on the
application_kernel_list_asset error message, which may be misleading to
readers.

Also switches the empty check to only emit in debug builds, since this
is almost certainly not a runtime error but a programmer error.
2018-11-26 11:29:56 -08:00
Chris Bracken
25d99cd257
Use software renderer in embedder unittests (#6928)
Reduces spurious error log messages in GLContextMakeCurrent() attempting
set up the GR context:

  [ERROR:flutter/shell/gpu/gpu_surface_gl.cc(42)] Could not make the context current to setup the gr context.
2018-11-26 10:48:37 -08:00
Dan Field
df2e9393a2
load default splash screen when not init with engine (#6925) 2018-11-21 15:06:08 -08:00
Chris Bracken
1e37b99ac0
Add basic validation on loading from kernel list (#6921)
Adds a check/error message for the case where running from kernel list,
but application_kernel_list_asset is left unset (or empty).

Adds a check/error message for the case where we fail to load the
application_kernel_list_asset specified in the settings.
2018-11-21 10:31:32 -08:00
Jason Simmons
3978f07530
Keep a copy of each engine's description that can be accessed outside the engine's UI thread (#6885)
The service protocol's ListViews method needs to return description data for
each engine in the process.  Previously ListViews would queue a task to each
UI thread to gather this data.  However, the UI thread might be blocked from
executing tasks (e.g. if the Dart isolate is paused), resulting in a deadlock.

This change provides a copy of the engine's description data to the
ServiceProtocol's global list of engines, allowing ListViews to run without
accessing any UI threads.

Fixes https://github.com/flutter/flutter/issues/24400
2018-11-16 14:47:40 -08:00
Dan Field
c02dd8f935
Don't load a splash screen by default (#6883) 2018-11-16 12:43:18 -08:00
Jason Simmons
d8b52ef896
Reland "Clean up stale cache entries in Skia's GrContext" (#6867)
Check for software rendering modes that do not have a GrContext
2018-11-15 14:24:36 -08:00
Michael Goderbauer
e6f22b74e6
Fix license headers (#6868)
These sneaked in between https://github.com/flutter/engine/pull/6757 and https://github.com/flutter/engine/pull/6759.
2018-11-15 14:12:57 -08:00
Dan Field
699f328df5
Revert "Clean up stale cache entries in Skia's GrContext (#6859)" (#6866)
This reverts commit 2c6be93fa98aeb0dd3c1efa2db201232eb8eefba.
2018-11-15 11:41:53 -08:00
Michael Klimushyn
093b2fea8a
Disable the persistent cache (#6835)
Fixes flutter/flutter#24058
Reopens flutter/flutter#14028
2018-11-15 09:26:08 -08:00
Jason Simmons
2c6be93fa9
Clean up stale cache entries in Skia's GrContext (#6859)
Fixes https://github.com/flutter/flutter/issues/24160
2018-11-14 14:21:17 -08:00
Ben Konyi
f23862b259
Added delegate forwarding for didReceiveLocalNotification and willPresentNotification (#6858) 2018-11-14 11:39:47 -08:00
Dan Field
110a5f320c
Reset a11y bridge state on hot restart (#6857) 2018-11-14 11:13:39 -08:00
Dan Field
114d33d3ca
Set and unset accessibility flags even when re-entrant (#6853)
* Make sure to not unset a11y flags on reentrant calls to API
2018-11-13 23:54:45 -08:00
Michael Goderbauer
1e7e676e4d
Remove unused import (#6854) 2018-11-13 23:31:56 -08:00
Dan Field
0d0287780e
Avoid a never-disappearing splash screen if the engine came from somewhere else on iOS (#6834)
* Ignore multiple attemps to set splash screen, print warning
2018-11-13 16:04:09 -08:00
Michael Goderbauer
09ef73ff6e
Fix code smells reported by chrome's clang plugin (#6833) 2018-11-12 19:59:29 -08:00
Dan Field
ea4bbbd440
Avoid announcing text field when it lacks a11y focus (#6830)
* Avoid announcing text field when it lacks a11y focus
2018-11-12 16:08:59 -08:00
Amir Hardon
266b0986de
Release the surface texture entry when the platform view is disposed. (#6829)
We were leaking the texture after the view was disposed.
2018-11-12 14:23:25 -08:00
Jason Simmons
faabf0ced3
Fix MakeRenderContextCurrent to handle software rendering (#6827) 2018-11-12 11:20:49 -08:00
Jason Simmons
4dbdf94aaf
Ensure that the EGL rendering context is bound to the GPU thread in Rasterizer::MakeRasterSnapshot (#6816)
Fixes https://github.com/flutter/flutter/issues/24083
2018-11-09 17:05:05 -08:00
Dan Field
799ce8742d
fix log (#6817) 2018-11-09 16:46:49 -08:00
Amir Hardon
21c265cce4
Synchronize Flutter's rendering with CA. (#6807)
Right now we do it whenever the platform views preview flag is on.
This is less efficient, filed
https://github.com/flutter/flutter/issues/24133 to only do this when
there's a platform view in the tree.
2018-11-09 12:10:09 -08:00
Amir Hardon
f5e5d81eed
Move the embedded view preview flag check to a common function. (#6813) 2018-11-09 11:24:14 -08:00
Amir Hardon
316f6365a6
Fix wrong flutter/platform_views protocol implementation on iOS. (#6803)
The `id` parameter of onDispose is passed as the method argument and not as
part of a map.
2018-11-09 10:21:44 -08:00
Amir Hardon
099b4eeada
Support platform view overlays with GL rendering (#6769)
Moved the frame buffer specific logic from IOSGLContext to IOSGLRenderTarget.

use recording canvases for overlays

Support platform view overlays with gl rendering.

This also changes the overlay canvases (for both software and gl
rendering) be recording canvases, and only rasterize them after
finishing the paint traversal.
2018-11-08 19:52:43 -08:00
Amir Hardon
a0efb94191
Make the FlutterPlatformViewFactory create FlutterPlatformViews. (#6782)
Handing a UIView refererence directly to the engine makes it challenging
for plugin authors to retain a controller for that UIView (e.g the
controller that talks over the platform channel) for as long as the
embedded view is needed.

We instead make the factory return a FlutterPlatformView which is a
wrapper around the UIView that the engine retains as long as the
platform view instance is needed. This allows plugin authors to keep
their control logic in the FlutterPlatformView and know that the engine
is responsible for retaining the reference.
2018-11-08 11:21:55 -08:00
Dan Field
7ed4909fc8
Fix mDNS publishing for iOS simulator (#6789)
* Don't block the platfrorm thread on simulator mDNS publishing
2018-11-08 11:18:59 -08:00
Amir Hardon
18ca035cfd
Discard embedded UIViews on hot restart. (#6772) 2018-11-08 09:32:01 -08:00
Amir Hardon
387ca2ef86
Add an internal_nodes_canvas to PaintContext. (#6728)
When we visit a PlatformViewLayer during the paint traversal it replaces
the PaintContext's canvas with a new one that is painted ontop of the
embedded view.
We need to make sure that operations applied by parent layers are also
applied to the new canvas.

To achieve this we collect all the canvases in a SkNWayCanvas and use
this canvas by non leaf nodes. Leaf nodes still paint only to the "current"
canvas.

This PR moves the overlay canvas creation from the paint phase to the
preroll phase, collects them into a SkNWayCanvas and set it in
PaintContext.

To keep this PR focused, I only used the internal_nodes_canvas in the
tranform_layer.
Will followup with a PR that changes all internal layers to use the
internal_nodes_canvas.
2018-11-08 09:31:40 -08:00
Dan Field
09ff6dc479
avoid overreleasing FlutterView (#6791) 2018-11-07 21:19:14 -08:00
Mehmet Fidanboylu
94dd7165ef
Skia Cleanup (#6786) 2018-11-07 15:29:52 -08:00
Michael Goderbauer
70a1106b50
Unify copyright lines (#6757) 2018-11-07 12:24:35 -08:00
Todd Volkert
4cdddbac42
Fix String comparison as if Java were Dart. (#6781)
This also removes unused imports and sorts imports correctly
2018-11-07 09:59:51 -08:00