Bug 715809 - AppCache should accept manifests served with non-standard mime types, r=jonas, a=akeybl
authorHonza Bambas <honzab.moz@firemni.cz>
Sat, 05 Jan 2013 01:32:53 +0100
changeset 123200 54aa59f1a12dd6822f645805f5cfbf22b8d68785
parent 123199 d14b0128b5aead75abbba849fd64feaa9ca3d5c6
child 123201 c74e05a0b45c181d23a59c6e669df4ea054572c6
push id273
push userlsblakk@mozilla.com
push dateThu, 14 Feb 2013 23:19:38 +0000
treeherdermozilla-release@c5e807a3f8b8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjonas, akeybl
bugs715809
milestone19.0a2
Bug 715809 - AppCache should accept manifests served with non-standard mime types, r=jonas, a=akeybl
dom/tests/mochitest/ajax/offline/Makefile.in
dom/tests/mochitest/ajax/offline/simpleManifest.notmanifest
dom/tests/mochitest/ajax/offline/test_badManifestMime.html
uriloader/prefetch/nsOfflineCacheUpdate.cpp
--- a/dom/tests/mochitest/ajax/offline/Makefile.in
+++ b/dom/tests/mochitest/ajax/offline/Makefile.in
@@ -11,17 +11,16 @@ relativesrcdir	= @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 DIRS = namespace1 namespace2
 
 MOCHITEST_FILES	= \
 	offlineTests.js \
 	test_badManifestMagic.html \
-	test_badManifestMime.html \
 	test_bypass.html \
 	test_missingFile.html \
 	test_noManifest.html \
 	test_simpleManifest.html \
 	test_identicalManifest.html \
 	test_changingManifest.html \
 	test_refetchManifest.html \
 	test_offlineIFrame.html \
@@ -84,17 +83,16 @@ MOCHITEST_FILES	= \
 	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 \
deleted file mode 100644
--- a/dom/tests/mochitest/ajax/offline/simpleManifest.notmanifest
+++ /dev/null
@@ -1,8 +0,0 @@
-CACHE MANIFEST
-
-http://mochi.test:8888/tests/SimpleTest/SimpleTest.js
-http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/offlineTests.js
-
-# The following item is not a valid URI and will be ignored
-bad:/uri/invalid
-
deleted file mode 100644
--- a/dom/tests/mochitest/ajax/offline/test_badManifestMime.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/simpleManifest.notmanifest">
-<head>
-<title>bad manifest content type</title>
-
-<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" />
-
-<script type="text/javascript">
-
-var gGotChecking = false;
-
-function finishTest() {
-  OfflineTest.teardown();
-  OfflineTest.finish();
-}
-
-function handleError() {
-  OfflineTest.ok(gGotChecking, "Expected checking event");
-  OfflineTest.ok(true, "Expected error event");
-
-  // These items are listed in the manifest, but the error should have
-  // prevented them from being committed to the cache.
-  var entries = [
-    ["http://mochi.test:8888/tests/SimpleTest/SimpleTest.js", false],
-    ["http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/offlineTests.js", false]
-  ];
-  OfflineTest.checkCacheEntries(entries, finishTest);
-}
-
-if (OfflineTest.setup()) {
-  // Don't expect a bunch of events.
-  applicationCache.ondownloading = OfflineTest.failEvent;
-  applicationCache.onupdateready = OfflineTest.failEvent;
-  applicationCache.oncached = OfflineTest.failEvent;
-  applicationCache.onnoupdate = OfflineTest.failEvent;
-  applicationCache.onprogress = OfflineTest.failEvent;
-
-  // ... but expect 'checking' and 'error'
-  applicationCache.onchecking = function() { gGotChecking = true; };
-  applicationCache.onerror = OfflineTest.priv(handleError);
-}
-
-SimpleTest.waitForExplicitFinish();
-
-</script>
-
-</head>
-
-<body>
-
-</body>
-</html>
--- a/uriloader/prefetch/nsOfflineCacheUpdate.cpp
+++ b/uriloader/prefetch/nsOfflineCacheUpdate.cpp
@@ -1118,28 +1118,16 @@ nsOfflineManifestItem::OnStartRequest(ns
 
     if (!succeeded) {
         LOG(("HTTP request failed"));
         LogToConsole("Offline cache manifest HTTP request failed", this);
         mParserState = PARSE_ERROR;
         return NS_ERROR_ABORT;
     }
 
-    nsAutoCString contentType;
-    rv = channel->GetContentType(contentType);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    if (!contentType.EqualsLiteral("text/cache-manifest")) {
-        LOG(("Rejected cache manifest with Content-Type %s (expecting text/cache-manifest)",
-             contentType.get()));
-        LogToConsole("Offline cache manifest not served with text/cache-manifest", this);
-        mParserState = PARSE_ERROR;
-        return NS_ERROR_ABORT;
-    }
-
     rv = GetOldManifestContentHash(aRequest);
     NS_ENSURE_SUCCESS(rv, rv);
 
     return nsOfflineCacheUpdateItem::OnStartRequest(aRequest, aContext);
 }
 
 NS_IMETHODIMP
 nsOfflineManifestItem::OnDataAvailable(nsIRequest *aRequest,