diff --git a/devtools/projects/shell-chrome/set-version.js b/devtools/projects/shell-chrome/set-version.js index 93ea1a0dc2a..d2cf21ca1a5 100644 --- a/devtools/projects/shell-chrome/set-version.js +++ b/devtools/projects/shell-chrome/set-version.js @@ -12,7 +12,7 @@ const semver = require('semver'); const {writeFileSync, readFileSync} = require('fs'); const {join} = require('path'); -const MANIFEST_PATH = join(__dirname, 'src/manifest.json'); +const MANIFEST_PATH = join(__dirname, 'src/manifest/manifest.chrome.json'); const manifest = JSON.parse(readFileSync(MANIFEST_PATH).toString()); diff --git a/devtools/projects/shell-chrome/src/BUILD.bazel b/devtools/projects/shell-chrome/src/BUILD.bazel index 8ee3200ddf2..3291697a071 100644 --- a/devtools/projects/shell-chrome/src/BUILD.bazel +++ b/devtools/projects/shell-chrome/src/BUILD.bazel @@ -283,22 +283,25 @@ esbuild( exports_files(["index.html"]) -filegroup( - name = "prod_app_static_files", +[filegroup( + name = "prod_app_static_files_" + build_target, srcs = [ ":index.html", - ":manifest.json", + "//devtools/projects/shell-chrome/src/manifest/manifest.%s.json" % build_target, ":shell_chrome_styles", "//packages/zone.js/bundles:zone.umd.js", ], -) +) for build_target in [ + "chrome", + "firefox", +]] -pkg_web( - name = "prodapp", +[pkg_web( + name = "prodapp_" + build_target, srcs = [ ":bundle", ":devtools_bundle", - ":prod_app_static_files", + ":prod_app_static_files_%s" % build_target, "//devtools/projects/ng-devtools/src/lib/images", "//devtools/projects/shell-chrome/src:devtools.html", "//devtools/projects/shell-chrome/src/app:backend_bundle", @@ -306,10 +309,14 @@ pkg_web( "//devtools/projects/shell-chrome/src/app:content_script_bundle", "//devtools/projects/shell-chrome/src/app:ng_validate_bundle", "//devtools/projects/shell-chrome/src/assets", + "//devtools/projects/shell-chrome/src/manifest", "//devtools/projects/shell-chrome/src/popups", ], additional_root_paths = [ "projects/ng-devtools/src/lib", ], substitutions = {"BUILD_SCM_COMMIT_SHA": "{BUILD_SCM_COMMIT_SHA}"}, -) +) for build_target in [ + "chrome", + "firefox", +]] diff --git a/devtools/projects/shell-chrome/src/manifest/BUILD.bazel b/devtools/projects/shell-chrome/src/manifest/BUILD.bazel new file mode 100644 index 00000000000..c8955d949e7 --- /dev/null +++ b/devtools/projects/shell-chrome/src/manifest/BUILD.bazel @@ -0,0 +1,6 @@ +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "manifest", + srcs = glob(["*.json"]), +) diff --git a/devtools/projects/shell-chrome/src/manifest.json b/devtools/projects/shell-chrome/src/manifest/manifest.chrome.json similarity index 67% rename from devtools/projects/shell-chrome/src/manifest.json rename to devtools/projects/shell-chrome/src/manifest/manifest.chrome.json index aefac47bc6c..e4046241f54 100644 --- a/devtools/projects/shell-chrome/src/manifest.json +++ b/devtools/projects/shell-chrome/src/manifest/manifest.chrome.json @@ -16,17 +16,31 @@ "default_popup": "popups/not-angular.html" }, "devtools_page": "devtools.html", - "web_accessible_resources": ["app/backend_bundle.js", "devtools.html"], + "web_accessible_resources": [ + "app/backend_bundle.js", + "devtools.html" + ], "background": { - "scripts": ["app/background_bundle.js"], + "scripts": [ + "app/background_bundle.js" + ], "persistent": false }, - "permissions": ["activeTab", "http://*/*", "https://*/*", "file:///*"], + "permissions": [ + "activeTab", + "http://*/*", + "https://*/*", + "file:///*" + ], "content_scripts": [ { - "matches": [""], - "js": ["app/ng_validate_bundle.js"], + "matches": [ + "" + ], + "js": [ + "app/ng_validate_bundle.js" + ], "run_at": "document_idle" } ] -} +} \ No newline at end of file diff --git a/devtools/projects/shell-chrome/src/manifest/manifest.firefox.json b/devtools/projects/shell-chrome/src/manifest/manifest.firefox.json new file mode 100644 index 00000000000..8d1b8ca47a5 --- /dev/null +++ b/devtools/projects/shell-chrome/src/manifest/manifest.firefox.json @@ -0,0 +1,60 @@ +{ + "manifest_version": 2, + "short_name": "Angular DevTools", + "name": "Angular DevTools", + "description": "Angular DevTools extends Chrome DevTools adding Angular specific debugging and profiling capabilities.", + "version": "1.0.4", + "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", + "icons": { + "16": "assets/icon16.png", + "48": "assets/icon48.png", + "128": "assets/icon128.png" + }, + "browser_action": { + "default_icon": { + "16": "assets/icon16.png", + "48": "assets/icon48.png", + "128": "assets/icon128.png" + }, + "default_popup": "popups/not-angular.html", + "browser_style": true + }, + "devtools_page": "devtools.html", + "web_accessible_resources": [ + "backend.js", + "runtime.js", + "devtools.html" + ], + "background": { + "scripts": [ + "background.js", + "runtime.js" + ] + }, + "permissions": [ + "activeTab", + "http://*/*", + "https://*/*", + "file:///*" + ], + "content_scripts": [ + { + "matches": [ + "" + ], + "js": [ + "runtime.js" + ], + "run_at": "document_start" + }, + { + "matches": [ + "" + ], + "js": [ + "ng-validate.js" + ], + "run_at": "document_idle" + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index 9e73a70cdce..d5059bf9a8b 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "ts-circular-deps:approve": "yarn -s ng-dev ts-circular-deps approve --config ./packages/circular-deps-test.conf.js", "check-tooling-setup": "yarn tsc --project .ng-dev/tsconfig.json", "devtools:devserver": "ibazel run //devtools/src:devserver", - "devtools:build:chrome": "bazelisk build --config snapshot //devtools/projects/shell-chrome/src:prodapp", + "devtools:build:chrome": "bazelisk build --config snapshot //devtools/projects/shell-chrome/src:prodapp_chrome", + "devtools:build:firefox": "bazelisk build --config snapshot //devtools/projects/shell-chrome/src:prodapp_firefox", "devtools:test": "bazelisk test --config snapshot //devtools/..." }, "// 1": "dependencies are used locally and by bazel", @@ -224,4 +225,4 @@ "**/https-proxy-agent": "5.0.0", "**/saucelabs": "7.1.3" } -} +} \ No newline at end of file