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

mjs mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:26:39 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 438133662de4b295ad2e7010a7a42bf1c9abd186
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Mar 1 02:45:59 2003 +0000

    WebCore:
    
            Reviewed by Trey.
    
    	- fixed 3180170 - filepile.com does not work correctly
    
    	I fixed this by making referrer work correctly for targetted
    	cross-frame and cross-window links. It is still not working right
    	for JavaScript window.open though.
    
            * khtml/ecma/kjs_window.cpp:
            (WindowFunc::tryCall): Add some FIXMEs about not handling referrer right.
            * kwq/KWQKHTMLPart.mm:
            (KWQKHTMLPart::openURL): Pass referrer.
            (KWQKHTMLPart::openURLRequest): Pass referrer.
            (KWQKHTMLPart::submitForm): Pass referrer.
            (KWQKHTMLPart::urlSelected): Pass referrer.
            * kwq/KWQKHTMLPartBrowserExtension.mm:
            (KHTMLPartBrowserExtension::createNewWindow): Pass referrer.
            * kwq/WebCoreBridge.h: Ad referrer argument to loadURL:
    
    WebKit:
    
            Reviewed by Trey.
    
    	- fixed 3180170 - filepile.com does not work correctly
    
    	I fixed this by making referrer work correctly for targetted
    	cross-frame and cross-window links. It is still not working right
    	for JavaScript window.open though.
    
            * WebCoreSupport.subproj/WebBridge.m:
            (-[WebBridge createWindowWithURL:frameName:]): Set referrer.
            (-[WebBridge loadURL:referrer:reload:triggeringEvent:formValues:]): Pass referrer
    	along to frame.
            (-[WebBridge postWithURL:referrer:data:contentType:triggeringEvent:formValues:]):
    	Likewise.
            * WebView.subproj/WebFramePrivate.h:
            * WebView.subproj/WebFramePrivate.m:
            (-[WebFrame _loadItem:fromItem:withLoadType:]): Pass referrer.
    	(-[WebFrame
    	_loadURL:referrer:loadType:triggeringEvent:formValues:]): Use
    	passed-in referrer (link could have been clicked in another
    	frame).
            (-[WebFrame _loadURL:intoChild:]): Pass referrer.
            (-[WebFrame
    	_postWithURL:referrer:data:contentType:triggeringEvent:formValues:]):
    	Use passed-in referrer.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 1208688..ceb8f8a 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,24 @@
+2003-02-28  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by Trey.
+
+	- fixed 3180170 - filepile.com does not work correctly
+
+	I fixed this by making referrer work correctly for targetted
+	cross-frame and cross-window links. It is still not working right
+	for JavaScript window.open though.
+
+        * khtml/ecma/kjs_window.cpp:
+        (WindowFunc::tryCall): Add some FIXMEs about not handling referrer right.
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::openURL): Pass referrer.
+        (KWQKHTMLPart::openURLRequest): Pass referrer.
+        (KWQKHTMLPart::submitForm): Pass referrer.
+        (KWQKHTMLPart::urlSelected): Pass referrer.
+        * kwq/KWQKHTMLPartBrowserExtension.mm:
+        (KHTMLPartBrowserExtension::createNewWindow): Pass referrer.
+        * kwq/WebCoreBridge.h: Ad referrer argument to loadURL:
+
 2003-02-28  David Hyatt  <hyatt at apple.com>
 
 	Exclude <BR>s from the text-dec check.  Really fixes 3185121.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 1208688..ceb8f8a 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,24 @@
+2003-02-28  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by Trey.
+
+	- fixed 3180170 - filepile.com does not work correctly
+
+	I fixed this by making referrer work correctly for targetted
+	cross-frame and cross-window links. It is still not working right
+	for JavaScript window.open though.
+
+        * khtml/ecma/kjs_window.cpp:
+        (WindowFunc::tryCall): Add some FIXMEs about not handling referrer right.
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::openURL): Pass referrer.
+        (KWQKHTMLPart::openURLRequest): Pass referrer.
+        (KWQKHTMLPart::submitForm): Pass referrer.
+        (KWQKHTMLPart::urlSelected): Pass referrer.
+        * kwq/KWQKHTMLPartBrowserExtension.mm:
+        (KHTMLPartBrowserExtension::createNewWindow): Pass referrer.
+        * kwq/WebCoreBridge.h: Ad referrer argument to loadURL:
+
 2003-02-28  David Hyatt  <hyatt at apple.com>
 
 	Exclude <BR>s from the text-dec check.  Really fixes 3185121.
