refactor: migrate the extension to MV3

MV2 is going to be deprecated in June 2024.

Change-Id: I03cfc768d9db432553de70f0e6ef31cf239b9705
diff --git a/manifest.json b/manifest.json
index d9fc42b..2e4bc05 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,11 +1,11 @@
 {
-  "manifest_version": 2,
+  "manifest_version": 3,
   "name": "__MSG_appName__",
   "description": "__MSG_appDescription__",
   "version": "0.1.4",
   "permissions": [
-    "declarativeContent",
-    "tabs"
+    "activeTab",
+    "declarativeContent"
   ],
   "icons": {
     "16": "radar-16.png",
@@ -16,7 +16,7 @@
     "512": "radar-512.png",
     "858": "radar-858.png"
   },
-  "page_action": {
+  "action": {
     "default_icon": {
       "19": "radar-19.png",
       "38": "radar-38.png"
@@ -25,8 +25,7 @@
     "default_popup": "popup.html"
   },
   "background": {
-    "scripts": ["pageevent.js"],
-    "persistent": false
+    "service_worker": "pageevent.js"
   },
   "default_locale": "en"
 }
diff --git a/pageevent.js b/pageevent.js
index 587862c..76e51b6 100644
--- a/pageevent.js
+++ b/pageevent.js
@@ -1,4 +1,5 @@
 chrome.runtime.onInstalled.addListener(function () {
+  chrome.action.disable();
   chrome.declarativeContent.onPageChanged.removeRules(undefined, function () {
     chrome.declarativeContent.onPageChanged.addRules([
       {
@@ -7,7 +8,7 @@
             pageUrl: { schemes: ["http", "https"] },
           }),
         ],
-        actions: [new chrome.declarativeContent.ShowPageAction()],
+        actions: [new chrome.declarativeContent.ShowAction()],
       },
     ]);
   });