diff --git a/patch/LF.BR.1.2.3/gecko/bug-1091307-Fix-to-instantiate-vendor-telephony-implementation.patch b/patch/LF.BR.1.2.3/gecko/bug-1091307-Fix-to-instantiate-vendor-telephony-implementation.patch new file mode 100644 index 0000000000000000000000000000000000000000..1cb3e17f9015886db132adee1436810e509355cc --- /dev/null +++ b/patch/LF.BR.1.2.3/gecko/bug-1091307-Fix-to-instantiate-vendor-telephony-implementation.patch @@ -0,0 +1,107 @@ +From c2e6fc245df86f807da7ce04c799fd56e222c974 Mon Sep 17 00:00:00 2001 +From: Indrajeet Kumar <ikumar@codeaurora.org> +Date: Tue, 13 Jan 2015 12:41:03 -0800 +Subject: [PATCH] Fix to instantiate vendor telephony implementation (bug + 1091307) + +Change-Id: I33a31b2c8f5b98bbbaee6be789355789a908f71d +--- + xpcom/components/nsComponentManager.cpp | 62 ++++++++++++++------------------- + 1 file changed, 27 insertions(+), 35 deletions(-) + +diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp +index c5bcd92..dd01f468 100644 +--- a/xpcom/components/nsComponentManager.cpp ++++ b/xpcom/components/nsComponentManager.cpp +@@ -374,6 +374,25 @@ nsComponentManagerImpl::Init() + GetLocationFromDirectoryService(NS_XPCOM_CURRENT_PROCESS_DIR); + + InitializeStaticModules(); ++ InitializeModuleLocations(); ++ ++ ComponentLocation* cl = sModuleLocations->InsertElementAt(0); ++ nsCOMPtr<nsIFile> lf = CloneAndAppend(appDir, ++ NS_LITERAL_CSTRING("chrome.manifest")); ++ cl->type = NS_COMPONENT_LOCATION; ++ cl->location.Init(lf); ++ ++ bool equals = false; ++ appDir->Equals(greDir, &equals); ++ if (!equals) { ++ cl = sModuleLocations->InsertElementAt(0); ++ cl->type = NS_COMPONENT_LOCATION; ++ lf = CloneAndAppend(greDir, NS_LITERAL_CSTRING("chrome.manifest")); ++ cl->location.Init(lf); ++ } ++ ++ PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ++ ("nsComponentManager: Initialized.")); + + nsresult rv = mNativeModuleLoader.Init(); + if (NS_FAILED(rv)) { +@@ -388,44 +407,20 @@ nsComponentManagerImpl::Init() + RegisterModule((*sStaticModules)[i], nullptr); + } + +- // 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 +- +- InitializeModuleLocations(); +- ComponentLocation* cl = sModuleLocations->AppendElement(); +- nsCOMPtr<nsIFile> lf = CloneAndAppend(greDir, +- NS_LITERAL_CSTRING("chrome.manifest")); +- cl->type = NS_COMPONENT_LOCATION; +- cl->location.Init(lf); +- +- nsRefPtr<nsZipArchive> greOmnijar = +- mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE); +- if (greOmnijar) { +- cl = sModuleLocations->AppendElement(); +- cl->type = NS_COMPONENT_LOCATION; +- cl->location.Init(greOmnijar, "chrome.manifest"); +- } +- +- bool equals = false; +- appDir->Equals(greDir, &equals); +- if (!equals) { +- cl = sModuleLocations->AppendElement(); +- cl->type = NS_COMPONENT_LOCATION; +- lf = CloneAndAppend(appDir, NS_LITERAL_CSTRING("chrome.manifest")); +- cl->location.Init(lf); +- } +- + nsRefPtr<nsZipArchive> appOmnijar = + mozilla::Omnijar::GetReader(mozilla::Omnijar::APP); + if (appOmnijar) { +- cl = sModuleLocations->AppendElement(); ++ cl = sModuleLocations->InsertElementAt(1); // Insert after greDir + cl->type = NS_COMPONENT_LOCATION; + cl->location.Init(appOmnijar, "chrome.manifest"); + } ++ nsRefPtr<nsZipArchive> greOmnijar = ++ mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE); ++ if (greOmnijar) { ++ cl = sModuleLocations->InsertElementAt(0); ++ cl->type = NS_COMPONENT_LOCATION; ++ cl->location.Init(greOmnijar, "chrome.manifest"); ++ } + + RereadChromeManifests(false); + +@@ -439,9 +434,6 @@ nsComponentManagerImpl::Init() + // point. So we wait until now. + nsCategoryManager::GetSingleton()->InitMemoryReporter(); + +- PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, +- ("nsComponentManager: Initialized.")); +- + mStatus = NORMAL; + + return NS_OK; +-- +1.8.2.1 +