improved log
This commit is contained in:
		| @ -92,7 +92,7 @@ function parseUrls(...args) { | |||||||
|  |  | ||||||
| function redirectTab(tab, url) { | function redirectTab(tab, url) { | ||||||
|     let curUrl = ""; |     let curUrl = ""; | ||||||
|     return queryUrl(tab) |     return queryUrl(tab, undefined, 'Query current url...') | ||||||
|         .then(u => { |         .then(u => { | ||||||
|             if (url !== u) { |             if (url !== u) { | ||||||
|                 curUrl = u; |                 curUrl = u; | ||||||
| @ -100,11 +100,10 @@ function redirectTab(tab, url) { | |||||||
|                     from: "GotoUrl", |                     from: "GotoUrl", | ||||||
|                     url: url |                     url: url | ||||||
|                 } |                 } | ||||||
|                 sendMessage(tab, req); |                 sendMessage(tab, req, `Goto url: ${url}`); | ||||||
|             } |             } | ||||||
|         }) |         }) | ||||||
|         .then(() => queryUrl(tab, curUrl)) |         .then(() => queryUrl(tab, curUrl, 'Check if tab url matches expected...')) | ||||||
|         .then(() => reportIn(tab)); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -121,7 +120,7 @@ function extractTabData(tab, itemsSelector, fieldSelectors) { | |||||||
|         fieldSelectors: fieldSelectors |         fieldSelectors: fieldSelectors | ||||||
|     } |     } | ||||||
|     let cond = r => r && r.length; |     let cond = r => r && r.length; | ||||||
|     return sendMessage(tab, req, cond); |     return sendMessage(tab, req, 'Extract data from the tab...', cond); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -134,7 +133,7 @@ function reportIn(tab) { | |||||||
|         from: "ReportIn" |         from: "ReportIn" | ||||||
|     } |     } | ||||||
|     let cond = r => r == req.from; |     let cond = r => r == req.from; | ||||||
|     return sendMessage(tab, req, cond); |     return sendMessage(tab, req, 'Check tab availability...', cond); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -143,12 +142,12 @@ function reportIn(tab) { | |||||||
|  * @param {string} urlExcluded if specified, queryUrl resolves only when response not equals to urlExcluded |  * @param {string} urlExcluded if specified, queryUrl resolves only when response not equals to urlExcluded | ||||||
|  * @returns {Promise<string>} a promise of the url |  * @returns {Promise<string>} a promise of the url | ||||||
|  */ |  */ | ||||||
| function queryUrl(tab, urlExcluded) { | function queryUrl(tab, urlExcluded, log) { | ||||||
|     let req = { |     let req = { | ||||||
|         from: "QueryUrl" |         from: "QueryUrl" | ||||||
|     } |     } | ||||||
|     let cond = url => url && (!urlExcluded || (urlExcluded && urlExcluded != url)); |     let cond = url => url && (!urlExcluded || (urlExcluded && urlExcluded != url)); | ||||||
|     return sendMessage(tab, req, cond); |     return sendMessage(tab, req, log, cond); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -157,9 +156,10 @@ function queryUrl(tab, urlExcluded) { | |||||||
|  * @param {object} req the request data. |  * @param {object} req the request data. | ||||||
|  * @param {function} cond success condition function, r:any=>boolean |  * @param {function} cond success condition function, r:any=>boolean | ||||||
|  * @param {number} interval interval for detecting |  * @param {number} interval interval for detecting | ||||||
|  |  * @param {string} log messages logged to console. | ||||||
|  * @return {Promise} a promise of the response. |  * @return {Promise} a promise of the response. | ||||||
|  */ |  */ | ||||||
| function sendMessage(tab, req, cond, interval) { | function sendMessage(tab, req, log, cond, interval) { | ||||||
|     req.from = "DataExtracter:" + req.from; |     req.from = "DataExtracter:" + req.from; | ||||||
|     interval = interval || 500; |     interval = interval || 500; | ||||||
|     return new Promise((resolve, reject) => { |     return new Promise((resolve, reject) => { | ||||||
| @ -167,7 +167,7 @@ function sendMessage(tab, req, cond, interval) { | |||||||
|         loop(); |         loop(); | ||||||
|  |  | ||||||
|         async function loop() { |         async function loop() { | ||||||
|             console.log("request for", req.from); |             // console.log("request for", req.from); | ||||||
|             let tabAvailable = await getTabByID(tab.id); |             let tabAvailable = await getTabByID(tab.id); | ||||||
|             if (!tabAvailable) { |             if (!tabAvailable) { | ||||||
|                 reject("Task interrupted due to the target tab is closed."); |                 reject("Task interrupted due to the target tab is closed."); | ||||||
| @ -175,7 +175,9 @@ function sendMessage(tab, req, cond, interval) { | |||||||
|             } |             } | ||||||
|  |  | ||||||
|             chrome.tabs.sendMessage(tab.id, req, r => { |             chrome.tabs.sendMessage(tab.id, req, r => { | ||||||
|                 if (!cond || cond(r)) { |                 let flag = !cond || cond(r); | ||||||
|  |                 if (log) console.log(log, flag ? '(OK)' : '(failed)'); | ||||||
|  |                 if (flag) { | ||||||
|                     resolve(r); |                     resolve(r); | ||||||
|                 } else { |                 } else { | ||||||
|                     setTimeout(() => { |                     setTimeout(() => { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user