[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:24:35 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit cd0f59e609a2545bafd3e1607ad0f0f48a5a2f61
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Feb 13 22:40:07 2003 +0000

            Reviewed by Trey.
    
            - fixed 3162806 -- REGRESSION: handle == h assertion when clicking headphone link at cnn.com
    
            * khtml/ecma/kjs_window.cpp: (HistoryFunc::tryCall): Instead of trying to actually do the
            history navigation here, call the new KHTMLPart::scheduleHistoryNavigation.
    
            * khtml/khtml_part.cpp:
            (KHTMLPart::init): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
            (KHTMLPart::openURL): Ditto.
            (KHTMLPart::createJavaContext): Ditto.
            (KHTMLPart::clear): Also initialize m_scheduledRedirection to noRedirectionScheduled.
            (KHTMLPart::checkCompleted): Use m_scheduledRedirection rather than m_redirectURL to check
            whether a redirection is already in progress.
            (KHTMLPart::scheduleRedirection): Use m_scheduledRedirection rather than m_redirectURL to check
            whether a redirection is already in progress, and set m_scheduledRedirection to redirectionScheduled.
            (KHTMLPart::scheduleHistoryNavigation): Added. Does the same thing as scheduleRedirection,
            but always uses a delay of 0, sets m_scheduledRedirection to historyNavigationScheduled, and
            sets m_scheduledHistoryNavigationSteps.
            (KHTMLPart::slotRedirect): Add an if statement that does the history navigation. The code is
            moved here from HistoryFunc::tryCall. Also set m_scheduledRedirection to noRedirectionScheduled.
            (KHTMLPart::urlSelected): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
            (KHTMLPart::requestObject): Ditto.
            (KHTMLPart::submitForm): Ditto.
            (KHTMLPart::slotParentCompleted): Use m_scheduledRedirection rather than m_redirectURL to check
            whether a redirection is already in progress.
            (KHTMLPart::setZoomFactor): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
    
            * khtml/khtml_part.h: Added scheduleHistoryNavigation.
            * khtml/khtmlpart_p.h: Added RedirectionScheduled enum. Added more #if !APPLE_CHANGES to leave out
            a bunch more fields we don't use. Added m_scheduledRedirection and m_scheduledHistoryNavigationSteps.
            * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Check and don't do anything
            if the timer was being used for history redirection.
    
            * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
            Check m_scheduledRedirection instead of m_redirectURL to figure out if there is a redirection
            in progress. Not strictly necessary since we really don't care about the history case here,
            but consistent with the rest.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3646 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 847fcb5..960cb5c 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,44 @@
+2003-02-13  Darin Adler  <darin at apple.com>
+
+        Reviewed by Trey.
+
+        - fixed 3162806 -- REGRESSION: handle == h assertion when clicking headphone link at cnn.com
+
+        * khtml/ecma/kjs_window.cpp: (HistoryFunc::tryCall): Instead of trying to actually do the
+        history navigation here, call the new KHTMLPart::scheduleHistoryNavigation.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
+        (KHTMLPart::openURL): Ditto.
+        (KHTMLPart::createJavaContext): Ditto.
+        (KHTMLPart::clear): Also initialize m_scheduledRedirection to noRedirectionScheduled.
+        (KHTMLPart::checkCompleted): Use m_scheduledRedirection rather than m_redirectURL to check
+        whether a redirection is already in progress.
+        (KHTMLPart::scheduleRedirection): Use m_scheduledRedirection rather than m_redirectURL to check
+        whether a redirection is already in progress, and set m_scheduledRedirection to redirectionScheduled.
+        (KHTMLPart::scheduleHistoryNavigation): Added. Does the same thing as scheduleRedirection,
+        but always uses a delay of 0, sets m_scheduledRedirection to historyNavigationScheduled, and
+        sets m_scheduledHistoryNavigationSteps.
+        (KHTMLPart::slotRedirect): Add an if statement that does the history navigation. The code is
+        moved here from HistoryFunc::tryCall. Also set m_scheduledRedirection to noRedirectionScheduled.
+        (KHTMLPart::urlSelected): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
+        (KHTMLPart::requestObject): Ditto.
+        (KHTMLPart::submitForm): Ditto.
+        (KHTMLPart::slotParentCompleted): Use m_scheduledRedirection rather than m_redirectURL to check
+        whether a redirection is already in progress.
+        (KHTMLPart::setZoomFactor): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
+
+        * khtml/khtml_part.h: Added scheduleHistoryNavigation.
+        * khtml/khtmlpart_p.h: Added RedirectionScheduled enum. Added more #if !APPLE_CHANGES to leave out
+        a bunch more fields we don't use. Added m_scheduledRedirection and m_scheduledHistoryNavigationSteps.
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Check and don't do anything
+        if the timer was being used for history redirection.
+
+        * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
+        Check m_scheduledRedirection instead of m_redirectURL to figure out if there is a redirection
+        in progress. Not strictly necessary since we really don't care about the history case here,
+        but consistent with the rest.
+
 2003-02-13  Chris Blumenberg  <cblu at apple.com>
 
         Fixed WebKit typos found by Peter Wilson.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 847fcb5..960cb5c 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,44 @@
+2003-02-13  Darin Adler  <darin at apple.com>
+
+        Reviewed by Trey.
+
+        - fixed 3162806 -- REGRESSION: handle == h assertion when clicking headphone link at cnn.com
+
+        * khtml/ecma/kjs_window.cpp: (HistoryFunc::tryCall): Instead of trying to actually do the
+        history navigation here, call the new KHTMLPart::scheduleHistoryNavigation.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
+        (KHTMLPart::openURL): Ditto.
+        (KHTMLPart::createJavaContext): Ditto.
+        (KHTMLPart::clear): Also initialize m_scheduledRedirection to noRedirectionScheduled.
+        (KHTMLPart::checkCompleted): Use m_scheduledRedirection rather than m_redirectURL to check
+        whether a redirection is already in progress.
+        (KHTMLPart::scheduleRedirection): Use m_scheduledRedirection rather than m_redirectURL to check
+        whether a redirection is already in progress, and set m_scheduledRedirection to redirectionScheduled.
+        (KHTMLPart::scheduleHistoryNavigation): Added. Does the same thing as scheduleRedirection,
+        but always uses a delay of 0, sets m_scheduledRedirection to historyNavigationScheduled, and
+        sets m_scheduledHistoryNavigationSteps.
+        (KHTMLPart::slotRedirect): Add an if statement that does the history navigation. The code is
+        moved here from HistoryFunc::tryCall. Also set m_scheduledRedirection to noRedirectionScheduled.
+        (KHTMLPart::urlSelected): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
+        (KHTMLPart::requestObject): Ditto.
+        (KHTMLPart::submitForm): Ditto.
+        (KHTMLPart::slotParentCompleted): Use m_scheduledRedirection rather than m_redirectURL to check
+        whether a redirection is already in progress.
+        (KHTMLPart::setZoomFactor): Add a few more #if !APPLE_CHANGES so we can leave out more unused fields.
+
+        * khtml/khtml_part.h: Added scheduleHistoryNavigation.
+        * khtml/khtmlpart_p.h: Added RedirectionScheduled enum. Added more #if !APPLE_CHANGES to leave out
+        a bunch more fields we don't use. Added m_scheduledRedirection and m_scheduledHistoryNavigationSteps.
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Check and don't do anything
+        if the timer was being used for history redirection.
+
+        * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
+        Check m_scheduledRedirection instead of m_redirectURL to figure out if there is a redirection
+        in progress. Not strictly necessary since we really don't care about the history case here,
+        but consistent with the rest.
+
 2003-02-13  Chris Blumenberg  <cblu at apple.com>
 
         Fixed WebKit typos found by Peter Wilson.
diff --git a/WebCore/khtml/ecma/kjs_window.cpp b/WebCore/khtml/ecma/kjs_window.cpp
index 0ba9fcf..382e492 100644
--- a/WebCore/khtml/ecma/kjs_window.cpp
+++ b/WebCore/khtml/ecma/kjs_window.cpp
@@ -1951,21 +1951,12 @@ Value HistoryFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
     return err;
   }
   History *history = static_cast<History *>(thisObj.imp());
