forked from mirrors/gecko-dev
		
	 6f45c666bc
			
		
	
	
		6f45c666bc
		
	
	
	
	
		
			
			# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D14595 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.4 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 "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_ */
 |