diff --git a/WebCore/khtml/ecma/kjs_window.cpp b/WebCore/khtml/ecma/kjs_window.cpp
index c578e14..c077ff3 100644
--- a/WebCore/khtml/ecma/kjs_window.cpp
+++ b/WebCore/khtml/ecma/kjs_window.cpp
@@ -1224,6 +1224,7 @@ Value WindowFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
                         : QString("_blank");
       if ( uargs.frameName == "_top" )
       {
+	  // FIXME: referrer?
           while ( part->parentPart() )
               part = part->parentPart();
           part->scheduleRedirection(0, url.url(), false/*don't lock history*/);
@@ -1231,6 +1232,7 @@ Value WindowFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
       }
       if ( uargs.frameName == "_parent" )
       {
+	  // FIXME: referrer?
           if ( part->parentPart() )
               part = part->parentPart();
           part->scheduleRedirection(0, url.url(), false/*don't lock history*/);
@@ -1260,6 +1262,7 @@ Value WindowFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
         if (uargs.frameName == "_blank")
           uargs.frameName = QString::null;
         if (!url.isEmpty())
+	  // FIXME: need to pass referrer here
           emit khtmlpart->browserExtension()->openURLRequest(url,uargs);
         return Window::retrieve(khtmlpart); // global object
       } else
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 575923f..91fa12a 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -179,13 +179,13 @@ bool KWQKHTMLPart::openURL(const KURL &url)
     // FIXME: The lack of args here to get the reload flag from
     // indicates a problem in how we use KHTMLPart::processObjectRequest,
     // where we are opening the URL before the args are set up.
-    [_bridge loadURL:url.url().getNSString() reload:NO triggeringEvent:nil formValues:nil];
+    [_bridge loadURL:url.url().getNSString() referrer:[_bridge referrer] reload:NO triggeringEvent:nil formValues:nil];
     return true;
 }
 
 void KWQKHTMLPart::openURLRequest(const KURL &url, const URLArgs &args)
 {
-    [bridgeForFrameName(args.frameName) loadURL:url.url().getNSString() reload:args.reload triggeringEvent:nil formValues:nil];
+    [bridgeForFrameName(args.frameName) loadURL:url.url().getNSString() referrer:[_bridge referrer] reload:args.reload triggeringEvent:nil formValues:nil];
 }
 
 void KWQKHTMLPart::didNotOpenURL(const QString &URL)
