зеркало из https://github.com/mozilla/gecko-dev.git
93 строки
1.8 KiB
Plaintext
93 строки
1.8 KiB
Plaintext
/* -*- 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;
|
|
};
|
|
|
|
union JSVariant
|
|
{
|
|
void_t; /* |undefined| */
|
|
nsString; /* StringValue(x) */
|
|
uint64_t; /* ID that maps to a JSObject (cpow on parent, original on child). */
|
|
double; /* NumberValue(x) */
|
|
bool; /* BooleanValue(x) */
|
|
JSIID; /* XPC nsIID */
|
|
};
|
|
|
|
struct ReturnSuccess
|
|
{
|
|
};
|
|
|
|
struct ReturnStopIteration
|
|
{
|
|
};
|
|
|
|
struct ReturnException
|
|
{
|
|
JSVariant exn;
|
|
};
|
|
|
|
union ReturnStatus
|
|
{
|
|
ReturnSuccess;
|
|
ReturnStopIteration;
|
|
ReturnException;
|
|
};
|
|
|
|
union JSParam
|
|
{
|
|
void_t; /* value is strictly an xpc out param */
|
|
JSVariant; /* actual value to pass through */
|
|
};
|
|
|
|
struct PPropertyDescriptor
|
|
{
|
|
uint64_t objId;
|
|
uint32_t attrs;
|
|
uint32_t shortid;
|
|
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 - js_GetterOnlyPropertyStub (setter only)
|
|
// 3 - Unknown
|
|
uint64_t getter;
|
|
uint64_t setter;
|
|
};
|
|
|
|
struct CpowEntry
|
|
{
|
|
nsString name;
|
|
JSVariant value;
|
|
};
|
|
|
|
}
|
|
}
|