diff --git a/mozilla/chrome/src/nsChromeRegistry.cpp b/mozilla/chrome/src/nsChromeRegistry.cpp index d835f17b805..e9d27194f4e 100644 --- a/mozilla/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/chrome/src/nsChromeRegistry.cpp @@ -886,6 +886,7 @@ NS_IMETHODIMP nsChromeRegistry::RefreshSkins() do_CreateInstance(kCSSLoaderCID); if (!cssLoader) return NS_OK; + cssLoader->SetCaseSensitive(PR_TRUE); nsCOMPtr windowMediator (do_GetService(NS_WINDOWMEDIATOR_CONTRACTID)); diff --git a/mozilla/layout/style/nsLayoutStylesheetCache.cpp b/mozilla/layout/style/nsLayoutStylesheetCache.cpp index 38f318cbf40..11dbed686d0 100644 --- a/mozilla/layout/style/nsLayoutStylesheetCache.cpp +++ b/mozilla/layout/style/nsLayoutStylesheetCache.cpp @@ -84,7 +84,7 @@ nsLayoutStylesheetCache::ScrollbarsSheet() // Scrollbars don't need access to unsafe rules if (sheetURI) - LoadSheet(sheetURI, gStyleCache->mScrollbarsSheet, PR_FALSE); + LoadSheet(sheetURI, gStyleCache->mScrollbarsSheet, PR_FALSE, PR_TRUE); NS_ASSERTION(gStyleCache->mScrollbarsSheet, "Could not load scrollbars.css."); } @@ -105,7 +105,7 @@ nsLayoutStylesheetCache::FormsSheet() // forms.css needs access to unsafe rules if (sheetURI) - LoadSheet(sheetURI, gStyleCache->mFormsSheet, PR_TRUE); + LoadSheet(sheetURI, gStyleCache->mFormsSheet, PR_TRUE, PR_FALSE); NS_ASSERTION(gStyleCache->mFormsSheet, "Could not load forms.css."); } @@ -137,6 +137,7 @@ void nsLayoutStylesheetCache::Shutdown() { NS_IF_RELEASE(gCSSLoader); + NS_IF_RELEASE(gCaseSensitiveCSSLoader); NS_IF_RELEASE(gStyleCache); } @@ -159,6 +160,7 @@ nsLayoutStylesheetCache::nsLayoutStylesheetCache() nsLayoutStylesheetCache::~nsLayoutStylesheetCache() { gCSSLoader = nsnull; + gCaseSensitiveCSSLoader = nsnull; gStyleCache = nsnull; } @@ -207,24 +209,32 @@ nsLayoutStylesheetCache::LoadSheetFile(nsIFile* aFile, nsCOMPtr uri; NS_NewFileURI(getter_AddRefs(uri), aFile); - LoadSheet(uri, aSheet, PR_FALSE); + LoadSheet(uri, aSheet, PR_FALSE, PR_FALSE); } void nsLayoutStylesheetCache::LoadSheet(nsIURI* aURI, nsCOMPtr &aSheet, - PRBool aEnableUnsafeRules) + PRBool aEnableUnsafeRules, + PRBool aUseCaseSensitiveLoader) { if (!aURI) { NS_ERROR("Null URI. Out of memory?"); return; } - if (!gCSSLoader) - NS_NewCSSLoader(&gCSSLoader); + nsICSSLoader_1_9_0_BRANCH** cssLoader = + aUseCaseSensitiveLoader ? &gCaseSensitiveCSSLoader : &gCSSLoader; - if (gCSSLoader) { - gCSSLoader->LoadSheetSync(aURI, aEnableUnsafeRules, PR_TRUE, - getter_AddRefs(aSheet)); + if (!*cssLoader) { + NS_NewCSSLoader(cssLoader); + if (aUseCaseSensitiveLoader) { + (*cssLoader)->SetCaseSensitive(PR_TRUE); + } + } + + if (*cssLoader) { + (*cssLoader)->LoadSheetSync(aURI, aEnableUnsafeRules, PR_TRUE, + getter_AddRefs(aSheet)); } } @@ -233,3 +243,6 @@ nsLayoutStylesheetCache::gStyleCache = nsnull; nsICSSLoader_1_9_0_BRANCH* nsLayoutStylesheetCache::gCSSLoader = nsnull; + +nsICSSLoader_1_9_0_BRANCH* +nsLayoutStylesheetCache::gCaseSensitiveCSSLoader = nsnull; diff --git a/mozilla/layout/style/nsLayoutStylesheetCache.h b/mozilla/layout/style/nsLayoutStylesheetCache.h index eaf46242905..e6a29985594 100644 --- a/mozilla/layout/style/nsLayoutStylesheetCache.h +++ b/mozilla/layout/style/nsLayoutStylesheetCache.h @@ -67,10 +67,12 @@ private: void InitFromProfile(); static void LoadSheetFile(nsIFile* aFile, nsCOMPtr &aSheet); static void LoadSheet(nsIURI* aURI, nsCOMPtr &aSheet, - PRBool aEnableUnsafeRules); + PRBool aEnableUnsafeRules, + PRBool aUseCaseSensitiveLoader); static nsLayoutStylesheetCache* gStyleCache; static nsICSSLoader_1_9_0_BRANCH* gCSSLoader; + static nsICSSLoader_1_9_0_BRANCH* gCaseSensitiveCSSLoader; nsCOMPtr mScrollbarsSheet; nsCOMPtr mFormsSheet; nsCOMPtr mUserContentSheet;