@@ -238,6 +238,7 @@ void KWQKHTMLPart::submitForm(const KURL &url, const URLArgs &args)
 
     if (!args.doPost()) {
         [target loadURL:URLString.getNSString()
+	       referrer:[_bridge referrer] 
                  reload:args.reload
         triggeringEvent:_currentEvent
             formValues:_formValues];
@@ -245,6 +246,7 @@ void KWQKHTMLPart::submitForm(const KURL &url, const URLArgs &args)
         QString contentType = args.contentType();
         ASSERT(contentType.startsWith("Content-Type: "));
         [target postWithURL:URLString.getNSString()
+	           referrer:[_bridge referrer] 
                        data:[NSData dataWithBytes:args.postData.data() length:args.postData.size()]
                 contentType:contentType.mid(14).getNSString()
             triggeringEvent:_currentEvent
@@ -273,7 +275,7 @@ void KWQKHTMLPart::slotData(NSString *encoding, bool forceEncoding, const char *
 
 void KWQKHTMLPart::urlSelected(const KURL &url, int button, int state, const URLArgs &args)
 {
-    [bridgeForFrameName(args.frameName) loadURL:url.url().getNSString() reload:args.reload triggeringEvent:_currentEvent formValues:nil];
+    [bridgeForFrameName(args.frameName) loadURL:url.url().getNSString() referrer:[_bridge referrer] reload:args.reload triggeringEvent:_currentEvent formValues:nil];
 }
 
 class KWQPluginPart : public ReadOnlyPart
diff --git a/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm b/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
index e113493..039afa5 100644
--- a/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
+++ b/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
@@ -86,7 +86,7 @@ void KHTMLPartBrowserExtension::createNewWindow(const KURL &url,
 	bridge = [_part->bridge() findFramedNamed:frameName];
 	if (bridge != nil) {
 	    if (!url.isEmpty()) {
-		[bridge loadURL:url.url().getNSString() reload:urlArgs.reload triggeringEvent:nil formValues:nil];
+		[bridge loadURL:url.url().getNSString() referrer:[_part->bridge() referrer] reload:urlArgs.reload triggeringEvent:nil formValues:nil];
 	    }
 	    *partResult = [bridge part];
 	    return;
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index 187ff48..748564e 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -210,8 +210,8 @@ enum FrameBorderStyle {
 /* Creates a name for an frame unnamed in the HTML.  It should produce repeatable results for loads of the same frameset. */
 - (NSString *)generateFrameName;
 
-- (void)loadURL:(NSString *)URL reload:(BOOL)reload triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
-- (void)postWithURL:(NSString *)URL data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
+- (void)loadURL:(NSString *)URL referrer:(NSString *)referrer reload:(BOOL)reload triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
+- (void)postWithURL:(NSString *)URL referrer:(NSString *)referrer data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
 
 - (WebCoreBridge *)createWindowWithURL:(NSString *)URL frameName:(NSString *)name;
 - (void)showWindow;
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index ac951f1..9213e76 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,31 @@
+2003-02-28  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by Trey.
+
+	- fixed 3180170 - filepile.com does not work correctly
+
+	I fixed this by making referrer work correctly for targetted
+	cross-frame and cross-window links. It is still not working right
+	for JavaScript window.open though.
+	
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge createWindowWithURL:frameName:]): Set referrer.
+        (-[WebBridge loadURL:referrer:reload:triggeringEvent:formValues:]): Pass referrer
+	along to frame.
+        (-[WebBridge postWithURL:referrer:data:contentType:triggeringEvent:formValues:]):
+	Likewise.
+        * WebView.subproj/WebFramePrivate.h:
+        * WebView.subproj/WebFramePrivate.m:
+        (-[WebFrame _loadItem:fromItem:withLoadType:]): Pass referrer.
+	(-[WebFrame
+	_loadURL:referrer:loadType:triggeringEvent:formValues:]): Use
+	passed-in referrer (link could have been clicked in another
+	frame).
+        (-[WebFrame _loadURL:intoChild:]): Pass referrer.
+        (-[WebFrame
+	_postWithURL:referrer:data:contentType:triggeringEvent:formValues:]):
+	Use passed-in referrer.
+
 2003-02-28  Darin Adler  <darin at apple.com>
 
         Reviewed by Trey.
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index 8a65c2c..a3782b5 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -108,6 +108,7 @@
 
     if (URL != nil && [URL length] > 0) {
 	request = [WebRequest requestWithURL:[NSURL _web_URLWithString:URL]];
+	[request setReferrer:[self referrer]];
     }
 
     WebController *newController = [[[frame controller] windowOperationsDelegate] createWindowWithRequest:request];
@@ -281,14 +282,14 @@
     [[self dataSource] _setIconURL:[NSURL _web_URLWithString:URL] withType:type];
 }
 
-- (void)loadURL:(NSString *)URL reload:(BOOL)reload triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
+- (void)loadURL:(NSString *)URL referrer:(NSString *)referrer reload:(BOOL)reload triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
 {
-    [frame _loadURL:[NSURL _web_URLWithString:URL] loadType:(reload ? WebFrameLoadTypeReload : WebFrameLoadTypeStandard)  triggeringEvent:event formValues:values];
+    [frame _loadURL:[NSURL _web_URLWithString:URL] referrer:referrer loadType:(reload ? WebFrameLoadTypeReload : WebFrameLoadTypeStandard)  triggeringEvent:event formValues:values];
 }
 
-- (void)postWithURL:(NSString *)URL data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
+- (void)postWithURL:(NSString *)URL referrer:(NSString *)referrer data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
 {
-    [frame _postWithURL:[NSURL _web_URLWithString:URL] data:data contentType:contentType triggeringEvent:event formValues:values];
+    [frame _postWithURL:[NSURL _web_URLWithString:URL] referrer:(NSString *)referrer data:data contentType:contentType triggeringEvent:event formValues:values];
 }
 
 - (NSString *)generateFrameName
diff --git a/WebKit/WebView.subproj/WebFramePrivate.h b/WebKit/WebView.subproj/WebFramePrivate.h
index c87d8a6..742c485 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.h
+++ b/WebKit/WebView.subproj/WebFramePrivate.h
@@ -122,9 +122,9 @@ typedef enum {
 - (void)_invalidatePendingPolicyDecisionCallingDefaultAction:(BOOL)call;
 
 - (void)_goToItem: (WebHistoryItem *)item withLoadType: (WebFrameLoadType)type;
-- (void)_loadURL:(NSURL *)URL loadType:(WebFrameLoadType)loadType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
+- (void)_loadURL:(NSURL *)URL referrer:(NSString *)referrer loadType:(WebFrameLoadType)loadType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
 - (void)_loadURL:(NSURL *)URL intoChild:(WebFrame *)childFrame;
-- (void)_postWithURL:(NSURL *)URL data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
+- (void)_postWithURL:(NSURL *)URL referrer:(NSString *)referrer data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values;
 
 - (void)_clientRedirectedTo:(NSURL *)URL delay:(NSTimeInterval)seconds fireDate:(NSDate *)date lockHistory:(BOOL)lockHistory;
 - (void)_clientRedirectCancelled;
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index a3da505..fdb179c 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -993,7 +993,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     // check for all that as an additional optimization.
     // We also do not do anchor-style navigation if we're posting a form.
     
-    // FIXME: These checks don't match the ones in _loadURL:loadType:triggeringEvent:isFormSubmission:
+    // FIXME: These checks don't match the ones in _loadURL:referrer:loadType:triggeringEvent:isFormSubmission:
     // Perhaps they should.
     
     if (!formData
@@ -1400,11 +1400,11 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 }
 
 // main funnel for navigating via callback from WebCore (e.g., clicking a link, redirect)
-- (void)_loadURL:(NSURL *)URL loadType:(WebFrameLoadType)loadType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
+- (void)_loadURL:(NSURL *)URL referrer:(NSString *)referrer loadType:(WebFrameLoadType)loadType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
 {
     BOOL isFormSubmission = (values != nil);
     WebRequest *request = [[WebRequest alloc] initWithURL:URL];
-    [request setReferrer:[_private->bridge referrer]];
+    [request setReferrer:referrer];
     [self _addExtraFieldsToRequest:request alwaysFromRequest: (event != nil || isFormSubmission)];
     if (loadType == WebFrameLoadTypeReload) {
         [request setRequestCachePolicy:WebRequestCachePolicyLoadFromOrigin];
@@ -1503,10 +1503,11 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
         }
     }
 
-    [childFrame _loadURL:URL loadType:childLoadType triggeringEvent:nil formValues:nil];
+    // FIXME: is this the right referrer?
+    [childFrame _loadURL:URL referrer:[[self _bridge] referrer] loadType:childLoadType triggeringEvent:nil formValues:nil];
 }
 
-- (void)_postWithURL:(NSURL *)URL data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
+- (void)_postWithURL:(NSURL *)URL referrer:(NSString *)referrer data:(NSData *)data contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event formValues:(NSDictionary *)values
 {
     // When posting, use the WebResourceHandleFlagLoadFromOrigin load flag.
     // This prevents a potential bug which may cause a page with a form that uses itself
@@ -1517,7 +1518,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     [request setRequestMethod:@"POST"];
     [request setRequestData:data];
     [request setContentType:contentType];
-    [request setReferrer:[_private->bridge referrer]];
+    [request setReferrer:referrer];
 
     NSDictionary *action = [self _actionInformationForLoadType:WebFrameLoadTypeStandard isFormSubmission:YES event:event originalURL:URL];
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list