[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
tonikitoo at webkit.org
tonikitoo at webkit.org
Wed Dec 22 14:41:57 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 9a07713e7499d87f6daf1a73bec6d017a7a1ea28
Author: tonikitoo at webkit.org <tonikitoo at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sun Oct 17 03:51:48 2010 +0000
[Gtk]: DRT does not support frame flattening testing
https://bugs.webkit.org/show_bug.cgi?id=38650
Reviewed by Martin Robinson and Xan Lopez.
Patch by Antonio Gomes <agomes at rim.com>
WebKit/gtk:
Implement enable-frame-flattening API for Gtk+.
* webkit/webkitwebsettings.cpp:
(webkit_web_settings_class_init):
(webkit_web_settings_set_property):
(webkit_web_settings_get_property):
(webkit_web_settings_copy):
* webkit/webkitwebview.cpp:
(webkit_web_view_update_settings):
(webkit_web_view_settings_notify):
WebKitTools:
Implement DRT's support for toggling on/off frame flattening
support.
* DumpRenderTree/gtk/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues):
* DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
(LayoutTestController::setFrameFlatteningEnabled):
LayoutTests:
Unskipping passing frame flattening tests and adding expected results
for them.
* platform/gtk/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 920e78a..0c1d187 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-14 Antonio Gomes <agomes at rim.com>
+
+ Reviewed by Martin Robinson and Xan Lopez.
+
+ [Gtk]: DRT does not support frame flattening testing
+ https://bugs.webkit.org/show_bug.cgi?id=38650
+
+ Unskipping passing frame flattening tests and added expected results
+ for them.
+
+ * platform/gtk/Skipped:
+
2010-10-16 Alex Milowski <alex at milowski.com>
Reviewed by Daniel Bates.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index e3379e8..6720930 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -5204,10 +5204,6 @@ scrollbars/scrollbar-middleclick-nopaste.html
# Relies on WebKit API [WebView _loadBackForwardListFromOtherView:]
fast/loader/crash-copying-backforwardlist.html
-# Skip frame flattening tests until it can be tested by this DRT (bug 32717)
-# https://bugs.webkit.org/show_bug.cgi?id=38650
-fast/frames/flattening/
-
# https://bugs.webkit.org/show_bug.cgi?id=47587
fast/events/spatial-navigation/snav-iframe-flattening-simple.html
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-grid-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-grid-expected.txt
new file mode 100644
index 0000000..424027e
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-grid-expected.txt
@@ -0,0 +1,52 @@
+layer at (0,0) size 1200x800
+ RenderView at (0,0) size 784x584
+layer at (0,0) size 1200x800
+ RenderBlock {HTML} at (0,0) size 784x800
+ RenderFrameSet {FRAMESET} at (0,0) size 1200x800
+ RenderFrame {FRAME} at (0,0) size 600x200
+ layer at (0,0) size 600x200
+ RenderView at (0,0) size 600x200
+ layer at (0,0) size 600x200
+ RenderBlock {HTML} at (0,0) size 600x200
+ RenderBody {BODY} at (8,8) size 584x176 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 584x19
+ RenderText {#text} at (0,0) size 416x19
+ text run at (0,0) width 416: "Test for frameset flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 584x19
+ RenderText {#text} at (0,0) size 506x19
+ text run at (0,0) width 506: "This frame should be 300px wide, 200px tall and not be scrollable (have scrollbars)."
+ layer at (0,0) size 300x200
+ RenderBlock (positioned) {DIV} at (0,0) size 300x200
+ RenderFrame {FRAME} at (600,0) size 600x200
+ layer at (0,0) size 600x200
+ RenderView at (0,0) size 600x200
+ layer at (0,0) size 600x200
+ RenderBlock {HTML} at (0,0) size 600x200
+ RenderBody {BODY} at (8,8) size 584x176 [bgcolor=#FF0000]
+ RenderBlock {P} at (0,0) size 584x19
+ RenderText {#text} at (0,0) size 506x19
+ text run at (0,0) width 506: "This frame should be 300px wide, 200px tall and not be scrollable (have scrollbars)."
+ layer at (0,0) size 300x50
+ RenderBlock (positioned) {DIV} at (0,0) size 300x50
+ RenderFrame {FRAME} at (0,200) size 600x600
+ layer at (0,0) size 600x600
+ RenderView at (0,0) size 600x600
+ layer at (0,0) size 600x600
+ RenderBlock {HTML} at (0,0) size 600x600
+ RenderBody {BODY} at (8,8) size 584x576 [bgcolor=#FFFF00]
+ RenderBlock {P} at (0,0) size 584x19
+ RenderText {#text} at (0,0) size 506x19
+ text run at (0,0) width 506: "This frame should be 600px wide, 600px tall and not be scrollable (have scrollbars)."
+ layer at (0,0) size 600x600
+ RenderBlock (positioned) {DIV} at (0,0) size 600x600
+ RenderFrame {FRAME} at (600,200) size 600x600
+ layer at (0,0) size 600x600
+ RenderView at (0,0) size 600x600
+ layer at (0,0) size 600x600
+ RenderBlock {HTML} at (0,0) size 600x600
+ RenderBody {BODY} at (8,8) size 584x576 [bgcolor=#0000FF]
+ RenderBlock {P} at (0,0) size 584x19
+ RenderText {#text} at (0,0) size 506x19
+ text run at (0,0) width 506: "This frame should be 600px wide, 600px tall and not be scrollable (have scrollbars)."
+ layer at (0,0) size 600x600
+ RenderBlock (positioned) {DIV} at (0,0) size 600x600
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-simple-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-simple-expected.txt
new file mode 100644
index 0000000..2f57498
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-simple-expected.txt
@@ -0,0 +1,25 @@
+layer at (0,0) size 1000x584
+ RenderView at (0,0) size 800x584
+layer at (0,0) size 1000x584
+ RenderBlock {HTML} at (0,0) size 800x584
+ RenderFrameSet {FRAMESET} at (0,0) size 1000x584
+ RenderFrame {FRAME} at (0,0) size 800x584
+ layer at (0,0) size 800x584
+ RenderView at (0,0) size 800x584
+ layer at (0,0) size 800x584
+ RenderBlock {HTML} at (0,0) size 800x584
+ RenderBody {BODY} at (8,8) size 784x560 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 784x19
+ RenderText {#text} at (0,0) size 416x19
+ text run at (0,0) width 416: "Test for frameset flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 784x19
+ RenderText {#text} at (0,0) size 438x19
+ text run at (0,0) width 438: "This frame should be 800px wide and not be scrollable (have scrollbars)."
+ layer at (0,100) size 800x1
+ RenderBlock (positioned) {DIV} at (0,100) size 800x1
+ RenderFrame {FRAME} at (800,0) size 200x584
+ layer at (0,0) size 200x584
+ RenderView at (0,0) size 200x584
+ layer at (0,0) size 200x584
+ RenderBlock {HTML} at (0,0) size 200x584
+ RenderBody {BODY} at (8,8) size 184x568
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt
new file mode 100644
index 0000000..45f77fc
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt
@@ -0,0 +1,27 @@
+layer at (0,0) size 1000x650
+ RenderView at (0,0) size 784x584
+layer at (0,0) size 1000x650
+ RenderBlock {HTML} at (0,0) size 784x650
+ RenderFrameSet {FRAMESET} at (0,0) size 1000x650
+ RenderFrame {FRAME} at (0,0) size 300x650
+ layer at (0,0) size 300x650
+ RenderView at (0,0) size 300x650
+ layer at (0,0) size 300x650
+ RenderBlock {HTML} at (0,0) size 300x650
+ RenderBody {BODY} at (8,8) size 284x626 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 284x38
+ RenderText {#text} at (0,0) size 276x38
+ text run at (0,0) width 276: "Test for frameset flattening. The flattening only"
+ text run at (0,19) width 136: "works inside the DRT."
+ RenderBlock {P} at (0,54) size 284x38
+ RenderText {#text} at (0,0) size 269x38
+ text run at (0,0) width 269: "This frame should be 300px wide and not be"
+ text run at (0,19) width 165: "scrollable (have scrollbars)."
+ layer at (0,350) size 300x300
+ RenderBlock (positioned) {DIV} at (0,350) size 300x300 [bgcolor=#0000FF]
+ RenderFrame {FRAME} at (300,0) size 700x650
+ layer at (0,0) size 700x650
+ RenderView at (0,0) size 700x650
+ layer at (0,0) size 700x650
+ RenderBlock {HTML} at (0,0) size 700x650
+ RenderBody {BODY} at (8,8) size 684x634
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-subframesets-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-subframesets-expected.txt
new file mode 100644
index 0000000..bffe9fe
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/frameset-flattening-subframesets-expected.txt
@@ -0,0 +1,58 @@
+layer at (0,0) size 900x618
+ RenderView at (0,0) size 784x584
+layer at (0,0) size 900x618
+ RenderBlock {HTML} at (0,0) size 784x618
+ RenderFrameSet {FRAMESET} at (0,0) size 900x618
+ RenderFrameSet {FRAMESET} at (0,0) size 900x150
+ RenderFrame {FRAME} at (0,0) size 450x150
+ layer at (0,0) size 450x150
+ RenderView at (0,0) size 450x150
+ layer at (0,0) size 450x150
+ RenderBlock {HTML} at (0,0) size 450x150
+ RenderBody {BODY} at (8,8) size 434x126 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 434x19
+ RenderText {#text} at (0,0) size 343x19
+ text run at (0,0) width 343: "A frameset flattening test that only works inside the DRT."
+ RenderBlock {P} at (0,35) size 434x38
+ RenderText {#text} at (0,0) size 395x38
+ text run at (0,0) width 395: "This frame is inside frameset 1 and should be at least 450px wide,"
+ text run at (0,19) width 193: "150px tall and not be scrollable."
+ layer at (0,0) size 450x50
+ RenderBlock (positioned) {DIV} at (0,0) size 450x50
+ RenderFrame {FRAME} at (450,0) size 450x150
+ layer at (0,0) size 450x150
+ RenderView at (0,0) size 450x150
+ layer at (0,0) size 450x150
+ RenderBlock {HTML} at (0,0) size 450x150
+ RenderBody {BODY} at (8,8) size 434x126 [bgcolor=#FF0000]
+ RenderBlock {P} at (0,0) size 434x38
+ RenderText {#text} at (0,0) size 395x38
+ text run at (0,0) width 395: "This frame is inside frameset 1 and should be at least 450px wide,"
+ text run at (0,19) width 193: "150px tall and not be scrollable."
+ layer at (0,0) size 450x150
+ RenderBlock (positioned) {DIV} at (0,0) size 450x150
+ RenderFrameSet {FRAMESET} at (0,150) size 900x468
+ RenderFrame {FRAME} at (0,0) size 450x468
+ layer at (0,0) size 450x468
+ RenderView at (0,0) size 450x468
+ layer at (0,0) size 450x468
+ RenderBlock {HTML} at (0,0) size 450x468
+ RenderBody {BODY} at (8,8) size 434x444 [bgcolor=#FFFF00]
+ RenderBlock {P} at (0,0) size 434x38
+ RenderText {#text} at (0,0) size 395x38
+ text run at (0,0) width 395: "This frame is inside frameset 2 and should be at least 450px wide,"
+ text run at (0,19) width 193: "400px tall and not be scrollable."
+ layer at (0,0) size 200x450
+ RenderBlock (positioned) {DIV} at (0,0) size 200x450
+ RenderFrame {FRAME} at (450,0) size 450x468
+ layer at (0,0) size 450x468
+ RenderView at (0,0) size 450x468
+ layer at (0,0) size 450x468
+ RenderBlock {HTML} at (0,0) size 450x468
+ RenderBody {BODY} at (8,8) size 434x444 [bgcolor=#0000FF]
+ RenderBlock {P} at (0,0) size 434x38
+ RenderText {#text} at (0,0) size 395x38
+ text run at (0,0) width 395: "This frame is inside frameset 2 and should be at least 450px wide,"
+ text run at (0,19) width 193: "400px tall and not be scrollable."
+ layer at (0,0) size 450x450
+ RenderBlock (positioned) {DIV} at (0,0) size 450x450
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-height-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-height-expected.txt
new file mode 100644
index 0000000..4c518bf
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-height-expected.txt
@@ -0,0 +1,22 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x576 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 784x19
+ RenderText {#text} at (0,0) size 402x19
+ text run at (0,0) width 402: "Test for iframe flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 784x19
+ RenderText {#text} at (0,0) size 742x19
+ text run at (0,0) width 410: "This inner frame should be 400px in each direction, disregarding the "
+ text run at (410,0) width 332: "border, and it must not be scrollable or have scrollbars."
+ RenderBlock {P} at (0,70) size 784x204
+ RenderPartObject {IFRAME} at (0,0) size 160x204 [border: (2px inset #000000)]
+ layer at (0,0) size 400x400
+ RenderView at (0,0) size 156x200
+ layer at (0,0) size 156x200
+ RenderBlock {HTML} at (0,0) size 156x200
+ RenderBody {BODY} at (8,8) size 140x184 [bgcolor=#0000FF]
+ layer at (0,0) size 400x400
+ RenderBlock (positioned) {DIV} at (0,0) size 400x400
+ RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-and-height-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-and-height-expected.txt
new file mode 100644
index 0000000..ff9fc0b
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-and-height-expected.txt
@@ -0,0 +1,22 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x576 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 784x19
+ RenderText {#text} at (0,0) size 402x19
+ text run at (0,0) width 402: "Test for iframe flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 784x19
+ RenderText {#text} at (0,0) size 742x19
+ text run at (0,0) width 410: "This inner frame should be 400px in each direction, disregarding the "
+ text run at (410,0) width 332: "border, and it must not be scrollable or have scrollbars."
+ RenderBlock {P} at (0,70) size 784x204
+ RenderPartObject {IFRAME} at (0,0) size 204x204 [border: (2px inset #000000)]
+ layer at (0,0) size 400x400
+ RenderView at (0,0) size 200x200
+ layer at (0,0) size 200x200
+ RenderBlock {HTML} at (0,0) size 200x200
+ RenderBody {BODY} at (8,8) size 184x184 [bgcolor=#FF0000]
+ layer at (0,0) size 400x400
+ RenderBlock (positioned) {DIV} at (0,0) size 400x400
+ RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-expected.txt
new file mode 100644
index 0000000..90452e1
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-expected.txt
@@ -0,0 +1,22 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x576 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 784x19
+ RenderText {#text} at (0,0) size 402x19
+ text run at (0,0) width 402: "Test for iframe flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 784x19
+ RenderText {#text} at (0,0) size 742x19
+ text run at (0,0) width 410: "This inner frame should be 200px in each direction, disregarding the "
+ text run at (410,0) width 332: "border, and it must not be scrollable or have scrollbars."
+ RenderBlock {P} at (0,70) size 784x204
+ RenderPartObject {IFRAME} at (0,0) size 204x204 [border: (2px inset #000000)]
+ layer at (0,0) size 400x400
+ RenderView at (0,0) size 200x200
+ layer at (0,0) size 200x200
+ RenderBlock {HTML} at (0,0) size 200x200
+ RenderBody {BODY} at (8,8) size 184x184 [bgcolor=#FF0000]
+ layer at (0,0) size 400x400
+ RenderBlock (positioned) {DIV} at (0,0) size 400x400
+ RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-expected.txt
new file mode 100644
index 0000000..792d16e
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-expected.txt
@@ -0,0 +1,22 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x576 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 784x19
+ RenderText {#text} at (0,0) size 402x19
+ text run at (0,0) width 402: "Test for iframe flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 784x19
+ RenderText {#text} at (0,0) size 742x19
+ text run at (0,0) width 410: "This inner frame should be 400px in each direction, disregarding the "
+ text run at (410,0) width 332: "border, and it must not be scrollable or have scrollbars."
+ RenderBlock {P} at (0,70) size 784x124
+ RenderPartObject {IFRAME} at (0,0) size 204x124 [border: (2px inset #000000)]
+ layer at (0,0) size 400x400
+ RenderView at (0,0) size 200x120
+ layer at (0,0) size 200x120
+ RenderBlock {HTML} at (0,0) size 200x120
+ RenderBody {BODY} at (8,8) size 184x104 [bgcolor=#FF0000]
+ layer at (0,0) size 400x400
+ RenderBlock (positioned) {DIV} at (0,0) size 400x400
+ RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-offscreen-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-offscreen-expected.txt
new file mode 100644
index 0000000..d6e250f
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-offscreen-expected.txt
@@ -0,0 +1,33 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x0
+ RenderBlock {P} at (0,0) size 784x0
+ RenderBlock {P} at (0,0) size 784x0
+ RenderBlock {P} at (0,0) size 784x0
+layer at (8,200) size 792x159
+ RenderBlock (positioned) {DIV} at (8,200) size 792x159
+ RenderBlock {P} at (0,16) size 792x38
+ RenderText {#text} at (0,0) size 763x38
+ text run at (0,0) width 419: "Test for iframe flattening, with three inner frames just outside the view "
+ text run at (419,0) width 344: "and of the size 200x200 px, plus one inner frame is partly"
+ text run at (0,19) width 41: "visible."
+ RenderBlock {P} at (0,70) size 792x38
+ RenderText {#text} at (0,0) size 756x38
+ text run at (0,0) width 419: "This yellow, red and blue inner frames must remain offscreen, and the "
+ text run at (419,0) width 337: "green inner frames should be of size 300x300 (200x200"
+ text run at (0,19) width 46: "visible)."
+ RenderBlock {P} at (0,124) size 792x19
+ RenderText {#text} at (0,0) size 434x19
+ text run at (0,0) width 434: "NOTE: The test only works in the DRT or with frame flattening enabled."
+layer at (-100,-100) size 200x200 backgroundClip at (0,0) size 800x600 clip at (0,0) size 800x600 outlineClip at (0,0) size 800x600
+ RenderPartObject {IFRAME} at (-100,-100) size 200x200
+ layer at (0,0) size 300x300
+ RenderView at (0,0) size 200x200
+ layer at (0,0) size 200x200
+ RenderBlock {HTML} at (0,0) size 200x200
+ RenderBody {BODY} at (8,8) size 184x184 [bgcolor=#008000]
+ layer at (0,0) size 300x300
+ RenderBlock (positioned) {DIV} at (0,0) size 300x300
diff --git a/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-simple-expected.txt b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-simple-expected.txt
new file mode 100644
index 0000000..4a639a8
--- /dev/null
+++ b/LayoutTests/platform/gtk/fast/frames/flattening/iframe-flattening-simple-expected.txt
@@ -0,0 +1,21 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x576 [bgcolor=#008000]
+ RenderBlock {P} at (0,0) size 784x19
+ RenderText {#text} at (0,0) size 402x19
+ text run at (0,0) width 402: "Test for iframe flattening. The flattening only works inside the DRT."
+ RenderBlock {P} at (0,35) size 784x19
+ RenderText {#text} at (0,0) size 742x19
+ text run at (0,0) width 410: "This inner frame should be 400px in each direction, disregarding the "
+ text run at (410,0) width 332: "border, and it must not be scrollable or have scrollbars."
+ RenderBlock {P} at (0,70) size 784x124
+ RenderPartObject {IFRAME} at (0,0) size 160x124 [border: (2px inset #000000)]
+ layer at (0,0) size 400x400
+ RenderView at (0,0) size 156x120
+ layer at (0,0) size 156x120
+ RenderBlock {HTML} at (0,0) size 156x120
+ RenderBody {BODY} at (8,8) size 140x104 [bgcolor=#FF0000]
+ layer at (0,0) size 400x400
+ RenderBlock (positioned) {DIV} at (0,0) size 400x400
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index fd195ab..cd3becd 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,21 @@
+2010-10-14 Antonio Gomes <agomes at rim.com>
+
+ Reviewed by Martin Robinson and Xan Lopez.
+
+ [Gtk]: DRT does not support frame flattening testing
+ https://bugs.webkit.org/show_bug.cgi?id=38650
+
+ Implement enable-frame-flattening API for Gtk+.
+
+ * webkit/webkitwebsettings.cpp:
+ (webkit_web_settings_class_init):
+ (webkit_web_settings_set_property):
+ (webkit_web_settings_get_property):
+ (webkit_web_settings_copy):
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_update_settings):
+ (webkit_web_view_settings_notify):
+
2010-10-15 Nikolas Zimmermann <nzimmermann at rim.com>
Reviewed by Dirk Schulze.
diff --git a/WebKit/gtk/webkit/webkitwebsettings.cpp b/WebKit/gtk/webkit/webkitwebsettings.cpp
index d833108..3a4467f 100644
--- a/WebKit/gtk/webkit/webkitwebsettings.cpp
+++ b/WebKit/gtk/webkit/webkitwebsettings.cpp
@@ -94,6 +94,7 @@ struct _WebKitWebSettingsPrivate {
gboolean enable_html5_local_storage;
gboolean enable_xss_auditor;
gboolean enable_spatial_navigation;
+ gboolean enable_frame_flattening;
gchar* user_agent;
gboolean javascript_can_open_windows_automatically;
gboolean javascript_can_access_clipboard;
@@ -145,6 +146,7 @@ enum {
PROP_ENABLE_HTML5_LOCAL_STORAGE,
PROP_ENABLE_XSS_AUDITOR,
PROP_ENABLE_SPATIAL_NAVIGATION,
+ PROP_ENABLE_FRAME_FLATTENING,
PROP_USER_AGENT,
PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY,
PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD,
@@ -600,6 +602,25 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass)
FALSE,
flags));
/**
+ * WebKitWebSettings:enable-frame-flattening
+ *
+ * Whether to enable the Frame Flattening. With this setting each subframe is expanded
+ * to its contents, which will flatten all the frames to become one scrollable page.
+ * On touch devices, it is desired to not have any scrollable sub parts of the page as
+ * it results in a confusing user experience, with scrolling sometimes scrolling sub parts
+ * and at other times scrolling the page itself. For this reason iframes and framesets are
+ * barely usable on touch devices.
+ *
+ * Since: 1.3.5
+ */
+ g_object_class_install_property(gobject_class,
+ PROP_ENABLE_FRAME_FLATTENING,
+ g_param_spec_boolean("enable-frame-flattening",
+ _("Enable Frame Flattening"),
+ _("Whether to enable Frame Flattening"),
+ FALSE,
+ flags));
+ /**
* WebKitWebSettings:user-agent:
*
* The User-Agent string used by WebKitGtk.
@@ -1054,6 +1075,9 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con
case PROP_ENABLE_SPATIAL_NAVIGATION:
priv->enable_spatial_navigation = g_value_get_boolean(value);
break;
+ case PROP_ENABLE_FRAME_FLATTENING:
+ priv->enable_frame_flattening = g_value_get_boolean(value);
+ break;
case PROP_USER_AGENT:
g_free(priv->user_agent);
if (!g_value_get_string(value) || !strlen(g_value_get_string(value)))
@@ -1202,6 +1226,9 @@ static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa
case PROP_ENABLE_SPATIAL_NAVIGATION:
g_value_set_boolean(value, priv->enable_spatial_navigation);
break;
+ case PROP_ENABLE_FRAME_FLATTENING:
+ g_value_set_boolean(value, priv->enable_frame_flattening);
+ break;
case PROP_USER_AGENT:
g_value_set_string(value, priv->user_agent);
break;
@@ -1306,6 +1333,7 @@ WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* web_settings)
"enable-html5-local-storage", priv->enable_html5_local_storage,
"enable-xss-auditor", priv->enable_xss_auditor,
"enable-spatial-navigation", priv->enable_spatial_navigation,
+ "enable-frame-flattening", priv->enable_frame_flattening,
"user-agent", webkit_web_settings_get_user_agent(web_settings),
"javascript-can-open-windows-automatically", priv->javascript_can_open_windows_automatically,
"javascript-can-access-clipboard", priv->javascript_can_access_clipboard,
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index 60c162a..f5d0ef6 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -2883,7 +2883,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
gboolean autoLoadImages, autoShrinkImages, printBackgrounds,
enableScripts, enablePlugins, enableDeveloperExtras, resizableTextAreas,
enablePrivateBrowsing, enableCaretBrowsing, enableHTML5Database, enableHTML5LocalStorage,
- enableXSSAuditor, enableSpatialNavigation, javascriptCanOpenWindows,
+ enableXSSAuditor, enableSpatialNavigation, enableFrameFlattening, javascriptCanOpenWindows,
javaScriptCanAccessClipboard, enableOfflineWebAppCache,
enableUniversalAccessFromFileURI, enableFileAccessFromFileURI,
enableDOMPaste, tabKeyCyclesThroughElements,
@@ -2913,6 +2913,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
"enable-html5-local-storage", &enableHTML5LocalStorage,
"enable-xss-auditor", &enableXSSAuditor,
"enable-spatial-navigation", &enableSpatialNavigation,
+ "enable-frame-flattening", &enableFrameFlattening,
"javascript-can-open-windows-automatically", &javascriptCanOpenWindows,
"javascript-can-access-clipboard", &javaScriptCanAccessClipboard,
"enable-offline-web-application-cache", &enableOfflineWebAppCache,
@@ -2950,6 +2951,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
settings->setLocalStorageEnabled(enableHTML5LocalStorage);
settings->setXSSAuditorEnabled(enableXSSAuditor);
settings->setSpatialNavigationEnabled(enableSpatialNavigation);
+ settings->setFrameFlatteningEnabled(enableFrameFlattening);
settings->setJavaScriptCanOpenWindowsAutomatically(javascriptCanOpenWindows);
settings->setJavaScriptCanAccessClipboard(javaScriptCanAccessClipboard);
settings->setOfflineWebApplicationCacheEnabled(enableOfflineWebAppCache);
@@ -3048,6 +3050,8 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar
settings->setXSSAuditorEnabled(g_value_get_boolean(&value));
else if (name == g_intern_string("enable-spatial-navigation"))
settings->setSpatialNavigationEnabled(g_value_get_boolean(&value));
+ else if (name == g_intern_string("enable-frame-flattening"))
+ settings->setFrameFlatteningEnabled(g_value_get_boolean(&value));
else if (name == g_intern_string("javascript-can-open-windows-automatically"))
settings->setJavaScriptCanOpenWindowsAutomatically(g_value_get_boolean(&value));
else if (name == g_intern_string("javascript-can-access-clipboard"))
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index f4486bd..0c7de9d 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,18 @@
+2010-10-14 Antonio Gomes <agomes at rim.com>
+
+ Reviewed by Martin Robinson and Xan Lopez.
+
+ [Gtk]: DRT does not support frame flattening testing
+ https://bugs.webkit.org/show_bug.cgi?id=38650
+
+ Implement DRT's support for toggling on/off frame flattening
+ support.
+
+ * DumpRenderTree/gtk/DumpRenderTree.cpp:
+ (resetDefaultsToConsistentValues):
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ (LayoutTestController::setFrameFlatteningEnabled):
+
2010-10-15 Dirk Pranke <dpranke at chromium.org>
Reviewed by Eric Siedel.
diff --git a/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
index 00ed2f1..01de0a6 100644
--- a/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
@@ -385,6 +385,7 @@ static void resetDefaultsToConsistentValues()
"enable-html5-local-storage", TRUE,
"enable-xss-auditor", FALSE,
"enable-spatial-navigation", FALSE,
+ "enable-frame-flattening", FALSE,
"javascript-can-access-clipboard", TRUE,
"javascript-can-open-windows-automatically", TRUE,
"enable-offline-web-application-cache", TRUE,
diff --git a/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp b/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
index d831076..50b6179 100644
--- a/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
@@ -423,7 +423,11 @@ void LayoutTestController::setXSSAuditorEnabled(bool flag)
void LayoutTestController::setFrameFlatteningEnabled(bool flag)
{
- // FIXME: implement
+ WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame);
+ ASSERT(view);
+
+ WebKitWebSettings* settings = webkit_web_view_get_settings(view);
+ g_object_set(G_OBJECT(settings), "enable-frame-flattening", flag, NULL);
}
void LayoutTestController::setSpatialNavigationEnabled(bool flag)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list