Title: [171880] trunk/Tools
- Revision
- 171880
- Author
- [email protected]
- Date
- 2014-07-31 12:21:28 -0700 (Thu, 31 Jul 2014)
Log Message
media/track/add-and-remove-track.html and media/media-fragments/TC0001.html are flaky
on Mac WK2 EWS, asserting under TestRunner::removeAllWebNotificationPermissions
https://bugs.webkit.org/show_bug.cgi?id=135418
Reviewed by Anders Carlsson.
This was only happening in shared web process mode, because WKBundlePostMessage
has different behavior then. When there is no process, the message is dropped on
the floor in multiple process mode, but it's stored to be delivered after launch
in shared process mode.
So, calling resetStateToConsistentValues() resulted in storing a Reset bundle message
that was delivered immediately after launch, when there was nothing to reset.
We don't actually need to reset anything at this point, as the previous call has
already reset everything UI process side, and web process is brand new. All we need
is to reattach the page to a process, as invoke() expects one to exist.
* WebKitTestRunner/TestController.cpp: (WTR::TestController::reattachPageToWebProcess):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (171879 => 171880)
--- trunk/Tools/ChangeLog 2014-07-31 19:21:10 UTC (rev 171879)
+++ trunk/Tools/ChangeLog 2014-07-31 19:21:28 UTC (rev 171880)
@@ -1,3 +1,27 @@
+2014-07-31 Alexey Proskuryakov <[email protected]>
+
+ media/track/add-and-remove-track.html and media/media-fragments/TC0001.html are flaky
+ on Mac WK2 EWS, asserting under TestRunner::removeAllWebNotificationPermissions
+ https://bugs.webkit.org/show_bug.cgi?id=135418
+
+ Reviewed by Anders Carlsson.
+
+ This was only happening in shared web process mode, because WKBundlePostMessage
+ has different behavior then. When there is no process, the message is dropped on
+ the floor in multiple process mode, but it's stored to be delivered after launch
+ in shared process mode.
+
+ So, calling resetStateToConsistentValues() resulted in storing a Reset bundle message
+ that was delivered immediately after launch, when there was nothing to reset.
+
+ We don't actually need to reset anything at this point, as the previous call has
+ already reset everything UI process side, and web process is brand new. All we need
+ is to reattach the page to a process, as invoke() expects one to exist.
+
+ * WebKitTestRunner/TestController.cpp: (WTR::TestController::reattachPageToWebProcess):
+ * WebKitTestRunner/TestController.h:
+ * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
+
2014-07-31 Dan Bernstein <[email protected]>
[WK2] Regression tests can't load HTTPS pages with NetworkProcess due to self-signed certificate
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (171879 => 171880)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2014-07-31 19:21:10 UTC (rev 171879)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2014-07-31 19:21:28 UTC (rev 171880)
@@ -663,6 +663,14 @@
WKPageTerminate(m_mainWebView->page());
}
+void TestController::reattachPageToWebProcess()
+{
+ // Loading a web page is the only way to reattach an existing page to a process.
+ m_doneResetting = false;
+ WKPageLoadURL(m_mainWebView->page(), blankURL());
+ runUntil(m_doneResetting, LongTimeout);
+}
+
void TestController::updateWebViewSizeForTest(const TestInvocation& test)
{
bool isSVGW3CTest = strstr(test.pathOrURL(), "svg/W3C-SVG-1.1") || strstr(test.pathOrURL(), "svg\\W3C-SVG-1.1");
Modified: trunk/Tools/WebKitTestRunner/TestController.h (171879 => 171880)
--- trunk/Tools/WebKitTestRunner/TestController.h 2014-07-31 19:21:10 UTC (rev 171879)
+++ trunk/Tools/WebKitTestRunner/TestController.h 2014-07-31 19:21:28 UTC (rev 171880)
@@ -98,6 +98,7 @@
void resetPreferencesToConsistentValues();
void terminateWebContentProcess();
+ void reattachPageToWebProcess();
WorkQueueManager& workQueueManager() { return m_workQueueManager; }
Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (171879 => 171880)
--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2014-07-31 19:21:10 UTC (rev 171879)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2014-07-31 19:21:28 UTC (rev 171880)
@@ -205,7 +205,8 @@
// The process froze while loading about:blank, let's start a fresh one.
// It would be nice to report that the previous test froze after dumping results, but we have no way to do that.
TestController::shared().terminateWebContentProcess();
- TestController::shared().resetStateToConsistentValues();
+ // Make sure that we have a process, as invoke() will need one to send bundle messages for the next test.
+ TestController::shared().reattachPageToWebProcess();
}
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes