blob: eaa2b3f62608382c04f77f5483bdef8a837f092d [file] [log] [blame]
// Copyright 2016 The Chromium 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 CHROME_COMMON_THUMBNAIL_CAPTURER_MOJOM_SHARED_INTERNAL_H_
#define CHROME_COMMON_THUMBNAIL_CAPTURER_MOJOM_SHARED_INTERNAL_H_
#include <stdint.h>
#include "mojo/public/cpp/bindings/lib/array_internal.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/map_data_internal.h"
#include "mojo/public/cpp/bindings/lib/native_enum_data.h"
#include "mojo/public/cpp/bindings/lib/buffer.h"
#include "ui/gfx/geometry/mojo/geometry.mojom-shared-internal.h"
#include "mojo/public/interfaces/bindings/native_struct.mojom-shared-internal.h"
namespace mojo {
namespace internal {
class ValidationContext;
}
}
namespace chrome {
namespace mojom {
namespace internal {
struct ImageFormat_Data {
public:
static bool constexpr kIsExtensible = false;
static bool IsKnownValue(int32_t value) {
switch (value) {
case 0:
case 1:
return true;
}
return false;
}
static bool Validate(int32_t value,
mojo::internal::ValidationContext* validation_context) {
if (kIsExtensible || IsKnownValue(value))
return true;
ReportValidationError(validation_context,
mojo::internal::VALIDATION_ERROR_UNKNOWN_ENUM_VALUE);
return false;
}
};
#pragma pack(push, 1)
// The 1531658075 value is based on sha256(salt + "ThumbnailCapturer1").
constexpr uint32_t kThumbnailCapturer_RequestThumbnailForContextNode_Name = 1531658075;
class ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data {
public:
class BufferWriter {
public:
BufferWriter() = default;
void Allocate(mojo::internal::Buffer* buffer) {
buffer_ = buffer;
index_ = buffer_->Allocate(sizeof(ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data));
new (data()) ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data();
}
bool is_null() const { return !buffer_; }
ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data* data() {
DCHECK(!is_null());
return buffer_->Get<ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data>(index_);
}
ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data* operator->() { return data(); }
private:
mojo::internal::Buffer* buffer_ = nullptr;
size_t index_ = 0;
DISALLOW_COPY_AND_ASSIGN(BufferWriter);
};
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
mojo::internal::StructHeader header_;
int32_t thumbnail_min_area_pixels;
int32_t image_format;
mojo::internal::Pointer<::gfx::mojom::internal::Size_Data> thumbnail_max_size_pixels;
private:
ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data();
~ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data() = delete;
};
static_assert(sizeof(ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data) == 24,
"Bad sizeof(ThumbnailCapturer_RequestThumbnailForContextNode_Params_Data)");
class ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data {
public:
class BufferWriter {
public:
BufferWriter() = default;
void Allocate(mojo::internal::Buffer* buffer) {
buffer_ = buffer;
index_ = buffer_->Allocate(sizeof(ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data));
new (data()) ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data();
}
bool is_null() const { return !buffer_; }
ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data* data() {
DCHECK(!is_null());
return buffer_->Get<ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data>(index_);
}
ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data* operator->() { return data(); }
private:
mojo::internal::Buffer* buffer_ = nullptr;
size_t index_ = 0;
DISALLOW_COPY_AND_ASSIGN(BufferWriter);
};
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
mojo::internal::StructHeader header_;
mojo::internal::Pointer<mojo::internal::Array_Data<uint8_t>> thumbnail_data;
mojo::internal::Pointer<::gfx::mojom::internal::Size_Data> original_size;
private:
ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data();
~ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data() = delete;
};
static_assert(sizeof(ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data) == 24,
"Bad sizeof(ThumbnailCapturer_RequestThumbnailForContextNode_ResponseParams_Data)");
#pragma pack(pop)
} // namespace internal
} // namespace mojom
} // namespace chrome
#endif // CHROME_COMMON_THUMBNAIL_CAPTURER_MOJOM_SHARED_INTERNAL_H_