gecko-dev/ipc/testshell/XPCShellEnvironment.h
Ryan VanderMeulen e168631670 Backed out 10 changesets (bug 889911, bug 889714) due to merge conflicts on a CLOSED TREE.
Backed out changeset 1a1a536121da (bug 889714)
Backed out changeset 2cd88ef9eea5 (bug 889714)
Backed out changeset 489723887eca (bug 889714)
Backed out changeset 2b38ce22cf97 (bug 889714)
Backed out changeset 87b0a59a5d51 (bug 889714)
Backed out changeset 13229bab2ba4 (bug 889714)
Backed out changeset 234bd6d1fbed (bug 889714)
Backed out changeset 4f5f62284917 (bug 889714)
Backed out changeset 18537c4436c7 (bug 889911)
Backed out changeset ca7060ab1588 (bug 889911)
2013-07-16 21:16:31 -04:00

93 lines
1.9 KiB
C++

/* 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 http://mozilla.org/MPL/2.0/. */
#ifndef _IPC_TESTSHELL_XPCSHELLENVIRONMENT_H_
#define _IPC_TESTSHELL_XPCSHELLENVIRONMENT_H_
#include "base/basictypes.h"
#include <string>
#include <stdio.h>
#include "nsAutoJSValHolder.h"
#include "nsCOMPtr.h"
#include "nsDebug.h"
#include "nsStringGlue.h"
struct JSContext;
class JSObject;
struct JSPrincipals;
namespace mozilla {
namespace ipc {
class XPCShellEnvironment
{
public:
static XPCShellEnvironment* CreateEnvironment();
~XPCShellEnvironment();
bool EvaluateString(const nsString& aString,
nsString* aResult = nullptr);
JSPrincipals* GetPrincipal() {
return mJSPrincipals;
}
JSObject* GetGlobalObject() {
return mGlobalHolder.ToJSObject();
}
JSContext* GetContext() {
return mCx;
}
void SetExitCode(int aExitCode) {
mExitCode = aExitCode;
}
int ExitCode() {
return mExitCode;
}
void SetIsQuitting() {
mQuitting = JS_TRUE;
}
JSBool IsQuitting() {
return mQuitting;
}
void SetShouldReportWarnings(JSBool aReportWarnings) {
mReportWarnings = aReportWarnings;
}
JSBool ShouldReportWarnings() {
return mReportWarnings;
}
void SetShouldCompoleOnly(JSBool aCompileOnly) {
mCompileOnly = aCompileOnly;
}
JSBool ShouldCompileOnly() {
return mCompileOnly;
}
protected:
XPCShellEnvironment();
bool Init();
private:
JSContext* mCx;
nsAutoJSValHolder mGlobalHolder;
JSPrincipals* mJSPrincipals;
int mExitCode;
JSBool mQuitting;
JSBool mReportWarnings;
JSBool mCompileOnly;
};
} /* namespace ipc */
} /* namespace mozilla */
#endif /* _IPC_TESTSHELL_XPCSHELLENVIRONMENT_H_ */