diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/encoding')
12 files changed, 63 insertions, 61 deletions
diff --git a/chromium/third_party/blink/renderer/modules/encoding/encoding.cc b/chromium/third_party/blink/renderer/modules/encoding/encoding.cc index 70c1473f79c..fea5721df7d 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/encoding.cc +++ b/chromium/third_party/blink/renderer/modules/encoding/encoding.cc @@ -6,7 +6,7 @@ namespace blink { -namespace Encoding { +namespace encoding { bool IsASCIIWhiteSpace(UChar c) { // From Encoding Standard: @@ -15,6 +15,6 @@ bool IsASCIIWhiteSpace(UChar c) { return c == 0x09 || c == 0x0A || c == 0x0C || c == 0x0D || c == 0x20; } -} // namespace Encoding +} // namespace encoding } // namespace blink diff --git a/chromium/third_party/blink/renderer/modules/encoding/encoding.h b/chromium/third_party/blink/renderer/modules/encoding/encoding.h index 084d96f82bb..0c9b0efc28e 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/encoding.h +++ b/chromium/third_party/blink/renderer/modules/encoding/encoding.h @@ -9,13 +9,13 @@ namespace blink { -namespace Encoding { +namespace encoding { // The Encoding Standard has a definition of whitespace that differs from // WTF::isWhiteSpace() (it excludes vertical tab). bool IsASCIIWhiteSpace(UChar); -} // namespace Encoding +} // namespace encoding } // namespace blink diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_decoder.cc b/chromium/third_party/blink/renderer/modules/encoding/text_decoder.cc index ac02608357b..12da076d1f8 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_decoder.cc +++ b/chromium/third_party/blink/renderer/modules/encoding/text_decoder.cc @@ -40,10 +40,10 @@ namespace blink { TextDecoder* TextDecoder::Create(const String& label, - const TextDecoderOptions& options, + const TextDecoderOptions* options, ExceptionState& exception_state) { WTF::TextEncoding encoding( - label.StripWhiteSpace(&Encoding::IsASCIIWhiteSpace)); + label.StripWhiteSpace(&encoding::IsASCIIWhiteSpace)); // The replacement encoding is not valid, but the Encoding API also // rejects aliases of the replacement encoding. if (!encoding.IsValid() || !strcasecmp(encoding.GetName(), "replacement")) { @@ -52,7 +52,8 @@ TextDecoder* TextDecoder::Create(const String& label, return nullptr; } - return new TextDecoder(encoding, options.fatal(), options.ignoreBOM()); + return MakeGarbageCollected<TextDecoder>(encoding, options->fatal(), + options->ignoreBOM()); } TextDecoder::TextDecoder(const WTF::TextEncoding& encoding, @@ -77,29 +78,30 @@ String TextDecoder::encoding() const { } String TextDecoder::decode(const BufferSource& input, - const TextDecodeOptions& options, + const TextDecodeOptions* options, ExceptionState& exception_state) { + DCHECK(options); DCHECK(!input.IsNull()); if (input.IsArrayBufferView()) { const char* start = static_cast<const char*>( input.GetAsArrayBufferView().View()->BaseAddress()); - size_t length = input.GetAsArrayBufferView().View()->byteLength(); + uint32_t length = input.GetAsArrayBufferView().View()->byteLength(); return decode(start, length, options, exception_state); } DCHECK(input.IsArrayBuffer()); const char* start = static_cast<const char*>(input.GetAsArrayBuffer()->Data()); - size_t length = input.GetAsArrayBuffer()->ByteLength(); + uint32_t length = input.GetAsArrayBuffer()->ByteLength(); return decode(start, length, options, exception_state); } String TextDecoder::decode(const char* start, - size_t length, - const TextDecodeOptions& options, + uint32_t length, + const TextDecodeOptions* options, ExceptionState& exception_state) { - WTF::FlushBehavior flush = - options.stream() ? WTF::FlushBehavior::kDoNotFlush - : WTF::FlushBehavior::kDataEOF; + DCHECK(options); + WTF::FlushBehavior flush = options->stream() ? WTF::FlushBehavior::kDoNotFlush + : WTF::FlushBehavior::kDataEOF; bool saw_error = false; String s = codec_->Decode(start, length, flush, fatal_, saw_error); @@ -124,7 +126,7 @@ String TextDecoder::decode(const char* start, } String TextDecoder::decode(ExceptionState& exception_state) { - TextDecodeOptions options; + TextDecodeOptions* options = TextDecodeOptions::Create(); return decode(nullptr, 0, options, exception_state); } diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_decoder.h b/chromium/third_party/blink/renderer/modules/encoding/text_decoder.h index 1c887c612f2..cbad582e339 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_decoder.h +++ b/chromium/third_party/blink/renderer/modules/encoding/text_decoder.h @@ -52,23 +52,23 @@ class TextDecoder final : public ScriptWrappable { public: static TextDecoder* Create(const String& label, - const TextDecoderOptions&, + const TextDecoderOptions*, ExceptionState&); + + TextDecoder(const WTF::TextEncoding&, bool fatal, bool ignore_bom); ~TextDecoder() override; // Implement the IDL String encoding() const; bool fatal() const { return fatal_; } bool ignoreBOM() const { return ignore_bom_; } - String decode(const BufferSource&, const TextDecodeOptions&, ExceptionState&); + String decode(const BufferSource&, const TextDecodeOptions*, ExceptionState&); String decode(ExceptionState&); private: - TextDecoder(const WTF::TextEncoding&, bool fatal, bool ignore_bom); - String decode(const char* start, - size_t length, - const TextDecodeOptions&, + uint32_t length, + const TextDecodeOptions*, ExceptionState&); WTF::TextEncoding encoding_; diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc b/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc index 2c0fe8dcd47..62e5dba4060 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc +++ b/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc @@ -60,7 +60,7 @@ class TextDecoderStream::Transformer final : public TransformStreamTransformer { return; } const char* start = static_cast<const char*>(view->BaseAddress()); - size_t length = view->byteLength(); + uint32_t length = view->byteLength(); DecodeAndEnqueue(start, length, WTF::FlushBehavior::kDoNotFlush, controller, exception_state); return; @@ -74,7 +74,7 @@ class TextDecoderStream::Transformer final : public TransformStreamTransformer { return; } const char* start = static_cast<const char*>(array_buffer->Data()); - size_t length = array_buffer->ByteLength(); + uint32_t length = array_buffer->ByteLength(); DecodeAndEnqueue(start, length, WTF::FlushBehavior::kDoNotFlush, controller, exception_state); } @@ -95,7 +95,7 @@ class TextDecoderStream::Transformer final : public TransformStreamTransformer { // Implements the second part of "decode and enqueue a chunk" as well as the // "flush and enqueue" algorithm. void DecodeAndEnqueue(const char* start, - size_t length, + uint32_t length, WTF::FlushBehavior flush, TransformStreamDefaultController* controller, ExceptionState& exception_state) { @@ -144,10 +144,10 @@ class TextDecoderStream::Transformer final : public TransformStreamTransformer { TextDecoderStream* TextDecoderStream::Create(ScriptState* script_state, const String& label, - const TextDecoderOptions& options, + const TextDecoderOptions* options, ExceptionState& exception_state) { WTF::TextEncoding encoding( - label.StripWhiteSpace(&Encoding::IsASCIIWhiteSpace)); + label.StripWhiteSpace(&encoding::IsASCIIWhiteSpace)); // The replacement encoding is not valid, but the Encoding API also // rejects aliases of the replacement encoding. if (!encoding.IsValid() || @@ -167,14 +167,12 @@ String TextDecoderStream::encoding() const { return String(encoding_.GetName()).LowerASCII(); } -ScriptValue TextDecoderStream::readable(ScriptState* script_state, - ExceptionState& exception_state) const { - return transform_->Readable(script_state, exception_state); +ReadableStream* TextDecoderStream::readable() const { + return transform_->Readable(); } -ScriptValue TextDecoderStream::writable(ScriptState* script_state, - ExceptionState& exception_state) const { - return transform_->Writable(script_state, exception_state); +WritableStream* TextDecoderStream::writable() const { + return transform_->Writable(); } void TextDecoderStream::Trace(Visitor* visitor) { @@ -184,12 +182,12 @@ void TextDecoderStream::Trace(Visitor* visitor) { TextDecoderStream::TextDecoderStream(ScriptState* script_state, const WTF::TextEncoding& encoding, - const TextDecoderOptions& options, + const TextDecoderOptions* options, ExceptionState& exception_state) - : transform_(new TransformStream()), + : transform_(MakeGarbageCollected<TransformStream>()), encoding_(encoding), - fatal_(options.fatal()), - ignore_bom_(options.ignoreBOM()) { + fatal_(options->fatal()), + ignore_bom_(options->ignoreBOM()) { if (!RetainWrapperDuringConstruction(this, script_state)) { exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError, "Cannot queue task to retain wrapper"); diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.h b/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.h index 5bf4d10fd40..bbfa4d4bee4 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.h +++ b/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.h @@ -15,9 +15,11 @@ namespace blink { class ExceptionState; +class ReadableStream; class ScriptState; class TextDecoderOptions; class Visitor; +class WritableStream; // Implements the TextDecoderStream interface as specified at // https://encoding.spec.whatwg.org/#interface-textdecoderstream. @@ -30,7 +32,7 @@ class TextDecoderStream final : public ScriptWrappable { public: static TextDecoderStream* Create(ScriptState*, const String& label, - const TextDecoderOptions&, + const TextDecoderOptions*, ExceptionState&); ~TextDecoderStream() override; @@ -38,8 +40,8 @@ class TextDecoderStream final : public ScriptWrappable { String encoding() const; bool fatal() const { return fatal_; } bool ignoreBOM() const { return ignore_bom_; } - ScriptValue readable(ScriptState*, ExceptionState&) const; - ScriptValue writable(ScriptState*, ExceptionState&) const; + ReadableStream* readable() const; + WritableStream* writable() const; void Trace(Visitor* visitor) override; @@ -48,7 +50,7 @@ class TextDecoderStream final : public ScriptWrappable { TextDecoderStream(ScriptState*, const WTF::TextEncoding&, - const TextDecoderOptions&, + const TextDecoderOptions*, ExceptionState&); const TraceWrapperMember<TransformStream> transform_; diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl b/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl index cf5600ceb1e..9fe584233f6 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl +++ b/chromium/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl @@ -14,6 +14,6 @@ readonly attribute DOMString encoding; readonly attribute boolean fatal; readonly attribute boolean ignoreBOM; - [CallWith=ScriptState, RaisesException] readonly attribute any readable; - [CallWith=ScriptState, RaisesException] readonly attribute any writable; + readonly attribute ReadableStream readable; + readonly attribute WritableStream writable; }; diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_encoder.cc b/chromium/third_party/blink/renderer/modules/encoding/text_encoder.cc index 3f9161f58db..85279a225d1 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_encoder.cc +++ b/chromium/third_party/blink/renderer/modules/encoding/text_encoder.cc @@ -41,7 +41,7 @@ namespace blink { TextEncoder* TextEncoder::Create(ExecutionContext* context, ExceptionState& exception_state) { WTF::TextEncoding encoding("UTF-8"); - return new TextEncoder(encoding); + return MakeGarbageCollected<TextEncoder>(encoding); } TextEncoder::TextEncoder(const WTF::TextEncoding& encoding) diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_encoder.h b/chromium/third_party/blink/renderer/modules/encoding/text_encoder.h index 0892f75d950..76e502c2c04 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_encoder.h +++ b/chromium/third_party/blink/renderer/modules/encoding/text_encoder.h @@ -49,6 +49,8 @@ class TextEncoder final : public ScriptWrappable { public: static TextEncoder* Create(ExecutionContext*, ExceptionState&); + + TextEncoder(const WTF::TextEncoding&); ~TextEncoder() override; // Implement the IDL @@ -56,8 +58,6 @@ class TextEncoder final : public ScriptWrappable { NotShared<DOMUint8Array> encode(const String&); private: - TextEncoder(const WTF::TextEncoding&); - WTF::TextEncoding encoding_; std::unique_ptr<WTF::TextCodec> codec_; }; diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.cc b/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.cc index 1c5aa8fa6e4..cedf987bc8c 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.cc +++ b/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.cc @@ -101,8 +101,8 @@ class TextEncoderStream::Transformer final : public TransformStreamTransformer { static DOMUint8Array* CreateDOMUint8ArrayFromTwoCStringsConcatenated( const CString& string1, const CString& string2) { - const size_t length1 = string1.length(); - const size_t length2 = string2.length(); + const wtf_size_t length1 = string1.length(); + const wtf_size_t length2 = string2.length(); DOMUint8Array* const array = DOMUint8Array::Create(length1 + length2); if (length1 > 0) memcpy(array->Data(), string1.data(), length1); @@ -144,8 +144,8 @@ class TextEncoderStream::Transformer final : public TransformStreamTransformer { } // Third argument is ignored, as above. - *result = - encoder_->Encode(begin, end - begin, WTF::kEntitiesForUnencodables); + *result = encoder_->Encode(begin, static_cast<wtf_size_t>(end - begin), + WTF::kEntitiesForUnencodables); DCHECK_NE(result->length(), 0u); return true; } @@ -170,14 +170,12 @@ String TextEncoderStream::encoding() const { return "utf-8"; } -ScriptValue TextEncoderStream::readable(ScriptState* script_state, - ExceptionState& exception_state) const { - return transform_->Readable(script_state, exception_state); +ReadableStream* TextEncoderStream::readable() const { + return transform_->Readable(); } -ScriptValue TextEncoderStream::writable(ScriptState* script_state, - ExceptionState& exception_state) const { - return transform_->Writable(script_state, exception_state); +WritableStream* TextEncoderStream::writable() const { + return transform_->Writable(); } void TextEncoderStream::Trace(Visitor* visitor) { @@ -187,7 +185,7 @@ void TextEncoderStream::Trace(Visitor* visitor) { TextEncoderStream::TextEncoderStream(ScriptState* script_state, ExceptionState& exception_state) - : transform_(new TransformStream()) { + : transform_(MakeGarbageCollected<TransformStream>()) { if (!RetainWrapperDuringConstruction(this, script_state)) { exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError, "Cannot queue task to retain wrapper"); diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.h b/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.h index 2aa28ddc7a4..1e34400212f 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.h +++ b/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.h @@ -14,7 +14,9 @@ namespace blink { class ExceptionState; +class ReadableStream; class ScriptState; +class WritableStream; class Visitor; // Implements the TextDecoderStream interface as specified at @@ -31,8 +33,8 @@ class TextEncoderStream final : public ScriptWrappable { // From text_encoder_stream.idl String encoding() const; - ScriptValue readable(ScriptState*, ExceptionState&) const; - ScriptValue writable(ScriptState*, ExceptionState&) const; + ReadableStream* readable() const; + WritableStream* writable() const; void Trace(Visitor* visitor) override; diff --git a/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.idl b/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.idl index 98ee518e622..73f60a89316 100644 --- a/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.idl +++ b/chromium/third_party/blink/renderer/modules/encoding/text_encoder_stream.idl @@ -12,6 +12,6 @@ RuntimeEnabled=EncodingStreams ] interface TextEncoderStream { readonly attribute DOMString encoding; - [CallWith=ScriptState, RaisesException] readonly attribute any readable; - [CallWith=ScriptState, RaisesException] readonly attribute any writable; + readonly attribute ReadableStream readable; + readonly attribute WritableStream writable; }; |