Bug 1626555 - Add `dom/storage` to the list of non-unified-build-compatible directories. r=sg

Depends on D96442

Differential Revision: https://phabricator.services.mozilla.com/D96530
This commit is contained in:
Andi-Bogdan Postelnicu 2020-11-10 12:00:30 +00:00
Родитель e70abab259
Коммит 06adde3adb
16 изменённых файлов: 88 добавлений и 51 удалений

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

@ -55,3 +55,4 @@ dom/security/
dom/serviceworkers/
dom/simpledb/
dom/smil/
dom/storage/

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

@ -7,16 +7,20 @@
#include "LocalStorageManager.h"
#include "LocalStorage.h"
#include "StorageDBThread.h"
#include "StorageIPC.h"
#include "StorageUtils.h"
#include "nsIEffectiveTLDService.h"
#include "nsPIDOMWindow.h"
#include "nsNetUtil.h"
#include "nsNetCID.h"
#include "nsPrintfCString.h"
#include "nsXULAppAPI.h"
#include "nsThreadUtils.h"
#include "nsIObserverService.h"
#include "mozilla/ipc/BackgroundChild.h"
#include "mozilla/ipc/PBackgroundChild.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPrefs_dom.h"
#include "mozilla/dom/LocalStorageCommon.h"
@ -179,13 +183,13 @@ nsresult LocalStorageManager::GetStorageInternal(
}
#if !defined(MOZ_WIDGET_ANDROID)
PBackgroundChild* backgroundActor =
BackgroundChild::GetOrCreateForCurrentThread();
::mozilla::ipc::PBackgroundChild* backgroundActor =
::mozilla::ipc::BackgroundChild::GetOrCreateForCurrentThread();
if (NS_WARN_IF(!backgroundActor)) {
return NS_ERROR_FAILURE;
}
PrincipalInfo principalInfo;
::mozilla::ipc::PrincipalInfo principalInfo;
rv = mozilla::ipc::PrincipalToPrincipalInfo(aStoragePrincipal,
&principalInfo);
if (NS_WARN_IF(NS_FAILED(rv))) {

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

@ -6,6 +6,7 @@
#include "PartitionedLocalStorage.h"
#include "SessionStorageCache.h"
#include "nsContentUtils.h"
#include "mozilla/dom/StorageBinding.h"

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

@ -6,6 +6,8 @@
#include "SessionStorageCache.h"
#include "LocalStorageManager.h"
#include "StorageIPC.h"
#include "mozilla/dom/LSWriteOptimizer.h"
#include "mozilla/dom/PBackgroundSessionStorageCache.h"

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

@ -16,7 +16,9 @@
#include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/PBackgroundSessionStorageCache.h"
#include "mozilla/dom/PBackgroundSessionStorageManager.h"
#include "mozilla/ipc/BackgroundChild.h"
#include "mozilla/ipc/BackgroundParent.h"
#include "mozilla/ipc/PBackgroundChild.h"
#include "nsDataHashtable.h"
#include "nsThreadUtils.h"
@ -32,14 +34,14 @@ static StaticAutoPtr<
sManagers;
bool RecvShutdownBackgroundSessionStorageManagers() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
sManagers = nullptr;
return true;
}
bool RecvRemoveBackgroundSessionStorageManager(uint64_t aTopContextId) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
if (sManagers) {
sManagers->Remove(aTopContextId);
@ -176,8 +178,8 @@ nsresult SessionStorageManager::EnsureManager() {
return NS_OK;
}
PBackgroundChild* backgroundActor =
BackgroundChild::GetOrCreateForCurrentThread();
::mozilla::ipc::PBackgroundChild* backgroundActor =
::mozilla::ipc::BackgroundChild::GetOrCreateForCurrentThread();
if (NS_WARN_IF(!backgroundActor)) {
return NS_ERROR_FAILURE;
}
@ -554,8 +556,8 @@ void BackgroundSessionStorageManager::RemoveManager(uint64_t aTopContextId) {
MOZ_ASSERT(XRE_IsParentProcess());
AssertIsOnMainThread();
PBackgroundChild* backgroundActor =
BackgroundChild::GetOrCreateForCurrentThread();
::mozilla::ipc::PBackgroundChild* backgroundActor =
::mozilla::ipc::BackgroundChild::GetOrCreateForCurrentThread();
if (NS_WARN_IF(!backgroundActor)) {
return;
}
@ -570,7 +572,7 @@ void BackgroundSessionStorageManager::RemoveManager(uint64_t aTopContextId) {
BackgroundSessionStorageManager* BackgroundSessionStorageManager::GetOrCreate(
uint64_t aTopContextId) {
MOZ_ASSERT(XRE_IsParentProcess());
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
if (!sManagers) {
sManagers = new nsRefPtrHashtable<nsUint64HashKey,
@ -579,8 +581,8 @@ BackgroundSessionStorageManager* BackgroundSessionStorageManager::GetOrCreate(
"dom::BackgroundSessionStorageManager::GetOrCreate", [] {
RunOnShutdown(
[] {
PBackgroundChild* backgroundActor =
BackgroundChild::GetOrCreateForCurrentThread();
::mozilla::ipc::PBackgroundChild* backgroundActor = ::mozilla::
ipc::BackgroundChild::GetOrCreateForCurrentThread();
if (NS_WARN_IF(!backgroundActor)) {
return;
}
@ -602,7 +604,7 @@ BackgroundSessionStorageManager* BackgroundSessionStorageManager::GetOrCreate(
BackgroundSessionStorageManager::BackgroundSessionStorageManager() {
MOZ_ASSERT(XRE_IsParentProcess());
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
}
BackgroundSessionStorageManager::~BackgroundSessionStorageManager() = default;
@ -612,7 +614,7 @@ void BackgroundSessionStorageManager::CopyDataToContentProcess(
nsTArray<SSSetItemInfo>& aDefaultData,
nsTArray<SSSetItemInfo>& aSessionData) {
MOZ_ASSERT(XRE_IsParentProcess());
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
auto* const originRecord =
GetOriginRecord(aOriginAttrs, aOriginKey, false, nullptr);
@ -631,7 +633,7 @@ void BackgroundSessionStorageManager::UpdateData(
const nsTArray<SSWriteInfo>& aDefaultWriteInfos,
const nsTArray<SSWriteInfo>& aSessionWriteInfos) {
MOZ_ASSERT(XRE_IsParentProcess());
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
auto* const originRecord =
GetOriginRecord(aOriginAttrs, aOriginKey, true, nullptr);

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

@ -5,6 +5,8 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "SessionStorageObserver.h"
#include "StorageIPC.h"
#include "mozilla/dom/LocalStorageCommon.h"
namespace mozilla {
namespace dom {

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

@ -7,6 +7,8 @@
#ifndef mozilla_dom_SessionStorageObserver_h
#define mozilla_dom_SessionStorageObserver_h
#include "nsISupportsImpl.h"
namespace mozilla {
namespace dom {

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

@ -8,6 +8,8 @@
#include "StorageNotifierService.h"
#include "mozilla/dom/StorageBinding.h"
#include "mozilla/dom/StorageEvent.h"
#include "mozilla/dom/StorageEventBinding.h"
#include "mozilla/BasePrincipal.h"
#include "mozilla/SchedulerGroup.h"
#include "mozilla/StorageAccess.h"

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

@ -6,11 +6,16 @@
#include "StorageActivityService.h"
#include "mozilla/ipc/BackgroundChild.h"
#include "mozilla/ipc/BackgroundUtils.h"
#include "mozilla/ipc/PBackgroundChild.h"
#include "mozilla/ipc/PBackgroundSharedTypes.h"
#include "mozilla/SchedulerGroup.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPtr.h"
#include "nsCOMPtr.h"
#include "nsIMutableArray.h"
#include "nsIObserverService.h"
#include "nsIPrincipal.h"
#include "nsSupportsPrimitives.h"
#include "nsXPCOM.h"
@ -163,7 +168,8 @@ void StorageActivityService::SendActivityToParent(nsIPrincipal* aPrincipal) {
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(!XRE_IsParentProcess());
PBackgroundChild* actor = BackgroundChild::GetOrCreateForCurrentThread();
::mozilla::ipc::PBackgroundChild* actor =
::mozilla::ipc::BackgroundChild::GetOrCreateForCurrentThread();
if (NS_WARN_IF(!actor)) {
return;
}

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

@ -8,6 +8,7 @@
#define mozilla_dom_StorageActivityService_h
#include "nsDataHashtable.h"
#include "nsIObserver.h"
#include "nsIStorageActivityService.h"
#include "nsITimer.h"
#include "nsWeakReference.h"

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

@ -124,14 +124,14 @@ StorageDBThread::StorageDBThread()
// static
StorageDBThread* StorageDBThread::Get() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
return sStorageThread;
}
// static
StorageDBThread* StorageDBThread::GetOrCreate(const nsString& aProfilePath) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
if (sStorageThread || sStorageThreadDown) {
// When sStorageThreadDown is at true, sStorageThread is null.
@ -183,7 +183,7 @@ nsresult StorageDBThread::GetProfilePath(nsString& aProfilePath) {
}
nsresult StorageDBThread::Init(const nsString& aProfilePath) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
nsresult rv;
@ -231,7 +231,7 @@ nsresult StorageDBThread::Init(const nsString& aProfilePath) {
}
nsresult StorageDBThread::Shutdown() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
sStorageThreadDown = true;
@ -917,7 +917,7 @@ nsresult StorageDBThread::DBOperation::Perform(StorageDBThread* aThread) {
}
StatementCache* statements;
if (MOZ_UNLIKELY(IsOnBackgroundThread())) {
if (MOZ_UNLIKELY(::mozilla::ipc::IsOnBackgroundThread())) {
statements = &aThread->mReaderStatements;
} else {
statements = &aThread->mWorkerStatements;
@ -1487,7 +1487,7 @@ bool StorageDBThread::PendingOperations::IsOriginUpdatePending(
nsresult StorageDBThread::InitHelper::SyncDispatchAndReturnProfilePath(
nsAString& aProfilePath) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ALWAYS_SUCCEEDS(NS_DispatchToMainThread(this));
@ -1542,7 +1542,7 @@ StorageDBThread::ShutdownRunnable::Run() {
return NS_OK;
}
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
if (sStorageThread) {
sStorageThread->Shutdown();

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

@ -13,6 +13,8 @@
#include "mozilla/BasePrincipal.h"
#include "nsVariant.h"
#include "mozilla/Tokenizer.h"
#include "mozIStorageConnection.h"
#include "mozStorageHelper.h"
// Current version of the database schema
#define CURRENT_SCHEMA_VERSION 2

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

@ -6,7 +6,9 @@
#include "StorageIPC.h"
#include "StorageUtils.h"
#include "LocalStorageManager.h"
#include "SessionStorageObserver.h"
#include "SessionStorageManager.h"
#include "SessionStorageCache.h"
@ -185,7 +187,8 @@ nsTHashtable<nsCStringHashKey>& StorageDBChild::OriginsHavingData() {
nsresult StorageDBChild::Init() {
MOZ_ASSERT(NS_IsMainThread());
PBackgroundChild* actor = BackgroundChild::GetOrCreateForCurrentThread();
::mozilla::ipc::PBackgroundChild* actor =
::mozilla::ipc::BackgroundChild::GetOrCreateForCurrentThread();
if (NS_WARN_IF(!actor)) {
return NS_ERROR_FAILURE;
}
@ -542,7 +545,7 @@ LocalStorageCacheParent::LocalStorageCacheParent(
mOriginKey(aOriginKey),
mPrivateBrowsingId(aPrivateBrowsingId),
mActorDestroyed(false) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
}
LocalStorageCacheParent::~LocalStorageCacheParent() {
@ -550,7 +553,7 @@ LocalStorageCacheParent::~LocalStorageCacheParent() {
}
void LocalStorageCacheParent::ActorDestroy(ActorDestroyReason aWhy) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(!mActorDestroyed);
mActorDestroyed = true;
@ -573,7 +576,7 @@ void LocalStorageCacheParent::ActorDestroy(ActorDestroyReason aWhy) {
}
mozilla::ipc::IPCResult LocalStorageCacheParent::RecvDeleteMe() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(!mActorDestroyed);
IProtocol* mgr = Manager();
@ -586,7 +589,7 @@ mozilla::ipc::IPCResult LocalStorageCacheParent::RecvDeleteMe() {
mozilla::ipc::IPCResult LocalStorageCacheParent::RecvNotify(
const nsString& aDocumentURI, const nsString& aKey,
const nsString& aOldValue, const nsString& aNewValue) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(gLocalStorageCacheParents);
nsTArray<LocalStorageCacheParent*>* array;
@ -622,7 +625,7 @@ class StorageDBParent::ObserverSink : public StorageObserverSink {
public:
explicit ObserverSink(StorageDBParent* aActor)
: mOwningEventTarget(GetCurrentEventTarget()), mActor(aActor) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(aActor);
}
@ -666,14 +669,14 @@ namespace {} // namespace
StorageDBParent::StorageDBParent(const nsString& aProfilePath)
: mProfilePath(aProfilePath), mIPCOpen(false) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
// We are always open by IPC only
AddIPDLReference();
}
StorageDBParent::~StorageDBParent() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
if (mObserverSink) {
mObserverSink->Stop();
@ -682,12 +685,12 @@ StorageDBParent::~StorageDBParent() {
}
void StorageDBParent::Init() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
PBackgroundParent* actor = Manager();
MOZ_ASSERT(actor);
if (BackgroundParent::IsOtherProcessActor(actor)) {
if (::mozilla::ipc::BackgroundParent::IsOtherProcessActor(actor)) {
mObserverSink = new ObserverSink(this);
mObserverSink->Start();
}
@ -710,7 +713,7 @@ void StorageDBParent::ActorDestroy(ActorDestroyReason aWhy) {
}
mozilla::ipc::IPCResult StorageDBParent::RecvDeleteMe() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
IProtocol* mgr = Manager();
if (!PBackgroundStorageParent::Send__delete__(this)) {
@ -1179,7 +1182,7 @@ void StorageDBParent::UsageParentBridge::Destroy() {
}
void StorageDBParent::ObserverSink::Start() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
RefPtr<Runnable> runnable =
NewRunnableMethod("StorageDBParent::ObserverSink::AddSink", this,
@ -1189,7 +1192,7 @@ void StorageDBParent::ObserverSink::Start() {
}
void StorageDBParent::ObserverSink::Stop() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
mActor = nullptr;
@ -1221,7 +1224,7 @@ void StorageDBParent::ObserverSink::RemoveSink() {
void StorageDBParent::ObserverSink::Notify(
const nsCString& aTopic, const nsString& aOriginAttributesPattern,
const nsCString& aOriginScope) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
if (mActor) {
mActor->Observe(aTopic, aOriginAttributesPattern, aOriginScope);
@ -1300,14 +1303,14 @@ SessionStorageCacheParent::SessionStorageCacheParent(
: mOriginAttrs(aOriginAttrs),
mOriginKey(aOriginKey),
mManagerActor(aActor) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(mManagerActor);
}
SessionStorageCacheParent::~SessionStorageCacheParent() = default;
void SessionStorageCacheParent::ActorDestroy(ActorDestroyReason aWhy) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
mManagerActor = nullptr;
}
@ -1315,7 +1318,7 @@ void SessionStorageCacheParent::ActorDestroy(ActorDestroyReason aWhy) {
mozilla::ipc::IPCResult SessionStorageCacheParent::RecvLoad(
nsTArray<SSSetItemInfo>* aDefaultData,
nsTArray<SSSetItemInfo>* aSessionData) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(mManagerActor);
mLoadReceived.Flip();
@ -1332,7 +1335,7 @@ mozilla::ipc::IPCResult SessionStorageCacheParent::RecvLoad(
mozilla::ipc::IPCResult SessionStorageCacheParent::RecvCheckpoint(
nsTArray<SSWriteInfo>&& aDefaultWriteInfos,
nsTArray<SSWriteInfo>&& aSessionWriteInfos) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(mManagerActor);
RefPtr<BackgroundSessionStorageManager> manager = mManagerActor->GetManager();
@ -1345,7 +1348,7 @@ mozilla::ipc::IPCResult SessionStorageCacheParent::RecvCheckpoint(
}
mozilla::ipc::IPCResult SessionStorageCacheParent::RecvDeleteMe() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(mManagerActor);
mManagerActor = nullptr;
@ -1361,14 +1364,14 @@ mozilla::ipc::IPCResult SessionStorageCacheParent::RecvDeleteMe() {
SessionStorageManagerParent::SessionStorageManagerParent(uint64_t aTopContextId)
: mBackgroundManager(
BackgroundSessionStorageManager::GetOrCreate(aTopContextId)) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(mBackgroundManager);
}
SessionStorageManagerParent::~SessionStorageManagerParent() = default;
void SessionStorageManagerParent::ActorDestroy(ActorDestroyReason aWhy) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
mBackgroundManager = nullptr;
}
@ -1386,7 +1389,7 @@ BackgroundSessionStorageManager* SessionStorageManagerParent::GetManager()
}
mozilla::ipc::IPCResult SessionStorageManagerParent::RecvDeleteMe() {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(mBackgroundManager);
mBackgroundManager = nullptr;
@ -1406,7 +1409,7 @@ mozilla::ipc::IPCResult SessionStorageManagerParent::RecvDeleteMe() {
PBackgroundLocalStorageCacheParent* AllocPBackgroundLocalStorageCacheParent(
const mozilla::ipc::PrincipalInfo& aPrincipalInfo,
const nsCString& aOriginKey, const uint32_t& aPrivateBrowsingId) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
RefPtr<LocalStorageCacheParent> actor = new LocalStorageCacheParent(
aPrincipalInfo, aOriginKey, aPrivateBrowsingId);
@ -1420,7 +1423,7 @@ mozilla::ipc::IPCResult RecvPBackgroundLocalStorageCacheConstructor(
PBackgroundLocalStorageCacheParent* aActor,
const mozilla::ipc::PrincipalInfo& aPrincipalInfo,
const nsCString& aOriginKey, const uint32_t& aPrivateBrowsingId) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(aActor);
auto* actor = static_cast<LocalStorageCacheParent*>(aActor);
@ -1445,7 +1448,7 @@ mozilla::ipc::IPCResult RecvPBackgroundLocalStorageCacheConstructor(
bool DeallocPBackgroundLocalStorageCacheParent(
PBackgroundLocalStorageCacheParent* aActor) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(aActor);
// Transfer ownership back from IPDL.
@ -1457,14 +1460,14 @@ bool DeallocPBackgroundLocalStorageCacheParent(
PBackgroundStorageParent* AllocPBackgroundStorageParent(
const nsString& aProfilePath) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
return new StorageDBParent(aProfilePath);
}
mozilla::ipc::IPCResult RecvPBackgroundStorageConstructor(
PBackgroundStorageParent* aActor, const nsString& aProfilePath) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(aActor);
auto* actor = static_cast<StorageDBParent*>(aActor);
@ -1473,7 +1476,7 @@ mozilla::ipc::IPCResult RecvPBackgroundStorageConstructor(
}
bool DeallocPBackgroundStorageParent(PBackgroundStorageParent* aActor) {
AssertIsOnBackgroundThread();
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(aActor);
StorageDBParent* actor = static_cast<StorageDBParent*>(aActor);

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

@ -5,6 +5,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "StorageNotifierService.h"
#include "StorageUtils.h"
#include "mozilla/dom/StorageEvent.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/StaticPtr.h"

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

@ -7,6 +7,11 @@
#ifndef mozilla_dom_StorageNotifierService_h
#define mozilla_dom_StorageNotifierService_h
#include "nsISupportsImpl.h"
#include "nsTObserverArray.h"
class nsIEventTarget;
class nsIPrincipal;
class nsPIDOMWindowInner;
namespace mozilla {

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

@ -8,6 +8,7 @@
#include "LocalStorageCache.h"
#include "StorageDBThread.h"
#include "StorageIPC.h"
#include "StorageUtils.h"
#include "mozilla/BasePrincipal.h"
@ -21,6 +22,7 @@
#include "nsXULAppAPI.h"
#include "nsEscape.h"
#include "nsNetCID.h"
#include "mozilla/dom/LocalStorageCommon.h"
#include "mozilla/Preferences.h"
#include "mozilla/Services.h"
#include "nsServiceManagerUtils.h"