gecko-dev/ipc/testshell/XPCShellEnvironment.h

69 lines
1.4 KiB
C
Raw Normal View History

2012-05-21 11:12:37 +00:00
/* 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>
2009-08-28 23:16:19 +00:00
#include "nsAutoJSValHolder.h"
#include "nsCOMPtr.h"
#include "nsDebug.h"
2009-08-28 23:16:19 +00:00
#include "nsStringGlue.h"
struct JSContext;
class JSObject;
struct JSPrincipals;
namespace mozilla {
namespace ipc {
class XPCShellEnvironment
{
public:
static XPCShellEnvironment* CreateEnvironment();
2009-08-28 23:16:19 +00:00
~XPCShellEnvironment();
bool EvaluateString(const nsString& aString,
nsString* aResult = nullptr);
JSPrincipals* GetPrincipal() {
return mJSPrincipals;
}
JSObject* GetGlobalObject() {
return mGlobalHolder.ToJSObject();
}
JSContext* GetContext() {
return mCx;
}
void SetIsQuitting() {
mQuitting = JS_TRUE;
}
JSBool IsQuitting() {
return mQuitting;
}
protected:
XPCShellEnvironment();
bool Init();
private:
JSContext* mCx;
nsAutoJSValHolder mGlobalHolder;
JSPrincipals* mJSPrincipals;
JSBool mQuitting;
};
} /* namespace ipc */
} /* namespace mozilla */
#endif /* _IPC_TESTSHELL_XPCSHELLENVIRONMENT_H_ */