diff options
author | bitpshr <mail@bitpshr.net> | 2018-10-04 23:05:32 +0800 |
---|---|---|
committer | Dan Finlay <542863+danfinlay@users.noreply.github.com> | 2018-11-06 07:07:09 +0800 |
commit | bfcb73ad533b7c2acea012a586c2a391811faf03 (patch) | |
tree | ff3f8290e01d56396aa93424eadcd535ea0ec954 /app/scripts/contentscript.js | |
parent | 89b4aa5d62237f36fac9dcce9c546005ec18968b (diff) | |
download | tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.gz tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.bz2 tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.lz tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.xz tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.zst tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.zip |
EIP-1102: add isEnabled convenience method to provider
Diffstat (limited to 'app/scripts/contentscript.js')
-rw-r--r-- | app/scripts/contentscript.js | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index 1788cfc36..b1c1e9a0d 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -116,16 +116,25 @@ function setupStreams () { * handles posting these messages automatically. */ function listenForProviderRequest () { - window.addEventListener('message', (event) => { - if (event.source !== window) { return } - if (!event.data || !event.data.type || event.data.type !== 'ETHEREUM_ENABLE_PROVIDER') { return } - extension.runtime.sendMessage({ - action: 'init-provider-request', - origin: event.source.location.hostname, - }) + window.addEventListener('message', ({ source, data }) => { + if (source !== window || !data || !data.type) { return } + switch (data.type) { + case 'ETHEREUM_ENABLE_PROVIDER': + extension.runtime.sendMessage({ + action: 'init-provider-request', + origin: source.location.hostname, + }) + break + case 'ETHEREUM_PROVIDER_STATUS': + extension.runtime.sendMessage({ + action: 'provider-status-request', + origin: source.location.hostname, + }) + break + } }) - extension.runtime.onMessage.addListener(({ action }) => { + extension.runtime.onMessage.addListener(({ action, isEnabled }) => { if (!action) { return } switch (action) { case 'approve-provider-request': @@ -142,6 +151,9 @@ function listenForProviderRequest () { }) }) break + case 'provider-status': + injectScript(`window.dispatchEvent(new CustomEvent('ethereumproviderstatus', { detail: { isEnabled: ${isEnabled}}}))`) + break } }) } |