Bug 544462 - HTML5 Offline features - Asterisk (*) not supported in network section of manifest file, r=jst, a2.0=jst
authorHonza Bambas <honzab.moz@firemni.cz>
Thu, 25 Nov 2010 21:49:19 +0100
changeset 58228 bb5091f2e6a175d7ae507f0bcfc0a1d16ae483d6
parent 58227 8cde8889726d2f7bf769e4092560a3e28a374761
child 58229 765087b2856171a4fb40beacc846436e5f80e470
push id17212
push userhonzab.moz@firemni.cz
push dateThu, 25 Nov 2010 20:50:08 +0000
treeherdermozilla-central@bb5091f2e6a1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjst
bugs544462
milestone2.0b8pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 544462 - HTML5 Offline features - Asterisk (*) not supported in network section of manifest file, r=jst, a2.0=jst
dom/tests/mochitest/ajax/offline/Makefile.in
dom/tests/mochitest/ajax/offline/jupiter.jpg
dom/tests/mochitest/ajax/offline/test_bug544462.html
dom/tests/mochitest/ajax/offline/wildcardManifest.cacheManifest
dom/tests/mochitest/ajax/offline/wildcardManifest.cacheManifest^headers^
uriloader/prefetch/nsOfflineCacheUpdate.cpp
--- a/dom/tests/mochitest/ajax/offline/Makefile.in
+++ b/dom/tests/mochitest/ajax/offline/Makefile.in
@@ -58,16 +58,17 @@ include $(topsrcdir)/config/rules.mk
 	test_identicalManifest.html \
 	test_changingManifest.html \
 	test_refetchManifest.html \
 	test_offlineIFrame.html \
 	test_offlineMode.html \
 	test_bug445544.html \
 	test_bug460353.html \
 	test_bug474696.html \
+	test_bug544462.html \
 	test_foreign.html \
 	test_fallback.html \
 	test_overlap.html \
 	test_redirectManifest.html \
 	test_redirectUpdateItem.html \
 	overlap.cacheManifest \
 	overlap.cacheManifest^headers^ \
 	test_updatingManifest.html \
@@ -104,21 +105,24 @@ include $(topsrcdir)/config/rules.mk
 	updatingIframe.sjs \
 	updatingImplicit.html \
 	manifestRedirect.sjs \
 	missingFile.cacheManifest \
 	missingFile.cacheManifest^headers^ \
 	redirects.sjs \
 	simpleManifest.cacheManifest \
 	simpleManifest.cacheManifest^headers^ \
+	wildcardManifest.cacheManifest \
+	wildcardManifest.cacheManifest^headers^ \
 	updatingManifest.sjs \
 	simpleManifest.notmanifest \
 	changing1Sec.sjs \
 	changing1Hour.sjs \
 	changingManifest.sjs \
 	offlineChild.html \
 	test_xhtmlManifest.xhtml \
 	test_missingManifest.html \
 	missing.html \
+	jupiter.jpg \
 	$(NULL)
 
 libs::	$(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..cddf589d56b4132ef55c6b4cb970aeedb36422e3
GIT binary patch
literal 30694
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
G&wl`EG>SL?
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/ajax/offline/test_bug544462.html
@@ -0,0 +1,55 @@
+<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/wildcardManifest.cacheManifest">
+<head>
+<title>wildcard in network section test</title>
+
+<script type="text/javascript" src="/MochiKit/packed.js"></script>
+<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+<script type="text/javascript" src="/tests/dom/tests/mochitest/ajax/offline/offlineTests.js"></script>
+<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+
+<style>
+  img {
+    max-width: 400px;
+    max-height: 400px;
+  }
+</style>
+
+<script type="text/javascript">
+
+var gImageLoaded = [];
+
+function imageOnLoad(idx)
+{
+  gImageLoaded[idx] = true;
+}
+
+function manifestUpdated()
+{
+  window.location.reload();
+}
+
+function finishTheTest()
+{
+  OfflineTest.is(gImageLoaded[1], true, "Image from a different origin not cointained in the offline cache has loaded");
+  OfflineTest.is(gImageLoaded[2], true, "Image not cointained in the offline cache has loaded");
+  OfflineTest.teardown();
+  OfflineTest.finish();
+}
+
+if (OfflineTest.setup()) {
+  applicationCache.onerror = OfflineTest.failEvent;
+  applicationCache.oncached = OfflineTest.priv(manifestUpdated);
+  applicationCache.onnoupdate = OfflineTest.priv(finishTheTest);
+}
+
+SimpleTest.waitForExplicitFinish();
+
+</script>
+
+</head>
+
+<body>
+  <img src="http://example.com/tests/dom/tests/mochitest/ajax/offline/jupiter.jpg" onload="imageOnLoad(1)" />
+  <img src="jupiter.jpg" onload="imageOnLoad(2)" />
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/ajax/offline/wildcardManifest.cacheManifest
@@ -0,0 +1,8 @@
+CACHE MANIFEST
+
+http://mochi.test:8888/tests/SimpleTest/SimpleTest.js
+http://mochi.test:8888/MochiKit/packed.js
+http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/offlineTests.js
+
+NETWORK:
+*
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/ajax/offline/wildcardManifest.cacheManifest^headers^
@@ -0,0 +1,2 @@
+Content-Type: text/cache-manifest
+
--- a/uriloader/prefetch/nsOfflineCacheUpdate.cpp
+++ b/uriloader/prefetch/nsOfflineCacheUpdate.cpp
@@ -922,16 +922,28 @@ nsOfflineManifestItem::HandleManifestLin
         mFallbackURIs.AppendObject(fallbackURI);
 
         AddNamespace(nsIApplicationCacheNamespace::NAMESPACE_FALLBACK,
                      namespaceSpec, fallbackSpec);
         break;
     }
 
     case PARSE_BYPASS_ENTRIES: {
+        if (line[0] == '*' && (line.Length() == 1 || line[1] == ' ' || line[1] == '\t'))
+        {
+          // '*' indicates to make the online whitelist wildcard flag open,
+          // i.e. do allow load of resources not present in the offline cache
+          // or not conforming any namespace.
+          // We achive that simply by adding an 'empty' - i.e. universal
+          // namespace of BYPASS type into the cache.
+          AddNamespace(nsIApplicationCacheNamespace::NAMESPACE_BYPASS,
+                       EmptyCString(), EmptyCString());
+          break;
+        }
+
         nsCOMPtr<nsIURI> bypassURI;
         rv = NS_NewURI(getter_AddRefs(bypassURI), line, nsnull, mURI);
         if (NS_FAILED(rv))
             break;
 
         nsCAutoString scheme;
         bypassURI->GetScheme(scheme);
         PRBool equals;