morlovich commented on a change in pull request #1785: Fix mismatch between 
decompression and headers
URL: 
https://github.com/apache/incubator-pagespeed-mod/pull/1785#discussion_r200868595
 
 

 ##########
 File path: net/instaweb/rewriter/resource.cc
 ##########
 @@ -269,17 +270,38 @@ void Resource::LinkFallbackValue(HTTPValue* value) {
 }
 
 StringPiece Resource::ExtractUncompressedContents() const {
-  ResponseHeaders headers;
-  if (!extracted_ && value_.ExtractHeaders(&headers, NULL)) {
-    if (headers.IsGzipped()) {
-      StringWriter inflate_writer(&extracted_contents_);
-      if (GzipInflater::Inflate(raw_contents(), GzipInflater::kGzip,
-                                &inflate_writer)) {
-        extracted_ = true;
-      }
+  bool use_extracted = EnsureExtractedIfNeeded();
+  return use_extracted ? extracted_contents_ : raw_contents();
+}
+
+const ResponseHeaders* Resource::UncompressedHeaders() const {
+  bool use_extracted = EnsureExtractedIfNeeded();
+  return use_extracted ? extracted_headers_.get() : response_headers();
+}
+
+bool Resource::EnsureExtractedIfNeeded() const {
+  if (extracted_state_ == kExtractNotComputed) {
 
 Review comment:
   Good point. Started on 
https://github.com/apache/incubator-pagespeed-mod/commit/53c4ef294a5732483392d7c361226932e2e689da
 in prep for fixing that, but ran into trouble with submodules, so not sure 
that actually even compiles...

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to