[webkit-reviews] review granted: [Bug 38856] Allow compositing layers to be connected across iframe boundaries on Mac : [Attachment 55656] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 10 21:50:48 PDT 2010
Anders Carlsson <andersca at apple.com> has granted Simon Fraser (smfr)
<simon.fraser at apple.com>'s request for review:
Bug 38856: Allow compositing layers to be connected across iframe boundaries on
Mac
https://bugs.webkit.org/show_bug.cgi?id=38856
Attachment 55656: Patch
https://bugs.webkit.org/attachment.cgi?id=55656&action=review
------- Additional Comments from Anders Carlsson <andersca at apple.com>
> +2010-05-10 Simon Fraser <simon.fraser at apple.com>
> +
> + Reviewed by NOBODY (OOPS!).
> +
> + https://bugs.webkit.org/show_bug.cgi?id=38856
> + Allow compositing layers to be connected across iframe boundaries on
Mac
> +
Duplicate ChangeLog entry.
> +
> +2010-05-10 Simon Fraser <simon.fraser at apple.com>
> +
> + Reviewed by NOBODY (OOPS!).
> +
> + Allow compositing layers to be connected across iframe boundaries on
Mac
> + https://bugs.webkit.org/show_bug.cgi?id=38856
> +
Same here?
> Rename the static shouldPropagateCompositingToIFrameParent() to
shouldPropagateCompositingToEnclosingIFrame(),
> to pave the way for runtime switches in the propagation behavior. We
have to make sure we call it on
> the correct RenderLayerCompositor (that belonging to the iframe's
content document).
> diff --git a/WebCore/page/FrameView.cpp b/WebCore/page/FrameView.cpp
> index
9b93bebb60ff00ae7bf5276cd7f89a4b99e97913..3f34261079b9e5db674f4098f7ae1f1f7141d
44c 100644
> --- a/WebCore/page/FrameView.cpp
> +++ b/WebCore/page/FrameView.cpp
> @@ -478,6 +478,15 @@ void FrameView::setNeedsOneShotDrawingSynchronization()
>
> #endif // USE(ACCELERATED_COMPOSITING)
>
> +bool FrameView::hasCompositedContent() const
> +{
> +#if USE(ACCELERATED_COMPOSITING)
> + if (RenderView* view = m_frame->contentRenderer())
> + return view->compositor()->inCompositingMode();
> +#endif
> + return false;
> +}
> +
> bool FrameView::isEnclosedInCompositingLayer() const
> {
> #if USE(ACCELERATED_COMPOSITING)
> @@ -897,6 +906,15 @@ void FrameView::setIsOverlapped(bool isOverlapped)
>
> m_isOverlapped = isOverlapped;
> setCanBlitOnScroll(!useSlowRepaints());
> +
> +#if USE(ACCELERATED_COMPOSITING)
> + // Overlap can affect compositing tests, so if it changes, we need to
trigger
> + // a recalcStyle in the parent document.
> + if (hasCompositedContent()) {
> + if (Element* ownerElement = m_frame->document()->ownerElement())
> + ownerElement->setNeedsStyleRecalc(SyntheticStyleChange);
> + }
> +#endif
> }
>
> + RenderLayer* layer = m_renderView->layer();
> + RenderLayerBacking* backing = layer ? layer->backing() : 0;
> + if (backing)
> + backing->updateDrawsContent();
You can move the "backing" variable declaration into the if statement.
r=me
More information about the webkit-reviews
mailing list