diff --git a/content/xul/document/src/nsXULPrototypeCache.cpp b/content/xul/document/src/nsXULPrototypeCache.cpp index e6b4d13728d3..ef926610150b 100644 --- a/content/xul/document/src/nsXULPrototypeCache.cpp +++ b/content/xul/document/src/nsXULPrototypeCache.cpp @@ -778,29 +778,6 @@ nsXULPrototypeCache::StartFastLoad(nsIURI* aURI) rv = fastLoadService->NewInputStream(file, getter_AddRefs(objectInput)); if (NS_SUCCEEDED(rv)) { - if (gChecksumXULFastLoadFile) { - nsCOMPtr - readControl(do_QueryInterface(objectInput)); - if (readControl) { - // Verify checksum, using the fastLoadService's checksum - // cache to avoid computing more than once per session. - PRUint32 checksum; - rv = readControl->GetChecksum(&checksum); - if (NS_SUCCEEDED(rv)) { - PRUint32 verified; - rv = fastLoadService->ComputeChecksum(file, - readControl, - &verified); - if (NS_SUCCEEDED(rv) && verified != checksum) { -#ifdef DEBUG - printf("bad FastLoad file checksum\n"); -#endif - rv = NS_ERROR_FAILURE; - } - } - } - } - if (NS_SUCCEEDED(rv)) { // Get the XUL fastload file version number, which should be // decremented whenever the XUL-specific file format changes diff --git a/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/js/src/xpconnect/loader/mozJSComponentLoader.cpp index 3b3aaff353e1..48f9615a7021 100644 --- a/js/src/xpconnect/loader/mozJSComponentLoader.cpp +++ b/js/src/xpconnect/loader/mozJSComponentLoader.cpp @@ -959,23 +959,6 @@ mozJSComponentLoader::StartFastLoad(nsIFastLoadService *flSvc) nsCOMPtr readControl(do_QueryInterface(mFastLoadInput)); - if (readControl) { - // Verify checksum, using the FastLoadService's - // checksum cache to avoid computing more than once - // per session. - PRUint32 checksum; - rv = readControl->GetChecksum(&checksum); - if (NS_SUCCEEDED(rv)) { - PRUint32 verified; - rv = flSvc->ComputeChecksum(mFastLoadFile, - readControl, &verified); - if (NS_SUCCEEDED(rv) && verified != checksum) { - LOG(("Incorrect checksum detected")); - rv = NS_ERROR_FAILURE; - } - } - } - if (NS_SUCCEEDED(rv)) { /* Get the JS bytecode version number and validate it. */ PRUint32 version; diff --git a/xpcom/io/nsFastLoadFile.cpp b/xpcom/io/nsFastLoadFile.cpp index afba18b2057f..28af3d8ac1a8 100644 --- a/xpcom/io/nsFastLoadFile.cpp +++ b/xpcom/io/nsFastLoadFile.cpp @@ -887,6 +887,14 @@ nsFastLoadFileReader::Open() if (NS_FAILED(rv)) return rv; + PRUint32 checksum; + rv = ComputeChecksum(&checksum); + if (NS_FAILED(rv)) + return rv; + + if (checksum != mHeader.mChecksum) + return NS_ERROR_FAILURE; + if (mHeader.mVersion != MFL_FILE_VERSION || mHeader.mFooterOffset == 0 || memcmp(mHeader.mMagic, magic, MFL_FILE_MAGIC_SIZE))