From e45eab5b3533d149bf9d9e0d2b78f152815247d6 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Wed, 25 Jun 2025 17:07:04 -0500 Subject: [PATCH 1/3] docs: update asar integrity fuse availability (#47567) Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Niklas Wenzel --- docs/tutorial/fuses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorial/fuses.md b/docs/tutorial/fuses.md index 1afa53d6a7df3..c810d1af2a660 100644 --- a/docs/tutorial/fuses.md +++ b/docs/tutorial/fuses.md @@ -48,7 +48,7 @@ The nodeCliInspect fuse toggles whether the `--inspect`, `--inspect-brk`, etc. f **@electron/fuses:** `FuseV1Options.EnableEmbeddedAsarIntegrityValidation` -The embeddedAsarIntegrityValidation fuse toggles an experimental feature on macOS that validates the content of the `app.asar` file when it is loaded. This feature is designed to have a minimal performance impact but may marginally slow down file reads from inside the `app.asar` archive. +The embeddedAsarIntegrityValidation fuse toggles an experimental feature on macOS and Windows that validates the content of the `app.asar` file when it is loaded. This feature is designed to have a minimal performance impact but may marginally slow down file reads from inside the `app.asar` archive. For more information on how to use asar integrity validation please read the [Asar Integrity](asar-integrity.md) documentation. From 1eb8f7e705eafdd21f7dae69d80b1f48c55c6f86 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Thu, 26 Jun 2025 08:18:06 -0500 Subject: [PATCH 2/3] refactor: remove stray `.c_str()` calls for `absl::StrFormat()` (#47577) refactor: remove stray .c_str() calls for absl::StrFormat() StrFormat() understands std::string, std::string_view Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr --- shell/browser/api/electron_api_session.cc | 5 ++--- .../electron_management_api_delegate.cc | 5 ++--- .../extensions/api/scripting/scripting_api.cc | 8 +++---- shell/browser/hid/hid_chooser_controller.cc | 7 +++---- .../net/proxying_url_loader_factory.cc | 2 +- shell/browser/net/proxying_websocket.cc | 3 +-- shell/browser/ui/inspectable_web_contents.cc | 21 ++++++++----------- shell/browser/ui/views/global_menu_bar_x11.cc | 4 ++-- shell/common/application_info.cc | 2 +- shell/renderer/renderer_client_base.cc | 4 ++-- 10 files changed, 27 insertions(+), 34 deletions(-) diff --git a/shell/browser/api/electron_api_session.cc b/shell/browser/api/electron_api_session.cc index 563d63aa95e7d..08d4861b93e24 100644 --- a/shell/browser/api/electron_api_session.cc +++ b/shell/browser/api/electron_api_session.cc @@ -1499,9 +1499,8 @@ v8::Local Session::ClearData(gin_helper::ErrorThrower thrower, // Opaque origins cannot be used with this API if (origin.opaque()) { - thrower.ThrowError( - absl::StrFormat("Invalid origin: '%s'", - origin_url.possibly_invalid_spec().c_str())); + thrower.ThrowError(absl::StrFormat( + "Invalid origin: '%s'", origin_url.possibly_invalid_spec())); return v8::Undefined(isolate); } diff --git a/shell/browser/extensions/api/management/electron_management_api_delegate.cc b/shell/browser/extensions/api/management/electron_management_api_delegate.cc index 258dc7851c92e..f555460588f8b 100644 --- a/shell/browser/extensions/api/management/electron_management_api_delegate.cc +++ b/shell/browser/extensions/api/management/electron_management_api_delegate.cc @@ -199,9 +199,8 @@ GURL ElectronManagementAPIDelegate::GetIconURL( ExtensionIconSet::Match match, bool grayscale) const { GURL icon_url(absl::StrFormat( - "%s%s/%d/%d%s", chrome::kChromeUIExtensionIconURL, - extension->id().c_str(), icon_size, static_cast(match), - grayscale ? "?grayscale=true" : "")); + "%s%s/%d/%d%s", chrome::kChromeUIExtensionIconURL, extension->id(), + icon_size, static_cast(match), grayscale ? "?grayscale=true" : "")); CHECK(icon_url.is_valid()); return icon_url; } diff --git a/shell/browser/extensions/api/scripting/scripting_api.cc b/shell/browser/extensions/api/scripting/scripting_api.cc index b140bd69b6064..33e2591bbde9a 100644 --- a/shell/browser/extensions/api/scripting/scripting_api.cc +++ b/shell/browser/extensions/api/scripting/scripting_api.cc @@ -215,7 +215,7 @@ bool CollectFramesForInjection(const api::scripting::InjectionTarget& target, ExtensionApiFrameIdMap::DocumentIdFromString(id); if (!document_id) { - *error_out = absl::StrFormat("Invalid document id %s", id.c_str()); + *error_out = absl::StrFormat("Invalid document id %s", id); return false; } @@ -227,7 +227,7 @@ bool CollectFramesForInjection(const api::scripting::InjectionTarget& target, // request. if (!frame || content::WebContents::FromRenderFrameHost(frame) != tab) { *error_out = absl::StrFormat("No document with id %s in tab with id %d", - id.c_str(), target.tab_id); + id, target.tab_id); return false; } @@ -499,8 +499,8 @@ ExtensionFunction::ResponseAction ScriptingExecuteScriptFunction::Run() { args_expression = base::JoinString(string_args, ","); } - std::string code_to_execute = absl::StrFormat( - "(%s)(%s)", injection_.func->c_str(), args_expression.c_str()); + std::string code_to_execute = + absl::StrFormat("(%s)(%s)", *injection_.func, args_expression); std::vector sources; sources.push_back(mojom::JSSource::New(std::move(code_to_execute), GURL())); diff --git a/shell/browser/hid/hid_chooser_controller.cc b/shell/browser/hid/hid_chooser_controller.cc index e1d6ed06b7a70..6cf1b0a9107f1 100644 --- a/shell/browser/hid/hid_chooser_controller.cc +++ b/shell/browser/hid/hid_chooser_controller.cc @@ -280,8 +280,8 @@ bool HidChooserController::DisplayDevice( absl::StrFormat( "Chooser dialog is not displaying a FIDO HID device: vendorId=%d, " "productId=%d, name='%s', serial='%s'", - device.vendor_id, device.product_id, device.product_name.c_str(), - device.serial_number.c_str())); + device.vendor_id, device.product_id, device.product_name, + device.serial_number)); return false; } @@ -292,8 +292,7 @@ bool HidChooserController::DisplayDevice( "the HID blocklist: vendorId=%d, " "productId=%d, name='%s', serial='%s'", device.vendor_id, device.product_id, - device.product_name.c_str(), - device.serial_number.c_str())); + device.product_name, device.serial_number)); return false; } diff --git a/shell/browser/net/proxying_url_loader_factory.cc b/shell/browser/net/proxying_url_loader_factory.cc index 572e5e4ae6ded..1bbb15b669cfc 100644 --- a/shell/browser/net/proxying_url_loader_factory.cc +++ b/shell/browser/net/proxying_url_loader_factory.cc @@ -394,7 +394,7 @@ void ProxyingURLLoaderFactory::InProgressRequest:: "HTTP/1.1 %i Internal Redirect\n" "Location: %s\n" "Non-Authoritative-Reason: WebRequest API\n\n", - kInternalRedirectStatusCode, redirect_url_.spec().c_str()); + kInternalRedirectStatusCode, redirect_url_.spec()); // Cross-origin requests need to modify the Origin header to 'null'. Since // CorsURLLoader sets |request_initiator| to the Origin request header in diff --git a/shell/browser/net/proxying_websocket.cc b/shell/browser/net/proxying_websocket.cc index 75f922fa5e40f..02ae781d0bb74 100644 --- a/shell/browser/net/proxying_websocket.cc +++ b/shell/browser/net/proxying_websocket.cc @@ -142,8 +142,7 @@ void ProxyingWebSocket::OnConnectionEstablished( base::MakeRefCounted(absl::StrFormat( "HTTP/%d.%d %d %s", handshake_response_->http_version.major_value(), handshake_response_->http_version.minor_value(), - handshake_response_->status_code, - handshake_response_->status_text.c_str())); + handshake_response_->status_code, handshake_response_->status_text)); for (const auto& header : handshake_response_->headers) response_->headers->AddHeader(header->name, header->value); diff --git a/shell/browser/ui/inspectable_web_contents.cc b/shell/browser/ui/inspectable_web_contents.cc index e80d6a6d7662d..f05476527bd73 100644 --- a/shell/browser/ui/inspectable_web_contents.cc +++ b/shell/browser/ui/inspectable_web_contents.cc @@ -139,16 +139,14 @@ double GetNextZoomLevel(double level, bool out) { } GURL GetRemoteBaseURL() { - return GURL( - absl::StrFormat("%s%s/%s/", kChromeUIDevToolsRemoteFrontendBase, - kChromeUIDevToolsRemoteFrontendPath, - embedder_support::GetChromiumGitRevision().c_str())); + return GURL(absl::StrFormat("%s%s/%s/", kChromeUIDevToolsRemoteFrontendBase, + kChromeUIDevToolsRemoteFrontendPath, + embedder_support::GetChromiumGitRevision())); } GURL GetDevToolsURL(bool can_dock) { - auto url_string = - absl::StrFormat(kChromeUIDevToolsURL, GetRemoteBaseURL().spec().c_str(), - can_dock ? "true" : ""); + auto url_string = absl::StrFormat( + kChromeUIDevToolsURL, GetRemoteBaseURL().spec(), can_dock ? "true" : ""); return GURL(url_string); } @@ -630,8 +628,7 @@ void InspectableWebContents::SetInspectedPageBounds(const gfx::Rect& rect) { void InspectableWebContents::InspectedURLChanged(const std::string& url) { if (managed_devtools_web_contents_) { if (devtools_title_.empty()) { - view_->SetTitle( - base::UTF8ToUTF16(absl::StrFormat(kTitleFormat, url.c_str()))); + view_->SetTitle(base::UTF8ToUTF16(absl::StrFormat(kTitleFormat, url))); } } } @@ -1023,9 +1020,9 @@ void InspectableWebContents::DidFinishNavigation( // most likely bug in chromium. base::ReplaceFirstSubstringAfterOffset(&it->second, 0, "var chrome", "var chrome = window.chrome "); - auto script = absl::StrFormat( - "%s(\"%s\")", it->second.c_str(), - base::Uuid::GenerateRandomV4().AsLowercaseString().c_str()); + auto script = + absl::StrFormat("%s(\"%s\")", it->second, + base::Uuid::GenerateRandomV4().AsLowercaseString()); // Invoking content::DevToolsFrontendHost::SetupExtensionsAPI(frame, script); // should be enough, but it seems to be a noop currently. frame->ExecuteJavaScriptForTests(base::UTF8ToUTF16(script), diff --git a/shell/browser/ui/views/global_menu_bar_x11.cc b/shell/browser/ui/views/global_menu_bar_x11.cc index 53e51db0857e1..feb1d9472770a 100644 --- a/shell/browser/ui/views/global_menu_bar_x11.cc +++ b/shell/browser/ui/views/global_menu_bar_x11.cc @@ -164,8 +164,8 @@ std::string GetMenuModelStatus(ElectronMenuModel* model) { int status = model->GetTypeAt(i) | (model->IsVisibleAt(i) << 3) | (model->IsEnabledAt(i) << 4) | (model->IsItemCheckedAt(i) << 5); - ret += absl::StrFormat( - "%s-%X\n", base::UTF16ToUTF8(model->GetLabelAt(i)).c_str(), status); + ret += absl::StrFormat("%s-%X\n", base::UTF16ToUTF8(model->GetLabelAt(i)), + status); } return ret; } diff --git a/shell/common/application_info.cc b/shell/common/application_info.cc index f7b04a2d04ac2..acba56d544ad0 100644 --- a/shell/common/application_info.cc +++ b/shell/common/application_info.cc @@ -44,7 +44,7 @@ std::string GetApplicationUserAgent() { } else { user_agent = absl::StrFormat( "%s/%s Chrome/%s " ELECTRON_PRODUCT_NAME "/" ELECTRON_VERSION_STRING, - name.c_str(), browser->GetVersion().c_str(), CHROME_VERSION_STRING); + name, browser->GetVersion(), CHROME_VERSION_STRING); } return embedder_support::BuildUserAgentFromProduct(user_agent); } diff --git a/shell/renderer/renderer_client_base.cc b/shell/renderer/renderer_client_base.cc index 5eb0fe04fc6e1..cc971f7b65a55 100644 --- a/shell/renderer/renderer_client_base.cc +++ b/shell/renderer/renderer_client_base.cc @@ -185,8 +185,8 @@ RendererClientBase* RendererClientBase::Get() { void RendererClientBase::BindProcess(v8::Isolate* isolate, gin_helper::Dictionary* process, content::RenderFrame* render_frame) { - auto context_id = absl::StrFormat("%s-%" PRId64, renderer_client_id_.c_str(), - ++next_context_id_); + auto context_id = + absl::StrFormat("%s-%" PRId64, renderer_client_id_, ++next_context_id_); process->SetReadOnly("isMainFrame", render_frame->IsMainFrame()); process->SetReadOnly("contextIsolated", From 1754c55c0528794ef343fd113c80e3aed6f56782 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Thu, 26 Jun 2025 16:38:14 +0200 Subject: [PATCH 3/3] docs: fix `--experimental-network-inspection` spelling (#47573) doc: fix `--experimental-network-inspection` spelling Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Niklas Wenzel --- docs/api/command-line-switches.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/command-line-switches.md b/docs/api/command-line-switches.md index e5ab9dcbe94d7..413d7143a6c58 100644 --- a/docs/api/command-line-switches.md +++ b/docs/api/command-line-switches.md @@ -290,7 +290,7 @@ Specify ways of the inspector web socket url exposure. By default inspector websocket url is available in stderr and under /json/list endpoint on `http://host:port/json/list`. -### `--experimental-network-inspector` +### `--experimental-network-inspection` Enable support for devtools network inspector events, for visibility into requests made by the nodejs `http` and `https` modules.