#ifndef MOJO_CORE_FUZZING_UTILS_H_
#define MOJO_CORE_FUZZING_UTILS_H_
#include "base/task/single_thread_task_executor.h"
#include "mojo/core/channel.h"
#include "mojo/core/entrypoints.h"
#include "mojo/core/ipcz_driver/envelope.h"
namespace mojo::core {
class FakeChannelDelegate : public mojo::core::Channel::Delegate {
public:
explicit FakeChannelDelegate(bool is_ipcz_transport)
: is_ipcz_transport_(is_ipcz_transport) {}
~FakeChannelDelegate() override = default;
void OnChannelMessage(
const void* payload,
size_t payload_size,
std::vector<mojo::PlatformHandle> handles,
scoped_refptr<mojo::core::ipcz_driver::Envelope> envelope) override {}
void OnChannelError(mojo::core::Channel::Error error) override {}
bool IsIpczTransport() const override;
private:
const bool is_ipcz_transport_;
};
struct Environment {
Environment() : main_thread_task_executor(base::MessagePumpType::IO) {
mojo::core::InitializeCore();
}
base::SingleThreadTaskExecutor main_thread_task_executor;
};
}
#endif