20087 Commits

Author SHA1 Message Date
Benjamin Lerman
f8e27c4a18 Focus Views on touch events.
R=erg@chromium.org, abarth@chromium.org

Review URL: https://codereview.chromium.org/869543002
2015-01-23 10:34:55 +01:00
Elliott Sprehn
c9a152c464 Remove @keyframe parsing.
We still have the code internally, but the parser won't create
StyleRuleKeyframes anymore.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/871773003
2015-01-22 20:48:22 -08:00
Elliott Sprehn
ca9d4f1ab2 Consolidate callers to scheduleVisualUpdate.
Make everyone call through Document::scheduleVisualUpdate(). I also
removed some dead composited selection code that used this.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/865383003
2015-01-22 18:47:23 -08:00
Adam Barth
2c0b2f7ff9 Remove UseCounter
We'll eventually add this back but sometime in the future when we actually have
users.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/867903002
2015-01-22 18:26:55 -08:00
Adam Barth
265330e912 Remove some dead code in WebFrame
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/866813005
2015-01-22 18:26:26 -08:00
Adam Barth
3d511d7612 Remove TouchDisambiguation and WindowFocusAllowedIndicator
TouchDisambiguation is dead code. WindowFocusAllowedIndicator doesn't make any
sense because you're always allowed to focus.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/866283003
2015-01-22 18:25:27 -08:00
Elliott Sprehn
9612dcf25f Don't set expression attributes before they're bound.
We were cloning elements with all the attributes that contained
expressions like attrName="{{ foo }}" which meant we'd go through the
reflection process converting that value and also call the
attrNameChanged() callback and the attributeChanged() with the braced
string which the element didn't really want to know about.

After this patch we create a "clone source node" which is a copy of the
original element without the attributes that have the expressions and
use that when cloning, then we assign the properties using data binding
later.

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

Review URL: https://codereview.chromium.org/868973002
2015-01-22 17:04:10 -08:00
Hixie
85322f13b3 Specs: Gestures Mark III -- handle how to have a gesture claim that it
is the real gesture, even if another is still a candidate; enumerate a
bunch of gestures; allow for event coallescing; allow for events that
get sent before picking a gesture

Review URL: https://codereview.chromium.org/872523002
2015-01-22 16:52:39 -08:00
Adam Barth
473a700f02 Remove unused "Web" interfaces
These are all dead code.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/867093002
2015-01-22 16:08:26 -08:00
Adam Barth
63d7184715 Remove user gesture tracking
The developer has full control of Sky. We don't need to track whether something
was caused by a user gesture.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/868933003
2015-01-22 16:01:31 -08:00
Adam Barth
6354a8c53d Remove PageWidgetDelegate
There's only one page widget delegate: WebView.

R=eseidel@chromium.org, esprehn@chromium.org

Review URL: https://codereview.chromium.org/871643003
2015-01-22 15:31:29 -08:00
Adam Barth
68475c7f7c Remove more unused code in WebViewImpl
R=eseidel@chromium.org, esprehn@chromium.org

Review URL: https://codereview.chromium.org/866733007
2015-01-22 15:31:07 -08:00
Adam Barth
d4a9e8a55e Remove a number of unused features from WebViewImpl
This CL removes a bunch of unused code from WebViewImpl. The bulk of the code
is to let C++ drive scroll flights, but we're going to implement that using
gesture events and having the scroll driven in script.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/871683002
2015-01-22 14:58:11 -08:00
Adam Barth
62b72f23c9 Add basic PointerEvent support in NewEventHandler
blink::EventHandler is really hairy and deals with a lot of complex cases that
don't matter for Sky. This CL starts a NewEventHandler and adds support for
PointerEvents there. The NewEventHandler will eventually replace EventHandler
once we've actually migrated over from Mouse+Touch events to PointerEvents.

R=esprehn@chromium.org, ojan@chromium.org, eseidel@chromium.org

