summaryrefslogtreecommitdiff
path: root/data/extensions/https-everywhere@eff.org/util.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/util.js')
-rw-r--r--data/extensions/https-everywhere@eff.org/util.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/data/extensions/https-everywhere@eff.org/util.js b/data/extensions/https-everywhere@eff.org/util.js
new file mode 100644
index 0000000..30ef70b
--- /dev/null
+++ b/data/extensions/https-everywhere@eff.org/util.js
@@ -0,0 +1,65 @@
+"use strict";
+
+(function(exports) {
+
+var VERB = 1;
+var DBUG = 2;
+var INFO = 3;
+var NOTE = 4;
+var WARN = 5;
+// FYI: Logging everything is /very/ slow. Chrome will log & buffer
+// these console logs even when the debug tools are closed. :(
+
+// TODO: Add an easy UI to change the log level.
+// (Developers can just type DEFAULT_LOG_LEVEL=VERB in the console)
+var DEFAULT_LOG_LEVEL = NOTE;
+console.log("Hey developer! Want to see more verbose logging?");
+console.log("Type this into the console: DEFAULT_LOG_LEVEL=VERB");
+console.log("Accepted levels are VERB, DBUG, INFO, NOTE and WARN, default is NOTE");
+
+function log(level, str) {
+ if (level >= DEFAULT_LOG_LEVEL) {
+ if (level === WARN) {
+ // Show warning with a little yellow icon in Chrome.
+ console.warn(str);
+ } else {
+ console.log(str);
+ }
+ }
+}
+
+/**
+ * Load a file packaged with the extension
+ *
+ * @param url: a relative URL to local file
+ */
+function loadExtensionFile(url, returnType) {
+ var xhr = new XMLHttpRequest();
+ // Use blocking XHR to ensure everything is loaded by the time
+ // we return.
+ xhr.open("GET", chrome.extension.getURL(url), false);
+ xhr.send(null);
+ // Get file contents
+ if (xhr.readyState !== 4) {
+ return;
+ }
+ if (returnType === 'xml') {
+ return xhr.responseXML;
+ }
+ if (returnType === 'json') {
+ return JSON.parse(xhr.responseText);
+ }
+ return xhr.responseText;
+}
+
+Object.assign(exports, {
+ VERB,
+ DBUG,
+ INFO,
+ NOTE,
+ WARN,
+ log,
+ loadExtensionFile
+});
+
+})(typeof exports == 'undefined' ? require.scopes.util = {} : exports);