597 Commits

Author SHA1 Message Date
Elliott Sprehn
0af96f055d Turn StyleSharing to 11.
In Sky we can style share if our TreeScopes have the same styles, our :host
styles are the same, and we'd inherit the same styles. This allows a lot of
simplification to the style sharing logic since we don't need to deal with
descendant selectors or tree boundary crossing rules:

- We can remove the logic that was checking that we were distributed
to the same insertion points since there's no ::content selectors.

- We can check the actual inherited values instead of looking at the
parentOrSHadowHostNode(). We used to look at the node in Blink because we
were checking that you'd get the same descendant selectors applied. In Sky
we instead want to make sure you'd inherit the same values. This also
means we don't need the element().parentOrShadowHostElement() != parent case
in the SharedStyleFinder which was trying to deal with descendant selectors
again.

I also removed the checks that were redundant with the checks inside
supportsStyleSharing() which we always check before adding sharing
candidates.

Finally by refactoring the code to make the TreeScope style check work it
exposed that the Document::styleSheets() and TreeScope::styleSheets() APIs
are now dead. A future patch will delete the now dead StyleSheetList class
as well.

This change makes the city-list application share between all the items in
the list, and all of the headers of the same type now share as well.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/796713002
2014-12-11 15:34:24 -08:00
Ojan Vafai
8971e980cd Prepare python code for reftests.
-s/-expected.html/-expected.sky/
-s/-expected-mismatch.html/-expected-mismatch.sky/
-In single_test_runner.py, get rid of the image hash checking
for reftests. It doesn't provide any value and just makes
getting reftests working more complicated.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/802573002
2014-12-11 15:24:02 -08:00
Ojan Vafai
63a8891e8d Add image_diff from the chromium repo.
This is needed for reference tests so we can diff images.
This is just a straight copy of the image diff in the
chromium repo.

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

Review URL: https://codereview.chromium.org/801443002
2014-12-11 15:21:29 -08:00
Colin Blundell
b5be4a0945 Restructure public side of navigation service.
This CL goes from this:
  //mojo/services/public/interfaces/navigation

to this:
  //mojo/services/navigation/public/interfaces

This CL also makes the Mojo-side changes necessary to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/796783002
2014-12-11 08:49:15 +01:00
Colin Blundell
2ddea42948 Restructure public side of content_handler service.
This CL goes from this:
  //mojo/services/public/interfaces/content_handler

to this:
  //mojo/services/content_handler/public/interfaces

This CL also makes the Mojo-side changes necessary to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/793243002
2014-12-11 08:16:09 +01:00
Rafael Weinstein
be846a56b7 Remove CompositingReasons.*
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/794733004
2014-12-09 17:19:00 -08:00
James Robinson
3302673761 Update from https://crrev.com/307758
Review URL: https://codereview.chromium.org/796663002
2014-12-10 17:32:33 -08:00
Elliott Sprehn
2be9b79d94 Use the HashSet of attribute names in SharedStyleFinder.
Instead of trying to match the actual attribute rules, lets just look
at the HashSet of attribute names. This is faster, though possibly less
optimal if you use compound rules like .foo[attr]. That's rare though,
and removing this extra RuleSet will allow simplifying SelectorChecker
since hasAnyMatchingRules required a special mode where it tried to
match selectors but ignored if the scope could really match. This paves
the way to moving the RuleFeatureSet to be per-TreeScope instead of
per-Document.

I also made the API of classNamesAffectedByRules match the newly added
attributesAffectedByRules to make SharedStyleFinder consistent.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/796583002
2014-12-10 17:12:07 -08:00
Eric Seidel
d4de7b0d3e Reverted the wrong one.
Revert "Revert "Get rid of LayerFragment.""

This reverts commit e68e8688f1105ca9fe7c49bac73246297ee76fb0.

TBR=ojan@chromium.org

Review URL: https://codereview.chromium.org/793123002
2014-12-10 15:01:32 -08:00
Eric Seidel
f353cd6cac Revert of Remove RenderLayer::collectFragments. (patchset #1 id:1 of https://codereview.chromium.org/778043005/)
Reason for revert:
This broke hit testing.  Hit testing always returns the root node now. :)

Original issue's description:
> Remove RenderLayer::collectFragments.
>
> Sky always has exactly one per RenderLayer. This patch
> gets rid of the hitTestLayer use of LayerFragment
> and gets paintLayerContents to create the list of
> fragments itself since it's the only caller.
>
> Also, delete dead code from LayerFragment.h.
>
> R=abarth@chromium.org
>
> Committed: 4a3b676dc3

