Bug 1257922 - Marionette runs on ASAN fail due to fatal NS_ERROR_NOT_IMPLEMENTED JavascriptException. r=automatedtester, a=test-only
authorMaja Frydrychowicz <mjzffr@gmail.com>
Fri, 29 Apr 2016 17:17:36 -0400
changeset 333050 03754c55722d6a5edf08b715ef2489da9944d463
parent 333049 9cbc4f2d34a30255c3a093f6005f87b453491a7a
child 333051 b8dac4b0e8e0b87e1a72f6e5efc4f9acf73421fa
push id6048
push userkmoir@mozilla.com
push dateMon, 06 Jun 2016 19:02:08 +0000
treeherdermozilla-beta@46d72a56c57d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersautomatedtester, test-only
bugs1257922
milestone48.0a2
Bug 1257922 - Marionette runs on ASAN fail due to fatal NS_ERROR_NOT_IMPLEMENTED JavascriptException. r=automatedtester, a=test-only 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;
   },