Reviewed by Darin.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Aug 2004 22:21:01 +0000 (22:21 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Aug 2004 22:21:01 +0000 (22:21 +0000)
- fixed <rdar://problem/3752509> Pop up windows not showing up within SAP's BW Module (changing location.href on new window created by window.open)

(actually the previous fix for this bug was mostly correct, but
this additional change is needed to avoid the regression in
<rdar://problem/3751025> REGRESSION: website rejects Safari 125.9
as "need to upgrade to IE 6", but didn't reject 125.8

So if merging for a software update, make sure to include both
this and the previous fix.

        * khtml/html/htmltokenizer.cpp:
        (khtml::HTMLTokenizer::write): When there is an immediate reidrect pending,
make sure to stop tokenizing, because we need to make sure no further
script tags are processed beyond the one that triggered the redirect.
        * khtml/khtml_part.cpp:
        (KHTMLPart::isImmediateRedirectPending): New method to allow
checking if a redirect is pending.
* khtml/khtml_part.h:

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/html/htmltokenizer.cpp
WebCore/khtml/khtml_part.cpp
WebCore/khtml/khtml_part.h

index 7b5cc68..a7ee455 100644 (file)
@@ -1,3 +1,26 @@
+2004-08-13  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed <rdar://problem/3752509> Pop up windows not showing up within SAP's BW Module (changing location.href on new window created by window.open)
+       
+       (actually the previous fix for this bug was mostly correct, but
+       this additional change is needed to avoid the regression in
+       <rdar://problem/3751025> REGRESSION: website rejects Safari 125.9
+       as "need to upgrade to IE 6", but didn't reject 125.8
+
+       So if merging for a software update, make sure to include both
+       this and the previous fix.
+       
+        * khtml/html/htmltokenizer.cpp:
+        (khtml::HTMLTokenizer::write): When there is an immediate reidrect pending,
+       make sure to stop tokenizing, because we need to make sure no further
+       script tags are processed beyond the one that triggered the redirect.
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::isImmediateRedirectPending): New method to allow
+       checking if a redirect is pending.
+       * khtml/khtml_part.h:
+
 2004-08-15  David Hyatt  <hyatt@apple.com>
 
        Fix the blank textarea problem by ensuring that any change to a <textarea>'s DOM children causes the form control
index e6241e7..dffbf38 100644 (file)
@@ -1483,7 +1483,7 @@ void HTMLTokenizer::write(const TokenizerString &str, bool appendData)
 //     if (Entity)
 //         parseEntity(src, dest);
 
-    while (!src.isEmpty()) {
+    while (!src.isEmpty() && (!parser->doc()->part() || !parser->doc()->part()->isImmediateRedirectPending())) {
         // do we need to enlarge the buffer?
         checkBuffer();
 
index 04e877c..0948d36 100644 (file)
@@ -1957,6 +1957,11 @@ void KHTMLPart::scheduleRedirection( double delay, const QString &url, bool doLo
     }
 }
 
+bool KHTMLPart::isImmediateRedirectPending()
+{
+  return d->m_scheduledRedirection != noRedirectionScheduled && d->m_delayRedirect == 0;
+}
+
 void KHTMLPart::scheduleHistoryNavigation( int steps )
 {
     d->m_scheduledRedirection = historyNavigationScheduled;
index 7b5de8b..b0170c5 100644 (file)
@@ -390,6 +390,8 @@ public:
    */
   void scheduleRedirection( double delay, const QString &url, bool lockHistory = true, bool userGesture = false );
 
+  bool isImmediateRedirectPending() const;
+
   /**
    * Schedules a history navigation operation (go forward, go back, etc.).
    * This is used for JavaScript-triggered location changes.