Changeset 245988 in webkit
- Timestamp:
- May 31, 2019, 3:02:14 PM (7 years ago)
- Location:
- trunk/Tools
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm (modified) (3 diffs)
-
TestWebKitAPI/Tests/ios/SynchronousTimeoutTests.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r245983 r245988 1 2019-05-31 Tim Horton <timothy_horton@apple.com> 2 3 REGRESSION: WebKit.InteractionDeadlockAfterCrash and SynchronousTimeoutTests.UnresponsivePageDoesNotCausePositionInformationToHangUI API tests are failing 4 https://bugs.webkit.org/show_bug.cgi?id=198432 5 <rdar://problem/51266033> 6 7 Reviewed by Wenson Hsieh. 8 9 * TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm: 10 (TEST): 11 (recursiveFindHighlightLongPressRecognizer): Deleted. 12 * TestWebKitAPI/Tests/ios/SynchronousTimeoutTests.mm: 13 (TestWebKitAPI::TEST): 14 (TestWebKitAPI::recursiveFindHighlightLongPressRecognizer): Deleted. 15 1 16 2019-05-31 Alex Christensen <achristensen@webkit.org> 2 17 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm
r242339 r245988 34 34 #import <wtf/RetainPtr.h> 35 35 36 @interface NSObject ()37 38 - (BOOL)hasSelectablePositionAtPoint:(CGPoint)point;39 40 @end41 42 36 #if PLATFORM(IOS_FAMILY) 43 37 44 static UIGestureRecognizer *recursiveFindHighlightLongPressRecognizer(UIView *view) 45 { 46 for (UIGestureRecognizer *recognizer in view.gestureRecognizers) { 47 if ([recognizer isKindOfClass:NSClassFromString(@"_UIWebHighlightLongPressGestureRecognizer")]) 48 return recognizer; 49 } 50 51 for (UIView *subview in view.subviews) { 52 UIGestureRecognizer *recognizer = recursiveFindHighlightLongPressRecognizer(subview); 53 if (recognizer) 54 return recognizer; 55 } 56 57 return nil; 58 } 38 @interface WKContentView () 39 - (BOOL)hasSelectablePositionAtPoint:(CGPoint)point; 40 @end 59 41 60 42 TEST(WebKit, InteractionDeadlockAfterCrash) … … 62 44 RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]); 63 45 64 RetainPtr< WKWebView> webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) configuration:configuration.get()]);46 RetainPtr<TestWKWebView> webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) configuration:configuration.get()]); 65 47 66 48 [webView loadHTMLString:@"test" baseURL:nil]; 67 49 [webView _test_waitForDidFinishNavigation]; 68 50 69 UIGestureRecognizer *highlightLongPressRecognizer = recursiveFindHighlightLongPressRecognizer(webView.get());70 UIView *interactionView = highlightLongPressRecognizer.view;71 EXPECT_NOT_NULL(highlightLongPressRecognizer);72 73 51 // This will start an asynchronous interaction information update. 74 BOOL shouldBegin = [[highlightLongPressRecognizer delegate] gestureRecognizerShouldBegin:highlightLongPressRecognizer]; 75 EXPECT_TRUE(shouldBegin); 52 [webView _simulateLongPressActionAtLocation:CGPointMake(50, 50)]; 76 53 77 54 [webView _killWebContentProcessAndResetState]; … … 81 58 82 59 // This will synchronously ensure we have up-to-date interaction information. 83 [ interactionViewhasSelectablePositionAtPoint:CGPointZero];60 [[webView wkContentView] hasSelectablePositionAtPoint:CGPointZero]; 84 61 } 85 62 -
trunk/Tools/TestWebKitAPI/Tests/ios/SynchronousTimeoutTests.mm
r242339 r245988 33 33 #if PLATFORM(IOS_FAMILY) 34 34 35 using namespace TestWebKitAPI; 36 37 @interface NSObject () 38 35 @interface WKContentView () 39 36 - (BOOL)hasSelectablePositionAtPoint:(CGPoint)point; 40 41 37 @end 42 38 43 39 namespace TestWebKitAPI { 44 45 static UIGestureRecognizer *recursiveFindHighlightLongPressRecognizer(UIView *view) 46 { 47 for (UIGestureRecognizer *recognizer in view.gestureRecognizers) { 48 if ([recognizer isKindOfClass:NSClassFromString(@"_UIWebHighlightLongPressGestureRecognizer")]) 49 return recognizer; 50 } 51 52 for (UIView *subview in view.subviews) { 53 UIGestureRecognizer *recognizer = recursiveFindHighlightLongPressRecognizer(subview); 54 if (recognizer) 55 return recognizer; 56 } 57 58 return nil; 59 } 60 40 61 41 TEST(SynchronousTimeoutTests, UnresponsivePageDoesNotCausePositionInformationToHangUI) 62 42 { 63 43 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500)]); 64 44 [webView synchronouslyLoadTestPageNamed:@"simple"]; 65 66 UIGestureRecognizer *highlightLongPressRecognizer = recursiveFindHighlightLongPressRecognizer(webView.get()); 67 UIView *interactionView = highlightLongPressRecognizer.view; 68 EXPECT_NOT_NULL(highlightLongPressRecognizer); 69 45 70 46 [webView evaluateJavaScript:@"while(1);" completionHandler:nil]; 71 47 72 48 // The test passes if we can long press and still finish the test. 73 [ interactionViewhasSelectablePositionAtPoint:CGPointMake(100, 100)];49 [[webView wkContentView] hasSelectablePositionAtPoint:CGPointMake(100, 100)]; 74 50 } 75 51 76 77 52 } // namespace TestWebKitAPI 78 53
Note:
See TracChangeset
for help on using the changeset viewer.