1390 Commits

Author SHA1 Message Date
Adam Barth
171ff643ef Disentangle Material and InkSplash
Most of the elements that want to be Material (i.e., have a level and cast a
shadow) don't want to be InkWells (i.e., have an ink splash effect). This CL
disentangles these two components, fixing bugs in the Drawer and in the
PopupMenu. Separating these concepts also lets us use Material for the
ActionBar and the FloatingActionButton.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1037673002
2015-03-25 10:43:12 -07:00
Adam Barth
4f29d04e2e Add an implict animation between ActionBar backgrounds
This CL uses CSS transition to add an implicit animation between purple
ActionBar and the light grey "search" action bar. It's unclear to me how best
to create implicit animations in this system, but using a CSS transition works
surprisingly well.

Also, fix the typography style for the placeholder in the search box.
Previously it was white on Grey[50], which was extremely hard to see.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1036783002
2015-03-25 10:42:42 -07:00
Adam Barth
bfd2651acb Remove the |style| parameter from Material
There's no reason for Material to take a |style| parameter anymore. Clients can
simply use StyleNode instead.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1030963005
2015-03-25 10:42:19 -07:00
Adam Barth
c6fa902d79 Remove the |style| parameter to InkWell
There's no reason for InkWell to take a |style| parameter anymore. Clients can
simply use StyleNode instead.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1019443003
2015-03-25 10:41:38 -07:00
Adam Barth
f2ce04fb3d Menu in StocksApp should animate out
This CL teaches PopupMenu how to animate out as well as in. Also, I've changed
the PopupMenuItem animations to be driven from the PopupMenu itself, which
makes it easier to run the animation in reverse when closing the menu.

TBR=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1033913002
2015-03-25 10:40:29 -07:00
Adam Barth
040c83d59a Clean up stock_app.dart
This CL cleans up stock_app.dart to better separate concerns now that we have
StyleNode. Also, this CL introduces IconButton, which will grow to include an
ink effect in the future, and makes the background of the search bar white.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1007893005
2015-03-24 18:00:33 -07:00
Adam Barth
b05db52145 Load data for StocksApp incrementally
Previously we would spend a lot of time during startup processing all 3k stocks
in the data set. This CL breaks the data up into 100 stock chunks and loads
them incrementally off the network. A future CL will switch to loading them on
demand.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1038533002
2015-03-24 14:58:42 -07:00
Viet-Trung Luu
19c63f4643 A crappy "netcat"-type example (in Dart).
It's especially crappy since it doesn't actually do much/any error
handling.

Use:
$ sky/tools/skydb start out/Debug \
  'sky/examples/terminal/index.sky?url=mojo:netcat?host=localhost%26port=80'

(Note: We don't have a resolver yet, so the host either has to be
"localhost" or an IPv4 address in the form N1.N2.N3.N4.)

R=erg@chromium.org

Review URL: https://codereview.chromium.org/1032743002
2015-03-24 13:49:13 -07:00
Viet-Trung Luu
ce0ff73d1f Fix the terminal example.
TBR=abarth@chromium.org

Review URL: https://codereview.chromium.org/1031933002
2015-03-24 13:00:55 -07:00
Adam Barth
1f589b52f0 Add an HTTP cache to SkyShell
This CL makes two changes to SkyShell's HTTP stack:

1) It introduces a disk cache so that responses can be loaded off disk instead
   of off the network.

2) It makes different instances of NetworkServiceImpl share the same
   OkHttpContext. Specifically, this means that network requests initiated from
   Dart share the same cache and connection pool as requests initiated from C++.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1006143003
