| Index: third_party/WebKit/Source/platform/network/ResourceResponse.cpp
|
| diff --git a/third_party/WebKit/Source/platform/network/ResourceResponse.cpp b/third_party/WebKit/Source/platform/network/ResourceResponse.cpp
|
| index 9f58f33c3cc72104f6c3c2099cecbf10ed7335ae..810420cda17fe08d8dcffb3d3b976abc19244549 100644
|
| --- a/third_party/WebKit/Source/platform/network/ResourceResponse.cpp
|
| +++ b/third_party/WebKit/Source/platform/network/ResourceResponse.cpp
|
| @@ -45,6 +45,9 @@ Vector<Interface> isolatedCopy(const Vector<Interface>& src) {
|
| return result;
|
| }
|
|
|
| +static const char cacheControlHeader[] = "cache-control";
|
| +static const char pragmaHeader[] = "pragma";
|
| +
|
| } // namespace
|
|
|
| ResourceResponse::SignedCertificateTimestamp::SignedCertificateTimestamp(
|
| @@ -357,28 +360,16 @@ const AtomicString& ResourceResponse::httpHeaderField(
|
| return m_httpHeaderFields.get(name);
|
| }
|
|
|
| -static const AtomicString& cacheControlHeaderString() {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, cacheControlHeader,
|
| - ("cache-control"));
|
| - return cacheControlHeader;
|
| -}
|
| -
|
| -static const AtomicString& pragmaHeaderString() {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, pragmaHeader, ("pragma"));
|
| - return pragmaHeader;
|
| -}
|
| -
|
| void ResourceResponse::updateHeaderParsedState(const AtomicString& name) {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, ageHeader, ("age"));
|
| - DEFINE_STATIC_LOCAL(const AtomicString, dateHeader, ("date"));
|
| - DEFINE_STATIC_LOCAL(const AtomicString, expiresHeader, ("expires"));
|
| - DEFINE_STATIC_LOCAL(const AtomicString, lastModifiedHeader,
|
| - ("last-modified"));
|
| + static const char ageHeader[] = "age";
|
| + static const char dateHeader[] = "date";
|
| + static const char expiresHeader[] = "expires";
|
| + static const char lastModifiedHeader[] = "last-modified";
|
|
|
| if (equalIgnoringCase(name, ageHeader))
|
| m_haveParsedAgeHeader = false;
|
| - else if (equalIgnoringCase(name, cacheControlHeaderString()) ||
|
| - equalIgnoringCase(name, pragmaHeaderString()))
|
| + else if (equalIgnoringCase(name, cacheControlHeader) ||
|
| + equalIgnoringCase(name, pragmaHeader))
|
| m_cacheControlHeader = CacheControlHeader();
|
| else if (equalIgnoringCase(name, dateHeader))
|
| m_haveParsedDateHeader = false;
|
| @@ -440,50 +431,54 @@ const HTTPHeaderMap& ResourceResponse::httpHeaderFields() const {
|
| }
|
|
|
| bool ResourceResponse::cacheControlContainsNoCache() const {
|
| - if (!m_cacheControlHeader.parsed)
|
| - m_cacheControlHeader = parseCacheControlDirectives(
|
| - m_httpHeaderFields.get(cacheControlHeaderString()),
|
| - m_httpHeaderFields.get(pragmaHeaderString()));
|
| + if (!m_cacheControlHeader.parsed) {
|
| + m_cacheControlHeader =
|
| + parseCacheControlDirectives(m_httpHeaderFields.get(cacheControlHeader),
|
| + m_httpHeaderFields.get(pragmaHeader));
|
| + }
|
| return m_cacheControlHeader.containsNoCache;
|
| }
|
|
|
| bool ResourceResponse::cacheControlContainsNoStore() const {
|
| - if (!m_cacheControlHeader.parsed)
|
| - m_cacheControlHeader = parseCacheControlDirectives(
|
| - m_httpHeaderFields.get(cacheControlHeaderString()),
|
| - m_httpHeaderFields.get(pragmaHeaderString()));
|
| + if (!m_cacheControlHeader.parsed) {
|
| + m_cacheControlHeader =
|
| + parseCacheControlDirectives(m_httpHeaderFields.get(cacheControlHeader),
|
| + m_httpHeaderFields.get(pragmaHeader));
|
| + }
|
| return m_cacheControlHeader.containsNoStore;
|
| }
|
|
|
| bool ResourceResponse::cacheControlContainsMustRevalidate() const {
|
| - if (!m_cacheControlHeader.parsed)
|
| - m_cacheControlHeader = parseCacheControlDirectives(
|
| - m_httpHeaderFields.get(cacheControlHeaderString()),
|
| - m_httpHeaderFields.get(pragmaHeaderString()));
|
| + if (!m_cacheControlHeader.parsed) {
|
| + m_cacheControlHeader =
|
| + parseCacheControlDirectives(m_httpHeaderFields.get(cacheControlHeader),
|
| + m_httpHeaderFields.get(pragmaHeader));
|
| + }
|
| return m_cacheControlHeader.containsMustRevalidate;
|
| }
|
|
|
| bool ResourceResponse::hasCacheValidatorFields() const {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, lastModifiedHeader,
|
| - ("last-modified"));
|
| - DEFINE_STATIC_LOCAL(const AtomicString, eTagHeader, ("etag"));
|
| + static const char lastModifiedHeader[] = "last-modified";
|
| + static const char eTagHeader[] = "etag";
|
| return !m_httpHeaderFields.get(lastModifiedHeader).isEmpty() ||
|
| !m_httpHeaderFields.get(eTagHeader).isEmpty();
|
| }
|
|
|
| double ResourceResponse::cacheControlMaxAge() const {
|
| - if (!m_cacheControlHeader.parsed)
|
| - m_cacheControlHeader = parseCacheControlDirectives(
|
| - m_httpHeaderFields.get(cacheControlHeaderString()),
|
| - m_httpHeaderFields.get(pragmaHeaderString()));
|
| + if (!m_cacheControlHeader.parsed) {
|
| + m_cacheControlHeader =
|
| + parseCacheControlDirectives(m_httpHeaderFields.get(cacheControlHeader),
|
| + m_httpHeaderFields.get(pragmaHeader));
|
| + }
|
| return m_cacheControlHeader.maxAge;
|
| }
|
|
|
| double ResourceResponse::cacheControlStaleWhileRevalidate() const {
|
| - if (!m_cacheControlHeader.parsed)
|
| - m_cacheControlHeader = parseCacheControlDirectives(
|
| - m_httpHeaderFields.get(cacheControlHeaderString()),
|
| - m_httpHeaderFields.get(pragmaHeaderString()));
|
| + if (!m_cacheControlHeader.parsed) {
|
| + m_cacheControlHeader =
|
| + parseCacheControlDirectives(m_httpHeaderFields.get(cacheControlHeader),
|
| + m_httpHeaderFields.get(pragmaHeader));
|
| + }
|
| return m_cacheControlHeader.staleWhileRevalidate;
|
| }
|
|
|
| @@ -504,7 +499,7 @@ static double parseDateValueInHeader(const HTTPHeaderMap& headers,
|
|
|
| double ResourceResponse::date() const {
|
| if (!m_haveParsedDateHeader) {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, headerName, ("date"));
|
| + static const char headerName[] = "date";
|
| m_date = parseDateValueInHeader(m_httpHeaderFields, headerName);
|
| m_haveParsedDateHeader = true;
|
| }
|
| @@ -513,7 +508,7 @@ double ResourceResponse::date() const {
|
|
|
| double ResourceResponse::age() const {
|
| if (!m_haveParsedAgeHeader) {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, headerName, ("age"));
|
| + static const char headerName[] = "age";
|
| const AtomicString& headerValue = m_httpHeaderFields.get(headerName);
|
| bool ok;
|
| m_age = headerValue.toDouble(&ok);
|
| @@ -526,7 +521,7 @@ double ResourceResponse::age() const {
|
|
|
| double ResourceResponse::expires() const {
|
| if (!m_haveParsedExpiresHeader) {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, headerName, ("expires"));
|
| + static const char headerName[] = "expires";
|
| m_expires = parseDateValueInHeader(m_httpHeaderFields, headerName);
|
| m_haveParsedExpiresHeader = true;
|
| }
|
| @@ -535,7 +530,7 @@ double ResourceResponse::expires() const {
|
|
|
| double ResourceResponse::lastModified() const {
|
| if (!m_haveParsedLastModifiedHeader) {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, headerName, ("last-modified"));
|
| + static const char headerName[] = "last-modified";
|
| m_lastModified = parseDateValueInHeader(m_httpHeaderFields, headerName);
|
| m_haveParsedLastModifiedHeader = true;
|
| }
|
| @@ -543,13 +538,13 @@ double ResourceResponse::lastModified() const {
|
| }
|
|
|
| bool ResourceResponse::isAttachment() const {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, headerName, ("content-disposition"));
|
| + static const char headerName[] = "content-disposition";
|
| + static const char attachmentString[] = "attachment";
|
| String value = m_httpHeaderFields.get(headerName);
|
| size_t loc = value.find(';');
|
| if (loc != kNotFound)
|
| value = value.left(loc);
|
| value = value.stripWhiteSpace();
|
| - DEFINE_STATIC_LOCAL(const AtomicString, attachmentString, ("attachment"));
|
| return equalIgnoringCase(value, attachmentString);
|
| }
|
|
|
|
|