#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "services/webnn/public/mojom/webnn_context_provider.mojom-blink.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "services/webnn/public/mojom/webnn_context_provider.mojom-params-data.h"
#include "services/webnn/public/mojom/webnn_context_provider.mojom-shared-message-ids.h"
#include "services/webnn/public/mojom/webnn_context_provider.mojom-blink-import-headers.h"
#include "services/webnn/public/mojom/webnn_context_provider.mojom-blink-test-utils.h"
#include "mojo/public/cpp/bindings/lib/wtf_serialization.h"
namespace webnn::mojom::blink {
CreateContextOptions::CreateContextOptions()
: … { … }
CreateContextOptions::CreateContextOptions(
CreateContextOptions::Device device_in,
CreateContextOptions::PowerPreference power_preference_in,
uint8_t thread_count_hint_in)
: … { … }
CreateContextOptions::~CreateContextOptions() = default;
size_t CreateContextOptions::Hash(size_t seed) const { … }
void CreateContextOptions::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool CreateContextOptions::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
CreateContextSuccess::CreateContextSuccess()
: … { … }
CreateContextSuccess::CreateContextSuccess(
::mojo::PendingRemote<::webnn::mojom::blink::WebNNContext> context_remote_in,
const ::webnn::ContextProperties& context_properties_in,
const ::blink::WebNNContextToken& context_handle_in)
: … { … }
CreateContextSuccess::~CreateContextSuccess() = default;
void CreateContextSuccess::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool CreateContextSuccess::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
CreateContextResult::CreateContextResult() : … { … }
CreateContextResult::~CreateContextResult() { … }
void CreateContextResult::set_success(
CreateContextSuccessPtr success) { … }
void CreateContextResult::set_error(
::webnn::mojom::blink::ErrorPtr error) { … }
void CreateContextResult::DestroyActive() { … }
bool CreateContextResult::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char WebNNContextProvider::Name_[] = …;
WebNNContextProvider::IPCStableHashFunction WebNNContextProvider::MessageToMethodInfo_(mojo::Message& message) { … }
const char* WebNNContextProvider::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t WebNNContextProvider::CreateWebNNContext_Sym::IPCStableHash() { … }
# endif
bool WebNNContextProvider::RuntimeFeature_IsEnabled_(bool expected) { … }
class WebNNContextProvider_CreateWebNNContext_ForwardToCallback
: public mojo::MessageReceiver { … };
WebNNContextProviderProxy::WebNNContextProviderProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void WebNNContextProviderProxy::CreateWebNNContext(
CreateContextOptionsPtr in_options, CreateWebNNContextCallback callback) { … }
class WebNNContextProvider_CreateWebNNContext_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool WebNNContextProvider_CreateWebNNContext_ForwardToCallback::Accept(
mojo::Message* message) { … }
void WebNNContextProvider_CreateWebNNContext_ProxyToResponder::Run(
CreateContextResultPtr in_result) { … }
bool WebNNContextProviderStubDispatch::Accept(
WebNNContextProvider* impl,
mojo::Message* message) { … }
bool WebNNContextProviderStubDispatch::AcceptWithResponder(
WebNNContextProvider* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kWebNNContextProviderValidationInfo[] = …;
bool WebNNContextProviderRequestValidator::Accept(mojo::Message* message) { … }
bool WebNNContextProviderResponseValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::webnn::mojom::blink::CreateContextOptions::DataView, ::webnn::mojom::blink::CreateContextOptionsPtr>::Read(
::webnn::mojom::blink::CreateContextOptions::DataView input,
::webnn::mojom::blink::CreateContextOptionsPtr* output) { … }
bool StructTraits<::webnn::mojom::blink::CreateContextSuccess::DataView, ::webnn::mojom::blink::CreateContextSuccessPtr>::Read(
::webnn::mojom::blink::CreateContextSuccess::DataView input,
::webnn::mojom::blink::CreateContextSuccessPtr* output) { … }
bool UnionTraits<::webnn::mojom::blink::CreateContextResult::DataView, ::webnn::mojom::blink::CreateContextResultPtr>::Read(
::webnn::mojom::blink::CreateContextResult::DataView input,
::webnn::mojom::blink::CreateContextResultPtr* output) { … }
}
namespace webnn::mojom::blink {
void WebNNContextProviderInterceptorForTesting::CreateWebNNContext(CreateContextOptionsPtr options, CreateWebNNContextCallback callback) { … }
WebNNContextProviderAsyncWaiter::WebNNContextProviderAsyncWaiter(
WebNNContextProvider* proxy) : … { … }
WebNNContextProviderAsyncWaiter::~WebNNContextProviderAsyncWaiter() = default;
void WebNNContextProviderAsyncWaiter::CreateWebNNContext(
CreateContextOptionsPtr options, CreateContextResultPtr* out_result) { … }
CreateContextResultPtr WebNNContextProviderAsyncWaiter::CreateWebNNContext(
CreateContextOptionsPtr options) { … }
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif