aboutsummaryrefslogtreecommitdiff
path: root/src/background/Application.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/background/Application.ts')
-rw-r--r--src/background/Application.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/background/Application.ts b/src/background/Application.ts
new file mode 100644
index 0000000..08013cd
--- /dev/null
+++ b/src/background/Application.ts
@@ -0,0 +1,35 @@
+import { injectable } from 'tsyringe';
+import ContentMessageListener from './infrastructures/ContentMessageListener';
+import SettingController from './controllers/SettingController';
+import VersionController from './controllers/VersionController';
+
+@injectable()
+export default class Application {
+ constructor(
+ private contentMessageListener: ContentMessageListener,
+ private settingController: SettingController,
+ private versionController: VersionController,
+ ) {
+ }
+
+ run() {
+ this.settingController.reload();
+
+ browser.runtime.onInstalled.addListener((details) => {
+ if (details.reason !== 'install' && details.reason !== 'update') {
+ return;
+ }
+ this.versionController.notify();
+ });
+
+ this.contentMessageListener.run();
+ browser.storage.onChanged.addListener((changes, area) => {
+ if (area !== 'local') {
+ return;
+ }
+ if (changes.settings) {
+ this.settingController.reload();
+ }
+ });
+ }
+}