Diff
Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html (99757 => 99758)
--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html 2011-11-09 22:09:39 UTC (rev 99758)
@@ -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: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html (99757 => 99758)
--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html 2011-11-09 22:09:39 UTC (rev 99758)
@@ -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: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html (99757 => 99758)
--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html 2011-11-09 22:09:39 UTC (rev 99758)
@@ -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: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html (99757 => 99758)
--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html 2011-11-09 22:09:39 UTC (rev 99758)
@@ -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: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html (99757 => 99758)
--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html 2011-11-09 22:09:39 UTC (rev 99758)
@@ -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: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html (99757 => 99758)
--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html 2011-11-09 22:09:39 UTC (rev 99758)
@@ -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: branches/chromium/912/Source/WebCore/page/Settings.cpp (99757 => 99758)
--- branches/chromium/912/Source/WebCore/page/Settings.cpp 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/page/Settings.cpp 2011-11-09 22:09:39 UTC (rev 99758)
@@ -180,6 +180,7 @@
, m_acceleratedCompositingForPluginsEnabled(true)
, m_acceleratedCompositingForCanvasEnabled(true)
, m_acceleratedCompositingForAnimationEnabled(true)
+ , m_acceleratedCompositingForScrollableFramesEnabled(false)
, m_showDebugBorders(false)
, m_showRepaintCounter(false)
, m_experimentalNotificationsEnabled(false)
Modified: branches/chromium/912/Source/WebCore/page/Settings.h (99757 => 99758)
--- branches/chromium/912/Source/WebCore/page/Settings.h 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/page/Settings.h 2011-11-09 22:09:39 UTC (rev 99758)
@@ -319,6 +319,9 @@
void setAcceleratedCompositingForAnimationEnabled(bool);
bool acceleratedCompositingForAnimationEnabled() const { return m_acceleratedCompositingForAnimationEnabled; }
+ void setAcceleratedCompositingForScrollableFramesEnabled(bool enabled) { m_acceleratedCompositingForScrollableFramesEnabled = enabled; }
+ bool acceleratedCompositingForScrollableFramesEnabled() const { return m_acceleratedCompositingForScrollableFramesEnabled; }
+
void setShowDebugBorders(bool);
bool showDebugBorders() const { return m_showDebugBorders; }
@@ -552,6 +555,7 @@
bool m_acceleratedCompositingForPluginsEnabled : 1;
bool m_acceleratedCompositingForCanvasEnabled : 1;
bool m_acceleratedCompositingForAnimationEnabled : 1;
+ bool m_acceleratedCompositingForScrollableFramesEnabled : 1; // Works only in conjunction with forceCompositingMode
bool m_showDebugBorders : 1;
bool m_showRepaintCounter : 1;
bool m_experimentalNotificationsEnabled : 1;
Modified: branches/chromium/912/Source/WebCore/rendering/RenderLayerCompositor.cpp (99757 => 99758)
--- branches/chromium/912/Source/WebCore/rendering/RenderLayerCompositor.cpp 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/rendering/RenderLayerCompositor.cpp 2011-11-09 22:09:39 UTC (rev 99758)
@@ -143,7 +143,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: branches/chromium/912/Source/WebCore/testing/Internals.cpp (99757 => 99758)
--- branches/chromium/912/Source/WebCore/testing/Internals.cpp 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/testing/Internals.cpp 2011-11-09 22:09:39 UTC (rev 99758)
@@ -248,6 +248,16 @@
document->settings()->setForceCompositingMode(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::setEnableScrollAnimator(Document* document, bool enabled, ExceptionCode& ec)
{
if (!document || !document->settings()) {
Modified: branches/chromium/912/Source/WebCore/testing/Internals.h (99757 => 99758)
--- branches/chromium/912/Source/WebCore/testing/Internals.h 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/testing/Internals.h 2011-11-09 22:09:39 UTC (rev 99758)
@@ -76,6 +76,7 @@
PassRefPtr<Range> markerRangeForNode(Node*, unsigned, ExceptionCode&);
void setForceCompositingMode(Document*, bool enabled, ExceptionCode&);
+ void setEnableCompositingForScrollableFrames(Document*, bool enabled, ExceptionCode&);
void setEnableScrollAnimator(Document*, bool enabled, ExceptionCode&);
void setZoomAnimatorTransform(Document*, float scale, float tx, float ty, ExceptionCode&);
Modified: branches/chromium/912/Source/WebCore/testing/Internals.idl (99757 => 99758)
--- branches/chromium/912/Source/WebCore/testing/Internals.idl 2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/testing/Internals.idl 2011-11-09 22:09:39 UTC (rev 99758)
@@ -50,6 +50,8 @@
Range markerRangeForNode(in Node node, in unsigned long index) raises(DOMException);
void setForceCompositingMode(in Document document, in boolean enabled) raises(DOMException);
+ void setEnableCompositingForScrollableFrames(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);
float getPageScaleFactor(in Document document) raises(DOMException);