mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add support for V8 ArrayBuffers (issue #244)
This commit is contained in:
committed by
Marshall Greenblatt
parent
bb28b85bdd
commit
4315f3b724
70
libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.cc
Normal file
70
libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.cc
Normal file
@ -0,0 +1,70 @@
|
||||
// Copyright (c) 2018 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool. If making changes by
|
||||
// hand only do so within the body of existing method and function
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=a0e352ab964b29c7b1aa22791ee38a81cd418a99$
|
||||
//
|
||||
|
||||
#include "libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.h"
|
||||
|
||||
namespace {
|
||||
|
||||
// MEMBER FUNCTIONS - Body may be edited by hand.
|
||||
|
||||
void CEF_CALLBACK v8array_buffer_release_callback_release_buffer(
|
||||
struct _cef_v8array_buffer_release_callback_t* self,
|
||||
void* buffer) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: buffer; type: simple_byaddr
|
||||
DCHECK(buffer);
|
||||
if (!buffer)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefV8ArrayBufferReleaseCallbackCppToC::Get(self)->ReleaseBuffer(buffer);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
// CONSTRUCTOR - Do not edit by hand.
|
||||
|
||||
CefV8ArrayBufferReleaseCallbackCppToC::CefV8ArrayBufferReleaseCallbackCppToC() {
|
||||
GetStruct()->release_buffer = v8array_buffer_release_callback_release_buffer;
|
||||
}
|
||||
|
||||
template <>
|
||||
CefRefPtr<CefV8ArrayBufferReleaseCallback>
|
||||
CefCppToCRefCounted<CefV8ArrayBufferReleaseCallbackCppToC,
|
||||
CefV8ArrayBufferReleaseCallback,
|
||||
cef_v8array_buffer_release_callback_t>::
|
||||
UnwrapDerived(CefWrapperType type,
|
||||
cef_v8array_buffer_release_callback_t* s) {
|
||||
NOTREACHED() << "Unexpected class type: " << type;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if DCHECK_IS_ON()
|
||||
template <>
|
||||
base::AtomicRefCount CefCppToCRefCounted<
|
||||
CefV8ArrayBufferReleaseCallbackCppToC,
|
||||
CefV8ArrayBufferReleaseCallback,
|
||||
cef_v8array_buffer_release_callback_t>::DebugObjCt ATOMIC_DECLARATION;
|
||||
#endif
|
||||
|
||||
template <>
|
||||
CefWrapperType
|
||||
CefCppToCRefCounted<CefV8ArrayBufferReleaseCallbackCppToC,
|
||||
CefV8ArrayBufferReleaseCallback,
|
||||
cef_v8array_buffer_release_callback_t>::kWrapperType =
|
||||
WT_V8ARRAY_BUFFER_RELEASE_CALLBACK;
|
37
libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.h
Normal file
37
libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.h
Normal file
@ -0,0 +1,37 @@
|
||||
// Copyright (c) 2018 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool. If making changes by
|
||||
// hand only do so within the body of existing method and function
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=61fe643dbdefcacb37612d6611d5b3cd0d0f731a$
|
||||
//
|
||||
|
||||
#ifndef CEF_LIBCEF_DLL_CPPTOC_V8ARRAY_BUFFER_RELEASE_CALLBACK_CPPTOC_H_
|
||||
#define CEF_LIBCEF_DLL_CPPTOC_V8ARRAY_BUFFER_RELEASE_CALLBACK_CPPTOC_H_
|
||||
#pragma once
|
||||
|
||||
#if !defined(WRAPPING_CEF_SHARED)
|
||||
#error This file can be included wrapper-side only
|
||||
#endif
|
||||
|
||||
#include "include/capi/cef_v8_capi.h"
|
||||
#include "include/cef_v8.h"
|
||||
#include "libcef_dll/cpptoc/cpptoc_ref_counted.h"
|
||||
|
||||
// Wrap a C++ class with a C structure.
|
||||
// This class may be instantiated and accessed wrapper-side only.
|
||||
class CefV8ArrayBufferReleaseCallbackCppToC
|
||||
: public CefCppToCRefCounted<CefV8ArrayBufferReleaseCallbackCppToC,
|
||||
CefV8ArrayBufferReleaseCallback,
|
||||
cef_v8array_buffer_release_callback_t> {
|
||||
public:
|
||||
CefV8ArrayBufferReleaseCallbackCppToC();
|
||||
};
|
||||
|
||||
#endif // CEF_LIBCEF_DLL_CPPTOC_V8ARRAY_BUFFER_RELEASE_CALLBACK_CPPTOC_H_
|
@ -9,7 +9,7 @@
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=d4baeb8853a8d33bde68e82a87e73e63fefb6e59$
|
||||
// $hash=b8c41c5cff5d308ad0ecbeafb38f12fae4ce06eb$
|
||||
//
|
||||
|
||||
#include "libcef_dll/cpptoc/v8value_cpptoc.h"
|
||||
@ -17,6 +17,7 @@
|
||||
#include "libcef_dll/cpptoc/v8exception_cpptoc.h"
|
||||
#include "libcef_dll/ctocpp/base_ref_counted_ctocpp.h"
|
||||
#include "libcef_dll/ctocpp/v8accessor_ctocpp.h"
|
||||
#include "libcef_dll/ctocpp/v8array_buffer_release_callback_ctocpp.h"
|
||||
#include "libcef_dll/ctocpp/v8handler_ctocpp.h"
|
||||
#include "libcef_dll/ctocpp/v8interceptor_ctocpp.h"
|
||||
#include "libcef_dll/transfer_util.h"
|
||||
@ -139,6 +140,30 @@ CEF_EXPORT cef_v8value_t* cef_v8value_create_array(int length) {
|
||||
return CefV8ValueCppToC::Wrap(_retval);
|
||||
}
|
||||
|
||||
CEF_EXPORT cef_v8value_t* cef_v8value_create_array_buffer(
|
||||
void* buffer,
|
||||
size_t length,
|
||||
cef_v8array_buffer_release_callback_t* release_callback) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Verify param: buffer; type: simple_byaddr
|
||||
DCHECK(buffer);
|
||||
if (!buffer)
|
||||
return NULL;
|
||||
// Verify param: release_callback; type: refptr_diff
|
||||
DCHECK(release_callback);
|
||||
if (!release_callback)
|
||||
return NULL;
|
||||
|
||||
// Execute
|
||||
CefRefPtr<CefV8Value> _retval = CefV8Value::CreateArrayBuffer(
|
||||
buffer, length,
|
||||
CefV8ArrayBufferReleaseCallbackCToCpp::Wrap(release_callback));
|
||||
|
||||
// Return type: refptr_same
|
||||
return CefV8ValueCppToC::Wrap(_retval);
|
||||
}
|
||||
|
||||
CEF_EXPORT cef_v8value_t* cef_v8value_create_function(
|
||||
const cef_string_t* name,
|
||||
cef_v8handler_t* handler) {
|
||||
@ -319,6 +344,20 @@ int CEF_CALLBACK v8value_is_array(struct _cef_v8value_t* self) {
|
||||
return _retval;
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8value_is_array_buffer(struct _cef_v8value_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
// Execute
|
||||
bool _retval = CefV8ValueCppToC::Get(self)->IsArrayBuffer();
|
||||
|
||||
// Return type: bool
|
||||
return _retval;
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8value_is_function(struct _cef_v8value_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
@ -806,6 +845,36 @@ int CEF_CALLBACK v8value_get_array_length(struct _cef_v8value_t* self) {
|
||||
return _retval;
|
||||
}
|
||||
|
||||
cef_v8array_buffer_release_callback_t* CEF_CALLBACK
|
||||
v8value_get_array_buffer_release_callback(struct _cef_v8value_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return NULL;
|
||||
|
||||
// Execute
|
||||
CefRefPtr<CefV8ArrayBufferReleaseCallback> _retval =
|
||||
CefV8ValueCppToC::Get(self)->GetArrayBufferReleaseCallback();
|
||||
|
||||
// Return type: refptr_diff
|
||||
return CefV8ArrayBufferReleaseCallbackCToCpp::Unwrap(_retval);
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8value_neuter_array_buffer(struct _cef_v8value_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
// Execute
|
||||
bool _retval = CefV8ValueCppToC::Get(self)->NeuterArrayBuffer();
|
||||
|
||||
// Return type: bool
|
||||
return _retval;
|
||||
}
|
||||
|
||||
cef_string_userfree_t CEF_CALLBACK
|
||||
v8value_get_function_name(struct _cef_v8value_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
@ -928,6 +997,7 @@ CefV8ValueCppToC::CefV8ValueCppToC() {
|
||||
GetStruct()->is_string = v8value_is_string;
|
||||
GetStruct()->is_object = v8value_is_object;
|
||||
GetStruct()->is_array = v8value_is_array;
|
||||
GetStruct()->is_array_buffer = v8value_is_array_buffer;
|
||||
GetStruct()->is_function = v8value_is_function;
|
||||
GetStruct()->is_same = v8value_is_same;
|
||||
GetStruct()->get_bool_value = v8value_get_bool_value;
|
||||
@ -959,6 +1029,9 @@ CefV8ValueCppToC::CefV8ValueCppToC() {
|
||||
GetStruct()->adjust_externally_allocated_memory =
|
||||
v8value_adjust_externally_allocated_memory;
|
||||
GetStruct()->get_array_length = v8value_get_array_length;
|
||||
GetStruct()->get_array_buffer_release_callback =
|
||||
v8value_get_array_buffer_release_callback;
|
||||
GetStruct()->neuter_array_buffer = v8value_neuter_array_buffer;
|
||||
GetStruct()->get_function_name = v8value_get_function_name;
|
||||
GetStruct()->get_function_handler = v8value_get_function_handler;
|
||||
GetStruct()->execute_function = v8value_execute_function;
|
||||
|
Reference in New Issue
Block a user