blob: e0627fbb4fe9dc8d31cdc0033504d4e6287dd6f7 [file] [log] [blame]
// Copyright 2017 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 "content/common/url_loader_factory_bundle_struct_traits.h"
namespace mojo {
using Traits =
StructTraits<content::mojom::URLLoaderFactoryBundleDataView,
std::unique_ptr<content::URLLoaderFactoryBundleInfo>>;
// static
network::mojom::URLLoaderFactoryPtrInfo Traits::default_factory(
BundleInfoType& bundle) {
return std::move(bundle->default_factory_info());
}
// static
std::map<std::string, network::mojom::URLLoaderFactoryPtrInfo>
Traits::factories(BundleInfoType& bundle) {
return std::move(bundle->factories_info());
}
// static
bool Traits::Read(content::mojom::URLLoaderFactoryBundleDataView data,
BundleInfoType* out_bundle) {
*out_bundle = std::make_unique<content::URLLoaderFactoryBundleInfo>();
(*out_bundle)->default_factory_info() =
data.TakeDefaultFactory<network::mojom::URLLoaderFactoryPtrInfo>();
if (!data.ReadFactories(&(*out_bundle)->factories_info()))
return false;
return true;
}
} // namespace mojo