blob: 62b1e81325e894015940f4aa1597c43cb766498f [file] [log] [blame]
// Copyright 2019 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/renderer_preferences/renderer_preferences_mojom_traits.h"
#include <string>
#include "build/build_config.h"
#include "third_party/blink/public/mojom/renderer_preferences.mojom-shared.h"
namespace mojo {
bool StructTraits<blink::mojom::RendererPreferencesDataView,
::blink::RendererPreferences>::
Read(blink::mojom::RendererPreferencesDataView data,
::blink::RendererPreferences* out) {
out->can_accept_load_drops = data.can_accept_load_drops();
out->should_antialias_text = data.should_antialias_text();
if (!data.ReadHinting(&out->hinting))
return false;
out->use_autohinter = data.use_autohinter();
out->use_bitmaps = data.use_bitmaps();
if (!data.ReadSubpixelRendering(&out->subpixel_rendering))
return false;
out->use_subpixel_positioning = data.use_subpixel_positioning();
out->focus_ring_color = data.focus_ring_color();
out->active_selection_bg_color = data.active_selection_bg_color();
out->active_selection_fg_color = data.active_selection_fg_color();
out->inactive_selection_bg_color = data.inactive_selection_bg_color();
out->inactive_selection_fg_color = data.inactive_selection_fg_color();
out->browser_handles_all_top_level_requests =
data.browser_handles_all_top_level_requests();
if (!data.ReadCaretBlinkInterval(&out->caret_blink_interval))
return false;
out->use_custom_colors = data.use_custom_colors();
out->enable_referrers = data.enable_referrers();
out->allow_cross_origin_auth_prompt = data.allow_cross_origin_auth_prompt();
out->enable_do_not_track = data.enable_do_not_track();
out->enable_encrypted_media = data.enable_encrypted_media();
if (!data.ReadWebrtcIpHandlingPolicy(&out->webrtc_ip_handling_policy))
return false;
out->webrtc_udp_min_port = data.webrtc_udp_min_port();
out->webrtc_udp_max_port = data.webrtc_udp_max_port();
if (!data.ReadWebrtcLocalIpsAllowedUrls(&out->webrtc_local_ips_allowed_urls))
return false;
out->webrtc_allow_legacy_tls_protocols =
data.webrtc_allow_legacy_tls_protocols();
if (!data.ReadUserAgentOverride(&out->user_agent_override))
return false;
if (!data.ReadAcceptLanguages(&out->accept_languages))
return false;
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
if (!data.ReadSystemFontFamilyName(&out->system_font_family_name))
return false;
#endif
#if BUILDFLAG(IS_WIN)
if (!data.ReadCaptionFontFamilyName(&out->caption_font_family_name))
return false;
out->caption_font_height = data.caption_font_height();
if (!data.ReadSmallCaptionFontFamilyName(
&out->small_caption_font_family_name))
return false;
out->small_caption_font_height = data.small_caption_font_height();
if (!data.ReadMenuFontFamilyName(&out->menu_font_family_name))
return false;
out->menu_font_height = data.menu_font_height();
if (!data.ReadStatusFontFamilyName(&out->status_font_family_name))
return false;
out->status_font_height = data.status_font_height();
if (!data.ReadMessageFontFamilyName(&out->message_font_family_name))
return false;
out->message_font_height = data.message_font_height();
out->vertical_scroll_bar_width_in_dips =
data.vertical_scroll_bar_width_in_dips();
out->horizontal_scroll_bar_height_in_dips =
data.horizontal_scroll_bar_height_in_dips();
out->arrow_bitmap_height_vertical_scroll_bar_in_dips =
data.arrow_bitmap_height_vertical_scroll_bar_in_dips();
out->arrow_bitmap_width_horizontal_scroll_bar_in_dips =
data.arrow_bitmap_width_horizontal_scroll_bar_in_dips();
#endif
#if BUILDFLAG(IS_OZONE)
out->selection_clipboard_buffer_available =
data.selection_clipboard_buffer_available();
#endif
out->plugin_fullscreen_allowed = data.plugin_fullscreen_allowed();
out->caret_browsing_enabled = data.caret_browsing_enabled();
if (!data.ReadExplicitlyAllowedNetworkPorts(
&out->explicitly_allowed_network_ports)) {
return false;
}
return true;
}
} // namespace mojo