Bug 1250630 - remove PBackgroundTest and ifdef ENABLE_TEST blocks. r?bkelly
MozReview-Commit-ID: 7kYkzegA4H6
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -238,23 +238,16 @@ using namespace mozilla::system;
#endif
#include "Crypto.h"
#ifdef MOZ_WEBSPEECH
#include "mozilla/dom/SpeechSynthesisParent.h"
#endif
-#ifdef ENABLE_TESTS
-#include "BackgroundChildImpl.h"
-#include "mozilla/ipc/PBackgroundChild.h"
-#include "nsIIPCBackgroundChildCreateCallback.h"
-#endif
-
-
#if defined(MOZ_CONTENT_SANDBOX) && defined(XP_LINUX)
#include "mozilla/SandboxInfo.h"
#include "mozilla/SandboxBroker.h"
#include "mozilla/SandboxBrokerPolicyFactory.h"
#endif
#ifdef MOZ_TOOLKIT_SEARCH
#include "nsIBrowserSearchService.h"
@@ -302,140 +295,16 @@ using namespace mozilla::gmp;
using namespace mozilla::hal;
using namespace mozilla::ipc;
using namespace mozilla::layers;
using namespace mozilla::net;
using namespace mozilla::jsipc;
using namespace mozilla::psm;
using namespace mozilla::widget;
-#ifdef ENABLE_TESTS
-
-class BackgroundTester final : public nsIIPCBackgroundChildCreateCallback,
- public nsIObserver
-{
- static uint32_t sCallbackCount;
-
-private:
- ~BackgroundTester()
- { }
-
- virtual void
- ActorCreated(PBackgroundChild* aActor) override
- {
- MOZ_RELEASE_ASSERT(aActor,
- "Failed to create a PBackgroundChild actor!");
-
- NS_NAMED_LITERAL_CSTRING(testStr, "0123456789");
-
- PBackgroundTestChild* testActor =
- aActor->SendPBackgroundTestConstructor(testStr);
- MOZ_RELEASE_ASSERT(testActor);
-
- if (!sCallbackCount) {
- PBackgroundChild* existingBackgroundChild =
- BackgroundChild::GetForCurrentThread();
-
- MOZ_RELEASE_ASSERT(existingBackgroundChild);
- MOZ_RELEASE_ASSERT(existingBackgroundChild == aActor);
-
- bool ok =
- existingBackgroundChild->
- SendPBackgroundTestConstructor(testStr);
- MOZ_RELEASE_ASSERT(ok);
-
- // Callback 3.
- ok = BackgroundChild::GetOrCreateForCurrentThread(this);
- MOZ_RELEASE_ASSERT(ok);
- }
-
- sCallbackCount++;
- }
-
- virtual void
- ActorFailed() override
- {
- MOZ_CRASH("Failed to create a PBackgroundChild actor!");
- }
-
- NS_IMETHOD
- Observe(nsISupports* aSubject, const char* aTopic, const char16_t* aData)
- override
- {
- nsCOMPtr<nsIObserverService> observerService =
- mozilla::services::GetObserverService();
- MOZ_RELEASE_ASSERT(observerService);
-
- nsresult rv = observerService->RemoveObserver(this, aTopic);
- MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv));
-
- if (!strcmp(aTopic, "profile-after-change")) {
- if (mozilla::Preferences::GetBool("pbackground.testing", false)) {
- rv = observerService->AddObserver(this, "xpcom-shutdown", false);
- MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv));
-
- // Callback 1.
- bool ok = BackgroundChild::GetOrCreateForCurrentThread(this);
- MOZ_RELEASE_ASSERT(ok);
-
- BackgroundChildImpl::ThreadLocal* threadLocal =
- BackgroundChildImpl::GetThreadLocalForCurrentThread();
- MOZ_RELEASE_ASSERT(threadLocal);
-
- // Callback 2.
- ok = BackgroundChild::GetOrCreateForCurrentThread(this);
- MOZ_RELEASE_ASSERT(ok);
- }
-
- return NS_OK;
- }
-
- if (!strcmp(aTopic, "xpcom-shutdown")) {
- MOZ_RELEASE_ASSERT(sCallbackCount == 3);
-
- return NS_OK;
- }
-
- MOZ_CRASH("Unknown observer topic!");
- }
-
-public:
- NS_DECL_ISUPPORTS
-};
-
-uint32_t BackgroundTester::sCallbackCount = 0;
-
-NS_IMPL_ISUPPORTS(BackgroundTester, nsIIPCBackgroundChildCreateCallback,
- nsIObserver)
-
-#endif // ENABLE_TESTS
-
-void
-MaybeTestPBackground()
-{
-#ifdef ENABLE_TESTS
- // This test relies on running the event loop and XPCShell does not always
- // do so. Bail out here if we detect that we're running in XPCShell.
- if (PR_GetEnv("XPCSHELL_TEST_PROFILE_DIR")) {
- return;
- }
-
- // This is called too early at startup to test preferences directly. We have
- // to install an observer to be notified when preferences are available.
- nsCOMPtr<nsIObserverService> observerService =
- mozilla::services::GetObserverService();
- MOZ_RELEASE_ASSERT(observerService);
-
- nsCOMPtr<nsIObserver> observer = new BackgroundTester();
- nsresult rv = observerService->AddObserver(observer, "profile-after-change",
- false);
- MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv));
-#endif
-}
-
// XXX Workaround for bug 986973 to maintain the existing broken semantics
template<>
struct nsIConsoleService::COMTypeInfo<nsConsoleService, void> {
static const nsIID kIID;
};
const nsIID nsIConsoleService::COMTypeInfo<nsConsoleService, void>::kIID = NS_ICONSOLESERVICE_IID;
namespace mozilla {
@@ -859,20 +728,16 @@ ContentParent::StartUp()
BlobParent::Startup(BlobParent::FriendKey());
BackgroundChild::Startup();
// Try to preallocate a process that we can transform into an app later.
PreallocatedProcessManager::AllocateAfterDelay();
- // Test the PBackground infrastructure on ENABLE_TESTS builds when a special
- // testing preference is set.
- MaybeTestPBackground();
-
sDisableUnsafeCPOWWarnings = PR_GetEnv("DISABLE_UNSAFE_CPOW_WARNINGS");
#if defined(XP_LINUX) && defined(MOZ_CONTENT_SANDBOX)
sSandboxBrokerPolicyFactory = MakeUnique<SandboxBrokerPolicyFactory>();
#endif
}
/*static*/ void
@@ -3690,23 +3555,21 @@ ContentParent::DeallocPRemoteSpellcheckE
{
delete parent;
return true;
}
/* static */ void
ContentParent::ForceKillTimerCallback(nsITimer* aTimer, void* aClosure)
{
-#ifdef ENABLE_TESTS
// We don't want to time out the content process during XPCShell tests. This
// is the easiest way to ensure that.
if (PR_GetEnv("XPCSHELL_TEST_PROFILE_DIR")) {
return;
}
-#endif
auto self = static_cast<ContentParent*>(aClosure);
self->KillHard("ShutDownKill");
}
void
ContentParent::KillHard(const char* aReason)
{
--- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp
@@ -62,22 +62,16 @@
#include "Principal.h"
#include "SharedWorker.h"
#include "WorkerDebuggerManager.h"
#include "WorkerPrivate.h"
#include "WorkerRunnable.h"
#include "WorkerThread.h"
-#ifdef ENABLE_TESTS
-#include "BackgroundChildImpl.h"
-#include "mozilla/ipc/PBackgroundChild.h"
-#include "prrng.h"
-#endif
-
using namespace mozilla;
using namespace mozilla::dom;
using namespace mozilla::ipc;
USING_WORKERS_NAMESPACE
using mozilla::MutexAutoLock;
using mozilla::MutexAutoUnlock;
@@ -157,20 +151,16 @@ const JS::ContextOptions kRequiredContex
uint32_t gMaxWorkersPerDomain = MAX_WORKERS_PER_DOMAIN;
// Does not hold an owning reference.
RuntimeService* gRuntimeService = nullptr;
// Only true during the call to Init.
bool gRuntimeServiceDuringInit = false;
-#ifdef ENABLE_TESTS
-bool gTestPBackground = false;
-#endif // ENABLE_TESTS
-
class LiteralRebindingCString : public nsDependentCString
{
public:
template<int N>
void RebindLiteral(const char (&aStr)[N])
{
Rebind(aStr, N-1);
}
@@ -981,68 +971,16 @@ public:
CycleCollectedJSRuntime::AfterProcessTask(aRecursionDepth);
}
}
private:
WorkerPrivate* mWorkerPrivate;
};
-#ifdef ENABLE_TESTS
-
-class TestPBackgroundCreateCallback final :
- public nsIIPCBackgroundChildCreateCallback
-{
-public:
- NS_DECL_ISUPPORTS
-
- virtual void
- ActorCreated(PBackgroundChild* aActor) override
- {
- MOZ_RELEASE_ASSERT(aActor);
- }
-
- virtual void
- ActorFailed() override
- {
- MOZ_CRASH("TestPBackground() should not fail "
- "GetOrCreateForCurrentThread()");
- }
-
-private:
- ~TestPBackgroundCreateCallback()
- { }
-};
-
-NS_IMPL_ISUPPORTS(TestPBackgroundCreateCallback,
- nsIIPCBackgroundChildCreateCallback);
-
-void
-TestPBackground()
-{
- using namespace mozilla::ipc;
-
- if (gTestPBackground) {
- // Randomize value to validate workers are not cross-posting messages.
- uint32_t testValue;
- size_t randomSize = PR_GetRandomNoise(&testValue, sizeof(testValue));
- MOZ_RELEASE_ASSERT(randomSize == sizeof(testValue));
- nsCString testStr;
- testStr.AppendInt(testValue);
- testStr.AppendInt(reinterpret_cast<int64_t>(PR_GetCurrentThread()));
- PBackgroundChild* existingBackgroundChild =
- BackgroundChild::GetForCurrentThread();
- MOZ_RELEASE_ASSERT(existingBackgroundChild);
- bool ok = existingBackgroundChild->SendPBackgroundTestConstructor(testStr);
- MOZ_RELEASE_ASSERT(ok);
- }
-}
-
-#endif // ENABLE_TESTS
-
class WorkerBackgroundChildCallback final :
public nsIIPCBackgroundChildCreateCallback
{
bool* mDone;
public:
explicit WorkerBackgroundChildCallback(bool* aDone)
: mDone(aDone)
@@ -1416,20 +1354,16 @@ RuntimeService::GetOrCreateService()
// The observer service now owns us until shutdown.
gRuntimeService = new RuntimeService();
if (NS_FAILED(gRuntimeService->Init())) {
NS_WARNING("Failed to initialize!");
gRuntimeService->Cleanup();
gRuntimeService = nullptr;
return nullptr;
}
-
-#ifdef ENABLE_TESTS
- gTestPBackground = mozilla::Preferences::GetBool("pbackground.testing", false);
-#endif // ENABLE_TESTS
}
return gRuntimeService;
}
// static
RuntimeService*
RuntimeService::GetService()
@@ -2698,20 +2632,16 @@ WorkerThreadPrimaryRunnable::Run()
nsresult rv = SynchronouslyCreatePBackground();
if (NS_WARN_IF(NS_FAILED(rv))) {
// XXX need to fire an error at parent.
return rv;
}
mWorkerPrivate->SetThread(mThread);
-#ifdef ENABLE_TESTS
- TestPBackground();
-#endif
-
mWorkerPrivate->AssertIsOnWorkerThread();
{
nsCycleCollector_startup();
WorkerJSRuntime runtime(mWorkerPrivate);
nsresult rv = runtime.Initialize(mParentRuntime);
if (NS_WARN_IF(NS_FAILED(rv))) {
@@ -2738,20 +2668,16 @@ WorkerThreadPrimaryRunnable::Run()
{
JSAutoRequest ar(cx);
mWorkerPrivate->DoRunLoop(cx);
JS_ReportPendingException(cx);
}
-#ifdef ENABLE_TESTS
- TestPBackground();
-#endif
-
BackgroundChild::CloseForCurrentThread();
#ifdef MOZ_ENABLE_PROFILER_SPS
if (stack) {
stack->sampleRuntime(nullptr);
}
#endif
}