565 Commits

Author SHA1 Message Date
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
Ryan Macnak
64fc583295
Remove use of DART_CHECK_VALID. (#8417)
Bug: https://github.com/flutter/flutter/issues/30407
2019-04-03 10:01:57 -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
MH Johnson
3796d98918
[ui] Add null check in FontWeight.lerp (#8274)
* Add null check in FontWeight.lerp

* Add Unit tests for FontWeight.lerp
2019-04-01 21:56:19 -04: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
Michael Goderbauer
5e124ffc13
Fix typos (#8339)
Courtesy of google's "CommonTypos" analysis.
2019-03-29 17:47:55 -07:00
Jason Simmons
6d1a6a4f47
Allow per-platform customization of the default Skia font manager (#8358)
The font manager returned by SkFontMgr::RefDefault is determined by Skia's
build configuration flags.  Embedders may want to use a default font manager
other than the one selected by their build of Skia.
2019-03-29 09:52:29 -07:00
Jason Simmons
6c948ba248
Ensure that Picture::RasterizeToImage destroys Dart persistent values on the UI thread (#8182)
The DartPersistentValue used to hold the image callback is tied to a
Dart isolate.  Destructing the DartPersistentValue requires entering
the isolate and must be done on the UI thread.

Fixes https://github.com/flutter/flutter/issues/29379
2019-03-28 12:37:18 -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
Kate Lovett
af64f725f6
Fixing links between higher and lower classes. (#8295) 2019-03-25 15:44:14 -07:00
Kate Lovett
5f8ae420c1 Linking Higher & Lower Class Docs (#8265)
* Linking lower layer classes to higher layers in API Docs.
2019-03-22 13:43:34 -07:00
Justin McCandless
81dbfc12e4
Fix incorrect vertices colors length check (#8247)
A DCHECK was checking incorrect values, and this corrects it.
2019-03-22 06:57:29 -07:00
Jonah Williams
146646d1b9
Correct greater than or equal logic in offset base (#8210) 2019-03-19 13:41:47 -07:00
David Worsham
f7a092262c [fuchsia] Remove deprecated libraries from snapshot (#8085) 2019-03-14 16:05:21 -07:00
Chinmay Garde
e514f0bd18
Ensure that typed data is released within SendPlatformMessage scope. (#8155)
We used to make tonic make the wrapper before the SendPlatformMessage invocation. However, tonic would not collect the wrapper before make the Dart API call to return the value from the native method. This is illegal and would trip an assertion in the Dart VM. A more systematic fix required reworking tonic to handle this case. However, to fix our illegal use of the Dart API now, this patch creates the wrapper manually in function scope.

Fixes https://github.com/flutter/flutter/issues/29058
2019-03-14 12:02:46 -07:00
Gary Qian
2daebebf4b
Fix text.dart height docs (#8079) 2019-03-13 11:13:53 -07:00
Gary Qian
31b289f277
Fix indexing error in dart:ui TextStyle.toString (#8143) 2019-03-12 16:48:47 -07:00
Gary Qian
073aadde14
Fix TextStyle decode misalignment (#8141) 2019-03-12 13:55:31 -07:00
Gary Qian
5cef4a022d
Use final state passed to dart before initialization as the initial lifecycleState. (#8124) 2019-03-12 10:35:08 -07:00
Gary Qian
52b67fdd5a
Expose decorationThickness to dart:ui (#8008) 2019-03-11 16:43:11 -07:00
Michael Goderbauer
bd0f9085e5
Adds a platfromViewId to SemanticsNode (#8055) 2019-03-11 11:30:35 -07:00
Jonah Williams
ca0bac4fb0
Revert "add signal to pointer kinds" (#8066) 2019-03-06 20:55:34 -08:00
Jonah Williams
3fb627f2c0
add signal to pointer kinds (#8065) 2019-03-06 18:45:01 -08:00
Gary Qian
3661d5e43b
Re-land "Buffer lifecycle in WindowData" (#8032) 2019-03-06 15:38:34 -08:00
stuartmorgan
dd80fc9ff6
Add engine support for scrollwheel events (#7494)
Adds support for pointer signals, in a way that will support both discrete events (e.g., scroll wheels, flutter/flutter#22762) and continuous gestures (e.g., trackpad scroll, flutter/flutter#21953).

Also exposes these new event options to the embedder. Does not include code to send the
new events from the platform shells.
2019-03-05 14:12:07 -08:00
Chris Bracken
e6a5201f0b
Add missing values to semantics action enums (#8033)
This brings the Dart and C++ semantics flag enums back in sync.

In #5902, the ability to move the cursor forward and backward one word
were added to dart:ui, and to the Android embedder, but not to the
SemanticsAction enum on the C++ side.
2019-03-05 07:58:26 -08:00
Chris Bracken
ed628da00a
Add missing kHasImplicitScrolling enum value (#8030)
This brings the Dart and C++ semantics flag enums back in sync.

In #5941, implicit scrolling support was added to SemanticsFlag in
dart:ui, and to the Android embedder, but not to the SemanticsFlags enum
on the C++ side.

This also clarifies/corrects the documentation for this value in dart:ui
and in the embedder API.
2019-03-04 22:00:54 -08:00
Gary Qian
39c46dea4b
Revert "Buffer lifecycle in WindowData (#7999)" (#8010)
This reverts commit 0b174017143c34629546134601bb6c65becf71a3.
2019-03-01 15:14:20 -08:00
Gary Qian
0b17401714
Buffer lifecycle in WindowData (#7999) 2019-03-01 10:43:09 -08:00
Greg Spencer
a1d84996dd
Fix spelling errors in dartdocs (#7997)
Fix the spelling errors in the dartdocs for the engine.

There are no functionality changes here, just documentation fixes.
2019-02-28 14:42:55 -08:00
Jason Simmons
9b924765f4
Improve performance of Locale.toString (#7990)
Use a map instead of a switch to replace deprecated language and country codes.
Also cache the result for the most recently used locale.
2019-02-27 14:41:58 -08:00
Chris Bracken
5db4b37724
Revert dart rolls (#7913)
* Roll back three Dart SDK rolls

Revert "Roll src/third_party/dart 75ee523f91..4cff5a4fd6 (6 commits)"
Revert "Roll src/third_party/dart 5ddd157809..75ee523f91 (19 commits)"
Revert "Roll src/third_party/dart c92d5ca288..5ddd157809 (153 commits)"

`pub upgrade` appears to fail 100% reproducibly on broken on Windows.
This rollback rolls back both what appears to be the breaking roll (61fc178)
and the following roll.

This reverts commit 0053c1d5064931d7a690b3d8888d15d72785a079.
This reverts commit 1cf6b8b64d42aefcbc6e7d78a2e6df706962751a.
This reverts commit 61fc1786fd98f48ee355f800cf5d7aef0fff985b.

* Revert "Revert "Revert "Remove unnecessary entry-point closurization. (#7827)" (#7876)" (#7904)"

This reverts commit 93eeb48baee5c24047a4a3cf5b1db234ecc48683.
2019-02-21 16:53:20 -08:00
Dan Field
93eeb48bae
Revert "Revert "Remove unnecessary entry-point closurization. (#7827)" (#7876)" (#7904)
This reverts commit f45572e95f93edb89b6750a4f36ad8ed7c0a2560.
2019-02-21 10:57:31 -08:00
Chris Bracken
abe9826a9d
Add accessibility semantics support to embedder (#7891)
Flutter's accessibility APIs consist of three main calls from the
embedder to the Dart application:

  1. FlutterEngineUpdateSemanticsEnabled: enables/disables semantics support.

  2. FlutterEngineUpdateAccessibilityFeatures: sets embedder-specific
     accessibility features.

  3. FlutterEngineDispatchSemanticsAction: dispatches an action (tap,
     long-press, scroll, etc.) to a semantics node.

and two main callbacks triggered by Dart code:

  1. FlutterUpdateSemanticsNodeCallback: notifies the embedder of
     updates to the properties of a given semantics node.

  2. FlutterUpdateSemanticsCustomActionCallback: notifies the embedder
     of updates to custom semantics actions registered in Dart code.

In the Flutter framework, when accessibility is first enabled, the
embedder will receive a stream of update callbacks notifying the
embedder of the full semantics tree. On further changes in the Dart
application, only updates will be sent.
2019-02-20 18:59:29 -08:00
Chris Bracken
dad6ec01c3
Correct onAccessibilityFeaturesChanged docs (#7883)
Reference to `accessibilityFlags` corrected to `accessibilityFeatures`.
2019-02-20 08:53:12 -08:00
Chris Bracken
a150cc125a
Fix minor typos in accessibility action docs (#7882)
Fixes a minor pluralisation error in docs for didGainAccessibilityFocus,
didLoseAccessibilityFocus.
2019-02-19 23:27:37 -08:00
Dan Field
f45572e95f
Revert "Remove unnecessary entry-point closurization. (#7827)" (#7876)
This reverts commit 3a1b9b3d85cc5521b8da85a019cb260e27c6576b.
2019-02-19 16:14:31 -08:00
Dan Field
572fea361c
Revert "Shut down and restart the Dart VM as needed. (#7832)" (#7877)
This reverts commit 0d6ff1669c4a765774b91e37353b4392408d112a.
2019-02-19 16:14:18 -08:00
sjindel-google
3a1b9b3d85
Remove unnecessary entry-point closurization. (#7827) 2019-02-18 14:23:17 +01:00
Chinmay Garde
0d6ff1669c
Shut down and restart the Dart VM as needed. (#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
Dan Field
f519aedb95
Fix typo in painting.dart (#7814) 2019-02-13 15:14:10 -08:00
Dan Field
816921b9e4
Use newer Skia API for PathMeasure (#7809) 2019-02-13 11:15:19 -08:00
Brian Osman
7c702404b8
Create mipmaps for images when uploading them on the IO thread (#7751)
This does several things:
- It adds CPU time on the IO thread, but avoids GPU time on the GPU
  thread.
- For images that are never drawn with mipmaps, it adds about 33%
  memory overhead. For images that are drawn with mipmaps, it saves
  an entire copy of the base level.
- It fixes https://github.com/flutter/flutter/issues/24517, which is
  a driver bug related to mip-mapping and cross-context images.

Overall, I think the tradeoff is good, but I'm curious to see what
benchmarks look like.
2019-02-08 15:12:29 -05:00
Michael Klimushyn
b0370c13c3
Decode using the last cached required frame (#7715)
`MultiFrameCodec` now uses whatever previously cached required frame is
available instead of panicking if it doesn't have the exact frame
requested by `SkCodec::FrameInfo#fRequiredFrame`.

`SkCodec::FrameInfo#fRequiredFrame` doesn't point to the one and only
frame that's required to decode the given frame. It points to the latest
frame that's disposal method none and filling a greater surface area
than the current frame. The last required frame `MultiFrameCodec` has
actually cached is also valid in these cases and can be supplied as
`fPriorFrame` instead. [flutter/flutter#26757](https://github.com/flutter/flutter/issues/26757#issuecomment-459522530)
has a more detailed explanation.

Fixes flutter/flutter#26757
2019-02-07 14:47:23 -08:00
Dan Field
3c38dd342f
Fix versions implementation (#7726) 2019-02-07 08:53:31 -08:00
Chinmay Garde
6585f334a1
Allow all entrypoints support by the command line VM. (#7717) 2019-02-06 15:29:19 -08:00
Matt Carroll
cc27cafb84
Implemented Dark Mode for Android (#25525) (#7488) 2019-02-04 19:30:15 -08:00
Matt Carroll
194608290e
Move Brightness definition to dart:ui (#27479) (#7678) 2019-02-04 13:29:53 -08:00
Kaushik Iska
b94e759b25
Expose the Flutter engine, Dart and Skia versions to Dart. (#7634)
- Moved versions from shell to common
- versions singleton contains all the required versions.
2019-01-30 16:22:45 -08:00
Gary Qian
2c610bfec6
Fix dynamic array -> vector (#7645) 2019-01-30 13:03:27 -08:00