| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef PRINTING_CLIENT_INFO_HELPERS_H_ |
| #define PRINTING_CLIENT_INFO_HELPERS_H_ |
| |
| #include<cstddef> |
| #include"base/component_export.h" |
| #include"printing/mojom/print.mojom-forward.h" |
| |
| namespace printing{ |
| |
| // Maximum length limits for 'client-info' member attributes. |
| inlineconstexprsize_t kClientInfoMaxNameLength=127; |
| inlineconstexprsize_t kClientInfoMaxPatchesLength=255; |
| inlineconstexprsize_t kClientInfoMaxStringVersionLength=127; |
| inlineconstexprsize_t kClientInfoMaxVersionLength=64; |
| |
| // Returns true if all members of `client_info` are valid. |
| // String members are considered valid if they match the regex [a-zA-Z0-9_.-]* |
| // and do not exceed the maximum length specified for the respective IPP member |
| // attribute. The `client_type` member is valid if it is equal to one of the |
| // enum values defined for the `client-type` IPP attribute. |
| COMPONENT_EXPORT(PRINTING) |
| boolValidateClientInfoItem(const mojom::IppClientInfo& client_info); |
| |
| }// namespace printing |
| |
| #endif// PRINTING_CLIENT_INFO_HELPERS_H_ |