Reviewed by mjs.
authorkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Jan 2005 02:30:52 +0000 (02:30 +0000)
committerkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Jan 2005 02:30:52 +0000 (02:30 +0000)
Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari

        * khtml/khtml_part.cpp:
        (KHTMLPart::processObjectRequest): m_bComplete was never true for frames generated by Javascript due to our synchronous loading and as a result, scheduled redirects wouldn't fire in KHTMLPart::scheduleLocationChange().  By virtue of being an empty document, a document is complete.  In this special case it's safe at this point to call checkCompleted() which sets m_bComplete true.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/khtml_part.cpp

index b47a041d405ecdc2e92bdce01be54c1e5fcd25c1..b6f0293213917c6a2ea0073c6a71fc9b63be2c5b 100644 (file)
@@ -1,3 +1,12 @@
+2005-01-06  Kevin Decker  <kdecker@apple.com>
+
+        Reviewed by mjs.
+
+       Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::processObjectRequest): m_bComplete was never true for frames generated by Javascript due to our synchronous loading and as a result, scheduled redirects wouldn't fire in KHTMLPart::scheduleLocationChange().  By virtue of being an empty document, a document is complete.  In this special case it's safe at this point to call checkCompleted() which sets m_bComplete true. 
+
 === Safari-178 ===
 
 2005-01-06  David Harrison  <harrison@apple.com>
index 67b64c4e2138dafe0151d4403cf5daaa3db1057f..c956605fdef4082c7688353550a64a78b89708a1 100644 (file)
@@ -3289,16 +3289,20 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
     child->m_extension->setURLArgs( child->m_args );
 
 #if APPLE_CHANGES
-    // In these cases, the synchronous load would have finished
-    // before we could connect the signals, so make sure to send the
-    // completed() signal for the child by hand:
-    if (url.isEmpty() || url.url() == "about:blank") {
+  // In these cases, the synchronous load would have finished
+  // before we could connect the signals, so make sure to send the 
+  // completed() signal for the child by hand
+  // FIXME: In this case the KHTMLPart will have finished loading before 
+  // it's being added to the child list.  It would be a good idea to
+  // create the child first, then invoke the loader separately  
+  if (url.isEmpty() || url.url() == "about:blank") {
       ReadOnlyPart *readOnlyPart = child->m_part;
       KHTMLPart *part = static_cast<KHTMLPart *>(readOnlyPart);
       if (part && part->inherits("KHTMLPart")) {
-        part->completed();
+          part->completed();
+          part->checkCompleted();
       }
-    }
+  }
 #else
   if(url.protocol() == "javascript" || url.url() == "about:blank") {
       if (!child->m_part->inherits("KHTMLPart"))