aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/plugins/create-manifest-webpack-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'config/webpack/plugins/create-manifest-webpack-plugin')
-rw-r--r--config/webpack/plugins/create-manifest-webpack-plugin/index.js20
-rw-r--r--config/webpack/plugins/create-manifest-webpack-plugin/manifest-template.json9
2 files changed, 22 insertions, 7 deletions
diff --git a/config/webpack/plugins/create-manifest-webpack-plugin/index.js b/config/webpack/plugins/create-manifest-webpack-plugin/index.js
index 785d604..b4a29a3 100644
--- a/config/webpack/plugins/create-manifest-webpack-plugin/index.js
+++ b/config/webpack/plugins/create-manifest-webpack-plugin/index.js
@@ -2,12 +2,16 @@ const { sources } = require("webpack");
const path = require("path");
const { getScriptRuntimeFromType } = webpackRequire("utils/script-runtime");
-const { getFileNameHash } = webpackRequire("utils/file-name-hash");
+const { getFileNameHash } = webpackRequire("utils/filename-hash");
const scripts = webpackRequire("utils/scripts");
-const sharedModules = webpackRequire("utils/shared-modules");
const manifest = webpackRequire("plugins/create-manifest-webpack-plugin/manifest-template.json");
class CreateManifestPlugin {
+ constructor({ sharedModulesImportedCount, sortedSharedModules }) {
+ this.sharedModulesImportedCount = sharedModulesImportedCount;
+ this.sortedSharedModules = sortedSharedModules;
+ }
+
apply(compiler) {
compiler.hooks.compilation.tap("CreateManifestPlugin", compilation => {
compilation.hooks.processAssets.tap(
@@ -20,6 +24,14 @@ class CreateManifestPlugin {
manifest.version = require(path.resolve(ROOT_DIR, "package.json")).version;
manifest.content_scripts = [];
+ manifest.content_scripts.push({
+ matches: [`*://banglarbhumi.gov.in/BanglarBhumi/*`],
+ js: this.sortedSharedModules
+ .filter(sharedModule => this.sharedModulesImportedCount[sharedModule] > 0)
+ .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`),
+ run_at: "document_start"
+ });
+
for (const scriptPath in scripts) {
for (const scriptType in scripts[scriptPath]) {
const matches = [`*://banglarbhumi.gov.in/BanglarBhumi/${scriptPath}`];
@@ -43,10 +55,6 @@ class CreateManifestPlugin {
}
}
- for (const sharedModule of sharedModules) {
- resources.push(`shared/${getFileNameHash(sharedModule, "shared")}.js`);
- }
-
if (resources.length > 0) {
manifest.web_accessible_resources = [
{
diff --git a/config/webpack/plugins/create-manifest-webpack-plugin/manifest-template.json b/config/webpack/plugins/create-manifest-webpack-plugin/manifest-template.json
index 0c59ef2..d1d29f4 100644
--- a/config/webpack/plugins/create-manifest-webpack-plugin/manifest-template.json
+++ b/config/webpack/plugins/create-manifest-webpack-plugin/manifest-template.json
@@ -1,9 +1,16 @@
{
"manifest_version": 3,
"name": "Banglar Bhumi Utils",
- "permissions": ["scripting"],
+ "permissions": ["scripting", "declarativeNetRequest"],
"description": "A chrome extension to improve functionality of the banglarbhumi.gov.in website.",
"icons": {
"512": "icon512.png"
+ },
+ "declarative_net_request" : {
+ "rule_resources" : [{
+ "id": "rules",
+ "enabled": true,
+ "path": "rules.json"
+ }]
}
}