| // Copyright 2020 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. |
| |
| #include "third_party/blink/renderer/core/loader/cross_thread_resource_timing_info_copier.h" |
| |
| #include "third_party/blink/public/mojom/timing/resource_timing.mojom-blink.h" |
| |
| namespace WTF { |
| |
| namespace { |
| |
| Vector<blink::mojom::blink::ServerTimingInfoPtr> CloneServerTimingInfoArray( |
| const Vector<blink::mojom::blink::ServerTimingInfoPtr>& server_timing) { |
| Vector<blink::mojom::blink::ServerTimingInfoPtr> result; |
| for (const auto& entry : server_timing) { |
| result.emplace_back( |
| CrossThreadCopier<blink::mojom::blink::ServerTimingInfoPtr>::Copy( |
| entry)); |
| } |
| return result; |
| } |
| |
| } // namespace |
| |
| CrossThreadCopier<blink::mojom::blink::ResourceTimingInfoPtr>::Type |
| CrossThreadCopier<blink::mojom::blink::ResourceTimingInfoPtr>::Copy( |
| const blink::mojom::blink::ResourceTimingInfoPtr& info) { |
| return blink::mojom::blink::ResourceTimingInfo::New( |
| info->name.IsolatedCopy(), info->start_time, |
| info->alpn_negotiated_protocol.IsolatedCopy(), |
| info->connection_info.IsolatedCopy(), |
| info->timing ? info->timing->Clone() : nullptr, |
| info->last_redirect_end_time, info->response_end, info->context_type, |
| info->request_destination, info->transfer_size, info->encoded_body_size, |
| info->decoded_body_size, info->did_reuse_connection, |
| info->is_secure_context, info->allow_timing_details, |
| info->allow_redirect_details, info->allow_negative_values, |
| CloneServerTimingInfoArray(info->server_timing)); |
| } |
| |
| CrossThreadCopier<blink::mojom::blink::ServerTimingInfoPtr>::Type |
| CrossThreadCopier<blink::mojom::blink::ServerTimingInfoPtr>::Copy( |
| const blink::mojom::blink::ServerTimingInfoPtr& info) { |
| return blink::mojom::blink::ServerTimingInfo::New( |
| info->name.IsolatedCopy(), info->duration, |
| info->description.IsolatedCopy()); |
| } |
| |
| } // namespace WTF |