]> git.parisson.com Git - pdf.js.git/commitdiff
Retry w/ JSON to avoid cross-object contamination
authorArtur Adib <arturadib@gmail.com>
Wed, 4 Apr 2012 22:25:22 +0000 (18:25 -0400)
committerArtur Adib <arturadib@gmail.com>
Wed, 4 Apr 2012 22:25:22 +0000 (18:25 -0400)
test/driver.js

index 8814da00e8a8709aa7cffd5ce6b75bd3e6b8cf5d..a1dc4b242ee7ca974d569b62da0ca9ccee75d437 100644 (file)
@@ -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) {