[webkit-changes] cvs commit: WebKit/WebView.subproj WebFrame.m WebFrameInternal.h WebPDFView.m WebTextView.m

Kevin kdecker at opensource.apple.com
Thu Jul 14 17:36:24 PDT 2005


kdecker     05/07/14 17:36:23

  Modified:    .        Tag: Safari-2-0-branch ChangeLog
               WebView.subproj Tag: Safari-2-0-branch WebFrame.m
                        WebFrameInternal.h WebPDFView.m WebTextView.m
  Log:
          Merged fix for <rdar://problem/4122282> clicking a link in an PDF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.3118.4.20 +4 -0      WebKit/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebKit/ChangeLog,v
  retrieving revision 1.3118.4.19
  retrieving revision 1.3118.4.20
  diff -u -r1.3118.4.19 -r1.3118.4.20
  --- ChangeLog	14 Jul 2005 21:48:39 -0000	1.3118.4.19
  +++ ChangeLog	15 Jul 2005 00:36:18 -0000	1.3118.4.20
  @@ -1,3 +1,7 @@
  +2005-07-14  Kevin Decker  <kdecker at apple.com>
  +
  +        Merged fix for <rdar://problem/4122282> clicking a link in an PDF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
  +
   2005-07-14  Adele Peterson  <adele at apple.com>
   
           Merged fix from TOT to Safari-2-0-branch
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.223.8.4 +13 -0     WebKit/WebView.subproj/WebFrame.m
  
  Index: WebFrame.m
  ===================================================================
  RCS file: /cvs/root/WebKit/WebView.subproj/WebFrame.m,v
  retrieving revision 1.223.8.3
  retrieving revision 1.223.8.4
  diff -u -r1.223.8.3 -r1.223.8.4
  --- WebFrame.m	14 Jul 2005 21:48:42 -0000	1.223.8.3
  +++ WebFrame.m	15 Jul 2005 00:36:22 -0000	1.223.8.4
  @@ -2554,6 +2554,19 @@
       return _private->internalLoadDelegate;
   }
   
  +- (void)_safeLoadURL:(NSURL *)URL
  +{
  +    // Call the bridge because this is where our security checks are made.
  +    [[self _bridge] loadURL:URL 
  +                   referrer:[[[[self dataSource] request] URL] _web_originalDataAsString]
  +                     reload:NO
  +                userGesture:YES       
  +                     target:nil
  +            triggeringEvent:[NSApp currentEvent]
  +                       form:nil 
  +                 formValues:nil];
  +}
  +
   - (void)_sendResourceLoadDelegateMessagesForURL:(NSURL *)URL response:(NSURLResponse *)response length:(unsigned)length
   {
       ASSERT(response != nil);
  
  
  
  1.7.8.1   +1 -0      WebKit/WebView.subproj/WebFrameInternal.h
  
  Index: WebFrameInternal.h
  ===================================================================
  RCS file: /cvs/root/WebKit/WebView.subproj/WebFrameInternal.h,v
  retrieving revision 1.7
  retrieving revision 1.7.8.1
  diff -u -r1.7 -r1.7.8.1
  --- WebFrameInternal.h	15 Mar 2005 01:45:23 -0000	1.7
  +++ WebFrameInternal.h	15 Jul 2005 00:36:22 -0000	1.7.8.1
  @@ -7,6 +7,7 @@
   - (void)_updateDrawsBackground;
   - (void)_setInternalLoadDelegate:(id)internalLoadDelegate;
   - (id)_internalLoadDelegate;
  +- (void)_safeLoadURL:(NSURL *)URL;
   - (void)_sendResourceLoadDelegateMessagesForURL:(NSURL *)URL response:(NSURLResponse *)response length:(unsigned)length;
   - (void)_unmarkAllMisspellings;
   
  
  
  
  1.10.8.1  +13 -0     WebKit/WebView.subproj/WebPDFView.m
  
  Index: WebPDFView.m
  ===================================================================
  RCS file: /cvs/root/WebKit/WebView.subproj/WebPDFView.m,v
  retrieving revision 1.10
  retrieving revision 1.10.8.1
  diff -u -r1.10 -r1.10.8.1
  --- WebPDFView.m	7 Feb 2005 06:13:54 -0000	1.10
  +++ WebPDFView.m	15 Jul 2005 00:36:22 -0000	1.10.8.1
  @@ -7,10 +7,12 @@
   
   #import <Foundation/NSString_NSURLExtras.h>
   
  +#import <WebKit/WebFrameInternal.h>
   #import <WebKit/WebAssertions.h>
   #import <WebKit/WebDataSource.h>
   #import <WebKit/WebLocalizableStrings.h>
   #import <WebKit/WebNSPasteboardExtras.h>
  +#import <WebKit/WebNSViewExtras.h>
   #import <WebKit/WebPDFView.h>
   
   #import <Quartz/Quartz.h>
  @@ -63,6 +65,7 @@
           PDFSubview = [[[[self class] PDFViewClass] alloc] initWithFrame:frame];
           [PDFSubview setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
           [self addSubview:PDFSubview];
  +        [PDFSubview setDelegate:self];
           written = NO;
       }
       return self;
  @@ -261,6 +264,16 @@
       return [[PDFSubview document] getPrintOperationForPrintInfo:printInfo autoRotate:YES];
   }
   
  +// Delegates implementing the following method will be called to handle clicks on URL
  +// links within the PDFView.  
  +- (void)PDFViewWillClickOnLink:(PDFView *)sender withURL:(NSURL *)URL
  +{
  +    if (URL != nil) {    
  +        WebFrame *frame = [[self _web_parentWebFrameView] webFrame];
  +        [frame _safeLoadURL:URL];
  +    }
  +}
  +
   @end
   
   #endif // OMIT_TIGER_FEATURES
  
  
  
  1.53.8.2  +4 -11     WebKit/WebView.subproj/WebTextView.m
  
  Index: WebTextView.m
  ===================================================================
  RCS file: /cvs/root/WebKit/WebView.subproj/WebTextView.m,v
  retrieving revision 1.53.8.1
  retrieving revision 1.53.8.2
  diff -u -r1.53.8.1 -r1.53.8.2
  --- WebTextView.m	27 Jun 2005 23:54:13 -0000	1.53.8.1
  +++ WebTextView.m	15 Jul 2005 00:36:22 -0000	1.53.8.2
  @@ -16,6 +16,8 @@
   #import <WebKit/WebNSViewExtras.h>
   #import <WebKit/WebPreferences.h>
   #import <WebKit/WebTextRendererFactory.h>
  +#import <WebKit/WebFrameInternal.h>
  +
   #import <WebKit/WebViewPrivate.h>
   
   #import <Foundation/NSURLResponse.h>
  @@ -342,17 +344,8 @@
       } 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];
  +    if (URL != nil) {
  +        [frame _safeLoadURL:URL];
       }
   }
   
  
  
  



More information about the webkit-changes mailing list