Reviewed by Anders.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 24 Apr 2006 09:30:56 +0000 (09:30 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 24 Apr 2006 09:30:56 +0000 (09:30 +0000)
        - Remove use of _webSuperviewOfClass: and related
        http://bugzilla.opendarwin.org/show_bug.cgi?id=8562

        I removed all use of these, now objects get at each other via
        actual pointers, not using the view hierarchy. However, I left two
        of the calls in because other clients rely on them as SPI (ugh).

        * History/WebHistoryItem.m:
        * Misc/WebNSViewExtras.h:
        * Misc/WebNSViewExtras.m:
        (-[NSView _web_superviewOfClass:]):
        (-[NSView _web_parentWebFrameView]):
        * Plugins/WebNetscapePluginDocumentView.m:
        (-[WebNetscapePluginDocumentView layout]):
        * Plugins/WebNetscapePluginEmbeddedView.h:
        * Plugins/WebNetscapePluginEmbeddedView.m:
        (-[WebNetscapePluginEmbeddedView setWebFrame:]):
        (-[WebNetscapePluginEmbeddedView dataSource]):
        * Plugins/WebNullPluginView.h:
        * Plugins/WebNullPluginView.m:
        (-[WebNullPluginView setWebFrame:]):
        (-[WebNullPluginView viewDidMoveToWindow]):
        * Plugins/WebPluginController.h:
        * Plugins/WebPluginController.m:
        (-[WebPluginController setDataSource:]):
        (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
        (-[WebPluginController webPlugInContainerShowStatus:]):
        (-[WebPluginController webPlugInContainerSelectionColor]):
        (-[WebPluginController webFrame]):
        * Plugins/WebPluginDocumentView.h:
        * Plugins/WebPluginDocumentView.m:
        (-[WebPluginDocumentView setDataSource:]):
        (-[WebPluginDocumentView layout]):
        (-[WebPluginDocumentView currentWindow]):
        (-[WebPluginDocumentView viewWillMoveToWindow:]):
        * WebCoreSupport/WebFrameBridge.m:
        (-[WebFrameBridge formControlIsBecomingFirstResponder:]):
        (-[WebFrameBridge formControlIsResigningFirstResponder:]):
        (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
        * WebCoreSupport/WebViewFactory.m:
        (-[WebViewFactory bridgeForView:]):
        * WebView/WebClipView.m:
        (-[NSView initWithFrame:]):
        * WebView/WebFrameView.m:
        (-[WebFrameView _shouldDrawBorder]):
        (-[WebFrameView webCoreBridge]):
        * WebView/WebHTMLView.m:
        (-[WebTextCompleteController dealloc]):
        (-[WebHTMLView _dataSource]):
        (-[WebHTMLView _bridge]):
        (-[WebHTMLView _webView]):
        (-[WebHTMLView _frameView]):
        (-[WebHTMLView _web_firstResponderCausesFocusDisplay]):
        (-[NSArray becomeFirstResponder]):
        (-[NSArray setDataSource:]):
        (-[NSArray pageUp:]):
        (-[NSArray pageDown:]):
        (-[NSArray pageUpAndModifySelection:]):
        (-[NSArray pageDownAndModifySelection:]):
        (-[WebHTMLView _frame]):
        * WebView/WebHTMLViewInternal.h:
        * WebView/WebImageView.h:
        * WebView/WebImageView.m:
        (-[WebImageView drawRect:]):
        (-[WebImageView adjustFrameSize]):
        (-[WebImageView setDataSource:]):
        (-[WebImageView webView]):
        (-[WebImageView writeImageToPasteboard:types:]):
        (-[WebImageView copy:]):
        (-[WebImageView elementAtPoint:]):
        (-[WebImageView mouseDragged:]):
        * WebView/WebPDFView.h:
        * WebView/WebPDFView.m:
        (-[WebPDFView _applyPDFDefaults]):
        (-[WebPDFView _trackFirstResponder]):
        (-[PDFPrefUpdatingProxy forwardInvocation:]):
        * WebView/WebRenderNode.m:
        (-[WebRenderNode initWithWebFrameView:]):
        * WebView/WebTextView.h:
        * WebView/WebTextView.m:
        (-[WebTextView _textSizeMultiplierFromWebView]):
        (-[WebTextView _preferences]):
        (-[WebTextView setDataSource:]):
        (-[WebTextView _webFrame]):
        (-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
        (-[WebTextView menuForEvent:]):
        (-[WebTextView resignFirstResponder]):
        (-[WebTextView drawPageBorderWithSize:]):
        (-[WebTextView knowsPageRange:]):
        * WebView/WebView.m:
        (-[WebView searchFor:direction:caseSensitive:wrap:]):
        (containingFrameView):
        (-[WebView _focusedFrame]):
        (-[WebView _frameViewAtWindowPoint:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@14032 268f45cc-cd09-0410-ab3c-d52691b4dbfc

27 files changed:
WebKit/ChangeLog
WebKit/History/WebHistoryItem.m
WebKit/Misc/WebNSViewExtras.h
WebKit/Misc/WebNSViewExtras.m
WebKit/Plugins/WebNetscapePluginDocumentView.m
WebKit/Plugins/WebNetscapePluginEmbeddedView.h
WebKit/Plugins/WebNetscapePluginEmbeddedView.m
WebKit/Plugins/WebNullPluginView.h
WebKit/Plugins/WebNullPluginView.m
WebKit/Plugins/WebPluginController.h
WebKit/Plugins/WebPluginController.m
WebKit/Plugins/WebPluginDocumentView.h
WebKit/Plugins/WebPluginDocumentView.m
WebKit/WebCoreSupport/WebFrameBridge.m
WebKit/WebCoreSupport/WebViewFactory.m
WebKit/WebView/WebClipView.m
WebKit/WebView/WebFrameView.m
WebKit/WebView/WebHTMLView.m
WebKit/WebView/WebHTMLViewInternal.h
WebKit/WebView/WebImageView.h
WebKit/WebView/WebImageView.m
WebKit/WebView/WebPDFView.h
WebKit/WebView/WebPDFView.m
WebKit/WebView/WebRenderNode.m
WebKit/WebView/WebTextView.h
WebKit/WebView/WebTextView.m
WebKit/WebView/WebView.m

index eb0aad8d07a02f1cbfcce504e1bb9ef566c2edf4..0af489946f49206e890a456415231dc8a708b182 100644 (file)
@@ -1,3 +1,102 @@
+2006-04-24  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Anders.
+        
+        - Remove use of _webSuperviewOfClass: and related
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=8562
+        
+        I removed all use of these, now objects get at each other via
+        actual pointers, not using the view hierarchy. However, I left two
+        of the calls in because other clients rely on them as SPI (ugh).
+
+        * History/WebHistoryItem.m:
+        * Misc/WebNSViewExtras.h:
+        * Misc/WebNSViewExtras.m:
+        (-[NSView _web_superviewOfClass:]):
+        (-[NSView _web_parentWebFrameView]):
+        * Plugins/WebNetscapePluginDocumentView.m:
+        (-[WebNetscapePluginDocumentView layout]):
+        * Plugins/WebNetscapePluginEmbeddedView.h:
+        * Plugins/WebNetscapePluginEmbeddedView.m:
+        (-[WebNetscapePluginEmbeddedView setWebFrame:]):
+        (-[WebNetscapePluginEmbeddedView dataSource]):
+        * Plugins/WebNullPluginView.h:
+        * Plugins/WebNullPluginView.m:
+        (-[WebNullPluginView setWebFrame:]):
+        (-[WebNullPluginView viewDidMoveToWindow]):
+        * Plugins/WebPluginController.h:
+        * Plugins/WebPluginController.m:
+        (-[WebPluginController setDataSource:]):
+        (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
+        (-[WebPluginController webPlugInContainerShowStatus:]):
+        (-[WebPluginController webPlugInContainerSelectionColor]):
+        (-[WebPluginController webFrame]):
+        * Plugins/WebPluginDocumentView.h:
+        * Plugins/WebPluginDocumentView.m:
+        (-[WebPluginDocumentView setDataSource:]):
+        (-[WebPluginDocumentView layout]):
+        (-[WebPluginDocumentView currentWindow]):
+        (-[WebPluginDocumentView viewWillMoveToWindow:]):
+        * WebCoreSupport/WebFrameBridge.m:
+        (-[WebFrameBridge formControlIsBecomingFirstResponder:]):
+        (-[WebFrameBridge formControlIsResigningFirstResponder:]):
+        (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
+        * WebCoreSupport/WebViewFactory.m:
+        (-[WebViewFactory bridgeForView:]):
+        * WebView/WebClipView.m:
+        (-[NSView initWithFrame:]):
+        * WebView/WebFrameView.m:
+        (-[WebFrameView _shouldDrawBorder]):
+        (-[WebFrameView webCoreBridge]):
+        * WebView/WebHTMLView.m:
+        (-[WebTextCompleteController dealloc]):
+        (-[WebHTMLView _dataSource]):
+        (-[WebHTMLView _bridge]):
+        (-[WebHTMLView _webView]):
+        (-[WebHTMLView _frameView]):
+        (-[WebHTMLView _web_firstResponderCausesFocusDisplay]):
+        (-[NSArray becomeFirstResponder]):
+        (-[NSArray setDataSource:]):
+        (-[NSArray pageUp:]):
+        (-[NSArray pageDown:]):
+        (-[NSArray pageUpAndModifySelection:]):
+        (-[NSArray pageDownAndModifySelection:]):
+        (-[WebHTMLView _frame]):
+        * WebView/WebHTMLViewInternal.h:
+        * WebView/WebImageView.h:
+        * WebView/WebImageView.m:
+        (-[WebImageView drawRect:]):
+        (-[WebImageView adjustFrameSize]):
+        (-[WebImageView setDataSource:]):
+        (-[WebImageView webView]):
+        (-[WebImageView writeImageToPasteboard:types:]):
+        (-[WebImageView copy:]):
+        (-[WebImageView elementAtPoint:]):
+        (-[WebImageView mouseDragged:]):
+        * WebView/WebPDFView.h:
+        * WebView/WebPDFView.m:
+        (-[WebPDFView _applyPDFDefaults]):
+        (-[WebPDFView _trackFirstResponder]):
+        (-[PDFPrefUpdatingProxy forwardInvocation:]):
+        * WebView/WebRenderNode.m:
+        (-[WebRenderNode initWithWebFrameView:]):
+        * WebView/WebTextView.h:
+        * WebView/WebTextView.m:
+        (-[WebTextView _textSizeMultiplierFromWebView]):
+        (-[WebTextView _preferences]):
+        (-[WebTextView setDataSource:]):
+        (-[WebTextView _webFrame]):
+        (-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
+        (-[WebTextView menuForEvent:]):
+        (-[WebTextView resignFirstResponder]):
+        (-[WebTextView drawPageBorderWithSize:]):
+        (-[WebTextView knowsPageRange:]):
+        * WebView/WebView.m:
+        (-[WebView searchFor:direction:caseSensitive:wrap:]):
+        (containingFrameView):
+        (-[WebView _focusedFrame]):
+        (-[WebView _frameViewAtWindowPoint:]):
+
 2006-04-23  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Darin.
index 93fb43e125182bb178cab94cd7c25aca86e93e0e..4721ed9fcd847b51139ffb91f9bac2962912d048 100644 (file)
@@ -31,7 +31,7 @@
 #import <JavaScriptCore/Assertions.h>
 #import <WebKit/WebFramePrivate.h>
 #import <WebKit/WebFrameView.h>
-#import <WebKit/WebHTMLViewPrivate.h>
+#import <WebKit/WebHTMLViewInternal.h>
 #import <WebKit/WebIconDatabase.h>
 #import <WebKit/WebKitLogging.h>
 #import <WebKit/WebKitNSStringExtras.h>
index 0d5ea443d473911cdec5190f1d2f7089865753e6..f171c3f8e0efa9410a686afb4ec6f41a8dd3e4ac 100644 (file)
 #define WebDragImageAlpha    0.75
 
 @class DOMElement;
-@class WebArchive;
-@class WebFrameBridge;
-@class WebDataSource;
-@class WebFrame;
-@class WebFrameView;
 @class WebImageRenderer;
-@class WebView;
+@class WebFrameView;
 
 @interface NSView (WebExtras)
 
 // Returns the nearest enclosing view of the given class, or nil if none.
 - (NSView *)_web_superviewOfClass:(Class)class;
-
-// Returns the nearest enclosing view of the given class, or nil if none.
-// Stops searching and returns nil when limitClass is encountered
-- (NSView *)_web_superviewOfClass:(Class)class stoppingAtClass:(Class)limitClass;
-
-// Returns the first WebFrameView superview. Only works if self is the WebFrameView's document view.
 - (WebFrameView *)_web_parentWebFrameView;
-- (WebView *)_web_parentWebView;
 
 // returns whether a drag should begin starting with mouseDownEvent; if the time
 // passes expiration or the mouse moves less than the hysteresis before the mouseUp event,
                 offset:(NSPoint *)dragImageOffset;
 
 - (BOOL)_web_firstResponderIsSelfOrDescendantView;
-- (BOOL)_web_firstResponderCausesFocusDisplay;
-
-@end
-
-@interface NSView (WebDocumentViewExtras)
-
-- (WebView *)_webView;
-- (WebFrame *)_frame;
-- (WebFrameBridge *)_bridge;
-- (WebDataSource *)_dataSource;
 
 @end
index b6575d844e8e108c0880b000875840794d85ba1b..0c417fabe2d7ac97dd0d6c45ec42bae3bb8025a3 100644 (file)
 
 @implementation NSView (WebExtras)
 
-- (NSView *)_web_superviewOfClass:(Class)class stoppingAtClass:(Class)limitClass
-{
-    NSView *view = self;
-    while ((view = [view superview]) != nil) {
-        if ([view isKindOfClass:class]) {
-            return view;
-        } else if (limitClass && [view isKindOfClass:limitClass]) {
-            break;
-        }
-    }
-
-    return nil;
-}
-
 - (NSView *)_web_superviewOfClass:(Class)class
 {
-    return [self _web_superviewOfClass:class stoppingAtClass:nil];
+    NSView *view = [self superview];
+    while (view  && ![view isKindOfClass:class])
+        view = [view superview];
+    return view;
 }
 
 - (WebFrameView *)_web_parentWebFrameView
 {
-    WebFrameView *view = (WebFrameView *)[[[self superview] superview] superview];
-    if ([view isKindOfClass: [WebFrameView class]])
-        return view;
-    return nil;
-}
-
-- (WebView *)_web_parentWebView
-{
-    return [[self _web_parentWebFrameView] _webView];
+    return (WebFrameView *)[self _web_superviewOfClass:[WebFrameView class]];
 }
 
 /* Determine whether a mouse down should turn into a drag; started as copy of NSTableView code */
            ([responder isKindOfClass:[NSView class]] && [(NSView *)responder isDescendantOf:self])));
 }
 
-- (BOOL)_web_firstResponderCausesFocusDisplay
-{
-    return [self _web_firstResponderIsSelfOrDescendantView] || [[self window] firstResponder] == [self _web_parentWebFrameView];
-}
-
-@end
-
-@implementation NSView (WebDocumentViewExtras)
-
-- (WebView *)_webView
-{
-    // We used to use the view hierarchy exclusively here, but that won't work
-    // right when the first viewDidMoveToSuperview call is done, and this wil.
-    return [[self _frame] webView];
-}
-
-- (WebFrame *)_frame
-{
-    WebFrameView *webFrameView = [self _web_parentWebFrameView];
-    return [webFrameView webFrame];
-}
-
-// Required so view can access the part's selection.
-- (WebFrameBridge *)_bridge
-{
-    return [[self _frame] _bridge];
-}
-
-- (WebDataSource *)_dataSource
-{
-    return [[self _frame] dataSource];
-}
-
-- (NSURL *)_webViewURL
-{
-    return [[[[[self superview] _frame] dataSource] request] URL];
-}
-
 @end
index 8a84707af9a850566380eb52fedf95860233880c..f39ee9c4a91160236937aa99e2198eaf08f04745 100644 (file)
 
 - (void)layout
 {
-    NSRect superFrame = [[self _web_superviewOfClass:[WebFrameView class]] frame];
+    NSRect superFrame = [[[dataSource webFrame] frameView] frame];
     [self setFrame:NSMakeRect(0, 0, NSWidth(superFrame), NSHeight(superFrame))];
     needsLayout = NO;
 }
index 9bbfcd87b60b03415ff68cac94ce14d6e27abae0..43122d279673e3e6d28271a40088e45a872b70c4 100644 (file)
 
 #import <WebKit/WebBaseNetscapePluginView.h>
 
+@class WebFrame;
+
 @interface WebNetscapePluginEmbeddedView : WebBaseNetscapePluginView
 {
     NSURL *URL;
+    WebFrame *_webFrame;
 }
 
 - (id)initWithFrame:(NSRect)r
@@ -43,4 +46,6 @@
       attributeKeys:(NSArray *)keys
     attributeValues:(NSArray *)values;
 
+- (void)setWebFrame:(WebFrame *)webFrame;
+
 @end
index c1e946b1db94299f256fc346ff79cad5fe71e047..66fc52ac3fe485e7a471a1c2ba726398799e6ae1 100644 (file)
     }
 }
 
+- (void)setWebFrame:(WebFrame *)webFrame
+{
+    _webFrame = webFrame;
+}
+
 - (WebDataSource *)dataSource
 {
-    WebFrameView *webFrameView = (WebFrameView *)[self _web_superviewOfClass:[WebFrameView class]];
-    WebFrame *webFrame = [webFrameView webFrame];
-    return [webFrame dataSource];
+    return [_webFrame dataSource];
 }
 
 @end
index 0ae6697604f3763420d17e05694509af72c23865..d290bdbd8b45f6e25026ccab9fe374e500247ef8 100644 (file)
 #import <AppKit/AppKit.h>
 
 @class NSError;
+@class WebFrame;
 
 @interface WebNullPluginView : NSImageView
 {
     BOOL didSendError;
     NSError *error;
+    WebFrame *_webFrame;
 }
 
 - (id)initWithFrame:(NSRect)frame error:(NSError *)pluginError;
+- (void)setWebFrame:(WebFrame *)webFrame;
 
 @end
index 2d5ad431e99161040e11ff5f5a2a26ba427f257a..26809096e963b6ba581092cf28938341b141d3cb 100644 (file)
@@ -63,12 +63,16 @@ static NSImage *image = nil;
     [super dealloc];
 }
 
+- (void)setWebFrame:(WebFrame *)webFrame
+{
+    _webFrame = webFrame;
+}
+
 - (void)viewDidMoveToWindow
 {
     if(!didSendError && _window && error){
         didSendError = YES;
-        WebFrameView *view = (WebFrameView *)[self _web_superviewOfClass:[WebFrameView class]];
-        WebFrame *webFrame = [view webFrame];
+        WebFrame *webFrame = _webFrame;
         WebView *webView = [webFrame webView];
         WebDataSource *dataSource = [webFrame dataSource];
         
index ff1b778a0aff1f20212be51349102f2bb43c154a..605d483dd41f27395763b7326264072d9f28ee24 100644 (file)
 @class WebPluginPackage;
 @class WebFrameBridge;
 @class WebView;
+@class WebDataSource;
 
 @interface WebPluginController : NSObject
 {
     NSView *_documentView;
+    WebDataSource *_dataSource;
     NSMutableArray *_views;
     BOOL _started;
     NSMutableSet *_checksInProgress;
@@ -46,6 +48,8 @@
 
 - (id)initWithDocumentView:(NSView *)view;
 
+- (void)setDataSource:(WebDataSource *)dataSource;
+
 - (void)addPlugin:(NSView *)view;
 - (void)destroyPlugin:(NSView *)view;
 
index 04b7dc8d493f895f57f9a3f659c4df8222d1ef3e..341d0c5b7428980bb4c8e3c100e0476260394478 100644 (file)
@@ -43,6 +43,7 @@
 #import <WebKit/WebPluginViewFactory.h>
 #import <WebKit/WebViewInternal.h>
 #import <WebKit/WebUIDelegate.h>
+#import <WebKit/WebDataSourcePrivate.h>
 
 #import <WebCore/WebCoreFrameBridge.h>
 
@@ -106,6 +107,11 @@ static NSMutableSet *pluginViews = nil;
     return self;
 }
 
+- (void)setDataSource:(WebDataSource *)dataSource
+{
+    _dataSource = dataSource;    
+}
+
 - (void)dealloc
 {
     [_views release];
@@ -267,7 +273,7 @@ static NSMutableSet *pluginViews = nil;
         LOG_ERROR("could not load URL %@ because plug-in has already been destroyed", request);
         return;
     }
-    WebFrame *frame = [_documentView _frame];
+    WebFrame *frame = [_dataSource webFrame];
     if (!frame) {
         LOG_ERROR("could not load URL %@ because plug-in has already been stopped", request);
         return;
@@ -306,7 +312,7 @@ static NSMutableSet *pluginViews = nil;
         LOG_ERROR("could not show status message (%@) because plug-in has already been destroyed", message);
         return;
     }
-    WebView *v = [_documentView _webView];
+    WebView *v = [_dataSource _webView];
     [[v _UIDelegateForwarder] webView:v setStatusText:message];
 }
 
@@ -318,7 +324,7 @@ static NSMutableSet *pluginViews = nil;
 
 - (NSColor *)webPlugInContainerSelectionColor
 {
-    return [[_documentView _bridge] selectionColor];
+    return [[_dataSource _bridge] selectionColor];
 }
 
 // For compatibility only.
@@ -329,7 +335,7 @@ static NSMutableSet *pluginViews = nil;
 
 - (WebFrame *)webFrame
 {
-    return [_documentView _frame];
+    return [_dataSource webFrame];
 }
 
 - (WebFrameBridge *)bridge
index 5009e9737a83ded115fb9625763e2f04f4cb50d8..355337fc6b53ddef8fb4cdf0dbbee59dac42205e 100644 (file)
@@ -35,6 +35,7 @@
 {
     WebPluginController *pluginController;
     WebPluginPackage *plugin;
+    WebDataSource *_dataSource;
     BOOL dataSourceHasBeenSet;
     BOOL needsLayout;
 }
index 89484752e5333fa47e9156966b9585c283321dff..4fc8efe868f5e4363db0566cccfb380e57a065cf 100644 (file)
@@ -30,6 +30,7 @@
 
 #import <JavaScriptCore/Assertions.h>
 #import <WebKit/WebDataSourcePrivate.h>
+#import <WebKit/WebFrame.h>
 #import <WebKit/WebFrameView.h>
 #import <WebKit/WebKitErrorsPrivate.h>
 #import <WebKit/WebNSURLExtras.h>
@@ -80,6 +81,8 @@
     if (![self superview])
         return;
         
+    _dataSource = dataSource;
+    [pluginController setDataSource:dataSource];
     dataSourceHasBeenSet = YES;
     
     NSURLResponse *response = [dataSource response];
 
 - (void)layout
 {
-    NSRect superFrame = [[self _web_superviewOfClass:[WebFrameView class]] frame];
+    NSRect superFrame = [[[_dataSource webFrame] frameView] frame];
     [self setFrame:NSMakeRect(0, 0, NSWidth(superFrame), NSHeight(superFrame))];
     needsLayout = NO;    
 }
 - (NSWindow *)currentWindow
 {
     NSWindow *window = [self window];
-    return window != nil ? window : [[self _webView] hostWindow];
+    return window != nil ? window : [[_dataSource _webView] hostWindow];
 }
 
 - (void)viewWillMoveToWindow:(NSWindow *)window
 {
-    if ([[self _webView] hostWindow] == nil) {
+    if ([[_dataSource _webView] hostWindow] == nil) {
         [pluginController stopAllPlugins];
     }
 }
index a2822ec58c756fe95499e734872b0cb0109e7f73..b43003aee6c552775b53df11a8963ae448cf2dfd 100644 (file)
@@ -633,14 +633,14 @@ NSString *WebPluginContainerKey =   @"WebPluginContainer";
 {
     // When a form element becomes first responder, its enclosing WebHTMLView might need to
     // change its focus-displaying state, but isn't otherwise notified.
-    [(WebHTMLView *)[formControl _web_superviewOfClass:[WebHTMLView class]] _formControlIsBecomingFirstResponder:formControl];
+    [(WebHTMLView *)[[_frame frameView] documentView] _formControlIsBecomingFirstResponder:formControl];
 }
 
 - (void)formControlIsResigningFirstResponder:(NSView *)formControl
 {
     // When a form element resigns first responder, its enclosing WebHTMLView might need to
     // change its focus-displaying state, but isn't otherwise notified.
-    [(WebHTMLView *)[formControl _web_superviewOfClass:[WebHTMLView class]] _formControlIsResigningFirstResponder:formControl];
+    [(WebHTMLView *)[[_frame frameView] documentView] _formControlIsResigningFirstResponder:formControl];
 }
 
 - (void)setIconURL:(NSURL *)URL
@@ -957,20 +957,18 @@ NSString *WebPluginContainerKey =   @"WebPluginContainer";
             return view;
     }
 
-    if ([MIMEType length] != 0) {
+    if ([MIMEType length] != 0)
         pluginPackage = [[WebPluginDatabase installedPlugins] pluginForMIMEType:MIMEType];
-    } else {
+    else
         MIMEType = nil;
-    }
     
     NSString *extension = [[URL path] pathExtension];
     if (!pluginPackage && [extension length] != 0) {
         pluginPackage = [[WebPluginDatabase installedPlugins] pluginForExtension:extension];
         if (pluginPackage) {
             NSString *newMIMEType = [pluginPackage MIMETypeForExtension:extension];
-            if ([newMIMEType length] != 0) {
+            if ([newMIMEType length] != 0)
                 MIMEType = newMIMEType;
-            }
         }
     }
 
@@ -982,23 +980,22 @@ NSString *WebPluginContainerKey =   @"WebPluginContainer";
                                attributeValues:attributeValues
                                        baseURL:baseURL];
         } else if ([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]) {
-            view = [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:NSZeroRect
+            WebNetscapePluginEmbeddedView *embeddedView = [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:NSZeroRect
                                                                   plugin:(WebNetscapePluginPackage *)pluginPackage
                                                                      URL:URL
                                                                  baseURL:baseURL
                                                                 MIMEType:MIMEType
                                                            attributeKeys:attributeNames
                                                          attributeValues:attributeValues] autorelease];
-        } else {
+            view = embeddedView;
+            [embeddedView setWebFrame:_frame];
+        } else
             ASSERT_NOT_REACHED();
-        }
-    } else {
+    } else
         errorCode = WebKitErrorCannotFindPlugIn;
