Bug 1420372 - check that instance pid matches the pid in capabilities. draft
authorNathaniel Nebel <me@nathanielnebel.com>
Mon, 27 Nov 2017 03:36:13 -0800
changeset 703671 5477b920e61aa8754d6363c246e09485d8504895
parent 703662 cad9c9573579698c223b4b6cb53ca723cd930ad2
child 741860 27f56c560efe034de914a214f3c8917c999e757d
push id90914
push userbmo:me@nathanielnebel.com
push dateMon, 27 Nov 2017 11:36:47 +0000
bugs1420372
milestone59.0a1
Bug 1420372 - check that instance pid matches the pid in capabilities. If the pids do not match Marionette could connect to the wrong instance of Firefox. MozReview-Commit-ID: Js0chkHplbB
testing/marionette/client/marionette_driver/marionette.py
--- a/testing/marionette/client/marionette_driver/marionette.py
+++ b/testing/marionette/client/marionette_driver/marionette.py
@@ -1235,16 +1235,23 @@ class Marionette(object):
         if "capabilities" not in body and capabilities is not None:
             body["capabilities"] = dict(capabilities)
 
         resp = self._send_message("newSession", body)
         self.session_id = resp["sessionId"]
         self.session = resp["capabilities"]
         # fallback to processId can be removed in Firefox 55
         self.process_id = self.session.get("moz:processID", self.session.get("processId"))
+
+        if self.instance.runner.process_handler.pid != self.process_id:
+            raise errors.MarionetteException("Instance PID '{0}' doesn't match "
+                                             "the PID from capabilities {1}"
+                                             .format(self.instance.runner.process_handler.pid,
+                                                     self.process_id))
+
         self.profile = self.session.get("moz:profile")
 
         return self.session
 
     @property
     def test_name(self):
         return self._test_name