Reviewed and landed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5768
pages with frames that are all "fixed" get no layout and are blank (like www.farnell.nl)
* khtml/rendering/render_frames.cpp: (RenderFrameSet::layout):
* manual-tests/bugzilla-5768.html: Added. Can't seem to get it to work (fail) as an automated test.
* manual-tests/resources/frame1.html: Added.
* manual-tests/resources/frame2.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@11648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2005-12-19 b/WebCore/ChangeLog-2005-12-19
index c7f54de..292ec06 100644
--- a/WebCore/ChangeLog-2005-12-19
+++ b/WebCore/ChangeLog-2005-12-19
@@ -1,3 +1,15 @@
+2005-12-17 Mitz Pettel <opendarwin.org@mitzpettel.com>
+
+ Reviewed and landed by Darin.
+
+ - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5768
+ pages with frames that are all "fixed" get no layout and are blank (like www.farnell.nl)
+
+ * khtml/rendering/render_frames.cpp: (RenderFrameSet::layout):
+ * manual-tests/bugzilla-5768.html: Added. Can't seem to get it to work (fail) as an automated test.
+ * manual-tests/resources/frame1.html: Added.
+ * manual-tests/resources/frame2.html: Added.
+
2005-12-17 Anders Carlsson <andersca@mac.com>
Reviewed by Darin.
diff --git a/WebCore/khtml/rendering/render_frames.cpp b/WebCore/khtml/rendering/render_frames.cpp
index ce695b3..ed21518 100644
--- a/WebCore/khtml/rendering/render_frames.cpp
+++ b/WebCore/khtml/rendering/render_frames.cpp
@@ -376,7 +376,8 @@
m_hSplitVar[r] = false;
}
child = child->nextSibling();
- if(!child) goto end2;
+ if(!child)
+ goto end1;
}
#ifdef DEBUG_LAYOUT
else
@@ -386,6 +387,7 @@
}
}
+ end1:
RenderContainer::layout();
end2:
setNeedsLayout(false);
diff --git a/WebCore/manual-tests/bugzilla-5768.html b/WebCore/manual-tests/bugzilla-5768.html
new file mode 100644
index 0000000..4ead9f2
--- /dev/null
+++ b/WebCore/manual-tests/bugzilla-5768.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<html>
+<head>
+<title>No relayout when all frames are fixed</title>
+<script type="text/javascript">
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+var i = 0;
+function test()
+{
+ i++;
+ var f = document.getElementById('f');
+ switch(i) {
+ case 1:
+ window.setTimeout(test, 100);
+ break;
+ case 2:
+ f.src = "resources/frame2.html";
+ break;
+ case 3:
+ window.setTimeout(test, 100);
+ break;
+ case 4:
+ f.src = "resources/frame1.html";
+ break;
+ case 5:
+ window.setTimeout(test, 100);
+ break;
+ case 6:
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ break;
+ }
+}
+</script>
+</head>
+<frameset>
+ <frame onload="test()" id="f" src="resources/frame1.html" noresize>
+</frameset>
+</html>
diff --git a/WebCore/manual-tests/resources/frame1.html b/WebCore/manual-tests/resources/frame1.html
new file mode 100644
index 0000000..50f3b98
--- /dev/null
+++ b/WebCore/manual-tests/resources/frame1.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>frame1</title>
+</head>
+<body>
+Frame 1
+</body>
+</html>
\ No newline at end of file
diff --git a/WebCore/manual-tests/resources/frame2.html b/WebCore/manual-tests/resources/frame2.html
new file mode 100644
index 0000000..d74db38
--- /dev/null
+++ b/WebCore/manual-tests/resources/frame2.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>frame2</title>
+</head>
+<body>
+Frame 2
+</body>
+</html>
\ No newline at end of file