[webkit-changes] cvs commit: WebKit/WebView.subproj WebTextView.m
Adele
adele at opensource.apple.com
Mon Jun 27 16:54:14 PDT 2005
adele 05/06/27 16:54:14
Modified: . Tag: Safari-2-0-branch ChangeLog
WebCoreSupport.subproj Tag: Safari-2-0-branch WebBridge.m
WebView.subproj Tag: Safari-2-0-branch WebTextView.m
Log:
Merged fix for <rdar://problem/4155736> from TOT to Safari-2-0-branch
2005-05-17 Chris Blumenberg <cblu at apple.com>
Fixed: <rdar://problem/4119282> clicking a link in an RTF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
Reviewed by mjs.
* WebCoreSupport.subproj/WebBridge.m:
(-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): pass the passed referrer to canLoadURL::: not [self referrer]
(-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
* WebView.subproj/WebTextView.m:
(-[WebTextView clickedOnLink:atIndex:]): call the loadURL bridge method so that security checks are made, command/option clicks work, policy delegate is consulted etc.
Revision Changes Path
No revision
No revision
1.3118.4.12 +16 -0 WebKit/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebKit/ChangeLog,v
retrieving revision 1.3118.4.11
retrieving revision 1.3118.4.12
diff -u -r1.3118.4.11 -r1.3118.4.12
--- ChangeLog 14 Jun 2005 01:28:52 -0000 1.3118.4.11
+++ ChangeLog 27 Jun 2005 23:54:07 -0000 1.3118.4.12
@@ -1,3 +1,19 @@
+2005-06-27 Adele Peterson <adele at apple.com>
+
+ Merged fix for <rdar://problem/4155736> from TOT to Safari-2-0-branch
+
+ 2005-05-17 Chris Blumenberg <cblu at apple.com>
+
+ Fixed: <rdar://problem/4119282> clicking a link in an RTF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
+
+ Reviewed by mjs.
+
+ * WebCoreSupport.subproj/WebBridge.m:
+ (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): pass the passed referrer to canLoadURL::: not [self referrer]
+ (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
+ * WebView.subproj/WebTextView.m:
+ (-[WebTextView clickedOnLink:atIndex:]): call the loadURL bridge method so that security checks are made, command/option clicks work, policy delegate is consulted etc.
+
=== WebKit-412.6 ===
2005-06-13 Adele Peterson <adele at apple.com>
No revision
No revision
1.340.8.2 +2 -2 WebKit/WebCoreSupport.subproj/WebBridge.m
Index: WebBridge.m
===================================================================
RCS file: /cvs/root/WebKit/WebCoreSupport.subproj/WebBridge.m,v
retrieving revision 1.340.8.1
retrieving revision 1.340.8.2
diff -u -r1.340.8.1 -r1.340.8.2
--- WebBridge.m 24 May 2005 01:22:43 -0000 1.340.8.1
+++ WebBridge.m 27 Jun 2005 23:54:12 -0000 1.340.8.2
@@ -626,7 +626,7 @@
- (void)loadURL:(NSURL *)URL referrer:(NSString *)referrer reload:(BOOL)reload userGesture:(BOOL)forUser target:(NSString *)target triggeringEvent:(NSEvent *)event form:(DOMElement *)form formValues:(NSDictionary *)values
{
BOOL hideReferrer;
- if (![self canLoadURL:URL fromReferrer:[self referrer] hideReferrer:&hideReferrer])
+ if (![self canLoadURL:URL fromReferrer:referrer hideReferrer:&hideReferrer])
return;
if ([target length] == 0) {
@@ -656,7 +656,7 @@
- (void)postWithURL:(NSURL *)URL referrer:(NSString *)referrer target:(NSString *)target data:(NSArray *)postData contentType:(NSString *)contentType triggeringEvent:(NSEvent *)event form:(DOMElement *)form formValues:(NSDictionary *)values
{
BOOL hideReferrer;
- if (![self canLoadURL:URL fromReferrer:[self referrer] hideReferrer:&hideReferrer])
+ if (![self canLoadURL:URL fromReferrer:referrer hideReferrer:&hideReferrer])
return;
if ([target length] == 0) {
No revision
No revision
1.53.8.1 +31 -2 WebKit/WebView.subproj/WebTextView.m
Index: WebTextView.m
===================================================================
RCS file: /cvs/root/WebKit/WebView.subproj/WebTextView.m,v
retrieving revision 1.53
retrieving revision 1.53.8.1
diff -u -r1.53 -r1.53.8.1
--- WebTextView.m 5 Mar 2005 00:02:53 -0000 1.53
+++ WebTextView.m 27 Jun 2005 23:54:13 -0000 1.53.8.1
@@ -6,17 +6,24 @@
#import <WebKit/WebTextView.h>
#import <WebKit/WebAssertions.h>
-#import <Foundation/NSURLResponse.h>
-
+#import <WebKit/WebBridge.h>
#import <WebKit/WebDataSourcePrivate.h>
#import <WebKit/WebDocumentInternal.h>
+#import <WebKit/WebFramePrivate.h>
#import <WebKit/WebFrameView.h>
#import <WebKit/WebNSObjectExtras.h>
+#import <WebKit/WebNSURLExtras.h>
#import <WebKit/WebNSViewExtras.h>
#import <WebKit/WebPreferences.h>
#import <WebKit/WebTextRendererFactory.h>
#import <WebKit/WebViewPrivate.h>
+#import <Foundation/NSURLResponse.h>
+
+ at interface NSTextView (AppKitSecret)
++ (NSURL *)_URLForString:(NSString *)string;
+ at end
+
@interface WebTextView (ForwardDeclarations)
- (void)_updateTextSizeMultiplier;
@end
@@ -327,6 +334,28 @@
return resign;
}
+- (void)clickedOnLink:(id)link atIndex:(unsigned)charIndex
+{
+ NSURL *URL = nil;
+ if ([link isKindOfClass:[NSURL class]]) {
+ URL = (NSURL *)link;
+ } else if ([link isKindOfClass:[NSString class]]) {
+ URL = [[self class] _URLForString:(NSString *)link];
+ }
+ if (URL != nil) {
+ // Call the bridge because this is where our security checks are made.
+ WebFrame *frame = [[self _web_parentWebFrameView] webFrame];
+ [[frame _bridge] loadURL:URL
+ referrer:[[[[frame dataSource] request] URL] _web_originalDataAsString]
+ reload:NO
+ userGesture:YES
+ target:nil
+ triggeringEvent:[[self window] currentEvent]
+ form:nil
+ formValues:nil];
+ }
+}
+
#pragma mark PRINTING
- (void)drawPageBorderWithSize:(NSSize)borderSize
More information about the webkit-changes
mailing list