diff --git a/interface/client/appStart.js b/interface/client/appStart.js index 926809528..adc62c6b4 100644 --- a/interface/client/appStart.js +++ b/interface/client/appStart.js @@ -30,12 +30,14 @@ mistInit = function(){ }); } - Tabs.upsert({_id: 'wallet'}, { - url: 'https://wallet.ethereum.org', - redirect: 'https://wallet.ethereum.org', - position: 1, - permissions: { - admin: true + // overwrite wallet on start again, but use $set to dont remove titles + Tabs.upsert({_id: 'wallet'}, {$set: { + url: 'https://wallet.ethereum.org', + redirect: 'https://wallet.ethereum.org', + position: 1, + permissions: { + admin: true + } } }); diff --git a/interface/client/lib/helpers/helperFunctions.js b/interface/client/lib/helpers/helperFunctions.js index 94cc89f0c..2133045c9 100644 --- a/interface/client/lib/helpers/helperFunctions.js +++ b/interface/client/lib/helpers/helperFunctions.js @@ -12,6 +12,14 @@ The Helpers class containing helper functions **/ Helpers = {}; +/** +The preloader dirname + +@property preloaderDirname +**/ +Helpers.preloaderDirname = window.dirname + '/modules/preloader'; + + /** Reruns functions reactively, based on an interval. Use it like so: diff --git a/interface/client/lib/helpers/templateHelpers.js b/interface/client/lib/helpers/templateHelpers.js index 3ef7f8ba0..ac8137c13 100644 --- a/interface/client/lib/helpers/templateHelpers.js +++ b/interface/client/lib/helpers/templateHelpers.js @@ -29,14 +29,6 @@ Template.registerHelper('CurrentBlock', function(){ return EthBlocks.latest; }); -/** -Return the preload modules dirname. - -@method (preload_dirname) -**/ -Template.registerHelper('preload_dirname', function(){ - return window.dirname + '/modules/preloader'; -}); /** Return the dirname. @@ -63,7 +55,7 @@ Return the app mode. @method (mode) **/ Template.registerHelper('mode', function(){ - return window.mist.mode; + return window.mistMode; }); /** @@ -72,7 +64,7 @@ Return the friendly app name. @method (appName) **/ Template.registerHelper('appName', function(){ - return window.mist.mode === 'mist' ? 'Mist' : 'Ethereum Wallet'; + return window.mistMode === 'mist' ? 'Mist' : 'Ethereum Wallet'; }); /** @@ -81,7 +73,7 @@ Return the app icon path. @method (iconPath) **/ Template.registerHelper('appIconPath', function(){ - return 'file://'+ window.dirname +'/icons/'+ window.mist.mode +'/icon2x.png'; + return 'file://'+ window.dirname +'/icons/'+ window.mistMode +'/icon2x.png'; }); /** @@ -90,7 +82,7 @@ Get the current user agent @method (useragent) **/ Template.registerHelper('useragent', function(){ - return navigator.userAgent + ' Ethereum ' + (window.mist.mode === 'mist' ? 'Mist' : 'Wallet'); + return navigator.userAgent + ' Ethereum ' + (window.mistMode === 'mist' ? 'Mist' : 'Wallet'); }); /** diff --git a/interface/client/mistAPIBackend.js b/interface/client/mistAPIBackend.js index 4652e80fd..ceb25a4ce 100644 --- a/interface/client/mistAPIBackend.js +++ b/interface/client/mistAPIBackend.js @@ -3,6 +3,8 @@ */ +var allowedBrowserBarStyles = ['transparent']; + /** Filters a id the id to only contain a-z A-Z 0-9 _ -. @@ -47,19 +49,22 @@ mistAPIBackend = function(event) { // SET FAVICON if(event.channel === 'favicon') { Tabs.update(template.data._id, {$set:{ - icon: arg + icon: Blaze._escape(arg || '') }}); } // SET APPBAR if(event.channel === 'appBar') { + var appBarClass = Blaze._escape(arg || ''); + Tabs.update(template.data._id, {$set:{ - appBar: arg + appBar: (_.contains(allowedBrowserBarStyles, appBarClass) ? appBarClass : null) }}); } if(event.channel === 'mistAPI_sound') { - sound.src = arg; + sound.pause(); + sound.src = Blaze._escape(arg); sound.play(); } diff --git a/interface/client/templates/popupWindows/connectAccount.js b/interface/client/templates/popupWindows/connectAccount.js index 793bdfe51..4926030f9 100644 --- a/interface/client/templates/popupWindows/connectAccount.js +++ b/interface/client/templates/popupWindows/connectAccount.js @@ -19,7 +19,8 @@ var pinToSidebar = function() { position: Tabs.find().count() + 1 }); LocalStore.set('selectedTab', newTabId); - } else { + + } else if(existingUserTab) { LocalStore.set('selectedTab', existingUserTab); } @@ -150,6 +151,8 @@ Template['popupWindows_connectAccount'].events({ pinToSidebar(); } + accounts = _.unique(_.flatten(accounts)); + // reload the webview ipc.send('backendAction_windowMessageToOwner', null, accounts); setTimeout(function(){ diff --git a/interface/client/templates/popupWindows/splashScreen.js b/interface/client/templates/popupWindows/splashScreen.js index 3a902495c..08f0a3c54 100644 --- a/interface/client/templates/popupWindows/splashScreen.js +++ b/interface/client/templates/popupWindows/splashScreen.js @@ -155,7 +155,7 @@ Template['popupWindows_splashScreen'].helpers({ @method mode */ 'mode': function(){ - return window.mist.mode; + return window.mistMode; }, /** Returns the icon path @@ -163,7 +163,7 @@ Template['popupWindows_splashScreen'].helpers({ @method iconPath */ 'iconPath': function(){ - return 'file://'+ window.dirname +'/icons/'+ window.mist.mode +'/icon2x.png'; + return 'file://'+ window.dirname +'/icons/'+ window.mistMode +'/icon2x.png'; }, /** Updates the Sync Message live diff --git a/interface/client/templates/views/webview.html b/interface/client/templates/views/webview.html index 3e573dd45..b0fb5d93d 100644 --- a/interface/client/templates/views/webview.html +++ b/interface/client/templates/views/webview.html @@ -1,13 +1,9 @@ \ No newline at end of file diff --git a/interface/client/templates/views/webview.js b/interface/client/templates/views/webview.js index 40b9abbf0..2c10b4957 100644 --- a/interface/client/templates/views/webview.js +++ b/interface/client/templates/views/webview.js @@ -88,6 +88,23 @@ Template['views_webview'].onRendered(function(){ Template['views_webview'].helpers({ + /** + Gets the correct preloader file + + @method (preloaderFile) + */ + 'preloaderFile': function(){ + switch(this._id) { + case 'browser': + return 'file://'+ Helpers.preloaderDirname +'/browser.js'; + case 'wallet': + return 'file://'+ Helpers.preloaderDirname +'/wallet.js'; + case 'tests': + return 'file://'+ Helpers.preloaderDirname +'/tests.js'; + default: + return 'file://'+ Helpers.preloaderDirname +'/dapps.js'; + } + }, /** Determines if the current tab is visible diff --git a/interface/client/windowEvents.js b/interface/client/windowEvents.js index 7f127fd48..5547be7fa 100644 --- a/interface/client/windowEvents.js +++ b/interface/client/windowEvents.js @@ -29,7 +29,6 @@ $(window).on('dragenter', function(e) { $(window).on('keydown', function (e) { - console.log(e); // Select tab with index when number is 1-8 if (e.metaKey && e.keyCode >= 49 && e.keyCode <= 56) { diff --git a/main.js b/main.js index 7e382bb7d..68f23bf9e 100644 --- a/main.js +++ b/main.js @@ -218,7 +218,7 @@ let onReady = () => { width: 1100, height: 720, webPreferences: { - preload: `${__dirname}/modules/preloader/wallet.js`, + preload: `${__dirname}/modules/preloader/walletMain.js`, 'overlay-fullscreen-video': true, 'overlay-scrollbars': true, }, diff --git a/modules/ipc/ipcProviderWrapper.js b/modules/ipc/ipcProviderWrapper.js index f0a4e091a..bb71b87ed 100644 --- a/modules/ipc/ipcProviderWrapper.js +++ b/modules/ipc/ipcProviderWrapper.js @@ -9,7 +9,7 @@ The IPC provider wrapper to communicate to the backend @constructor */ -const { ipcRenderer: ipc } = require('electron'); +const { ipcRenderer } = require('electron'); /** @@ -17,7 +17,7 @@ Gets the writable property. @method on('ipcProvider-setWritable') */ -ipc.on('ipcProvider-setWritable', (e, writable) => { +ipcRenderer.on('ipcProvider-setWritable', (e, writable) => { // console.debug('ipcProvider-setWritable', writable); ipcProviderWrapper.writable = writable; @@ -38,7 +38,7 @@ const ipcProviderWrapper = { connect(path) { // console.debug('ipcProviderWrapper: connect'); - ipc.send('ipcProvider-create', path); + ipcRenderer.send('ipcProvider-create', path); return this; }, @@ -52,7 +52,7 @@ const ipcProviderWrapper = { on(name, callback) { // console.debug('ipcProviderWrapper: add listener', name); - ipc.on(`ipcProvider-${name}`, (e, result) => { + ipcRenderer.on(`ipcProvider-${name}`, (e, result) => { callback(result); }); }, @@ -66,7 +66,7 @@ const ipcProviderWrapper = { once(name, callback) { // console.debug('ipcProviderWrapper: add listener', name); - ipc.once(`ipcProvider-${name}`, (e, result) => { + ipcRenderer.once(`ipcProvider-${name}`, (e, result) => { callback(result); }); }, @@ -78,7 +78,7 @@ const ipcProviderWrapper = { removeListener(name, callback) { // console.debug('ipcProviderWrapper: remove listener', name); - ipc.removeListener(`ipcProvider-${name}`, callback); + ipcRenderer.removeListener(`ipcProvider-${name}`, callback); }, /** @@ -90,12 +90,12 @@ const ipcProviderWrapper = { // console.debug('ipcProviderWrapper: remove all listeners', name); if (name) { - ipc.removeAllListeners(`ipcProvider-${name}`); + ipcRenderer.removeAllListeners(`ipcProvider-${name}`); } else { - ipc.removeAllListeners('ipcProvider-error'); - ipc.removeAllListeners('ipcProvider-end'); - ipc.removeAllListeners('ipcProvider-timeout'); - ipc.removeAllListeners('ipcProvider-connect'); + ipcRenderer.removeAllListeners('ipcProvider-error'); + ipcRenderer.removeAllListeners('ipcProvider-end'); + ipcRenderer.removeAllListeners('ipcProvider-timeout'); + ipcRenderer.removeAllListeners('ipcProvider-connect'); } }, /** @@ -106,7 +106,7 @@ const ipcProviderWrapper = { write(payload) { // console.debug('ipcProviderWrapper: write payload'); - ipc.send('ipcProvider-write', payload); + ipcRenderer.send('ipcProvider-write', payload); }, /** Write synchronous to the IPC connection through the backend @@ -116,7 +116,7 @@ const ipcProviderWrapper = { writeSync(payload) { // console.debug('ipcProviderWrapper: write payload (sync)'); - return ipc.sendSync('ipcProvider-writeSync', payload); + return ipcRenderer.sendSync('ipcProvider-writeSync', payload); }, }; diff --git a/modules/ipcCommunicator.js b/modules/ipcCommunicator.js index ce52bc4e6..bfa57cc16 100644 --- a/modules/ipcCommunicator.js +++ b/modules/ipcCommunicator.js @@ -71,15 +71,15 @@ ipc.on('backendAction_windowMessageToOwner', (e, error, value) => { const windowId = e.sender.getId(); const senderWindow = Windows.getById(windowId); - const mainWindow = Windows.getByType('main'); - if (senderWindow.ownerId) { const ownerWindow = Windows.getById(senderWindow.ownerId); + const mainWindow = Windows.getByType('main'); if (ownerWindow) { ownerWindow.send('uiAction_windowMessage', senderWindow.type, error, value); } + // send through the mainWindow to the webviews if (mainWindow) { mainWindow.send('uiAction_windowMessage', senderWindow.type, senderWindow.ownerId, error, value); } diff --git a/modules/preloader/browser.js b/modules/preloader/browser.js index 1e738b610..92b1241e5 100644 --- a/modules/preloader/browser.js +++ b/modules/preloader/browser.js @@ -2,8 +2,8 @@ @module preloader browser */ require('./include/common')('browser'); -const { ipcRenderer: ipc, shell } = require('electron'); -const mist = require('../mistAPI.js'); +const { ipcRenderer } = require('electron'); +const mist = require('./include/mistAPI.js'); const BigNumber = require('bignumber.js'); const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js'); const Web3 = require('web3'); @@ -12,10 +12,20 @@ require('./include/getMetaTags.js'); require('./include/setBasePath')('interface'); // notifiy the tab to store the webview id -ipc.sendToHost('setWebviewId'); +ipcRenderer.sendToHost('setWebviewId'); // destroy the old socket -ipc.send('ipcProvider-destroy'); +ipcRenderer.send('ipcProvider-destroy'); + +// Security +process.on('loaded',function () { + Object.freeze(window.JSON); + // Object.freeze(window.Function); + // Object.freeze(window.Function.prototype); + // Object.freeze(window.Array); + // Object.freeze(window.Array.prototype); +}); + window.mist = mist(); window.BigNumber = BigNumber; diff --git a/modules/preloader/include/common.js b/modules/preloader/include/common.js index 675a0f4f2..a20ee4a2e 100644 --- a/modules/preloader/include/common.js +++ b/modules/preloader/include/common.js @@ -1,14 +1,16 @@ module.exports = (windowType) => { - const { ipcRenderer: ipc } = require('electron'); + const { ipcRenderer, webFrame } = require('electron'); if (process.env.TEST_MODE) { window.electronRequire = require; } - require('./consoleLogCapture')(windowType); + // disable pinch zoom + webFrame.setZoomLevelLimits(1, 1); + require('./consoleLogCapture')(windowType); // !!! require('./suppressWindowPrompt')(); // register with window manager - ipc.send('backendAction_setWindowId'); + ipcRenderer.send('backendAction_setWindowId'); }; diff --git a/modules/preloader/include/consoleLogCapture.js b/modules/preloader/include/consoleLogCapture.js index 60db8d0e7..4edf8b18b 100644 --- a/modules/preloader/include/consoleLogCapture.js +++ b/modules/preloader/include/consoleLogCapture.js @@ -1,4 +1,4 @@ -const { ipcRenderer: ipc } = require('electron'); +const { ipcRenderer } = require('electron'); const extractLineNumberFromStack = function (stack) { @@ -44,7 +44,7 @@ module.exports = function (windowId) { origMethod.apply(console, args.concat([suffix])); try { - ipc.send( + ipcRenderer.send( 'console_log', windowId, (method === 'log' ? 'info' : method), diff --git a/modules/preloader/include/getFavicon.js b/modules/preloader/include/getFavicon.js index ce9c0927c..6e67db48f 100644 --- a/modules/preloader/include/getFavicon.js +++ b/modules/preloader/include/getFavicon.js @@ -4,7 +4,7 @@ Gets the favicon url @module getFavicon */ -const { ipcRenderer: ipc } = require('electron'); +const { ipcRenderer } = require('electron'); (function () { document.addEventListener('DOMContentLoaded', DOMContentLoaded, false); @@ -13,9 +13,9 @@ const { ipcRenderer: ipc } = require('electron'); const icon = document.querySelector('link[rel="apple-touch-icon"]') || document.querySelector('link[type="image/x-icon"]') || document.querySelector('link[rel="shortcut"]') || document.querySelector('link[rel="shortcut icon"]') || document.querySelector('link[rel="icon"]'); if (icon) - { ipc.sendToHost('favicon', icon.href); } + { ipcRenderer.sendToHost('favicon', icon.href); } else - { ipc.sendToHost('favicon', null); } + { ipcRenderer.sendToHost('favicon', null); } document.removeEventListener('DOMContentLoaded', DOMContentLoaded, false); } diff --git a/modules/preloader/include/getMetaTags.js b/modules/preloader/include/getMetaTags.js index 23f5edc7e..233a1260b 100644 --- a/modules/preloader/include/getMetaTags.js +++ b/modules/preloader/include/getMetaTags.js @@ -4,7 +4,7 @@ Gest the meta[name="ethereum-dapp-url-bar-style"] meta tag @module getMetaTags */ -const { ipcRenderer: ipc } = require('electron'); +const { ipcRenderer } = require('electron'); module.export = (function () { document.addEventListener('DOMContentLoaded', DOMContentLoaded, false); @@ -13,9 +13,9 @@ module.export = (function () { const appBar = document.querySelector('meta[name="ethereum-dapp-url-bar-style"]'); if (appBar) - { ipc.sendToHost('appBar', appBar.content); } + { ipcRenderer.sendToHost('appBar', appBar.content); } else - { ipc.sendToHost('appBar', null); } + { ipcRenderer.sendToHost('appBar', null); } document.removeEventListener('DOMContentLoaded', DOMContentLoaded, false); } diff --git a/modules/mistAPI.js b/modules/preloader/include/mistAPI.js similarity index 75% rename from modules/mistAPI.js rename to modules/preloader/include/mistAPI.js index 2a1856c50..2b88a0014 100644 --- a/modules/mistAPI.js +++ b/modules/preloader/include/mistAPI.js @@ -2,11 +2,11 @@ @module MistAPI */ -const { ipcRenderer: ipc, remote } = require('electron'); -const packageJson = require('./../package.json'); +const { ipcRenderer } = require('electron'); +const packageJson = require('./../../../package.json'); -module.exports = (isWallet) => { +module.exports = () => { let queue = []; const prefix = 'entry_'; @@ -21,13 +21,14 @@ module.exports = (isWallet) => { return newStr; }; - ipc.on('mistAPI_callMenuFunction', (e, id) => { + ipcRenderer.on('mistAPI_callMenuFunction', (e, id) => { if (mist.menu.entries[id] && mist.menu.entries[id].callback) { mist.menu.entries[id].callback(); } }); - ipc.on('uiAction_windowMessage', (e, type, error, value) => { + ipcRenderer.on('uiAction_windowMessage', (e, type, error, value) => { + console.log(type); if (mist.callbacks[type]) { mist.callbacks[type].forEach((cb) => { cb(error, value); @@ -39,23 +40,10 @@ module.exports = (isWallet) => { // work up queue every 500ms setInterval(() => { if (queue.length > 0) { - ipc.sendToHost('mistAPI_menuChanges', queue); + ipcRenderer.sendToHost('mistAPI_menuChanges', queue); queue = []; } - }, 200); - - // preparing sounds - // if wallet - if (isWallet) { - var sound = { - bip: document.createElement('audio'), - bloop: document.createElement('audio'), - invite: document.createElement('audio'), - }; - sound.bip.src = `file://${__dirname}/../sounds/bip.mp3`; - sound.bloop.src = `file://${__dirname}/../sounds/bloop.mp3`; - sound.invite.src = `file://${__dirname}/../sounds/invite.mp3`; - } + }, 500); /** @@ -67,10 +55,9 @@ module.exports = (isWallet) => { @constructor */ - let mist = { + const mist = { callbacks: {}, version: packageJson.version, - mode: remote.getGlobal('mode'), license: packageJson.license, platform: process.platform, requestAccount(callback) { @@ -81,16 +68,17 @@ module.exports = (isWallet) => { this.callbacks.connectAccount.push(callback); } - ipc.send('mistAPI_requestAccount'); + ipcRenderer.send('mistAPI_requestAccount'); }, sounds: { - bip() { - // if wallet - if (isWallet) { - sound.bip.play(); - } else { // if mist - ipc.sendToHost('mistAPI_sound', sound.bip.src); - } + bip: function playSound(){ + ipcRenderer.sendToHost('mistAPI_sound', 'file://'+ __dirname +'/../../../sounds/bip.mp3'); + }, + bloop: function playSound(){ + ipcRenderer.sendToHost('mistAPI_sound', 'file://'+ __dirname +'/../../../sounds/bloop.mp3'); + }, + invite: function playSound(){ + ipcRenderer.sendToHost('mistAPI_sound', 'file://'+ __dirname +'/../../../sounds/invite.mp3'); }, }, menu: { @@ -106,7 +94,7 @@ module.exports = (isWallet) => { @param {String} text */ setBadge(text) { - ipc.sendToHost('mistAPI_setBadge', text); + ipcRenderer.sendToHost('mistAPI_setBadge', text); }, /** Adds/Updates a menu entry diff --git a/modules/preloader/mistUI.js b/modules/preloader/mistUI.js index c60082161..113230cb6 100644 --- a/modules/preloader/mistUI.js +++ b/modules/preloader/mistUI.js @@ -3,11 +3,11 @@ */ require('./include/common')('mist'); -const { ipcRenderer: ipc, remote, webFrame } = require('electron'); // eslint-disable-line import/newline-after-import +const { ipcRenderer, remote, webFrame } = require('electron'); // eslint-disable-line import/newline-after-import const { Menu, MenuItem } = remote; const dbSync = require('../dbSync.js'); const i18n = require('../i18n.js'); -const mist = require('../mistAPI.js'); +const mist = require('./include/mistAPI.js'); const BigNumber = require('bignumber.js'); const Web3 = require('web3'); const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js'); @@ -17,9 +17,6 @@ const web3Admin = require('../web3Admin.js'); require('./include/setBasePath')('interface'); -// disable pinch zoom -webFrame.setZoomLevelLimits(1, 1); - // make variables globally accessable window.BigNumber = BigNumber; window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper)); @@ -30,9 +27,10 @@ setTimeout(() => { }, 1000); window.mist = mist(); +window.mistMode = remote.getGlobal('mode'); window.dbSync = dbSync; window.dirname = remote.getGlobal('dirname'); -window.ipc = ipc; +window.ipc = ipcRenderer; // remove require and module, because node-integration is on @@ -46,24 +44,34 @@ delete window.require; // set the langauge for the electron interface -// ipc.send('setLanguage', navigator.language.substr(0,2)); +// ipcRenderer.send('setLanguage', navigator.language.substr(0,2)); -// A message coming from a webview or other window -ipc.on('uiAction_windowMessage', (e, type, id, error, value) => { +// A message coming from other window, to be passed to a webview +ipcRenderer.on('uiAction_windowMessage', (e, type, id, error, value) => { + console.log(type, id, error, value); if ((type === 'requestAccount') || (type === 'connectAccount') && !error) { Tabs.update({ webviewId: id }, { $addToSet: { 'permissions.accounts': value, } }); } + + // forward to the webview (TODO: remove and manage in the ipcCommunicator?) + var tab = Tabs.findOne({ webviewId: id }); + if(tab) { + webview = $('webview[data-id='+ tab._id +']')[0]; + if(webview) + webview.send('uiAction_windowMessage', type, error, value); + } + }); -ipc.on('uiAction_enableBlurOverlay', (e, value) => { +ipcRenderer.on('uiAction_enableBlurOverlay', (e, value) => { $('html').toggleClass('has-blur-overlay', !!value); }); // Wait for webview toggle -ipc.on('uiAction_toggleWebviewDevTool', (e, id) => { +ipcRenderer.on('uiAction_toggleWebviewDevTool', (e, id) => { const webview = Helpers.getWebview(id); if (!webview) @@ -76,7 +84,7 @@ ipc.on('uiAction_toggleWebviewDevTool', (e, id) => { }); // Run tests -ipc.on('uiAction_runTests', (e, type) => { +ipcRenderer.on('uiAction_runTests', (e, type) => { if (type === 'webview') { web3.eth.getAccounts((error, accounts) => { if (error) diff --git a/modules/preloader/popupWindows.js b/modules/preloader/popupWindows.js index 01dd14161..238b0ef28 100644 --- a/modules/preloader/popupWindows.js +++ b/modules/preloader/popupWindows.js @@ -17,7 +17,6 @@ require('./include/openPopup.js'); // make variables globally accessable window.BigNumber = BigNumber; window.Q = Q; +window.https = https; window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper)); web3Admin.extend(window.web3); - -window.https = https; diff --git a/modules/preloader/popupWindowsNoWeb3.js b/modules/preloader/popupWindowsNoWeb3.js index 5d699f1b2..8b7bc98a2 100644 --- a/modules/preloader/popupWindowsNoWeb3.js +++ b/modules/preloader/popupWindowsNoWeb3.js @@ -3,23 +3,21 @@ */ require('./include/common')('popupWindow'); -const { ipcRenderer: ipc, remote, webFrame } = require('electron'); -const mist = require('../mistAPI.js'); +const { ipcRenderer, remote, webFrame } = require('electron'); +const mist = require('./include/mistAPI.js'); const dbSync = require('../dbSync.js'); require('./include/setBasePath')('interface'); require('./include/openExternal.js'); -// disable pinch zoom -webFrame.setZoomLevelLimits(1, 1); - // receive data in from SendData -ipc.on('uiAction_sendData', (e, data) => { +ipcRenderer.on('uiAction_sendData', (e, data) => { Session.set('data', data); }); window.mist = mist(); +window.mistMode = remote.getGlobal('mode'); window.dirname = remote.getGlobal('dirname'); window.dbSync = dbSync; -window.ipc = ipc; +window.ipc = ipcRenderer; diff --git a/modules/preloader/splashScreen.js b/modules/preloader/splashScreen.js index 2a86aed0a..2ecdbf567 100644 --- a/modules/preloader/splashScreen.js +++ b/modules/preloader/splashScreen.js @@ -1,6 +1,6 @@ -require('./include/common')('splash'); -const mist = require('../mistAPI.js'); -const { ipcRenderer: ipc, remote, webFrame } = require('electron'); +require('./include/common')('splashscreen'); +const mist = require('./include/mistAPI.js'); +const { ipcRenderer, remote, webFrame } = require('electron'); const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js'); const Web3 = require('web3'); @@ -9,12 +9,13 @@ require('./include/setBasePath')('interface'); // get and set language -ipc.send('backendAction_setLanguage', navigator.language); +ipcRenderer.send('backendAction_setLanguage', navigator.language); // disable pinch zoom webFrame.setZoomLevelLimits(1, 1); -window.ipc = ipc; +window.ipc = ipcRenderer; window.mist = mist(); +window.mistMode = remote.getGlobal('mode'); window.dirname = remote.getGlobal('dirname'); window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper)); diff --git a/modules/preloader/tests.js b/modules/preloader/tests.js index fbd0db605..dd3f0d9d3 100644 --- a/modules/preloader/tests.js +++ b/modules/preloader/tests.js @@ -13,12 +13,12 @@ require('./dapps.js'); const electron = require('electron'); -const ipc = electron.ipcRenderer; +const ipcRenderer = electron.ipcRenderer; window.ipcProvider = require('../ipc/ipcProviderWrapper.js'); window.permissions = {}; -ipc.sendToHost('sendTestData'); -ipc.on('uiAction_sendTestData', function(e, data) { +ipcRenderer.sendToHost('sendTestData'); +ipcRenderer.on('uiAction_sendTestData', function(e, data) { window.permissions = data.permissions; }) diff --git a/modules/preloader/wallet.js b/modules/preloader/wallet.js index ef4379046..9b6d61529 100644 --- a/modules/preloader/wallet.js +++ b/modules/preloader/wallet.js @@ -2,38 +2,6 @@ @module preloader wallet */ -require('./include/common')('wallet'); -const { ipcRenderer: ipc, webFrame } = require('electron'); -const mist = require('../mistAPI.js'); -const BigNumber = require('bignumber.js'); -const Web3 = require('web3'); -const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js'); -const web3Admin = require('../web3Admin.js'); +require('./dapps.js'); -require('./include/openExternal.js'); -require('./include/setBasePath')('interface/wallet'); - -// disable pinch zoom -webFrame.setZoomLevelLimits(1, 1); - - -// make variables globally accessable -// window.dirname = __dirname; -window.BigNumber = BigNumber; -window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper)); - -// add admin later -setTimeout(() => { - web3Admin.extend(window.web3); -}, 1000); - -// prevent overwriting the Dapps Web3 -delete global.Web3; -delete window.Web3; - -window.mist = mist(true); - -setTimeout(() => { - if (document.getElementsByTagName('html')[0]) - { document.getElementsByTagName('html')[0].className = window.platform; } -}, 500); +window.mistMode = 'mist'; diff --git a/modules/preloader/walletMain.js b/modules/preloader/walletMain.js new file mode 100644 index 000000000..9b4909579 --- /dev/null +++ b/modules/preloader/walletMain.js @@ -0,0 +1,22 @@ +/** +@module preloader wallet when loaded in the main window +*/ + +require('./dapps.js'); +require('./include/openExternal.js'); +require('./include/setBasePath')('interface/wallet'); + +const web3Admin = require('../web3Admin.js'); + +// make variables globally accessable +// window.dirname = __dirname; + +// add admin later +setTimeout(() => { + web3Admin.extend(window.web3); +}, 1000); + +setTimeout(() => { + if (document.getElementsByTagName('html')[0]) + { document.getElementsByTagName('html')[0].className = window.platform; } +}, 500);