245 Commits

Author SHA1 Message Date
Adam Barth
cbd29450ff Add a microbenchmark for simple block layout
R=eseidel@chromium.org, ojan@chromium.org

Review URL: https://codereview.chromium.org/701813004
2014-11-04 13:35:03 -08:00
Hixie
fb8f678d27 Docs: add an example that uses the current APIs to define an <element>
element; an example that uses that example to define some HTMLy
elements; and an example to use those HTMLy elements to display a
hello world doc. Highly incomplete WIP.

Review URL: https://codereview.chromium.org/698293003
2014-11-04 13:32:07 -08:00
Hixie
21a61ab7e0 Specs: define registerElement() a little differently, so that the code
that uses it looks nicer; this moves the complexity to places that
register elements without using 'class' (e.g. the internals of
frameworks that create elements for defining elements)

Review URL: https://codereview.chromium.org/699083005
2014-11-04 12:16:49 -08:00
Hixie
0733fef757 Specs: define registerElement() even more carefully: as previously defined, it didn't actually register the element...
Review URL: https://codereview.chromium.org/696783004
2014-11-04 11:59:43 -08:00
Hixie
02f471411b Specs: define registerElement() more carefully; add an 'end tag
parsed' callback; pass the element's module to the constructor when
constructing a custom element (these are rather experimental changes
and we may want to go a different way on this stuff)

Review URL: https://codereview.chromium.org/701873004
2014-11-04 11:57:02 -08:00
Adam Barth
ed80ee081b tests
Address comments

Add a basic parser benchmark

This CL adds a basic benchmark for the parser. There isn't a direct way to
exercise the parser in Sky, so we use imports.

This CL also adds a load event to <import> to determine when the import is done
loading.

R=eseidel@chromium.org

parser benchmark wip
2014-11-04 11:00:32 -08:00
Elliott Sprehn
8947663b20 Remove most of DocumentOrderedMap.
We only need the single id lookup path now.

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

Review URL: https://codereview.chromium.org/705473004
2014-11-04 10:06:45 -08:00
Elliott Sprehn
11b2b24722 Remove DOMImplementation.
Expose a Document constructor instead. This also exposes that
the TemplateBinding library might need more control over the
registration context for custom elements. For now we make all
documents share the same registration context.

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

Review URL: https://codereview.chromium.org/697363002
2014-11-03 23:18:39 -08:00
Elliott Sprehn
e2a6aca882 Remove lots of Text APIs.
I also removed Node#normalize() which is Text related
and doesn't seem like something we need. Frameworks
can implement it if needed.

Remove most of the media stack.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/698213002
2014-11-03 22:34:23 -08:00
Ojan Vafai
4ecaa91c6c Remove margin collapsing.
Margin collapsing is a document-oriented feature. For applications
it just causes confusion and slowness.

margins.sky has failure output because offsetTop is returning the
wrong values. That's not new with this patch though. When I look
at it visually in skydb, everything seems to be in the right place.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/700743002
2014-11-03 21:30:40 -08:00
Ojan Vafai
cee35738bb Add the check layout framework for tests.
Also add a test for margins.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/699113002
2014-11-03 20:46:32 -08:00
Elliott Sprehn
8c0a714beb Remove most of the media stack.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/689373003
2014-11-03 20:21:19 -08:00
Scott Graham
ceac620f93 Fix more Windows compile errors
- Silence warnings in sky code (unnecessary return)
- Disable some warnings for bison-generated code
- Missing include for htons et al.
- Don't build xdisplaycheck on Windows.

R=jam@chromium.org

Review URL: https://codereview.chromium.org/697183003
2014-11-03 19:42:39 -08:00
Elliott Sprehn
0bfad6eb75 Remove HTMLAudioElement.
We'll use a Mojo audio API instead.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/696913004
2014-11-03 19:08:42 -08:00
Elliott Sprehn
2fdeeca8b0 Remove WebPageSerialzier related code.
R=ojan@chromium.org

Review URL: https://codereview.chromium.org/699623006
2014-11-03 19:08:16 -08:00
Adam Barth
1d55401b57 Don't GC message pipes that have an in-flight request
In mojom, there's a notion of a request/response pair. This CL teaches the JS
bindings not to GC a message pipe after a request has been issued but before
the response has been received.

R=hansmuller@chromium.org