2015-03-24 12:45:11 -07:00
Adam Barth
a9404f3e35 Add a --no_install option to shelldb
This CL adds an option to shelldb to skip installing the APK if the user of the
tool knows that the APK is already up-to-date on the device.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1002123003
2015-03-24 12:44:39 -07:00
Adam Barth
90a94680a2 Move oknet's read operations to a background thread
The read operation on OkHttp's ResponseBody object is blocking. The thread on
which we perform the read is highly contended during initial load. This CL
moves the read operation to a background thread, improving startup time for
StocksApp by 1s on a Nexus 5. Ideally we would perform an asynchronous read on
the stream, but that is not currently possible in OkHttp according to
http://stackoverflow.com/questions/29222231/reading-okhttp-responsebody-data-asynchronously

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1037443002
2015-03-24 12:44:06 -07:00
Alhaad Gokhale
215b98c91b Chromium -> Mojo roll.
Update from https://crrev.com/321900

Changes:
(1) OpenTypeSanitizer.cpp: Removed use of ots::EnableWOFF2() which was
removed from library and implementation was empty anyways.
(2) GraphicsContext.cpp: Header location for SkMatrixImageFilter.h moved.
(3) SkiaImageFilterBuilder.cpp: Header location for SkMatrixImageFilter.h moved.
(4) FEDropShadow.cpp: Function signature changed.

R=davemoore@chromium.org, jamesr@chromium.org
BUG=453591

Review URL: https://codereview.chromium.org/1028333002
2015-03-24 10:49:34 -07:00
Scott Violet
bb67d0a822 Plumbs through android supplying multipe touch points
Makes sky and conversions honor pointer values correctly.

R=abarth@chromium.org, erg@chromium.org, qsr@chromium.org

Review URL: https://codereview.chromium.org/1029753002
2015-03-24 09:13:10 -07:00
Adam Barth
f3df64fa3d Let Dart code running in Sky add events to the trace timeline
This will let us form a wholistic picture of work done in the framework and in
the engine.

R=ojan@chromium.org, rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1028243003
2015-03-23 14:48:06 -07:00
Hixie
e42426a37c [Effen] put Node class above its superclasses
TBR=rafaelw

Review URL: https://codereview.chromium.org/1030753002
2015-03-23 14:44:18 -07:00
Scott Violet
e39bb038c0 Cleans up events to just the parts we're actually using
Also unifies mouse and touch into a single event type.

R=abarth@chromium.org, erg@chromium.org

Review URL: https://codereview.chromium.org/1033513003
2015-03-23 14:33:21 -07:00
Adam Barth
cc12331d63 Update references to Mojo core and bindings
Build fix after recent Dart bindings refactoring.  Now that these libraries are
not included in the snapshot, we need to load them from the mojo package.

R=zra@google.com
TBR=zra@chromium.org

Review URL: https://codereview.chromium.org/1029683002
2015-03-23 13:22:38 -07:00
Adam Barth
27359c558f Add tracing to oknet
R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1018393006
2015-03-23 13:22:13 -07:00
Adam Barth
1021146178 Make it possible to construct a Stock directly
We were missing the ability to initialize one of the fields.

TBR=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1027293003
2015-03-23 11:23:48 -07:00
Zachary Anderson
d83427c165 Dart: Removes all but native calls and the handle watcher from the snapshot.
The bindings, core, and application libraries are now referred to as, e.g.:

package:mojo/public/dart/core.dart

Since the handle watcher remains in the snapshot, it no
longer refers to types defined in core.dart. References to types defined
in core.dart are also removed from mojo_natives.cc.

In Dart packaged apps, the SDK is zipped up under mojo/public/dart.

For embedder tests, the SDK is copied into the generated source output directory.

A base_dir parameter is added to the 'dart_package' and 'mojom' GN macros so that
consumers of the Mojo SDK can all import using the same URIs regardless of where
the SDK lives in their source trees.

BUG=
R=erg@chromium.org

Review URL: https://codereview.chromium.org/1027603002
2015-03-23 11:04:03 -07:00
Adam Barth
9703e7f46f Load stocks data off the network
Instead of hard-coding the stock data in the Dart file, this CL moves the data
to a JSON file and loads that file over the network. This change improves load
time for the Stocks app from 3 seconds to 2 seconds.

