blob: 82676b7d3e491fd33dbe14134aac3bbd49606f95 [file] [log] [blame]
// Copyright 2021 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 THIRD_PARTY_BLINK_PUBLIC_COMMON_CONTEXT_MENU_DATA_CONTEXT_MENU_MOJOM_TRAITS_H_
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_CONTEXT_MENU_DATA_CONTEXT_MENU_MOJOM_TRAITS_H_
#include "build/build_config.h"
#include "mojo/public/cpp/base/time_mojom_traits.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "third_party/blink/public/common/common_export.h"
#include "third_party/blink/public/common/context_menu_data/untrustworthy_context_menu_params.h"
#include "third_party/blink/public/common/navigation/impression.h"
#include "third_party/blink/public/mojom/context_menu/context_menu.mojom.h"
#include "url/mojom/url_gurl_mojom_traits.h"
namespace mojo {
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ImpressionDataView, blink::Impression> {
static url::Origin conversion_destination(const blink::Impression& r) {
return r.conversion_destination;
}
static base::Optional<url::Origin> reporting_origin(
const blink::Impression& r) {
return r.reporting_origin;
}
static uint64_t impression_data(const blink::Impression& r) {
return r.impression_data;
}
static base::Optional<base::TimeDelta> expiry(const blink::Impression& r) {
return r.expiry;
}
static bool Read(blink::mojom::ImpressionDataView r, blink::Impression* out);
};
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::UntrustworthyContextMenuParamsDataView,
blink::UntrustworthyContextMenuParams> {
static blink::mojom::ContextMenuDataMediaType media_type(
const blink::UntrustworthyContextMenuParams& r) {
return r.media_type;
}
static int x(const blink::UntrustworthyContextMenuParams& r) { return r.x; }
static int y(const blink::UntrustworthyContextMenuParams& r) { return r.y; }
static const GURL link_url(const blink::UntrustworthyContextMenuParams& r) {
return r.link_url;
}
static base::string16 link_text(
const blink::UntrustworthyContextMenuParams& r) {
return r.link_text;
}
static base::Optional<blink::Impression> impression(
const blink::UntrustworthyContextMenuParams& r) {
return r.impression;
}
static const GURL unfiltered_link_url(
const blink::UntrustworthyContextMenuParams& r) {
return r.unfiltered_link_url;
}
static const GURL src_url(const blink::UntrustworthyContextMenuParams& r) {
return r.src_url;
}
static bool has_image_contents(
const blink::UntrustworthyContextMenuParams& r) {
return r.has_image_contents;
}
static int media_flags(const blink::UntrustworthyContextMenuParams& r) {
return r.media_flags;
}
static base::string16 selection_text(
const blink::UntrustworthyContextMenuParams& r) {
return r.selection_text;
}
static base::string16 title_text(
const blink::UntrustworthyContextMenuParams& r) {
return r.title_text;
}
static base::string16 alt_text(
const blink::UntrustworthyContextMenuParams& r) {
return r.alt_text;
}
static base::string16 suggested_filename(
const blink::UntrustworthyContextMenuParams& r) {
return r.suggested_filename;
}
static base::string16 misspelled_word(
const blink::UntrustworthyContextMenuParams& r) {
return r.misspelled_word;
}
static std::vector<base::string16> dictionary_suggestions(
const blink::UntrustworthyContextMenuParams& r) {
return r.dictionary_suggestions;
}
static bool spellcheck_enabled(
const blink::UntrustworthyContextMenuParams& r) {
return r.spellcheck_enabled;
}
static bool is_editable(const blink::UntrustworthyContextMenuParams& r) {
return r.is_editable;
}
static int writing_direction_default(
const blink::UntrustworthyContextMenuParams& r) {
return r.writing_direction_default;
}
static int writing_direction_left_to_right(
const blink::UntrustworthyContextMenuParams& r) {
return r.writing_direction_left_to_right;
}
static int writing_direction_right_to_left(
const blink::UntrustworthyContextMenuParams& r) {
return r.writing_direction_right_to_left;
}
static int edit_flags(const blink::UntrustworthyContextMenuParams& r) {
return r.edit_flags;
}
static std::string frame_charset(
const blink::UntrustworthyContextMenuParams& r) {
return r.frame_charset;
}
static network::mojom::ReferrerPolicy referrer_policy(
const blink::UntrustworthyContextMenuParams& r) {
return r.referrer_policy;
}
static const GURL& link_followed(
const blink::UntrustworthyContextMenuParams& r) {
return r.link_followed;
}
static const std::vector<blink::mojom::CustomContextMenuItemPtr>&
custom_items(const blink::UntrustworthyContextMenuParams& r) {
return r.custom_items;
}
static ui::MenuSourceType source_type(
const blink::UntrustworthyContextMenuParams& r) {
return r.source_type;
}
static blink::mojom::ContextMenuDataInputFieldType input_field_type(
const blink::UntrustworthyContextMenuParams& r) {
return r.input_field_type;
}
static gfx::Rect selection_rect(
const blink::UntrustworthyContextMenuParams& r) {
return r.selection_rect;
}
static int selection_start_offset(
const blink::UntrustworthyContextMenuParams& r) {
return r.selection_start_offset;
}
static bool Read(blink::mojom::UntrustworthyContextMenuParamsDataView r,
blink::UntrustworthyContextMenuParams* out);
};
} // namespace mojo
#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_CONTEXT_MENU_DATA_CONTEXT_MENU_MOJOM_TRAITS_H_