Changeset 235528 in webkit
- Timestamp:
- Aug 30, 2018 3:50:33 PM (6 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r235525 r235528 1 2018-08-30 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Followup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures 4 https://bugs.webkit.org/show_bug.cgi?id=185965 5 6 Reviewed by Andy Estes. 7 8 The first attempt to fix these flaky tests on iOS caused timeouts on macOS while waiting for a "loaded" message 9 from the page. To (hopefully) fix this across both platforms, make sure that we first register our script 10 message handlers in the UI process *before* evaluating script that could propagate the script message. 11 12 * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: 13 (-[TestWKWebView waitForMessage:afterEvaluatingScript:]): 14 (TEST): 15 1 16 2018-08-30 Thomas Denney <tdenney@apple.com> 2 17 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm
r235504 r235528 50 50 #endif 51 51 52 @interface TestWKWebView (PasteImage) 53 - (void)waitForMessage:(NSString *)message afterEvaluatingScript:(NSString *)script; 54 @end 55 56 @implementation TestWKWebView (PasteImage) 57 58 - (void)waitForMessage:(NSString *)message afterEvaluatingScript:(NSString *)script 59 { 60 __block bool evaluatedScript = false; 61 __block bool receivedMessage = false; 62 [self performAfterReceivingMessage:message action:^{ 63 receivedMessage = true; 64 }]; 65 [self evaluateJavaScript:script completionHandler:^(id, NSError *) { 66 evaluatedScript = true; 67 }]; 68 TestWebKitAPI::Util::run(&evaluatedScript); 69 TestWebKitAPI::Util::run(&receivedMessage); 70 } 71 72 @end 73 52 74 TEST(PasteImage, PasteGIFImage) 53 75 { … … 67 89 EXPECT_WK_STREQ("true", [webView stringByEvaluatingJavaScript:@"dataTransfer.files.includes(gifItem.file).toString()"]); 68 90 69 [webView stringByEvaluatingJavaScript:@"insertFileAsImage(gifItem.file)"]; 70 [webView waitForMessage:@"loaded"]; 91 [webView waitForMessage:@"loaded" afterEvaluatingScript:@"insertFileAsImage(gifItem.file)"]; 71 92 EXPECT_WK_STREQ("blob:", [webView stringByEvaluatingJavaScript:@"url = new URL(imageElement.src); url.protocol"]); 72 93 EXPECT_WK_STREQ("400", [webView stringByEvaluatingJavaScript:@"imageElement.width"]); … … 90 111 EXPECT_WK_STREQ("true", [webView stringByEvaluatingJavaScript:@"dataTransfer.files.includes(jpegItem.file).toString()"]); 91 112 92 [webView stringByEvaluatingJavaScript:@"insertFileAsImage(jpegItem.file)"]; 93 [webView waitForMessage:@"loaded"]; 113 [webView waitForMessage:@"loaded" afterEvaluatingScript:@"insertFileAsImage(jpegItem.file)"]; 94 114 EXPECT_WK_STREQ("blob:", [webView stringByEvaluatingJavaScript:@"url = new URL(imageElement.src); url.protocol"]); 95 115 EXPECT_WK_STREQ("600", [webView stringByEvaluatingJavaScript:@"imageElement.width"]); … … 113 133 EXPECT_WK_STREQ("true", [webView stringByEvaluatingJavaScript:@"dataTransfer.files.includes(pngItem.file).toString()"]); 114 134 115 [webView stringByEvaluatingJavaScript:@"insertFileAsImage(pngItem.file)"]; 116 [webView waitForMessage:@"loaded"]; 135 [webView waitForMessage:@"loaded" afterEvaluatingScript:@"insertFileAsImage(pngItem.file)"]; 117 136 EXPECT_WK_STREQ("blob:", [webView stringByEvaluatingJavaScript:@"url = new URL(imageElement.src); url.protocol"]); 118 137 EXPECT_WK_STREQ("200", [webView stringByEvaluatingJavaScript:@"imageElement.width"]);
Note: See TracChangeset
for help on using the changeset viewer.