Also, this CL removes shake-to-reload from the Stocks app because that also
slows down load time (due to the two module systems fighting each other).

R=rafaelw@chromium.org, ojan@chromium.org

Review URL: https://codereview.chromium.org/1021723005
2015-03-23 09:59:50 -07:00
Adam Barth
e26810b1de Add more tracing to Sky
This CL adds trace events:

1) Between requesting a frame and begin frame.
2) In the DartLoader see network latency.
3) While executing |main| and |_init|.

TBR=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1025073003
2015-03-20 16:11:39 -07:00
Rafael Weinstein
3b42fcfddd Move dom-serializer.sky to dom_serializer.dart (and clean up some analyizer errors)
TBR=abarth

Review URL: https://codereview.chromium.org/1025013003
2015-03-20 15:42:35 -07:00
Eric Seidel
d83ebf6913 Unbreak the deploy_sdk for --dev-environment
sdk_additions was already created above and thus
can't be linked here, must be copied.

TBR=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1026933002
2015-03-20 15:20:57 -07:00
Adam Barth
43ebba749b Add more trace events to Sky
These will help us better understand what's happening.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1027913002
2015-03-20 15:07:24 -07:00
Eric Seidel
ad94044ec8 Copy all of dart_sky.dart's supporting files into package:sky
Also bumped package:sky's version in prep for publishing.

R=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1024243002
2015-03-20 14:46:58 -07:00
Eric Seidel
a92a67ae42 Make the Sky pub package include our APK and teach sky_tool to install it
I'm not sure this is the final long-term solution, but works for now.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1022193002
2015-03-20 14:35:14 -07:00
Adam Barth
6d1228a2f3 Enable tracing in SkyShell
This CL teaches shelldb how to trace SkyShell.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1027903002
2015-03-20 14:16:43 -07:00
Rafael Weinstein
3c70e47312 Removing Sky JS Framework tests
BUG=
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1023213003
2015-03-20 14:04:34 -07:00
Eric Seidel
d06671f0ce Unbreak the build by adding the sky tool
TBR=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1021933004
2015-03-20 13:59:15 -07:00
Rafael Weinstein
8eaeed7ba0 [Effen] Update README.md 2015-03-20 13:45:04 -07:00
Rafael Weinstein
5b9632b9d4 Update Effen README.md 2015-03-20 13:43:55 -07:00
Rafael Weinstein
ad8f8a6ea5 [Effen] Move README.md to correct directory
TBR=abarth
BUG=

Review URL: https://codereview.chromium.org/1024183002
2015-03-20 13:24:10 -07:00
Eric Seidel
65f13ec5e7 Attempt to make us not crash on KitKat.
https://github.com/domokit/mojo/issues/68

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1026873002
2015-03-20 12:45:25 -07:00
Eric Seidel
88587e3f32 Bump SkyDemo.apk version
Sending out a new version to fix the hittesting bug.

TBR=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1025653005
2015-03-20 12:15:35 -07:00
Eric Seidel
fe416b295a Fix deploy_sdk.py to error out if files are missing
I also now deploy sky/bin/sky as sky/lib/sky_tool since
pub run doesn't really work very well yet.

R=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1026863002
2015-03-20 11:21:47 -07:00
Rafael Weinstein
d702c848e4 [Effen] minor cleanup
This patch adds an assert that the mount/unmount queues are not subject to concurrent modification and refactors the sync-tracing to avoid the cost of string interpolation if tracing is disabled.

BUG=
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1020103004
2015-03-20 10:20:05 -07:00
Adam Barth
f8b3596df6 Use StyleNode in StockMenu
StockMenu was creating a container for the sole purpose of applying style to
PopupMenu. Now we just use a StyleNode.

