Title: [240852] releases/WebKitGTK/webkit-2.22/Source/WebDriver
Revision
240852
Author
mcatanz...@igalia.com
Date
2019-02-01 09:00:05 -0800 (Fri, 01 Feb 2019)

Log Message

Merge r240778 - [GLIB] WebDriver: race condition when session starts
https://bugs.webkit.org/show_bug.cgi?id=194086

Reviewed by Philippe Normand.

This is causing flakiness in the bots, I can only reproduce it locally when my CPUs are at 100%. The thing
is that sometimes we receive an empty target list right after the connection is established because
RemoteInspector::setClient() calls pushListingsSoon() before a target has been registered. Most of the times the
target is registered before the listing is pushed, but it can happen that when pushed, the listing is still
empty. After the target is registered an empty target list means the connection was lost, so we clear the
connection and target. We need to ensure we do that only after the target has been registered.

* glib/SessionHostGlib.cpp:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.22/Source/WebDriver/ChangeLog (240851 => 240852)


--- releases/WebKitGTK/webkit-2.22/Source/WebDriver/ChangeLog	2019-02-01 17:00:02 UTC (rev 240851)
+++ releases/WebKitGTK/webkit-2.22/Source/WebDriver/ChangeLog	2019-02-01 17:00:05 UTC (rev 240852)
@@ -1,3 +1,19 @@
+2019-01-31  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GLIB] WebDriver: race condition when session starts
+        https://bugs.webkit.org/show_bug.cgi?id=194086
+
+        Reviewed by Philippe Normand.
+
+        This is causing flakiness in the bots, I can only reproduce it locally when my CPUs are at 100%. The thing
+        is that sometimes we receive an empty target list right after the connection is established because
+        RemoteInspector::setClient() calls pushListingsSoon() before a target has been registered. Most of the times the
+        target is registered before the listing is pushed, but it can happen that when pushed, the listing is still
+        empty. After the target is registered an empty target list means the connection was lost, so we clear the
+        connection and target. We need to ensure we do that only after the target has been registered.
+
+        * glib/SessionHostGlib.cpp:
+
 2018-08-13  Carlos Garcia Campos  <cgar...@igalia.com>
 
         WebDriver: do not try to set the caret when focusing non text element in send keys command

Modified: releases/WebKitGTK/webkit-2.22/Source/WebDriver/glib/SessionHostGlib.cpp (240851 => 240852)


--- releases/WebKitGTK/webkit-2.22/Source/WebDriver/glib/SessionHostGlib.cpp	2019-02-01 17:00:02 UTC (rev 240851)
+++ releases/WebKitGTK/webkit-2.22/Source/WebDriver/glib/SessionHostGlib.cpp	2019-02-01 17:00:05 UTC (rev 240852)
@@ -328,9 +328,11 @@
     ASSERT(targetList.size() <= 1);
     if (targetList.isEmpty()) {
         m_target = Target();
-        m_connectionID = 0;
-        if (m_dbusConnection)
-            g_dbus_connection_close(m_dbusConnection.get(), nullptr, nullptr, nullptr);
+        if (m_connectionID) {
+            if (m_dbusConnection)
+                g_dbus_connection_close(m_dbusConnection.get(), nullptr, nullptr, nullptr);
+            m_connectionID = 0;
+        }
         return;
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to