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";"));
 }

Reply via email to