From c2ab63f6d7091f9412362136d3ed66a563d33082 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 25 Apr 2025 16:11:15 -0500 Subject: [PATCH] refactor: use `absl::InlinedVector` in `ToV8(ElectronPermissionManager)` (#44854) perf: use a stack-allocated string_view array in ToV8(USBProtectedClasses) --- .../gin_converters/usb_protected_classes_converter.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/shell/common/gin_converters/usb_protected_classes_converter.h b/shell/common/gin_converters/usb_protected_classes_converter.h index d4db86b5971a..df93c9f474f4 100644 --- a/shell/common/gin_converters/usb_protected_classes_converter.h +++ b/shell/common/gin_converters/usb_protected_classes_converter.h @@ -13,6 +13,8 @@ #include "gin/converter.h" #include "services/device/public/mojom/usb_device.mojom-forward.h" #include "shell/browser/electron_permission_manager.h" +#include "shell/common/gin_converters/std_converter.h" +#include "third_party/abseil-cpp/absl/container/inlined_vector.h" namespace gin { @@ -31,15 +33,14 @@ struct Converter { static v8::Local ToV8( v8::Isolate* isolate, const electron::ElectronPermissionManager::USBProtectedClasses& classes) { - std::vector class_strings; - class_strings.reserve(std::size(classes)); + absl::InlinedVector class_strings; for (const auto& itr : classes) { for (const auto& [usb_class, name] : ClassMapping) { if (usb_class == itr) class_strings.emplace_back(name); } } - return gin::ConvertToV8(isolate, class_strings); + return gin::ConvertToV8(isolate, std::span(class_strings)); } static bool FromV8(