summaryrefslogtreecommitdiff
path: root/chromium/gin/array_buffer.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-09-07 13:12:05 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-09 10:02:59 +0000
commit33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (patch)
treef6af110909c79b2759136554f1143d8b0572af0a /chromium/gin/array_buffer.h
parent7d2c5d177e9813077a621df8d18c0deda73099b3 (diff)
downloadqtwebengine-chromium-33fc33aa94d4add0878ec30dc818e34e1dd3cc2a.tar.gz
BASELINE: Update Chromium to 104.0.5112.120
Change-Id: I5d2726c2ab018d75d055739b6ba64317904f05bb Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/438935 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/gin/array_buffer.h')
-rw-r--r--chromium/gin/array_buffer.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/chromium/gin/array_buffer.h b/chromium/gin/array_buffer.h
index 8dfcf65b5b5..ad51ab9cd7f 100644
--- a/chromium/gin/array_buffer.h
+++ b/chromium/gin/array_buffer.h
@@ -8,8 +8,10 @@
#include <stddef.h>
#include <stdint.h>
+#include "base/allocator/partition_allocator/partition_alloc.h"
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
+#include "base/memory/shared_memory_mapper.h"
#include "gin/converter.h"
#include "gin/gin_export.h"
#include "v8/include/v8-array-buffer.h"
@@ -24,6 +26,23 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
void Free(void* data, size_t length) override;
GIN_EXPORT static ArrayBufferAllocator* SharedInstance();
+
+ private:
+ friend class V8Initializer;
+
+ void* AllocateInternal(size_t length, unsigned int flags);
+
+ // Initialize the PartitionAlloc partition from which instances of this class
+ // allocate memory. This is called after initializing V8 since, when enabled,
+ // the V8 sandbox must be initialized first.
+ static void InitializePartition();
+
+ // The PartitionAlloc partition that instances of this class allocate memory
+ // chunks from. When the V8 sandbox is enabled, this partition must be placed
+ // inside of it. For that, PA's ConfigurablePool is created inside the V8
+ // sandbox during initialization of V8, and this partition is then placed
+ // inside the configurable pool during InitializePartition().
+ static base::ThreadSafePartitionRoot* partition_;
};
class GIN_EXPORT ArrayBuffer {
@@ -76,6 +95,8 @@ struct GIN_EXPORT Converter<ArrayBufferView> {
ArrayBufferView* out);
};
+GIN_EXPORT base::SharedMemoryMapper* GetSharedMemoryMapperForArrayBuffers();
+
} // namespace gin
#endif // GIN_ARRAY_BUFFER_H_