Cleanup blessing store and roots when the extension is upgraded.
MultiPart: 1/2
Change-Id: I6139dd4dd6eec303edfdb72d718b98eabdac0d11
diff --git a/extension/manifest.json b/extension/manifest.json
index fa0d829..15ea18d 100644
--- a/extension/manifest.json
+++ b/extension/manifest.json
@@ -1,6 +1,6 @@
{
"name": "Vanadium Extension",
- "version": "0.1.31",
+ "version": "0.1.32",
"description": "Access and create Vanadium services from JavaScript.",
"manifest_version": 2,
"icons": {
diff --git a/extension/src/background/nacl.js b/extension/src/background/nacl.js
index aacaafb..c87bc59 100644
--- a/extension/src/background/nacl.js
+++ b/extension/src/background/nacl.js
@@ -10,6 +10,15 @@
var QueuedRpcChannelWrapper = require('./queued_channel');
var state = require('../state');
+// Clean the extension blessing whenever the extension is updated.
+// See https://developer.chrome.com/extensions/runtime#event-onInstalled
+var cleanBlessingsOnStart = false;
+chrome.runtime.onInstalled.addListener(function(details) {
+ if (details.reason === 'update') {
+ cleanBlessingsOnStart = true;
+ }
+});
+
module.exports = Nacl;
function Nacl() {
@@ -92,6 +101,7 @@
}
var body = {
+ cleanupBlessings: cleanBlessingsOnStart,
identitydBlessingRoot: identityBlessingRoot,
identityd: settings.identityd.value,
namespaceRoot: settings.namespaceRoot.value,
@@ -100,6 +110,8 @@
logModule: settings.logModule.value || ''
};
+ cleanBlessingsOnStart = false;
+
nacl._directChannel.performRpc('start', body, function(err) {
if (err) {
return nacl.emit('crash', err.message);
diff --git a/src/gen-vdl/v.io/x/ref/services/wspr/internal/browspr/index.js b/src/gen-vdl/v.io/x/ref/services/wspr/internal/browspr/index.js
index edaac05..d27084e 100644
--- a/src/gen-vdl/v.io/x/ref/services/wspr/internal/browspr/index.js
+++ b/src/gen-vdl/v.io/x/ref/services/wspr/internal/browspr/index.js
@@ -52,7 +52,7 @@
_typeOriginHasAccountMessage.fields = [{name: "Origin", type: vdl.types.STRING}];
_typeStartMessage.kind = vdl.kind.STRUCT;
_typeStartMessage.name = "v.io/x/ref/services/wspr/internal/browspr.StartMessage";
-_typeStartMessage.fields = [{name: "Identityd", type: vdl.types.STRING}, {name: "IdentitydBlessingRoot", type: new identity.BlessingRootResponse()._type}, {name: "Proxy", type: vdl.types.STRING}, {name: "NamespaceRoot", type: vdl.types.STRING}, {name: "LogLevel", type: vdl.types.INT32}, {name: "LogModule", type: vdl.types.STRING}];
+_typeStartMessage.fields = [{name: "CleanupBlessings", type: vdl.types.BOOL}, {name: "Identityd", type: vdl.types.STRING}, {name: "IdentitydBlessingRoot", type: new identity.BlessingRootResponse()._type}, {name: "Proxy", type: vdl.types.STRING}, {name: "NamespaceRoot", type: vdl.types.STRING}, {name: "LogLevel", type: vdl.types.INT32}, {name: "LogModule", type: vdl.types.STRING}];
_type1.freeze();
_type2.freeze();
_typeAssociateAccountMessage.freeze();