aboutsummaryrefslogtreecommitdiffstats
path: root/background_scripts/settings.js
diff options
context:
space:
mode:
authorPhil Crosby2012-05-05 20:15:27 -0700
committerPhil Crosby2012-05-05 20:24:33 -0700
commit083ed4dc8282de961e1733e1d98a792d79befc5f (patch)
tree30eb6fef963d3a70204c53c6a4c22c2893326a6c /background_scripts/settings.js
parent6cec158a79263067e14ba9a8efef7bd2626203ad (diff)
downloadvimium-083ed4dc8282de961e1733e1d98a792d79befc5f.tar.bz2
Put content scripts and background scripts in separate directories, so the purpose and execution mode are more clear.
Sorry if you had patches in your local copies and this breaks them -- these renames were a long time coming, and now is better than later.
Diffstat (limited to 'background_scripts/settings.js')
-rw-r--r--background_scripts/settings.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/background_scripts/settings.js b/background_scripts/settings.js
new file mode 100644
index 00000000..a00317b0
--- /dev/null
+++ b/background_scripts/settings.js
@@ -0,0 +1,81 @@
+/*
+ * Used by everyone to manipulate localStorage.
+ */
+var settings = {
+
+ defaults: {
+ scrollStepSize: 60,
+ linkHintCharacters: "sadfjklewcmpgh",
+ filterLinkHints: false,
+ hideHud: false,
+ userDefinedLinkHintCss:
+ "div > .vimiumHintMarker {" + "\n" +
+ "/* linkhint boxes */ " + "\n" +
+ "background-color: yellow;" + "\n" +
+ "border: 1px solid #E3BE23;" + "\n" +
+ "}" + "\n\n" +
+ "div > .vimiumHintMarker span {" + "\n" +
+ "/* linkhint text */ " + "\n" +
+ "color: black;" + "\n" +
+ "font-weight: bold;" + "\n" +
+ "font-size: 12px;" + "\n" +
+ "}" + "\n\n" +
+ "div > .vimiumHintMarker > .matchingCharacter {" + "\n" +
+ "}",
+ excludedUrls: "http*://mail.google.com/*\n" +
+ "http*://www.google.com/reader/*\n",
+
+ // NOTE : If a page contains both a single angle-bracket link and a double angle-bracket link, then in
+ // most cases the single bracket link will be "prev/next page" and the double bracket link will be
+ // "first/last page", so we put the single bracket first in the pattern string so that it gets searched
+ // for first.
+
+ // "\bprev\b,\bprevious\b,\bback\b,<,←,«,≪,<<"
+ previousPatterns: "prev,previous,back,<,\u2190,\xab,\u226a,<<",
+ // "\bnext\b,\bmore\b,>,→,»,≫,>>"
+ nextPatterns: "next,more,>,\u2192,\xbb,\u226b,>>",
+ },
+
+ init: function() {
+ // settingsVersion was introduced in v1.31, and is used to coordinate data migration. We do not use
+ // previousVersion as it is used to coordinate the display of the upgrade message, and is not updated
+ // early enough when the extension loads.
+ // 1.31 was also the version where we converted all localStorage values to JSON.
+ if (!this.has("settingsVersion")) {
+ for (var key in localStorage) {
+ // filterLinkHints' checkbox state used to be stored as a string
+ if (key == "filterLinkHints")
+ localStorage[key] = localStorage[key] === "true" ? true : false;
+ else
+ localStorage[key] = JSON.stringify(localStorage[key]);
+ }
+ this.set("settingsVersion", utils.getCurrentVersion());
+ }
+ },
+
+ get: function(key) {
+ if (!(key in localStorage))
+ return this.defaults[key];
+ else
+ return JSON.parse(localStorage[key]);
+ },
+
+ set: function(key, value) {
+ // don't store the value if it is equal to the default, so we can change the defaults in the future
+ if (value === this.defaults[key])
+ this.clear(key);
+ else
+ localStorage[key] = JSON.stringify(value);
+ },
+
+ clear: function(key) {
+ delete localStorage[key];
+ },
+
+ has: function(key) {
+ return key in localStorage;
+ },
+
+};
+
+settings.init();