Bug 1400256 - Recognise web element references in evaluate.toJSON. r?whimboo draft
authorAndreas Tolfsen <ato@sny.no>
Thu, 05 Oct 2017 17:55:52 +0100
changeset 683316 9180b677e04d0c3cf33d0899e19a876136c23492
parent 683315 5c130420a2cf9ad81edf90605fcfd2398401ed33
child 683317 2a1e7aff0de3de430301f3fa475899239792e8ca
child 683398 917e12d621b54ac99b8e0f60a2250819e2e128a3
push id85331
push userbmo:ato@sny.no
push dateThu, 19 Oct 2017 14:55:23 +0000
reviewerswhimboo
bugs1400256
milestone58.0a1
Bug 1400256 - Recognise web element references in evaluate.toJSON. r?whimboo MozReview-Commit-ID: BvKHGzsF0ie
testing/marionette/evaluate.js
--- a/testing/marionette/evaluate.js
+++ b/testing/marionette/evaluate.js
@@ -271,20 +271,24 @@ evaluate.toJSON = function(obj, seenEls)
       t == "[object Number]" ||
       t == "[object String]") {
     return obj;
 
   // Array, NodeList, HTMLCollection, et al.
   } else if (element.isCollection(obj)) {
     return [...obj].map(el => evaluate.toJSON(el, seenEls));
 
+  // WebElement
+  } else if (WebElement.isReference(obj)) {
+    return obj;
+
   // Element, SVGElement, XULElement
   } else if (element.isElement(obj)) {
-    let uuid = seenEls.add(obj);
-    return element.makeWebElement(uuid);
+    let webEl = seenEls.add(obj);
+    return webEl.toJSON();
 
   // custom JSON representation
   } else if (typeof obj.toJSON == "function") {
     let unsafeJSON = obj.toJSON();
     return evaluate.toJSON(unsafeJSON, seenEls);
   }
 
   // arbitrary objects + files