Bug 1543761 - stop reading chrome.manifest files in the app/gre dirs when using omni.ja, r=glandium

Differential Revision: https://phabricator.services.mozilla.com/D29287

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Gijs Kruitbosch 2019-05-15 12:36:31 +00:00
Родитель 8128559da3
Коммит 98e55d80dd
3 изменённых файлов: 15 добавлений и 66 удалений

Просмотреть файл

@ -73,18 +73,6 @@ const processes = {
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
},
{ // bug 1543761
path: "GreD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // bug 1376994, bug 1543761
path: "XCurProcD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // Exists call in ScopedXREEmbed::SetAppDir
path: "XCurProcD:",
condition: WIN,
@ -112,18 +100,6 @@ const processes = {
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
},
{ // bug 1543761
path: "GreD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // bug 1376994, bug 1543761
path: "XCurProcD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // Exists call in ScopedXREEmbed::SetAppDir
path: "XCurProcD:",
condition: WIN,
@ -146,18 +122,6 @@ const processes = {
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
},
{ // bug 1543761
path: "GreD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // bug 1376994, bug 1543761
path: "XCurProcD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // Exists call in ScopedXREEmbed::SetAppDir
path: "XCurProcD:",
condition: WIN,

Просмотреть файл

@ -200,18 +200,6 @@ const startupPhases = {
read: 1,
close: 1,
},
{ // bug 1543761
path: "GreD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // bug 1376994, bug 1543761
path: "XCurProcD:chrome.manifest",
condition: !WIN, // Visible on Windows with an open marker
stat: 1,
close: 1,
},
{ // At least the read seems unavoidable
path: "PrefD:prefs.js",
stat: 1,

Просмотреть файл

@ -496,32 +496,19 @@ nsresult nsComponentManagerImpl::Init() {
// The overall order in which chrome.manifests are expected to be treated
// is the following:
// - greDir
// - greDir's omni.ja
// - appDir
// - appDir's omni.ja
// - greDir's omni.ja or greDir
// - appDir's omni.ja or appDir
InitializeModuleLocations();
ComponentLocation* cl = sModuleLocations->AppendElement();
nsCOMPtr<nsIFile> lf =
CloneAndAppend(greDir, NS_LITERAL_CSTRING("chrome.manifest"));
cl->type = NS_APP_LOCATION;
cl->location.Init(lf);
RefPtr<nsZipArchive> greOmnijar =
mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
if (greOmnijar) {
cl = sModuleLocations->AppendElement();
cl->type = NS_APP_LOCATION;
cl->location.Init(greOmnijar, "chrome.manifest");
}
bool equals = false;
appDir->Equals(greDir, &equals);
if (!equals) {
cl = sModuleLocations->AppendElement();
cl->type = NS_APP_LOCATION;
lf = CloneAndAppend(appDir, NS_LITERAL_CSTRING("chrome.manifest"));
} else {
nsCOMPtr<nsIFile> lf =
CloneAndAppend(greDir, NS_LITERAL_CSTRING("chrome.manifest"));
cl->location.Init(lf);
}
@ -531,6 +518,16 @@ nsresult nsComponentManagerImpl::Init() {
cl = sModuleLocations->AppendElement();
cl->type = NS_APP_LOCATION;
cl->location.Init(appOmnijar, "chrome.manifest");
} else {
bool equals = false;
appDir->Equals(greDir, &equals);
if (!equals) {
cl = sModuleLocations->AppendElement();
cl->type = NS_APP_LOCATION;
nsCOMPtr<nsIFile> lf =
CloneAndAppend(appDir, NS_LITERAL_CSTRING("chrome.manifest"));
cl->location.Init(lf);
}
}
RereadChromeManifests(false);