Looks good, I did notice that the appcache has the wrong mime type it's text/plain and needs to be text/cache-manifest.
[Edit] It doesn't work in firefox, the attribute triggers the permission bar but because it's the wrong mimetype it doesn't actually store anything.
Check it in Tools > Options > Advanced > Network
You'll notice that it has the domain referenced but has 0 bytes stored.
[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/...