Bug 87080 - Use the same animation begin time while updating compositing layers
Summary: Use the same animation begin time while updating compositing layers
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords:
Depends on:
Blocks: 84410
  Show dependency treegraph
 
Reported: 2012-05-21 22:36 PDT by Simon Fraser (smfr)
Modified: 2012-05-22 14:19 PDT (History)
8 users (show)

See Also:


Attachments
Patch (9.48 KB, patch)
2012-05-22 13:49 PDT, Simon Fraser (smfr)
dino: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2012-05-21 22:36:40 PDT
RenderLayerCompositor::updateCompositingLayers() ends up calling code that relies on the current state of animations, via calls to RenderLayer::currentTransform(). This is called while mapping layer bounds to absolute coordinates, for overlap testing.

We should treat the entire compositing layer update as one animation batch (begin/end animation update). Without this, it's impossible to compare the results of coordinate mapping via two different code paths in ASSERTs. It seems reasonable to do anyway.
Comment 1 Simon Fraser (smfr) 2012-05-22 13:49:04 PDT
Created attachment 143356 [details]
Patch
Comment 2 Dean Jackson 2012-05-22 13:59:24 PDT
Comment on attachment 143356 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=143356&action=review

> Source/WebCore/ChangeLog:26
> +        to cover over calls to recalcStyle which might need this (87159).

over-calls?

> Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1325
> +        AnimationUpdateBlock animationBlock(renderer->animation());

I like animationUpdateBlock as the var names through the patch, but not a big deal.

> Source/WebCore/rendering/RenderLayerCompositor.cpp:354
> +    Frame* frame = m_renderView->frameView()->frame();
> +    AnimationUpdateBlock animationBlock(frame->animation());

One line? no need for frame elsewhere?
Comment 3 Simon Fraser (smfr) 2012-05-22 14:19:09 PDT
http://trac.webkit.org/changeset/118052