-    }
 
-    if (!errorCode && !view) {
+    if (!errorCode && !view)
         errorCode = WebKitErrorCannotLoadPlugIn;
-    }
 
     if (errorCode) {
         NSString *pluginPage = [self valueForKey:@"pluginspage" keys:attributeNames values:attributeValues];
@@ -1008,7 +1005,9 @@ NSString *WebPluginContainerKey =   @"WebPluginContainer";
                                                      pluginPageURL:pluginPageURL
                                                         pluginName:[pluginPackage name]
                                                           MIMEType:MIMEType];
-        view = [[[WebNullPluginView alloc] initWithFrame:NSZeroRect error:error] autorelease];
+        WebNullPluginView *nullView = [[[WebNullPluginView alloc] initWithFrame:NSZeroRect error:error] autorelease];
+        [nullView setWebFrame:_frame];
+        view = nullView;
         [error release];
     }
     
index 27e5e9b3fa14e2aff807edcbfbe61dc0d58f3fca..4aece737066837949f8a35345a0300b900712717 100644 (file)
@@ -31,7 +31,7 @@
 #import <JavaScriptCore/Assertions.h>
 #import <WebKit/WebFrameBridge.h>
 #import <WebKit/WebViewInternal.h>
-#import <WebKit/WebHTMLViewPrivate.h>
+#import <WebKit/WebHTMLViewInternal.h>
 #import <WebKit/WebLocalizableStrings.h>
 #import <WebKit/WebNSUserDefaultsExtras.h>
 #import <WebKit/WebNSObjectExtras.h>
