39 Commits

Author SHA1 Message Date
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
Adam Barth
54809a8877 Remove more scrolling code from Sky
None of this code does anything anymore.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/878303002
2015-01-27 15:20:14 -08:00
Ojan Vafai
785f64ed86 Remove outline painting on inlines.
Jagged edge outlines are more complexity than is justified
for the use-cases. We should enable to use-cases like this,
but with a lower-level line-box + custom painting API.

Removes the paintOutline method on RenderInline. Also removed
a number of dead methods that call absoluteRects so we can delete
that method and related code.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/867653005
2015-01-26 18:58:02 -08:00
Ojan Vafai
2d8bc531eb Remove GraphicsContext annotations.
It's all dead code. This is a first step
towards getting rid of paint phases.
Also delete some related dead classes.

TBR=esprehn@chromium.org

Review URL: https://codereview.chromium.org/870393002
2015-01-25 19:52:29 -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
Ojan Vafai
4256d4a224 Remove background obscuration checks.
This is an optimization to avoid painting backgrounds
that are obscured. It's a lot of complexity that it's
not clear we'll need given that we're using a GL backend.
Also, we can add it back in more easily/efficiently in the future
once we have a display list architecture.

This also means we can remove the needsPaintInvalidation
dirty bit and some opacity information on filters.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/856563006
2015-01-15 17:11:44 -08:00
Ojan Vafai
8e3f746bad Remove assorted dead paint invalidation code.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/850763008
2015-01-14 13:46:39 -08:00
Ojan Vafai
3e26389e5d Delete PaintInvalidationState. It's unused.
Delete selection paint invalidation code.

There is a slight change in behavior in FrameSelection::revealSelection.
If you have a non-collapsed selection, then we'll center the start
of the selection instead of the whole selection in some cases. There's
a ton of callers of this code, so it's hard to be sure if any of this
actually changes behavior for sky. In manual testing, I couldn't find
any scenarios where there was a difference. Almost universally,
when we call revealSelection, we have a CaretSelection. The only
case I could think of where we have a RangeSelection is when
modifying an off-screen selection (e.g. shift+right), but in that case
we pass the RevealExtent option, so this patch doesn't change behavior
there.

Removing that caller makes all the rest of this rect computing
code into dead code.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/823123003
2015-01-14 13:25:49 -08:00
Ojan Vafai
5f718d3e63 Delete selection paint invalidation code.
There is a slight change in behavior in FrameSelection::revealSelection.
If you have a non-collapsed selection, then we'll center the start
of the selection instead of the whole selection in some cases. There's
a ton of callers of this code, so it's hard to be sure if any of this
actually changes behavior for sky. In manual testing, I couldn't find
any scenarios where there was a difference. Almost universally,
when we call revealSelection, we have a CaretSelection. The only
case I could think of where we have a RangeSelection is when
modifying an off-screen selection (e.g. shift+right), but in that case
we pass the RevealExtent option, so this patch doesn't change behavior
there.

Removing that caller makes all the rest of this rect computing
code into dead code.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/847303003
2015-01-14 13:25:16 -08:00
Ojan Vafai
f97bad962e Get rid of the full invalidation bool on FrameView.
It doesn't do anything anymore. Also, delete some now
dead paint invalidation code in RenderObject.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/849763002
2015-01-12 18:14:27 -08:00
Ojan Vafai
544a24a448 Delete RenderSelectionInfo and other selection rect paint invalidation code.
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/851593002
2015-01-12 17:08:36 -08:00
Ojan Vafai
2b77bba1d8 Remove dead boolean argument
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/847633002
2015-01-09 20:07:59 -08:00
Ojan Vafai
a794eb951d Delete an assortment of unneeded paint invalidation code.
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/845093002
2015-01-09 18:31:26 -08:00
Ojan Vafai
69fa7db132 Delete InvalidationReason.
Also delete some other paint invalidation code that
doesn't do anything in Sky.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/844023003
2015-01-09 18:01:27 -08:00
Ojan Vafai
ce43f3d0c1 First pass at deleting paint invalidation code.
This is all wasted effort in sky since we invalidate
the whole viewport on every frame. We'll probably eventually
add back in some invalidation, but it likely won't
be rect-based.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/840403003
2015-01-09 15:20:35 -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
ec0519a888 Remove some dead paint flags.
These are all dead code.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/766303002
2014-12-01 16:08:07 -08:00
Ojan Vafai
edbc055885 Get rid of CompositingState.
It's always NotComposited. Also removed some DisableCompositingQueryAsserts.
The asserts they are disabling no longer exist.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/768493002
2014-11-26 18:49:36 -08:00
Ojan Vafai
32bd99e95a Delete most of rendering/compositing.
Particularly, this deletes RenderLayerCompositor. After this,
there's just CompositingState left to remove.

