From 15d2a7dc4cbdb25e11b99c31518d6ef5f0b5cd1f Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Mon, 31 Mar 2025 07:33:00 -0500 Subject: [PATCH] perf: improve temporaries in `WebWorkerObserver::WorkerScriptReadyForEvaluation()` (#46377) refactor: small refactor to WebWorkerObserver::WorkerScriptReadyForEvaluation() - replace a std::vector local with a compile-time array of std::string_view - remove .c_str() pessimization when making v8 Strings from string_views Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr --- shell/renderer/web_worker_observer.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/shell/renderer/web_worker_observer.cc b/shell/renderer/web_worker_observer.cc index a3a1caf8ded6..d1953998cb72 100644 --- a/shell/renderer/web_worker_observer.cc +++ b/shell/renderer/web_worker_observer.cc @@ -4,9 +4,11 @@ #include "shell/renderer/web_worker_observer.h" +#include #include #include "base/no_destructor.h" +#include "base/strings/strcat.h" #include "base/threading/thread_local.h" #include "shell/common/api/electron_bindings.h" #include "shell/common/gin_helper/event_emitter_caller.h" @@ -71,15 +73,14 @@ void WebWorkerObserver::WorkerScriptReadyForEvaluation( // is loaded. See corresponding change in node/init.ts. v8::Local global = worker_context->Global(); - std::vector keys = {"fetch", "Response", "FormData", - "Request", "Headers", "EventSource"}; - for (const auto& key : keys) { + for (const std::string_view key : + {"fetch", "Response", "FormData", "Request", "Headers", "EventSource"}) { v8::MaybeLocal value = - global->Get(worker_context, gin::StringToV8(isolate, key.c_str())); + global->Get(worker_context, gin::StringToV8(isolate, key)); if (!value.IsEmpty()) { - std::string blink_key = "blink" + key; + std::string blink_key = base::StrCat({"blink", key}); global - ->Set(worker_context, gin::StringToV8(isolate, blink_key.c_str()), + ->Set(worker_context, gin::StringToV8(isolate, blink_key), value.ToLocalChecked()) .Check(); }