Make the Add-on Manager's binary components build

This commit is contained in:
NTD 2018-02-10 10:46:49 -05:00 • committed by Roy Tam
commit 16ace66629
2 changed files with 28 additions and 6 deletions

View file

@ -35,7 +35,9 @@
#include "nsBrowserStatusFilter.h" #include "nsBrowserStatusFilter.h"
#include "mozilla/FinalizationWitnessService.h" #include "mozilla/FinalizationWitnessService.h"
#include "mozilla/NativeOSFileInternals.h" #include "mozilla/NativeOSFileInternals.h"
#ifdef MOZ_WEBEXTENSIONS
#include "mozilla/AddonContentPolicy.h" #include "mozilla/AddonContentPolicy.h"
#endif
#include "mozilla/AddonPathService.h" #include "mozilla/AddonPathService.h"
#if defined(XP_WIN) #if defined(XP_WIN)
@ -122,7 +124,9 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(FinalizationWitnessService, Init)
NS_GENERIC_FACTORY_CONSTRUCTOR(NativeOSFileInternalsService) NS_GENERIC_FACTORY_CONSTRUCTOR(NativeOSFileInternalsService)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NativeFileWatcherService, Init) NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NativeFileWatcherService, Init)
#ifdef MOZ_WEBEXTENSIONS
NS_GENERIC_FACTORY_CONSTRUCTOR(AddonContentPolicy) NS_GENERIC_FACTORY_CONSTRUCTOR(AddonContentPolicy)
#endif
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AddonPathService, AddonPathService::GetInstance) NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(AddonPathService, AddonPathService::GetInstance)
NS_DEFINE_NAMED_CID(NS_TOOLKIT_APPSTARTUP_CID); NS_DEFINE_NAMED_CID(NS_TOOLKIT_APPSTARTUP_CID);
@ -155,7 +159,9 @@ NS_DEFINE_NAMED_CID(NS_UPDATEPROCESSOR_CID);
#endif #endif
NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID); NS_DEFINE_NAMED_CID(FINALIZATIONWITNESSSERVICE_CID);
NS_DEFINE_NAMED_CID(NATIVE_OSFILE_INTERNALS_SERVICE_CID); NS_DEFINE_NAMED_CID(NATIVE_OSFILE_INTERNALS_SERVICE_CID);
#ifdef MOZ_WEBEXTENSIONS
NS_DEFINE_NAMED_CID(NS_ADDONCONTENTPOLICY_CID); NS_DEFINE_NAMED_CID(NS_ADDONCONTENTPOLICY_CID);
#endif
NS_DEFINE_NAMED_CID(NS_ADDON_PATH_SERVICE_CID); NS_DEFINE_NAMED_CID(NS_ADDON_PATH_SERVICE_CID);
NS_DEFINE_NAMED_CID(NATIVE_FILEWATCHER_SERVICE_CID); NS_DEFINE_NAMED_CID(NATIVE_FILEWATCHER_SERVICE_CID);
@ -189,7 +195,9 @@ static const Module::CIDEntry kToolkitCIDs[] = {
#endif #endif
{ &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor }, { &kFINALIZATIONWITNESSSERVICE_CID, false, nullptr, FinalizationWitnessServiceConstructor },
{ &kNATIVE_OSFILE_INTERNALS_SERVICE_CID, false, nullptr, NativeOSFileInternalsServiceConstructor }, { &kNATIVE_OSFILE_INTERNALS_SERVICE_CID, false, nullptr, NativeOSFileInternalsServiceConstructor },
#ifdef MOZ_WEBEXTENSIONS
{ &kNS_ADDONCONTENTPOLICY_CID, false, nullptr, AddonContentPolicyConstructor }, { &kNS_ADDONCONTENTPOLICY_CID, false, nullptr, AddonContentPolicyConstructor },
#endif
{ &kNS_ADDON_PATH_SERVICE_CID, false, nullptr, AddonPathServiceConstructor }, { &kNS_ADDON_PATH_SERVICE_CID, false, nullptr, AddonPathServiceConstructor },
{ &kNATIVE_FILEWATCHER_SERVICE_CID, false, nullptr, NativeFileWatcherServiceConstructor }, { &kNATIVE_FILEWATCHER_SERVICE_CID, false, nullptr, NativeFileWatcherServiceConstructor },
{ nullptr } { nullptr }
@ -225,14 +233,18 @@ static const Module::ContractIDEntry kToolkitContracts[] = {
#endif #endif
{ FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID }, { FINALIZATIONWITNESSSERVICE_CONTRACTID, &kFINALIZATIONWITNESSSERVICE_CID },
{ NATIVE_OSFILE_INTERNALS_SERVICE_CONTRACTID, &kNATIVE_OSFILE_INTERNALS_SERVICE_CID }, { NATIVE_OSFILE_INTERNALS_SERVICE_CONTRACTID, &kNATIVE_OSFILE_INTERNALS_SERVICE_CID },
#ifdef MOZ_WEBEXTENSIONS
{ NS_ADDONCONTENTPOLICY_CONTRACTID, &kNS_ADDONCONTENTPOLICY_CID }, { NS_ADDONCONTENTPOLICY_CONTRACTID, &kNS_ADDONCONTENTPOLICY_CID },
#endif
{ NS_ADDONPATHSERVICE_CONTRACTID, &kNS_ADDON_PATH_SERVICE_CID }, { NS_ADDONPATHSERVICE_CONTRACTID, &kNS_ADDON_PATH_SERVICE_CID },
{ NATIVE_FILEWATCHER_SERVICE_CONTRACTID, &kNATIVE_FILEWATCHER_SERVICE_CID }, { NATIVE_FILEWATCHER_SERVICE_CONTRACTID, &kNATIVE_FILEWATCHER_SERVICE_CID },
{ nullptr } { nullptr }
}; };
static const mozilla::Module::CategoryEntry kToolkitCategories[] = { static const mozilla::Module::CategoryEntry kToolkitCategories[] = {
#ifdef MOZ_WEBEXTENSIONS
{ "content-policy", NS_ADDONCONTENTPOLICY_CONTRACTID, NS_ADDONCONTENTPOLICY_CONTRACTID }, { "content-policy", NS_ADDONCONTENTPOLICY_CONTRACTID, NS_ADDONCONTENTPOLICY_CONTRACTID },
#endif
{ nullptr } { nullptr }
}; };

