The semantics of requestAnimationFrame and scheduleVisualUpdate are slightly
different. If you're inside a requestAnimationFrame, then calling
requestAnimationFrame should schedule you for next frame. However, if you're
inside a requestAnimationFrame and you scheduleVisualUpdate, that's a noop
because we've already got a visual update pending. When we merge the codepaths,
we broke requestAnimationFrame because it became a noop when called inside a
request animation frame.
We really ought to split up the two roles of requestAnimationFrame (run before
the frame boundary and run once per frame).
R=esprehn@chromium.org, eseidel@chromium.org
Review URL: https://codereview.chromium.org/880013003
Commit efc3afd428bd85fd3d12e0dc941b5eb7248ca30b broke it because
we'd computed an empty foreground layer. Now that background
painting is part of the foreground phase, we need to use the
background rect for clipping. As best I can tell, the
background rect is always >= the size of the foreground
rect, so it should be safe to use.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/876243002
We've simplified RenderBlock::layout to the point where we
no longer need it or layoutBlock. The RenderBlock subclasses
can just override layout the way every other renderer does.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/876663003
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
This CL uses the aura fling curve to ease flings. Also, I've made Event#timeStamp
use consistent units and timebase with the requestAnimationFrame timestamp. Now
both are doubles of milliseconds since the epoch.
R=esprehn@chromium.org
Review URL: https://codereview.chromium.org/880473003
It causes a full screen raster right now, lets name it for what it does.
This also matches the name used in PageAnimator.
Merge WebWidgetClient into WebViewClient.
They're always the same thing in sky. I also removed all the methods that
don't do anything in sky.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/880713003
First step in getting rid of paint phases. Verified that
deleting this phase entirely would cause flights-app-pixel.sky
to fail and that it still passes in this patch, which just does
the background painting as part of the foreground phase.
R=esprehn@chromium.org
Review URL: https://codereview.chromium.org/867463005
The only scheduleAnimation() methods left are going through the layers of
client interfaces. I'll rename and remove those next. This is working
towards making requestAnimationFrame() not cause a full repaint and also
making it more clear to callers that scheduling a frame causes a raster.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/875283003
This was to support doing background: -webkit-canvas(#id) where you could then
get the canvas with document.getCSSCanvasContext(id) and draw into it which
is a poor form of custom drawing for elements. In Sky we'll have real custom
painting instead of just background images hacked in like this.
R=eseidel@chromium.org
Review URL: https://codereview.chromium.org/876913002
Per the spec in modules.md the exports property should default to an
empty object. We lazy allocate it so that modules that just replace it
don't create the empty object and then throw it away.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/872043003
This interface was used to integrate with cc. Now that we no longer integrate
with cc, we don't need it.
In this CL, I've left WebLayer and its related classes even though there is no
longer a way to instantiate them. I'll remove them in a future CL.
R=esprehn@chromium.org
Review URL: https://codereview.chromium.org/874633003
This CL moves KeyboardEvents from the old event model to NewEventHandler. This
CL keeps the basic structure of keydown, keypress, keyup events even though
that's a bit wacky. As with pointer and gesture events, this CL removes
PlatformKeyboardEvent in favor of just using WebKeyboardEvent. I've also made
WebKeyboardEvent align more closely with Mojo's keyboard event.
The CL does change one important aspect of key event handling: on the web the
"keyCode" property of KeyboardEvent changes its meaning depending on whether
the event is a keydown or a keypress event. For the former events, keyCode is
the "virtual" (i.e., windows) key code where for the latter events, keyCode is
the character code. To be more precise, I've renamed keyCode to virtualKeyCode
and I've given it a zero (unknown key code) value during keypress events.
R=ojan@chromium.org, eseidel@chromium.org
Review URL: https://codereview.chromium.org/872233002
We now only preserve the whitespace inside a <t> element inside
the parser. This removes the known n^2 from reattaching whitespace
which should make parsing and appending nodes faster. I also
removed the dead WhitespaceMode code from the parser, and made
the dom-seralizer.sky auto indent the markup so the test output
would be readable.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/867963006