TBR=esprehn@chromium.org,rafaelw@chromium.org,abarth@chromium.org,ojan@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/788383002
2014-12-10 14:58:48 -08:00
James Robinson
15db886b19 Simplify //mojo/public/c/system targets
We don't support building mojo apps in the component build, so we can
simplify these system targets a bit. We don't need to have everything
depend on a forwarding group that always evaluates to the same thing in
the mojo repo.

The new targets are:

//mojo/public/c/system which contains the system headers but no
implementation.

//mojo/public/platform/native:system which contains the system thunks
and exported thunk setter, used by anything run by the shell. This is
mostly used by the mojo_native_application template but is also used
by a few targets that need to link as shared_lib but will ultimately
be loaded by the shell.

//mojo/edk/system provides the real implementation of the system calls
and is used by the shell and a few tests.

The :for_... groups need to stick around for now to keep chromium
working, but once this rolls in to the chromium tree then these can
be fixed up as well.

R=viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/754963008
2014-12-10 13:56:25 -08:00
Colin Blundell
ac99b9896f Restructure public side of input_events service.
This CL goes from this:
  //mojo/services/public/interfaces/input_events

to this:
  //mojo/services/input_events/public/interfaces

This CL also makes the Mojo-side changes necessary to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/788353002
2014-12-10 22:50:57 +01:00
Colin Blundell
70693cc937 Restructure public side of gpu service.
This CL goes from this:
  //mojo/services/public/interfaces/gpu

to this:
  //mojo/services/gpu/public/interfaces

This CL also makes the Mojo-side changes necessary to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/788343002
2014-12-10 22:16:07 +01:00
Hixie
67697d635d Specs: Tentative approach for enabling removing/adding/moving children
to be animated in the old and new positions after the DOM is updated
(The "animation" part of this is still not figured out.)

Review URL: https://codereview.chromium.org/792993002
2014-12-10 11:15:54 -08:00
Rafael Weinstein
f38f80c9f8 Enable/Unprefix Animations & Transitions, add basic tests
This patch remove the Web Animations & CSS Animation runtime flags (and enables both). Removes prefixed Aninamations & Transitions and adds some basic tests & test support API.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/760183003
2014-12-10 10:38:34 -08:00
Colin Blundell
fb3655af68 Restructure public side of geometry service.
This CL goes from this:
  //mojo/services/public/cpp/geometry
  //mojo/services/public/interfaces/geometry

to this:
  //mojo/services/geometry/public/cpp
  //mojo/services/geometry/public/interfaces

This CL also makes the Mojo-side changes required to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/790213002
2014-12-10 17:56:39 +01:00
Colin Blundell
a450ba1353 Restructure public side of network service.
This CL goes from this:
  //mojo/services/public/cpp/network
  //mojo/services/public/interfaces/network

to this:
  //mojo/services/network/public/cpp
  //mojo/services/network/public/interfaces

This CL also makes the Mojo-side changes required to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/789243002
2014-12-10 16:28:40 +01:00
Colin Blundell
7db78fcb33 Restructure public side of surfaces service.
This CL goes from this:
  //mojo/services/public/cpp/surfaces
  //mojo/services/public/interfaces/surfaces

to this:
  //mojo/services/surfaces/public/cpp
  //mojo/services/surfaces/public/interfaces

This CL also makes the Mojo-side changes required to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/792813002
2014-12-10 14:43:23 +01:00
Colin Blundell
3dc76a69df Restructure public side of view_manager service.
This CL goes from this:
//mojo/services/public/cpp/view_manager
//mojo/services/public/interfaces/view_manager

to this:
//mojo/services/view_manager/public/cpp
//mojo/services/view_manager/public/interfaces

This CL also makes the Mojo-side changes required to roll this change into
Chromium (for both view_manager and window_manager, which was converted in an
earlier CL but for which these updates were not made):
- Updates rev_sdk.py to pull over the new directory
- Updates //mojo/services/public/mojo_services_public.gyp

TBR=beng

Review URL: https://codereview.chromium.org/790623003
2014-12-10 14:16:27 +01:00
Ojan Vafai
1492a0d635 Remove the straggling DisableCompositingQueryAsserts.
We don't have compositing query asserts anymore,
so there's nothing to disable.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/787293002
2014-12-09 20:25:18 -08:00
Ojan Vafai
3ffd336ad5 Remove relayout due to scrollbars taking up width
We only have overlay scrollbars, so we never need to
relayout due to the lack or presence of scrollbars.