Review URL: https://codereview.chromium.org/696373003
2014-11-03 19:05:48 -08:00
Elliott Sprehn
93af62d3e7 Remove HTMLVideoElement.
This also removes some compositor related code, but there's not much of
it anyway so we can just add it back later when we do <iframe>.

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

Review URL: https://codereview.chromium.org/701663002
2014-11-03 18:02:22 -08:00
Elliott Sprehn
59454159a3 Remove shape-outside.
Since we don't have floats this doesn't do anything now.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/703563002
2014-11-03 18:01:57 -08:00
Ojan Vafai
29ff7e21fd Remove more float machinery.
Also removed the clear property since it's only purpose was
to clear floats.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/700703002
2014-11-03 17:00:27 -08:00
Hixie
00a2de6490 Specs: Drop the concept of late-bound elements. An element can never be upgraded.
This has the following implications:

 - There's no createElement() function any more. If you want to create
   an element from script, you have to use its constructor.

 - There's no async element registration. The parser will block until
   all the imports are imported when you use a tag name of a custom
   element that hasn't been registered yet, in case one of the imports
   defines it.

 - If you try to construct a non-registered element in markup, it
   turns into an <error> element.

 - <div>, <span>, and <error> are new built-in elements.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/695423004
2014-11-03 16:52:47 -08:00
Adam Barth
ef24228598 Remove <meta>
We're not using this element.

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

Review URL: https://codereview.chromium.org/699023002
2014-11-03 16:51:31 -08:00
Elliott Sprehn
c24fbd5cd2 Remove more API from Node and ContainerNode.
R=abarth@chromium.org, ojan@chromium.org

Review URL: https://codereview.chromium.org/698123002
2014-11-03 14:55:19 -08:00
Hixie
5bc8ae496a Specs: Explain the parser a bit better. Make the output of registerElement() something you can pass to registerElement().
Review URL: https://codereview.chromium.org/705443002
2014-11-03 14:08:12 -08:00
Adam Barth
6002422526 Convert the directory listing to run on top of the platform
Previously we were using string concatenation to build up the directory
listing. Now we fetch some JSON from the server and use data binding to inflate
a directory listing.

This exmaple doesn't work yet because we're missing support for
template@repeat, but hopefully we'll get that soon.

Also, added support for setRequestHeader to XMLHttpRequest.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/688413005
2014-11-03 12:53:38 -08:00
Adam Barth
512c4591a6 Remove HTMLLinkElement
Please use <import> instead.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/696413002
2014-11-03 12:51:24 -08:00
Rafael Weinstein
3eb5be249e Remove ArrayFuzzer from observe.sky test (was timing out).
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/695413003
2014-11-03 12:49:41 -08:00
Ojan Vafai
ab8e1f98d5 Remove more support for floats from RenderBlockFlow.
This doesn't change any behavior. Floats were already removed.
This is just removing effectively noop code.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/692563004
2014-11-03 12:40:09 -08:00
Adam Barth
4240a776a4 Replace <link rel="import"> with <import>
This CL is just a search-and-replace.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/694423002
2014-11-03 12:34:57 -08:00
Hixie
2a6e5c6b29 Specs: Add a URL field to the Module and Application objects. Note
that this makes the constructor for Module now have three arguments.
They're all non-optional which is why I didn't turn it into a
dictionary, but maybe it's time to start thinking about that. And
maybe URL should be optional.

Review URL: https://codereview.chromium.org/700603002
2014-11-03 11:07:58 -08:00
Rafael Weinstein
40ce06f206 Added tests for observe.sky
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/694323003
2014-11-03 10:41:34 -08:00
Adam Barth
d07561b6cf Fix SkyElement
Adam broke this when trying to refactor it. This CL is just a partial revert of his
CL.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/689243003
2014-11-03 10:15:38 -08:00
Adam Barth
8323fb1e88 Basic implementation of <import>
This CL adds basic support for the <import> elements. We're using the same imports
machinery as <link rel="import">, which simplifies this patch substantially.

Currently we support both <link rel="import"> and <import>. Once this CL lands, I'll
update all the existing modules and then we can drop support for
<link rel="import">.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/681983005
2014-11-03 10:14:09 -08:00
Adam Barth
2e3d0ab74c Add --use-osmesa flag to skydb
This flag lets us run skydb under Chromoting.

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

