From fce748c11813d9bdf1a73f704893319bb40b4597 Mon Sep 17 00:00:00 2001
From: kumavis <aaron@kumavis.me>
Date: Fri, 24 Jun 2016 11:21:22 -0700
Subject: contentscript - skip web3 injection if domain appears to be a pdf

---
 app/scripts/contentscript.js | 80 ++++++++++++++++++++++++++------------------
 1 file changed, 48 insertions(+), 32 deletions(-)

(limited to 'app/scripts/contentscript.js')

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
-- 
cgit