From 6433847b09f48a6434e183b7582b95f2e97ba6a0 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Fri, 25 Apr 2025 20:09:28 -0500 Subject: [PATCH] refactor: use `absl::InlinedVector` in `ToV8(ElectronPermissionManager)` (#46804) perf: use a stack-allocated string_view array in ToV8(USBProtectedClasses) Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr --- .../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 d4db86b5971..df93c9f474f 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(