Also remove a few stracking has*Scrollbar methods.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/783393006
2014-12-09 19:48:50 -08:00
Elliott Sprehn
c6f3d36fe2 Simplify HTMLStyleElement.
The parser will never insert more than one child into a <style>, so we don't
need explicit logic to batch up parsing. Once I removed that it exposed that
all the line number and parser created logic is from error reporting in the
parser that's been dead in Blink for over a year.

By doing this simplification I was able to remove the finishParsingChildren()
callback entirely.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/788113002
2014-12-09 19:01:46 -08:00
Elliott Sprehn
dfd9a3faa5 Add clear() to Element.classList.
We should support a fast way to remove all classes through the
classList instead of having to call removeAttribute() directly.

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

Review URL: https://codereview.chromium.org/788093003
2014-12-09 17:56:41 -08:00
Elliott Sprehn
c2916617b4 Merge ClassList into DOMTokenList.
In Sky we only have one implementation of DOMTokenList so we don't
need this virtual interface.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/789843004
2014-12-09 16:06:29 -08:00
Elliott Sprehn
a355213564 Remove DOMSettableTokenList.
R=ojan@chromium.org

Review URL: https://codereview.chromium.org/789693003
2014-12-09 15:31:02 -08:00
Rafael Weinstein
fe9aa27ab5 Fix id/class collection from stylesheets
BUG=438036
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/785313002
2014-12-09 15:05:42 -08:00
Hixie
b6e7ba2dfc Specs: Make pointer events go up the LayoutManager chain too; improve how you make custom event targets
Review URL: https://codereview.chromium.org/787603005
2014-12-09 11:12:06 -08:00
Benjamin Lerman
72a73fc07f Remove shutdown code from sky.
R=aa@chromium.org, eseidel@chromium.org

Review URL: https://codereview.chromium.org/783973002
2014-12-09 11:00:15 +01:00
Ojan Vafai
b00d41f26c Get rid of LayerFragment.
We don't have fragmentation. So no need for this abstraction.
This simplifies a lot of code so that we can do less work.
For example, we can check shouldPaintContent only up in
paintLayerContents instead of in each nested function.

Instead of passing the LayerFragment, pass the layer location
and the clip rect for each nested function.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/789643002
2014-12-08 17:37:43 -08:00
Ojan Vafai
0069ab6369 Remove RenderLayer::collectFragments.
Sky always has exactly one per RenderLayer. This patch
gets rid of the hitTestLayer use of LayerFragment
and gets paintLayerContents to create the list of
fragments itself since it's the only caller.

Also, delete dead code from LayerFragment.h.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/778043005
2014-12-08 16:37:50 -08:00
James Robinson
8cffccac05 Update from https://crrev.com/307330
Includes several sky updates for skia API changes and the gn format
presubmit check from https://codereview.chromium.org/779193003/

Review URL: https://codereview.chromium.org/786123002
2014-12-08 13:45:40 -08:00
Ojan Vafai
c37e637852 Run sky tests more parallelized.
Now that we're off cherrypy, hopefully we can run more tests
in parallel without timeouts. This works well for me locally.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/786833002
2014-12-08 12:46:49 -08:00
James Robinson
29235bd8a2 Put code in //services/window_manager in namespace window_manager
R=sky@chromium.org

Review URL: https://codereview.chromium.org/788453002
2014-12-08 12:08:55 -08:00
Ojan Vafai
52a8beb189 Get rid of PaintPhaseTextClip.
This was just used for background-clip:text, which we no
longer support.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/783233002
2014-12-08 11:23:30 -08:00
Ojan Vafai
db877ecf4f Green sky tests on the asan bot.
Skipped tests were not getting skipped because
the code gets whether the build is a debug or release
build from the configuration commandline argument, but
the asan bots pass Release_asan. Instead, read the
debug vs. release state from gn args instead of inferring
it from the out directory.

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

Review URL: https://codereview.chromium.org/754673003
2014-12-08 11:15:13 -08:00
Ojan Vafai
6a4ca1bc83 Remove PaintPhaseClippingMask.
I believe it was only used for regions/multi-column.
It's never set now.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/786003002
2014-12-08 10:18:34 -08:00
Ojan Vafai
31343b63fe Get rid of the PaintLayerFlags bitmask.
Make it a regular enum and remove it from all the functions
it's not actually used. Also, make paintLayer and PaintLayerFlags
private since they're only used in RenderLayer.

R=eseidel@google.com

Review URL: https://codereview.chromium.org/779183004
2014-12-08 09:21:12 -08:00
Ojan Vafai
87b58eda51 Remove PaintBehavior. It's unused.
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/768973004
2014-12-08 08:57:37 -08:00
Eric Seidel
c755577d73 Fix the sky build instructions
Sky can't really build on its own.  We were previously
using the 'sky' build target for this but it didn't
fully anticipate all of our dependencies.  The most
recent break was when James removed /mojo/shell
from mojo.

