20 Commits

Author SHA1 Message Date
Eric Seidel
922ea790b8 Make it possible to draw Text in the new window/document-less world
I had to add back document.createText() since new Text()
does not work in the new world yet.

LayoutRoot is a new Dart-exposed class which holds the Frame and
all associated machinery, sufficient to trigger a restyle
and layout of the subtree.

This is all kinda hacky and I'm sure likely to cause many
crashes if folks call random methods on these disconnected
trees.

But this makes it at least possible to paint text for now
and we can improve this in the coming days.

This really should have Adam's review.  It's hugely hacky
but I'd like to negotiate out with him the timeline on
which we should fix some of these hacks.

R=ianh@google.com
TBR=abarth@chromium.org

Review URL: https://codereview.chromium.org/1148253003
2015-05-27 11:05:42 -07:00
Ojan Vafai
6ee8440f27 Walk render tree instead of render layers for paint.
This is the first step of getting rid of RenderLayer.
Instead of walking the RenderLayer tree, wall the RenderObject
tree and add any layers encountered to a vector to paint later.

This patch just consolidates and move the code from RenderLayer
to RenderBox and then changes the children painting to
iterate over the vector. Therefore we walk the RenderObject tree.
We still call out to RenderLayer in a bunch of places.
A followup patch will get rid of those.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/899753003
2015-02-06 11:38:25 +11:00
Ojan Vafai
030073714c Removed a bunch of unneeded paint phase checks.
We only have two paint phases now, so we don't
need to do as many checks. Also, remove some
early returns that are not possible to hit since
the earlier code checks that phase already.

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

Review URL: https://codereview.chromium.org/891573002
2015-01-29 18:57:06 -08:00
Ojan Vafai
1332495e6d Remove PaintPhaseSelection.
This is just a mechanical removal. No logic changes
beyond removing the PaintPhaseSelection checks.
Most of these are just early returns to avoid doing
unnecessary work if we're only painting selections.
But now that we paint selections during the foreground
paint phase, we no longer need the early returns since
we're going to paint everything anyways.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/886933002
2015-01-29 17:18:25 -08:00
Ojan Vafai
bdc24bf049 Remove painting roots.
These appear to have been for ensuring that you
only paint elements in a given subtree. It's not clear
to me exactly how you get to painting an element that
is not rooted at the RenderLayer you started with.
I think it's just not possible in Sky anymore.
This code was added in 2004 for drag images, which
we no longer support.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/882223005
2015-01-28 19:53:44 -08:00
Ojan Vafai
b4c4004f56 Merge outline paint phases into the foreground phase.
Mostly just mechanical changes. The one surprising bit
is that RenderLayer no longer needs to explictly paint
outlines. I tested manually that before this patch,
the paintOutline call in RenderLayer was needed for
outlines on positioned elements and that after this
patch it's not.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/878023002
2015-01-27 17:45:04 -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
Ojan Vafai
100094dbf3 Delete document marker related invalidation code.
I believe this doesn't change behavior, but it's hard
to know since we don't have spellchecking hooked up.
Also, delete setToolTip. This is for tooltips on spelling
markers. We don't support tooltips.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/830273006
2015-01-16 20:01:02 -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
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
Rafael Weinstein
0649efbf80 Remove RenderBlockLineLayout.
This patch moves most of the RenderBlockFlow from RenderBlockLineLayout methods into RenderParagraph.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/763043002
2014-11-27 12:03:43 -08:00
Eric Seidel
e0fd75b5ab Make absolute and sort all Sky headers
This caused us to lose our gn check certification. :(

Turns out gn check was just ignoring all the header
paths it didn't understand and so gn check passing
for sky wasn't meaning much.  I tried to straighten
out some of the mess in this CL, but its going to take
several more rounds of massaging before gn check
passes again.  On the bright side (almost) all of
our headers are absolute now.  Turns out my script
(attached to the bug) didn't notice ../ includes
but I'll fix that in the next patch.

R=abarth@chromium.org
BUG=435361

Review URL: https://codereview.chromium.org/746023002
2014-11-20 17:42:05 -08:00
Eric Seidel
55b5bc485d Sort headers
Fix (most) generated includes to have gen/ in their path.

This makes it easier to tell where files exist on disk.

Unfortunately I had to leave the old include path
in engine/BUILD.gn to support all the v8 includes
which were too many to deal with in this patch.

It's a little nasty to have the raw build directory
in our include path, but it produces nicer paths.

R=abarth@chromium.org
2014-11-19 12:33:42 -08:00
Ojan Vafai
637d077ba2 Remove some straggling zoom-related code.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/714783003
2014-11-10 19:17:32 -08:00
Ojan Vafai
0dfbf8aa38 Remove writing mode code from the linebox tree.
Yo dawg, I heard you like ternaries.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/688233002
2014-10-29 20:29:59 -07:00
Ojan Vafai
13ffe46a43 Remove flipForWritingMode.
It's a noop now that we don't have writing modes.

TBR=esprehn@chromium.org

Review URL: https://codereview.chromium.org/684393002
2014-10-29 19:45:15 -07:00
Ojan Vafai
90b8d2e589 Remove text-combine.
This is a vertical writing mode feature. Sky doesn't support
vertical writing mode.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/677843004
2014-10-29 19:30:32 -07:00
Ojan Vafai
3b628f7d39 Delete a ton more dead vertical writing mode code.
No change in behavior.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/684383002
2014-10-29 19:08:09 -07:00
Ojan Vafai
afa0148e0b First pass at removing dead vertical writing mode code.
This just removes a random subset of vertical writing mode bits
that I grepped for. There's a ton more to do, but it seems best to
do it in chunks.

The key things for understanding this patch, isWritingModeRoot is
always false and isHorizontalWritingMode is always true. Also,
we're never flipped* modes of any kind, so we can undo any flipping.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/688213002
2014-10-29 19:06:59 -07:00
Adam Barth
ae72930937 Open the Sky 2014-10-23 11:17:19 -07:00