forked from mirrors/gecko-dev
These properties were previously being checked much later, during xptcodegen, and causing methods to be treated as noscript implicitly. This change enforces the noscript requirements earlier when possible in xpidl.py, to produce better errors, and adds addiitonal checks to ensure that types which need to be builtinclass are marked as such. This required some changes to interfaces in order to satisfy the new checks. Differential Revision: https://phabricator.services.mozilla.com/D207804
52 lines
2 KiB
Text
52 lines
2 KiB
Text
/* 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/. */
|
|
|
|
/**
|
|
* MozTCPSocket exposes a TCP client and server sockets
|
|
* to highly privileged apps. It provides a buffered, non-blocking
|
|
* interface for sending. For receiving, it uses an asynchronous,
|
|
* event handler based interface.
|
|
*/
|
|
|
|
#include "domstubs.idl"
|
|
|
|
|
|
/*
|
|
* This interface is implemented in TCPSocket.cpp as an internal interface
|
|
* for use in cross-process socket implementation.
|
|
* Needed to account for multiple possible types that can be provided to
|
|
* the socket callbacks as arguments.
|
|
*/
|
|
[scriptable, uuid(ac2c4b69-cb79-4767-b1ce-bcf62945cd39)]
|
|
interface nsITCPSocketCallback : nsISupports {
|
|
// Limitation of TCPSocket's buffer size.
|
|
const unsigned long BUFFER_SIZE = 65536;
|
|
|
|
// Dispatch an "error" event at this object with the given name and type.
|
|
void fireErrorEvent(in AString name, in AString type, in nsresult errorCode);
|
|
|
|
// Dispatch a "data" event at this object with a string
|
|
void fireDataStringEvent(in AString type, in ACString data);
|
|
|
|
// Dispatch a "data" event at this object with an Array
|
|
void fireDataArrayEvent(in AString type, in Array<uint8_t> data);
|
|
|
|
// Dispatch an event of the given type at this object.
|
|
void fireEvent(in AString type);
|
|
|
|
// Update the DOM object's readyState.
|
|
// @param readyState
|
|
// new ready state
|
|
void updateReadyState(in unsigned long readystate);
|
|
|
|
// Update the DOM object's bufferedAmount value with a tracking number to
|
|
// to allow tracking of which writes are "in-flight"
|
|
// @param bufferedAmount
|
|
// TCPSocket parent's bufferedAmount.
|
|
// @param trackingNumber
|
|
// A number to ensure the bufferedAmount is updated after data
|
|
// from child are sent to parent.
|
|
void updateBufferedAmount(in uint32_t bufferedAmount,
|
|
in uint32_t trackingNumber);
|
|
};
|