@@ -84,7 +84,7 @@
     
     while (aView) {
         if ([aView isKindOfClass:[WebHTMLView class]]) {
-            return [(WebHTMLView *)aView _bridge];
+            return [[[(WebHTMLView *)aView _frame] dataSource] _bridge];
         }
         aView = [aView superview];
     }
index 8d587920aa81d29bd1ececa9a7b21c65f0c53720..92319323b6146076cabf657545630b9ab40e063a 100644 (file)
 
 // FIXME: Change terminology from "additional clip" to "focus ring clip".
 
+@interface NSView (WebViewMethod)
+- (WebView *)_webView;
+@end
+
 @implementation WebClipView
 
 - (id)initWithFrame:(NSRect)frame
index 917e2be90e6220ddb61c69a6eeed17c2d12ae4a7..bbfad93d518241fd8ec24c1e2c4a2aa37370dc2c 100644 (file)
@@ -128,7 +128,7 @@ enum {
     // a border (left, right, top or bottom) if the frame edge abutts the window frame.
     NSView *docV = [self documentView];
     if ([docV isKindOfClass:[WebHTMLView class]])
-        if ([[(WebHTMLView *)docV _bridge] isFrameSet])
+        if ([[_private->webFrame _bridge] isFrameSet])
             return NO;
     return YES;
 }
