mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add a shared memory variant of CefProcessMessage (fixes issue #3126)
CefSharedProcessMessageBuilder supports creation of a CefProcessMessage backed by a CefSharedMemoryRegion. Performance tests comparing the existing ArgumentList approach and the new SharedMemoryRegion approach have been added to cefclient at http://tests/ipc_performance. CefMessageRouter has been updated to use SharedMemoryRegion as transport for larger message payloads. The threshold is configurable via |CefMessageRouterConfig.message_size_threshold|. To test: run `ceftests --gtest_filter=SendSharedProcessMessageTest.*:SharedProcessMessageTest.*:MessageRouterTest.Threshold*`
This commit is contained in:
committed by
Marshall Greenblatt
parent
a931d49f3e
commit
81e892d19e
47
tests/shared/common/binary_value_utils.h
Normal file
47
tests/shared/common/binary_value_utils.h
Normal file
@ -0,0 +1,47 @@
|
||||
// Copyright (c) 2022 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.
|
||||
|
||||
#ifndef CEF_TESTS_SHARED_COMMON_BINARY_VALUE_UTILS
|
||||
#define CEF_TESTS_SHARED_COMMON_BINARY_VALUE_UTILS
|
||||
#pragma once
|
||||
|
||||
#include <chrono>
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
#include "include/cef_values.h"
|
||||
|
||||
namespace bv_utils {
|
||||
|
||||
extern const char kTestSendProcessMessage[];
|
||||
extern const char kTestSendSMRProcessMessage[];
|
||||
|
||||
using TimePoint = std::chrono::high_resolution_clock::time_point;
|
||||
using Duration = std::chrono::high_resolution_clock::duration;
|
||||
|
||||
struct RendererMessage {
|
||||
int test_id;
|
||||
TimePoint start_time;
|
||||
};
|
||||
|
||||
struct BrowserMessage {
|
||||
int test_id;
|
||||
Duration duration;
|
||||
TimePoint start_time;
|
||||
};
|
||||
|
||||
TimePoint Now();
|
||||
|
||||
CefRefPtr<CefBinaryValue> CreateCefBinaryValue(
|
||||
const std::vector<uint8_t>& data);
|
||||
|
||||
RendererMessage GetRendererMsgFromBinary(
|
||||
const CefRefPtr<CefBinaryValue>& value);
|
||||
|
||||
BrowserMessage GetBrowserMsgFromBinary(const CefRefPtr<CefBinaryValue>& value);
|
||||
|
||||
std::string ToMilliString(const Duration& duration);
|
||||
|
||||
} // namespace bv_utils
|
||||
|
||||
#endif // CEF_TESTS_SHARED_COMMON_BINARY_VALUE_UTILS
|
Reference in New Issue
Block a user