Title: [95465] trunk/Source/WebKit/mac
Revision
95465
Author
ander...@apple.com
Date
2011-09-19 13:27:42 -0700 (Mon, 19 Sep 2011)

Log Message

Begin removing -[WebView _usesDocumentCalls] from WebView.mm
https://bugs.webkit.org/show_bug.cgi?id=68383

Reviewed by Adam Roben.

Remove checks and begin assuming that -[WebView _usesDocumentViews] always 
returns true, since viewless WebKit1 has been abandoned.

* WebView/WebView.mm:
(-[WebView selectedFrame]):
(-[WebView setHostWindow:]):
(-[WebView acceptsFirstResponder]):
(-[WebView becomeFirstResponder]):
(-[WebView _webcore_effectiveFirstResponder]):
(-[WebView setNextKeyView:]):
(-[WebView setHoverFeedbackSuspended:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/mac/ChangeLog (95464 => 95465)


--- trunk/Source/WebKit/mac/ChangeLog	2011-09-19 20:22:03 UTC (rev 95464)
+++ trunk/Source/WebKit/mac/ChangeLog	2011-09-19 20:27:42 UTC (rev 95465)
@@ -1,5 +1,24 @@
 2011-09-19  Anders Carlsson  <ander...@apple.com>
 
+        Begin removing -[WebView _usesDocumentCalls] from WebView.mm
+        https://bugs.webkit.org/show_bug.cgi?id=68383
+
+        Reviewed by Adam Roben.
+
+        Remove checks and begin assuming that -[WebView _usesDocumentViews] always 
+        returns true, since viewless WebKit1 has been abandoned.
+
+        * WebView/WebView.mm:
+        (-[WebView selectedFrame]):
+        (-[WebView setHostWindow:]):
+        (-[WebView acceptsFirstResponder]):
+        (-[WebView becomeFirstResponder]):
+        (-[WebView _webcore_effectiveFirstResponder]):
+        (-[WebView setNextKeyView:]):
+        (-[WebView setHoverFeedbackSuspended:]):
+
+2011-09-19  Anders Carlsson  <ander...@apple.com>
+
         Remove calls to -[WebView _usesDocumentViews] from WebFrameLoaderClient.mm
         https://bugs.webkit.org/show_bug.cgi?id=68379
 

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (95464 => 95465)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2011-09-19 20:22:03 UTC (rev 95464)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2011-09-19 20:27:42 UTC (rev 95465)
@@ -3531,14 +3531,12 @@
 
 - (WebFrame *)selectedFrame
 {
-    if (_private->usesDocumentViews) {
-        // If the first responder is a view in our tree, we get the frame containing the first responder.
-        // This is faster than searching the frame hierarchy, and will give us a result even in the case
-        // where the focused frame doesn't actually contain a selection.
-        WebFrame *focusedFrame = [self _focusedFrame];
-        if (focusedFrame)
-            return focusedFrame;
-    }
+    // If the first responder is a view in our tree, we get the frame containing the first responder.
+    // This is faster than searching the frame hierarchy, and will give us a result even in the case
+    // where the focused frame doesn't actually contain a selection.
+    WebFrame *focusedFrame = [self _focusedFrame];
+    if (focusedFrame)
+        return focusedFrame;
     
     // If the first responder is outside of our view tree, we search for a frame containing a selection.
     // There should be at most only one of these.
@@ -3824,20 +3822,16 @@
         return;
 
     Frame* coreFrame = [self _mainCoreFrame];
-    if (_private->usesDocumentViews) {
-        for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame))
-            [[[kit(frame) frameView] documentView] viewWillMoveToHostWindow:hostWindow];
-    }
+    for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame))
+        [[[kit(frame) frameView] documentView] viewWillMoveToHostWindow:hostWindow];
     if (_private->hostWindow && [self window] != _private->hostWindow)
         [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowWillCloseNotification object:_private->hostWindow];
     if (hostWindow)
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowWillClose:) name:NSWindowWillCloseNotification object:hostWindow];
     [_private->hostWindow release];
     _private->hostWindow = [hostWindow retain];
-    if (_private->usesDocumentViews) {
-        for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame))
-            [[[kit(frame) frameView] documentView] viewDidMoveToHostWindow];
-    }
+    for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame))
+        [[[kit(frame) frameView] documentView] viewDidMoveToHostWindow];
 }
 
 - (NSWindow *)hostWindow
