blob: 592a8abaf8070aa67eaed01b4545eb5d99f3eeaa [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/public/common/tokens/tokens_mojom_traits.h"
#include "mojo/public/cpp/base/unguessable_token_mojom_traits.h"
namespace mojo {
////////////////////////////////////////////////////////////////////////////////
// FRAME TOKENS
/////////////
// FrameToken
// static
bool UnionTraits<blink::mojom::FrameTokenDataView, blink::FrameToken>::Read(
DataView input,
blink::FrameToken* output) {
switch (input.tag()) {
case DataView::Tag::kLocalFrameToken: {
blink::LocalFrameToken token;
bool ret = input.ReadLocalFrameToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kRemoteFrameToken: {
blink::RemoteFrameToken token;
bool ret = input.ReadRemoteFrameToken(&token);
*output = token;
return ret;
}
}
return false;
}
////////////////////////////////////////////////////////////////////////////////
// WORKER TOKENS
//////////////
// WorkerToken
// static
bool UnionTraits<blink::mojom::WorkerTokenDataView, blink::WorkerToken>::Read(
DataView input,
blink::WorkerToken* output) {
switch (input.tag()) {
case DataView::Tag::kDedicatedWorkerToken: {
blink::DedicatedWorkerToken token;
bool ret = input.ReadDedicatedWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kServiceWorkerToken: {
blink::ServiceWorkerToken token;
bool ret = input.ReadServiceWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kSharedWorkerToken: {
blink::SharedWorkerToken token;
bool ret = input.ReadSharedWorkerToken(&token);
*output = token;
return ret;
}
}
return false;
}
////////////////////////////////////////////////////////////////////////////////
// WORKLET TOKENS
//////////////
// WorkletToken
// static
bool UnionTraits<blink::mojom::WorkletTokenDataView, blink::WorkletToken>::Read(
DataView input,
blink::WorkletToken* output) {
switch (input.tag()) {
case DataView::Tag::kAnimationWorkletToken: {
blink::AnimationWorkletToken token;
bool ret = input.ReadAnimationWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kAudioWorkletToken: {
blink::AudioWorkletToken token;
bool ret = input.ReadAudioWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kLayoutWorkletToken: {
blink::LayoutWorkletToken token;
bool ret = input.ReadLayoutWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kPaintWorkletToken: {
blink::PaintWorkletToken token;
bool ret = input.ReadPaintWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kSharedStorageWorkletToken: {
blink::SharedStorageWorkletToken token;
bool ret = input.ReadSharedStorageWorkletToken(&token);
*output = token;
return ret;
}
}
return false;
}
////////////////////////////////////////////////////////////////////////////////
// OTHER TOKENS
//
// Keep this section last.
//
// If you have multiple tokens that make a thematic group, please lift them to
// their own section, in alphabetical order. If adding a new token here, please
// keep the following list in alphabetic order.
///////////////////////////////////
// ExecutionContextToken
// static
bool UnionTraits<
blink::mojom::ExecutionContextTokenDataView,
blink::ExecutionContextToken>::Read(DataView input,
blink::ExecutionContextToken* output) {
switch (input.tag()) {
case DataView::Tag::kLocalFrameToken: {
blink::LocalFrameToken token;
bool ret = input.ReadLocalFrameToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kDedicatedWorkerToken: {
blink::DedicatedWorkerToken token;
bool ret = input.ReadDedicatedWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kServiceWorkerToken: {
blink::ServiceWorkerToken token;
bool ret = input.ReadServiceWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kSharedWorkerToken: {
blink::SharedWorkerToken token;
bool ret = input.ReadSharedWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kAnimationWorkletToken: {
blink::AnimationWorkletToken token;
bool ret = input.ReadAnimationWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kAudioWorkletToken: {
blink::AudioWorkletToken token;
bool ret = input.ReadAudioWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kLayoutWorkletToken: {
blink::LayoutWorkletToken token;
bool ret = input.ReadLayoutWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kPaintWorkletToken: {
blink::PaintWorkletToken token;
bool ret = input.ReadPaintWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kSharedStorageWorkletToken: {
blink::SharedStorageWorkletToken token;
bool ret = input.ReadSharedStorageWorkletToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kShadowRealmToken: {
blink::ShadowRealmToken token;
bool ret = input.ReadShadowRealmToken(&token);
*output = token;
return ret;
}
}
return false;
}
// static
bool UnionTraits<blink::mojom::WebGPUExecutionContextTokenDataView,
blink::WebGPUExecutionContextToken>::
Read(DataView input, blink::WebGPUExecutionContextToken* output) {
switch (input.tag()) {
case DataView::Tag::kDocumentToken: {
blink::DocumentToken token;
bool ret = input.ReadDocumentToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kDedicatedWorkerToken: {
blink::DedicatedWorkerToken token;
bool ret = input.ReadDedicatedWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kSharedWorkerToken: {
blink::SharedWorkerToken token;
bool ret = input.ReadSharedWorkerToken(&token);
*output = token;
return ret;
}
case DataView::Tag::kServiceWorkerToken: {
blink::ServiceWorkerToken token;
bool ret = input.ReadServiceWorkerToken(&token);
*output = token;
return ret;
}
}
return false;
}
} // namespace mojo