First commit
diff --git a/genmanifest/testdata/manifest_frozen.gjson b/genmanifest/testdata/manifest_frozen.gjson
new file mode 100644
index 0000000..8d93b2e
--- /dev/null
+++ b/genmanifest/testdata/manifest_frozen.gjson
@@ -0,0 +1,89 @@
+{
+ "manifest_version": 2,
+ "name": "__MSG_appName__",
+ "version": "0",
+#if defined(CHROMIUM)
+ "version_name": "dirty",
+#endif
+ "description": "__MSG_appDescription__",
+ "icons": {
+ "512": "icons/512.png",
+ "128": "icons/128.png"
+ },
+ "content_scripts": [
+ {
+ "matches": ["https://support.google.com/s/community*"],
+ "js": ["common/content_scripts.js", "content_scripts/console_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/s/community*"],
+ "js": ["common/content_scripts.js", "content_scripts/console_inject_start.js"],
+ "css": ["common/console.css"],
+ "run_at": "document_start"
+ },
+ {
+ "matches": ["https://support.google.com/*/threads*"],
+ "js": ["content_scripts/forum_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/*/thread/*"],
+ "exclude_matches": ["https://support.google.com/s/community*", "https://support.google.com/*/thread/new*"],
+ "js": ["common/content_scripts.js", "content_scripts/thread_inject.js"],
+ "run_at": "document_end"
+ },
+ {
+ "matches": ["https://support.google.com/s/community*", "https://support.google.com/*/thread/*"],
+ "exclude_matches": ["https://support.google.com/*/thread/new*"],
+ "js": ["common/content_scripts.js", "common/cs_event_listener.js", "content_scripts/profileindicator_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/*/profile/*"],
+ "js": ["common/content_scripts.js", "content_scripts/profile_inject.js"],
+ "css": ["common/forum.css"]
+ }
+ ],
+ "permissions": [
+ "https://support.google.com/s/community*",
+ "https://support.google.com/*/threads*",
+ "https://support.google.com/*/thread/*",
+ "storage"
+ ],
+ "web_accessible_resources": [
+ "injections/profileindicator_inject.js",
+ "injections/profileindicator_inject.css",
+ "injections/ccdarktheme.css",
+ "injections/batchlock_inject.js"
+ ],
+ "browser_action": {},
+#if defined(CHROMIUM)
+ "options_page": "options.html",
+#endif
+ "options_ui": {
+ "page": "options.html",
+#if defined(CHROMIUM)
+ "chrome_style": true,
+#endif
+#if defined(GECKO)
+ "browser_style": true,
+#endif
+ "open_in_tab": false
+ },
+ "background": {
+#if defined(CHROMIUM)
+ "persistent": false,
+#endif
+ "scripts": [
+ "common/common.js",
+ "background.js"
+ ]
+ },
+#if defined(GECKO)
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "twpowertools@avm99963.com",
+ "strict_min_version": "57.0"
+ }
+ },
+#endif
+ "default_locale": "en"
+}
diff --git a/genmanifest/testdata/manifest_frozen_chromium_expected.json b/genmanifest/testdata/manifest_frozen_chromium_expected.json
new file mode 100644
index 0000000..2bd184b
--- /dev/null
+++ b/genmanifest/testdata/manifest_frozen_chromium_expected.json
@@ -0,0 +1,70 @@
+{
+ "manifest_version": 2,
+ "name": "__MSG_appName__",
+ "version": "0",
+ "version_name": "dirty",
+ "description": "__MSG_appDescription__",
+ "icons": {
+ "512": "icons/512.png",
+ "128": "icons/128.png"
+ },
+ "content_scripts": [
+ {
+ "matches": ["https://support.google.com/s/community*"],
+ "js": ["common/content_scripts.js", "content_scripts/console_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/s/community*"],
+ "js": ["common/content_scripts.js", "content_scripts/console_inject_start.js"],
+ "css": ["common/console.css"],
+ "run_at": "document_start"
+ },
+ {
+ "matches": ["https://support.google.com/*/threads*"],
+ "js": ["content_scripts/forum_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/*/thread/*"],
+ "exclude_matches": ["https://support.google.com/s/community*", "https://support.google.com/*/thread/new*"],
+ "js": ["common/content_scripts.js", "content_scripts/thread_inject.js"],
+ "run_at": "document_end"
+ },
+ {
+ "matches": ["https://support.google.com/s/community*", "https://support.google.com/*/thread/*"],
+ "exclude_matches": ["https://support.google.com/*/thread/new*"],
+ "js": ["common/content_scripts.js", "common/cs_event_listener.js", "content_scripts/profileindicator_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/*/profile/*"],
+ "js": ["common/content_scripts.js", "content_scripts/profile_inject.js"],
+ "css": ["common/forum.css"]
+ }
+ ],
+ "permissions": [
+ "https://support.google.com/s/community*",
+ "https://support.google.com/*/threads*",
+ "https://support.google.com/*/thread/*",
+ "storage"
+ ],
+ "web_accessible_resources": [
+ "injections/profileindicator_inject.js",
+ "injections/profileindicator_inject.css",
+ "injections/ccdarktheme.css",
+ "injections/batchlock_inject.js"
+ ],
+ "browser_action": {},
+ "options_page": "options.html",
+ "options_ui": {
+ "page": "options.html",
+ "chrome_style": true,
+ "open_in_tab": false
+ },
+ "background": {
+ "persistent": false,
+ "scripts": [
+ "common/common.js",
+ "background.js"
+ ]
+ },
+ "default_locale": "en"
+}
diff --git a/genmanifest/testdata/manifest_frozen_gecko_expected.json b/genmanifest/testdata/manifest_frozen_gecko_expected.json
new file mode 100644
index 0000000..49792d5
--- /dev/null
+++ b/genmanifest/testdata/manifest_frozen_gecko_expected.json
@@ -0,0 +1,73 @@
+{
+ "manifest_version": 2,
+ "name": "__MSG_appName__",
+ "version": "0",
+ "description": "__MSG_appDescription__",
+ "icons": {
+ "512": "icons/512.png",
+ "128": "icons/128.png"
+ },
+ "content_scripts": [
+ {
+ "matches": ["https://support.google.com/s/community*"],
+ "js": ["common/content_scripts.js", "content_scripts/console_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/s/community*"],
+ "js": ["common/content_scripts.js", "content_scripts/console_inject_start.js"],
+ "css": ["common/console.css"],
+ "run_at": "document_start"
+ },
+ {
+ "matches": ["https://support.google.com/*/threads*"],
+ "js": ["content_scripts/forum_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/*/thread/*"],
+ "exclude_matches": ["https://support.google.com/s/community*", "https://support.google.com/*/thread/new*"],
+ "js": ["common/content_scripts.js", "content_scripts/thread_inject.js"],
+ "run_at": "document_end"
+ },
+ {
+ "matches": ["https://support.google.com/s/community*", "https://support.google.com/*/thread/*"],
+ "exclude_matches": ["https://support.google.com/*/thread/new*"],
+ "js": ["common/content_scripts.js", "common/cs_event_listener.js", "content_scripts/profileindicator_inject.js"]
+ },
+ {
+ "matches": ["https://support.google.com/*/profile/*"],
+ "js": ["common/content_scripts.js", "content_scripts/profile_inject.js"],
+ "css": ["common/forum.css"]
+ }
+ ],
+ "permissions": [
+ "https://support.google.com/s/community*",
+ "https://support.google.com/*/threads*",
+ "https://support.google.com/*/thread/*",
+ "storage"
+ ],
+ "web_accessible_resources": [
+ "injections/profileindicator_inject.js",
+ "injections/profileindicator_inject.css",
+ "injections/ccdarktheme.css",
+ "injections/batchlock_inject.js"
+ ],
+ "browser_action": {},
+ "options_ui": {
+ "page": "options.html",
+ "browser_style": true,
+ "open_in_tab": false
+ },
+ "background": {
+ "scripts": [
+ "common/common.js",
+ "background.js"
+ ]
+ },
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "twpowertools@avm99963.com",
+ "strict_min_version": "57.0"
+ }
+ },
+ "default_locale": "en"
+}
diff --git a/genmanifest/testdata/manifest_small1.gjson b/genmanifest/testdata/manifest_small1.gjson
new file mode 100644
index 0000000..5027087
--- /dev/null
+++ b/genmanifest/testdata/manifest_small1.gjson
@@ -0,0 +1,26 @@
+{
+ "foo": "option",
+#if defined(AAA)
+ "bar": 1,
+ #endif
+#if defined( BBB )
+ "count": 2,
+ #if defined(B || C)
+ "mmm": {},
+#endif
+#if defined(C)
+ #if defined(D)
+ "ok": true,
+#endif
+#endif
+#if defined(D)
+#if defined(C)
+ "ok2": false,
+#endif
+#endif
+#endif
+#if defined(CDE || AAA)
+ "shouldBe": true,
+#endif
+ "so": 3.14
+}
diff --git a/genmanifest/testdata/manifest_small1_expected.json b/genmanifest/testdata/manifest_small1_expected.json
new file mode 100644
index 0000000..0e32581
--- /dev/null
+++ b/genmanifest/testdata/manifest_small1_expected.json
@@ -0,0 +1,7 @@
+{
+ "foo": "option",
+ "bar": 1,
+ "count": 2,
+ "shouldBe": true,
+ "so": 3.14
+}