aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/contentscript.js
diff options
context:
space:
mode:
authorbitpshr <mail@bitpshr.net>2018-10-04 23:05:32 +0800
committerDan Finlay <542863+danfinlay@users.noreply.github.com>2018-11-06 07:07:09 +0800
commitbfcb73ad533b7c2acea012a586c2a391811faf03 (patch)
treeff3f8290e01d56396aa93424eadcd535ea0ec954 /app/scripts/contentscript.js
parent89b4aa5d62237f36fac9dcce9c546005ec18968b (diff)
downloadtangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.gz
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.js28
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
}
})
}