make_css_data_uri: support @-moz-document regexp(...)
authorScott Jaderholm <jaderholm@gmail.com>
Mon, 7 Jan 2013 17:54:29 +0000 (7 12:54 -0500)
committerJohn Foerch <jjfoerch@earthlink.net>
Mon, 7 Jan 2013 17:54:29 +0000 (7 12:54 -0500)
The keyword argument $regexps allows the caller to supply one or more
regular expressions (as strings or RegExp objects), to be used in the
constructed stylesheet @-moz-document regexp(...) specification.
@-moz-document regexp(...) was added in XULRunner 6.

modules/stylesheet.js

index 518df3f..16a05d6 100644 (file)
@@ -68,19 +68,28 @@ function user_stylesheet_registered_p (url) {
  *
  * $url_prefixes: optional string, or array of strings, for a
  *                @-moz-document url-prefix(...) header.
+ *
+ * $regexps: optional string or RegExp, or array of strings or RegExps,
+ *           for a @-moz-document regexp(...) header.
  */
-define_keywords("$namespace", "$domains", "$urls", "$url_prefixes");
+define_keywords("$namespace", "$domains", "$urls", "$url_prefixes", "$regexps");
 function make_css_data_uri (rules) {
     keywords(arguments);
     var namespace = arguments.$namespace;
     var domains = arguments.$domains;
     var urls = arguments.$urls;
     var url_prefixes = arguments.$url_prefixes;
+    var regexps = arguments.$regexps;
     rules = make_array(rules).join("\n");
     var restrictions = Array.prototype.concat(
         make_array(domains).map(function (x) "domain("+x+")"),
         make_array(urls).map(function (x) "url("+x+")"),
-        make_array(url_prefixes).map(function (x) "url-prefix("+x+")"))
+        make_array(url_prefixes).map(function (x) "url-prefix("+x+")"),
+        make_array(regexps).map(function (x) {
+            return "regexp(\""+
+                ((x instanceof RegExp) ? x.source : x)+
+                "\")";
+        }))
         .join(",\n");
     if (restrictions)
         rules = "@-moz-document "+restrictions+" {\n"+rules+"\n}";