summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-07-02 11:54:34 +0200
committerWojtek Kosior <koszko@koszko.org>2021-07-02 11:54:34 +0200
commit8708ddd3fc564c0af3d66b50ead77e211a911254 (patch)
tree680493573f9b1cd224b3ccdfcca73042c3ad281c /common
parentb428239892337553afb2b7236e9323c3e4d33d63 (diff)
downloadbrowser-extension-8708ddd3fc564c0af3d66b50ead77e211a911254.tar.gz
browser-extension-8708ddd3fc564c0af3d66b50ead77e211a911254.zip
move parsing of url with targets to misc.js
Diffstat (limited to 'common')
-rw-r--r--common/misc.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/common/misc.js b/common/misc.js
index 5754bd0..0a3a425 100644
--- a/common/misc.js
+++ b/common/misc.js
@@ -41,6 +41,27 @@ function url_item(url)
return match[1];
}
+/*
+ * Assume a url like: https://example.com/green?illuminati=confirmed#tinky#winky
+ * This function will make it into an object like:
+ * {
+ * "base_url" : "https://example.com/green?illuminati=confirmed",
+ * "target" : "#tinky",
+ * "target2" : "#winky"
+ * }
+ * In case url doesn't have 2 #'s, target2 and target can be set to undefined.
+ */
+function url_extract_target(url)
+{
+ let url_re = /^([^#]*)((#[^#]*)(#.*)?)?$/;
+ let match = url_re.exec(url);
+ return {
+ base_url : match[1],
+ target : match[3],
+ target2 : match[4]
+ };
+}
+
/* csp rule that blocks all scripts except for those injected by us */
function csp_rule(nonce)
{
@@ -54,6 +75,7 @@ function csp_rule(nonce)
* EXPORTS_START
* EXPORT gen_unique
* EXPORT url_item
+ * EXPORT url_extract_target
* EXPORT csp_rule
* EXPORTS_END
*/