Review URL: https://codereview.chromium.org/823873004
2015-01-22 12:54:29 -08:00
Eric Seidel
9ec159869b Fix build.
TBR=esprehn@chromium.org,abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/836823003
2015-01-22 12:33:09 -08:00
Elliott Sprehn
f0599689e6 Merge ShadowRootRareData into ShadowRoot.
In Sky most elements with a ShadowRoot will have rare data since they'll
have elements inside them with more ShadowRoots which would increment
the m_childShadowRootCount field, or they'll contain a <content> element
which would increment m_descendantContentElementCount. Only leaf elements
that don't contain either will not get one, and everyone pays the price
for the rare data ptr.

This should be mostly net netural for memory usage and it makes the code
simpler. We can add it back later if we realize there's lots of leaf
widgets.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/862183003
2015-01-22 11:47:34 -08:00
Eric Seidel
9d01b86caf Add a note about hacks for building on V8.
TBR=abarth@chromium.org
BUG=v8:3841
2015-01-22 10:55:02 -08:00
Benjamin Lerman
447f8b19cf Update from https://crrev.com/312600
TBR=jamesr@chromium.org

Review URL: https://codereview.chromium.org/863253002
2015-01-22 13:22:57 +01:00
Benjamin Lerman
69be2dee41 Adding keyboard service.
This allows to show the soft keyboard on Android.

Also updated platform_viewport_android to dispatch key events.

R=abarth@chromium.org
BUG=449002

Review URL: https://codereview.chromium.org/856063002
2015-01-22 10:19:09 +01:00
James Robinson
c0c8a41eb3 Remove [Client=] annotation from ServiceProvider
This removes the symmetrical nature of ServiceProvider and consistently
passes and uses a ServiceProvider + ServiceProvider& pair in places that
wish to bidirectionally expose services, such as the view manager.

The
view manager library now deals with InterfaceRequest<ServiceProvider>
and ServiceProviderPtr objects (i.e. c++ wrappers for handles) instead
of a concrete implementation of ServiceProvider to make it easier for
callers.

A number of places that were assuming a particular
ServiceProvider would always exist are updated to reflect the nullability
of the parameters in mojom and places that do not wish to ever look up
or provide services now pass nullptr instead of doomed pipe handles.

The JS application startup classes are reworked a bit to accomodate
exposing services on the third ConnectToApplication/AcceptConnection
parameter.

BUG=449432
R=abarth@chromium.org, sky@chromium.org

Review URL: https://codereview.chromium.org/858103002
2015-01-21 18:36:01 -08:00
Adam Barth
f8cae06c15 Don't try to GetPixelsForTesting if not testing
This causes a DCHECK in DocumentView.

R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/866653002
2015-01-21 18:26:22 -08:00
James Robinson
57f0df4116 Update from https://crrev.com/312398
Involves adding many //testing/test.gni imports, fixing one
SkSurface::NewRenderTarget invocation inside sky, and fixing up
base::Process usage in the shell.

Review URL: https://codereview.chromium.org/862133002
2015-01-21 17:02:08 -08:00
Elliott Sprehn
93af6b3bf1 Don't store a RuleFeatureSet on ScopedStyleResolver.
Instead lets just iterate the list of sheets and ask each one questions. This
shouldn't be much slower since most widgets only have one sheet anyway.

I also moved the media query matching to the sheet collection. We weren't
correctly matching them since we only guarded the feature set, not the
addition to the list of active sheets.

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

Review URL: https://codereview.chromium.org/858423002
2015-01-21 17:00:06 -08:00
Hixie
a9da8e9e9d Specs: Gestures API Mark II - on the path to supporting gestures that fire events after they're finished
Review URL: https://codereview.chromium.org/858353003
2015-01-21 16:43:13 -08:00
Adam Barth
49e664d6ac Change background-repeat default to no-repeat
Previously, if you had a generated background image and a translucent (or
rounded) border, we would draw the image nine times because we would inflate
the fill rect to draw behind the border. With no-repeat, we only draw the image
once.

