Bug 1176703 - load default theme manifest in safe mode, r=bsmedberg

--HG--
extra : commitid : 5DhLHaGQNGM
extra : rebase_source : 2fdd2a3e4a485c559c5f9f9ff56ae91a46cea52a
extra : histedit_source : 8e003e9d63fc338b7e5846657a7b9f9cf5860fe0
This commit is contained in:
Gijs Kruitbosch 2015-07-07 10:06:25 +01:00
parent 7bd528cc17
commit c267d6b7cc

View File

@ -620,29 +620,41 @@ nsXREDirProvider::LoadExtensionBundleDirectories()
if (!mozilla::Preferences::GetBool("extensions.defaultProviders.enabled", true))
return;
if (mProfileDir && !gSafeMode) {
nsCOMPtr<nsIFile> extensionsINI;
mProfileDir->Clone(getter_AddRefs(extensionsINI));
if (!extensionsINI)
return;
if (mProfileDir) {
if (!gSafeMode) {
nsCOMPtr<nsIFile> extensionsINI;
mProfileDir->Clone(getter_AddRefs(extensionsINI));
if (!extensionsINI)
return;
extensionsINI->AppendNative(NS_LITERAL_CSTRING("extensions.ini"));
extensionsINI->AppendNative(NS_LITERAL_CSTRING("extensions.ini"));
nsCOMPtr<nsIFile> extensionsINILF =
do_QueryInterface(extensionsINI);
if (!extensionsINILF)
return;
nsCOMPtr<nsIFile> extensionsINILF =
do_QueryInterface(extensionsINI);
if (!extensionsINILF)
return;
nsINIParser parser;
nsresult rv = parser.Init(extensionsINILF);
if (NS_FAILED(rv))
return;
nsINIParser parser;
nsresult rv = parser.Init(extensionsINILF);
if (NS_FAILED(rv))
return;
RegisterExtensionInterpositions(parser);
LoadExtensionDirectories(parser, "ExtensionDirs", mExtensionDirectories,
NS_EXTENSION_LOCATION);
LoadExtensionDirectories(parser, "ThemeDirs", mThemeDirectories,
NS_SKIN_LOCATION);
RegisterExtensionInterpositions(parser);
LoadExtensionDirectories(parser, "ExtensionDirs", mExtensionDirectories,
NS_EXTENSION_LOCATION);
LoadExtensionDirectories(parser, "ThemeDirs", mThemeDirectories,
NS_SKIN_LOCATION);
#if MOZ_BUILD_APP == browser
} else {
// In safe mode, still load the default theme directory:
nsCOMPtr<nsIFile> themeManifest;
mXULAppDir->Clone(getter_AddRefs(themeManifest));
themeManifest->AppendNative(NS_LITERAL_CSTRING("extensions"));
themeManifest->AppendNative(NS_LITERAL_CSTRING("{972ce4c6-7e08-4474-a285-3208198ce6fd}"));
themeManifest->AppendNative(NS_LITERAL_CSTRING("chrome.manifest"));
XRE_AddManifestLocation(NS_SKIN_LOCATION, themeManifest);
#endif
}
}
}