Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(591)

Unified Diff: ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h

Issue 16569002: Use HTTP response headers for PNaCl caching instead of bitcode hash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use RunAndClear Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h
diff --git a/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h b/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h
new file mode 100644
index 0000000000000000000000000000000000000000..1856df18838950906755c1715f2ea5945d5b5f69
--- /dev/null
+++ b/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Some code to parse HTTP response headers in the format given by
+// PPAPI's ppb_url_response.
+// Once we move the trusted NaCl plugin code into chrome,
+// we should use the standard net/http/http_response_headers.h code.
+
+// Keep this file very light on dependencies so that it is easy
+// build a unittest for this (see the gyp file). Do not depend on anything
+// other than the standard libraries.
+
+// NOTE when switching over to net/http/http_response_headers.h:
+// There are differences between the "raw" headers that can be parsed by
+// net/http/http_response_headers and the headers returned by ppb_url_response.
+// The ppb_url_response headers are \n delimited, while the
+// http_response_headers are \0 delimited and end in \0\0.
+
+#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_HTTP_RESPONSE_HEADERS_H_
+#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_HTTP_RESPONSE_HEADERS_H_
+
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "native_client/src/include/nacl_macros.h"
+
+namespace plugin {
+
+class NaClHttpResponseHeaders {
+ public:
+ NaClHttpResponseHeaders();
+ ~NaClHttpResponseHeaders();
+
+ typedef std::pair<std::string, std::string> Entry;
+
+ // Parse and prepare the headers for use with other methods.
+ // Assumes that the headers are \n delimited, which ppb_url_response gives.
+ // Invalid header lines are skipped.
+ void Parse(const std::string& headers_str);
+
+ // Return a concatenated string of HTTP caching validators.
+ // E.g., Last-Modified time and ETags.
+ std::string GetCacheValidators();
+
+ // Return true if the headers indicate that the data should not be stored.
+ bool CacheControlNoStore();
+
+ private:
+ std::vector<Entry> header_entries_;
+ NACL_DISALLOW_COPY_AND_ASSIGN(NaClHttpResponseHeaders);
+};
+
+} // namespace plugin
+
+#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_HTTP_RESPONSE_HEADERS_H_

Powered by Google App Engine
This is Rietveld 408576698