Fix for <rdar://problem/
4084029> designMode doesn't allow editing when iframe src = "" or = about:blank
This change will add an HTML element for empty documents. Now that there will be an HTMLDocument in this case,
a body will also be created (see rdar://problem/
3758785). This was preventing frames with empty documents from
being editable.
* khtml/html/htmlparser.cpp: (KHTMLParser::finished):
Updated these tests to expect the HTML and BODY elements
* layout-tests/fast/flexbox/016-expected.txt:
* layout-tests/fast/frames/001-expected.txt:
* layout-tests/fast/frames/002-expected.txt:
* layout-tests/fast/frames/contentWindow_Frame-expected.txt:
* layout-tests/fast/frames/contentWindow_iFrame-expected.txt:
* layout-tests/fast/frames/empty-frame-src-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9062
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
RenderPartObject {IFRAME} at (0,54) size 812x513 [bgcolor=#008000] [border: (10px solid #808000)]
layer at (0,0) size 777x493
RenderCanvas at (0,0) size 777x493
+ layer at (0,0) size 777x8
+ RenderBlock {HTML} at (0,0) size 777x8
+ RenderBody {BODY} at (8,8) size 761x0
RenderBlock {DIV} at (0,567) size 800x18
RenderText {TEXT} at (0,0) size 664x18
text run at (0,0) width 407: "This footer should remain at the bottom of the browser window. "
RenderPartObject {IFRAME} at (0,18) size 170x170 [border: (10px solid #FF0000)]
layer at (0,0) size 85x100
RenderCanvas at (0,0) size 85x100
+ layer at (0,0) size 85x8
+ RenderBlock {HTML} at (0,0) size 85x8
+ RenderBody {BODY} at (8,8) size 69x0
RenderText {TEXT} at (170,174) size 4x18
text run at (170,174) width 4: " "
RenderPartObject {OBJECT} at (174,18) size 170x170 [border: (10px solid #FF0000)]
layer at (0,0) size 85x100
RenderCanvas at (0,0) size 85x100
+ layer at (0,0) size 85x8
+ RenderBlock {HTML} at (0,0) size 85x8
+ RenderBody {BODY} at (8,8) size 69x0
RenderText {TEXT} at (344,174) size 4x18
text run at (344,174) width 4: " "
RenderPartObject {OBJECT} at (348,18) size 170x170 [border: (10px solid #FF0000)]
layer at (0,0) size 85x100
RenderCanvas at (0,0) size 85x100
+ layer at (0,0) size 85x8
+ RenderBlock {HTML} at (0,0) size 85x8
+ RenderBody {BODY} at (8,8) size 69x0
RenderText {TEXT} at (0,0) size 0x0
RenderFrame {FRAME} at (0,0) size 398x600
layer at (0,0) size 381x596
RenderCanvas at (0,0) size 381x596
+ layer at (0,0) size 381x8
+ RenderBlock {HTML} at (0,0) size 381x8
+ RenderBody {BODY} at (8,8) size 365x0
RenderFrameSet {FRAMESET} at (402,0) size 398x600
RenderFrame {FRAME} at (0,0) size 398x298
layer at (0,0) size 381x294
RenderCanvas at (0,0) size 381x294
+ layer at (0,0) size 381x8
+ RenderBlock {HTML} at (0,0) size 381x8
+ RenderBody {BODY} at (8,8) size 365x0
RenderFrame {FRAME} at (0,302) size 398x298
layer at (0,0) size 381x294
RenderCanvas at (0,0) size 381x294
+ layer at (0,0) size 381x8
+ RenderBlock {HTML} at (0,0) size 381x8
+ RenderBody {BODY} at (8,8) size 365x0
RenderFrame {FRAME} at (0,182) size 800x418
layer at (0,0) size 783x414
RenderCanvas at (0,0) size 783x414
+ layer at (0,0) size 783x8
+ RenderBlock {HTML} at (0,0) size 783x8
+ RenderBody {BODY} at (8,8) size 767x0
RenderPartObject {IFRAME} at (124,0) size 200x200
layer at (0,0) size 183x196
RenderCanvas at (0,0) size 183x196
+ layer at (0,0) size 183x8
+ RenderBlock {HTML} at (0,0) size 183x8
+ RenderBody {BODY} at (8,8) size 167x0
RenderText {TEXT} at (0,0) size 0x0
RenderBlock {DIV} at (0,204) size 784x18
RenderText {TEXT} at (0,0) size 74x18
RenderFrame {FRAME} at (0,402) size 800x197
layer at (0,0) size 783x193
RenderCanvas at (0,0) size 783x193
+ layer at (0,0) size 783x8
+ RenderBlock {HTML} at (0,0) size 783x8
+ RenderBody {BODY} at (8,8) size 767x0
+2005-04-26 Adele Peterson <adele@apple.com>
+
+ Fixed by Darin, reviewed by me.
+
+ Fix for <rdar://problem/4084029> designMode doesn't allow editing when iframe src = "" or = about:blank
+
+ This change will add an HTML element for empty documents. Now that there will be an HTMLDocument in this case,
+ a body will also be created (see rdar://problem/3758785). This was preventing frames with empty documents from
+ being editable.
+
+ * khtml/html/htmlparser.cpp: (KHTMLParser::finished):
+
+ Updated these tests to expect the HTML and BODY elements
+ * layout-tests/fast/flexbox/016-expected.txt:
+ * layout-tests/fast/frames/001-expected.txt:
+ * layout-tests/fast/frames/002-expected.txt:
+ * layout-tests/fast/frames/contentWindow_Frame-expected.txt:
+ * layout-tests/fast/frames/contentWindow_iFrame-expected.txt:
+ * layout-tests/fast/frames/empty-frame-src-expected.txt:
+
2005-04-26 Maciej Stachowiak <mjs@apple.com>
New test case for <rdar://problem/4092136> reproducible crash in KJS::kjs_fast_realloc loading maps.google.com
void KHTMLParser::finished()
{
+ // In the case of a completely empty document, here's the place to create the HTML element.
+ if (current->isDocumentNode() && current->firstChild() == 0) {
+ insertNode(new HTMLHtmlElementImpl(document));
+ }
+
// This ensures that "current" is not left pointing to a node when the document is destroyed.
freeBlock();
setCurrent(0);