Also, I've reverted the change to make box-sizing default to border-box. It
turns out that CL wasn't effective because we didn't use the initialBoxSizing
function to initialize box sizing. I've made us use initialBoxSizing but switch
the default back to content-box because actually using border-box breaks a
bunch of stuff.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1024083003
2015-03-20 10:16:24 -07:00
Adam Barth
9a5aea3737 Introduce Scaffold to Sky framework
This CL extracts a Scaffold component from StockApp. The Scaffold component
lets you create an "app-like" layout with an action bar, a drawer, etc.

R=ojan@chromium.org, rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1027813002
2015-03-20 09:34:06 -07:00
Rafael Weinstein
082ca7c2c0 [Effen] add StyleNode
This patch adds a new (non-Render) StyleNode which takes two arguments: A (content) node, which it wraps and a Style object.

This allows for styles to be applied to Nodes which are constructed elsewhere (e.g. passed in as arguments).

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1027653002
2015-03-16 12:27:25 -07:00
Benjamin Lerman
f64fc80e81 Fix races when the same bits are downloaded from 2 URLs.
Until now, we were saving downloaded file to the temporary directory
with a name being the hash of the file content. It means there is a race
when the same content is downloaded from 2 different URLs.

To fix this, we now create an intermediary directory that is the hash of
the URL.

Also, because this is only needed for debugging with gdb, and this is
inefficient in term of both CPU and storage (we do not know when to
delete the temporary directory), we control this with a command line
flag.

R=ncbray@chromium.org, eseidel@chromium.org
BUG=https://github.com/domokit/mojo/issues/61

Review URL: https://codereview.chromium.org/1011333003
2015-03-20 12:51:00 +01:00
Rafael Weinstein
86dc24f938 [Effen] Add AnimatedComponent base class
This patch adds a base AnimatedComponent from which most components that animated should derive. It takes care of listening & unlistening from the animations during did(Un)mount as well as binding the animated value to a private field and scheduling the component for build.

Note that this patch removes the did(Un)mount overridable methods from Component and replaces them with a callback mechanism which is less brittle.

BUG=
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1027633003
2015-03-16 03:18:17 -07:00
Adam Barth
510cddef63 Integrate custom paint with the DocumentLifecycle
Instead of running paint requests during microtasks, we run them after updating
layout for the current frame. After draining all the paint requests, we then
drain whatever commits are available.

It's still possible that requestPaint callbacks can dirty style and layout
information, so we need to clean that information after servicing the requests.
Ideally we'd block these callbacks from dirtying style or layout information.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1027563002
2015-03-19 21:58:14 -07:00
Rafael Weinstein
f7a1477d26 [Effen] Add _syncChild assert and cleanup trace output
TBR=abarth
BUG=

Review URL: https://codereview.chromium.org/1021113002
2015-03-16 01:19:26 -07:00
Rafael Weinstein
486d0c1ce9 Added render tracing to Effen
TBR=abarth

Review URL: https://codereview.chromium.org/1023063003
2015-03-16 00:49:09 -07:00
Adam Barth
6a794823bc Remove pauseAnimationsForTesting
This code is unused and it hooks into the DocumentLifecycle in sketchy ways.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1020053002
2015-03-19 19:32:03 -07:00
Rafael Weinstein
216f9b143c [Effen] Slightly cleaner enforcement of App lifetime signals
TBR=hansmuller

Review URL: https://codereview.chromium.org/1028473003
2015-03-15 23:26:41 -07:00
Adam Barth
81233b6df9 Add a basic custom painting facility to Sky
This CL adds just enough custom painting to Sky to make
sky/examples/painting/circle.sky draw a circle. Over time, we should be able to
elaborate this system into something interesting and to make it actually work
in a reasonable way.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1017593005
2015-03-19 16:00:21 -07:00
Hans Muller
2239d67032 Call _notifyMountStatusChanged() on App startup
A recent change caused my scrolling app to fail because
didMount() was no longer called on my Scrollable subclass
at startup time.

I haven't been able to sort out how this used to work.
This CL is a hack to make it work again.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1019973003
2015-03-19 14:05:44 -07:00