WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
patch.diff (text/plain), 3.30 KB, created by
Noam Rosenthal
on 2012-01-06 14:07:54 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Noam Rosenthal
Created:
2012-01-06 14:07:54 PST
Size:
3.30 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 48be52b..3af4042 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2012-01-06 No'am Rosenthal <noam.rosenthal@nokia.com> >+ >+ Enable a compositing trigger for filters >+ https://bugs.webkit.org/show_bug.cgi?id=75658 >+ >+ This will enable forcing the compositing code path when filters exist for a RenderObject. >+ >+ Reviewed by Simon Fraser. >+ >+ No new functionality so no new tests. >+ >+ * page/ChromeClient.h: >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::RenderLayerCompositor::requiresCompositingLayer): >+ (WebCore::RenderLayerCompositor::requiresCompositingForFilters): >+ * rendering/RenderLayerCompositor.h: >+ > 2011-11-02 Andreas Kling <kling@webkit.org> > > CSSRule: Devirtualize cssText() >diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h >index cde7c42..c7e3f02 100644 >--- a/Source/WebCore/page/ChromeClient.h >+++ b/Source/WebCore/page/ChromeClient.h >@@ -267,6 +267,7 @@ namespace WebCore { > PluginTrigger = 1 << 2, > CanvasTrigger = 1 << 3, > AnimationTrigger = 1 << 4, >+ FilterTrigger = 1 << 5, > AllTriggers = 0xFFFFFFFF > }; > typedef unsigned CompositingTriggerFlags; >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp >index 6ab50cb..fd32504 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp >+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp >@@ -1323,6 +1323,7 @@ bool RenderLayerCompositor::requiresCompositingLayer(const RenderLayer* layer) c > || clipsCompositingDescendants(layer) > || requiresCompositingForAnimation(renderer) > || requiresCompositingForFullScreen(renderer) >+ || requiresCompositingForFilters(renderer) > || requiresCompositingForPosition(renderer, layer); > } > >@@ -1508,6 +1509,19 @@ bool RenderLayerCompositor::requiresCompositingForFullScreen(RenderObject* rende > #endif > } > >+bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer) const >+{ >+#if ENABLE(CSS_FILTERS) >+ if (!(m_compositingTriggers & ChromeClient::FilterTrigger)) >+ return false; >+ >+ return renderer->hasFilter(); >+#else >+ UNUSED_PARAM(renderer); >+ return false; >+#endif >+} >+ > bool RenderLayerCompositor::requiresCompositingForPosition(RenderObject* renderer, const RenderLayer* layer) const > { > // position:fixed elements that create their own stacking context (e.g. have an explicit z-index, >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.h b/Source/WebCore/rendering/RenderLayerCompositor.h >index acc5c38..1c19d04 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.h >+++ b/Source/WebCore/rendering/RenderLayerCompositor.h >@@ -281,6 +281,7 @@ private: > bool requiresCompositingForFrame(RenderObject*) const; > bool requiresCompositingWhenDescendantsAreCompositing(RenderObject*) const; > bool requiresCompositingForFullScreen(RenderObject*) const; >+ bool requiresCompositingForFilters(RenderObject*) const; > bool requiresCompositingForScrollableFrame() const; > bool requiresCompositingForPosition(RenderObject*, const RenderLayer*) const; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 75658
:
121349
| 121492