From 0a9b814f11cc423ab1e5541c5f4e0b0b1385a3dd Mon Sep 17 00:00:00 2001 From: Kevin Serrano Date: Thu, 6 Oct 2016 03:25:03 -0700 Subject: [PATCH] On update, check whether the TOS has changed using hashes. --- app/scripts/background.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index 652acc113..92a76b31e 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -8,6 +8,9 @@ const messageManager = require('./lib/message-manager') const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex const MetamaskController = require('./metamask-controller') const extension = require('./lib/extension') +const fs = require('fs') +const disclaimer = fs.readFileSync(path.join(__dirname, '..', '..', 'USER_AGREEMENT.md')).toString() +const stringHash = require('string-hash') const STORAGE_KEY = 'metamask-config' var popupIsOpen = false @@ -29,8 +32,20 @@ function triggerUi () { // On first install, open a window to MetaMask website to how-it-works. extension.runtime.onInstalled.addListener(function (details) { + const newTOSHash = stringHash(disclaimer) if (details.reason === 'install') { - extension.tabs.create({url: 'https://metamask.io/#how-it-works'}) + controller.setTOSHash(newTOSHash, () => { + extension.tabs.create({url: 'https://metamask.io/#how-it-works'}) + }) + } else if (details.reason === 'update') { + controller.checkTOSChange(newTOSHash, (hasChanged) => { + if (hasChanged) { + controller.resetDisclaimer() + controller.setTOSHash(newTOSHash, () => { + extension.tabs.create({url: 'https://metamask.io/terms.html'}) + }) + } + }) } })