diff --git a/content_scripts/milje.js b/content_scripts/milje.js index 410f78b..8a838b1 100644 --- a/content_scripts/milje.js +++ b/content_scripts/milje.js @@ -1,3 +1,7 @@ +const browser = (globalThis.browser ?? globalThis.chrome) + +/* */ + start() /* */ @@ -12,18 +16,13 @@ function start () { }) .then(assureParams) .then(run) + .then(setMessageListener) } /* Params */ function getParamsFromStorage () { - /** - * Sorry, you are not allowed to use import in the content_script :c - * Copy'n'paste of storage here! - */ - const storage = (globalThis.browser ?? globalThis.chrome)['storage'] - - return storage.local.get(['params']) + return browser.storage.local.get(['params']) .then(({params}) => params) } @@ -56,6 +55,24 @@ function run({ randomSeed, halfPatternSize, scaleFactor, gridSize }) { const miljeCanvas = matrixToCanvas(pattern, halfPatternSize, scaleFactor) document.body.appendChild(miljeCanvas) + return miljeCanvas +} + +function setMessageListener (miljeCanvas) { + if (!('runtime' in browser)) { + console.log('Milje 2077 extension cannot set up listener.') + return + } + + browser.runtime.onMessage.addListener((message) => { + switch (message.command) { + case 'toggleMilje': + miljeCanvas.hidden = !miljeCanvas.hidden + break + default: + console.log('Milje 2077 extension recieved unsupported message.') + } + }) } /* Parts */ diff --git a/pages/popup/popup.html b/pages/popup/popup.html index 654af45..086d114 100644 --- a/pages/popup/popup.html +++ b/pages/popup/popup.html @@ -3,9 +3,31 @@ Milje-2077 + - test +
+

Milje 2077

+ + +
diff --git a/pages/popup/popup.js b/pages/popup/popup.js index 5579f6c..aeed33f 100644 --- a/pages/popup/popup.js +++ b/pages/popup/popup.js @@ -1,3 +1,13 @@ -import { storage } from '../../scripts/storage.js' +import { browser } from '../../scripts/browser.js' -storage.local.set({'params': {scaleFactor: 128}}) +document.getElementById('toggleMiljeButton').onclick = () => { + browser.tabs.query({active: true, currentWindow: true}) + .then(([tab]) => browser.tabs.sendMessage(tab.id, { + command: 'toggleMilje', + })) +} + +document.getElementById('openSettingsButton').onclick = () => { + browser.storage.local.set({'params': {scaleFactor: 16}}) + console.log('openSettingsButton') +} diff --git a/scripts/browser.js b/scripts/browser.js new file mode 100644 index 0000000..1191d6c --- /dev/null +++ b/scripts/browser.js @@ -0,0 +1 @@ +export const browser = (globalThis.browser ?? globalThis.chrome) diff --git a/scripts/storage.js b/scripts/storage.js deleted file mode 100644 index 33e20ae..0000000 --- a/scripts/storage.js +++ /dev/null @@ -1 +0,0 @@ -export const storage = (window.browser ?? window.chrome)['storage']