[M120 Migration][VD] Remove accessing oom_score_adj in zygote process
[platform/framework/web/chromium-efl.git] / printing / print_settings_conversion_chromeos.cc
1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "print_settings_conversion_chromeos.h"
6
7 #include "printing/print_job_constants.h"
8
9 namespace printing {
10
11 namespace {
12
13 // Assumes that `dict` contains valid data for client-info.
14 mojom::IppClientInfo GetClientInfoFromDict(const base::Value::Dict& dict) {
15   mojom::IppClientInfo client_info;
16   client_info.client_type = static_cast<mojom::IppClientInfo::ClientType>(
17       dict.FindInt(kSettingIppClientType).value());
18   client_info.client_name = *dict.FindString(kSettingIppClientName);
19   client_info.client_string_version =
20       *dict.FindString(kSettingIppClientStringVersion);
21
22   const std::string* client_patches = dict.FindString(kSettingIppClientPatches);
23   if (client_patches) {
24     client_info.client_patches = *client_patches;
25   }
26   const std::string* client_version = dict.FindString(kSettingIppClientVersion);
27   if (client_version) {
28     client_info.client_version = *client_version;
29   }
30   return client_info;
31 }
32 }  // namespace
33
34 base::Value::List ConvertClientInfoToJobSetting(
35     const std::vector<mojom::IppClientInfo>& client_infos) {
36   base::Value::List client_info_list;
37   client_info_list.reserve(client_infos.size());
38   for (const auto& client_info : client_infos) {
39     base::Value::Dict dict;
40     dict.Set(kSettingIppClientType, static_cast<int>(client_info.client_type));
41     dict.Set(kSettingIppClientName, client_info.client_name);
42     dict.Set(kSettingIppClientStringVersion, client_info.client_string_version);
43     if (client_info.client_patches.has_value()) {
44       dict.Set(kSettingIppClientPatches, client_info.client_patches.value());
45     }
46     if (client_info.client_version.has_value()) {
47       dict.Set(kSettingIppClientVersion, client_info.client_version.value());
48     }
49     client_info_list.Append(std::move(dict));
50   }
51   return client_info_list;
52 }
53
54 std::vector<mojom::IppClientInfo> ConvertJobSettingToClientInfo(
55     const base::Value::List& client_info) {
56   std::vector<mojom::IppClientInfo> result;
57   for (const base::Value& client_info_value : client_info) {
58     result.push_back(GetClientInfoFromDict(client_info_value.GetDict()));
59   }
60   return result;
61 }
62
63 }  // namespace printing