Fixed by Darin, reviewed by me.
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Apr 2005 05:52:08 +0000 (05:52 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Apr 2005 05:52:08 +0000 (05:52 +0000)
        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

LayoutTests/fast/flexbox/016-expected.txt
LayoutTests/fast/frames/001-expected.txt
LayoutTests/fast/frames/002-expected.txt
LayoutTests/fast/frames/contentWindow_Frame-expected.txt
LayoutTests/fast/frames/contentWindow_iFrame-expected.txt
LayoutTests/fast/frames/empty-frame-src-expected.txt
WebCore/ChangeLog-2005-08-23
WebCore/khtml/html/htmlparser.cpp

index 823a64930b55db48e1e65a9bae4cc66a7c5494c2..59c90c77a46e8cd30860fd271da532a863208c3d 100644 (file)
@@ -15,6 +15,9 @@ layer at (0,0) size 812x585
         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. "
index 412e8b3f1921f75ad908d86d523c8aeec998e7f1..cf0e31aec7f2db904fbc2f7c3c27b34a33592bfd 100644 (file)
@@ -9,14 +9,23 @@ layer at (0,0) size 800x600
       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
index 737eeab7b8eca893257ecc7cce7b74cd13b3c038..7a27b65cf1b10f93bea1c6857c77cea0714eb60b 100644 (file)
@@ -6,10 +6,19 @@ layer at (0,0) size 800x600
       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
index 9764a5d639ebc0a43bef445642b8c75e71bab9dd..5838c7542d12277eb67887f2489562d4dcee82e6 100644 (file)
@@ -15,3 +15,6 @@ layer at (0,0) size 800x600
       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
index 5189ce316d48a1ed09260f6635188e644e887f86..f5fce1a5aa58f428fecce73510540acc7887ceb0 100644 (file)
@@ -9,6 +9,9 @@ layer at (0,0) size 800x600
         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
index 6fa77023c0e24dc043f67fb4de742c12fc240a68..af19722e23173922a2ec302fabaa95ba0ea211a5 100644 (file)
@@ -18,3 +18,6 @@ layer at (0,0) size 800x600
       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
index 7b8af828a19cb6c59aa5196a5cbe34877b76b2b5..c63cd7e364708be3f2e244e3da737139926d1144 100644 (file)
@@ -1,3 +1,23 @@
+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
index 899d99798123f71f1d638eaf3092f86d88670c9e..896af996b1c401ae7d0a2fb965d14c3154530427 100644 (file)
@@ -1511,6 +1511,11 @@ void KHTMLParser::startBody()
 
 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);