Diff
Modified: trunk/LayoutTests/ChangeLog (99484 => 99485)
--- trunk/LayoutTests/ChangeLog 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/ChangeLog 2011-11-07 23:03:05 UTC (rev 99485)
@@ -1,3 +1,20 @@
+2011-11-07 Vangelis Kokkevis <[email protected]>
+
+ [chromium] Make compositing for scrollable [i]frames a setting separate from
+ forceCompositingMode.
+ https://bugs.webkit.org/show_bug.cgi?id=71714
+
+ Adjust the force-compositing-mode layout tests to explicitly set the new flag.
+
+ Reviewed by James Robinson.
+
+ * platform/chromium/compositing/force-compositing-mode/force-composite-empty.html:
+ * platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html:
+ * platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html:
+ * platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html:
+ * platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html:
+ * platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html:
+
2011-11-07 Tony Chang <[email protected]>
Update chromium test_expectations.txt.
Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html (99484 => 99485)
--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html 2011-11-07 23:03:05 UTC (rev 99485)
@@ -1,8 +1,10 @@
<html>
<head>
<script>
- if (window.internals)
+ if (window.internals) {
window.internals.setForceCompositingMode(document, true);
+ window.internals.setEnableCompositingForScrollableFrames(document, true);
+ }
function doTest() {
if (window.layoutTestController) {
document.getElementById("layertree").innerText = layoutTestController.layerTreeAsText();
Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html (99484 => 99485)
--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html 2011-11-07 23:03:05 UTC (rev 99485)
@@ -15,8 +15,10 @@
}
}
window.addEventListener("load", doTest, false);
- if (window.internals)
+ if (window.internals) {
internals.setForceCompositingMode(document, true);
+ internals.setEnableCompositingForScrollableFrames(document, true);
+ }
</script>
</head>
<body>
Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html (99484 => 99485)
--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html 2011-11-07 23:03:05 UTC (rev 99485)
@@ -7,8 +7,10 @@
}
</style>
<script>
- if (window.internals)
+ if (window.internals) {
internals.setForceCompositingMode(document, true);
+ internals.setEnableCompositingForScrollableFrames(document, true);
+ }
function doTest()
{
if (window.layoutTestController)
Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html (99484 => 99485)
--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html 2011-11-07 23:03:05 UTC (rev 99485)
@@ -7,8 +7,10 @@
}
</style>
<script>
- if (window.internals)
+ if (window.internals) {
internals.setForceCompositingMode(document, true);
+ internals.setEnableCompositingForScrollableFrames(document, true);
+ }
function doTest()
{
if (window.layoutTestController)
Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html (99484 => 99485)
--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html 2011-11-07 23:03:05 UTC (rev 99485)
@@ -7,8 +7,10 @@
}
</style>
<script>
- if (window.internals)
+ if (window.internals) {
internals.setForceCompositingMode(document, true);
+ internals.setEnableCompositingForScrollableFrames(document, true);
+ }
function doTest()
{
if (window.layoutTestController) {
Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html (99484 => 99485)
--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html 2011-11-07 23:03:05 UTC (rev 99485)
@@ -7,8 +7,10 @@
}
</style>
<script>
- if (window.internals)
+ if (window.internals) {
internals.setForceCompositingMode(document, true);
+ internals.setEnableCompositingForScrollableFrames(document, true);
+ }
function doTest()
{
if (window.layoutTestController)
Modified: trunk/Source/WebCore/ChangeLog (99484 => 99485)
--- trunk/Source/WebCore/ChangeLog 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/ChangeLog 2011-11-07 23:03:05 UTC (rev 99485)
@@ -1,3 +1,23 @@
+2011-11-07 Vangelis Kokkevis <[email protected]>
+
+ Create a separate setting for compositing of for scrollable [i]frames
+ that forceCompositingMode can be used without turning frames into composited layers.
+ https://bugs.webkit.org/show_bug.cgi?id=71714
+
+ Reviewed by James Robinson.
+
+ * page/Settings.cpp:
+ (WebCore::Settings::Settings):
+ * page/Settings.h:
+ (WebCore::Settings::setAcceleratedCompositingForScrollableFramesEnabled):
+ (WebCore::Settings::acceleratedCompositingForScrollableFramesEnabled):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
+ * testing/Internals.cpp:
+ (WebCore::Internals::setEnableCompositingForScrollableFrames):
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
2011-11-07 Rafael Weinstein <[email protected]>
[MutationObservers] Fix mac build (with mutation_observers enabled)
Modified: trunk/Source/WebCore/page/Settings.cpp (99484 => 99485)
--- trunk/Source/WebCore/page/Settings.cpp 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/page/Settings.cpp 2011-11-07 23:03:05 UTC (rev 99485)
@@ -181,6 +181,7 @@
, m_acceleratedCompositingForCanvasEnabled(true)
, m_acceleratedCompositingForAnimationEnabled(true)
, m_acceleratedCompositingForFixedPositionEnabled(false)
+ , m_acceleratedCompositingForScrollableFramesEnabled(false)
, m_showDebugBorders(false)
, m_showRepaintCounter(false)
, m_experimentalNotificationsEnabled(false)
Modified: trunk/Source/WebCore/page/Settings.h (99484 => 99485)
--- trunk/Source/WebCore/page/Settings.h 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/page/Settings.h 2011-11-07 23:03:05 UTC (rev 99485)
@@ -322,6 +322,9 @@
void setAcceleratedCompositingForFixedPositionEnabled(bool enabled) { m_acceleratedCompositingForFixedPositionEnabled = enabled; }
bool acceleratedCompositingForFixedPositionEnabled() const { return m_acceleratedCompositingForFixedPositionEnabled; }
+ void setAcceleratedCompositingForScrollableFramesEnabled(bool enabled) { m_acceleratedCompositingForScrollableFramesEnabled = enabled; }
+ bool acceleratedCompositingForScrollableFramesEnabled() const { return m_acceleratedCompositingForScrollableFramesEnabled; }
+
void setShowDebugBorders(bool);
bool showDebugBorders() const { return m_showDebugBorders; }
@@ -573,6 +576,7 @@
bool m_acceleratedCompositingForCanvasEnabled : 1;
bool m_acceleratedCompositingForAnimationEnabled : 1;
bool m_acceleratedCompositingForFixedPositionEnabled : 1;
+ bool m_acceleratedCompositingForScrollableFramesEnabled : 1; // Works only in conjunction with forceCompositingMode
bool m_showDebugBorders : 1;
bool m_showRepaintCounter : 1;
bool m_experimentalNotificationsEnabled : 1;
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (99484 => 99485)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2011-11-07 23:03:05 UTC (rev 99485)
@@ -144,7 +144,7 @@
forceCompositingMode = settings->forceCompositingMode() && hasAcceleratedCompositing;
if (forceCompositingMode && m_renderView->document()->ownerElement())
- forceCompositingMode = requiresCompositingForScrollableFrame();
+ forceCompositingMode = settings->acceleratedCompositingForScrollableFramesEnabled() && requiresCompositingForScrollableFrame();
}
// We allow the chrome to override the settings, in case the page is rendered
Modified: trunk/Source/WebCore/testing/Internals.cpp (99484 => 99485)
--- trunk/Source/WebCore/testing/Internals.cpp 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/testing/Internals.cpp 2011-11-07 23:03:05 UTC (rev 99485)
@@ -253,6 +253,16 @@
document->settings()->setAcceleratedCompositingForFixedPositionEnabled(enabled);
}
+void Internals::setEnableCompositingForScrollableFrames(Document* document, bool enabled, ExceptionCode& ec)
+{
+ if (!document || !document->settings()) {
+ ec = INVALID_ACCESS_ERR;
+ return;
+ }
+
+ document->settings()->setAcceleratedCompositingForScrollableFramesEnabled(enabled);
+}
+
void Internals::setAcceleratedDrawingEnabled(Document* document, bool enabled, ExceptionCode& ec)
{
if (!document || !document->settings()) {
Modified: trunk/Source/WebCore/testing/Internals.h (99484 => 99485)
--- trunk/Source/WebCore/testing/Internals.h 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/testing/Internals.h 2011-11-07 23:03:05 UTC (rev 99485)
@@ -76,6 +76,7 @@
void setForceCompositingMode(Document*, bool enabled, ExceptionCode&);
void setEnableCompositingForFixedPosition(Document*, bool enabled, ExceptionCode&);
+ void setEnableCompositingForScrollableFrames(Document*, bool enabled, ExceptionCode&);
void setAcceleratedDrawingEnabled(Document*, bool enabled, ExceptionCode&);
void setEnableScrollAnimator(Document*, bool enabled, ExceptionCode&);
Modified: trunk/Source/WebCore/testing/Internals.idl (99484 => 99485)
--- trunk/Source/WebCore/testing/Internals.idl 2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/testing/Internals.idl 2011-11-07 23:03:05 UTC (rev 99485)
@@ -50,6 +50,7 @@
void setForceCompositingMode(in Document document, in boolean enabled) raises(DOMException);
void setEnableCompositingForFixedPosition(in Document document, in boolean enabled) raises(DOMException);
+ void setEnableCompositingForScrollableFrames(in Document document, in boolean enabled) raises(DOMException);
void setAcceleratedDrawingEnabled(in Document document, in boolean enabled) raises(DOMException);
void setEnableScrollAnimator(in Document document, in boolean enabled) raises(DOMException);
void setZoomAnimatorTransform(in Document document, in float scale, in float tx, in float ty) raises(DOMException);