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) {