Unreviewed changes
7 is the latest approved patch-set.
The change was submitted with unreviewed changes in the following files:
```
The name of the file: mojo/public/cpp/bindings/lib/bindings_internal.h
Insertions: 21, Deletions: 19.
@@ -344,42 +344,44 @@
}
};
-template <typename MojoT, typename T>
- requires(requires(MojoT in) {
- { EnumTraits<MojoT, T>::FromMojom(in) } -> std::same_as<T>;
+template <typename MojomType, typename T>
+ requires(requires(MojomType in) {
+ { EnumTraits<MojomType, T>::FromMojom(in) } -> std::same_as<T>;
})
-T ConvertEnumValue(MojoT in) {
- return EnumTraits<MojoT, T>::FromMojom(in);
+T ConvertEnumValue(MojomType in) {
+ return EnumTraits<MojomType, T>::FromMojom(in);
}
-template <typename MojoT, typename T>
- requires(requires(MojoT in) {
- { EnumTraits<MojoT, T>::FromMojom(in) } -> std::same_as<std::optional<T>>;
+template <typename MojomType, typename T>
+ requires(requires(MojomType in) {
+ {
+ EnumTraits<MojomType, T>::FromMojom(in)
+ } -> std::same_as<std::optional<T>>;
})
-T ConvertEnumValue(MojoT in) {
- std::optional<T> out = EnumTraits<MojoT, T>::FromMojom(in);
+T ConvertEnumValue(MojomType in) {
+ std::optional<T> out = EnumTraits<MojomType, T>::FromMojom(in);
DCHECK(out.has_value());
return *out;
}
-template <typename MojoT, typename T>
-T ConvertEnumValue(MojoT in) {
+template <typename MojomType, typename T>
+T ConvertEnumValue(MojomType in) {
T out;
- bool result = EnumTraits<MojoT, T>::FromMojom(in, &out);
+ bool result = EnumTraits<MojomType, T>::FromMojom(in, &out);
DCHECK(result);
return out;
}
-template <typename MojoT>
- requires(requires(MojoT in) {
- { ToKnownEnumValue(in) } -> std::same_as<MojoT>;
+template <typename MojomType>
+ requires(requires(MojomType in) {
+ { ToKnownEnumValue(in) } -> std::same_as<MojomType>;
})
-MojoT ToKnownEnumValueHelper(MojoT in) {
+MojomType ToKnownEnumValueHelper(MojomType in) {
return ToKnownEnumValue(in);
}
-template <typename MojoT>
-MojoT ToKnownEnumValueHelper(MojoT in) {
+template <typename MojomType>
+MojomType ToKnownEnumValueHelper(MojomType in) {
return in;
}
```
Change information
Commit message:
[mojo] Migrate EnumTraits in //services to return by value
Update EnumTraits specializations in //services to use the new FromMojom
signature. This returns the converted type directly for infallible
conversions or wrapped in a std::optional for fallible ones, replacing
the legacy boolean return and out-parameter pattern.
The Mojo internal binding helpers and test utilities are also updated to
support the new signatures using C++20 requires-expressions. This
enables a gradual migration by maintaining backward compatibility with
the legacy out-parameter signature while prioritizing the new
return-by-value API when available.
Bug: 483092898
Change-Id: I28e35a51ce4fe53b6f61d072372ad1b76a6a6964
Cr-Commit-Position: refs/heads/main@{#1604408}
Files:
- M mojo/public/cpp/bindings/lib/bindings_internal.h
- M mojo/public/cpp/test_support/test_utils.h
- M services/audio/public/cpp/debug_recording_mojom_traits.cc
- M services/audio/public/cpp/debug_recording_mojom_traits.h
- M services/network/host_resolver.cc
- M services/network/public/cpp/address_family_mojom_traits.cc
- M services/network/public/cpp/address_family_mojom_traits.h
- M services/network/public/cpp/alternate_protocol_usage_mojom_traits.cc
- M services/network/public/cpp/alternate_protocol_usage_mojom_traits.h
- M services/network/public/cpp/connection_change_observer_client_mojom_traits.cc
- M services/network/public/cpp/connection_change_observer_client_mojom_traits.h
- M services/network/public/cpp/cookie_manager_mojom_traits.cc
- M services/network/public/cpp/cookie_manager_mojom_traits.h
- M services/network/public/cpp/cookie_manager_shared_mojom_traits.cc
- M services/network/public/cpp/cookie_manager_shared_mojom_traits.h
- M services/network/public/cpp/default_credentials_mojom_traits.cc
- M services/network/public/cpp/default_credentials_mojom_traits.h
- M services/network/public/cpp/default_credentials_mojom_traits_unittest.cc
- M services/network/public/cpp/device_bound_sessions_mojom_traits.cc
- M services/network/public/cpp/device_bound_sessions_mojom_traits.h
- M services/network/public/cpp/digitally_signed_mojom_traits.h
- M services/network/public/cpp/first_party_sets_mojom_traits.cc
- M services/network/public/cpp/first_party_sets_mojom_traits.h
- M services/network/public/cpp/host_resolver_mojom_traits.cc
- M services/network/public/cpp/host_resolver_mojom_traits.h
- M services/network/public/cpp/isolation_info_mojom_traits.cc
- M services/network/public/cpp/isolation_info_mojom_traits.h
- M services/network/public/cpp/load_timing_internal_info_mojom_traits.cc
- M services/network/public/cpp/load_timing_internal_info_mojom_traits.h
- M services/network/public/cpp/net_log_mojom_traits.cc
- M services/network/public/cpp/net_log_mojom_traits.h
- M services/network/public/cpp/net_log_mojom_traits_unittest.cc
- M services/network/public/cpp/network_interface_mojom_traits.cc
- M services/network/public/cpp/network_interface_mojom_traits.h
- M services/network/public/cpp/network_isolation_partition_mojom_traits.cc
- M services/network/public/cpp/network_isolation_partition_mojom_traits.h
- M services/network/public/cpp/network_param_mojom_traits.cc
- M services/network/public/cpp/network_param_mojom_traits.h
- M services/network/public/cpp/p2p_param_traits.cc
- M services/network/public/cpp/p2p_param_traits.h
- M services/network/public/cpp/proxy_config_mojom_traits.cc
- M services/network/public/cpp/proxy_config_mojom_traits.h
- M services/network/public/cpp/reporting_api_report_mojom_traits.cc
- M services/network/public/cpp/reporting_api_report_mojom_traits.h
- M services/network/public/cpp/source_type_mojom_traits.cc
- M services/network/public/cpp/source_type_mojom_traits.h
- M services/network/public/cpp/storage_access_api_mojom_traits.cc
- M services/network/public/cpp/storage_access_api_mojom_traits.h
- M services/network/public/cpp/url_request_param_mojom_traits.cc
- M services/network/public/cpp/url_request_param_mojom_traits.h
- M services/on_device_model/public/cpp/chrome_ml_types_mojom_traits.cc
- M services/on_device_model/public/cpp/chrome_ml_types_mojom_traits.h
- M services/proxy_resolver/public/cpp/mojo_host_mojom_traits.cc
- M services/proxy_resolver/public/cpp/mojo_host_mojom_traits.h
- M services/proxy_resolver_mac/public/cpp/proxy_resolver_mac_mojom_traits.cc
- M services/proxy_resolver_mac/public/cpp/proxy_resolver_mac_mojom_traits.h
- M services/proxy_resolver_win/public/cpp/proxy_resolver_win_mojom_traits.cc
- M services/proxy_resolver_win/public/cpp/proxy_resolver_win_mojom_traits.h
- M services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_mojom_traits.cc
- M services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_mojom_traits.h
- M services/tracing/public/mojom/console_config_mojom_traits.h
- M services/tracing/public/mojom/trace_config_mojom_traits.h
- M services/viz/privileged/cpp/context_lost_reason_traits.h
- M services/viz/privileged/cpp/overlay_strategy_mojom_traits.h
- M services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.cc
- M services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.h
- M services/viz/public/cpp/compositing/blit_request_mojom_traits.cc
- M services/viz/public/cpp/compositing/blit_request_mojom_traits.h
- M services/viz/public/cpp/compositing/compositor_frame_transition_directive_mojom_traits.cc
- M services/viz/public/cpp/compositing/compositor_frame_transition_directive_mojom_traits.h
- M services/viz/public/cpp/compositing/copy_output_result_mojom_traits.cc
- M services/viz/public/cpp/compositing/copy_output_result_mojom_traits.h
- M services/viz/public/cpp/compositing/frame_interval_inputs_mojom_traits.cc
- M services/viz/public/cpp/compositing/frame_interval_inputs_mojom_traits.h
- M services/viz/public/cpp/compositing/quads_mojom_traits.h
- M services/viz/public/cpp/compositing/shared_image_format_mojom_traits.cc
- M services/viz/public/cpp/compositing/shared_image_format_mojom_traits.h
- M services/viz/public/cpp/compositing/thread_mojom_traits.cc
- M services/viz/public/cpp/compositing/thread_mojom_traits.h
- M services/viz/public/cpp/compositing/transferable_resource_mojom_traits.cc
- M services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h
- M services/viz/public/cpp/compositing/vertical_scroll_direction_mojom_traits.h
- M services/webnn/public/mojom/operand_descriptor_mojom_traits.cc
- M services/webnn/public/mojom/operand_descriptor_mojom_traits.h
Change size: XL
Delta: 84 files changed, 1191 insertions(+), 1477 deletions(-)
Branch: refs/heads/main
Submit Requirements:
Code-Review: +1 by Daniel Cheng