blob: a4acd3d8d106886adccb103a2cddd96e73f6f092 [file] [log] [blame]
// Copyright 2018 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 "chrome/services/util_win/public/mojom/util_win_mojom_traits.h"
#include "mojo/public/cpp/base/file_path_mojom_traits.h"
#include "mojo/public/cpp/base/string16_mojom_traits.h"
namespace mojo {
// static
chrome::mojom::SelectFileDialogType EnumTraits<
chrome::mojom::SelectFileDialogType,
ui::SelectFileDialog::Type>::ToMojom(ui::SelectFileDialog::Type input) {
switch (input) {
case ui::SelectFileDialog::Type::SELECT_NONE:
return chrome::mojom::SelectFileDialogType::kNone;
case ui::SelectFileDialog::Type::SELECT_FOLDER:
return chrome::mojom::SelectFileDialogType::kFolder;
case ui::SelectFileDialog::Type::SELECT_UPLOAD_FOLDER:
return chrome::mojom::SelectFileDialogType::kUploadFolder;
case ui::SelectFileDialog::Type::SELECT_EXISTING_FOLDER:
return chrome::mojom::SelectFileDialogType::kExistingFolder;
case ui::SelectFileDialog::Type::SELECT_SAVEAS_FILE:
return chrome::mojom::SelectFileDialogType::kSaveAsFile;
case ui::SelectFileDialog::Type::SELECT_OPEN_FILE:
return chrome::mojom::SelectFileDialogType::kOpenFile;
case ui::SelectFileDialog::Type::SELECT_OPEN_MULTI_FILE:
return chrome::mojom::SelectFileDialogType::kOpenMultiFile;
}
NOTREACHED();
return chrome::mojom::SelectFileDialogType::kNone;
}
// static
bool EnumTraits<chrome::mojom::SelectFileDialogType,
ui::SelectFileDialog::Type>::
FromMojom(chrome::mojom::SelectFileDialogType input,
ui::SelectFileDialog::Type* output) {
switch (input) {
case chrome::mojom::SelectFileDialogType::kNone:
*output = ui::SelectFileDialog::Type::SELECT_NONE;
return true;
case chrome::mojom::SelectFileDialogType::kFolder:
*output = ui::SelectFileDialog::Type::SELECT_FOLDER;
return true;
case chrome::mojom::SelectFileDialogType::kUploadFolder:
*output = ui::SelectFileDialog::Type::SELECT_UPLOAD_FOLDER;
return true;
case chrome::mojom::SelectFileDialogType::kExistingFolder:
*output = ui::SelectFileDialog::Type::SELECT_EXISTING_FOLDER;
return true;
case chrome::mojom::SelectFileDialogType::kSaveAsFile:
*output = ui::SelectFileDialog::Type::SELECT_SAVEAS_FILE;
return true;
case chrome::mojom::SelectFileDialogType::kOpenFile:
*output = ui::SelectFileDialog::Type::SELECT_OPEN_FILE;
return true;
case chrome::mojom::SelectFileDialogType::kOpenMultiFile:
*output = ui::SelectFileDialog::Type::SELECT_OPEN_MULTI_FILE;
return true;
}
NOTREACHED();
return false;
}
// static
chrome::mojom::CertificateType
EnumTraits<chrome::mojom::CertificateType, CertificateInfo::Type>::ToMojom(
CertificateInfo::Type input) {
switch (input) {
case CertificateInfo::Type::NO_CERTIFICATE:
return chrome::mojom::CertificateType::kNoCertificate;
case CertificateInfo::Type::CERTIFICATE_IN_FILE:
return chrome::mojom::CertificateType::kCertificateInFile;
case CertificateInfo::Type::CERTIFICATE_IN_CATALOG:
return chrome::mojom::CertificateType::kCertificateInCatalog;
}
NOTREACHED();
return chrome::mojom::CertificateType::kNoCertificate;
}
// static
bool EnumTraits<chrome::mojom::CertificateType, CertificateInfo::Type>::
FromMojom(chrome::mojom::CertificateType input,
CertificateInfo::Type* output) {
switch (input) {
case chrome::mojom::CertificateType::kNoCertificate:
*output = CertificateInfo::Type::NO_CERTIFICATE;
return true;
case chrome::mojom::CertificateType::kCertificateInFile:
*output = CertificateInfo::Type::CERTIFICATE_IN_FILE;
return true;
case chrome::mojom::CertificateType::kCertificateInCatalog:
*output = CertificateInfo::Type::CERTIFICATE_IN_CATALOG;
return true;
}
NOTREACHED();
return false;
}
// static
const base::string16& StructTraits<
chrome::mojom::InspectionResultDataView,
ModuleInspectionResult>::location(const ModuleInspectionResult& input) {
return input.location;
}
// static
const base::string16& StructTraits<
chrome::mojom::InspectionResultDataView,
ModuleInspectionResult>::basename(const ModuleInspectionResult& input) {
return input.basename;
}
// static
const base::string16& StructTraits<
chrome::mojom::InspectionResultDataView,
ModuleInspectionResult>::product_name(const ModuleInspectionResult& input) {
return input.product_name;
}
// static
const base::string16& StructTraits<
chrome::mojom::InspectionResultDataView,
ModuleInspectionResult>::description(const ModuleInspectionResult& input) {
return input.description;
}
// static
const base::string16& StructTraits<
chrome::mojom::InspectionResultDataView,
ModuleInspectionResult>::version(const ModuleInspectionResult& input) {
return input.basename;
}
// static
chrome::mojom::CertificateType
StructTraits<chrome::mojom::InspectionResultDataView, ModuleInspectionResult>::
certificate_type(const ModuleInspectionResult& input) {
return EnumTraits<chrome::mojom::CertificateType,
CertificateInfo::Type>::ToMojom(input.certificate_info
.type);
}
// static
const base::FilePath&
StructTraits<chrome::mojom::InspectionResultDataView, ModuleInspectionResult>::
certificate_path(const ModuleInspectionResult& input) {
return input.certificate_info.path;
}
// static
const base::string16&
StructTraits<chrome::mojom::InspectionResultDataView, ModuleInspectionResult>::
certificate_subject(const ModuleInspectionResult& input) {
return input.certificate_info.subject;
}
// static
bool StructTraits<
chrome::mojom::InspectionResultDataView,
ModuleInspectionResult>::Read(chrome::mojom::InspectionResultDataView input,
ModuleInspectionResult* out) {
return input.ReadLocation(&out->location) &&
input.ReadBasename(&out->basename) &&
input.ReadProductName(&out->product_name) &&
input.ReadDescription(&out->description) &&
input.ReadVersion(&out->version) &&
input.ReadCertificateType(&out->certificate_info.type) &&
input.ReadCertificatePath(&out->certificate_info.path) &&
input.ReadCertificateSubject(&out->certificate_info.subject);
}
// static
bool StructTraits<chrome::mojom::FileFilterSpecDataView, ui::FileFilterSpec>::
Read(chrome::mojom::FileFilterSpecDataView input, ui::FileFilterSpec* out) {
return input.ReadDescription(&out->description) &&
input.ReadExtensionSpec(&out->extension_spec);
}
} // namespace mojo