diff --git a/test/driver.js b/test/driver.js
index a0e3bc252..41ae3943a 100644
--- a/test/driver.js
+++ b/test/driver.js
@@ -50,6 +50,7 @@ function load() {
   canvas.mozOpaque = true;
   stdout = document.getElementById('stdout');
 
+  info('User Agent: ' + navigator.userAgent);
   log('load...\n');
 
   log('Harness thinks this browser is "' + browser + '" with path "' +
@@ -343,20 +344,34 @@ function sendTaskResult(snapshot, task, failure, result) {
     });
   }
 
+  send('/submit_task_results', result);
+}
+
+function send(url, message) {
   var r = new XMLHttpRequest();
   // (The POST URI is ignored atm.)
-  r.open('POST', '/submit_task_results', true);
+  r.open('POST', url, true);
   r.setRequestHeader('Content-Type', 'application/json');
   r.onreadystatechange = function sendTaskResultOnreadystatechange(e) {
     if (r.readyState == 4) {
       inFlightRequests--;
       // Retry until successful
-      if (r.status !== 200)
-        sendTaskResult(null, null, null, result);
+      if (r.status !== 200) {
+        setTimeout(function() {
+          send(url, message);
+        });
+      }
     }
   };
   document.getElementById('inFlightCount').innerHTML = inFlightRequests++;
-  r.send(result);
+  r.send(message);
+}
+
+function info(message) {
+  send('/info', JSON.stringify({
+    browser: browser,
+    message: message
+  }));
 }
 
 function clear(ctx) {
diff --git a/test/test.py b/test/test.py
index 4911ec015..0575564d8 100644
--- a/test/test.py
+++ b/test/test.py
@@ -314,8 +314,13 @@ class PDFTestHandler(TestHandlerBase):
             return
 
         result = json.loads(self.rfile.read(numBytes))
-        browser, id, failure, round, page, snapshot = result['browser'], result['id'], result['failure'], result['round'], result['page'], result['snapshot']
+        browser = result['browser']
         State.lastPost[browser] = int(time.time())
+        if url.path == "/info":
+            print result['message']
+            return
+
+        id, failure, round, page, snapshot = result['id'], result['failure'], result['round'], result['page'], result['snapshot']
         taskResults = State.taskResults[browser][id]
         taskResults[round].append(Result(snapshot, failure, page))