diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-09-07 13:12:05 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-11-09 10:02:59 +0000 |
commit | 33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (patch) | |
tree | f6af110909c79b2759136554f1143d8b0572af0a /chromium/gin/array_buffer.h | |
parent | 7d2c5d177e9813077a621df8d18c0deda73099b3 (diff) | |
download | qtwebengine-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.h | 21 |
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_ |