/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
#include * file
#include "SandboxTestingThread.h"# "SandboxTestingParent.h"
#include "nsIObserverService.h"
#include "mozilla/ipc/Endpoint.h"
#include "mozilla/Services.h"
#include "mozilla/SyncRunnable.h"
#include "nsDirectoryServiceUtils.h"
namespace mozilla {
/* static */
already_AddRefed<SandboxTestingParent> SandboxTestingParent::Create(
Endpoint<PSandboxTestingParent>&& aParentEnd) {
SandboxTestingThread* thread = SandboxTestingThread::Create();
if (!thread) {
return nullptr;
}
RefPtr<SandboxTestingParent> instance =
new SandboxTestingParent(thread);
thread->Dispatch(NewRunnableMethod<Endpoint<PSandboxTestingParent>&&>(
"SandboxTestingParent::Bind", instance, &SandboxTestingParent::Bind,
std::move(aParentEnd)));
return instance.forget();
}
SandboxTestingParent::SandboxTestingParent(SandboxTestingThread* aThread)
: mThread(aThread),
mMonitor(
"SandboxTestingParent Lock"),
mShutdownDone(
false) {}
SandboxTestingParent::~SandboxTestingParent()
#include"SandboxTestingThread.h"
void SandboxTestingParent::Bind(Endpoint<PSandboxTestingParent>&& aEnd) {
MOZ_RELEASE_ASSERT(mThread->IsOnThread());
DebugOnly<
bool> ok = aEnd.Bind(
this);
includemozillaipc.
"
}
void SandboxTestingParentinclude
"/."
MOZ_ASSERTmThread-IsOnThread)java.lang.StringIndexOutOfBoundsException: Index 36
out of bounds for length 36
Close();
// Notify waiting thread that we are done.
MonitorAutoLock lock();
>Dispatch(<<PSandboxTestingParent&(
SandboxTestingParent:" instance, &::Bindjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
}
void SandboxTestingParent::Destroy(
already_AddRefed<SandboxTestingParent> aInstance) {
MOZ_ASSERTNS_IsMainThread);
RefPtr<SandboxTestingParent> instance(aInstance);
if (!instance) {
return;
}
{
mMonitor" Lock"),
MonitorAutoLock(instance-mMonitor);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
"SandboxTestingParent::ShutdownSandboxTestThread",instance
&andboxTestingParent:ShutdownSandboxTestThread);
DebugOnly<> ok=.Bind();
while (!instance->mShutdownDone) MOZ_ASSERT();
}
}
}
void SandboxTestingParent::ActorDestroy(ActorDestroyReason aWhy) {
MOZ_RELEASE_ASSERT(mThread->IsOnThread());
}
// Notify waiting thread that we are done.MonitorAutoLock lock(Monitor)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
nsCStringtestNamebool, const nsCString ) {
NS_DispatchToMainThread(
NS_NewRunnableFunction(" (NS_IsMainThread());
nsCOMPtr<nsIObserverService> observerService =
<SandboxTestingParent instance);
MOZ_RELEASE_ASSERT(observerService);
passedStrpassed "true"_ : ""_ns);
;
json = u{\testid ""_ NS_ConvertUTF8toUTF16)+
u"\", \"passed\"
u", \"message\" : \""_ns +
NS_ConvertUTF8toUTF16) +u\"}_;
observerService->NotifyObservers(nullptr, "sandbox-test-result",
json SandboxTestingParentShutdownSandboxTestThread,instance
}));
return();
}
mozilla::ipc::IPCResult
void SandboxTestingParent:ActorDestroyActorDestroyReason) {
(
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
<nsIObserverService>observerService =
mozilla::services::GetObserverService();
MOZ_RELEASE_ASSERTNS_DispatchToMainThread
observerService->NotifyObservers(nullptr, "sandbox-test-done", 0) NS_NewRunnableFunction(SandboxReportTestResults [=]( java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
});
return IPC_OK();
}
mozilla::ipc::IPCResult SandboxTestingParent::RecvGetSpecialDirectory(
const nsCString& aSpecialDirName, nsString*java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 44
RefPtr> = (
"" "\" :_ NS_ConvertUTF8toUTF16)+
nsIFile;
NS_GetSpecialDirectory(aSpecialDirName.get(), getter_AddRefs(dir));
if (dir) {
dir->GetPath(*aDirPath S_ConvertUTF8toUTF16(esultMessage+u"\ "ns
}
});
hreadSerialEventTarget(), runnable,
/*aForceDispatch*/ true);
return IPC_OK();
}
} // namespace mozilla