aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/contentscript.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2016-06-25 02:21:22 +0800
committerkumavis <aaron@kumavis.me>2016-06-25 02:21:22 +0800
commitfce748c11813d9bdf1a73f704893319bb40b4597 (patch)
treebfaeb25f7088f5f7716dbf24360a767ec2e7eb01 /app/scripts/contentscript.js
parentac2269b16ebc97a75e06347d5a042caad3cfed54 (diff)
downloadtangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.tar
tangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.tar.gz
tangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.tar.bz2
tangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.tar.lz
tangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.tar.xz
tangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.tar.zst
tangerine-wallet-browser-fce748c11813d9bdf1a73f704893319bb40b4597.zip
contentscript - skip web3 injection if domain appears to be a pdf
Diffstat (limited to 'app/scripts/contentscript.js')
-rw-r--r--app/scripts/contentscript.js80
1 files changed, 48 insertions, 32 deletions
diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js
index ad90059b7..5d31e3c38 100644
--- a/app/scripts/contentscript.js
+++ b/app/scripts/contentscript.js
@@ -1,36 +1,52 @@
const LocalMessageDuplexStream = require('./lib/local-message-stream.js')
const PortStream = require('./lib/port-stream.js')
const ObjectMultiplex = require('./lib/obj-multiplex')
+const urlUtil = require('url')
-// inject in-page script
-var scriptTag = document.createElement('script')
-scriptTag.src = chrome.extension.getURL('scripts/inpage.js')
-scriptTag.onload = function () { this.parentNode.removeChild(this) }
-var container = document.head || document.documentElement
-// append as first child
-container.insertBefore(scriptTag, container.children[0])
-
-// setup communication to page and plugin
-var pageStream = new LocalMessageDuplexStream({
- name: 'contentscript',
- target: 'inpage',
-})
-pageStream.on('error', console.error.bind(console))
-var pluginPort = chrome.runtime.connect({name: 'contentscript'})
-var pluginStream = new PortStream(pluginPort)
-pluginStream.on('error', console.error.bind(console))
-
-// forward communication plugin->inpage
-pageStream.pipe(pluginStream).pipe(pageStream)
-
-// connect contentscript->inpage reload stream
-var mx = ObjectMultiplex()
-mx.on('error', console.error.bind(console))
-mx.pipe(pageStream)
-var reloadStream = mx.createStream('reload')
-reloadStream.on('error', console.error.bind(console))
-
-// if we lose connection with the plugin, trigger tab refresh
-pluginStream.on('close', function () {
- reloadStream.write({ method: 'reset' })
-})
+if (shouldInjectWeb3()) {
+ setupInjection()
+}
+
+function setupInjection(){
+
+ // inject in-page script
+ var scriptTag = document.createElement('script')
+ scriptTag.src = chrome.extension.getURL('scripts/inpage.js')
+ scriptTag.onload = function () { this.parentNode.removeChild(this) }
+ var container = document.head || document.documentElement
+ // append as first child
+ container.insertBefore(scriptTag, container.children[0])
+
+ // setup communication to page and plugin
+ var pageStream = new LocalMessageDuplexStream({
+ name: 'contentscript',
+ target: 'inpage',
+ })
+ pageStream.on('error', console.error.bind(console))
+ var pluginPort = chrome.runtime.connect({name: 'contentscript'})
+ var pluginStream = new PortStream(pluginPort)
+ pluginStream.on('error', console.error.bind(console))
+
+ // forward communication plugin->inpage
+ pageStream.pipe(pluginStream).pipe(pageStream)
+
+ // connect contentscript->inpage reload stream
+ var mx = ObjectMultiplex()
+ mx.on('error', console.error.bind(console))
+ mx.pipe(pageStream)
+ var reloadStream = mx.createStream('reload')
+ reloadStream.on('error', console.error.bind(console))
+
+ // if we lose connection with the plugin, trigger tab refresh
+ pluginStream.on('close', function () {
+ reloadStream.write({ method: 'reset' })
+ })
+
+}
+
+function shouldInjectWeb3(){
+ var urlData = urlUtil.parse(window.location.href)
+ var extension = urlData.pathname.split('.').slice(-1)[0]
+ var shouldInject = (extension !== 'pdf')
+ return shouldInject
+} \ No newline at end of file