From bdc8a91778fa46fc941888bea5de17cf7d2ebe95 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Wed, 4 Apr 2012 18:25:22 -0400 Subject: [PATCH] Retry w/ JSON to avoid cross-object contamination --- test/driver.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/test/driver.js b/test/driver.js index 8814da00e..a1dc4b242 100644 --- a/test/driver.js +++ b/test/driver.js @@ -248,16 +248,21 @@ function done() { } } -function sendTaskResult(snapshot, task, failure) { - var result = { browser: browser, - id: task.id, - numPages: task.pdfDoc ? - (task.pageLimit || task.pdfDoc.numPages) : 0, - failure: failure, - file: task.file, - round: task.round, - page: task.pageNum, - snapshot: snapshot }; +function sendTaskResult(snapshot, task, failure, result) { + // Optional result argument is for retrying XHR requests - see below + if (!result) { + result = JSON.stringify({ + browser: browser, + id: task.id, + numPages: task.pdfDoc ? + (task.pageLimit || task.pdfDoc.numPages) : 0, + failure: failure, + file: task.file, + round: task.round, + page: task.pageNum, + snapshot: snapshot + }); + } var r = new XMLHttpRequest(); // (The POST URI is ignored atm.) @@ -268,11 +273,11 @@ function sendTaskResult(snapshot, task, failure) { inFlightRequests--; // Retry until successful if (r.status !== 200) - sendTaskResult(snapshot, task, failure); + sendTaskResult(null, null, null, result); } }; document.getElementById('inFlightCount').innerHTML = inFlightRequests++; - r.send(JSON.stringify(result)); + r.send(result); } function clear(ctx) {