From da8304e967a25ee8544500a64f661dd6d94b6e8d Mon Sep 17 00:00:00 2001 From: mika Date: Tue, 13 Aug 2019 12:49:16 +0800 Subject: [PATCH 1/2] FIX: browser handler event order --- src/js/background/clipping-handler-browser.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/js/background/clipping-handler-browser.js b/src/js/background/clipping-handler-browser.js index 956b04f3..eb839fce 100644 --- a/src/js/background/clipping-handler-browser.js +++ b/src/js/background/clipping-handler-browser.js @@ -1,6 +1,7 @@ const ClippingHandler_Browser = (function(){ const state = { isListening: false, + createdFilenameDict: T.createDict(), // downloadItemId => filename (full path) taskFilenameDict: T.createDict(), // downloadItemId => taskFilename }; @@ -45,6 +46,13 @@ const ClippingHandler_Browser = (function(){ }).then((downloadItemId) => { // download started successfully state.taskFilenameDict.add(downloadItemId, msg.filename); + + const createdFilename = state.createdFilenameDict.find(downloadItemId); + if (createdFilename) { + // We've got filename in downloadCreated event if we are in firefox. + // see downloadCreated function. + filenameCreated(downloadItemId, createdFilename); + } }, (rejectMsg) => { Log.error(rejectMsg); SavingTool.taskFailed(msg.filename, errMsg); @@ -65,6 +73,7 @@ const ClippingHandler_Browser = (function(){ function downloadCompleted(downloadItemId){ // file that not download through maoxian web clipper + state.createdFilenameDict.remove(downloadItemId); if(!isDownloadByUs(downloadItemId)) { return false } ExtApi.findDownloadItem(downloadItemId) .then((downloadItem) => { @@ -117,10 +126,10 @@ const ClippingHandler_Browser = (function(){ if(e.filename){ // firefox has filename on downloadCreated but not in downloadChanged // download created event is emit before resolve of ExtApi.download - // We deal this event next tick (after ExtApi.download function resolved). - setTimeout(() => { - filenameCreated(e.id, T.sanitizePath(e.filename)) - }, 0); + // and we don't know when ExtApi.download will resolve (we can't + // just use setTimeout to delay it. cause it'll unstable) + // + state.createdFilenameDict.add(e.id, T.sanitizePath(e.filename)); } } From c147a4f983c80891ceb4cc2faa578816ed0a10e9 Mon Sep 17 00:00:00 2001 From: mika Date: Tue, 13 Aug 2019 13:00:42 +0800 Subject: [PATCH 2/2] bump version 0.1.36 --- src/js/env.js | 2 +- src/js/env.production.js | 2 +- src/manifest.chrome.json | 2 +- src/manifest.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/js/env.js b/src/js/env.js index 3eba379f..a26c1514 100644 --- a/src/js/env.js +++ b/src/js/env.js @@ -3,7 +3,7 @@ this.ENV = { logLevel: "debug", - version: '0.1.35', + version: '0.1.36', minNativeAppVersion: '0.1.9' }; diff --git a/src/js/env.production.js b/src/js/env.production.js index 43eb1d4a..674fe9d2 100644 --- a/src/js/env.production.js +++ b/src/js/env.production.js @@ -3,7 +3,7 @@ this.ENV = { logLevel: "warn", - version: '0.1.35', + version: '0.1.36', minNativeAppVersion: '0.1.9' }; diff --git a/src/manifest.chrome.json b/src/manifest.chrome.json index 4fc14753..a6e9138c 100644 --- a/src/manifest.chrome.json +++ b/src/manifest.chrome.json @@ -3,7 +3,7 @@ "name": "__MSG_extensionName__", "description": "__MSG_extensionDescription__", "author": "Mika", - "version": "0.1.35", + "version": "0.1.36", "default_locale": "en", "web_accessible_resources": [ "pages/*" diff --git a/src/manifest.json b/src/manifest.json index 4fc14753..a6e9138c 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -3,7 +3,7 @@ "name": "__MSG_extensionName__", "description": "__MSG_extensionDescription__", "author": "Mika", - "version": "0.1.35", + "version": "0.1.36", "default_locale": "en", "web_accessible_resources": [ "pages/*"