Instead of sky listing out each and every service
which it depends on, we should just get used to
building root like other mojo developers.

Thankfully there is already a helpful tool
for this called mojob.py.  I've updated our
readme to reflect this, and removed the mojo
dependency on the sky build group.

The purpose of the sky build group is to expose
all of the sky build targets up to the root level
BUILD.gn (which only depends on /sky), not to
be an independently buildable target.

R=jamesr@chromium.org, jamesr
BUG=

Review URL: https://codereview.chromium.org/764023007
2014-12-05 15:46:07 -08:00
Eric Seidel
0884bfc42f Remove unused isolatedWorldCount
TBR=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/781913003
2014-12-05 08:50:27 -08:00
Ojan Vafai
dd1ee1ade5 Change test_sky to use the buildbot step name as the testtype.
This should make the flakiness dashboard work again.

TBR=eseidel@chromium.org

Review URL: https://codereview.chromium.org/780993002
2014-12-04 16:25:13 -08:00
Hixie
a5652ef30c Specs: first draft at a more plausible StyleDeclarationList
Specs: add an accessor on Element to get the StyleNode so you can find
out information about it during event processing

Review URL: https://codereview.chromium.org/757843004
2014-12-04 16:16:38 -08:00
Ojan Vafai
61d78bd869 Convert sky_server over to a go-based http server.
We keep seeing timeouts on the bots that seem to be due
to cherrypy dropping requests on the floor, which in turn
causes imports to stall, which causes the test to time out.
In local testing, I was able to reproduce the timeouts
and wasn't able to do so with the go-based server.

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

Review URL: https://codereview.chromium.org/746373002
2014-12-04 16:10:09 -08:00
Elliott Sprehn
7500c00d8a Merge StyleElement into HTMLStyleElement.
StyleElement existed because Blink supported <link> and XSL sheets,
Sky only supports <style> so we can merge them together.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/780083003
2014-12-04 13:33:07 -08:00
Ojan Vafai
2c71f77297 Get rid of background-clip:text and PaintBehaviorForceBlackText.
http://blog.ericzhang.com/punch-through-text-masks-with-css-and-html5/
shows that you can achieve the similar effects using canvas. This
doesn't need to be built into the core engine. It's OK for this
to require more than a line of CSS to achieve.

Unfortunately, the test included this this patch doesn't actually
show that I didn't break anything because background-image
is broken. I got the test from
47e0d126e8%5E%21/#F4

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/756183004
2014-12-04 12:15:39 -08:00
Ojan Vafai
405dedb984 Remove all but one of the PaintLayerFlags.
Only PaintLayerPaintingOverlayScrollbars is actually ever set
to a different value in different codepaths.

-PaintLayerHaveTransparency can just be replaced with
isTransparent() calls.
-PaintLayerPaintingCompositingScrollingPhase is unused.
-PaintLayerPaintingCompositingAllPhases is always set,
which means that the other three compositing ones are
also always set.

The third bullet more clearly falls out when you see that
the only caller of paintLayerContents is
paintLayerContentsAndReflection, which sets
PaintLayerPaintingCompositingAllPhases on the paint flags.
Get rid of paintLayerContentsAndReflection since we no
longer have reflections.

The rest of the changes are all just propagating the now
always false or true booleans in paintLayerContents.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/778883002
2014-12-04 12:12:05 -08:00
Hixie
260c29f783 Specs: revamp how 'primary' touches are handled, to support multiple simultaneous scroll surfaces being scrolled
Review URL: https://codereview.chromium.org/775403002
2014-12-04 11:39:39 -08:00
Hixie
29674cc510 Specs: some slight updates for styluses
Review URL: https://codereview.chromium.org/771603004
2014-12-04 10:51:29 -08:00
Ojan Vafai
6e6e9181de Remove PaintLayerPaintingOverflowContents.
It was added for compositing overflow:scroll, which we don't do.
This also means that only the RespectOverflowClip enum value is
used. And PaintingClipRectsIgnoringOverflowClip is unused.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/778753002
2014-12-03 19:09:56 -08:00
James Robinson
09de28ef8c Run gn format on all BUILD.gn files (gn version 306668)
Generated by running the following:
for x in `git ls-files | grep BUILD.gn`; do gn format --in-place $x; done

BUG=348474
R=viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/773283006
2014-12-03 17:39:48 -08:00