From bc7e4b891889293def4f2709acc4eea17e2bcd4a Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 19 Jul 2023 15:20:28 +0200 Subject: [PATCH] Fix broken redirect on account password change --- www/common/cryptpad-common.js | 8 ++++---- www/common/outer/noworker.js | 1 + www/common/outer/sharedworker.js | 2 +- www/common/outer/webworker.js | 4 ++++ www/common/sframe-common-outer.js | 1 - 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index a0f27e7bb..2d13c42f5 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -390,7 +390,7 @@ define([ }); }; common.stopWorker = function () { - postMessage('STOPWORKER', null, function () {}); + postMessage('STOPWORKER'); }; common.logoutFromAll = function (cb) { var token = Math.floor(Math.random()*Number.MAX_SAFE_INTEGER); @@ -2073,7 +2073,7 @@ define([ return; } common.logoutFromAll(waitFor(function () { - postMessage("DISCONNECT"); + common.stopWorker(); })); })); }).nThen(function (waitFor) { @@ -2088,7 +2088,7 @@ define([ console.error(obj.error); } common.logoutFromAll(waitFor(function () { - postMessage("DISCONNECT"); + common.stopWorker(); })); })); }).nThen(function () { @@ -2790,7 +2790,7 @@ define([ }); LocalStore.onLogout(function () { console.log('onLogout: disconnect'); - postMessage("DISCONNECT"); + common.stopWorker(); }); }).nThen(function (waitFor) { if (common.migrateAnonDrive || sessionStorage.migrateAnonDrive) { diff --git a/www/common/outer/noworker.js b/www/common/outer/noworker.js index 5a3025958..0b5372750 100644 --- a/www/common/outer/noworker.js +++ b/www/common/outer/noworker.js @@ -31,6 +31,7 @@ define([ }); }); chan.on('STOPWORKER', function (data, cb) { + Rpc.queries['DISCONNECT'](clientId, data, cb); cb(); }); chan.on('CONNECT', function (cfg, cb) { diff --git a/www/common/outer/sharedworker.js b/www/common/outer/sharedworker.js index 446df384c..b155dce80 100644 --- a/www/common/outer/sharedworker.js +++ b/www/common/outer/sharedworker.js @@ -72,7 +72,7 @@ var init = function (client, cb) { } }); }); - chan.on('STOPWORKER', function (data, cb) { + chan.on('STOPWORKER', function () { self.close(); }); chan.on('CONNECT', function (cfg, cb) { diff --git a/www/common/outer/webworker.js b/www/common/outer/webworker.js index 6cd5e9484..b7d6dcc78 100644 --- a/www/common/outer/webworker.js +++ b/www/common/outer/webworker.js @@ -28,6 +28,7 @@ require(['/api/config?cb=' + (+new Date()).toString(16)], function (ApiConfig) { if (q === 'CONNECT') { return; } if (q === 'JOIN_PAD') { return; } if (q === 'SEND_PAD_MSG') { return; } + if (q === 'STOPWORKER') { return; } chan.on(q, function (data, cb) { try { Rpc.queries[q](clientId, data, cb); @@ -38,6 +39,9 @@ require(['/api/config?cb=' + (+new Date()).toString(16)], function (ApiConfig) { } }); }); + chan.on('STOPWORKER', function () { + self.close(); + }); chan.on('CONNECT', function (cfg, cb) { // load Store here, with cfg, and pass a "query" (chan.query) // cId is a clientId used in ServiceWorker or SharedWorker diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index d0603c8c1..8fb767788 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -1343,7 +1343,6 @@ define([ }); sframeChan.on('Q_LOGOUT', function (data, cb) { - Cryptpad.stopWorker(); Utils.LocalStore.logout(cb); });