From 7b8321c263648c6c5a8f0799c1441f2b6c4e631d Mon Sep 17 00:00:00 2001 From: ansuz Date: Tue, 12 Dec 2017 13:43:55 +0100 Subject: [PATCH 1/5] make a test fail so we don't forget to fix the bug --- www/assert/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/assert/main.js b/www/assert/main.js index 629d7cafd..2dd3fef5a 100644 --- a/www/assert/main.js +++ b/www/assert/main.js @@ -137,7 +137,8 @@ define([ var secret = Hash.parsePadUrl('/pad/#67b8385b07352be53e40746d2be6ccd7XAYSuJYYqa9NfmInyHci7LNy'); return cb(secret.hashData.channel === "67b8385b07352be53e40746d2be6ccd7" && secret.hashData.key === "XAYSuJYYqa9NfmInyHci7LNy" && - secret.hashData.version === 0); + secret.hashData.version === 0 && + typeof(secret.hashData.getURL) === 'function'); }, "Old hash failed to parse"); // make sure version 1 hashes parse correctly From 76af3b90a72df95dc430f94816304aa744d1abc5 Mon Sep 17 00:00:00 2001 From: ansuz Date: Tue, 12 Dec 2017 13:47:24 +0100 Subject: [PATCH 2/5] stub createUnpinnedWarning0 --- www/common/cryptpad-common.js | 7 +++---- www/common/toolbar3.js | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index c8f6f1dae..2ff827ee7 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -4,18 +4,17 @@ define([ '/common/common-util.js', '/common/common-hash.js', '/common/common-messaging.js', - '/common/common-realtime.js', '/common/common-constants.js', '/common/common-feedback.js', '/common/outer/local-store.js', '/common/outer/store-rpc.js', - '/common/pinpad.js', '/customize/application_config.js', '/bower_components/nthen/index.js', ], function (Config, Messages, Util, Hash, - Messaging, Realtime, Constants, Feedback, LocalStore, AStore, - Pinpad, AppConfig, Nthen) { + Messaging, Constants, Feedback, LocalStore, AStore, + AppConfig, Nthen) { + /* This file exposes functionality which is specific to Cryptpad, but not to any particular pad type. This includes functions for committing metadata diff --git a/www/common/toolbar3.js b/www/common/toolbar3.js index ca3d1dbfd..cb0152018 100644 --- a/www/common/toolbar3.js +++ b/www/common/toolbar3.js @@ -720,6 +720,7 @@ define([ }; var createUnpinnedWarning0 = function (toolbar, config) { + if (true) { return; } // stub this call since it won't make it into the next release if (Common.isLoggedIn()) { return; } var pd = config.metadataMgr.getPrivateData(); var o = pd.origin; From 0aae61f72e2f0ad3d7d3feaceb2d77b229e85510 Mon Sep 17 00:00:00 2001 From: Caleb James DeLisle Date: Tue, 12 Dec 2017 14:18:22 +0100 Subject: [PATCH 3/5] Anonymous RPC GET_FILE_SIZE does not work correctly unless at least one authenticated RPC has been called first. Also RPC failures (throw error) are silent in the logs --- rpc.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/rpc.js b/rpc.js index a4821524b..410e5f22b 100644 --- a/rpc.js +++ b/rpc.js @@ -1057,11 +1057,9 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function) } }; - var rpc = function ( - ctx /*:{ store: Object }*/, - data /*:Array>*/, - respond /*:(?string, ?Array)=>void*/) - { + var rpc0 = function (ctx, data, respond) { + if (!Env.msgStore) { Env.msgStore = ctx.store; } + if (!Array.isArray(data)) { return void respond('INVALID_ARG_FORMAT'); } @@ -1140,8 +1138,6 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function) Respond('E_ACCESS_DENIED'); }; - if (!Env.msgStore) { Env.msgStore = ctx.store; } - var handleMessage = function (privileged) { if (config.logRPC) { console.log(msg[0]); } switch (msg[0]) { @@ -1272,6 +1268,19 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function) handleMessage(session.privilege); }; + var rpc = function ( + ctx /*:{ store: Object }*/, + data /*:Array>*/, + respond /*:(?string, ?Array)=>void*/) + { + try { + return rpc0(ctx, data, respond); + } catch (e) { + console.log("Error from RPC with data " + JSON.stringify(data)); + console.log(e.stack); + } + }; + var updateLimitDaily = function () { updateLimits(config, undefined, function (e) { if (e) { From 8582f92892d6d0fb75dbeefb7c0fab73d5f8dff6 Mon Sep 17 00:00:00 2001 From: Caleb James DeLisle Date: Tue, 12 Dec 2017 14:30:10 +0100 Subject: [PATCH 4/5] Attempt to handle the possible scenario where we are overwriting an existing pad with the initial content. --- www/common/sframe-app-framework.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/www/common/sframe-app-framework.js b/www/common/sframe-app-framework.js index 5b4d075be..526e45678 100644 --- a/www/common/sframe-app-framework.js +++ b/www/common/sframe-app-framework.js @@ -253,6 +253,13 @@ define([ newContent = normalize(newContent); contentUpdate(newContent); } else { + if (!cpNfInner.metadataMgr.getPrivateData().isNewFile) { + // We're getting 'new pad' but there is an existing file + // We don't know exactly why this can happen but under no circumstances + // should we overwrite the content, so lets just try again. + common.gotoURL(); + return; + } console.log('updating title'); title.updateTitle(title.defaultTitle); evOnDefaultContentNeeded.fire(); From 15ccf7e54db9c2cc5c7b9c096c85f2729e50c8f2 Mon Sep 17 00:00:00 2001 From: Caleb James DeLisle Date: Tue, 12 Dec 2017 14:39:03 +0100 Subject: [PATCH 5/5] try to fix saucelabs --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9fe64ca63..c756e5452 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,4 +26,5 @@ addons: sauce_connect: username: "cjdelisle" access_key: - secure: "pgGh8YGXLPq6fpdwwK2jnjRtwXPbVWQ/HIFvwX7E6HBpzxxcF2edE8sCdonWW9TP2LQisZFmVLqoSnZWMnjBr2CBAMKMFvaHQDJDQCo4v3BXkID7KgqyKmNcwW+FPfSJ5MxNBro8/GE/awkhZzJLYGUTS5zi/gVuIUwdi6cHI8s=" + secure: "pgGh8YGXLPq6fpdwwK2jnjRtwXPbVWQ/HIFvwX7E6HBpzxxcF2edE8sCdonWW9TP2LQisZFmVLqoSnZWMnjBr2CBAMKMFvaHQDJDQCo4v3BXkID7KgqyKmNcwW+FPfSJ5MxNBro8/GE/awkhZzJLYGUTS5zi/gVuIUwdi6cHI8s="i + tunnel_domains: localhost