forked from mirrors/gecko-dev
		
	MozReview-Commit-ID: LaX5K1uPZo9 --HG-- extra : transplant_source : 7o%A6C%21%D1H1%C3%3Dn%E6%5E%B4%E5%D6%A3%21E%A6
		
			
				
	
	
		
			161 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 | 
						|
 * vim: set ts=4 sw=4 et tw=80:
 | 
						|
 *
 | 
						|
 * 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/. */
 | 
						|
 | 
						|
include DOMTypes;
 | 
						|
 | 
						|
using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
 | 
						|
 | 
						|
namespace mozilla {
 | 
						|
namespace jsipc {
 | 
						|
 | 
						|
struct JSIID
 | 
						|
{
 | 
						|
    uint32_t m0;
 | 
						|
    uint16_t m1;
 | 
						|
    uint16_t m2;
 | 
						|
    uint8_t m3_0;
 | 
						|
    uint8_t m3_1;
 | 
						|
    uint8_t m3_2;
 | 
						|
    uint8_t m3_3;
 | 
						|
    uint8_t m3_4;
 | 
						|
    uint8_t m3_5;
 | 
						|
    uint8_t m3_6;
 | 
						|
    uint8_t m3_7;
 | 
						|
};
 | 
						|
 | 
						|
struct LocalObject
 | 
						|
{
 | 
						|
    uint64_t serializedId;
 | 
						|
};
 | 
						|
 | 
						|
struct RemoteObject
 | 
						|
{
 | 
						|
    uint64_t serializedId;
 | 
						|
    bool isCallable;
 | 
						|
    bool isConstructor;
 | 
						|
    bool isDOMObject;
 | 
						|
    nsCString objectTag;
 | 
						|
};
 | 
						|
 | 
						|
union ObjectVariant
 | 
						|
{
 | 
						|
    LocalObject;
 | 
						|
    RemoteObject;
 | 
						|
};
 | 
						|
 | 
						|
struct WellKnownSymbol
 | 
						|
{
 | 
						|
    uint32_t which;
 | 
						|
};
 | 
						|
 | 
						|
struct RegisteredSymbol
 | 
						|
{
 | 
						|
    nsString key;
 | 
						|
};
 | 
						|
 | 
						|
union SymbolVariant
 | 
						|
{
 | 
						|
    WellKnownSymbol;
 | 
						|
    RegisteredSymbol;
 | 
						|
};
 | 
						|
 | 
						|
struct UndefinedVariant {};
 | 
						|
struct NullVariant {};
 | 
						|
 | 
						|
union ObjectOrNullVariant
 | 
						|
{
 | 
						|
    ObjectVariant;
 | 
						|
    NullVariant;
 | 
						|
};
 | 
						|
 | 
						|
union JSVariant
 | 
						|
{
 | 
						|
    UndefinedVariant;
 | 
						|
    NullVariant;
 | 
						|
    ObjectVariant;
 | 
						|
    SymbolVariant;
 | 
						|
    nsString;   /* StringValue(x) */
 | 
						|
    double;     /* NumberValue(x) */
 | 
						|
    bool;       /* BooleanValue(x) */
 | 
						|
    JSIID;      /* XPC nsIID */
 | 
						|
};
 | 
						|
 | 
						|
union JSIDVariant
 | 
						|
{
 | 
						|
    SymbolVariant;
 | 
						|
    nsString;
 | 
						|
    int32_t;
 | 
						|
};
 | 
						|
 | 
						|
struct ReturnSuccess
 | 
						|
{
 | 
						|
};
 | 
						|
 | 
						|
struct ReturnStopIteration
 | 
						|
{
 | 
						|
};
 | 
						|
 | 
						|
struct ReturnDeadCPOW
 | 
						|
{
 | 
						|
};
 | 
						|
 | 
						|
struct ReturnException
 | 
						|
{
 | 
						|
    JSVariant exn;
 | 
						|
};
 | 
						|
 | 
						|
struct ReturnObjectOpResult
 | 
						|
{
 | 
						|
    uint32_t code;
 | 
						|
};
 | 
						|
 | 
						|
union ReturnStatus
 | 
						|
{
 | 
						|
    ReturnSuccess;
 | 
						|
    ReturnStopIteration;
 | 
						|
    ReturnDeadCPOW;
 | 
						|
    ReturnException;
 | 
						|
    ReturnObjectOpResult;
 | 
						|
};
 | 
						|
 | 
						|
union JSParam
 | 
						|
{
 | 
						|
    void_t;     /* value is strictly an xpc out param */
 | 
						|
    JSVariant;  /* actual value to pass through */
 | 
						|
};
 | 
						|
 | 
						|
union GetterSetter
 | 
						|
{
 | 
						|
    uint64_t;
 | 
						|
    ObjectVariant;
 | 
						|
};
 | 
						|
 | 
						|
struct PPropertyDescriptor
 | 
						|
{
 | 
						|
    ObjectOrNullVariant obj;
 | 
						|
    uint32_t attrs;
 | 
						|
    JSVariant value;
 | 
						|
 | 
						|
    // How to interpret these values depends on whether JSPROP_GETTER/SETTER
 | 
						|
    // are set. If set, the corresponding value is a CPOW or 0 for NULL.
 | 
						|
    // Otherwise, the following table is used:
 | 
						|
    //
 | 
						|
    //  0 - NULL
 | 
						|
    //  1 - Default getter or setter.
 | 
						|
    //  2 - Unknown
 | 
						|
    GetterSetter getter;
 | 
						|
    GetterSetter setter;
 | 
						|
};
 | 
						|
 | 
						|
struct CpowEntry
 | 
						|
{
 | 
						|
  nsString name;
 | 
						|
  JSVariant value;
 | 
						|
};
 | 
						|
 | 
						|
}
 | 
						|
}
 |