[webkit-changes] cvs commit: WebCore/layout-tests/fast/frames
invalid-expected.txt invalid.html valid-expected.txt valid.html
Geoffrey
ggaren at opensource.apple.com
Tue Jun 21 15:27:56 PDT 2005
ggaren 05/06/21 15:27:56
Modified: . ChangeLog
khtml/dom dom_string.cpp dom_string.h
khtml/html html_imageimpl.cpp
khtml/xml dom_atomicstring.h dom_stringimpl.cpp
dom_stringimpl.h
Added: layout-tests/fast/frames invalid-expected.txt invalid.html
valid-expected.txt valid.html
Log:
Patch contributed by Niels Leenheer <niels.leenheer at gmail.com>
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3370
(Safari can't handle strange frame dimensions)
Reviewed by Darin.
* khtml/dom/dom_string.cpp:
(DOM::DOMString::toCoordsArray):
* khtml/dom/dom_string.h:
* khtml/html/html_imageimpl.cpp:
(HTMLAreaElementImpl::parseMappedAttribute):
* khtml/xml/dom_atomicstring.h:
(DOM::AtomicString::toCoordsArray):
* khtml/xml/dom_stringimpl.cpp:
(DOM::parseLength):
(DOM::DOMStringImpl::toCoordsArray):
(DOM::DOMStringImpl::toLengthArray):
* khtml/xml/dom_stringimpl.h:
Test cases added:
* layout-tests/fast/frames/invalid-expected.txt: Added.
* layout-tests/fast/frames/invalid.html: Added.
* layout-tests/fast/frames/valid-expected.txt: Added.
* layout-tests/fast/frames/valid.html: Added.
Revision Changes Path
1.4292 +28 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.4291
retrieving revision 1.4292
diff -u -r1.4291 -r1.4292
--- ChangeLog 21 Jun 2005 18:44:55 -0000 1.4291
+++ ChangeLog 21 Jun 2005 22:27:51 -0000 1.4292
@@ -1,5 +1,33 @@
2005-06-21 Geoffrey Garen <ggaren at apple.com>
+ Patch contributed by Niels Leenheer <niels.leenheer at gmail.com>
+
+ - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3370
+ (Safari can't handle strange frame dimensions)
+
+ Reviewed by Darin.
+
+ * khtml/dom/dom_string.cpp:
+ (DOM::DOMString::toCoordsArray):
+ * khtml/dom/dom_string.h:
+ * khtml/html/html_imageimpl.cpp:
+ (HTMLAreaElementImpl::parseMappedAttribute):
+ * khtml/xml/dom_atomicstring.h:
+ (DOM::AtomicString::toCoordsArray):
+ * khtml/xml/dom_stringimpl.cpp:
+ (DOM::parseLength):
+ (DOM::DOMStringImpl::toCoordsArray):
+ (DOM::DOMStringImpl::toLengthArray):
+ * khtml/xml/dom_stringimpl.h:
+
+ Test cases added:
+ * layout-tests/fast/frames/invalid-expected.txt: Added.
+ * layout-tests/fast/frames/invalid.html: Added.
+ * layout-tests/fast/frames/valid-expected.txt: Added.
+ * layout-tests/fast/frames/valid.html: Added.
+
+2005-06-21 Geoffrey Garen <ggaren at apple.com>
+
- fixed <rdar://problem/4155049> javascript function named as "opener" doesn't get called because of window.opener property
Test cases only, fix is in JavaScriptCore
1.18 +5 -0 WebCore/khtml/dom/dom_string.cpp
Index: dom_string.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/dom/dom_string.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- dom_string.cpp 16 May 2005 19:19:38 -0000 1.17
+++ dom_string.cpp 21 Jun 2005 22:27:54 -0000 1.18
@@ -272,6 +272,11 @@
return (!impl || impl->l == 0);
}
+khtml::Length* DOMString::toCoordsArray(int& len) const
+{
+ return impl ? impl->toCoordsArray(len) : 0;
+}
+
khtml::Length* DOMString::toLengthArray(int& len) const
{
return impl ? impl->toLengthArray(len) : 0;
1.13 +1 -0 WebCore/khtml/dom/dom_string.h
Index: dom_string.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/dom/dom_string.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- dom_string.h 4 Mar 2005 22:24:18 -0000 1.12
+++ dom_string.h 21 Jun 2005 22:27:54 -0000 1.13
@@ -105,6 +105,7 @@
int toInt() const;
khtml::Length* toLengthArray(int& len) const;
+ khtml::Length* toCoordsArray(int& len) const;
bool percentage(int &_percentage) const;
DOMString copy() const;
1.43 +1 -1 WebCore/khtml/html/html_imageimpl.cpp
Index: html_imageimpl.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/html/html_imageimpl.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- html_imageimpl.cpp 12 May 2005 01:16:01 -0000 1.42
+++ html_imageimpl.cpp 21 Jun 2005 22:27:55 -0000 1.43
@@ -656,7 +656,7 @@
break;
case ATTR_COORDS:
if (m_coords) delete [] m_coords;
- m_coords = attr->value().toLengthArray(m_coordsLen);
+ m_coords = attr->value().toCoordsArray(m_coordsLen);
break;
case ATTR_TARGET:
m_hasTarget = !attr->isNull();
1.3 +1 -0 WebCore/khtml/xml/dom_atomicstring.h
Index: dom_atomicstring.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/xml/dom_atomicstring.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- dom_atomicstring.h 3 Mar 2004 00:42:49 -0000 1.2
+++ dom_atomicstring.h 21 Jun 2005 22:27:55 -0000 1.3
@@ -54,6 +54,7 @@
int toInt() const { return m_string.toInt(); }
bool percentage(int &_percentage) const { return m_string.percentage(_percentage); }
khtml::Length* toLengthArray(int& len) const { return m_string.toLengthArray(len); }
+ khtml::Length* toCoordsArray(int& len) const { return m_string.toCoordsArray(len); }
bool isNull() const { return m_string.isNull(); }
bool isEmpty() const { return m_string.isEmpty(); }
1.27 +80 -54 WebCore/khtml/xml/dom_stringimpl.cpp
Index: dom_stringimpl.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/xml/dom_stringimpl.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- dom_stringimpl.cpp 7 Sep 2004 00:25:36 -0000 1.26
+++ dom_stringimpl.cpp 21 Jun 2005 22:27:55 -0000 1.27
@@ -220,37 +220,56 @@
return new DOMStringImpl(s + pos, len);
}
-static Length parseLength(QChar *s, unsigned int l) {
- const QChar* last = s+l-1;
-
- if ( *last == QChar('%')) {
- // CSS allows one decimal after the point, like
- // 42.2%, but not 42.22%
- // we ignore the non-integer part for speed/space reasons
- int i = QConstString(s, l).string().findRev('.');
- if ( i >= 0 && i < (int)l-1 )
- l = i + 1;
-
- return Length(QConstString(s, l-1).string().toInt(), Percent);
- }
-
- if ( *last == QChar('*'))
- {
- if(l == 1)
- return Length(1, Relative);
- else
- return Length(QConstString(s, l-1).string().toInt(), Relative);
+static Length parseLength(QChar *s, unsigned int l)
+{
+ if (l == 0) {
+ return Length(1, Relative);
}
- // should we strip of the non-integer part here also?
- // CSS says no, all important browsers do so, including Mozilla. sigh.
+ unsigned i = 0;
+ while (i < l && s[i].isSpace())
+ ++i;
+ if (i < l && (s[i] == '+' || s[i] == '-'))
+ ++i;
+ while (i < l && s[i].isDigit())
+ ++i;
+
bool ok;
- // this ugly construct helps in case someone specifies a length as "100."
- int v = (int) QConstString(s, l).string().toFloat(&ok);
- if(ok) {
- return Length(v, Fixed);
+ int r = QConstString(s, i).string().toInt(&ok);
+
+ /* Skip over any remaining digits, we are not that accurate (5.5% => 5%) */
+ while (i < l && (s[i].isDigit() || s[i] == '.'))
+ ++i;
+
+ /* IE Quirk: Skip any whitespace (20 % => 20%) */
+ while (i < l && s[i].isSpace())
+ ++i;
+
+ if (ok) {
+ if (i == l) {
+ return Length(r, Fixed);
+ } else {
+ const QChar* next = s+i;
+
+ if (*next == '%')
+ return Length(r, Percent);
+
+ if (*next == '*')
+ return Length(r, Relative);
+ }
+ return Length(r, Fixed);
+ } else {
+ if (i < l) {
+ const QChar* next = s+i;
+
+ if (*next == '*')
+ return Length(1, Relative);
+
+ if (*next == '%')
+ return Length(1, Relative);
+ }
}
- return Length(0, Variable);
+ return Length(0, Relative);
}
Length DOMStringImpl::toLength() const
@@ -258,47 +277,28 @@
return parseLength(s,l);
}
-khtml::Length* DOMStringImpl::toLengthArray(int& len) const
+khtml::Length* DOMStringImpl::toCoordsArray(int& len) const
{
-#if !APPLE_CHANGES
- QString str(s, l);
-#endif /* APPLE_CHANGES not defined */
- int pos = 0;
- int pos2;
-
- // web authors are so stupid. This is a workaround
- // to fix lists like "1,2px 3 ,4"
- // make sure not to break percentage or relative widths
- // ### what about "auto" ?
-#if APPLE_CHANGES
- // This alternate version works around a limitation in our QString implementation.
QChar spacified[l];
QChar space(' ');
for(unsigned int i=0; i < l; i++) {
QChar cc = s[i];
- if ( cc > '9' || ( cc < '0' && cc != '-' && cc != '*' && cc != '%' && cc != '.') ){
+ if (cc > '9' || (cc < '0' && cc != '-' && cc != '*' && cc != '.'))
spacified[i] = space;
- }
- else {
+ else
spacified[i] = cc;
- }
}
QString str(spacified, l);
-#else /* APPLE_CHANGES not defined */
- QChar space(' ');
- for(unsigned int i=0; i < l; i++) {
- char cc = str[i].latin1();
- if ( cc > '9' || ( cc < '0' && cc != '-' && cc != '*' && cc != '%' && cc != '.') )
- str[i] = space;
- }
-#endif /* APPLE_CHANGES not defined */
str = str.simplifyWhiteSpace();
len = str.contains(' ') + 1;
khtml::Length* r = new khtml::Length[len];
+
int i = 0;
- while((pos2 = str.find(' ', pos)) != -1)
- {
+ int pos = 0;
+ int pos2;
+
+ while((pos2 = str.find(' ', pos)) != -1) {
r[i++] = parseLength((QChar *) str.unicode()+pos, pos2-pos);
pos = pos2+1;
}
@@ -307,6 +307,32 @@
return r;
}
+khtml::Length* DOMStringImpl::toLengthArray(int& len) const
+{
+ QString str(s, l);
+ str = str.simplifyWhiteSpace();
+
+ len = str.contains(',') + 1;
+ khtml::Length* r = new khtml::Length[len];
+
+ int i = 0;
+ int pos = 0;
+ int pos2;
+
+ while((pos2 = str.find(',', pos)) != -1) {
+ r[i++] = parseLength((QChar *) str.unicode()+pos, pos2-pos);
+ pos = pos2+1;
+ }
+
+ /* IE Quirk: If the last comma is the last char skip it and reduce len by one */
+ if (str.length()-pos > 0)
+ r[i] = parseLength((QChar *) str.unicode()+pos, str.length()-pos);
+ else
+ len--;
+
+ return r;
+}
+
bool DOMStringImpl::isLower() const
{
unsigned int i;
1.14 +1 -0 WebCore/khtml/xml/dom_stringimpl.h
Index: dom_stringimpl.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/xml/dom_stringimpl.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- dom_stringimpl.h 12 May 2005 17:11:22 -0000 1.13
+++ dom_stringimpl.h 21 Jun 2005 22:27:55 -0000 1.14
@@ -76,6 +76,7 @@
// ignores trailing garbage, unlike QString
int toInt(bool* ok=0) const;
+ khtml::Length* toCoordsArray(int& len) const;
khtml::Length* toLengthArray(int& len) const;
bool isLower() const;
DOMStringImpl *lower() const;
1.1 WebCore/layout-tests/fast/frames/invalid-expected.txt
Index: invalid-expected.txt
===================================================================
layer at (0,0) size 800x600
RenderCanvas at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderFrameSet {FRAMESET} at (0,0) size 800x600
RenderFrameSet {FRAMESET} at (0,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x298
layer at (0,0) size 52x294
RenderCanvas at (0,0) size 52x294
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,302) size 69x298
layer at (0,0) size 52x294
RenderCanvas at (0,0) size 52x294
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (73,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x447
layer at (0,0) size 52x443
RenderCanvas at (0,0) size 52x443
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,451) size 69x149
layer at (0,0) size 52x145
RenderCanvas at (0,0) size 52x145
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (146,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x100
layer at (0,0) size 52x96
RenderCanvas at (0,0) size 52x96
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,104) size 69x300
layer at (0,0) size 52x296
RenderCanvas at (0,0) size 52x296
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,408) size 69x192
layer at (0,0) size 52x188
RenderCanvas at (0,0) size 52x188
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (219,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x300
layer at (0,0) size 52x296
RenderCanvas at (0,0) size 52x296
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,304) size 69x100
layer at (0,0) size 52x96
RenderCanvas at (0,0) size 52x96
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,408) size 69x192
layer at (0,0) size 52x188
RenderCanvas at (0,0) size 52x188
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (292,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x5
layer at (0,0) size 52x8
RenderCanvas at (0,0) size 52x1
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,9) size 69x53
layer at (0,0) size 52x49
RenderCanvas at (0,0) size 52x49
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,66) size 69x534
layer at (0,0) size 52x530
RenderCanvas at (0,0) size 52x530
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (365,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x65
layer at (0,0) size 52x61
RenderCanvas at (0,0) size 52x61
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,69) size 69x531
layer at (0,0) size 52x527
RenderCanvas at (0,0) size 52x527
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (438,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,201) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,402) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (511,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,201) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,402) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (584,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x396
layer at (0,0) size 52x392
RenderCanvas at (0,0) size 52x392
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,400) size 69x200
layer at (0,0) size 52x196
RenderCanvas at (0,0) size 52x196
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (657,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,151) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,302) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,453) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (730,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,151) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,302) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,453) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
1.1 WebCore/layout-tests/fast/frames/invalid.html
Index: invalid.html
===================================================================
<html>
<frameset cols="*,*,*,*,*,*,*,*,*,*,*">
<frameset rows="50%*,*">
<frame>
<frame>
</frameset>
<frameset rows="3*%,*">
<frame>
<frame>
</frameset>
<frameset rows="100 200,300,*">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="300.300,100,*">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="1%00,10%0,100%">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="11 %,*">
<frame>
<frame>
</frameset>
<frameset rows="%10,%20,%70">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="this,is,nonsense">
<frame>
<frame>
<frame>
</frameset>
<frameset rows=",200px,">
<frame>
<frame>
</frameset>
<frameset rows="*,*,*,*,">
<frame>
<frame>
<frame>
<frame>
</frameset>
<frameset rows=",,,,">
<frame>
<frame>
<frame>
<frame>
</frameset>
</frameset>
</html>
1.1 WebCore/layout-tests/fast/frames/valid-expected.txt
Index: valid-expected.txt
===================================================================
layer at (0,0) size 800x600
RenderCanvas at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderFrameSet {FRAMESET} at (0,0) size 800x600
RenderFrameSet {FRAMESET} at (0,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x298
layer at (0,0) size 52x294
RenderCanvas at (0,0) size 52x294
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,302) size 69x298
layer at (0,0) size 52x294
RenderCanvas at (0,0) size 52x294
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (73,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x447
layer at (0,0) size 52x443
RenderCanvas at (0,0) size 52x443
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,451) size 69x149
layer at (0,0) size 52x145
RenderCanvas at (0,0) size 52x145
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (146,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x100
layer at (0,0) size 52x96
RenderCanvas at (0,0) size 52x96
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,104) size 69x300
layer at (0,0) size 52x296
RenderCanvas at (0,0) size 52x296
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,408) size 69x192
layer at (0,0) size 52x188
RenderCanvas at (0,0) size 52x188
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (219,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x300
layer at (0,0) size 52x296
RenderCanvas at (0,0) size 52x296
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,304) size 69x100
layer at (0,0) size 52x96
RenderCanvas at (0,0) size 52x96
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,408) size 69x192
layer at (0,0) size 52x188
RenderCanvas at (0,0) size 52x188
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (292,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x5
layer at (0,0) size 52x8
RenderCanvas at (0,0) size 52x1
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,9) size 69x53
layer at (0,0) size 52x49
RenderCanvas at (0,0) size 52x49
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,66) size 69x534
layer at (0,0) size 52x530
RenderCanvas at (0,0) size 52x530
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (365,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x65
layer at (0,0) size 52x61
RenderCanvas at (0,0) size 52x61
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,69) size 69x531
layer at (0,0) size 52x527
RenderCanvas at (0,0) size 52x527
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (438,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,201) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,402) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (511,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,201) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,402) size 69x197
layer at (0,0) size 52x193
RenderCanvas at (0,0) size 52x193
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (584,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x396
layer at (0,0) size 52x392
RenderCanvas at (0,0) size 52x392
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,400) size 69x200
layer at (0,0) size 52x196
RenderCanvas at (0,0) size 52x196
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (657,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,151) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,302) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,453) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrameSet {FRAMESET} at (730,0) size 69x600
RenderFrame {FRAME} at (0,0) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,151) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,302) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
RenderFrame {FRAME} at (0,453) size 69x147
layer at (0,0) size 52x143
RenderCanvas at (0,0) size 52x143
layer at (0,0) size 52x8
RenderBlock {HTML} at (0,0) size 52x8
RenderBody {BODY} at (8,8) size 36x0
1.1 WebCore/layout-tests/fast/frames/valid.html
Index: valid.html
===================================================================
<html>
<frameset cols="*,*,*,*,*,*,*,*,*,*,*">
<frameset rows="50%,*">
<frame>
<frame>
</frameset>
<frameset rows="3*,*">
<frame>
<frame>
</frameset>
<frameset rows="100,300,*">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="300,100,*">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="1%,10%,100%">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="11%,*">
<frame>
<frame>
</frameset>
<frameset rows="*,*,*">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="*,*,*">
<frame>
<frame>
<frame>
</frameset>
<frameset rows="*,200">
<frame>
<frame>
</frameset>
<frameset rows="*,*,*,*">
<frame>
<frame>
<frame>
<frame>
</frameset>
<frameset rows="*,*,*,*">
<frame>
<frame>
<frame>
<frame>
</frameset>
</frameset>
</html>
More information about the webkit-changes
mailing list