Title: [235528] trunk/Tools
- Revision
- 235528
- Author
- wenson_hs...@apple.com
- Date
- 2018-08-30 15:50:33 -0700 (Thu, 30 Aug 2018)
Log Message
Followup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=185965
Reviewed by Andy Estes.
The first attempt to fix these flaky tests on iOS caused timeouts on macOS while waiting for a "loaded" message
from the page. To (hopefully) fix this across both platforms, make sure that we first register our script
message handlers in the UI process *before* evaluating script that could propagate the script message.
* TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
(-[TestWKWebView waitForMessage:afterEvaluatingScript:]):
(TEST):
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (235527 => 235528)
--- trunk/Tools/ChangeLog 2018-08-30 22:37:34 UTC (rev 235527)
+++ trunk/Tools/ChangeLog 2018-08-30 22:50:33 UTC (rev 235528)
@@ -1,3 +1,18 @@
+2018-08-30 Wenson Hsieh <wenson_hs...@apple.com>
+
+ Followup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures
+ https://bugs.webkit.org/show_bug.cgi?id=185965
+
+ Reviewed by Andy Estes.
+
+ The first attempt to fix these flaky tests on iOS caused timeouts on macOS while waiting for a "loaded" message
+ from the page. To (hopefully) fix this across both platforms, make sure that we first register our script
+ message handlers in the UI process *before* evaluating script that could propagate the script message.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
+ (-[TestWKWebView waitForMessage:afterEvaluatingScript:]):
+ (TEST):
+
2018-08-30 Thomas Denney <tden...@apple.com>
[WHLSL] Implement tests to verify array indexing order matches our desires
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm (235527 => 235528)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm 2018-08-30 22:37:34 UTC (rev 235527)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm 2018-08-30 22:50:33 UTC (rev 235528)
@@ -49,6 +49,28 @@
}
#endif
+@interface TestWKWebView (PasteImage)
+- (void)waitForMessage:(NSString *)message afterEvaluatingScript:(NSString *)script;
+@end
+
+@implementation TestWKWebView (PasteImage)
+
+- (void)waitForMessage:(NSString *)message afterEvaluatingScript:(NSString *)script
+{
+ __block bool evaluatedScript = false;
+ __block bool receivedMessage = false;
+ [self performAfterReceivingMessage:message action:^{
+ receivedMessage = true;
+ }];
+ [self evaluateJavaScript:script completionHandler:^(id, NSError *) {
+ evaluatedScript = true;
+ }];
+ TestWebKitAPI::Util::run(&evaluatedScript);
+ TestWebKitAPI::Util::run(&receivedMessage);
+}
+
+@end
+
TEST(PasteImage, PasteGIFImage)
{
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 400, 400)]);
@@ -66,8 +88,7 @@
EXPECT_WK_STREQ("image.gif", [webView stringByEvaluatingJavaScript:@"gifItem.file.name"]);
EXPECT_WK_STREQ("true", [webView stringByEvaluatingJavaScript:@"dataTransfer.files.includes(gifItem.file).toString()"]);
- [webView stringByEvaluatingJavaScript:@"insertFileAsImage(gifItem.file)"];
- [webView waitForMessage:@"loaded"];
+ [webView waitForMessage:@"loaded" afterEvaluatingScript:@"insertFileAsImage(gifItem.file)"];
EXPECT_WK_STREQ("blob:", [webView stringByEvaluatingJavaScript:@"url = "" URL(imageElement.src); url.protocol"]);
EXPECT_WK_STREQ("400", [webView stringByEvaluatingJavaScript:@"imageElement.width"]);
}
@@ -89,8 +110,7 @@
EXPECT_WK_STREQ("image.jpeg", [webView stringByEvaluatingJavaScript:@"jpegItem.file.name"]);
EXPECT_WK_STREQ("true", [webView stringByEvaluatingJavaScript:@"dataTransfer.files.includes(jpegItem.file).toString()"]);
- [webView stringByEvaluatingJavaScript:@"insertFileAsImage(jpegItem.file)"];
- [webView waitForMessage:@"loaded"];
+ [webView waitForMessage:@"loaded" afterEvaluatingScript:@"insertFileAsImage(jpegItem.file)"];
EXPECT_WK_STREQ("blob:", [webView stringByEvaluatingJavaScript:@"url = "" URL(imageElement.src); url.protocol"]);
EXPECT_WK_STREQ("600", [webView stringByEvaluatingJavaScript:@"imageElement.width"]);
}
@@ -112,8 +132,7 @@
EXPECT_WK_STREQ("image.png", [webView stringByEvaluatingJavaScript:@"pngItem.file.name"]);
EXPECT_WK_STREQ("true", [webView stringByEvaluatingJavaScript:@"dataTransfer.files.includes(pngItem.file).toString()"]);
- [webView stringByEvaluatingJavaScript:@"insertFileAsImage(pngItem.file)"];
- [webView waitForMessage:@"loaded"];
+ [webView waitForMessage:@"loaded" afterEvaluatingScript:@"insertFileAsImage(pngItem.file)"];
EXPECT_WK_STREQ("blob:", [webView stringByEvaluatingJavaScript:@"url = "" URL(imageElement.src); url.protocol"]);
EXPECT_WK_STREQ("200", [webView stringByEvaluatingJavaScript:@"imageElement.width"]);
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes