| Index: Source/bindings/dart/custom/DartWebSocketCustom.cpp
|
| diff --git a/Source/bindings/dart/custom/DartWebSocketCustom.cpp b/Source/bindings/dart/custom/DartWebSocketCustom.cpp
|
| index 53ace5fd353ad4540267886761be226f71d54bd8..9c29c73be3101e0dc737480070c2710d56e7aaf6 100644
|
| --- a/Source/bindings/dart/custom/DartWebSocketCustom.cpp
|
| +++ b/Source/bindings/dart/custom/DartWebSocketCustom.cpp
|
| @@ -81,6 +81,114 @@ fail:
|
| ASSERT_NOT_REACHED();
|
| }
|
|
|
| +void sendByteBufferCallback(Dart_NativeArguments args)
|
| +{
|
| + DartApiScope dartApiScope;
|
| + Dart_Handle exception = 0;
|
| + {
|
| + WebSocket* receiver = DartDOMWrapper::receiver<WebSocket>(args);
|
| + Dart_Handle dataHandle = Dart_GetNativeArgument(args, 1);
|
| +
|
| + RefPtr<ArrayBufferView> data = DartUtilities::dartToArrayBufferView(dataHandle, exception);
|
| + if (exception)
|
| + goto fail;
|
| +
|
| + ExceptionCode ec = 0;
|
| + receiver->send(data.get(), ec);
|
| +
|
| + if (UNLIKELY(ec)) {
|
| + exception = DartDOMWrapper::exceptionCodeToDartException(ec);
|
| + goto fail;
|
| + }
|
| + return;
|
| + }
|
| +
|
| +fail:
|
| + Dart_ThrowException(exception);
|
| + ASSERT_NOT_REACHED();
|
| +}
|
| +
|
| +void sendTypedDataCallback(Dart_NativeArguments args)
|
| +{
|
| + DartApiScope dartApiScope;
|
| + Dart_Handle exception = 0;
|
| + {
|
| + WebSocket* receiver = DartDOMWrapper::receiver<WebSocket>(args);
|
| + Dart_Handle dataHandle = Dart_GetNativeArgument(args, 1);
|
| +
|
| + RefPtr<ArrayBuffer> data = DartUtilities::dartToArrayBuffer(dataHandle, exception);
|
| + if (exception)
|
| + goto fail;
|
| +
|
| + ExceptionCode ec = 0;
|
| + receiver->send(data.get(), ec);
|
| +
|
| + if (UNLIKELY(ec)) {
|
| + exception = DartDOMWrapper::exceptionCodeToDartException(ec);
|
| + goto fail;
|
| + }
|
| + return;
|
| + }
|
| +
|
| +fail:
|
| + Dart_ThrowException(exception);
|
| + ASSERT_NOT_REACHED();
|
| +}
|
| +
|
| +void sendBlobCallback(Dart_NativeArguments args)
|
| +{
|
| + DartApiScope dartApiScope;
|
| + Dart_Handle exception = 0;
|
| + {
|
| + WebSocket* receiver = DartDOMWrapper::receiver<WebSocket>(args);
|
| + Dart_Handle dataHandle = Dart_GetNativeArgument(args, 1);
|
| +
|
| + Blob* data = DartBlob::toNative(dataHandle, exception);
|
| + if (exception)
|
| + goto fail;
|
| +
|
| + ExceptionCode ec = 0;
|
| + receiver->send(data, ec);
|
| +
|
| + if (UNLIKELY(ec)) {
|
| + exception = DartDOMWrapper::exceptionCodeToDartException(ec);
|
| + goto fail;
|
| + }
|
| + return;
|
| + }
|
| +
|
| +fail:
|
| + Dart_ThrowException(exception);
|
| + ASSERT_NOT_REACHED();
|
| +}
|
| +
|
| +void sendStringCallback(Dart_NativeArguments args)
|
| +{
|
| + DartApiScope dartApiScope;
|
| + Dart_Handle exception = 0;
|
| + {
|
| + WebSocket* receiver = DartDOMWrapper::receiver<WebSocket>(args);
|
| + Dart_Handle dataHandle = Dart_GetNativeArgument(args, 1);
|
| +
|
| + DartStringAdapter data = DartUtilities::dartToString(dataHandle, exception);
|
| + if (exception)
|
| + goto fail;
|
| +
|
| + ExceptionCode ec = 0;
|
| + receiver->send(data, ec);
|
| +
|
| + if (UNLIKELY(ec)) {
|
| + exception = DartDOMWrapper::exceptionCodeToDartException(ec);
|
| + goto fail;
|
| + }
|
| + return;
|
| + }
|
| +
|
| +fail:
|
| + Dart_ThrowException(exception);
|
| + ASSERT_NOT_REACHED();
|
| +}
|
| +
|
| }
|
|
|
| }
|
|
|