Do not use the gzipped file to compute the ETag.

gzip is not a stable format. If the file didn't change but the gz
doesn't exist, the etag would change which would force the shell to
re-download the content.

R=ppi@chromium.org

Review URL: https://codereview.chromium.org/1263093004 .

Cr-Mirrored-From: https://github.com/domokit/mojo
Cr-Mirrored-Commit: 65ca02044f3969b24640963f57e094210ccfaa84
diff --git a/devtoolslib/http_server.py b/devtoolslib/http_server.py
index 5199f3e..67bb402 100644
--- a/devtoolslib/http_server.py
+++ b/devtoolslib/http_server.py
@@ -74,7 +74,7 @@
       if self.etag:
         return self.etag
 
-      path = self.translate_path(self.path)
+      path = self.translate_path(self.path, False)
       if not os.path.isfile(path):
         return None
 
@@ -130,7 +130,8 @@
 
       return SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)
 
-    def translate_path(self, path):
+    # pylint: disable=W0221
+    def translate_path(self, path, gzipped=True):
       # Parent translate_path() will strip away the query string and fragment
       # identifier, but also will prepend the cwd to the path. relpath() gives
       # us the relative path back.
@@ -141,13 +142,14 @@
         if normalized_path.startswith(prefix):
           result = os.path.join(local_base_path, normalized_path[len(prefix):])
           if os.path.isfile(result):
-            gz_result = result + '.gz'
-            if (not os.path.isfile(gz_result) or
-                os.path.getmtime(gz_result) <= os.path.getmtime(result)):
-              with open(result, 'rb') as f:
-                with gzip.open(gz_result, 'wb') as zf:
-                  shutil.copyfileobj(f, zf)
-            result = gz_result
+            if gzipped:
+              gz_result = result + '.gz'
+              if (not os.path.isfile(gz_result) or
+                  os.path.getmtime(gz_result) <= os.path.getmtime(result)):
+                with open(result, 'rb') as f:
+                  with gzip.open(gz_result, 'wb') as zf:
+                    shutil.copyfileobj(f, zf)
+              result = gz_result
           return result
 
       # This class is only used internally, and we're adding a catch-all ''