321 Commits

Author SHA1 Message Date
Hixie
121fe0df40 Fix startup crash caused by mojo roll. 2016-03-03 09:29:33 -08:00
Adam Barth
95b5d5dfa8 Update uses of Mojo to new interfaces 2016-03-02 14:14:55 -08:00
Jason Simmons
41f93f4099 Rename DOMDartState to UIDartState 2016-03-02 10:47:30 -08:00
Jason Simmons
d474e9d2b6 Merge pull request #2439 from jason-simmons/isolate_mojo_services
Implement support for invoking Mojo services from secondary isolates
2016-03-02 10:04:03 -08:00
Yegor Jbanov
c537bd7bfc use the mandatory "ext." prefix in VM service extensions 2016-02-29 16:27:15 -08:00
Jason Simmons
0ede7dded8 Implement support for invoking Mojo services from secondary isolates 2016-02-29 16:20:27 -08:00
Chinmay Garde
8b89ad7dce Merge pull request #2435 from chinmaygarde/master
Allow specification of the FLX bundle (containing no Dart snapshot) outside the iOS/Mac application bundle.
2016-02-29 13:17:25 -08:00
Chinmay Garde
f9281a1edf Allow specification of the FLX bundle (containing no Dart snapshot) outside the iOS/Mac application bundle.
Allows launching of apps without having any Xcodebuild step in the simulator.
2016-02-29 13:16:01 -08:00
Matt Perry
34fb968705 Remove unused UpdateService. 2016-02-29 15:11:33 -05:00
Adam Barth
cf4c62ca1d Remove unneeded symbol from main_ios.mm
We don't appear to need this hack anymore.
2016-02-24 20:33:57 -08:00
Jason Simmons
320d8e012b Merge pull request #2421 from jason-simmons/isolate_spawn
Support spawning new Dart isolates from within a Flutter app
2016-02-24 17:24:11 -08:00
Jason Simmons
470118b0de Support spawning new Dart isolates from within a Flutter app 2016-02-24 14:59:59 -08:00
Adam Barth
09e87f5865 Enable background compilation by default
We've been enabling it in the flutter tool for a while. This patch enables by
default in general.
2016-02-24 14:55:58 -08:00
Eric Seidel
f94ca77317 Add explicit destructor to appease clang plugin
@jason-simmons
2016-02-19 11:03:12 -08:00
Jason Simmons
6d9419a3e7 Fix iOS build 2016-02-19 10:56:25 -08:00
Jason Simmons
e79f0be909 Merge pull request #2402 from jason-simmons/font_custom_load
Support loading of custom fonts
2016-02-19 10:11:10 -08:00
Adam Barth
24eb9b3c19 Flutter.mojo should support multiple views
Each view gets its own Dart isolate. Unfortunately, the ShellPtr is a unique
resource, which means we need to proxy an implementation of Shell to each view.
In the future, we should probably switch dart to expect an ApplicationConnector
rather than a Shell.
2016-02-18 16:22:39 -08:00
Adam Barth
8111a77f73 Remove ServiceRegistry
We don't need this anymore now that we have Mozart.
2016-02-18 16:09:58 -08:00
Jason Simmons
0b8038fa1e Support loading of custom fonts
The FLX will contain a font manifest JSON file that maps font family names
to custom font assets.  Flutter will provide a FontSelector that loads
fonts on demand and caches typeface and style data.
2016-02-17 12:07:22 -08:00
Adam Barth
f7265449bf Move ganesh_canvas to sky/shell/gpu/direct/
We only use the ganesh canvas in the direct configuration. This patch moves the
class into the directory to make that clear.
2016-02-17 11:16:14 -08:00
Adam Barth
c773bcac44 Attach a stencil buffer
Skia can go faster (and crashes less) when we have a stencil buffer.

Fixes https://github.com/flutter/flutter/issues/1931
2016-02-17 11:02:03 -08:00
Adam Barth
9e1e1fba54 Fix Android build 2016-02-13 00:09:32 -08:00
Adam Barth
9dae74e97b Remove dart:ui_internals
This patch merges these functions into dart:ui, which is simpler.

Fixes #83
2016-02-12 22:44:20 -08:00
Adam Barth
b09cd543bd Add an off-by-default flag for background compilation 2016-02-12 16:01:18 -08:00
Jason Simmons
f4542c9152 Use Engine::RunFromBundle and the ZipAssetBundle on all platforms 2016-02-12 11:50:00 -08:00
Adam Barth
ab14d642fb Merge pull request #2386 from abarth/improve_mojo
Polish Mojo platform implementation
2016-02-11 14:31:00 -08:00
Adam Barth
d3dbc1cda4 Polish Mojo platform implementation
* Use Node::Combinator::PRUNE, which stops the Mozart launcher from showing red
  when we're loading child views. Instead of blocking the whole app, we'll now
  just prune away the children that aren't ready. Eventually we'll want
  to let authors control these operations.

* Grab the service registry in AcceptConnection rather than CreateView. The
  CreateView comes from the Mozart launcher, which isn't where we want to get
  the service registry. Now we get the service registry from the first app to
  connect, which isn't right either but at least works while we sort out what
  we really want.
