gecko-dev/xpcom/io/nsIConverterInputStream.idl
Nika Layzell b3f3e9a04a Bug 1892481 - More consistently enforce noscript and builtinclass in xpidl, r=xpcom-reviewers,necko-reviewers,valentin,media-playback-reviewers,mccr8,padenot
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
2024-04-22 18:19:58 +00:00

45 lines
1.7 KiB
Text

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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 "nsIUnicharInputStream.idl"
interface nsIInputStream;
/**
* A unichar input stream that wraps an input stream.
* This allows reading unicode strings from a stream, automatically converting
* the bytes from a selected character encoding.
*/
[scriptable, builtinclass, uuid(FC66FFB6-5404-4908-A4A3-27F92FA0579D)]
interface nsIConverterInputStream : nsIUnicharInputStream {
/**
* Default replacement char value, U+FFFD REPLACEMENT CHARACTER.
*/
const char16_t DEFAULT_REPLACEMENT_CHARACTER = 0xFFFD;
/**
* Special replacement character value that requests errors to
* be treated as fatal.
*/
const char16_t ERRORS_ARE_FATAL = 0;
/**
* Initialize this stream.
* @param aStream
* The underlying stream to read from.
* @param aCharset
* The character encoding to use for converting the bytes of the
* stream. A null charset will be interpreted as UTF-8.
* @param aBufferSize
* How many bytes to buffer.
* @param aReplacementChar
* The character to replace unknown byte sequences in the stream
* with. The standard replacement character is U+FFFD.
* A value of 0x0000 will cause an exception to be thrown if unknown
* byte sequences are encountered in the stream.
*/
void init (in nsIInputStream aStream, in string aCharset,
in long aBufferSize, in char16_t aReplacementChar);
};