Hello andreip,

I'd like you to do a code review.  Please execute
        g4 diff -c 9452026

or point your web browser to
        http://mondrian/9452026

to review the following code:

Change 9452026 by stevebl...@steveblock-gears3 on 2008/12/17 19:41:15 *pending*

        Modifies unit tests to avoid the need for function-to-string conversion 
for use with workerpool.createWorker().
        
        This is motivated by Opera Mobile, which does not support ECMA script 
decompilation.
        
        R=andreip
        [email protected],[email protected]
        DELTA=73  (27 added, 20 deleted, 26 changed)
        OCL=9452026

Affected files ...

... 
//depot/googleclient/gears/opensource/gears/test/testcases/localserver_tests.js#10
 edit
... 
//depot/googleclient/gears/opensource/gears/test/testcases/workerpool_tests.js#2
 edit

73 delta lines: 27 added, 20 deleted, 26 changed

If you can't do the review, please let me know as soon as possible.  During
your review, please ensure that all new code has corresponding unit tests and
that existing unit tests are updated appropriately.  Visit
http://www/eng/code_review.html for more information.

This is a semiautomated message from "g4 mail".  Complaints or suggestions?
Mail [email protected].
Change 9452026 by stevebl...@steveblock-gears3 on 2008/12/17 19:41:15 *pending*

        Modifies unit tests to avoid the need for function-to-string conversion 
for use with workerpool.createWorker().
        
        This is motivated by Opera Mobile, which does not support ECMA script 
decompilation.

Affected files ...

... 
//depot/googleclient/gears/opensource/gears/test/testcases/localserver_tests.js#10
 edit
... 
//depot/googleclient/gears/opensource/gears/test/testcases/workerpool_tests.js#2
 edit

==== 
//depot/googleclient/gears/opensource/gears/test/testcases/localserver_tests.js#10
 - 
c:\MyDocs\Gears3/googleclient/gears/opensource/gears/test/testcases/localserver_tests.js
 ====
# action=edit type=text
--- googleclient/gears/opensource/gears/test/testcases/localserver_tests.js     
2008-12-19 12:03:21.000000000 +0000
+++ googleclient/gears/opensource/gears/test/testcases/localserver_tests.js     
2008-12-19 10:33:19.000000000 +0000
@@ -32,6 +32,23 @@
   failure: 3
 };
 
+// These functions, represented as strings, are used in
+// testManagedResourceStoreThreads and testManagedResourceStoreErrorThreads.
+var workerInit = [
+  'function workerInit() {',
+  '  google.gears.workerPool.onmessage = workerOnMessage;',
+  '}',
+  ''
+].join('\n');
+var workerOnMessage = [
+  'function workerOnMessage(text, sender, m) {',
+  '  var localserver = google.gears.factory.create("beta.localserver");',
+  '  var managedStore = localserver.openManagedStore(text);',
+  '  managedStore.checkForUpdate();',
+  '}',
+  ''
+].join('\n');
+
 function getFreshStore() {
   if (localServer.openStore(STORE_NAME)) {
     localServer.removeStore(STORE_NAME);
@@ -495,21 +512,11 @@
   };
 
   var workerpool = google.gears.factory.create('beta.workerpool');
-  var workerId = workerpool.createWorker(String(workerInit) +
-                                         String(workerOnMessage) +
+  var workerId = workerpool.createWorker(workerInit +
+                                         workerOnMessage +
                                          'workerInit();');
 
   workerpool.sendMessage(managedStore.name, workerId);
-
-  function workerInit() {
-    google.gears.workerPool.onmessage = workerOnMessage;
-  }
-
-  function workerOnMessage(text, sender, m) {
-    var localserver = google.gears.factory.create('beta.localserver');
-    var managedStore = localserver.openManagedStore(text);
-    managedStore.checkForUpdate();
-  }
 }
 
 function testManagedResourceStoreErrorCallback() {
@@ -536,21 +543,11 @@
   }
 
   var workerpool = google.gears.factory.create('beta.workerpool');
-  var workerId = workerpool.createWorker(String(workerInit) +
-                                         String(workerOnMessage) +
+  var workerId = workerpool.createWorker(workerInit +
+                                         workerOnMessage +
                                          'workerInit();');
 
   workerpool.sendMessage(managedStore.name, workerId);
-
-  function workerInit() {
-    google.gears.workerPool.onmessage = workerOnMessage;
-  }
-
-  function workerOnMessage(text, sender, m) {
-    var localserver = google.gears.factory.create('beta.localserver');
-    var managedStore = localserver.openManagedStore(text);
-    managedStore.checkForUpdate();
-  }
 }
 
 function testManagedResourceStoreInvalidContentLength() {
==== 
//depot/googleclient/gears/opensource/gears/test/testcases/workerpool_tests.js#2
 - 
c:\MyDocs\Gears3/googleclient/gears/opensource/gears/test/testcases/workerpool_tests.js
 ====
# action=edit type=text
--- googleclient/gears/opensource/gears/test/testcases/workerpool_tests.js      
2008-10-14 13:18:11.000000000 +0100
+++ googleclient/gears/opensource/gears/test/testcases/workerpool_tests.js      
2008-12-17 20:06:05.000000000 +0000
@@ -83,19 +83,26 @@
            'Received an extra message %s for worker %s'.subs(retval, 
workerId));
   }
 
-  function childInit() {
-    messageTotal = 0;
-    google.gears.workerPool.onmessage = childOnMessage;
-  }
+  var childInit = [
+    'function childInit() {',
+    '  messageTotal = 0;',
+    '  google.gears.workerPool.onmessage = childOnMessage;',
+    '}',
+    ''
+  ].join('\n');
 
-  function childOnMessage(text, sender, m) {
-    var numResponses = parseInt(m.text);
-    for (var i = 0; i < numResponses; ++i) {
-      google.gears.workerPool.sendMessage(String(gFirstResponse + 
messageTotal),
-                                          sender);
-      messageTotal += 1;
-    }
-  }
+  var childOnMessage = [
+    'function childOnMessage(text, sender, m) {',
+    '  var numResponses = parseInt(m.text);',
+    '  for (var i = 0; i < numResponses; ++i) {',
+    '    google.gears.workerPool.sendMessage(',
+    '        String(gFirstResponse + messageTotal),',
+    '        sender);',
+    '    messageTotal += 1;',
+    '  }',
+    '}',
+    ''
+  ].join('\n');
 
   var childCode = childOnMessage + childInit + 'childInit();';
   var workerPool = google.gears.factory.create('beta.workerpool');
@@ -138,16 +145,19 @@
 
   startAsync();
 
-  function childThread() {
-    google.gears.workerPool.onmessage = function(text, sender, m) {
-      if (m.text != 'ping') {
-        throw new Error('unexpected message "' + m.text + '" to child worker');
-      }
-      google.gears.workerPool.sendMessage('pong', m.sender);
-    }
-
-    google.gears.workerPool.forceGC();
-  }
+  var childThread = [
+    'function childThread() {',
+    '  google.gears.workerPool.onmessage = function(text, sender, m) {',
+    '    if (m.text != "ping") {',
+    '      throw new Error(',
+    '          "unexpected message '" + m.text + "' to child worker");',
+    '    }',
+    '    google.gears.workerPool.sendMessage("pong", m.sender);',
+    '  }',
+    '  google.gears.workerPool.forceGC();',
+    '}',
+    ''
+  ].join('\n');
 
   var wp = google.gears.factory.create('beta.workerpool');
   wp.onmessage = function(text, sender, m) {

Reply via email to