This saves 4.5% of record time on flights-app.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/844193009
2015-01-21 16:42:26 -08:00
Eric Seidel
317474975f Update HACKING.md 2015-01-21 16:37:40 -08:00
Adam Barth
7228761ef7 Serialize SkPictures to the file system
This CL teaches the Sky compositor how to serialize SkPictures to the file
system so that we can study them in the Skia picture debugger.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/853863003
2015-01-21 16:27:28 -08:00
Adam Barth
881b06dfc5 <iframe> should expose its mojo::ServiceProvider handle
After this CL, you can exchange services with the app loaded in the iframe by
calling takeServiceProvider() on the iframe element. That gives you the raw
handle, which you'll need to wrap in the appropriate mojom-generated interface.

R=hansmuller@google.com, sky@chromium.org

Review URL: https://codereview.chromium.org/862943004
2015-01-21 16:24:58 -08:00
Eric Seidel
c35f2bdf5d Always use mojo_shell in over-http mode
--origin tells mojo_shell to map all mojo: urls
to to a new base-url instead of the build directory.

This makes skydb's mojo_shell *always* use the network
loading path, which is what Android mojo_shell does
and is more like how mojo_shell will eventually be
used.

I also fixed the disk-space leak in the
dynamic_application_loader's NetworkLoader path
by having it immediately unlink the /tmp copy
of the library after dlopen.

In order to keep pprof working I had to teach the
dynamic_application_loader to write out a map of
/tmp/file -> url mappings so that we can fix
the pprof file afterwords.

This will "break" skydb --gdb on linux in exactly
as much as it is already broken on Android, but
I'm working on a build-id based solution for both
so that gdb knows how to find symbols for
non-existant randomly named /tmp libraries.

R=abarth@chromium.org, viettrungluu@chromium.org
BUG=450696

Review URL: https://codereview.chromium.org/829183005
2015-01-21 15:53:17 -08:00
Elliott Sprehn
a489bb7128 Remove css !important
Sky doesn't have important, it just orders properties in the same order
as the rules you specified.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/860423004
2015-01-21 14:34:02 -08:00
Elliott Sprehn
a55bb9341f Make flights-app-pixels pass again.
TBR=abarth@chromium.org

Review URL: https://codereview.chromium.org/868443002
2015-01-21 14:30:26 -08:00
Adam Barth
7c883963fa Enable SkTextBlob caching
Makes recording flights-app 15% faster.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/859353002
2015-01-21 12:27:10 -08:00
Adam Barth
f339e86f95 Delete blink::ImageQualityController
Instead, always use InterpolationLow. In Skia, that boils down to bilinear,
which is fast on GPUs. We should eventually let authors control the
interpolation quality in case they want pixelation, etc.

This CL saves 6.3% on Layer::RecordPicture for flights-app.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/860843006
2015-01-21 11:29:41 -08:00
Adam Barth
36450aeb83 Merge Blink code to cache SkTextBlob
This CL merges the following CLs from Blink to implement SkTextBlobs:

https://codereview.chromium.org/554613004
https://codereview.chromium.org/645363003
https://codereview.chromium.org/667573008
https://codereview.chromium.org/672713002
https://codereview.chromium.org/778233002
https://codereview.chromium.org/820093005
https://codereview.chromium.org/856613002

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/859203002
2015-01-21 10:58:40 -08:00
Adam Barth
6f3a5a1496 Move the call to mojo::View::Embed to HTMLIFrameElement
This CL prepares us to expose the imported and exported service providers to
JavaScript. We can't quite do that yet becaues the API on mojo::View isn't
ready for us. However, we can get started by moving the call to Embed into
HTMLIFrameElement.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/793393003
2015-01-21 10:49:24 -08:00
Elliott Sprehn
5ebbdf3db6 Eliminate RuleRange.
In Sky there's no UA rules so we don't need to keep track of the
range of UA vs Author rules for running applyMatchedProperties later.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/863883002
2015-01-20 19:50:35 -08:00
Elliott Sprehn
b05eec5f30 Prune the API of StyleResolver.
R=ojan@chromium.org

