Skip to content

Commit

Permalink
Mojo C++ bindings: change the first template parameter of StructTrait…
Browse files Browse the repository at this point in the history
…s and UnionTraits.

Previously the type is the auto-generated struct/union type. This CL changes it to the corresponding DataView type.

The reason of doing this? The DataView type is shared by the chromium and blink variants of generated bindings, while the generated struct/union type is not. By changing StructTraits/UnionTraits to be specialized by the DataView type, users will be able to use the same StructTraits specialization in both variants.

BUG=632061
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2253293002
Cr-Commit-Position: refs/heads/master@{#413931}
  • Loading branch information
yzshen authored and Commit bot committed Aug 24, 2016
1 parent 9426741 commit 1764bb9
Show file tree
Hide file tree
Showing 81 changed files with 316 additions and 263 deletions.
2 changes: 1 addition & 1 deletion cc/ipc/begin_frame_args_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::BeginFrameArgs, cc::BeginFrameArgs> {
struct StructTraits<cc::mojom::BeginFrameArgsDataView, cc::BeginFrameArgs> {
static base::TimeTicks frame_time(const cc::BeginFrameArgs& args) {
return args.frame_time;
}
Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/compositor_frame_metadata_struct_traits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

// static
bool StructTraits<cc::mojom::CompositorFrameMetadata,
bool StructTraits<cc::mojom::CompositorFrameMetadataDataView,
cc::CompositorFrameMetadata>::
Read(cc::mojom::CompositorFrameMetadataDataView data,
cc::CompositorFrameMetadata* out) {
Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/compositor_frame_metadata_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::CompositorFrameMetadata,
struct StructTraits<cc::mojom::CompositorFrameMetadataDataView,
cc::CompositorFrameMetadata> {
static float device_scale_factor(
const cc::CompositorFrameMetadata& metadata) {
Expand Down
7 changes: 4 additions & 3 deletions cc/ipc/compositor_frame_struct_traits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
namespace mojo {

// static
bool StructTraits<cc::mojom::CompositorFrame, cc::CompositorFrame>::Read(
cc::mojom::CompositorFrameDataView data,
cc::CompositorFrame* out) {
bool StructTraits<cc::mojom::CompositorFrameDataView,
cc::CompositorFrame>::Read(cc::mojom::CompositorFrameDataView
data,
cc::CompositorFrame* out) {
if (!data.ReadMetadata(&out->metadata))
return false;

Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/compositor_frame_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::CompositorFrame, cc::CompositorFrame> {
struct StructTraits<cc::mojom::CompositorFrameDataView, cc::CompositorFrame> {
static const cc::CompositorFrameMetadata& metadata(
const cc::CompositorFrame& input) {
return input.metadata;
Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/filter_operation_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ cc::FilterOperation::FilterType MojoFilterTypeToCC(
using FilterOperationMatrix = CArray<float>;

template <>
struct StructTraits<cc::mojom::FilterOperation, cc::FilterOperation> {
struct StructTraits<cc::mojom::FilterOperationDataView, cc::FilterOperation> {
static cc::mojom::FilterType type(const cc::FilterOperation& op) {
return CCFilterTypeToMojo(op.type());
}
Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/filter_operations_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::FilterOperations, cc::FilterOperations> {
struct StructTraits<cc::mojom::FilterOperationsDataView, cc::FilterOperations> {
static const std::vector<cc::FilterOperation>& operations(
const cc::FilterOperations& operations) {
return operations.operations();
Expand Down
18 changes: 9 additions & 9 deletions cc/ipc/quads_struct_traits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ cc::DrawQuad* AllocateAndConstruct(
}

// static
bool StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::DebugBorderQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::DebugBorderQuadStateDataView data,
cc::DrawQuad* out) {
cc::DebugBorderDrawQuad* quad = static_cast<cc::DebugBorderDrawQuad*>(out);
Expand All @@ -60,7 +60,7 @@ bool StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad>::Read(
}

// static
bool StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::RenderPassQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::RenderPassQuadStateDataView data,
cc::DrawQuad* out) {
cc::RenderPassDrawQuad* quad = static_cast<cc::RenderPassDrawQuad*>(out);
Expand All @@ -76,7 +76,7 @@ bool StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad>::Read(
}

// static
bool StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::SolidColorQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::SolidColorQuadStateDataView data,
cc::DrawQuad* out) {
cc::SolidColorDrawQuad* quad = static_cast<cc::SolidColorDrawQuad*>(out);
Expand All @@ -86,7 +86,7 @@ bool StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad>::Read(
}

// static
bool StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::StreamVideoQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::StreamVideoQuadStateDataView data,
cc::DrawQuad* out) {
cc::StreamVideoDrawQuad* quad = static_cast<cc::StreamVideoDrawQuad*>(out);
Expand All @@ -100,15 +100,15 @@ bool StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad>::Read(
}

// static
bool StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::SurfaceQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::SurfaceQuadStateDataView data,
cc::DrawQuad* out) {
cc::SurfaceDrawQuad* quad = static_cast<cc::SurfaceDrawQuad*>(out);
return data.ReadSurface(&quad->surface_id);
}

// static
bool StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::TextureQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::TextureQuadStateDataView data,
cc::DrawQuad* out) {
cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out);
Expand All @@ -132,7 +132,7 @@ bool StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad>::Read(
}

// static
bool StructTraits<cc::mojom::TileQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::TileQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::TileQuadStateDataView data,
cc::DrawQuad* out) {
cc::TileDrawQuad* quad = static_cast<cc::TileDrawQuad*>(out);
Expand Down Expand Up @@ -182,7 +182,7 @@ bool EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace>::
}

// static
bool StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::YUVVideoQuadStateDataView, cc::DrawQuad>::Read(
cc::mojom::YUVVideoQuadStateDataView data,
cc::DrawQuad* out) {
cc::YUVVideoDrawQuad* quad = static_cast<cc::YUVVideoDrawQuad*>(out);
Expand Down Expand Up @@ -218,7 +218,7 @@ bool StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad>::Read(
}

// static
bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read(
bool StructTraits<cc::mojom::DrawQuadDataView, cc::DrawQuad>::Read(
cc::mojom::DrawQuadDataView data,
cc::DrawQuad* out) {
if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) ||
Expand Down
22 changes: 11 additions & 11 deletions cc/ipc/quads_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ cc::DrawQuad* AllocateAndConstruct(
cc::QuadList* list);

template <>
struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
struct UnionTraits<cc::mojom::DrawQuadStateDataView, cc::DrawQuad> {
static cc::mojom::DrawQuadState::DataView::Tag GetTag(
const cc::DrawQuad& quad) {
switch (quad.material) {
Expand Down Expand Up @@ -115,7 +115,7 @@ struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::DebugBorderQuadStateDataView, cc::DrawQuad> {
static uint32_t color(const cc::DrawQuad& input) {
const cc::DebugBorderDrawQuad* quad =
cc::DebugBorderDrawQuad::MaterialCast(&input);
Expand All @@ -133,7 +133,7 @@ struct StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::RenderPassQuadStateDataView, cc::DrawQuad> {
static const cc::RenderPassId& render_pass_id(const cc::DrawQuad& input) {
const cc::RenderPassDrawQuad* quad =
cc::RenderPassDrawQuad::MaterialCast(&input);
Expand Down Expand Up @@ -182,7 +182,7 @@ struct StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::SolidColorQuadStateDataView, cc::DrawQuad> {
static uint32_t color(const cc::DrawQuad& input) {
const cc::SolidColorDrawQuad* quad =
cc::SolidColorDrawQuad::MaterialCast(&input);
Expand All @@ -200,7 +200,7 @@ struct StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::StreamVideoQuadStateDataView, cc::DrawQuad> {
static uint32_t resource_id(const cc::DrawQuad& input) {
const cc::StreamVideoDrawQuad* quad =
cc::StreamVideoDrawQuad::MaterialCast(&input);
Expand All @@ -225,7 +225,7 @@ struct StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::SurfaceQuadStateDataView, cc::DrawQuad> {
static const cc::SurfaceId& surface(const cc::DrawQuad& input) {
const cc::SurfaceDrawQuad* quad = cc::SurfaceDrawQuad::MaterialCast(&input);
return quad->surface_id;
Expand All @@ -235,7 +235,7 @@ struct StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::TextureQuadStateDataView, cc::DrawQuad> {
static uint32_t resource_id(const cc::DrawQuad& input) {
const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
return quad->resource_id();
Expand Down Expand Up @@ -285,7 +285,7 @@ struct StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad> {
};

template <>
struct StructTraits<cc::mojom::TileQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::TileQuadStateDataView, cc::DrawQuad> {
static const gfx::RectF& tex_coord_rect(const cc::DrawQuad& input) {
const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input);
return quad->tex_coord_rect;
Expand Down Expand Up @@ -323,7 +323,7 @@ struct EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace> {
};

template <>
struct StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad> {
struct StructTraits<cc::mojom::YUVVideoQuadStateDataView, cc::DrawQuad> {
static const gfx::RectF& ya_tex_coord_rect(const cc::DrawQuad& input) {
const cc::YUVVideoDrawQuad* quad =
cc::YUVVideoDrawQuad::MaterialCast(&input);
Expand Down Expand Up @@ -407,7 +407,7 @@ struct DrawQuadWithSharedQuadState {
};

template <>
struct StructTraits<cc::mojom::DrawQuad, DrawQuadWithSharedQuadState> {
struct StructTraits<cc::mojom::DrawQuadDataView, DrawQuadWithSharedQuadState> {
static const gfx::Rect& rect(const DrawQuadWithSharedQuadState& input) {
return input.quad->rect;
}
Expand Down Expand Up @@ -438,7 +438,7 @@ struct StructTraits<cc::mojom::DrawQuad, DrawQuadWithSharedQuadState> {

// This StructTraits is only used for deserialization within RenderPasses.
template <>
struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> {
struct StructTraits<cc::mojom::DrawQuadDataView, cc::DrawQuad> {
static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out);
};

Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/render_pass_id_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::RenderPassId, cc::RenderPassId> {
struct StructTraits<cc::mojom::RenderPassIdDataView, cc::RenderPassId> {
static int layer_id(const cc::RenderPassId& id) { return id.layer_id; }

static uint32_t index(const cc::RenderPassId& id) { return id.index; }
Expand Down
7 changes: 4 additions & 3 deletions cc/ipc/render_pass_struct_traits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
namespace mojo {

// static
bool StructTraits<cc::mojom::RenderPass, std::unique_ptr<cc::RenderPass>>::Read(
cc::mojom::RenderPassDataView data,
std::unique_ptr<cc::RenderPass>* out) {
bool StructTraits<cc::mojom::RenderPassDataView,
std::unique_ptr<cc::RenderPass>>::
Read(cc::mojom::RenderPassDataView data,
std::unique_ptr<cc::RenderPass>* out) {
*out = cc::RenderPass::Create();
if (!data.ReadId(&(*out)->id) || !data.ReadOutputRect(&(*out)->output_rect) ||
!data.ReadDamageRect(&(*out)->damage_rect) ||
Expand Down
3 changes: 2 additions & 1 deletion cc/ipc/render_pass_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::RenderPass, std::unique_ptr<cc::RenderPass>> {
struct StructTraits<cc::mojom::RenderPassDataView,
std::unique_ptr<cc::RenderPass>> {
static const cc::RenderPassId& id(
const std::unique_ptr<cc::RenderPass>& input) {
return input->id;
Expand Down
2 changes: 1 addition & 1 deletion cc/ipc/returned_resource_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::ReturnedResource, cc::ReturnedResource> {
struct StructTraits<cc::mojom::ReturnedResourceDataView, cc::ReturnedResource> {
static uint32_t id(const cc::ReturnedResource& resource) {
return resource.id;
}
Expand Down
3 changes: 2 additions & 1 deletion cc/ipc/selection_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::Selection, cc::Selection<gfx::SelectionBound>> {
struct StructTraits<cc::mojom::SelectionDataView,
cc::Selection<gfx::SelectionBound>> {
static const gfx::SelectionBound& start(
const cc::Selection<gfx::SelectionBound>& selection) {
return selection.start;
Expand Down
4 changes: 2 additions & 2 deletions cc/ipc/shared_quad_state_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ struct OptSharedQuadState {
};

template <>
struct StructTraits<cc::mojom::SharedQuadState, OptSharedQuadState> {
struct StructTraits<cc::mojom::SharedQuadStateDataView, OptSharedQuadState> {
static bool IsNull(const OptSharedQuadState& input) { return !input.sqs; }

static void SetToNull(OptSharedQuadState* output) { output->sqs = nullptr; }
Expand Down Expand Up @@ -56,7 +56,7 @@ struct StructTraits<cc::mojom::SharedQuadState, OptSharedQuadState> {
};

template <>
struct StructTraits<cc::mojom::SharedQuadState, cc::SharedQuadState> {
struct StructTraits<cc::mojom::SharedQuadStateDataView, cc::SharedQuadState> {
static const gfx::Transform& quad_to_target_transform(
const cc::SharedQuadState& sqs) {
return sqs.quad_to_target_transform;
Expand Down
8 changes: 4 additions & 4 deletions cc/ipc/surface_id_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

namespace mojo {

// This template is fully specialized as cc::mojom::SurfaceId and
// as cc::mojom::blink::SurfaceId, in generated .mojom.h and .mojom-blink.h
// respectively.
// This template is fully specialized as cc::mojom::SurfaceIdDataView and
// as cc::mojom::blink::SurfaceIdDataView, in generated .mojom.h and
// .mojom-blink.h respectively.
template <typename T>
struct StructTraits<T, cc::SurfaceId> {
static uint32_t client_id(const cc::SurfaceId& id) { return id.client_id(); }
Expand All @@ -20,7 +20,7 @@ struct StructTraits<T, cc::SurfaceId> {

static uint64_t nonce(const cc::SurfaceId& id) { return id.nonce(); }

static bool Read(typename T::DataView data, cc::SurfaceId* out) {
static bool Read(T data, cc::SurfaceId* out) {
*out = cc::SurfaceId(data.client_id(), data.local_id(), data.nonce());
return true;
}
Expand Down
6 changes: 3 additions & 3 deletions cc/ipc/surface_sequence_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

namespace mojo {

// This template is fully specialized as cc::mojom::SurfaceSequence and
// as cc::mojom::blink::SurfaceSequence, in generated .mojom.h and
// This template is fully specialized as cc::mojom::SurfaceSequenceDataView and
// as cc::mojom::blink::SurfaceSequenceDataView, in generated .mojom.h and
// .mojom-blink.h respectively.
template <typename T>
struct StructTraits<T, cc::SurfaceSequence> {
Expand All @@ -22,7 +22,7 @@ struct StructTraits<T, cc::SurfaceSequence> {
return id.sequence;
}

static bool Read(typename T::DataView data, cc::SurfaceSequence* out) {
static bool Read(T data, cc::SurfaceSequence* out) {
*out = cc::SurfaceSequence(data.client_id(), data.sequence());
return true;
}
Expand Down
3 changes: 2 additions & 1 deletion cc/ipc/transferable_resource_struct_traits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
namespace mojo {

// static
bool StructTraits<cc::mojom::TransferableResource, cc::TransferableResource>::
bool StructTraits<cc::mojom::TransferableResourceDataView,
cc::TransferableResource>::
Read(cc::mojom::TransferableResourceDataView data,
cc::TransferableResource* out) {
if (!data.ReadSize(&out->size) ||
Expand Down
3 changes: 2 additions & 1 deletion cc/ipc/transferable_resource_struct_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
namespace mojo {

template <>
struct StructTraits<cc::mojom::TransferableResource, cc::TransferableResource> {
struct StructTraits<cc::mojom::TransferableResourceDataView,
cc::TransferableResource> {
static uint32_t id(const cc::TransferableResource& resource) {
return resource.id;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
namespace mojo {

template <>
struct StructTraits<media_router::mojom::RouteMessage,
struct StructTraits<media_router::mojom::RouteMessageDataView,
media_router::RouteMessage> {
static media_router::mojom::RouteMessage::Type type(
const media_router::RouteMessage& msg) {
Expand Down
3 changes: 3 additions & 0 deletions components/arc/common/OWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
per-file *.mojom=set noparent
per-file *.mojom=file://ipc/SECURITY_OWNERS

per-file *_struct_traits*.*=set noparent
per-file *_struct_traits*.*=file://ipc/SECURITY_OWNERS
Loading

0 comments on commit 1764bb9

Please sign in to comment.