Bug 1239371 - Consider state of boolean values for marionette.logging pref; r?AutomatedTester
The patch for
bug 1239363 treated the marionette.logging preference as
a defined/undefined state, and didn't look specifically at the state of
the variable itself.
This meant that if it was set to false, logging would still be enabled.
As this was not the original behaviour were adding backwards compatibility
for, this patch corrects this problem by making false equivalent to the
default (Log.Level.Info).
--- a/testing/marionette/components/marionettecomponent.js
+++ b/testing/marionette/components/marionettecomponent.js
@@ -56,23 +56,32 @@ MarionetteComponent.prototype.determineL
let level = Log.Level.Info;
#ifdef DEBUG
level = Log.Level.Trace;
#endif
// marionette.logging pref can override default
// with an entry from the Log.Level enum
if (Preferences.has(LOG_PREF)) {
- let s = Preferences.get(LOG_PREF);
- if (typeof s == "string") {
- s = s.toLowerCase();
- s = s.charAt(0).toUpperCase() + s.slice(1);
- level = Log.Level[s];
- } else {
- level = Log.Level.Trace;
+ let p = Preferences.get(LOG_PREF);
+
+ switch (typeof p) {
+ // Gecko >= 46
+ case "string":
+ let s = p.toLowerCase();
+ s = s.charAt(0).toUpperCase() + s.slice(1);
+ level = Log.Level[s];
+ break;
+
+ // Gecko <= 45
+ case "boolean":
+ if (p) {
+ level = Log.Level.Trace;
+ }
+ break;
}
}
return level;
};
MarionetteComponent.prototype.onSocketAccepted = function(
socket, transport) {