gecko-dev/ipc/testshell/XPCShellEnvironment.h
Nicholas Nethercote d8f824e34e Bug 898914 (part 1) - Remove JSBool.
--HG--
extra : rebase_source : 2d202e0e5005a7f54724b1540481c15cde3ad52e
2013-08-08 15:53:04 -07:00

67 lines
1.5 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"
#include "nsJSPrincipals.h"
#include "nsContentUtils.h"
struct JSContext;
class JSObject;
struct JSPrincipals;
namespace mozilla {
namespace ipc {
class XPCShellEnvironment
{
public:
static XPCShellEnvironment* CreateEnvironment();
~XPCShellEnvironment();
void ProcessFile(JSContext *cx, JS::Handle<JSObject*> obj,
const char *filename, FILE *file, bool forceTTY);
bool EvaluateString(const nsString& aString,
nsString* aResult = nullptr);
JSPrincipals* GetPrincipal() {
return nsJSPrincipals::get(nsContentUtils::GetSystemPrincipal());
}
JSObject* GetGlobalObject() {
return mGlobalHolder.ToJSObject();
}
void SetIsQuitting() {
mQuitting = true;
}
bool IsQuitting() {
return mQuitting;
}
protected:
XPCShellEnvironment();
bool Init();
private:
nsAutoJSValHolder mGlobalHolder;
bool mQuitting;
};
} /* namespace ipc */
} /* namespace mozilla */
#endif /* _IPC_TESTSHELL_XPCSHELLENVIRONMENT_H_ */