WebKit Bugzilla
Attachment 372042 Details for
Bug 198800
: REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198800-20190613121155.patch (text/plain), 9.40 KB, created by
Antoine Quint
on 2019-06-13 03:11:56 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Antoine Quint
Created:
2019-06-13 03:11:56 PDT
Size:
9.40 KB
patch
obsolete
>Subversion Revision: 246397 >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index b95d7bb1be74a51602e9409f8c804a64fe29276b..5d34732914c555ff280e562679c96d47b79bcb10 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,17 @@ >+2019-06-13 Antoine Quint <graouts@apple.com> >+ >+ REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out >+ https://bugs.webkit.org/show_bug.cgi?id=198800 >+ <rdar://problem/51679634> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Expose a private method that we need to use from DumpRenderTree. >+ >+ * WebView/WebHTMLView.mm: >+ (-[WebHTMLView _hitViewForEvent:]): >+ * WebView/WebHTMLViewPrivate.h: >+ > 2019-06-10 Sam Weinig <weinig@apple.com> > > Remove Dashboard support >diff --git a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm >index 91041128cf7ec991b558762fc9a08855b8a44546..f1bdcdb89ce33cf6c1e4e8abdf4ac31ee5e32574 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm >+++ b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm >@@ -846,7 +846,6 @@ - (BOOL)_shouldInsertText:(NSString *)text replacingDOMRange:(DOMRange *)range g > - (BOOL)_shouldReplaceSelectionWithText:(NSString *)text givenAction:(WebViewInsertAction)action; > - (DOMRange *)_selectedRange; > #if PLATFORM(MAC) >-- (NSView *)_hitViewForEvent:(NSEvent *)event; > - (void)_writeSelectionWithPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard cachedAttributedString:(NSAttributedString *)attributedString; > #endif > - (DOMRange *)_documentRange; >@@ -1337,16 +1336,6 @@ - (DOMRange *)_selectedRange > > #if PLATFORM(MAC) > >-- (NSView *)_hitViewForEvent:(NSEvent *)event >-{ >- // Usually, we hack AK's hitTest method to catch all events at the topmost WebHTMLView. >- // Callers of this method, however, want to query the deepest view instead. >- forceNSViewHitTest = YES; >- NSView *hitView = [(NSView *)[[self window] contentView] hitTest:[event locationInWindow]]; >- forceNSViewHitTest = NO; >- return hitView; >-} >- > - (void)_writeSelectionWithPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard cachedAttributedString:(NSAttributedString *)attributedString > { > // Put HTML on the pasteboard. >@@ -2571,6 +2560,20 @@ - (id)accessibilityRootElement > > #endif > >+#if PLATFORM(MAC) >+ >+- (NSView *)_hitViewForEvent:(NSEvent *)event >+{ >+ // Usually, we hack AK's hitTest method to catch all events at the topmost WebHTMLView. >+ // Callers of this method, however, want to query the deepest view instead. >+ forceNSViewHitTest = YES; >+ NSView *hitView = [(NSView *)[[self window] contentView] hitTest:[event locationInWindow]]; >+ forceNSViewHitTest = NO; >+ return hitView; >+} >+ >+#endif >+ > @end > > @implementation NSView (WebHTMLViewFileInternal) >diff --git a/Source/WebKitLegacy/mac/WebView/WebHTMLViewPrivate.h b/Source/WebKitLegacy/mac/WebView/WebHTMLViewPrivate.h >index 79ea272e369564c2ac733486db7c51c61da36ec6..f179329c461c966c01e58676f49fc82c24443cd7 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebHTMLViewPrivate.h >+++ b/Source/WebKitLegacy/mac/WebView/WebHTMLViewPrivate.h >@@ -147,4 +147,8 @@ extern const float _WebHTMLViewPrintingMaximumShrinkFactor; > - (id)accessibilityRootElement; > #endif > >+#if !TARGET_OS_IPHONE >+- (NSView *)_hitViewForEvent:(NSEvent *)event; >+#endif >+ > @end >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index e1ab018beccdf46679dbf9426a8698bc512e3a61..7a3723eb81551dec19d93a93ce0bd804cc6946e4 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,20 @@ >+2019-06-13 Antoine Quint <graouts@apple.com> >+ >+ REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out >+ https://bugs.webkit.org/show_bug.cgi?id=198800 >+ <rdar://problem/51679634> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ We didn't detect an NSScroller in a sub-frame due to WebHTMLView's implementation of -[NSView hitTest:]. We now use a private method >+ which lets use use the default implementation and correctly returns an NSScroller in a sub-frame. >+ >+ * DumpRenderTree/mac/EventSendingController.mm: >+ (eventPressedMouseButtonsSwizzlerForViewAndEvent): >+ (-[EventSendingController mouseDown:withModifiers:]): >+ (-[EventSendingController mouseUp:withModifiers:]): >+ (-[EventSendingController mouseMoveToX:Y:]): >+ > 2019-06-12 Aakash Jain <aakash_jain@apple.com> > > Replace double-quotes with single quotes in loadConfig.py >diff --git a/Tools/DumpRenderTree/mac/EventSendingController.mm b/Tools/DumpRenderTree/mac/EventSendingController.mm >index 3e88d820ae422fbb4c0d087ad3de0593f0c9aeb8..b7b23409b15f395e0c3407fa68e26bd678648de6 100644 >--- a/Tools/DumpRenderTree/mac/EventSendingController.mm >+++ b/Tools/DumpRenderTree/mac/EventSendingController.mm >@@ -47,6 +47,7 @@ > #if !PLATFORM(IOS_FAMILY) > #import <Carbon/Carbon.h> // for GetCurrentEventTime() > #import <WebKit/WebHTMLView.h> >+#import <WebKit/WebHTMLViewPrivate.h> > #import <objc/runtime.h> > #import <wtf/mac/AppKitCompatibilityDeclarations.h> > #endif >@@ -563,6 +564,13 @@ static int buildModifierFlags(const WebScriptObject* modifiers) > } > > #if !PLATFORM(IOS_FAMILY) >+static std::unique_ptr<ClassMethodSwizzler> eventPressedMouseButtonsSwizzlerForViewAndEvent(NSView* view, NSEvent* event) >+{ >+ if ([view isKindOfClass:[WebHTMLView class]]) >+ view = [(WebHTMLView*)view _hitViewForEvent:event]; >+ return ![view isKindOfClass:[NSScroller class]] ? std::make_unique<ClassMethodSwizzler>([NSEvent class], @selector(pressedMouseButtons), reinterpret_cast<IMP>(swizzledEventPressedMouseButtons)) : NULL; >+} >+ > static NSUInteger swizzledEventPressedMouseButtons() > { > return mouseButtonsCurrentlyDown; >@@ -600,7 +608,7 @@ - (void)mouseDown:(int)buttonNumber withModifiers:(WebScriptObject*)modifiers > #endif > { > #if !PLATFORM(IOS_FAMILY) >- auto eventPressedMouseButtonsSwizzler = ![subView isKindOfClass:[NSScroller class]] ? std::make_unique<ClassMethodSwizzler>([NSEvent class], @selector(pressedMouseButtons), reinterpret_cast<IMP>(swizzledEventPressedMouseButtons)) : NULL; >+ auto eventPressedMouseButtonsSwizzler = eventPressedMouseButtonsSwizzlerForViewAndEvent(subView, event); > #endif > [subView mouseDown:event]; > } >@@ -696,7 +704,7 @@ - (void)mouseUp:(int)buttonNumber withModifiers:(WebScriptObject*)modifiers > #endif > { > #if !PLATFORM(IOS_FAMILY) >- auto eventPressedMouseButtonsSwizzler = ![targetView isKindOfClass:[NSScroller class]] ? std::make_unique<ClassMethodSwizzler>([NSEvent class], @selector(pressedMouseButtons), reinterpret_cast<IMP>(swizzledEventPressedMouseButtons)) : NULL; >+ auto eventPressedMouseButtonsSwizzler = eventPressedMouseButtonsSwizzlerForViewAndEvent(targetView, event); > #endif > [targetView mouseUp:event]; > } >@@ -786,14 +794,14 @@ - (void)mouseMoveToX:(int)x Y:(int)y > [[mainFrame webView] draggingUpdated:draggingInfo]; > } else { > #if !PLATFORM(IOS_FAMILY) >- auto eventPressedMouseButtonsSwizzler = ![subView isKindOfClass:[NSScroller class]] ? std::make_unique<ClassMethodSwizzler>([NSEvent class], @selector(pressedMouseButtons), reinterpret_cast<IMP>(swizzledEventPressedMouseButtons)) : NULL; >+ auto eventPressedMouseButtonsSwizzler = eventPressedMouseButtonsSwizzlerForViewAndEvent(subView, event); > #endif > [subView mouseDragged:event]; > } > #endif > } else { > #if !PLATFORM(IOS_FAMILY) >- auto eventPressedMouseButtonsSwizzler = ![subView isKindOfClass:[NSScroller class]] ? std::make_unique<ClassMethodSwizzler>([NSEvent class], @selector(pressedMouseButtons), reinterpret_cast<IMP>(swizzledEventPressedMouseButtons)) : NULL; >+ auto eventPressedMouseButtonsSwizzler = eventPressedMouseButtonsSwizzlerForViewAndEvent(subView, event); > #endif > [subView mouseMoved:event]; > } >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7abeb707a7aec72146cd367c67383b5598bbb934..825ffa18ead96dd84049c7226f254d2fcf1e27db 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2019-06-13 Antoine Quint <graouts@apple.com> >+ >+ REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out >+ https://bugs.webkit.org/show_bug.cgi?id=198800 >+ <rdar://problem/51679634> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This test now passes reliably on WK1. >+ >+ * platform/mac-wk1/TestExpectations: >+ > 2019-06-12 Myles C. Maxfield <mmaxfield@apple.com> > > [WHLSL] Hook up compute >diff --git a/LayoutTests/platform/mac-wk1/TestExpectations b/LayoutTests/platform/mac-wk1/TestExpectations >index 73b0c0fc390bd8eb82a14bf8211c07ab1037b970..dd1cf524f0bb50b1353bc71a33bdb564a14d06d3 100644 >--- a/LayoutTests/platform/mac-wk1/TestExpectations >+++ b/LayoutTests/platform/mac-wk1/TestExpectations >@@ -724,5 +724,3 @@ webkit.org/b/198459 [ HighSierra Debug ] inspector/canvas/recording-2d-full.html > webkit.org/b/198459 [ HighSierra Debug ] inspector/canvas/recording-webgl-full.html [ Slow ] > > webkit.org/b/196508 compositing/repaint/scroller-with-foreground-layer-repaints.html [ Pass Failure ] >- >-webkit.org/b/198800 [ Mojave+ ] scrollbars/scrollbar-iframe-click-does-not-blur-content.html [ Pass Timeout ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
thorton
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198800
: 372042