OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 2 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
3 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 3 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
4 * Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ | 4 * Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ |
5 * Copyright (C) 2009 Google Inc. All rights reserved. | 5 * Copyright (C) 2009 Google Inc. All rights reserved. |
6 * Copyright (C) 2011 Apple Inc. All Rights Reserved. | 6 * Copyright (C) 2011 Apple Inc. All Rights Reserved. |
7 * | 7 * |
8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
10 * are met: | 10 * are met: |
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 } | 633 } |
634 } | 634 } |
635 | 635 |
636 CacheControlHeader parseCacheControlDirectives(const AtomicString& cacheControlV
alue, const AtomicString& pragmaValue) | 636 CacheControlHeader parseCacheControlDirectives(const AtomicString& cacheControlV
alue, const AtomicString& pragmaValue) |
637 { | 637 { |
638 CacheControlHeader cacheControlHeader; | 638 CacheControlHeader cacheControlHeader; |
639 cacheControlHeader.parsed = true; | 639 cacheControlHeader.parsed = true; |
640 cacheControlHeader.maxAge = std::numeric_limits<double>::quiet_NaN(); | 640 cacheControlHeader.maxAge = std::numeric_limits<double>::quiet_NaN(); |
641 cacheControlHeader.staleWhileRevalidate = std::numeric_limits<double>::quiet
_NaN(); | 641 cacheControlHeader.staleWhileRevalidate = std::numeric_limits<double>::quiet
_NaN(); |
642 | 642 |
643 DEFINE_STATIC_LOCAL(const AtomicString, noCacheDirective, ("no-cache", Atomi
cString::ConstructFromLiteral)); | 643 DEFINE_STATIC_LOCAL(const AtomicString, noCacheDirective, ("no-cache")); |
644 DEFINE_STATIC_LOCAL(const AtomicString, noStoreDirective, ("no-store", Atomi
cString::ConstructFromLiteral)); | 644 DEFINE_STATIC_LOCAL(const AtomicString, noStoreDirective, ("no-store")); |
645 DEFINE_STATIC_LOCAL(const AtomicString, mustRevalidateDirective, ("must-reva
lidate", AtomicString::ConstructFromLiteral)); | 645 DEFINE_STATIC_LOCAL(const AtomicString, mustRevalidateDirective, ("must-reva
lidate")); |
646 DEFINE_STATIC_LOCAL(const AtomicString, maxAgeDirective, ("max-age", AtomicS
tring::ConstructFromLiteral)); | 646 DEFINE_STATIC_LOCAL(const AtomicString, maxAgeDirective, ("max-age")); |
647 DEFINE_STATIC_LOCAL(const AtomicString, staleWhileRevalidateDirective, ("sta
le-while-revalidate", AtomicString::ConstructFromLiteral)); | 647 DEFINE_STATIC_LOCAL(const AtomicString, staleWhileRevalidateDirective, ("sta
le-while-revalidate")); |
648 | 648 |
649 if (!cacheControlValue.isEmpty()) { | 649 if (!cacheControlValue.isEmpty()) { |
650 Vector<std::pair<String, String>> directives; | 650 Vector<std::pair<String, String>> directives; |
651 parseCacheHeader(cacheControlValue, directives); | 651 parseCacheHeader(cacheControlValue, directives); |
652 | 652 |
653 size_t directivesSize = directives.size(); | 653 size_t directivesSize = directives.size(); |
654 for (size_t i = 0; i < directivesSize; ++i) { | 654 for (size_t i = 0; i < directivesSize; ++i) { |
655 // RFC2616 14.9.1: A no-cache directive with a value is only meaning
ful for proxy caches. | 655 // RFC2616 14.9.1: A no-cache directive with a value is only meaning
ful for proxy caches. |
656 // It should be ignored by a browser level cache. | 656 // It should be ignored by a browser level cache. |
657 if (equalIgnoringCase(directives[i].first, noCacheDirective) && dire
ctives[i].second.isEmpty()) { | 657 if (equalIgnoringCase(directives[i].first, noCacheDirective) && dire
ctives[i].second.isEmpty()) { |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
749 return false; | 749 return false; |
750 } | 750 } |
751 | 751 |
752 position++; | 752 position++; |
753 } | 753 } |
754 | 754 |
755 return true; | 755 return true; |
756 } | 756 } |
757 | 757 |
758 } // namespace blink | 758 } // namespace blink |
OLD | NEW |