-  KParts::BrowserExtension *ext = history->part->browserExtension();
 
   Value v = args[0];
   Number n;
   if(!v.isNull())
     n = v.toInteger(exec);
 
-  if(!ext)
-    return Undefined();
-
-  KParts::BrowserInterface *iface = ext->browserInterface();
-
-  if ( !iface )
-    return Undefined();
-
   int steps;
   switch (id) {
   case History::Back:
@@ -1981,18 +1972,7 @@ Value HistoryFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
     return Undefined();
   }
 
-  // Special case for go(0) from a frame -> reload only the frame
-  // go(i!=0) from a frame navigates into the history of the frame only,
-  // in both IE and NS (but not in Mozilla).... we can't easily do that
-  // in Konqueror...
-  if (!steps) // add && history->part->parentPart() to get only frames, but doesn't matter
-  {
-    history->part->openURL( history->part->url() ); /// ## need args.reload=true?
-  } else
-  {
-    iface->callMethod( "goHistory(int)", steps );
-//      emit ext->goHistory(steps);
-  }
+  history->part->scheduleHistoryNavigation(steps);
   return Undefined();
 }
 
diff --git a/WebCore/khtml/html/html_documentimpl.cpp b/WebCore/khtml/html/html_documentimpl.cpp
index 70e8e5a..61f5cc8 100644
--- a/WebCore/khtml/html/html_documentimpl.cpp
+++ b/WebCore/khtml/html/html_documentimpl.cpp
@@ -332,7 +332,7 @@ void HTMLDocumentImpl::close()
     // First fire the onload.
     bool doload = !parsing() && m_tokenizer;
     
