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

trey trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:16:25 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit bf7d82ff6ae468bd79a4b4e4fe16c24c0ec34e38
Author: trey <trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Dec 19 03:44:15 2002 +0000

    WebCore:
    
    	3098388 - Pressing the back button goes back two levels at allmusic.com
    
    	In support of the fix for this bug, WebCore passes khtml's lockHistory setting
    	up through the bridge.
    
            Reviewed by Darin
    
            * kwq/KWQKHTMLPart.mm:
            (KWQKHTMLPart::redirectionTimerStartedOrStopped):  Pass it along.
            * kwq/WebCoreBridge.h:
    
    WebKit:
    
    	3098388 - Pressing the back button goes back two levels at allmusic.com
    
    	I rewrote the logic we use to decide whether a given redirect should be
    	treated as part of the previous navigation.  We make use of WebCore's
    	lockHistory setting, the delay time and the frame state.
    
            Reviewed by Darin.
    
            * WebCoreSupport.subproj/WebBridge.m:
            (-[WebBridge reportClientRedirectToURL:delay:fireDate:lockHistory:]):
    	Pass lockHistory up to the frame.
            * WebView.subproj/WebFramePrivate.h:
            * WebView.subproj/WebFramePrivate.m:
            (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:]):
    	New logic.  No quick summary, best to read the code.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index aa22992..29f2231 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,16 @@
+2002-12-18  Trey Matteson  <trey at apple.com>
+
+	3098388 - Pressing the back button goes back two levels at allmusic.com
+
+	In support of the fix for this bug, WebCore passes khtml's lockHistory setting
+	up through the bridge.
+
+        Reviewed by Darin
+
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::redirectionTimerStartedOrStopped):  Pass it along.
+        * kwq/WebCoreBridge.h:
+
 2002-12-18  Maciej Stachowiak  <mjs at apple.com>
 
 	Reviewed by John.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index aa22992..29f2231 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,16 @@
+2002-12-18  Trey Matteson  <trey at apple.com>
+
+	3098388 - Pressing the back button goes back two levels at allmusic.com
+
+	In support of the fix for this bug, WebCore passes khtml's lockHistory setting
+	up through the bridge.
+
+        Reviewed by Darin
+
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::redirectionTimerStartedOrStopped):  Pass it along.
+        * kwq/WebCoreBridge.h:
+
 2002-12-18  Maciej Stachowiak  <mjs at apple.com>
 
 	Reviewed by John.
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 49b8878..6667715 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -306,7 +306,8 @@ void KWQKHTMLPart::redirectionTimerStartedOrStopped()
     if (d->m_redirectionTimer.isActive()) {
         [_bridge reportClientRedirectToURL:d->m_redirectURL.getNSString()
                                      delay:d->m_delayRedirect
-                                 fireDate:[d->m_redirectionTimer.getNSTimer() fireDate]];
+                                  fireDate:[d->m_redirectionTimer.getNSTimer() fireDate]
+                               lockHistory:d->m_redirectLockHistory];
     } else {
         [_bridge reportClientRedirectCancelled];
     }
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index 87a8da4..f7a1105 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -221,7 +221,7 @@ enum FrameBorderStyle {
 - (void)objectLoadedFromCacheWithURL:(NSString *)URL response:(id)response size:(unsigned)bytes;
 - (BOOL)isReloading;
 
-- (void)reportClientRedirectToURL:(NSString *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date;
+- (void)reportClientRedirectToURL:(NSString *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date lockHistory:(BOOL)lockHistory;
 - (void)reportClientRedirectCancelled;
 
 - (void)unfocusWindow;
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index dbbd53b..e744a24 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,21 @@
+2002-12-18  Trey Matteson  <trey at apple.com>
+
+	3098388 - Pressing the back button goes back two levels at allmusic.com
+
+	I rewrote the logic we use to decide whether a given redirect should be
+	treated as part of the previous navigation.  We make use of WebCore's
+	lockHistory setting, the delay time and the frame state.
+
+        Reviewed by Darin.
+
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge reportClientRedirectToURL:delay:fireDate:lockHistory:]):
+	Pass lockHistory up to the frame.
+        * WebView.subproj/WebFramePrivate.h:
+        * WebView.subproj/WebFramePrivate.m:
+        (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:]):
+	New logic.  No quick summary, best to read the code.
+
 2002-12-18  Chris Blumenberg  <cblu at apple.com>
 
 	Reject the RealPlayer plug-in because we know it doesn't work.
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index a9a9833..96a025b 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -231,9 +231,9 @@
     return [[[self dataSource] request] requestCachePolicy] == WebRequestCachePolicyLoadFromOrigin;
 }
 
-- (void)reportClientRedirectToURL:(NSString *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date
+- (void)reportClientRedirectToURL:(NSString *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date lockHistory:(BOOL)lockHistory
 {
-    [frame _clientRedirectedTo:[NSURL _web_URLWithString:URL] delay:seconds fireDate:date];
+    [frame _clientRedirectedTo:[NSURL _web_URLWithString:URL] delay:seconds fireDate:date lockHistory:lockHistory];
 }
 
 - (void)reportClientRedirectCancelled
diff --git a/WebKit/WebView.subproj/WebFramePrivate.h b/WebKit/WebView.subproj/WebFramePrivate.h
index 5117f14..051ad21 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.h
+++ b/WebKit/WebView.subproj/WebFramePrivate.h
@@ -128,7 +128,7 @@ typedef enum {
 - (void)_loadURL:(NSURL *)URL intoChild:(WebFrame *)childFrame;
 - (void)_postWithURL:(NSURL *)URL data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event;
 
-- (void)_clientRedirectedTo:(NSURL *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date;
+- (void)_clientRedirectedTo:(NSURL *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date lockHistory:(BOOL)lockHistory;
 - (void)_clientRedirectCancelled;
 
 - (void)_textSizeMultiplierChanged;
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index 5519bbf..5f8c440 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -1497,17 +1497,31 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     [request release];
 }
 
-- (void)_clientRedirectedTo:(NSURL *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date
+- (void)_clientRedirectedTo:(NSURL *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date lockHistory:(BOOL)lockHistory
 {
     LOG(Redirect, "Client redirect to: %@", URL);
 
     [[[self controller] locationChangeDelegate] clientWillRedirectTo:URL delay:seconds fireDate:date forFrame:self];
     // If a "quick" redirect comes in an, we set a special mode so we treat the next
     // load as part of the same navigation.
-    // If we don't have a dataSource, we have no "original" load on which to base a redirect,
-    // so we better just treat the redirect as a normal load.
-    if (seconds <= 1.0 && [self dataSource]) {
-        _private->quickRedirectComing = YES;
+
+    if (![self dataSource]) {
+        // If we don't have a dataSource, we have no "original" load on which to base a redirect,
+        // so we better just treat the redirect as a normal load.
+        _private->quickRedirectComing = NO;
+    } else if (lockHistory) {
+        // meta-refresh, or another case WC thinks doens't need a b/f item
+        _private->quickRedirectComing = (seconds <= 1.0);
+    } else {
+        // a redirection stemming from a JS call
+        if ([[[self controller] mainFrame] _state] == WebFrameStateCompleting) {
+            // Happened as part of closing a doc, so it's part of an onload
+            // I think delay will always be zero, but it's fine to go with the <1 policy
+            _private->quickRedirectComing = (seconds <= 1.0);
+        } else {
+            // Some other JS action, perhaps handling a user event.  Treat like a normal nav.
+            _private->quickRedirectComing = NO;
+        }
     }
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list