aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/settings.coffee4
-rw-r--r--pages/options.coffee11
2 files changed, 2 insertions, 13 deletions
diff --git a/lib/settings.coffee b/lib/settings.coffee
index 4fafa7d3..ca4e77b0 100644
--- a/lib/settings.coffee
+++ b/lib/settings.coffee
@@ -55,9 +55,7 @@ Settings =
set: (key, value) ->
# Don't store the value if it is equal to the default, so we can change the defaults in the future.
- # FIXME(smblott). This test is broken for exclusionRules (for which it is never true). In this case, we
- # need some kind of structural equality (or perhaps comparison of JSONified strings).
- if value == @defaults[key]
+ if JSON.stringify(value) == JSON.stringify @defaults[key]
@clear key
else
jsonValue = JSON.stringify value
diff --git a/pages/options.coffee b/pages/options.coffee
index 93b0be11..323215d0 100644
--- a/pages/options.coffee
+++ b/pages/options.coffee
@@ -32,12 +32,9 @@ class Option
# Write this option's new value back to localStorage, if necessary.
save: ->
value = @readValueFromElement()
- if not @areEqual value, @previous
+ if JSON.stringify value != JSON.stringify @previous
bgSettings.set @field, @previous = value
- # Compare values; this is overridden by sub-classes.
- areEqual: (a,b) -> a == b
-
restoreToDefault: ->
bgSettings.clear @field
@fetch()
@@ -125,12 +122,6 @@ class ExclusionRulesOption extends Option
passKeys: @getPassKeys(element).value.trim()
rules.filter (rule) -> rule.pattern
- areEqual: (a,b) ->
- # Flatten each list of rules to a newline-separated string representation, and then use string equality.
- # This is correct because patterns and passKeys cannot themselves contain newlines.
- flatten = (rule) -> if rule and rule.pattern then rule.pattern + "\n" + rule.passKeys else ""
- a.map(flatten).join("\n") == b.map(flatten).join("\n")
-
# Accessors for the three main sub-elements of an "exclusionRuleTemplateInstance".
getPattern: (element) -> element.querySelector(".pattern")
getPassKeys: (element) -> element.querySelector(".passKeys")