@@ -146,7 +146,7 @@ enum {
 
 - (WebCoreFrameBridge *) webCoreBridge
 {
-    return [self _bridge];
+    return [_private->webFrame _bridge];
 }
 
 @end
index ca1996f9abbc1a672a0cccd2ed6a5512586437bb..9bf86cf478620003218b4f9d5abb133248ab3999 100644 (file)
@@ -258,6 +258,7 @@ void *_NSSoftLinkingGetFrameworkFuncPtr(NSString *inUmbrellaFrameworkName,
     [toolTip release];
     [compController release];
     [firstResponderAtMouseDownTime release];
+    [dataSource release];
 
     [super dealloc];
 }
@@ -282,6 +283,26 @@ void *_NSSoftLinkingGetFrameworkFuncPtr(NSString *inUmbrellaFrameworkName,
     return NO;
 }
 
+- (WebDataSource *)_dataSource
+{
+    return _private->dataSource;
+}
+
+- (WebFrameBridge *)_bridge
+{
+    return [_private->dataSource _bridge];
+}
+
+- (WebView *)_webView
+{
+    return [_private->dataSource _webView];
+}
+
+- (WebFrameView *)_frameView
+{
+    return [[_private->dataSource webFrame] frameView];
+}
+
 - (DOMDocumentFragment *)_documentFragmentWithPaths:(NSArray *)paths
 {
     DOMDocumentFragment *fragment;
@@ -1662,6 +1683,11 @@ static WebHTMLView *lastHitView = nil;
     [bridge decreaseSelectionListLevel];
 }
 
+- (BOOL)_web_firstResponderCausesFocusDisplay
+{
+    return [self _web_firstResponderIsSelfOrDescendantView] || [[self window] firstResponder] == [self _frameView];
+}
+
 - (void)_updateFocusState
 {
     // This method does the job of updating the view based on the view's firstResponder-ness and
@@ -3085,7 +3111,7 @@ done:
     _private->willBecomeFirstResponderForNodeFocus = NO;
     if (view)
         [[self window] makeFirstResponder:view];
-    [[[self _web_parentWebFrameView] webFrame] _clearSelectionInOtherFrames];
+    [[self _frame] _clearSelectionInOtherFrames];
     [self _updateFocusState];
     [self _updateFontPanel];
     _private->startNewKillRingSequence = YES;
@@ -3118,6 +3144,8 @@ done:
 //------------------------------------------------------------------------------------
 - (void)setDataSource:(WebDataSource *)dataSource 
 {
+    ASSERT(!_private->dataSource);
+    _private->dataSource = [dataSource retain];
 }
 
 - (void)dataSourceUpdated:(WebDataSource *)dataSource
@@ -3665,7 +3693,7 @@ done:
 
 - (void)pageUp:(id)sender
 {
-    WebFrameView *frameView = [self _web_parentWebFrameView];
+    WebFrameView *frameView = [self _frameView];
     if (frameView == nil)
         return;
     [self _alterCurrentSelection:WebSelectByMoving verticalDistance:-[frameView _verticalPageScrollDistance]];
@@ -3673,7 +3701,7 @@ done:
 
 - (void)pageDown:(id)sender
 {
-    WebFrameView *frameView = [self _web_parentWebFrameView];
+    WebFrameView *frameView = [self _frameView];
     if (frameView == nil)
         return;
     [self _alterCurrentSelection:WebSelectByMoving verticalDistance:[frameView _verticalPageScrollDistance]];
@@ -3681,7 +3709,7 @@ done:
 
 - (void)pageUpAndModifySelection:(id)sender
 {
-    WebFrameView *frameView = [self _web_parentWebFrameView];
+    WebFrameView *frameView = [self _frameView];
     if (frameView == nil)
         return;
     [self _alterCurrentSelection:WebSelectByExtending verticalDistance:-[frameView _verticalPageScrollDistance]];
@@ -3689,7 +3717,7 @@ done:
 
 - (void)pageDownAndModifySelection:(id)sender
 {
-    WebFrameView *frameView = [self _web_parentWebFrameView];
+    WebFrameView *frameView = [self _frameView];
     if (frameView == nil)
         return;
     [self _alterCurrentSelection:WebSelectByExtending verticalDistance:[frameView _verticalPageScrollDistance]];
@@ -5086,6 +5114,11 @@ static DOMRange *unionDOMRanges(DOMRange *a, DOMRange *b)
     _private->willBecomeFirstResponderForNodeFocus = YES;
 }
 
+- (WebFrame *)_frame
+{
+    return [_private->dataSource webFrame];
+}
+
 @end
 
 @implementation WebHTMLView (WebNSTextInputSupport)
index 187711037b54fba429f750d49af1cb2d24b42be4..4aaae49b6397ed3fba4d22e425f57218b472fec8 100644 (file)
@@ -87,6 +87,8 @@
     BOOL transparentBackground;
 
     NSResponder *firstResponderAtMouseDownTime;
+    
+    WebDataSource *dataSource;
 }
 @end
 
 - (void)_pauseNullEventsForAllNetscapePlugins;
 - (void)_resumeNullEventsForAllNetscapePlugins;
 - (void)_willMakeFirstResponderForNodeFocus;
+- (WebFrame *)_frame;
 @end
+
index 80dd19f724c2b58e6aeb8ce5125990abf0c352b4..eae7e762f6682028f5b5653ee6695054518f59ee 100644 (file)
@@ -37,6 +37,7 @@
     BOOL ignoringMouseDraggedEvents;
     NSEvent *mouseDownEvent;
     unsigned int dragSourceActionMask;
+    WebDataSource *_dataSource;
 }
 + (NSArray *)supportedMIMETypes;
 @end
index 03442687a6a1b9826a531ea472f5eba8a094d16e..e580e3d77c2c5659a7ad03bb158b4d0a961e45c7 100644 (file)
@@ -30,7 +30,7 @@
 
 #import <WebKit/WebArchiver.h>
 #import <JavaScriptCore/Assertions.h>
-#import <WebKit/WebDataSource.h>
+#import <WebKit/WebDataSourcePrivate.h>
 #import <WebKit/WebDocument.h>
 #import <WebKit/WebFrameView.h>
 #import <WebKit/WebImageRenderer.h>
@@ -40,6 +40,7 @@
 #import <WebKit/WebNSObjectExtras.h>
 #import <WebKit/WebNSPasteboardExtras.h>
 #import <WebKit/WebNSViewExtras.h>
+#import <WebKit/WebFrameViewPrivate.h>
 #import <WebKit/WebViewInternal.h>
 #import <WebKit/WebUIDelegatePrivate.h>
 
         [self layout];
     }
     
-    if ([[self _webView] drawsBackground]) {
+    if ([[_dataSource _webView] drawsBackground]) {
         [[NSColor whiteColor] set];
         NSRectFill(rect);
     }
     // as large as the image.. Otherwise we're printing, and we want the image to 
     // fill the view so that the printed size doesn't depend on the window size.
     if ([NSGraphicsContext currentContextDrawingToScreen]) {
-        NSSize clipViewSize = [[self _web_superviewOfClass:[NSClipView class]] frame].size;
+        NSSize clipViewSize = [[[[_dataSource webFrame] frameView] _contentView] frame].size;
         size.width = MAX(size.width, clipViewSize.width);
         size.height = MAX(size.height, clipViewSize.height);
     }
 {
     ASSERT(!rep);
     rep = [[dataSource representation] retain];
+    _dataSource = dataSource;
 }
 
 - (void)dataSourceUpdated:(WebDataSource *)dataSource
 
 - (WebView *)webView
 {
-    return [self _web_parentWebView];
+    return [_dataSource _webView];
 }
 
 - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
 
 - (BOOL)writeImageToPasteboard:(NSPasteboard *)pasteboard types:(NSArray *)types
 {
-    WebFrame *frame = [[self _web_parentWebFrameView] webFrame];
+    WebFrame *frame = [_dataSource webFrame];
     if ([self haveCompleteImage]) {
         [pasteboard _web_writeImage:[rep image] element:nil URL:[rep URL] title:nil archive:[WebArchiver archiveFrame:frame] types:types];
         return YES;
 
 - (void)copy:(id)sender
 {
-    WebFrame *frame = [[self _web_parentWebFrameView] webFrame];
+    WebFrame *frame = [_dataSource webFrame];
     NSArray *types = [NSPasteboard _web_writableTypesForImageIncludingArchive:([WebArchiver archiveFrame:frame] != nil)];
     NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
     [pasteboard declareTypes:types owner:nil];
 
 - (NSDictionary *)elementAtPoint:(NSPoint)point
 {
-    WebFrame *frame = [[self _web_parentWebFrameView] webFrame];
+    WebFrame *frame = [_dataSource webFrame];
     ASSERT(frame);
     
     return [NSDictionary dictionaryWithObjectsAndKeys:
         return;
     }
     
-    WebFrame *frame = [[self _web_parentWebFrameView] webFrame];
+    WebFrame *frame = [_dataSource webFrame];
     NSPasteboard *pasteboard = [NSPasteboard pasteboardWithName:NSDragPboard];
     id source = [pasteboard _web_declareAndWriteDragImage:[rep image]
                                                   element:nil
index ea4e4967c8aa5f3544877d5090b593b9f06d6503..7a3a9bdea3d432ab947aa78df432966dcd3af367 100644 (file)
 @interface WebPDFView : NSView <WebDocumentView, WebDocumentSearching, WebDocumentSelection, WebDocumentElement, _WebDocumentViewState, _WebDocumentTextSizing>
 {
     PDFView *PDFSubview;
-    WebDataSource *dataSource;
     NSString *path;
     id trackedFirstResponder;
     BOOL written;
     PDFView *PDFSubviewProxy;
+@public
+    WebDataSource *dataSource;
 }
 
 + (NSArray *)supportedMIMETypes;
index f7a52d9f519259c1a35f959c6baa4f1766b3c9c2..c37384547131505536f7c5a7c59c7c4a696906fc 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #import <JavaScriptCore/Assertions.h>
-#import <WebKit/WebDataSource.h>
+#import <WebKit/WebDataSourcePrivate.h>
 #import <WebKit/WebDocumentInternal.h>
 #import <WebKit/WebDocumentPrivate.h>
 #import <WebKit/WebFrame.h>
@@ -364,7 +364,7 @@ static void applicationInfoForMIMEType(NSString *type, NSString **name, NSImage
 - (void)_applyPDFDefaults
 {
     // Set up default viewing params
-    WebPreferences *prefs = [[self _webView] preferences];
+    WebPreferences *prefs = [[dataSource _webView] preferences];
     float scaleFactor = [prefs PDFScaleFactor];
     if (scaleFactor == 0) {
         [PDFSubview setAutoScales:YES];
@@ -405,7 +405,7 @@ static void applicationInfoForMIMEType(NSString *type, NSString **name, NSImage
     // This next clause is the entire purpose of _trackFirstResponder. In other WebDocument
     // view classes this is done in a resignFirstResponder override, but in this case the
     // first responder view is a PDFKit class that we can't subclass.
-    if (trackedFirstResponder == [PDFSubview documentView] && ![[self _web_parentWebView] maintainsInactiveSelection])
+    if (trackedFirstResponder == [PDFSubview documentView] && ![[dataSource _webView] maintainsInactiveSelection])
         [self deselectAll];
 
     
@@ -929,7 +929,7 @@ static BOOL PDFSelectionsAreEqual(PDFSelection *selectionA, PDFSelection *select
     PDFView *PDFSubview = [view PDFSubview];
     [invocation invokeWithTarget:PDFSubview];
 
-    WebPreferences *prefs = [[view _webView] preferences];
+    WebPreferences *prefs = [[view->dataSource _webView] preferences];
     float scaleFactor = [PDFSubview autoScales] ? 0.0 : [PDFSubview scaleFactor];
     [prefs setPDFScaleFactor:scaleFactor];
     [prefs setPDFDisplayMode:[PDFSubview displayMode]];
index f49fbc08695e21541f9c769aaf7cdba90f36840b..c848a1bd8f822fcbc6a3911f48ba06565e70d76c 100644 (file)
@@ -30,7 +30,8 @@
 
 #import <WebKit/WebFrameBridge.h>
 #import <WebKit/WebFrameView.h>
-#import <WebKit/WebHTMLViewPrivate.h>
+#import <WebKit/WebHTMLView.h>
+#import <WebKit/WebDataSourcePrivate.h>
 #import <WebKit/WebNSViewExtras.h>
 
 @interface WebKitRenderTreeCopier : NSObject <WebCoreRenderTreeCopier>
@@ -80,8 +81,7 @@
     }
     
     copier = [[WebKitRenderTreeCopier alloc] init];
-    WebHTMLView *htmlView = (WebHTMLView *)[view documentView];
-    self = [[[htmlView _bridge] copyRenderTree:copier] retain];
+    self = [[[[[view webFrame] dataSource] _bridge] copyRenderTree:copier] retain];
     [copier release];
     
     return self;
index b95770fbb646654691379a438f32729b10c79364..41e959f6d1302ce1c18cb21b7fb904449017c087 100644 (file)
@@ -36,6 +36,7 @@
 {
     float _textSizeMultiplier;
     WebCoreTextDecoder *_decoder;
+    WebDataSource *_dataSource;
 }
 
 + (NSArray *)supportedMIMETypes;
index 5c72d70dccc574c20ffc74c33714e5e3a91fe881..099cb1665a16052e9d9a0171f32469d8b8860097 100644 (file)
 - (float)_textSizeMultiplierFromWebView
 {
     // Note that we are not guaranteed to be the subview of a WebView at any given time.
-    WebView *webView = [self _web_parentWebView];
+    WebView *webView = [_dataSource _webView];
     return webView ? [webView textSizeMultiplier] : 1.0;
 }
 
 - (WebPreferences *)_preferences
 {
     // Handle nil result because we might not be in a WebView at any given time.
-    WebPreferences *preferences = [[self _web_parentWebView] preferences];
+    WebPreferences *preferences = [[_dataSource _webView] preferences];
     if (preferences == nil) {
         preferences = [WebPreferences standardPreferences];
     }
 
 - (void)setDataSource:(WebDataSource *)dataSource
 {
+    _dataSource = dataSource;
+    
     [self setRichText:[[[dataSource response] MIMEType] isEqualToString:@"text/rtf"]];
     
     float oldMultiplier = _textSizeMultiplier;
     [self _updateTextSizeMultiplier];
     // If the multiplier didn't change, we still need to update the fixed-width font.
     // If the multiplier did change, this was already handled.
-    if (_textSizeMultiplier == oldMultiplier && ![self isRichText]) {
+    if (_textSizeMultiplier == oldMultiplier && ![self isRichText])
         [self setFixedWidthFont];
-    }
-
 }
 
 // We handle incoming data here rather than in dataSourceUpdated because we
 
 - (WebFrame *)_webFrame
 {
-    return [[self _web_parentWebFrameView] webFrame];
+    return [[[_dataSource webFrame] frameView] webFrame];
 }
 
 - (NSDictionary *)_elementAtWindowPoint:(NSPoint)windowPoint
 - (BOOL)dragSelectionWithEvent:(NSEvent *)event offset:(NSSize)mouseOffset slideBack:(BOOL)slideBack
 {
     // Mark webview as initiating the drag so dropping the text back on this webview never tries to navigate.
-    WebView *webView = [self _web_parentWebView];
+    WebView *webView = [_dataSource _webView];
     [webView _setInitiatedDrag:YES];
     
     // The last reference can be lost during the drag if it causes a navigation (e.g. dropping in Safari location
 
 - (NSMenu *)menuForEvent:(NSEvent *)event
 {    
-    WebView *webView = [self _web_parentWebView];
+    WebView *webView = [_dataSource _webView];
     ASSERT(webView);
     return [webView _menuForElement:[self _elementAtWindowPoint:[event locationInWindow]] defaultItems:nil];
 }
 - (BOOL)resignFirstResponder
 {
     BOOL resign = [super resignFirstResponder];
-    if (resign && ![[self _web_parentWebView] maintainsInactiveSelection])
+    if (resign && ![[_dataSource _webView] maintainsInactiveSelection])
         [self deselectAll];
     return resign;
 }
 - (void)drawPageBorderWithSize:(NSSize)borderSize
 {
     ASSERT(NSEqualSizes(borderSize, [[[NSPrintOperation currentOperation] printInfo] paperSize]));
-    [[self _web_parentWebView] _drawHeaderAndFooter];
+    [[_dataSource _webView] _drawHeaderAndFooter];
 }
 
 - (BOOL)knowsPageRange:(NSRangePointer)range {
     // Waiting for beginDocument to adjust the printing margins is too late.
-    [[self _web_parentWebView] _adjustPrintingMarginsForHeaderAndFooter];
+    [[_dataSource _webView] _adjustPrintingMarginsForHeaderAndFooter];
     return [super knowsPageRange:range];
 }
 
index ef774491543f172134274636a509be1c5688cbc8..7d1b0b503fced31a2cb061326854d39fe56e365d 100644 (file)
@@ -2263,8 +2263,7 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
             }
             
             if ([searchView searchFor:string direction:forward caseSensitive:caseFlag wrap:NO]) {
-                WebFrame *newSelectedFrame = [(WebFrameView *)[searchView _web_superviewOfClass:[WebFrameView class]] webFrame];
-                if (newSelectedFrame != startFrame)
+                if (frame != startFrame)
                     [startFrame _clearSelection];
                 [[self window] makeFirstResponder:searchView];
                 return YES;
@@ -3093,15 +3092,20 @@ FOR_EACH_RESPONDER_SELECTOR(FORWARD)
 
 @end
 
+static WebFrameView *containingFrameView(NSView *view)
+{
+    while (view && ![view isKindOfClass:[WebFrameView class]])
+        view = [view superview];
+    return (WebFrameView *)view;    
+}
+
 @implementation WebView (WebFileInternal)
 
 - (WebFrame *)_focusedFrame
 {
     NSResponder *resp = [[self window] firstResponder];
     if (resp && [resp isKindOfClass:[NSView class]] && [(NSView *)resp isDescendantOf:[[self mainFrame] frameView]]) {
-        WebFrameView *frameView = [resp isKindOfClass:[WebFrameView class]] 
-        ? (WebFrameView *)resp 
-        : (WebFrameView *)[(NSView *)resp _web_superviewOfClass:[WebFrameView class]];
+        WebFrameView *frameView = containingFrameView((NSView *)resp);
         ASSERT(frameView != nil);
         return [frameView webFrame];
     }
@@ -3132,7 +3136,11 @@ FOR_EACH_RESPONDER_SELECTOR(FORWARD)
 - (WebFrameView *)_frameViewAtWindowPoint:(NSPoint)point
 {
     NSView *view = [self hitTest:[[self superview] convertPoint:point fromView:nil]];
-    return (WebFrameView *)[view _web_superviewOfClass:[WebFrameView class] stoppingAtClass:[self class]];
+    if (![view isDescendantOf:[[self mainFrame] frameView]])
+        return nil;
+    WebFrameView *frameView = containingFrameView(view);
+    ASSERT(frameView);
+    return frameView;
 }
 
 - (WebFrameBridge *)_bridgeAtPoint:(NSPoint)point