Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj
This commit is contained in:
@@ -51,8 +51,8 @@
|
||||
#include "nsXULAppAPI.h"
|
||||
|
||||
#define ASSERT_PARENT_PROCESS() \
|
||||
AssertIsInMainProcess(); \
|
||||
if (NS_WARN_IF(!IsMainProcess())) { \
|
||||
MOZ_ASSERT(XRE_IsParentProcess()); \
|
||||
if (NS_WARN_IF(!XRE_IsParentProcess())) { \
|
||||
return NS_ERROR_FAILURE; \
|
||||
}
|
||||
|
||||
@@ -125,20 +125,6 @@ static uint64_t gCounterID = 0;
|
||||
|
||||
typedef nsClassHashtable<nsUint32HashKey, DataStoreInfo> HashApp;
|
||||
|
||||
bool
|
||||
IsMainProcess()
|
||||
{
|
||||
static const bool isMainProcess =
|
||||
XRE_GetProcessType() == GeckoProcessType_Default;
|
||||
return isMainProcess;
|
||||
}
|
||||
|
||||
void
|
||||
AssertIsInMainProcess()
|
||||
{
|
||||
MOZ_ASSERT(IsMainProcess());
|
||||
}
|
||||
|
||||
void
|
||||
RejectPromise(nsPIDOMWindow* aWindow, Promise* aPromise, nsresult aRv)
|
||||
{
|
||||
@@ -161,8 +147,7 @@ void
|
||||
DeleteDatabase(const nsAString& aName,
|
||||
const nsAString& aManifestURL)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
nsRefPtr<DataStoreDB> db = new DataStoreDB(aManifestURL, aName);
|
||||
db->Delete();
|
||||
@@ -174,8 +159,7 @@ DeleteDataStoresAppEnumerator(
|
||||
nsAutoPtr<DataStoreInfo>& aInfo,
|
||||
void* aUserData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
auto* appId = static_cast<uint32_t*>(aUserData);
|
||||
if (*appId != aAppId) {
|
||||
@@ -191,8 +175,7 @@ DeleteDataStoresEnumerator(const nsAString& aName,
|
||||
nsAutoPtr<HashApp>& aApps,
|
||||
void* aUserData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
aApps->Enumerate(DeleteDataStoresAppEnumerator, aUserData);
|
||||
return aApps->Count() ? PL_DHASH_NEXT : PL_DHASH_REMOVE;
|
||||
@@ -215,8 +198,7 @@ ResetPermission(uint32_t aAppId, const nsAString& aOriginURL,
|
||||
const nsAString& aPermission,
|
||||
bool aReadOnly)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIIOService> ioService(do_GetService(NS_IOSERVICE_CONTRACTID, &rv));
|
||||
@@ -347,8 +329,7 @@ GetDataStoreInfosEnumerator(const uint32_t& aAppId,
|
||||
DataStoreInfo* aInfo,
|
||||
void* aUserData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
auto* data = static_cast<GetDataStoreInfosData*>(aUserData);
|
||||
if (aAppId == data->mAppId) {
|
||||
@@ -384,8 +365,7 @@ GetAppManifestURLsEnumerator(const uint32_t& aAppId,
|
||||
DataStoreInfo* aInfo,
|
||||
void* aUserData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
auto* manifestURLs = static_cast<nsIMutableArray*>(aUserData);
|
||||
nsCOMPtr<nsISupportsString> manifestURL(do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID));
|
||||
@@ -417,8 +397,7 @@ AddPermissionsEnumerator(const uint32_t& aAppId,
|
||||
DataStoreInfo* aInfo,
|
||||
void* userData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
auto* data = static_cast<AddPermissionsData*>(userData);
|
||||
|
||||
@@ -457,8 +436,7 @@ AddAccessPermissionsEnumerator(const uint32_t& aAppId,
|
||||
DataStoreInfo* aInfo,
|
||||
void* userData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
auto* data = static_cast<AddAccessPermissionsData*>(userData);
|
||||
|
||||
@@ -517,15 +495,13 @@ public:
|
||||
, mName(aName)
|
||||
, mManifestURL(aManifestURL)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
}
|
||||
|
||||
void
|
||||
Run(const nsAString& aRevisionId)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
nsRefPtr<DataStoreService> service = DataStoreService::Get();
|
||||
MOZ_ASSERT(service);
|
||||
@@ -553,15 +529,13 @@ public:
|
||||
, mName(aName)
|
||||
, mManifestURL(aManifestURL)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
}
|
||||
|
||||
void
|
||||
Run(DataStoreDB* aDb, RunStatus aStatus) override
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
MOZ_ASSERT(aDb);
|
||||
|
||||
if (aStatus == Error) {
|
||||
@@ -642,8 +616,7 @@ public:
|
||||
NS_IMETHOD
|
||||
HandleEvent(nsIDOMEvent* aEvent) override
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
nsRefPtr<IDBRequest> request;
|
||||
request.swap(mRequest);
|
||||
@@ -830,7 +803,7 @@ DataStoreService::Shutdown()
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
if (gDataStoreService) {
|
||||
if (IsMainProcess()) {
|
||||
if (XRE_IsParentProcess()) {
|
||||
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
|
||||
if (obs) {
|
||||
obs->RemoveObserver(gDataStoreService, "webapps-clear-data");
|
||||
@@ -863,7 +836,7 @@ DataStoreService::~DataStoreService()
|
||||
nsresult
|
||||
DataStoreService::Init()
|
||||
{
|
||||
if (!IsMainProcess()) {
|
||||
if (!XRE_IsParentProcess()) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -973,7 +946,7 @@ DataStoreService::GetDataStores(nsIDOMWindow* aWindow,
|
||||
|
||||
// If this request comes from the main process, we have access to the
|
||||
// window, so we can skip the ipc communication.
|
||||
if (IsMainProcess()) {
|
||||
if (XRE_IsParentProcess()) {
|
||||
uint32_t appId;
|
||||
nsresult rv = principal->GetAppId(&appId);
|
||||
if (NS_FAILED(rv)) {
|
||||
@@ -1132,8 +1105,7 @@ DataStoreService::GetDataStoreInfos(const nsAString& aName,
|
||||
nsIPrincipal* aPrincipal,
|
||||
nsTArray<DataStoreInfo>& aStores)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
nsCOMPtr<nsIAppsService> appsService =
|
||||
do_GetService("@mozilla.org/AppsService;1");
|
||||
@@ -1242,8 +1214,7 @@ DataStoreService::CheckPermission(nsIPrincipal* aPrincipal,
|
||||
void
|
||||
DataStoreService::DeleteDataStores(uint32_t aAppId)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
mStores.Enumerate(DeleteDataStoresEnumerator, &aAppId);
|
||||
mAccessStores.Enumerate(DeleteDataStoresEnumerator, &aAppId);
|
||||
@@ -1254,8 +1225,7 @@ DataStoreService::Observe(nsISupports* aSubject,
|
||||
const char* aTopic,
|
||||
const char16_t* aData)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
if (strcmp(aTopic, "webapps-clear-data")) {
|
||||
return NS_OK;
|
||||
@@ -1294,8 +1264,7 @@ DataStoreService::AddPermissions(uint32_t aAppId,
|
||||
const nsAString& aManifestURL,
|
||||
bool aReadOnly)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
// This is the permission name.
|
||||
nsString permission;
|
||||
@@ -1327,8 +1296,7 @@ DataStoreService::AddAccessPermissions(uint32_t aAppId, const nsAString& aName,
|
||||
const nsAString& aManifestURL,
|
||||
bool aReadOnly)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
// When an app wants to have access to a DataStore, the permissions must be
|
||||
// set.
|
||||
@@ -1349,8 +1317,7 @@ DataStoreService::CreateFirstRevisionId(uint32_t aAppId,
|
||||
const nsAString& aName,
|
||||
const nsAString& aManifestURL)
|
||||
{
|
||||
AssertIsInMainProcess();
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
nsRefPtr<DataStoreDB> db = new DataStoreDB(aManifestURL, aName);
|
||||
|
||||
@@ -1380,7 +1347,7 @@ DataStoreService::EnableDataStore(uint32_t aAppId, const nsAString& aName,
|
||||
}
|
||||
|
||||
// Notify the child processes.
|
||||
if (IsMainProcess()) {
|
||||
if (XRE_IsParentProcess()) {
|
||||
nsTArray<ContentParent*> children;
|
||||
ContentParent::GetAll(children);
|
||||
for (uint32_t i = 0; i < children.Length(); i++) {
|
||||
@@ -1447,8 +1414,7 @@ DataStoreService::GetDataStoresFromIPC(const nsAString& aName,
|
||||
nsIPrincipal* aPrincipal,
|
||||
nsTArray<DataStoreSetting>* aValue)
|
||||
{
|
||||
MOZ_ASSERT(IsMainProcess());
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread());
|
||||
|
||||
uint32_t appId;
|
||||
nsresult rv = aPrincipal->GetAppId(&appId);
|
||||
|
||||
Reference in New Issue
Block a user