@@ -3958,80 +3952,68 @@
 
 - (BOOL)acceptsFirstResponder
 {
-    if (_private->usesDocumentViews)
-        return [[[self mainFrame] frameView] acceptsFirstResponder];
-
-    // FIXME (Viewless): Need more code from WebHTMLView here.
-    return YES;
+    return [[[self mainFrame] frameView] acceptsFirstResponder];
 }
 
 - (BOOL)becomeFirstResponder
 {
-    if (_private->usesDocumentViews) {
-        if (_private->becomingFirstResponder) {
-            // Fix for unrepro infinite recursion reported in Radar 4448181. If we hit this assert on
-            // a debug build, we should figure out what causes the problem and do a better fix.
-            ASSERT_NOT_REACHED();
-            return NO;
-        }
-        
-        // This works together with setNextKeyView to splice the WebView into
-        // the key loop similar to the way NSScrollView does this. Note that
-        // WebFrameView has very similar code.
-        NSWindow *window = [self window];
-        WebFrameView *mainFrameView = [[self mainFrame] frameView];
+    if (_private->becomingFirstResponder) {
+        // Fix for unrepro infinite recursion reported in Radar 4448181. If we hit this assert on
+        // a debug build, we should figure out what causes the problem and do a better fix.
+        ASSERT_NOT_REACHED();
+        return NO;
+    }
+    
+    // This works together with setNextKeyView to splice the WebView into
+    // the key loop similar to the way NSScrollView does this. Note that
+    // WebFrameView has very similar code.
+    NSWindow *window = [self window];
+    WebFrameView *mainFrameView = [[self mainFrame] frameView];
 
-        NSResponder *previousFirstResponder = [[self window] _oldFirstResponderBeforeBecoming];
-        BOOL fromOutside = ![previousFirstResponder isKindOfClass:[NSView class]] || (![(NSView *)previousFirstResponder isDescendantOf:self] && previousFirstResponder != self);
+    NSResponder *previousFirstResponder = [[self window] _oldFirstResponderBeforeBecoming];
+    BOOL fromOutside = ![previousFirstResponder isKindOfClass:[NSView class]] || (![(NSView *)previousFirstResponder isDescendantOf:self] && previousFirstResponder != self);
 
-        if ([window keyViewSelectionDirection] == NSSelectingPrevious) {
-            NSView *previousValidKeyView = [self previousValidKeyView];
-            if (previousValidKeyView != self && previousValidKeyView != mainFrameView) {
-                _private->becomingFirstResponder = YES;
-                _private->becomingFirstResponderFromOutside = fromOutside;
-                [window makeFirstResponder:previousValidKeyView];
-                _private->becomingFirstResponderFromOutside = NO;
-                _private->becomingFirstResponder = NO;
-                return YES;
-            }
-            return NO;
-        }
-
-        if ([mainFrameView acceptsFirstResponder]) {
+    if ([window keyViewSelectionDirection] == NSSelectingPrevious) {
+        NSView *previousValidKeyView = [self previousValidKeyView];
+        if (previousValidKeyView != self && previousValidKeyView != mainFrameView) {
             _private->becomingFirstResponder = YES;
             _private->becomingFirstResponderFromOutside = fromOutside;
-            [window makeFirstResponder:mainFrameView];
+            [window makeFirstResponder:previousValidKeyView];
             _private->becomingFirstResponderFromOutside = NO;
             _private->becomingFirstResponder = NO;
             return YES;
-        } 
-
+        }
         return NO;
     }
 
-    // FIXME (Viewless): Need more code from WebHTMLView here.
-    return YES;
+    if ([mainFrameView acceptsFirstResponder]) {
+        _private->becomingFirstResponder = YES;
+        _private->becomingFirstResponderFromOutside = fromOutside;
+        [window makeFirstResponder:mainFrameView];
+        _private->becomingFirstResponderFromOutside = NO;
+        _private->becomingFirstResponder = NO;
+        return YES;
+    } 
+
+    return NO;
 }
 
 - (NSView *)_webcore_effectiveFirstResponder
 {
-    if (_private && _private->usesDocumentViews) {
-        if (WebFrameView *frameView = [[self mainFrame] frameView])
-            return [frameView _webcore_effectiveFirstResponder];
-    }
+    if (WebFrameView *frameView = [[self mainFrame] frameView])
+        return [frameView _webcore_effectiveFirstResponder];
+
     return [super _webcore_effectiveFirstResponder];
 }
 
 - (void)setNextKeyView:(NSView *)view
 {
-    if (_private && _private->usesDocumentViews) {
-        // This works together with becomeFirstResponder to splice the WebView into
-        // the key loop similar to the way NSScrollView does this. Note that
-        // WebFrameView has similar code.
-        if (WebFrameView *mainFrameView = [[self mainFrame] frameView]) {
-            [mainFrameView setNextKeyView:view];
-            return;
-        }
+    // This works together with becomeFirstResponder to splice the WebView into
+    // the key loop similar to the way NSScrollView does this. Note that
+    // WebFrameView has similar code.
+    if (WebFrameView *mainFrameView = [[self mainFrame] frameView]) {
+        [mainFrameView setNextKeyView:view];
+        return;
     }
 
     [super setNextKeyView:view];
@@ -4557,20 +4539,15 @@
     
     _private->hoverFeedbackSuspended = newValue;
 
-    if (_private->usesDocumentViews) {
-        id <WebDocumentView> documentView = [[[self mainFrame] frameView] documentView];
-        // FIXME: in a perfect world we'd do this in a general way that worked with any document view,
-        // such as by calling a protocol method or using respondsToSelector or sending a notification.
-        // But until there is any need for these more general solutions, we'll just hardwire it to work
-        // with WebHTMLView.
-        // Note that _hoverFeedbackSuspendedChanged needs to be called only on the main WebHTMLView, not
-        // on each subframe separately.
-        if ([documentView isKindOfClass:[WebHTMLView class]])
-            [(WebHTMLView *)documentView _hoverFeedbackSuspendedChanged];
-        return;
-    }
-
-    [self _updateMouseoverWithFakeEvent];
+    id <WebDocumentView> documentView = [[[self mainFrame] frameView] documentView];
+    // FIXME: in a perfect world we'd do this in a general way that worked with any document view,
+    // such as by calling a protocol method or using respondsToSelector or sending a notification.
+    // But until there is any need for these more general solutions, we'll just hardwire it to work
+    // with WebHTMLView.
+    // Note that _hoverFeedbackSuspendedChanged needs to be called only on the main WebHTMLView, not
+    // on each subframe separately.
+    if ([documentView isKindOfClass:[WebHTMLView class]])
+        [(WebHTMLView *)documentView _hoverFeedbackSuspendedChanged];
 }
 
 - (BOOL)isHoverFeedbackSuspended
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to