1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-27 12:56:01 +01:00

Merge pull request #2275 from MetaMask/version-debugging

Add OS Version and Browser Version to State Logs
This commit is contained in:
Kevin Serrano 2017-10-26 17:06:33 -07:00 committed by GitHub
commit 4ac198eebc
4 changed files with 45 additions and 12 deletions

View File

@ -7,6 +7,7 @@
- Add support for alternative ENS TLDs (Ethereum Name Service Top-Level Domains).
- Lower minimum gas price to 0.1 GWEI.
- Remove web3 injection message from production (thanks to @ChainsawBaby)
- Add additional debugging info to our state logs, specifically OS version and browser version.
## 3.11.2 2017-10-21

View File

@ -17,6 +17,15 @@ class ExtensionPlatform {
return extension.runtime.getManifest().version
}
getPlatformInfo (cb) {
try {
extension.runtime.getPlatformInfo((platform) => {
cb(null, platform)
})
} catch (e) {
cb(e)
}
}
}
module.exports = ExtensionPlatform

View File

@ -113,7 +113,13 @@ ConfigScreen.prototype.render = function () {
alignSelf: 'center',
},
onClick (event) {
exportAsFile('MetaMask State Logs', window.logState())
window.logStateString((err, result) => {
if (err) {
state.dispatch(actions.displayWarning('Error in retrieving state logs.'))
} else {
exportAsFile('MetaMask State Logs', result)
}
})
},
}, 'Download State Logs'),
]),

View File

@ -1,4 +1,5 @@
const extend = require('xtend')
const copyToClipboard = require('copy-to-clipboard')
//
// Sub-Reducers take in the complete state and return their sub-state
@ -41,17 +42,33 @@ function rootReducer (state, action) {
return state
}
window.logState = function () {
const state = window.METAMASK_CACHED_LOG_STATE
let version
try {
version = global.platform.getVersion()
} catch (e) {
version = 'unable to load version.'
}
state.version = version
const stateString = JSON.stringify(state, removeSeedWords, 2)
return stateString
window.logStateString = function (cb) {
let state = window.METAMASK_CACHED_LOG_STATE
const version = global.platform.getVersion()
const browser = window.navigator.userAgent
return global.platform.getPlatformInfo((err, platform) => {
if (err) {
return cb(err)
}
state.version = version
state.platform = platform
state.browser = browser
let stateString = JSON.stringify(state, removeSeedWords, 2)
return cb(null, stateString)
})
}
window.logState = function (toClipboard) {
return window.logStateString((err, result) => {
if (err) {
console.error(err.message)
} else if (toClipboard) {
copyToClipboard(result)
console.log('State log copied')
} else {
console.log(result)
}
})
}
function removeSeedWords (key, value) {