Review URL: https://codereview.chromium.org/697943002
2014-11-03 09:33:34 -08:00
Elliott Sprehn
c0bf67d1f9 Remove interactive content and form related API from HTMLElement.
In particular this inlines the accessKeyAction, removes isInteractiveContent()
which was for special casing certain elements in event dispatch, and removes
eventParameterName() which was only needed for inline event handlers.

I also moved Node::commonAncestor into NodeRenderingTraversal, the only
callers of it passed NodeRenderingTraversal::parent as the second argument,
it didn't make sense to have this generic thing.

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

Review URL: https://codereview.chromium.org/693243002
2014-10-31 18:48:50 -07:00
Hixie
22d5eed1dd fix the complexity comments for attribute APIs
Review URL: https://codereview.chromium.org/696783003
2014-10-31 17:20:18 -07:00
Elliott Sprehn
ca3b2661ef Remove a lot of API surface from Element.
R=ojan@chromium.org

Review URL: https://codereview.chromium.org/696903002
2014-10-31 16:48:20 -07:00
Hixie
0fadb1e50c Specs: default arguments
Review URL: https://codereview.chromium.org/694843003
2014-10-31 16:45:20 -07:00
Ojan Vafai
ed0c01cdca Remove CSS Grid Layout and grid media queries.
The two are unrelated, but it was easier to just grep for grid
and remove them all. Aside from the media query change, there
isn't any change in behavior since grid was behind a flag.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/689853003
2014-10-31 16:40:03 -07:00
Hixie
f1b8900dbf Specs: make element registrations be per-module, define how they are
exported and reexported, rename 'interface' to 'class' in the IDL, add
constructors to all registered elements

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/695043002
2014-10-31 16:18:46 -07:00
Elliott Sprehn
5330701999 Remove Element#attributes.
We now implement getAttributes() such that it returns
a new set of Attr isntances on every call as well.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/697773002
2014-10-31 15:10:53 -07:00
Adam Barth
e1c150ffca Drop support for this.exports
Please use module.exports instead. As far as I know, all code in the repo has
been converted over to the new style.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/698543006
2014-10-31 15:02:45 -07:00
Adam Barth
0b40ab943e Clean up SkyElement
There's no reason to wrap this script in an anonymous function. Sky modules
already run inside their own scope.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/692253002
2014-10-31 14:58:38 -07:00
Adam Barth
03114dfa7e Switch "html" Mojo modules to the Sky module system
These never really worked with HTML imports. This CL updates them to use a more
modern version of the Sky module system so we can delete the old this.exports
pattern.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/697723003
2014-10-31 14:46:40 -07:00
Rafael Weinstein
11130c9880 Minor tweaks to sky/framework/README.md 2014-10-31 14:41:52 -07:00
Rafael Weinstein
7f221ff756 add README.md
BUG=
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/695963003
2014-10-31 14:37:32 -07:00
Eric Seidel
509999eccd Add a PRESUBMIT for gn check, currently only for //sky/*
Also fixed //sky/* to pass gn check again.

This makes all of our previous DEPS header checking
obsolete and those can be removed now.

R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/697733002
2014-10-31 14:25:33 -07:00
Hixie
95c3a249f7 Specs: Clarify currentScript behaviour
Review URL: https://codereview.chromium.org/693933003
2014-10-31 13:30:11 -07:00
Adam Barth
9a2441ce9e Make clicking links work in SkyDB
Now the SkyDebugger implements NavigatorHost and actually navigates the
mojo::View. This CL pulled a big refactor of sky/tools/debugger to separate out
MojoMain from debugger.cc.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/690363002
2014-10-31 13:17:15 -07:00
Viet-Trung Luu
d707787423 mojom: Remove braces from module statements and make them come first.
So, instead of:

import "bar.mojom";
module foo {
  ...
}

You'll do:

module foo;
import "bar.mojom";
...

(Note that the grammar in the parser doesn't capture the ordering
constraint. It's hard to do so while keeping the grammar LR(1) AFAICT.
So instead we enforce the ordering "manually".)

Also delete mojo/spy/PRESUBMIT.py since it's broken. We'll delete
mojo/spy separately.

R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/687793004
2014-10-31 12:59:52 -07:00
Ojan Vafai
7d3feb3952 Remove line breaking to avoid window.
Now that we don't have multi-column or pagination, this
is dead code. This also means we don't need to call
layoutBlockFlow in a loop.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/697713002
2014-10-31 12:41:40 -07:00