Bug 1257922 - Marionette runs on ASAN fail due to fatal NS_ERROR_NOT_IMPLEMENTED JavascriptException; r=automatedtester
authorMaja Frydrychowicz <mjzffr@gmail.com>
Fri, 29 Apr 2016 17:17:36 -0400
changeset 295757 c0e34e377be4d27ba4a36a5d992dc533b7e018bf
parent 295756 128ec8347adf4d1b903a6caab962700d222595f2
child 295758 4e237f92c4a2f0ec545371af4759ddbdf6ff12df
push id30228
push usercbook@mozilla.com
push dateTue, 03 May 2016 14:18:10 +0000
treeherdermozilla-central@0a25833062a8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersautomatedtester
bugs1257922
milestone49.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1257922 - Marionette runs on ASAN fail due to fatal NS_ERROR_NOT_IMPLEMENTED JavascriptException; r=automatedtester MozReview-Commit-ID: KcxZLYz5prb
testing/marionette/element.js
--- a/testing/marionette/element.js
+++ b/testing/marionette/element.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
-const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
+const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
 
 Cu.import("resource://gre/modules/Log.jsm");
 
 Cu.import("chrome://marionette/content/atom.js");
 Cu.import("chrome://marionette/content/error.js");
 
 const logger = Log.repository.getLogger("Marionette");
 
@@ -221,17 +221,21 @@ ElementManager.prototype = {
         }
         else if (val.nodeType == 1) {
           let elementId = this.addToKnownElements(val);
           result = {[element.LegacyKey]: elementId, [element.Key]: elementId};
         }
         else {
           result = {};
           for (let prop in val) {
-            result[prop] = this.wrapValue(val[prop]);
+            try {
+              result[prop] = this.wrapValue(val[prop]);
+            } catch (e if (e.result == Cr.NS_ERROR_NOT_IMPLEMENTED)) {
+              logger.debug(`Skipping ${prop} due to: ${e.message}`);
+            }
           }
         }
         break;
     }
 
     return result;
   },