2016-02-11 12:43:37 -08:00
Chinmay Garde
b8c6a97d81 Add error logging when a dynamic service fails to load
This happens once per service
2016-02-10 16:03:39 -08:00
John McCutchan
d089e76e24 Enable and test sky_shell --start-paused 2016-02-10 14:39:52 -08:00
John McCutchan
4511e0c937 Add heart beat integration tests for Observatory in sky_shell 2016-02-09 12:40:28 -08:00
Jason Simmons
ae517c2fee Add a way to override the snapshot when running an FLX bundle 2016-02-09 10:08:26 -08:00
Chinmay Garde
110cfe671a Merge pull request #2366 from chinmaygarde/master
Wire in the device observatory port while initializing the Dart VM
2016-02-08 15:49:24 -08:00
Chinmay Garde
b8457c90f8 Log to the console in case the manually specified observatory port is malformed. 2016-02-08 15:48:28 -08:00
Chinmay Garde
930bfee5dc Wire in the device observatory port while initializing the Dart VM 2016-02-08 15:43:12 -08:00
Ian Hickson
bc8fae514c Merge pull request #2364 from Hixie/accessibility
Accessibility fixes
2016-02-08 14:50:46 -08:00
Adam Barth
323674e8d1 Merge pull request #2365 from abarth/mozart_transform
Make Mozart draw child views
2016-02-08 14:44:19 -08:00
Adam Barth
4b921cbb5e Make Mozart draw child views
Previously we weren't factoring in the layer's offset properly and we were
drawing the child views below the background layer.
2016-02-08 14:36:38 -08:00
Hixie
920e411493 Accessibility fixes
- Correctly enable accessibility on startup if it's already enabled.
- Avoid using deprecated APIs.
- Map FORWARD/BACKWARD scrolling actions to up/down even when left/right
  is also possible.
- Clear the accessibility focus when removing a focused semantics node.
- Unregister listeners when view goes away.
- Call setWillNotDraw(false) if accessibility is enabled.
- Clean the handling of hover events.
- Work around an Android bug where the system focus rect isn't drawn
  the first time.
2016-02-08 10:35:40 -08:00
Jason Simmons
2b6f8b6f76 Merge pull request #2360 from jason-simmons/refresh_flx_serve
Serve the asset bundle directly out of an FLX zip file
2016-02-08 10:21:39 -08:00
Chinmay Garde
59781e9315 Merge pull request #2358 from chinmaygarde/master
Add a dynamic services target with a variant for the embedder and dylib each
2016-02-08 10:12:51 -08:00
Chinmay Garde
fcc9e95f3c Add a dynamic services target with a variant for the embedder and dylib each
* The embedder depends on dynamic:embedder
* The dylib depends on dynamic:dylib
* The embedder calls OnLoad and OnUnload callbacks that setup and teardown the dylib environment
* The dylib contains a thin library that services OnLoad, OnUnload and OnInvoke so that vendors dont have to do it themselves (and potentially mess it up)
* The vendor only has to implement the `FlutterServicePerform` method that takes a fully scoped handle
* This patch is a WIP till we get a stable Flutter ABI. The stuff in mojo/public is *NOT* stable
2016-02-08 10:11:09 -08:00
Jason Simmons
97e65a4571 Serve the asset bundle directly out of an FLX zip file
Currently, during application startup we:
  * copy the FLX file to a Mojo pipe
  * write the Mojo pipe contents back to a temporary file on disk
  * unzip the FLX contents into cache storage
This contributes to startup latency and requires that we later clean up the
cache.

With this change, the assets will be extracted from the FLX archive
on demand with no writes to storage. Runtime cost should be minimal
given that most assets (except for the snapshot) are not compressed
in the archive.
2016-02-05 14:38:42 -08:00
Hixie
d0e17e679a Track whether accessibility is enabled.
If we send accessibility events when accessibility is disabled, we crash.
2016-02-05 10:05:57 -08:00
Ian Hickson
380d5353cb Merge pull request #2353 from Hixie/actions
Make AccessibilityNodeInfos interactive.
2016-02-05 07:47:34 -08:00
Hixie
707ff9b4e2 Implement hover touch exploration mode on Android. 2016-02-04 16:56:07 -08:00
Chinmay Garde
800de4b122 Service vendors no longer specify the service entry point
Instead, the entry point is well known. The service name is passed as an argument to the service.
2016-02-04 16:55:17 -08:00
Hixie
0fa8524288 Android accessibility focus support
This lets you focus and unfocus a node.

Still doesn't seem to be enough to actually have the node exposed in
TalkBack. We probably need hover for that (that's next).

(Also fixes a leak for when a subtree has been disconnected; previously
we were only forgetting the top node of the subtree, not the
descendants. Thanks @krisgiesing for catching that.)
2016-02-04 15:53:17 -08:00
Hixie
17806fdb76 Tell Android when the accessibility tree changes
Hard to say if this actually works. We'll find out once we've filled
this out enough that you can walk the tree in Android's Talkback UI.
2016-02-04 14:53:22 -08:00
Hixie
cb789edc94 Make AccessibilityNodeInfos interactive.
This exposes the actions on AccessibilityNodeInfo nodes.
It also tries to make the code that handles reloads more correct.
2016-02-04 14:53:22 -08:00
Hixie
adbb587ab1 Flutter<->Android accessibility bridge
This is another step towards enabling accessibility for Flutter on
Android. It exposes the semantics tree to Android's accessibility API
when accessibility is enabled.

It does not yet:
 - allow one to actually interact with the application via the
   accessibility API
 - expose the accessibility tree to touch exploration
 - implement the accessibility focus API

However, you can see the tree if you run uiautomatorviewer. It is there,
and it matches the UI. At least in Stocks. I didn't test anything else.
2016-02-04 09:15:07 -08:00