This is all dead code, so there should be no change in behavior.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/758843004
2014-11-26 15:15:23 -08:00
Ojan Vafai
0a60268106 Remove most of the old compositing code.
This is all dead code. Just started with CompositedLayerMapping
and deleted everything that touches it.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/758373002
2014-11-25 20:47:53 -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
Matt Perry
465846c37d Sky: Move iframe geometry updates to FrameView::updateLayout instead of
RenderView::invalidateTree.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/737523002
2014-11-17 15:49:40 -05:00
Matt Perry
eee39ec5ad Sky: update the HTMLIFrameElement's geometry during paint invalidation rather
than layout.

This ends up being much smoother and only triggers once per layout cycle.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/730653002
2014-11-17 14:20:17 -05:00
Elliott Sprehn
42d362ff6b Remove tons of OILPAN.
This removes ::trace, traceAfterDispatch and finalizeGarbageCollectedObject.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/723253004
2014-11-13 16:56:13 -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
5f945bf69f Remove some more zoom-related code.
-Remove all references to zoomFactor.
-Remove zoomLevels.
-Remove unused m_zoom on StyleVisualData.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/714013002
2014-11-10 18:08:46 -08:00
Rafael Weinstein
c0ffe6fb23 remove updateTouchEventTargetRectsIfNeeded
BUG=
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/713073003
2014-11-10 13:08:21 -08: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
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
Elliott Sprehn
7c0366d891 Remove most of FloatingObject.
This leaves some uses of FloatingObject*, but it doesn't
leave the impl of the class so it's all dead code passing
around null pointers. I'll remove that in a future patch.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/689733003
2014-10-29 15:04:40 -07:00
Elliott Sprehn
2f329e05b0 Remove RenderPart.
This was part of the old plugin system, we don't need it.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/686903003
2014-10-28 15:01:27 -07:00
Ojan Vafai
42ea48b379 Remove a bunch of fixed position dead code.
There is not change in behavior here. Just removing dead
code now that we no longer support position:fixed.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/686653002
2014-10-28 09:34:19 -07:00
Ojan Vafai
9423819dcc First pass at removing position:fixed.
The root is never scrollable, so position:fixed doesn't
do anything anymore.

Also remove some dead frame-level scrolling code that interacted
with fixed position things.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/686633002
2014-10-27 19:42:46 -07:00
Eric Seidel
64b5cb61a1 Remove all oilpan transitional types
I used do-webcore-rename from Blink/WebKit
which is very good at doing this kind
of search-replace.

Also removed toRefPrtNativeArray after
conversion since it previously had two
separate flavors.  Both versions are no longer
used so I've removed the code until we
need one again.

https://www.irccloud.com/pastebin/5C16p5cE
is the diff I used to do-webcore-rename

TBR=abarth@chromium.org
2014-10-27 14:13:01 -07:00
Ojan Vafai
995c857ce6 Remove a bunch of frame-level scrolling machinery.
This just removing dead/noop code. No change in behavior.

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

Review URL: https://codereview.chromium.org/681023002
2014-10-27 13:10:04 -07:00
Ojan Vafai
f45642cf8c Get rid of ScrollView.
We only allow overflow scrolling. The frame isn't special.
This is a first step in making that happen. There's a lot of
code to remove after this patch, but this gets rid of
ScrollView and a bunch of frame-level scrolling code.

Had to add in a FrameWidget class so that Scrollbar.cpp had
a way of getting to FrameView::removeChild without pulling
a core class into platform. This might go away when we rip
out the Widget tree if we made it so that FrameView didn't
keep a list of Scrollbar instances.

Modified scrollbar.html to use overflow scrolling instead of
frame level scrolling. Once we get rid of the split between
Document and documentElement, we'll be able to make the root
element in the page scrollable as well (i.e. any child of the
Document).

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/646273006
2014-10-23 20:20:25 -07:00
Adam Barth
ae72930937 Open the Sky 2014-10-23 11:17:19 -07:00