summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-08-06 17:17:45 +0200
committerWojtek Kosior <koszko@koszko.org>2021-08-06 17:17:45 +0200
commit792fbe187bdffca4a748e88d66ea29f8936ae5c8 (patch)
tree5ccc504bd06cbae6bba12bc4f2e060fa2ad96ec3 /common
parent90896bcfeb4e55c78d9a15700a6a4580f0df6365 (diff)
downloadbrowser-extension-792fbe187bdffca4a748e88d66ea29f8936ae5c8.tar.gz
browser-extension-792fbe187bdffca4a748e88d66ea29f8936ae5c8.zip
Facilitate installation of scripts from the repository
This commit includes: * removal of page_info_server * running of storage client in popup context * extraction of some common CSS to a separate file * extraction of scripts import view to a separate file * addition of a facility to conveniently clone complex structures from DOM (in DOM_helpers.js) * addition of hydrilla repo url to default settings * other minor changes and of course changes related to the actual installation of scripts from the repo
Diffstat (limited to 'common')
-rw-r--r--common/connection_types.js3
-rw-r--r--common/misc.js14
-rw-r--r--common/sanitize_JSON.js2
-rw-r--r--common/stored_types.js4
4 files changed, 19 insertions, 4 deletions
diff --git a/common/connection_types.js b/common/connection_types.js
index 41bde75..88c6964 100644
--- a/common/connection_types.js
+++ b/common/connection_types.js
@@ -13,8 +13,7 @@
const CONNECTION_TYPE = {
REMOTE_STORAGE : "0",
PAGE_ACTIONS : "1",
- PAGE_INFO : "2",
- ACTIVITY_INFO : "3"
+ ACTIVITY_INFO : "2"
};
/*
diff --git a/common/misc.js b/common/misc.js
index a59ec14..7158d32 100644
--- a/common/misc.js
+++ b/common/misc.js
@@ -12,6 +12,7 @@
* IMPORT browser
* IMPORT is_chrome
* IMPORT TYPE_NAME
+ * IMPORT TYPE_PREFIX
* IMPORTS_END
*/
@@ -154,6 +155,18 @@ function sign_policy(policy, now, hours_offset) {
return gen_unique(time + policy);
}
+/* Regexes and objest to use as/in schemas for parse_json_with_schema(). */
+const nonempty_string_matcher = /.+/;
+
+const matchers = {
+ sha256: /^[0-9a-f]{64}$/,
+ nonempty_string: nonempty_string_matcher,
+ component: [
+ new RegExp(`^[${TYPE_PREFIX.SCRIPT}${TYPE_PREFIX.BAG}]$`),
+ nonempty_string_matcher
+ ]
+};
+
/*
* EXPORTS_START
* EXPORT gen_nonce
@@ -165,5 +178,6 @@ function sign_policy(policy, now, hours_offset) {
* EXPORT nice_name
* EXPORT open_in_settings
* EXPORT is_privileged_url
+ * EXPORT matchers
* EXPORTS_END
*/
diff --git a/common/sanitize_JSON.js b/common/sanitize_JSON.js
index 8268d3e..8b86d2d 100644
--- a/common/sanitize_JSON.js
+++ b/common/sanitize_JSON.js
@@ -37,7 +37,7 @@ function sanitize_unknown(schema, item)
let _default = undefined;
if (!Array.isArray(schema) || schema[1] === "matchentry" ||
- schema.length < 2 || !["ordefault", "or"].includes(schema))
+ schema.length < 2 || !["ordefault", "or"].includes(schema[1]))
return sanitize_unknown_no_alternatives(schema, item);
if ((schema.length & 1) !== 1) {
diff --git a/common/stored_types.js b/common/stored_types.js
index 304842b..bfceba6 100644
--- a/common/stored_types.js
+++ b/common/stored_types.js
@@ -18,7 +18,9 @@ const TYPE_PREFIX = {
PAGE : "p",
BAG : "b",
SCRIPT : "s",
- VAR : "_"
+ VAR : "_",
+ /* Url prefix is not used in stored settings. */
+ URL : "u"
};
const TYPE_NAME = {