v8_util.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright (c) 2020 Slack Technologies, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #ifndef ELECTRON_SHELL_COMMON_V8_VALUE_SERIALIZER_H_
  5. #define ELECTRON_SHELL_COMMON_V8_VALUE_SERIALIZER_H_
  6. #include "base/containers/span.h"
  7. #include "ui/gfx/image/image_skia_rep.h"
  8. namespace v8 {
  9. class ArrayBufferView;
  10. class Isolate;
  11. template <class T>
  12. class Local;
  13. class Value;
  14. } // namespace v8
  15. namespace blink {
  16. struct CloneableMessage;
  17. }
  18. namespace electron {
  19. bool SerializeV8Value(v8::Isolate* isolate,
  20. v8::Local<v8::Value> value,
  21. blink::CloneableMessage* out);
  22. v8::Local<v8::Value> DeserializeV8Value(v8::Isolate* isolate,
  23. const blink::CloneableMessage& in);
  24. v8::Local<v8::Value> DeserializeV8Value(v8::Isolate* isolate,
  25. base::span<const uint8_t> data);
  26. namespace util {
  27. [[nodiscard]] base::span<uint8_t> as_byte_span(
  28. v8::Local<v8::ArrayBufferView> abv);
  29. } // namespace util
  30. } // namespace electron
  31. #endif // ELECTRON_SHELL_COMMON_V8_VALUE_SERIALIZER_H_