Created attachment 8798010 [details] IMG_5067.jpg User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50 Steps to reproduce: Opened the developer console. Entered "appcache validate". Waited for the results. Compared results with network tab. Actual results: Firefox says resources are cache-control: no-store. Local curl output and Firefox itself imply that's not true. Expected results: Validation of my appcache that matches the actual headers.
Mike - I think you're better placed to triage this..
Let's take a look: A33E6935F5693DA0398D4254D399D20B.cache.html has cache-control set to no-store. This will prevent the application cache from storing the file at line 7. $ curl -I https://cloud.eaccess.ca/apollo/A33E6935F5693DA0398D4254D399D20B.cache.html HTTP/1.1 200 OK Date: Tue, 11 Oct 2016 13:20:39 GMT Server: Apache/2.4.23 (Amazon) OpenSSL/1.0.1k-fips Last-Modified: Sat, 24 Sep 2016 23:21:48 GMT ETag: "1dd53f-53d4928aebb00" Accept-Ranges: bytes Content-Length: 1955135 Expires: 1 Content-Type: text/html; charset=UTF-8 The header contains an Expires value of 1. The RFC (https://tools.ietf.org/html/rfc2616#page-127) states: "The format is an absolute date and time as defined by HTTP-date in section 3.3.1" And then in section 3.3.1: "Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format" So, in short, you have an invalid Expires header which is forcing the cache to expire.
It's a good idea to set expires headers on your web server for *.appcache files to expire immediately. This avoids the risk of caching manifest files. For example, in Apache you can specify such a configuration as follows: ExpiresByType text/cache-manifest "access plus 0 seconds" You shouldn't do this for non-manifest files though.
The '1' was just a test value I changed in testing the apache conf with firefox -- although I believe what was there before was also bad. I've tweaked the Apache config and that change alone caused the validation to pass. Thanks. I guess you're saying the invalid Expires value is causing the validation (or some component of Firefox) to think of it as "no-store" even though it isn't set to no-store? A more clear error would be nice here, if possible. Maybe the true values aren't accessible to the validator?