-    bool wasNotRedirecting = !view() || view()->part()->d->m_redirectURL.isEmpty();
+    bool wasNotRedirecting = !view() || view()->part()->d->m_scheduledRedirection == noRedirectionScheduled;
     
     if (body() && doload) {
         dispatchImageLoadEventsNow();
@@ -342,8 +342,9 @@ void HTMLDocumentImpl::close()
     // Make sure both the initial layout and reflow happen after the onload
     // fires. This will improve onload scores, and other browsers do it.
     // If they wanna cheat, we can too. -dwh
-    if (doload && wasNotRedirecting
-            && view() && !view()->part()->d->m_redirectURL.isEmpty() && view()->part()->d->m_delayRedirect == 0
+    if (doload && wasNotRedirecting && view()
+            && view()->part()->d->m_scheduledRedirection != noRedirectionScheduled
+            && view()->part()->d->m_delayRedirect == 0
             && m_startTime.elapsed() < 1000) {
         static int redirectCount = 0;
         if (redirectCount++ % 4) {
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index ca4dec3..5449d04 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -99,6 +99,8 @@ using namespace DOM;
 using khtml::RenderText;
 using khtml::TextRunArray;
 
+using KParts::BrowserInterface;
+
 namespace khtml {
     class PartStyleSheetLoader : public CachedObjectClient
     {
@@ -177,14 +179,16 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
   d->m_view = view;
   setWidget( d->m_view );
 
+#if !APPLE_CHANGES
   d->m_guiProfile = prof;
+#endif
   d->m_extension = new KHTMLPartBrowserExtension( this );
   d->m_hostExtension = new KHTMLPartBrowserHostExtension( this );
 
   d->m_bSecurityInQuestion = false;
-  d->m_paLoadImages = 0;
   d->m_bMousePressed = false;
 #if !APPLE_CHANGES
+  d->m_paLoadImages = 0;
   d->m_paViewDocument = new KAction( i18n( "View Document Source" ), 0, this, SLOT( slotViewDocumentSource() ), actionCollection(), "viewDocumentSource" );
   d->m_paViewFrame = new KAction( i18n( "View Frame Source" ), 0, this, SLOT( slotViewFrameSource() ), actionCollection(), "viewFrameSource" );
   d->m_paSaveBackground = new KAction( i18n( "Save &Background Image As..." ), 0, this, SLOT( slotSaveBackground() ), actionCollection(), "saveBackground" );
@@ -433,9 +437,12 @@ bool KHTMLPart::openURL( const KURL &url )
     closeURL();
   }
 
+#if !APPLE_CHANGES
   args.metaData().insert("main_frame_request", parentPart() == 0 ? "TRUE" : "FALSE" );
   args.metaData().insert("ssl_was_in_use", d->m_ssl_in_use ? "TRUE" : "FALSE" );
   args.metaData().insert("ssl_activate_warnings", "TRUE" );
+#endif
+
   if (d->m_restored)
      d->m_cachePolicy = KIO::CC_Cache;
   else if (args.reload)
@@ -750,15 +757,15 @@ KJavaAppletContext *KHTMLPart::createJavaContext()
 {
 #ifndef Q_WS_QWS
   if ( !d->m_javaContext ) {
-#if !APPLE_CHANGES
-      d->m_javaContext = new KJavaAppletContext(d->m_dcopobject);
-#else
+#if APPLE_CHANGES
       d->m_javaContext = new KJavaAppletContext(d->m_dcopobject, this);
-#endif
+#else
+      d->m_javaContext = new KJavaAppletContext(d->m_dcopobject);
       connect( d->m_javaContext, SIGNAL(showStatus(const QString&)),
                this, SIGNAL(setStatusBarText(const QString&)) );
       connect( d->m_javaContext, SIGNAL(showDocument(const QString&, const QString&)),
                this, SLOT(slotShowDocument(const QString&, const QString&)) );
+#endif
   }
 
   return d->m_javaContext;
@@ -971,6 +978,7 @@ void KHTMLPart::clear()
   d->m_javaContext = 0;
 #endif
 
+  d->m_scheduledRedirection = noRedirectionScheduled;
   d->m_delayRedirect = 0;
   d->m_redirectURL = QString::null;
   d->m_redirectLockHistory = true;
@@ -1698,7 +1706,7 @@ void KHTMLPart::checkCompleted()
   } // if (d->m_view)
 #endif
 
-  if ( !d->m_redirectURL.isEmpty() )
+  if ( d->m_scheduledRedirection != noRedirectionScheduled )
   {
     // Do not start redirection for frames here! That action is
     // deferred until the parent emits a completed signal.
@@ -1815,8 +1823,9 @@ void KHTMLPart::scheduleRedirection( double delay, const QString &url, bool doLo
     kdDebug(6050) << "KHTMLPart::scheduleRedirection delay=" << delay << " url=" << url << endl;
     if (delay < 0 || delay > INT_MAX / 1000)
       return;
-    if( d->m_redirectURL.isEmpty() || delay < d->m_delayRedirect )
+    if ( d->m_scheduledRedirection == noRedirectionScheduled || delay < d->m_delayRedirect )
     {
+       d->m_scheduledRedirection = redirectionScheduled;
        d->m_delayRedirect = delay;
        d->m_redirectURL = url;
        d->m_redirectLockHistory = doLockHistory;
@@ -1827,9 +1836,41 @@ void KHTMLPart::scheduleRedirection( double delay, const QString &url, bool doLo
     }
 }
 
+void KHTMLPart::scheduleHistoryNavigation( int steps )
+{
+    d->m_scheduledRedirection = historyNavigationScheduled;
+    d->m_delayRedirect = 0;
+    d->m_redirectURL = QString::null;
+    d->m_scheduledHistoryNavigationSteps = steps;
+    if ( d->m_bComplete ) {
+        d->m_redirectionTimer.stop();
+        d->m_redirectionTimer.start( (int)(1000 * d->m_delayRedirect), true );
+    }
+}
+
 void KHTMLPart::slotRedirect()
 {
+    if (d->m_scheduledRedirection == historyNavigationScheduled) {
+        d->m_scheduledRedirection = noRedirectionScheduled;
+
+        // Special case for go(0) from a frame -> reload only the frame
+        // go(i!=0) from a frame navigates into the history of the frame only,
+        // in both IE and NS (but not in Mozilla).... we can't easily do that
+        // in Konqueror...
+        if (d->m_scheduledHistoryNavigationSteps == 0) // add && parentPart() to get only frames, but doesn't matter
+            openURL( url() ); /// ## need args.reload=true?
+        else {
+            if (d->m_extension) {
+                BrowserInterface *interface = d->m_extension->browserInterface();
+                if (interface)
+                    interface->callMethod( "goHistory(int)", d->m_scheduledHistoryNavigationSteps );
+            }
+        }
+        return;
+    }
+  
   QString u = d->m_redirectURL;
+  d->m_scheduledRedirection = noRedirectionScheduled;
   d->m_delayRedirect = 0;
   d->m_redirectURL = QString::null;
   if ( u.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 )
@@ -2438,10 +2479,12 @@ void KHTMLPart::urlSelected( const QString &url, int button, int state, const QS
     args.metaData()["cache"] = "refresh";
   }
 
+#if !APPLE_CHANGES
   args.metaData().insert("main_frame_request",
                          parentPart() == 0 ? "TRUE":"FALSE");
   args.metaData().insert("ssl_was_in_use", d->m_ssl_in_use ? "TRUE":"FALSE");
   args.metaData().insert("ssl_activate_warnings", "TRUE");
+#endif
 
 #if APPLE_CHANGES
   args.metaData()["referrer"] = d->m_referrer;
@@ -2790,11 +2833,13 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
   if (!d->m_referrer.isEmpty() && !child->m_args.metaData().contains( "referrer" ))
     child->m_args.metaData()["referrer"] = d->m_referrer;
 
+#if !APPLE_CHANGES
   child->m_args.metaData().insert("main_frame_request",
                                   parentPart() == 0 ? "TRUE":"FALSE");
   child->m_args.metaData().insert("ssl_was_in_use",
                                   d->m_ssl_in_use ? "TRUE":"FALSE");
   child->m_args.metaData().insert("ssl_activate_warnings", "TRUE");
+#endif
 
   // We want a KHTMLPart if the HTML says <frame src=""> or <frame src="about:blank">
   if ((url.isEmpty() || url.url() == "about:blank") && args.serviceType.isEmpty())
@@ -3153,10 +3198,12 @@ void KHTMLPart::submitForm( const char *action, const QString &url, const QByteA
   if (!d->m_referrer.isEmpty())
      args.metaData()["referrer"] = d->m_referrer;
 
+#if !APPLE_CHANGES
   args.metaData().insert("main_frame_request",
                          parentPart() == 0 ? "TRUE":"FALSE");
   args.metaData().insert("ssl_was_in_use", d->m_ssl_in_use ? "TRUE":"FALSE");
   args.metaData().insert("ssl_activate_warnings", "TRUE");
+#endif
   args.frameName = _target.isEmpty() ? d->m_doc->baseTarget() : _target ;
 
   // Handle mailto: forms
@@ -3272,7 +3319,7 @@ void KHTMLPart::popupMenu( const QString &linkUrl )
 
 void KHTMLPart::slotParentCompleted()
 {
-  if ( !d->m_redirectURL.isEmpty() && !d->m_redirectionTimer.isActive() )
+  if ( d->m_scheduledRedirection != noRedirectionScheduled && !d->m_redirectionTimer.isActive() )
   {
     // kdDebug(6050) << this << ": Child redirection -> " << d->m_redirectURL << endl;
     d->m_redirectionTimer.start( (int)(1000 * d->m_delayRedirect), true );
@@ -3855,8 +3902,10 @@ void KHTMLPart::setZoomFactor (int percent)
       static_cast<KHTMLPart*>( p )->setZoomFactor(d->m_zoomFactor);
     }
 
+#if !APPLE_CHANGES
   d->m_paDecZoomFactor->setEnabled( d->m_zoomFactor > minZoom );
   d->m_paIncZoomFactor->setEnabled( d->m_zoomFactor < maxZoom );
+#endif
 }
 
 void KHTMLPart::setJSStatusBarText( const QString &text )
diff --git a/WebCore/khtml/khtml_part.h b/WebCore/khtml/khtml_part.h
index cb7cd0a..1748bd7 100644
--- a/WebCore/khtml/khtml_part.h
+++ b/WebCore/khtml/khtml_part.h
@@ -368,10 +368,17 @@ public:
 
   /**
    * Schedules a redirection after @p delay seconds.
+   * Note that this is used for JavaScript-triggered location changes as well.
    */
   void scheduleRedirection( double delay, const QString &url, bool lockHistory = true );
 
   /**
+   * Schedules a history navigation operation (go forward, go back, etc.).
+   * This is used for JavaScript-triggered location changes.
+   */
+  void scheduleHistoryNavigation( int steps );
+
+  /**
    * Clears the widget and prepares it for new content.
    *
    * If you want @ref url() to return
diff --git a/WebCore/khtml/khtmlpart_p.h b/WebCore/khtml/khtmlpart_p.h
index 2a7b6d1..75488f2 100644
--- a/WebCore/khtml/khtmlpart_p.h
+++ b/WebCore/khtml/khtmlpart_p.h
@@ -93,6 +93,8 @@ typedef FrameList::Iterator FrameIt;
 
 static int khtml_part_dcop_counter = 0;
 
+enum RedirectionScheduled { noRedirectionScheduled, redirectionScheduled, historyNavigationScheduled };
+
 class KHTMLPartPrivate
 {
 public:
@@ -108,8 +110,8 @@ public:
     m_bLoadEventEmitted = true;
     m_bUnloadEventEmitted = true;
     m_cachePolicy = KIO::CC_Verify;
-    m_manager = 0L;
 #if !APPLE_CHANGES
+    m_manager = 0L;
     m_settings = new KHTMLSettings(*KHTMLFactory::defaultHTMLSettings());
 #endif
     m_bClearing = false;
@@ -124,8 +126,10 @@ public:
     m_jobPercent = 0;
     m_haveEncoding = false;
     m_activeFrame = 0L;
+#if !APPLE_CHANGES
     m_findDialog = 0;
     m_ssl_in_use = false;
+#endif
 #ifndef Q_WS_QWS
     m_javaContext = 0;
 #endif
@@ -150,6 +154,7 @@ public:
 
     m_bFirstData = true;
     m_submitForm = 0;
+    m_scheduledRedirection = noRedirectionScheduled;
     m_delayRedirect = 0;
 
     m_bPendingChildRedirection = false;
@@ -167,7 +172,9 @@ public:
             m_bPluginsForce = part->d->m_bPluginsForce;
             m_bPluginsOverride = part->d->m_bPluginsOverride;
             // Same for SSL settings
+#if !APPLE_CHANGES
             m_ssl_in_use = part->d->m_ssl_in_use;
+#endif
             m_onlyLocalReferences = part->d->m_onlyLocalReferences;
             m_zoomFactor = part->d->m_zoomFactor;
         }
@@ -241,6 +248,7 @@ public:
   QString m_kjsDefaultStatusBarText;
   QString m_lastModified;
 
+#if !APPLE_CHANGES
   // QStrings for SSL metadata
   // Note: When adding new variables don't forget to update ::saveState()/::restoreState()!
   bool m_ssl_in_use;
@@ -253,6 +261,7 @@ public:
           m_ssl_cipher_used_bits,
           m_ssl_cipher_bits,
           m_ssl_cert_state;
+#endif
 
   bool m_bComplete:1;
   bool m_bLoadEventEmitted:1;
@@ -267,9 +276,13 @@ public:
   KIO::CacheControl m_cachePolicy;
   QTimer m_redirectionTimer;
   QTime m_parsetime;
+
+  RedirectionScheduled m_scheduledRedirection;
   double m_delayRedirect;
   QString m_redirectURL;
+  int m_scheduledHistoryNavigationSteps;
 
+#if !APPLE_CHANGES
   KAction *m_paViewDocument;
   KAction *m_paViewFrame;
   KAction *m_paSaveBackground;
@@ -291,6 +304,7 @@ public:
 
   QString m_popupMenuXML;
   KHTMLPart::GUIProfile m_guiProfile;
+#endif
 
   int m_zoomFactor;
 
@@ -317,13 +331,13 @@ public:
   DOM::Node m_mousePressNode; //node under the mouse when the mouse was pressed (set in the mouse handler)
 
 #if APPLE_CHANGES
-    DOM::Node m_initialSelectionStart;
-    long m_initialSelectionStartOffset;
-    DOM::Node m_initialSelectionEnd;
-    long m_initialSelectionEndOffset;
-    bool m_selectionInitiatedWithDoubleClick:1;
-    bool m_selectionInitiatedWithTripleClick:1;
-    bool m_mouseMovedSinceLastMousePress;
+  DOM::Node m_initialSelectionStart;
+  long m_initialSelectionStartOffset;
+  DOM::Node m_initialSelectionEnd;
+  long m_initialSelectionEndOffset;
+  bool m_selectionInitiatedWithDoubleClick:1;
+  bool m_selectionInitiatedWithTripleClick:1;
+  bool m_mouseMovedSinceLastMousePress:1;
 #endif
   DOM::Node m_selectionStart;
   long m_startOffset;
@@ -354,6 +368,7 @@ public:
   unsigned long m_totalObjectCount;
   unsigned int m_jobPercent;
 
+#if !APPLE_CHANGES
   KHTMLFind *m_findDialog;
 
   struct findState
@@ -366,6 +381,7 @@ public:
   };
 
   findState m_lastFindState;
+#endif
 
   //QGuardedPtr<KParts::Part> m_activeFrame;
   KParts::Part * m_activeFrame;
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 7291b14..e19f3a3 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -384,6 +384,11 @@ void KWQKHTMLPart::jumpToSelection()
 
 void KWQKHTMLPart::redirectionTimerStartedOrStopped()
 {
+    // Don't report history navigations, just actual redirection.
+    if (d->m_scheduledRedirection == historyNavigationScheduled) {
+        return;
+    }
+    
     if (d->m_redirectionTimer.isActive()) {
         [_bridge reportClientRedirectToURL:d->m_redirectURL.getNSString()
                                      delay:d->m_delayRedirect

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list