Review URL: https://codereview.chromium.org/858073003
2015-01-20 19:10:03 -08:00
Elliott Sprehn
f0e8f7c7d3 Treat UA rules like author rules when matching.
Sky doesn't have a concept of UA rules, just some default style
rules you can override.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/864693002
2015-01-20 18:49:23 -08:00
Hixie
a2dca047eb Specs: specced TapGesture, added some TODOs around events, and put in a placeholder for ScrollGesture.
Review URL: https://codereview.chromium.org/861013002
2015-01-20 17:25:11 -08:00
Elliott Sprehn
1d3828fb29 Put the StyleResourceLoader on the stack.
It has no state, we should just put it on the stack during style
resolve.

I also combined the methods inside StyleResourceLoader to make it
simpler.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/825433003
2015-01-20 16:49:40 -08:00
Elliott Sprehn
7686fb0b8f Simplify media query handling for stylesheets.
Just rebuild the sheets when the viewport changes sizes since that's
super rare in sky right now. This also causes a full document style
recalc, but we'll fix that later too. For now lets make the system
simpler.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/848483003
2015-01-20 15:35:25 -08:00
Eric Seidel
955ede4d3b Fix skydb gdb_attach for non-android configs
I dumped a bunch of android-specific goop into
gdb_attach in my previous commit.  This fixes that.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/859103002
2015-01-20 14:55:37 -08:00
Hixie
7faaa34433 Specs: Gesture API framework
Review URL: https://codereview.chromium.org/819223005
2015-01-20 14:46:54 -08:00
Adam Barth
6ed36e88fe Sky should symbolize pprof traces
In order for pprof to find the symbols in the profile, we need to rename the
binaries from foo.mojo to libfoo_library.so. This CL adds that step to the
stop_profiling command in skydb.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/812573006
2015-01-20 14:27:25 -08:00
Elliott Sprehn
0fcd743a64 Remove Element::textFromChildren().
Instead just use textContent() and teach HTMLStyleElement how to atomize
its children. I also added the optimization to Node::textContent so that
Text just returns its value instead of allocating a new buffer which
avoids malloc and copy when getting the textContent of text.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/864613002
2015-01-20 14:26:54 -08:00
Elliott Sprehn
b3e4c186ee Remove HTMLStyleElement::scopingNode().
It's not used.

TBR=abarth@chromium.org

Review URL: https://codereview.chromium.org/864533003
2015-01-20 14:26:43 -08:00
Aaron Boodman
798d05ee4a Add Application::RequestQuit().
This allows an application's host (typically the shell) to request the application to gracefully shut down.

There is not currently a caller. It will require additional work in application manager to do that.

R=davemoore@chromium.org

Review URL: https://codereview.chromium.org/853303004
2015-01-20 13:12:16 -08:00
Adam Barth
0739d9395b Add blink::WebPointerEvent
This CL adds the WebPointerEvent class and code to convert from
WebPointerEvents (the platform abstraction) to PointerEvents (the DOM API).

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/845313011
2015-01-20 10:11:05 -08:00
Adam Barth
385cd6107c Remove unused hit testing modes in Sky
R=eseidel@google.com

Review URL: https://codereview.chromium.org/855223002
2015-01-19 19:11:20 -08:00
Adam Barth
407fb582bd Sky should use an SkPicture when drawing
This CL teaches the Sky compositor to record an SkPicture instead of just
drawing in immediate mode. Using an SkPicture will let us experiment with
various optimizations in Skia that preprocess the SkPicture before translating
the Skia commands to GL commands.

This CL also refactors the "display delegate" system now that we can hand off
an SkPicture to a rasterization backend. The new design requires fewer
backpointers and removes the static display delegate factory.

R=eseidel@google.com

Review URL: https://codereview.chromium.org/854303002
2015-01-19 18:47:53 -08:00