View file

@ -14,11 +14,13 @@
#include "nsThreadUtils.h" #include "nsThreadUtils.h"
#include "nsIIOService.h" #include "nsIIOService.h"
#include "nsNetUtil.h" #include "nsNetUtil.h"
#include "nsIFileURL.h"
#include "nsIResProtocolHandler.h" #include "nsIResProtocolHandler.h"
#include "nsIChromeRegistry.h" #include "nsIChromeRegistry.h"
#include "nsIJARURI.h" #include "nsIJARURI.h"
#include "nsJSUtils.h" #include "nsJSUtils.h"
#include "mozilla/dom/ScriptSettings.h" #include "mozilla/dom/ScriptSettings.h"
#include "mozilla/dom/ToJSValue.h"
#include "mozilla/AddonPathService.h" #include "mozilla/AddonPathService.h"
#include "mozilla/Omnijar.h" #include "mozilla/Omnijar.h"
@ -64,6 +66,18 @@ AddonPathService::GetInstance()
return sInstance; return sInstance;
} }
static JSAddonId*
ConvertAddonId(const nsAString& addonIdString)
{
AutoSafeJSContext cx;
JS::RootedValue strv(cx);
if (!mozilla::dom::ToJSValue(cx, addonIdString, &strv)) {
return nullptr;
}
JS::RootedString str(cx, strv.toString());
return JS::NewAddonId(cx, str);
}
JSAddonId* JSAddonId*
AddonPathService::Find(const nsAString& path) AddonPathService::Find(const nsAString& path)
{ {
@ -106,11 +120,7 @@ AddonPathService::FindAddonId(const nsAString& path)
NS_IMETHODIMP NS_IMETHODIMP
AddonPathService::InsertPath(const nsAString& path, const nsAString& addonIdString) AddonPathService::InsertPath(const nsAString& path, const nsAString& addonIdString)
{ {
AutoSafeJSContext cx; JSAddonId* addonId = ConvertAddonId(addonIdString);
JS::RootedString str(cx, JS_NewUCStringCopyN(cx,
addonIdString.BeginReading(),
addonIdString.Length()));
JSAddonId* addonId = JS::NewAddonId(cx, str);
// Add the new path in sorted order. // Add the new path in sorted order.
PathEntryComparator comparator; PathEntryComparator comparator;
@ -193,7 +203,7 @@ ResolveURI(nsIURI* aURI, nsAString& out)
JSAddonId* JSAddonId*
MapURIToAddonID(nsIURI* aURI) MapURIToAddonID(nsIURI* aURI)
{ {
if (!NS_IsMainThread() || XRE_GetProcessType() != GoannaProcessType_Default) { if (!NS_IsMainThread() || !XRE_IsParentProcess()) {
return nullptr; return nullptr;
} }