Merge pull request #2194 from ethereum/yann300-patch-40

do not crash if localstorage is full
pull/5370/head
Rob 3 years ago committed by GitHub
commit f29f012149
  1. 12
      apps/remix-ide/src/app/plugins/permission-handler-plugin.tsx

@ -14,8 +14,10 @@ const profile = {
export class PermissionHandlerPlugin extends Plugin { export class PermissionHandlerPlugin extends Plugin {
permissions: any permissions: any
currentVersion: number currentVersion: number
fallbackMemory: boolean
constructor() { constructor() {
super(profile) super(profile)
this.fallbackMemory = false
this.permissions = this._getFromLocal() this.permissions = this._getFromLocal()
this.currentVersion = 1 this.currentVersion = 1
// here we remove the old permissions saved before adding 'permissionVersion' // here we remove the old permissions saved before adding 'permissionVersion'
@ -27,13 +29,19 @@ export class PermissionHandlerPlugin extends Plugin {
} }
_getFromLocal() { _getFromLocal() {
if (this.fallbackMemory) return this.permissions
const permission = localStorage.getItem('plugins/permissions') const permission = localStorage.getItem('plugins/permissions')
return permission ? JSON.parse(permission) : {} return permission ? JSON.parse(permission) : {}
} }
persistPermissions() { persistPermissions() {
const permissions = JSON.stringify(this.permissions) const permissions = JSON.stringify(this.permissions)
localStorage.setItem('plugins/permissions', permissions) try {
localStorage.setItem('plugins/permissions', permissions)
} catch (e) {
this.fallbackMemory = true
console.log(e)
}
} }
switchMode (from: Profile, to: Profile, method: string, set: boolean) { switchMode (from: Profile, to: Profile, method: string, set: boolean) {
@ -123,4 +131,4 @@ export class PermissionHandlerPlugin extends Plugin {
} }
}) })
} }
} }

Loading…
Cancel
Save