From efca3756d1d5a707479f66ed8ff356901cfe0ccd Mon Sep 17 00:00:00 2001 From: Andrei O Date: Tue, 21 Feb 2023 22:28:15 +0200 Subject: [PATCH] changes: for 1.2.3 --- CHANGELOG.md | 6 ++++++ src/extension/content.ts | 18 ------------------ src/extension/manifest.json | 12 +++++++++++- src/extension/metamask-stub.js | 11 +++++++++++ src/extension/serviceWorker.ts | 15 ++++++--------- 5 files changed, 34 insertions(+), 28 deletions(-) create mode 100644 src/extension/metamask-stub.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 8598f61..00fb635 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Manifest Version 1.2.3 + +- injected stub with chrome feature available in chrome 103 ( register world ) to bypass CSP +- clear up some console errors +- pushed minimum version to 103 + ## Manifest Version 1.2.2 - updated dependencies diff --git a/src/extension/content.ts b/src/extension/content.ts index b505f6d..7578ad4 100644 --- a/src/extension/content.ts +++ b/src/extension/content.ts @@ -1,21 +1,6 @@ (() =>{ try { - // sha256-QANFAnmGYlNymbZUT9oHee/3HE1z/X5Qcngml3GzhVY= - const metamaskStub = ` - // Add MetamaskAPI STUB for wallets lib to detect wallet exists - window.ethereum = { - isMetaMask: true, - isConnected: () => true, - request: (a,b,c) => window.ethereum.request(a,b,c), - sendAsync: (a,b,c) => window.ethereum.sendAsync(a,b,c), - send: (a,b,c) => window.ethereum.send(a,b,c), - } - - `; - document.documentElement.setAttribute('onreset', metamaskStub); - document.documentElement.dispatchEvent(new CustomEvent('reset')); - document.documentElement.removeAttribute('onreset'); const container = document.documentElement; const script = document.createElement('script'); script.setAttribute('async', "false") @@ -26,9 +11,6 @@ } catch (error) { console.error('MetaMask: Provider injection failed.', error); } - chrome.runtime.connect({ - name: 'content' - }) })() const allowedMethods = { diff --git a/src/extension/manifest.json b/src/extension/manifest.json index 22d0605..c047960 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -20,7 +20,7 @@ "128": "assets/extension-icon/wallet_128.png" } }, - "minimum_chrome_version": "94", + "minimum_chrome_version": "103", "permissions": [ "notifications", "storage", @@ -45,6 +45,16 @@ "all_frames": true, "run_at": "document_start", "js": ["/src/extension/content.ts"] + }, + { + "matches": [ + "http://*/*", + "https://*/*" + ], + "all_frames": true, + "run_at": "document_start", + "js": ["/src/extension/metamask-stub.js"], + "world": "MAIN" } ], "web_accessible_resources": [{ diff --git a/src/extension/metamask-stub.js b/src/extension/metamask-stub.js new file mode 100644 index 0000000..3fe3be8 --- /dev/null +++ b/src/extension/metamask-stub.js @@ -0,0 +1,11 @@ +try { + window.ethereum = { + isMetaMask: true, + isConnected: () => true, + request: (a,b,c) => window.ethereum.request(a,b,c), + sendAsync: (a,b,c) => window.ethereum.sendAsync(a,b,c), + send: (a,b,c) => window.ethereum.send(a,b,c), + } +} catch { + // ignore +} \ No newline at end of file diff --git a/src/extension/serviceWorker.ts b/src/extension/serviceWorker.ts index d2ad92f..7c4baf0 100644 --- a/src/extension/serviceWorker.ts +++ b/src/extension/serviceWorker.ts @@ -10,23 +10,20 @@ let notificationUrl: string chrome.runtime.onInstalled.addListener(() => { console.log('Service worker installed'); - - chrome.runtime.onConnect.addListener(port => port.onDisconnect.addListener(() => - { - console.log('Service worker connected'); - })) - - chrome.runtime.connect(null as unknown as string, { - name:'sw-connection' - }) }) chrome.runtime.onStartup.addListener(() => { console.log('Service worker startup'); + if(chrome.runtime.lastError) { + console.warn("Whoops.. " + chrome.runtime.lastError.message); + } }) chrome.runtime.onSuspend.addListener(() => { console.log('Service worker suspend'); + if(chrome.runtime.lastError) { + console.warn("Whoops.. " + chrome.runtime.lastError.message); + } })