Reviewed by Darin.
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Feb 2005 23:22:33 +0000 (23:22 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Feb 2005 23:22:33 +0000 (23:22 +0000)
        fix for <rdar://problem/4004004> no need to add body element for xml documents

        In the fix for <rdar://problem/3758785> we decided to add a body element when closing a document
        to ensure that the onload handler would fire.  This is unnecessary for xml documents,
        so now we also check to see if we're dealing with an html document before adding the body element.

        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8583 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/xml/dom_docimpl.cpp

index c528d8f..3079dd7 100644 (file)
@@ -2,6 +2,18 @@
 
         Reviewed by Darin.
 
+        fix for <rdar://problem/4004004> no need to add body element for xml documents
+
+        In the fix for <rdar://problem/3758785> we decided to add a body element when closing a document 
+        to ensure that the onload handler would fire.  This is unnecessary for xml documents, 
+        so now we also check to see if we're dealing with an html document before adding the body element.
+
+        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): 
+
+2005-02-11  Adele Amchan  <adele@apple.com>
+
+        Reviewed by Darin.
+
         * layout-tests/apple-only/base/www.excite.com/index-expected.txt: updates tests because of custom tag change.
         * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
         * layout-tests/apple-only/base/www.time.com/index-expected.txt:
index 575da11..446be85 100644 (file)
@@ -1391,7 +1391,7 @@ void DocumentImpl::close()
         // In the case of Radar 3758785, the window.onload was set in some javascript, but never fired because there was no body.  
         // This behavior now matches Firefox and IE.
         HTMLElementImpl *body = this->body();
-        if (!body) {
+        if (!body && isHTMLDocument()) {
             NodeImpl *de = documentElement();
             if (de) {
                 body = new HTMLBodyElementImpl(docPtr());
@@ -1405,12 +1405,12 @@ void DocumentImpl::close()
         if (body) {
             dispatchImageLoadEventsNow();
             body->dispatchWindowEvent(EventImpl::LOAD_EVENT, false, false);
-        }
 
 #ifdef INSTRUMENT_LAYOUT_SCHEDULING
-        if (!ownerElement())
-            printf("onload fired at %d\n", elapsedTime());
+            if (!ownerElement())
+                printf("onload fired at %d\n", elapsedTime());
 #endif
+        }
 
         m_processingLoadEvent = false;
     }