1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* 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 "nsCOMPtr.h"
- #include "nsDebug.h"
- #include "nsString.h"
- #include "nsJSPrincipals.h"
- #include "nsContentUtils.h"
- #include "js/RootingAPI.h"
- #include "js/TypeDecls.h"
- struct JSPrincipals;
- namespace mozilla {
- namespace ipc {
- class XPCShellEnvironment
- {
- public:
- static XPCShellEnvironment* CreateEnvironment();
- ~XPCShellEnvironment();
- void ProcessFile(JSContext *cx, 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;
- }
- void SetIsQuitting() {
- mQuitting = true;
- }
- bool IsQuitting() {
- return mQuitting;
- }
- protected:
- XPCShellEnvironment();
- bool Init();
- private:
- JS::PersistentRooted<JSObject *> mGlobalHolder;
- bool mQuitting;
- };
- } /* namespace ipc */
- } /* namespace mozilla */
- #endif /* _IPC_TESTSHELL_XPCSHELLENVIRONMENT_H_ */
|