284 Commits

Author SHA1 Message Date
Chinmay Garde
930bfee5dc Wire in the device observatory port while initializing the Dart VM 2016-02-08 15:43:12 -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
Adam Barth
447f7fc14f Merge pull request #2348 from abarth/view_host
Pass the Mozart ViewHost into Dart
2016-02-04 08:59:33 -08:00
Jason Simmons
6c35840837 Merge pull request #2344 from jason-simmons/sound_file_cleanup
Change services to create temporary files that will be deleted by the…
2016-02-03 15:15:58 -08:00
Chinmay Garde
055a053b58 Merge pull request #2349 from chinmaygarde/master
Update service handler in dylib to use the Mojo C API only
2016-02-03 15:11:47 -08:00
Chinmay Garde
42019c43da Update service handler in dylib use the Mojo C API only 2016-02-03 15:00:17 -08:00
Adam Barth
aec7d422e7 Pass the Mozart ViewHost into Dart
Dart needs access to the ViewHost in order to create child views.
2016-02-03 14:39:45 -08:00
Adam Barth
4192794b60 Merge pull request #2347 from abarth/composite_child_scenes
Include child scenes when uploading to Mozart
2016-02-03 14:21:22 -08:00
Adam Barth
e3bf0fa3c1 Include child scenes when uploading to Mozart
Previously we just dropped child scenes on the floor. Now we upload them
to Mozart. However, we just draw them on top of all the other content
and don't apply any clips or blends.
2016-02-03 14:16:09 -08:00
Chinmay Garde
7dcf0c7765 Make the dynamic_service_loader target explicitly depend on common deps for generated headers 2016-02-03 13:59:17 -08:00
Chinmay Garde
c40b3d808d Install Mojo system thunks in dylib loaded for dynamic service resolution 2016-02-03 13:45:20 -08:00
Jason Simmons
1782b8f280 Change services to create temporary files that will be deleted by the ResourceCleaner
If the Sky shell process does not have an orderly shutdown, then temporary
files created by services may never be cleaned up.

The ResourceCleaner task will run at the next startup and clean up any files
that match the prefix used by Chromium's temporary file API.  Services will
now use the same prefix for their files.
2016-02-03 11:50:09 -08:00
Adam Barth
94dac511f6 Fix the mac build 2016-02-03 09:58:47 -08:00
Jason Simmons
2dd834fd45 Merge pull request #2339 from jason-simmons/platform_activity_services
Implementation of platform services for Android
2016-02-02 17:02:59 -08:00
Chinmay Garde
a7349a1142 Allow dynamic service resolution in the iOS shell 2016-02-02 16:55:35 -08:00
Jason Simmons
7730a0c123 Implementation of platform services for Android 2016-02-02 16:10:22 -08:00
Devon Carew
7204fc0663 Merge pull request #2335 from devoncarew/start_paused
some work towards a --start-paused flag
2016-02-02 12:20:43 -08:00
Devon Carew
3c83f895ed some work towards a --start-paused flag 2016-02-02 11:44:01 -08:00
Chinmay Garde
7fe880d89f iOS: Implement service providers for flutter.platform 2016-02-02 11:37:18 -08:00
Adam Barth
bdacb56cdd Improve IME interface
Instead of providing a stream of mutations, we now provide a the client with
the complete state of the editing control to prevent the two from getting out
of sync.

As a side-effect, we can now move the cursor around when editing a text field.
2016-02-01 20:41:48 -08:00
Chinmay Garde
191413999f Merge pull request #2330 from chinmaygarde/master
Add an assertion in debug if the application requests an unknown service
2016-02-01 15:42:33 -08:00
Chinmay Garde
7cc0e03ba5 Remove the mojo::Close call because the desctructor will automatically be called when the handle goes out of scope 2016-02-01 13:14:34 -08:00
Jason Simmons
3407ce1fb9 Reset all animator state when restarting a paused animator
Fixes #1499
2016-02-01 13:05:54 -08:00
Chinmay Garde
2854f56be1 Add an assertion in debug if the application requests an unknown service 2016-02-01 12:56:02 -08:00
Jason Simmons
052d65cc14 Clear the Flow raster cache when a GrContext is destroyed
After an application is suspended and the GrContext associated with the
Flutter view is destroyed, the raster cache still contains images tied
to the defunct context.  The SkyShell process will crash if these images
are used after the application resumes.
2016-02-01 10:36:09 -08:00
Adam Barth
c3c5af1fbe Move Flow layers to //flow/layers 2016-01-30 23:35:22 -08:00
Adam Barth
7bce54b79e Fix build 2016-01-30 13:42:35 -08:00
Adam Barth
0a7fae7c0a Merge pull request #2295 from abarth/ios_avoid_keyboard
Teach flutter how to avoid the iOS keyboard
2016-01-30 13:32:13 -08:00
Jason Simmons
bb50a35434 Reset the animator before assigning a new vsync provider
When the engine starts a new version of the Dart application, the animator may
have pending callbacks and other state related to the previous run of the app.
This state must be cleared before the new vsync provider is assigned.
2016-01-28 16:41:12 -08:00
Adam Barth
411c6bfa4b Port flutter.mojo to Mozart
Everything should work except the keyboard.
2016-01-28 16:04:19 -08:00
Adam Barth
707a18cde6 Teach flutter how to avoid the iOS keyboard
In the future, we'll probably want to plumb through the keyboard animation
parameters, but for now we match the behavior on Android where we move the
widgets out of the way of the keyboard without animation.
2016-01-28 15:29:24 -08:00
Jason Simmons
8d7a4bb3f8 Merge pull request #2313 from jason-simmons/view_reset_isolate
Create a new pipe to the ServiceProvider when PlatformViewAndroid sta…
2016-01-28 12:48:16 -08:00
Jason Simmons
35e3e94e25 Create a new pipe to the ServiceProvider when PlatformViewAndroid starts a Dart isolate
Previously PlatformViewAndroid would create a pipe and hand it off to the
SkyEngine, which would give it to the isolate's DartState.  If a second
isolate is created, the SkyEngine would no longer hold a valid proxy to a
ServicesProvider, and the new isolate's Dart code can not obtain the
servicesProvidedByEmbedder.
2016-01-28 11:13:46 -08:00
Chinmay Garde
611ea9cc31 iOS: Respect view controller visibility notifications and wire in Engine::OnAppLifecycleStateChanged 2016-01-28 11:00:29 -08:00
Chinmay Garde
0d446703bf iOS: Implementation of ::activity::Activity from activity.mojom 2016-01-27 15:01:53 -08:00
Adam Barth
e22e75ea50 Merge pull request #2302 from abarth/rm_scoped_ptr
Remove almost all uses of base::scoped_ptr
2016-01-27 08:38:41 -08:00
Adam Barth
142c5dc5ec Remove almost all uses of base::scoped_ptr
We now use std::unique_ptr more consistently.
2016-01-27 01:05:47 -08:00
Adam Barth
c3a78a1796 Remove dependencies on ui/gfx/geometry
We have enough geometry classes kicking around. We don't need the
ui/gfx/geometry types too.
2016-01-26 23:57:20 -08:00
Chinmay Garde
bb2affa7e5 iOS: Add an explicit FLX resource copy phase to the framework target
Also asserts on there being an FLX bundle at all
2016-01-26 14:34:21 -08:00