Hello michaeln,
I'd like you to do a code review. Please execute
g4 diff -c 9357272
or point your web browser to
http://mondrian/9357272
to review the following code:
Change 9357272 by [EMAIL PROTECTED] on 2008/12/10 15:05:39 *pending*
Fix a bug where the worker content-type is not recognized if it has a
charset
suffix.
PRESUBMIT=passed
R=michaeln
[EMAIL PROTECTED]
DELTA=28 (27 added, 0 deleted, 1 changed)
OCL=9357272
Affected files ...
... //depot/googleclient/gears/opensource/gears/test/runner/testwebserver.py#10
edit
...
//depot/googleclient/gears/opensource/gears/test/testcases/test_worker_charset_suffix.worker.js2#1
add
...
//depot/googleclient/gears/opensource/gears/test/testcases/workerpool_createworkerfromurl_tests.js#7
edit
...
//depot/googleclient/gears/opensource/gears/workerpool/common/workerpool_utils.cc#2
edit
28 delta lines: 27 added, 0 deleted, 1 changed
Also consider running:
g4 lint -c 9357272
which verifies that the changelist doesn't introduce new style violations.
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 9357272 by [EMAIL PROTECTED] on 2008/12/10 15:05:39 *pending*
Fix a bug where the worker content-type is not recognized if it has a
charset
suffix.
Affected files ...
... //depot/googleclient/gears/opensource/gears/test/runner/testwebserver.py#10
edit
...
//depot/googleclient/gears/opensource/gears/test/testcases/test_worker_charset_suffix.worker.js2#1
add
...
//depot/googleclient/gears/opensource/gears/test/testcases/workerpool_createworkerfromurl_tests.js#7
edit
...
//depot/googleclient/gears/opensource/gears/workerpool/common/workerpool_utils.cc#2
edit
====
//depot/googleclient/gears/opensource/gears/test/runner/testwebserver.py#10 -
c:\Users\aa\src-scour-vista1/googleclient/gears/opensource/gears/test/runner/testwebserver.py
====
# action=edit type=xtext
--- googleclient/gears/opensource/gears/test/runner/testwebserver.py
2008-11-26 11:22:04.000000000 -0800
+++ googleclient/gears/opensource/gears/test/runner/testwebserver.py
2008-12-10 14:42:51.000000000 -0800
@@ -375,6 +375,8 @@
"""
if (path.endswith('.worker.js')):
return 'application/x-gears-worker'
+ elif (path.endswith('.worker.js2')):
+ return 'application/x-gears-worker; charset=UTF-8'
else:
return SimpleHTTPServer.SimpleHTTPRequestHandler.guess_type(self, path)
====
//depot/googleclient/gears/opensource/gears/test/testcases/test_worker_charset_suffix.worker.js2#1
-
c:\Users\aa\src-scour-vista1/googleclient/gears/opensource/gears/test/testcases/test_worker_charset_suffix.worker.js2
====
# action=add type=text
--- /dev/null 1969-12-31 16:00:00.000000000 -0800
+++
googleclient/gears/opensource/gears/test/testcases/test_worker_charset_suffix.worker.js2
2008-12-10 15:03:32.000000000 -0800
@@ -0,0 +1,3 @@
+google.gears.workerPool.onmessage = function(m, s) {
+ google.gears.workerPool.sendMessage("pong", s);
+}
====
//depot/googleclient/gears/opensource/gears/test/testcases/workerpool_createworkerfromurl_tests.js#7
-
c:\Users\aa\src-scour-vista1/googleclient/gears/opensource/gears/test/testcases/workerpool_createworkerfromurl_tests.js
====
# action=edit type=text
---
googleclient/gears/opensource/gears/test/testcases/workerpool_createworkerfromurl_tests.js
2008-12-10 15:07:27.000000000 -0800
+++
googleclient/gears/opensource/gears/test/testcases/workerpool_createworkerfromurl_tests.js
2008-12-10 14:59:05.000000000 -0800
@@ -46,6 +46,11 @@
// being executed.
var crossOriginWorkerBadContentType =
'/testcases/test_worker_bad_content_type.js';
+
+// This worker gets served with a '; charset=UTF-8' suffix on its content-type
+// because of it's extension ('.worker.js2').
+var crossOriginWorkerWithCharsetSuffix =
+ '/testcases/test_worker_charset_suffix.worker.js2';
var redirectPath = '/testcases/cgi/server_redirect.py?location=';
@@ -199,3 +204,17 @@
wp.createWorkerFromUrl(differentOrigin + crossOriginWorkerBadContentType);
waitForGlobalErrors([expectedError]);
}
+
+// Test that cross-origin workers when the content-type header has a charset
+// suffix.
+function testCrossOriginWorkerWithCharsetSuffix() {
+ var wp = google.gears.factory.create('beta.workerpool');
+ wp.onmessage = function(text, sender, m) {
+ completeAsync();
+ };
+ var childId = wp.createWorkerFromUrl(
+ differentOrigin + crossOriginWorkerWithCharsetSuffix);
+
+ startAsync();
+ wp.sendMessage('cross origin ping', childId);
+}
====
//depot/googleclient/gears/opensource/gears/workerpool/common/workerpool_utils.cc#2
-
c:\Users\aa\src-scour-vista1/googleclient/gears/opensource/gears/workerpool/common/workerpool_utils.cc
====
# action=edit type=text
--- googleclient/gears/opensource/gears/workerpool/common/workerpool_utils.cc
2008-11-26 11:22:05.000000000 -0800
+++ googleclient/gears/opensource/gears/workerpool/common/workerpool_utils.cc
2008-12-10 14:44:22.000000000 -0800
@@ -67,5 +67,8 @@
std::string16 content_type;
request->GetResponseHeader(HttpConstants::kContentTypeHeader, &content_type);
LowerString(content_type);
- return content_type == kGearsWorkerContentType;
+
+ return content_type == kGearsWorkerContentType ||
+ StartsWith(content_type,
+ std::string16(kGearsWorkerContentType) + STRING16(L";"));
}