From f36ceae0242f3b54cfe7e7712219f410b7beff81 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 10 Jan 2024 19:00:37 -0600 Subject: [PATCH] chore: migrate base::StringPiece to std::string_view (#40915) * chore: migrate from base::StringPiece to std::string_view in keyboard_util.cc * chore: migrate from base::StringPiece to std::string_view in error_thrower.cc * chore: migrate from base::StringPiece to std::string_view in electron_api_web_contents.cc * chore: migrate from base::StringPiece to std::string_view in gin_helper/dictionary.h * chore: migrate from base::StringPiece to std::string_view in electron_api_url_loader.cc * chore: phase out internal use of base:::StringPiece `base::StringPiece` is being phased out upstream. Its code has been removed upstream and it's just a typedef for `std::string_view`. They haven't removed the typedef yet, so this PR tries to get ahead of future breakage by migrating "internal" use (i.e. leaving alone the places where the `base::StringPiece` name is coming from an upstream method that we override). Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=691162 Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4294483 Xref: https://docs.google.com/document/d/1d4RnD1uAE2t4iANR0nXy82ASIPGsPuw2mpO6v6T7JKs --- shell/app/electron_content_client.cc | 5 +- shell/app/electron_main_delegate.cc | 7 +- shell/app/node_main.cc | 5 +- shell/browser/api/electron_api_app.cc | 11 +-- shell/browser/api/electron_api_base_window.h | 3 +- shell/browser/api/electron_api_cookies.cc | 4 +- shell/browser/api/electron_api_protocol.cc | 3 +- shell/browser/api/electron_api_screen.cc | 5 +- .../electron_api_service_worker_context.cc | 3 +- .../electron_api_system_preferences_win.cc | 69 ++++++++++--------- shell/browser/api/electron_api_tray.cc | 3 +- .../browser/api/electron_api_web_contents.cc | 11 +-- shell/browser/api/electron_api_web_contents.h | 3 +- shell/browser/api/electron_api_web_request.cc | 5 +- .../electron_browser_main_parts_linux.cc | 6 +- shell/browser/event_emitter_mixin.h | 5 +- .../extensions/electron_extension_system.cc | 3 +- shell/browser/hid/hid_chooser_context.cc | 7 +- .../net/electron_url_loader_factory.cc | 3 +- shell/browser/net/node_stream_loader.cc | 5 +- shell/browser/ui/file_dialog_mac.mm | 3 +- shell/browser/ui/inspectable_web_contents.cc | 5 +- shell/browser/usb/electron_usb_delegate.cc | 3 +- .../browser/web_contents_permission_helper.cc | 3 +- shell/browser/web_contents_preferences.cc | 5 +- shell/common/api/electron_api_url_loader.cc | 13 ++-- shell/common/asar/archive.cc | 3 +- .../common/gin_converters/blink_converter.cc | 15 ++-- .../gin_converters/content_converter.cc | 16 ++--- shell/common/gin_converters/net_converter.cc | 38 +++++----- shell/common/gin_helper/arguments.cc | 4 +- shell/common/gin_helper/arguments.h | 4 +- shell/common/gin_helper/dictionary.h | 17 ++--- shell/common/gin_helper/error_thrower.cc | 15 ++-- shell/common/gin_helper/error_thrower.h | 15 ++-- shell/common/gin_helper/event_emitter.h | 5 +- .../gin_helper/object_template_builder.cc | 4 +- .../gin_helper/object_template_builder.h | 14 ++-- shell/common/gin_helper/promise.cc | 5 +- shell/common/gin_helper/promise.h | 11 +-- shell/common/keyboard_util.cc | 6 +- shell/common/keyboard_util.h | 4 +- shell/common/logging.cc | 5 +- shell/common/node_bindings.cc | 13 ++-- shell/renderer/api/electron_api_web_frame.cc | 5 +- 45 files changed, 223 insertions(+), 174 deletions(-) diff --git a/shell/app/electron_content_client.cc b/shell/app/electron_content_client.cc index 7e6da642bb73..79c3a352b94e 100644 --- a/shell/app/electron_content_client.cc +++ b/shell/app/electron_content_client.cc @@ -5,6 +5,7 @@ #include "shell/app/electron_content_client.h" #include +#include #include #include @@ -106,12 +107,12 @@ bool IsWidevineAvailable( } #endif // BUILDFLAG(ENABLE_WIDEVINE) -void AppendDelimitedSwitchToVector(const base::StringPiece cmd_switch, +void AppendDelimitedSwitchToVector(const std::string_view cmd_switch, std::vector* append_me) { auto* command_line = base::CommandLine::ForCurrentProcess(); auto switch_value = command_line->GetSwitchValueASCII(cmd_switch); if (!switch_value.empty()) { - constexpr base::StringPiece delimiter(",", 1); + constexpr std::string_view delimiter{",", 1}; auto tokens = base::SplitString(switch_value, delimiter, base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); diff --git a/shell/app/electron_main_delegate.cc b/shell/app/electron_main_delegate.cc index 19d01f471e87..a6f30149b496 100644 --- a/shell/app/electron_main_delegate.cc +++ b/shell/app/electron_main_delegate.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "base/apple/bundle_locations.h" @@ -80,9 +81,9 @@ namespace { const char kRelauncherProcess[] = "relauncher"; -constexpr base::StringPiece kElectronDisableSandbox("ELECTRON_DISABLE_SANDBOX"); -constexpr base::StringPiece kElectronEnableStackDumping( - "ELECTRON_ENABLE_STACK_DUMPING"); +constexpr std::string_view kElectronDisableSandbox{"ELECTRON_DISABLE_SANDBOX"}; +constexpr std::string_view kElectronEnableStackDumping{ + "ELECTRON_ENABLE_STACK_DUMPING"}; // Returns true if this subprocess type needs the ResourceBundle initialized // and resources loaded. diff --git a/shell/app/node_main.cc b/shell/app/node_main.cc index 469b7e31c80e..1d6af29d98cf 100644 --- a/shell/app/node_main.cc +++ b/shell/app/node_main.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -60,7 +61,7 @@ namespace { // See https://nodejs.org/api/cli.html#cli_options void ExitIfContainsDisallowedFlags(const std::vector& argv) { // Options that are unilaterally disallowed. - static constexpr auto disallowed = base::MakeFixedFlatSet({ + static constexpr auto disallowed = base::MakeFixedFlatSet({ "--enable-fips", "--force-fips", "--openssl-config", @@ -69,7 +70,7 @@ void ExitIfContainsDisallowedFlags(const std::vector& argv) { }); for (const auto& arg : argv) { - const auto key = base::StringPiece(arg).substr(0, arg.find('=')); + const auto key = std::string_view{arg}.substr(0, arg.find('=')); if (disallowed.contains(key)) { LOG(ERROR) << "The Node.js cli flag " << key << " is not supported in Electron"; diff --git a/shell/browser/api/electron_api_app.cc b/shell/browser/api/electron_api_app.cc index 1b3f213ff60a..32f772fc5462 100644 --- a/shell/browser/api/electron_api_app.cc +++ b/shell/browser/api/electron_api_app.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -157,7 +158,7 @@ struct Converter { private: static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"file", JumpListItem::Type::kFile}, {"separator", JumpListItem::Type::kSeparator}, {"task", JumpListItem::Type::kTask}, @@ -248,7 +249,7 @@ struct Converter { private: static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"custom", JumpListCategory::Type::kCustom}, {"frequent", JumpListCategory::Type::kFrequent}, {"recent", JumpListCategory::Type::kRecent}, @@ -414,7 +415,7 @@ struct Converter { v8::Local val, net::SecureDnsMode* out) { static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"automatic", net::SecureDnsMode::kAutomatic}, {"off", net::SecureDnsMode::kOff}, {"secure", net::SecureDnsMode::kSecure}, @@ -440,9 +441,9 @@ IconLoader::IconSize GetIconSizeByString(const std::string& size) { } // Return the path constant from string. -int GetPathConstant(base::StringPiece name) { +int GetPathConstant(std::string_view name) { // clang-format off - constexpr auto Lookup = base::MakeFixedFlatMap({ + constexpr auto Lookup = base::MakeFixedFlatMap({ {"appData", DIR_APP_DATA}, #if BUILDFLAG(IS_POSIX) {"cache", base::DIR_CACHE}, diff --git a/shell/browser/api/electron_api_base_window.h b/shell/browser/api/electron_api_base_window.h index 2c2d0fdf5749..7bff94b776f9 100644 --- a/shell/browser/api/electron_api_base_window.h +++ b/shell/browser/api/electron_api_base_window.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "content/public/browser/browser_task_traits.h" @@ -249,7 +250,7 @@ class BaseWindow : public gin_helper::TrackableObject, void RemoveFromParentChildWindows(); template - void EmitEventSoon(base::StringPiece eventName) { + void EmitEventSoon(std::string_view eventName) { content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(base::IgnoreResult(&BaseWindow::Emit), diff --git a/shell/browser/api/electron_api_cookies.cc b/shell/browser/api/electron_api_cookies.cc index d166af491aec..e3dc8a05da85 100644 --- a/shell/browser/api/electron_api_cookies.cc +++ b/shell/browser/api/electron_api_cookies.cc @@ -4,6 +4,8 @@ #include "shell/browser/api/electron_api_cookies.h" +#include +#include #include #include "base/time/time.h" @@ -169,7 +171,7 @@ base::Time ParseTimeProperty(const std::optional& value) { return base::Time::FromSecondsSinceUnixEpoch(*value); } -base::StringPiece InclusionStatusToString(net::CookieInclusionStatus status) { +std::string_view InclusionStatusToString(net::CookieInclusionStatus status) { if (status.HasExclusionReason(net::CookieInclusionStatus::EXCLUDE_HTTP_ONLY)) return "Failed to create httponly cookie"; if (status.HasExclusionReason( diff --git a/shell/browser/api/electron_api_protocol.cc b/shell/browser/api/electron_api_protocol.cc index 24f2cf1e178f..8d07bb4cc097 100644 --- a/shell/browser/api/electron_api_protocol.cc +++ b/shell/browser/api/electron_api_protocol.cc @@ -4,6 +4,7 @@ #include "shell/browser/api/electron_api_protocol.h" +#include #include #include "base/command_line.h" @@ -193,7 +194,7 @@ const char* const kBuiltinSchemes[] = { }; // Convert error code to string. -constexpr base::StringPiece ErrorCodeToString(ProtocolError error) { +constexpr std::string_view ErrorCodeToString(ProtocolError error) { switch (error) { case ProtocolError::kRegistered: return "The scheme has been registered"; diff --git a/shell/browser/api/electron_api_screen.cc b/shell/browser/api/electron_api_screen.cc index 73e5c935970e..ed882742051b 100644 --- a/shell/browser/api/electron_api_screen.cc +++ b/shell/browser/api/electron_api_screen.cc @@ -5,6 +5,7 @@ #include "shell/browser/api/electron_api_screen.h" #include +#include #include "base/functional/bind.h" #include "gin/dictionary.h" @@ -49,13 +50,13 @@ std::vector MetricsToArray(uint32_t metrics) { } void DelayEmit(Screen* screen, - base::StringPiece name, + const std::string_view name, const display::Display& display) { screen->Emit(name, display); } void DelayEmitWithMetrics(Screen* screen, - base::StringPiece name, + const std::string_view name, const display::Display& display, const std::vector& metrics) { screen->Emit(name, display, metrics); diff --git a/shell/browser/api/electron_api_service_worker_context.cc b/shell/browser/api/electron_api_service_worker_context.cc index 0c910a618a08..e11b9ce91c5c 100644 --- a/shell/browser/api/electron_api_service_worker_context.cc +++ b/shell/browser/api/electron_api_service_worker_context.cc @@ -4,6 +4,7 @@ #include "shell/browser/api/electron_api_service_worker_context.h" +#include #include #include "chrome/browser/browser_process.h" @@ -24,7 +25,7 @@ namespace electron::api { namespace { -constexpr base::StringPiece MessageSourceToString( +constexpr std::string_view MessageSourceToString( const blink::mojom::ConsoleMessageSource source) { switch (source) { case blink::mojom::ConsoleMessageSource::kXml: diff --git a/shell/browser/api/electron_api_system_preferences_win.cc b/shell/browser/api/electron_api_system_preferences_win.cc index 4c96b864994e..3ebeea47977b 100644 --- a/shell/browser/api/electron_api_system_preferences_win.cc +++ b/shell/browser/api/electron_api_system_preferences_win.cc @@ -2,10 +2,12 @@ // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. +#include +#include + #include #include #include -#include #include "shell/browser/api/electron_api_system_preferences.h" @@ -98,39 +100,38 @@ std::string SystemPreferences::GetAccentColor() { std::string SystemPreferences::GetColor(gin_helper::ErrorThrower thrower, const std::string& color) { - static constexpr auto Lookup = - base::MakeFixedFlatMap({ - {"3d-dark-shadow", COLOR_3DDKSHADOW}, - {"3d-face", COLOR_3DFACE}, - {"3d-highlight", COLOR_3DHIGHLIGHT}, - {"3d-light", COLOR_3DLIGHT}, - {"3d-shadow", COLOR_3DSHADOW}, - {"active-border", COLOR_ACTIVEBORDER}, - {"active-caption", COLOR_ACTIVECAPTION}, - {"active-caption-gradient", COLOR_GRADIENTACTIVECAPTION}, - {"app-workspace", COLOR_APPWORKSPACE}, - {"button-text", COLOR_BTNTEXT}, - {"caption-text", COLOR_CAPTIONTEXT}, - {"desktop", COLOR_DESKTOP}, - {"disabled-text", COLOR_GRAYTEXT}, - {"highlight", COLOR_HIGHLIGHT}, - {"highlight-text", COLOR_HIGHLIGHTTEXT}, - {"hotlight", COLOR_HOTLIGHT}, - {"inactive-border", COLOR_INACTIVEBORDER}, - {"inactive-caption", COLOR_INACTIVECAPTION}, - {"inactive-caption-gradient", COLOR_GRADIENTINACTIVECAPTION}, - {"inactive-caption-text", COLOR_INACTIVECAPTIONTEXT}, - {"info-background", COLOR_INFOBK}, - {"info-text", COLOR_INFOTEXT}, - {"menu", COLOR_MENU}, - {"menu-highlight", COLOR_MENUHILIGHT}, - {"menu-text", COLOR_MENUTEXT}, - {"menubar", COLOR_MENUBAR}, - {"scrollbar", COLOR_SCROLLBAR}, - {"window", COLOR_WINDOW}, - {"window-frame", COLOR_WINDOWFRAME}, - {"window-text", COLOR_WINDOWTEXT}, - }); + static constexpr auto Lookup = base::MakeFixedFlatMap({ + {"3d-dark-shadow", COLOR_3DDKSHADOW}, + {"3d-face", COLOR_3DFACE}, + {"3d-highlight", COLOR_3DHIGHLIGHT}, + {"3d-light", COLOR_3DLIGHT}, + {"3d-shadow", COLOR_3DSHADOW}, + {"active-border", COLOR_ACTIVEBORDER}, + {"active-caption", COLOR_ACTIVECAPTION}, + {"active-caption-gradient", COLOR_GRADIENTACTIVECAPTION}, + {"app-workspace", COLOR_APPWORKSPACE}, + {"button-text", COLOR_BTNTEXT}, + {"caption-text", COLOR_CAPTIONTEXT}, + {"desktop", COLOR_DESKTOP}, + {"disabled-text", COLOR_GRAYTEXT}, + {"highlight", COLOR_HIGHLIGHT}, + {"highlight-text", COLOR_HIGHLIGHTTEXT}, + {"hotlight", COLOR_HOTLIGHT}, + {"inactive-border", COLOR_INACTIVEBORDER}, + {"inactive-caption", COLOR_INACTIVECAPTION}, + {"inactive-caption-gradient", COLOR_GRADIENTINACTIVECAPTION}, + {"inactive-caption-text", COLOR_INACTIVECAPTIONTEXT}, + {"info-background", COLOR_INFOBK}, + {"info-text", COLOR_INFOTEXT}, + {"menu", COLOR_MENU}, + {"menu-highlight", COLOR_MENUHILIGHT}, + {"menu-text", COLOR_MENUTEXT}, + {"menubar", COLOR_MENUBAR}, + {"scrollbar", COLOR_SCROLLBAR}, + {"window", COLOR_WINDOW}, + {"window-frame", COLOR_WINDOWFRAME}, + {"window-text", COLOR_WINDOWTEXT}, + }); if (const auto* iter = Lookup.find(color); iter != Lookup.end()) return ToRGBAHex(color_utils::GetSysSkColor(iter->second)); diff --git a/shell/browser/api/electron_api_tray.cc b/shell/browser/api/electron_api_tray.cc index 5ecb4b851ac1..eaadc4b51ac7 100644 --- a/shell/browser/api/electron_api_tray.cc +++ b/shell/browser/api/electron_api_tray.cc @@ -5,6 +5,7 @@ #include "shell/browser/api/electron_api_tray.h" #include +#include #include "base/containers/fixed_flat_map.h" #include "gin/dictionary.h" @@ -32,7 +33,7 @@ struct Converter { electron::TrayIcon::IconType* out) { using Val = electron::TrayIcon::IconType; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"custom", Val::kCustom}, {"error", Val::kError}, {"info", Val::kInfo}, diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index 893f51e7ba5e..9f8e304f0d0b 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -205,7 +206,7 @@ struct Converter { printing::mojom::MarginType* out) { using Val = printing::mojom::MarginType; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"custom", Val::kCustomMargins}, {"default", Val::kDefaultMargins}, {"none", Val::kNoMargins}, @@ -222,7 +223,7 @@ struct Converter { printing::mojom::DuplexMode* out) { using Val = printing::mojom::DuplexMode; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"longEdge", Val::kLongEdge}, {"shortEdge", Val::kShortEdge}, {"simplex", Val::kSimplex}, @@ -284,7 +285,7 @@ struct Converter { content::SavePageType* out) { using Val = content::SavePageType; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"htmlcomplete", Val::SAVE_PAGE_TYPE_AS_COMPLETE_HTML}, {"htmlonly", Val::SAVE_PAGE_TYPE_AS_ONLY_HTML}, {"mhtml", Val::SAVE_PAGE_TYPE_AS_MHTML}, @@ -329,7 +330,7 @@ struct Converter { electron::api::WebContents::Type* out) { using Val = electron::api::WebContents::Type; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"backgroundPage", Val::kBackgroundPage}, {"browserView", Val::kBrowserView}, {"offscreen", Val::kOffScreen}, @@ -357,7 +358,7 @@ namespace electron::api { namespace { -constexpr base::StringPiece CursorTypeToString( +constexpr std::string_view CursorTypeToString( ui::mojom::CursorType cursor_type) { switch (cursor_type) { case ui::mojom::CursorType::kPointer: diff --git a/shell/browser/api/electron_api_web_contents.h b/shell/browser/api/electron_api_web_contents.h index 27f6d2764074..b867dd6bdb0c 100644 --- a/shell/browser/api/electron_api_web_contents.h +++ b/shell/browser/api/electron_api_web_contents.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -371,7 +372,7 @@ class WebContents : public ExclusiveAccessContext, // this.emit(name, new Event(sender, message), args...); template - bool EmitWithSender(base::StringPiece name, + bool EmitWithSender(const std::string_view name, content::RenderFrameHost* frame, electron::mojom::ElectronApiIPC::InvokeCallback callback, Args&&... args) { diff --git a/shell/browser/api/electron_api_web_request.cc b/shell/browser/api/electron_api_web_request.cc index 5acac865c302..3a592b5447ec 100644 --- a/shell/browser/api/electron_api_web_request.cc +++ b/shell/browser/api/electron_api_web_request.cc @@ -6,6 +6,7 @@ #include #include +#include #include #include "base/containers/contains.h" @@ -33,7 +34,7 @@ #include "shell/common/gin_helper/dictionary.h" static constexpr auto ResourceTypes = - base::MakeFixedFlatMap({ {"cspReport", extensions::WebRequestResourceType::CSP_REPORT}, {"font", extensions::WebRequestResourceType::FONT}, @@ -77,7 +78,7 @@ struct UserData : public base::SupportsUserData::Data { raw_ptr data; }; -extensions::WebRequestResourceType ParseResourceType(base::StringPiece value) { +extensions::WebRequestResourceType ParseResourceType(std::string_view value) { if (const auto* iter = ResourceTypes.find(value); iter != ResourceTypes.end()) return iter->second; diff --git a/shell/browser/electron_browser_main_parts_linux.cc b/shell/browser/electron_browser_main_parts_linux.cc index 543887ffb102..dd44fe7f973c 100644 --- a/shell/browser/electron_browser_main_parts_linux.cc +++ b/shell/browser/electron_browser_main_parts_linux.cc @@ -4,6 +4,8 @@ #include "shell/browser/electron_browser_main_parts.h" +#include + #include "base/command_line.h" #include "base/environment.h" #include "ui/base/ozone_buildflags.h" @@ -16,8 +18,8 @@ #include "shell/common/thread_restrictions.h" #endif -constexpr base::StringPiece kElectronOzonePlatformHint( - "ELECTRON_OZONE_PLATFORM_HINT"); +constexpr std::string_view kElectronOzonePlatformHint{ + "ELECTRON_OZONE_PLATFORM_HINT"}; #if BUILDFLAG(IS_OZONE_WAYLAND) diff --git a/shell/browser/event_emitter_mixin.h b/shell/browser/event_emitter_mixin.h index 3719d3bed1dd..36a066ffedc2 100644 --- a/shell/browser/event_emitter_mixin.h +++ b/shell/browser/event_emitter_mixin.h @@ -5,6 +5,7 @@ #ifndef ELECTRON_SHELL_BROWSER_EVENT_EMITTER_MIXIN_H_ #define ELECTRON_SHELL_BROWSER_EVENT_EMITTER_MIXIN_H_ +#include #include #include "gin/handle.h" @@ -25,7 +26,7 @@ class EventEmitterMixin { // this.emit(name, new Event(), args...); // Returns true if event.preventDefault() was called during processing. template - bool Emit(base::StringPiece name, Args&&... args) { + bool Emit(const std::string_view name, Args&&... args) { v8::Isolate* isolate = electron::JavascriptEnvironment::GetIsolate(); v8::HandleScope handle_scope(isolate); v8::Local wrapper; @@ -39,7 +40,7 @@ class EventEmitterMixin { // this.emit(name, args...); template - void EmitWithoutEvent(base::StringPiece name, Args&&... args) { + void EmitWithoutEvent(const std::string_view name, Args&&... args) { v8::Isolate* isolate = electron::JavascriptEnvironment::GetIsolate(); v8::HandleScope handle_scope(isolate); v8::Local wrapper; diff --git a/shell/browser/extensions/electron_extension_system.cc b/shell/browser/extensions/electron_extension_system.cc index 80d1bc0dfab4..e74d55646f10 100644 --- a/shell/browser/extensions/electron_extension_system.cc +++ b/shell/browser/extensions/electron_extension_system.cc @@ -6,6 +6,7 @@ #include #include +#include #include #include "base/files/file_path.h" @@ -93,7 +94,7 @@ void ElectronExtensionSystem::InitForRegularProfile(bool extensions_enabled) { } std::unique_ptr ParseManifest( - base::StringPiece manifest_contents) { + const std::string_view manifest_contents) { JSONStringValueDeserializer deserializer(manifest_contents); std::unique_ptr manifest = deserializer.Deserialize(nullptr, nullptr); diff --git a/shell/browser/hid/hid_chooser_context.cc b/shell/browser/hid/hid_chooser_context.cc index dad076e8e7ad..def10f400e69 100644 --- a/shell/browser/hid/hid_chooser_context.cc +++ b/shell/browser/hid/hid_chooser_context.cc @@ -6,6 +6,10 @@ #include +#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) +#include +#endif // BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) + #include "base/command_line.h" #include "base/containers/contains.h" #include "base/strings/string_number_conversions.h" @@ -33,7 +37,6 @@ #if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) #include "base/containers/fixed_flat_set.h" -#include "base/strings/string_piece.h" #include "extensions/common/constants.h" #endif // BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) @@ -189,7 +192,7 @@ bool HidChooserContext::HasDevicePermission( bool HidChooserContext::IsFidoAllowedForOrigin(const url::Origin& origin) { #if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) static constexpr auto kPrivilegedExtensionIds = - base::MakeFixedFlatSet({ + base::MakeFixedFlatSet({ "ckcendljdlmgnhghiaomidhiiclmapok", // gnubbyd-v3 dev "lfboplenmmjcmpbkeemecobbadnmpfhi", // gnubbyd-v3 prod }); diff --git a/shell/browser/net/electron_url_loader_factory.cc b/shell/browser/net/electron_url_loader_factory.cc index e07730ccdede..9c74ad01af3a 100644 --- a/shell/browser/net/electron_url_loader_factory.cc +++ b/shell/browser/net/electron_url_loader_factory.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "base/containers/fixed_flat_map.h" @@ -48,7 +49,7 @@ struct Converter { electron::ProtocolType* out) { using Val = electron::ProtocolType; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ // note "free" is internal type, not allowed to be passed from user {"buffer", Val::kBuffer}, {"file", Val::kFile}, diff --git a/shell/browser/net/node_stream_loader.cc b/shell/browser/net/node_stream_loader.cc index d11e5eccba7a..ca7c6f982026 100644 --- a/shell/browser/net/node_stream_loader.cc +++ b/shell/browser/net/node_stream_loader.cc @@ -4,6 +4,7 @@ #include "shell/browser/net/node_stream_loader.h" +#include #include #include "mojo/public/cpp/system/string_data_source.h" @@ -135,8 +136,8 @@ void NodeStreamLoader::ReadMore() { is_reading_ = false; is_writing_ = true; producer_->Write(std::make_unique( - base::StringPiece(node::Buffer::Data(buffer), - node::Buffer::Length(buffer)), + std::string_view{node::Buffer::Data(buffer), + node::Buffer::Length(buffer)}, mojo::StringDataSource::AsyncWritingMode:: STRING_STAYS_VALID_UNTIL_COMPLETION), base::BindOnce(&NodeStreamLoader::DidWrite, weak)); diff --git a/shell/browser/ui/file_dialog_mac.mm b/shell/browser/ui/file_dialog_mac.mm index c8d62c881d2d..e769a11be0a4 100644 --- a/shell/browser/ui/file_dialog_mac.mm +++ b/shell/browser/ui/file_dialog_mac.mm @@ -5,6 +5,7 @@ #include "shell/browser/ui/file_dialog.h" #include +#include #include #include @@ -441,7 +442,7 @@ void SaveDialogCompletion(int chosen, dict.Set("canceled", true); dict.Set("filePath", base::FilePath()); #if IS_MAS_BUILD() - dict.Set("bookmark", base::StringPiece()); + dict.Set("bookmark", std::string_view{}); #endif } else { std::string path = base::SysNSStringToUTF8([[dialog URL] path]); diff --git a/shell/browser/ui/inspectable_web_contents.cc b/shell/browser/ui/inspectable_web_contents.cc index c05601ce9dc0..50ea5917b501 100644 --- a/shell/browser/ui/inspectable_web_contents.cc +++ b/shell/browser/ui/inspectable_web_contents.cc @@ -6,6 +6,7 @@ #include "shell/browser/ui/inspectable_web_contents.h" #include +#include #include #include "base/base64.h" @@ -959,8 +960,8 @@ void InspectableWebContents::DispatchProtocolMessage( if (!frontend_loaded_) return; - base::StringPiece str_message(reinterpret_cast(message.data()), - message.size()); + const std::string_view str_message{ + reinterpret_cast(message.data()), message.size()}; if (str_message.length() < kMaxMessageChunkSize) { CallClientFunction("DevToolsAPI", "dispatchMessage", base::Value(std::string(str_message))); diff --git a/shell/browser/usb/electron_usb_delegate.cc b/shell/browser/usb/electron_usb_delegate.cc index 31f834fa7fa8..d778a22691b8 100644 --- a/shell/browser/usb/electron_usb_delegate.cc +++ b/shell/browser/usb/electron_usb_delegate.cc @@ -4,6 +4,7 @@ #include "shell/browser/usb/electron_usb_delegate.h" +#include #include #include "base/containers/contains.h" @@ -45,7 +46,7 @@ electron::UsbChooserContext* GetChooserContext( // These extensions can claim the smart card USB class and automatically gain // permissions for devices that have an interface with this class. constexpr auto kSmartCardPrivilegedExtensionIds = - base::MakeFixedFlatSet({ + base::MakeFixedFlatSet({ // Smart Card Connector Extension and its Beta version, see // crbug.com/1233881. "khpfeaanjngmcnplbdlpegiifgpfgdco", diff --git a/shell/browser/web_contents_permission_helper.cc b/shell/browser/web_contents_permission_helper.cc index 43506d351351..df931403d346 100644 --- a/shell/browser/web_contents_permission_helper.cc +++ b/shell/browser/web_contents_permission_helper.cc @@ -4,6 +4,7 @@ #include "shell/browser/web_contents_permission_helper.h" +#include #include #include "content/public/browser/browser_context.h" @@ -17,7 +18,7 @@ namespace { -constexpr base::StringPiece MediaStreamTypeToString( +constexpr std::string_view MediaStreamTypeToString( blink::mojom::MediaStreamType type) { switch (type) { case blink::mojom::MediaStreamType::DEVICE_AUDIO_CAPTURE: diff --git a/shell/browser/web_contents_preferences.cc b/shell/browser/web_contents_preferences.cc index 4a7ab227708f..ee305da3c4a2 100644 --- a/shell/browser/web_contents_preferences.cc +++ b/shell/browser/web_contents_preferences.cc @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -46,7 +47,7 @@ struct Converter { blink::mojom::AutoplayPolicy* out) { using Val = blink::mojom::AutoplayPolicy; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"document-user-activation-required", Val::kDocumentUserActivationRequired}, {"no-user-gesture-required", Val::kNoUserGestureRequired}, @@ -63,7 +64,7 @@ struct Converter { blink::mojom::V8CacheOptions* out) { using Val = blink::mojom::V8CacheOptions; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"bypassHeatCheck", Val::kCodeWithoutHeatCheck}, {"bypassHeatCheckAndEagerCompile", Val::kFullCodeWithoutHeatCheck}, {"code", Val::kCode}, diff --git a/shell/common/api/electron_api_url_loader.cc b/shell/common/api/electron_api_url_loader.cc index 975c571cd30c..d8635393a189 100644 --- a/shell/common/api/electron_api_url_loader.cc +++ b/shell/common/api/electron_api_url_loader.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -68,7 +69,7 @@ struct Converter { network::mojom::CredentialsMode* out) { using Val = network::mojom::CredentialsMode; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"include", Val::kInclude}, {"omit", Val::kOmit}, // Note: This only makes sense if the request @@ -86,7 +87,7 @@ struct Converter { blink::mojom::FetchCacheMode* out) { using Val = blink::mojom::FetchCacheMode; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"default", Val::kDefault}, {"force-cache", Val::kForceCache}, {"no-cache", Val::kValidateCache}, @@ -106,7 +107,7 @@ struct Converter { using Val = net::ReferrerPolicy; // clang-format off static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"", Val::REDUCE_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN}, {"no-referrer", Val::NO_REFERRER}, {"no-referrer-when-downgrade", Val::CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE}, @@ -546,7 +547,7 @@ gin::Handle SimpleURLLoaderWrapper::Create( if (std::string mode; opts.Get("mode", &mode)) { using Val = network::mojom::RequestMode; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"cors", Val::kCors}, {"navigate", Val::kNavigate}, {"no-cors", Val::kNoCors}, @@ -559,7 +560,7 @@ gin::Handle SimpleURLLoaderWrapper::Create( if (std::string destination; opts.Get("destination", &destination)) { using Val = network::mojom::RequestDestination; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"audio", Val::kAudio}, {"audioworklet", Val::kAudioWorklet}, {"document", Val::kDocument}, @@ -694,7 +695,7 @@ gin::Handle SimpleURLLoaderWrapper::Create( return ret; } -void SimpleURLLoaderWrapper::OnDataReceived(base::StringPiece string_piece, +void SimpleURLLoaderWrapper::OnDataReceived(std::string_view string_piece, base::OnceClosure resume) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); v8::Isolate* isolate = JavascriptEnvironment::GetIsolate(); diff --git a/shell/common/asar/archive.cc b/shell/common/asar/archive.cc index 578dd3b6a12b..35a2c1c54d51 100644 --- a/shell/common/asar/archive.cc +++ b/shell/common/asar/archive.cc @@ -5,6 +5,7 @@ #include "shell/common/asar/archive.h" #include +#include #include #include @@ -105,7 +106,7 @@ bool FillFileInfoWithNode(Archive::FileInfo* info, const std::string* offset = node->FindString("offset"); if (offset && - base::StringToUint64(base::StringPiece(*offset), &info->offset)) { + base::StringToUint64(std::string_view{*offset}, &info->offset)) { info->offset += header_size; } else { return false; diff --git a/shell/common/gin_converters/blink_converter.cc b/shell/common/gin_converters/blink_converter.cc index ae886e7d0aea..e980f39f81da 100644 --- a/shell/common/gin_converters/blink_converter.cc +++ b/shell/common/gin_converters/blink_converter.cc @@ -6,6 +6,7 @@ #include #include +#include #include #include "base/containers/fixed_flat_map.h" @@ -135,7 +136,7 @@ struct Converter { blink::WebMouseEvent::Button* out) { using Val = blink::WebMouseEvent::Button; static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"left", Val::kLeft}, {"middle", Val::kMiddle}, {"right", Val::kRight}, @@ -148,7 +149,7 @@ struct Converter { // these are the modifier names we both accept and return static constexpr auto Modifiers = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"alt", blink::WebInputEvent::Modifiers::kAltKey}, {"capslock", blink::WebInputEvent::Modifiers::kCapsLockOn}, {"control", blink::WebInputEvent::Modifiers::kControlKey}, @@ -167,14 +168,14 @@ static constexpr auto Modifiers = // these are the modifier names we accept but do not return static constexpr auto ModifierAliases = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"cmd", blink::WebInputEvent::Modifiers::kMetaKey}, {"command", blink::WebInputEvent::Modifiers::kMetaKey}, {"ctrl", blink::WebInputEvent::Modifiers::kControlKey}, }); static constexpr auto ReferrerPolicies = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"default", network::mojom::ReferrerPolicy::kDefault}, {"no-referrer", network::mojom::ReferrerPolicy::kNever}, {"no-referrer-when-downgrade", network::mojom::ReferrerPolicy::kNoReferrerWhenDowngrade}, @@ -197,8 +198,8 @@ struct Converter { } }; -std::vector ModifiersToArray(int modifiers) { - std::vector modifier_strings; +std::vector ModifiersToArray(int modifiers) { + std::vector modifier_strings; for (const auto& [name, mask] : Modifiers) if (mask & modifiers) @@ -463,7 +464,7 @@ v8::Local Converter>::ToV8( v8::Isolate* isolate, const std::optional& in) { - base::StringPiece str{"none"}; + std::string_view str{"none"}; if (in.has_value()) { switch (*in) { case blink::mojom::FormControlType::kButtonButton: diff --git a/shell/common/gin_converters/content_converter.cc b/shell/common/gin_converters/content_converter.cc index 8b016584e54d..206c91e40a91 100644 --- a/shell/common/gin_converters/content_converter.cc +++ b/shell/common/gin_converters/content_converter.cc @@ -5,6 +5,7 @@ #include "shell/common/gin_converters/content_converter.h" #include +#include #include "base/containers/fixed_flat_map.h" #include "content/public/browser/context_menu_params.h" @@ -24,7 +25,7 @@ namespace { -[[nodiscard]] constexpr base::StringPiece FormControlToInputFieldTypeString( +[[nodiscard]] constexpr std::string_view FormControlToInputFieldTypeString( const std::optional form_control_type) { if (!form_control_type) return "none"; @@ -70,7 +71,7 @@ namespace { namespace gin { static constexpr auto MenuSourceTypes = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"adjustSelection", ui::MENU_SOURCE_ADJUST_SELECTION}, {"adjustSelectionReset", ui::MENU_SOURCE_ADJUST_SELECTION_RESET}, {"keyboard", ui::MENU_SOURCE_KEYBOARD}, @@ -285,12 +286,11 @@ bool Converter::FromV8(v8::Isolate* isolate, v8::Local val, content::StopFindAction* out) { using Val = content::StopFindAction; - static constexpr auto Lookup = - base::MakeFixedFlatMap({ - {"activateSelection", Val::STOP_FIND_ACTION_ACTIVATE_SELECTION}, - {"clearSelection", Val::STOP_FIND_ACTION_CLEAR_SELECTION}, - {"keepSelection", Val::STOP_FIND_ACTION_KEEP_SELECTION}, - }); + static constexpr auto Lookup = base::MakeFixedFlatMap({ + {"activateSelection", Val::STOP_FIND_ACTION_ACTIVATE_SELECTION}, + {"clearSelection", Val::STOP_FIND_ACTION_CLEAR_SELECTION}, + {"keepSelection", Val::STOP_FIND_ACTION_KEEP_SELECTION}, + }); return FromV8WithLookup(isolate, val, Lookup, out); } diff --git a/shell/common/gin_converters/net_converter.cc b/shell/common/gin_converters/net_converter.cc index 888bc8ba0a07..ec89a403e573 100644 --- a/shell/common/gin_converters/net_converter.cc +++ b/shell/common/gin_converters/net_converter.cc @@ -5,6 +5,7 @@ #include "shell/common/gin_converters/net_converter.h" #include +#include #include #include @@ -691,7 +692,7 @@ bool Converter::FromV8(v8::Isolate* isolate, v8::Local val, net::DnsQueryType* out) { static constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"A", net::DnsQueryType::A}, {"AAAA", net::DnsQueryType::AAAA}, }); @@ -703,14 +704,13 @@ bool Converter::FromV8(v8::Isolate* isolate, v8::Local val, net::HostResolverSource* out) { using Val = net::HostResolverSource; - static constexpr auto Lookup = - base::MakeFixedFlatMap({ - {"any", Val::ANY}, - {"dns", Val::DNS}, - {"localOnly", Val::LOCAL_ONLY}, - {"mdns", Val::MULTICAST_DNS}, - {"system", Val::SYSTEM}, - }); + static constexpr auto Lookup = base::MakeFixedFlatMap({ + {"any", Val::ANY}, + {"dns", Val::DNS}, + {"localOnly", Val::LOCAL_ONLY}, + {"mdns", Val::MULTICAST_DNS}, + {"system", Val::SYSTEM}, + }); return FromV8WithLookup(isolate, val, Lookup, out); } @@ -720,12 +720,11 @@ bool Converter::FromV8( v8::Local val, network::mojom::ResolveHostParameters::CacheUsage* out) { using Val = network::mojom::ResolveHostParameters::CacheUsage; - static constexpr auto Lookup = - base::MakeFixedFlatMap({ - {"allowed", Val::ALLOWED}, - {"disallowed", Val::DISALLOWED}, - {"staleAllowed", Val::STALE_ALLOWED}, - }); + static constexpr auto Lookup = base::MakeFixedFlatMap({ + {"allowed", Val::ALLOWED}, + {"disallowed", Val::DISALLOWED}, + {"staleAllowed", Val::STALE_ALLOWED}, + }); return FromV8WithLookup(isolate, val, Lookup, out); } @@ -735,11 +734,10 @@ bool Converter::FromV8( v8::Local val, network::mojom::SecureDnsPolicy* out) { using Val = network::mojom::SecureDnsPolicy; - static constexpr auto Lookup = - base::MakeFixedFlatMap({ - {"allow", Val::ALLOW}, - {"disable", Val::DISABLE}, - }); + static constexpr auto Lookup = base::MakeFixedFlatMap({ + {"allow", Val::ALLOW}, + {"disable", Val::DISABLE}, + }); return FromV8WithLookup(isolate, val, Lookup, out); } diff --git a/shell/common/gin_helper/arguments.cc b/shell/common/gin_helper/arguments.cc index 4e82443ca8e7..272aa7f01efa 100644 --- a/shell/common/gin_helper/arguments.cc +++ b/shell/common/gin_helper/arguments.cc @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE.chromium file. +#include + #include "shell/common/gin_helper/arguments.h" #include "v8/include/v8-exception.h" @@ -15,7 +17,7 @@ void Arguments::ThrowError() const { gin::Arguments::ThrowError(); } -void Arguments::ThrowError(base::StringPiece message) const { +void Arguments::ThrowError(const std::string_view message) const { isolate()->ThrowException( v8::Exception::Error(gin::StringToV8(isolate(), message))); } diff --git a/shell/common/gin_helper/arguments.h b/shell/common/gin_helper/arguments.h index 81a37f8476e6..eb7920097228 100644 --- a/shell/common/gin_helper/arguments.h +++ b/shell/common/gin_helper/arguments.h @@ -5,6 +5,8 @@ #ifndef ELECTRON_SHELL_COMMON_GIN_HELPER_ARGUMENTS_H_ #define ELECTRON_SHELL_COMMON_GIN_HELPER_ARGUMENTS_H_ +#include + #include "gin/arguments.h" namespace gin_helper { @@ -40,7 +42,7 @@ class Arguments : public gin::Arguments { // Throw error with custom error message. void ThrowError() const; - void ThrowError(base::StringPiece message) const; + void ThrowError(std::string_view message) const; private: // MUST NOT ADD ANY DATA MEMBER. diff --git a/shell/common/gin_helper/dictionary.h b/shell/common/gin_helper/dictionary.h index b490e5d6d0b8..efe36fb09997 100644 --- a/shell/common/gin_helper/dictionary.h +++ b/shell/common/gin_helper/dictionary.h @@ -6,6 +6,7 @@ #define ELECTRON_SHELL_COMMON_GIN_HELPER_DICTIONARY_H_ #include +#include #include #include @@ -68,7 +69,7 @@ class Dictionary : public gin::Dictionary { // Like normal Get but put result in an std::optional. template - bool GetOptional(base::StringPiece key, std::optional* out) const { + bool GetOptional(const std::string_view key, std::optional* out) const { T ret; if (Get(key, &ret)) { out->emplace(std::move(ret)); @@ -79,7 +80,7 @@ class Dictionary : public gin::Dictionary { } template - bool GetHidden(base::StringPiece key, T* out) const { + bool GetHidden(std::string_view key, T* out) const { v8::Local context = isolate()->GetCurrentContext(); v8::Local privateKey = v8::Private::ForApi(isolate(), gin::StringToV8(isolate(), key)); @@ -92,7 +93,7 @@ class Dictionary : public gin::Dictionary { } template - bool SetHidden(base::StringPiece key, T val) { + bool SetHidden(std::string_view key, T val) { v8::Local v8_value; if (!gin::TryConvertToV8(isolate(), val, &v8_value)) return false; @@ -105,7 +106,7 @@ class Dictionary : public gin::Dictionary { } template - bool SetMethod(base::StringPiece key, const T& callback) { + bool SetMethod(std::string_view key, const T& callback) { auto context = isolate()->GetCurrentContext(); auto templ = CallbackTraits::CreateTemplate(isolate(), callback); return GetHandle() @@ -147,7 +148,7 @@ class Dictionary : public gin::Dictionary { } template - bool SetReadOnly(base::StringPiece key, const T& val) { + bool SetReadOnly(std::string_view key, const T& val) { v8::Local v8_value; if (!gin::TryConvertToV8(isolate(), val, &v8_value)) return false; @@ -160,7 +161,7 @@ class Dictionary : public gin::Dictionary { // Note: If we plan to add more Set methods, consider adding an option instead // of copying code. template - bool SetReadOnlyNonConfigurable(base::StringPiece key, T val) { + bool SetReadOnlyNonConfigurable(std::string_view key, T val) { v8::Local v8_value; if (!gin::TryConvertToV8(isolate(), val, &v8_value)) return false; @@ -171,13 +172,13 @@ class Dictionary : public gin::Dictionary { return !result.IsNothing() && result.FromJust(); } - bool Has(base::StringPiece key) const { + bool Has(std::string_view key) const { v8::Maybe result = GetHandle()->Has(isolate()->GetCurrentContext(), gin::StringToV8(isolate(), key)); return !result.IsNothing() && result.FromJust(); } - bool Delete(base::StringPiece key) { + bool Delete(std::string_view key) { v8::Maybe result = GetHandle()->Delete( isolate()->GetCurrentContext(), gin::StringToV8(isolate(), key)); return !result.IsNothing() && result.FromJust(); diff --git a/shell/common/gin_helper/error_thrower.cc b/shell/common/gin_helper/error_thrower.cc index 8e02e573afba..0dbfce5cdf81 100644 --- a/shell/common/gin_helper/error_thrower.cc +++ b/shell/common/gin_helper/error_thrower.cc @@ -2,6 +2,8 @@ // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. +#include + #include "shell/common/gin_helper/error_thrower.h" #include "gin/converter.h" @@ -15,27 +17,28 @@ ErrorThrower::ErrorThrower(v8::Isolate* isolate) : isolate_(isolate) {} // costly to invoke ErrorThrower::ErrorThrower() : isolate_(v8::Isolate::GetCurrent()) {} -void ErrorThrower::ThrowError(base::StringPiece err_msg) const { +void ErrorThrower::ThrowError(const std::string_view err_msg) const { Throw(v8::Exception::Error, err_msg); } -void ErrorThrower::ThrowTypeError(base::StringPiece err_msg) const { +void ErrorThrower::ThrowTypeError(const std::string_view err_msg) const { Throw(v8::Exception::TypeError, err_msg); } -void ErrorThrower::ThrowRangeError(base::StringPiece err_msg) const { +void ErrorThrower::ThrowRangeError(const std::string_view err_msg) const { Throw(v8::Exception::RangeError, err_msg); } -void ErrorThrower::ThrowReferenceError(base::StringPiece err_msg) const { +void ErrorThrower::ThrowReferenceError(const std::string_view err_msg) const { Throw(v8::Exception::ReferenceError, err_msg); } -void ErrorThrower::ThrowSyntaxError(base::StringPiece err_msg) const { +void ErrorThrower::ThrowSyntaxError(const std::string_view err_msg) const { Throw(v8::Exception::SyntaxError, err_msg); } -void ErrorThrower::Throw(ErrorGenerator gen, base::StringPiece err_msg) const { +void ErrorThrower::Throw(ErrorGenerator gen, + const std::string_view err_msg) const { v8::Local exception = gen(gin::StringToV8(isolate_, err_msg), {}); if (!isolate_->IsExecutionTerminating()) isolate_->ThrowException(exception); diff --git a/shell/common/gin_helper/error_thrower.h b/shell/common/gin_helper/error_thrower.h index e09072fba753..e5ace0a28f87 100644 --- a/shell/common/gin_helper/error_thrower.h +++ b/shell/common/gin_helper/error_thrower.h @@ -5,8 +5,9 @@ #ifndef ELECTRON_SHELL_COMMON_GIN_HELPER_ERROR_THROWER_H_ #define ELECTRON_SHELL_COMMON_GIN_HELPER_ERROR_THROWER_H_ +#include + #include "base/memory/raw_ptr.h" -#include "base/strings/string_piece.h" #include "v8/include/v8.h" namespace gin_helper { @@ -17,18 +18,18 @@ class ErrorThrower { ErrorThrower(); ~ErrorThrower() = default; - void ThrowError(base::StringPiece err_msg) const; - void ThrowTypeError(base::StringPiece err_msg) const; - void ThrowRangeError(base::StringPiece err_msg) const; - void ThrowReferenceError(base::StringPiece err_msg) const; - void ThrowSyntaxError(base::StringPiece err_msg) const; + void ThrowError(std::string_view err_msg) const; + void ThrowTypeError(std::string_view err_msg) const; + void ThrowRangeError(std::string_view err_msg) const; + void ThrowReferenceError(std::string_view err_msg) const; + void ThrowSyntaxError(std::string_view err_msg) const; v8::Isolate* isolate() const { return isolate_; } private: using ErrorGenerator = v8::Local (*)(v8::Local err_msg, v8::Local options); - void Throw(ErrorGenerator gen, base::StringPiece err_msg) const; + void Throw(ErrorGenerator gen, std::string_view err_msg) const; raw_ptr isolate_; }; diff --git a/shell/common/gin_helper/event_emitter.h b/shell/common/gin_helper/event_emitter.h index 784dd539a838..cd53bfea3671 100644 --- a/shell/common/gin_helper/event_emitter.h +++ b/shell/common/gin_helper/event_emitter.h @@ -5,6 +5,7 @@ #ifndef ELECTRON_SHELL_COMMON_GIN_HELPER_EVENT_EMITTER_H_ #define ELECTRON_SHELL_COMMON_GIN_HELPER_EVENT_EMITTER_H_ +#include #include #include @@ -38,7 +39,7 @@ class EventEmitter : public gin_helper::Wrappable { // this.emit(name, new Event(), args...); template - bool Emit(base::StringPiece name, Args&&... args) { + bool Emit(const std::string_view name, Args&&... args) { v8::HandleScope handle_scope(isolate()); v8::Local wrapper = GetWrapper(); if (wrapper.IsEmpty()) @@ -58,7 +59,7 @@ class EventEmitter : public gin_helper::Wrappable { private: // this.emit(name, event, args...); template - bool EmitWithEvent(base::StringPiece name, + bool EmitWithEvent(const std::string_view name, gin::Handle event, Args&&... args) { // It's possible that |this| will be deleted by EmitEvent, so save anything diff --git a/shell/common/gin_helper/object_template_builder.cc b/shell/common/gin_helper/object_template_builder.cc index 832f09057f0f..e9f0f6c1dd21 100644 --- a/shell/common/gin_helper/object_template_builder.cc +++ b/shell/common/gin_helper/object_template_builder.cc @@ -12,14 +12,14 @@ ObjectTemplateBuilder::ObjectTemplateBuilder( : isolate_(isolate), template_(templ) {} ObjectTemplateBuilder& ObjectTemplateBuilder::SetImpl( - const base::StringPiece& name, + const std::string_view name, v8::Local val) { template_->Set(gin::StringToSymbol(isolate_, name), val); return *this; } ObjectTemplateBuilder& ObjectTemplateBuilder::SetPropertyImpl( - const base::StringPiece& name, + const std::string_view name, v8::Local getter, v8::Local setter) { template_->SetAccessorProperty(gin::StringToSymbol(isolate_, name), getter, diff --git a/shell/common/gin_helper/object_template_builder.h b/shell/common/gin_helper/object_template_builder.h index 05526043dff2..9efef8cc3f2d 100644 --- a/shell/common/gin_helper/object_template_builder.h +++ b/shell/common/gin_helper/object_template_builder.h @@ -5,6 +5,8 @@ #ifndef ELECTRON_SHELL_COMMON_GIN_HELPER_OBJECT_TEMPLATE_BUILDER_H_ #define ELECTRON_SHELL_COMMON_GIN_HELPER_OBJECT_TEMPLATE_BUILDER_H_ +#include + #include "base/memory/raw_ptr.h" #include "shell/common/gin_helper/function_template.h" @@ -28,7 +30,7 @@ class ObjectTemplateBuilder { // poetic license here in order that all calls to Set() can be via the '.' // operator and line up nicely. template - ObjectTemplateBuilder& SetValue(const base::StringPiece& name, T val) { + ObjectTemplateBuilder& SetValue(const std::string_view name, T val) { return SetImpl(name, ConvertToV8(isolate_, val)); } @@ -37,19 +39,19 @@ class ObjectTemplateBuilder { // will want to use one of the first two options. Also see // gin::CreateFunctionTemplate() for creating raw function templates. template - ObjectTemplateBuilder& SetMethod(const base::StringPiece& name, + ObjectTemplateBuilder& SetMethod(const std::string_view name, const T& callback) { return SetImpl(name, CallbackTraits::CreateTemplate(isolate_, callback)); } template - ObjectTemplateBuilder& SetProperty(const base::StringPiece& name, + ObjectTemplateBuilder& SetProperty(const std::string_view name, const T& getter) { return SetPropertyImpl(name, CallbackTraits::CreateTemplate(isolate_, getter), v8::Local()); } template - ObjectTemplateBuilder& SetProperty(const base::StringPiece& name, + ObjectTemplateBuilder& SetProperty(const std::string_view name, const T& getter, const U& setter) { return SetPropertyImpl(name, @@ -60,10 +62,10 @@ class ObjectTemplateBuilder { v8::Local Build(); private: - ObjectTemplateBuilder& SetImpl(const base::StringPiece& name, + ObjectTemplateBuilder& SetImpl(const std::string_view name, v8::Local val); ObjectTemplateBuilder& SetPropertyImpl( - const base::StringPiece& name, + const std::string_view name, v8::Local getter, v8::Local setter); diff --git a/shell/common/gin_helper/promise.cc b/shell/common/gin_helper/promise.cc index 7a4720a255aa..bc659c9c2fda 100644 --- a/shell/common/gin_helper/promise.cc +++ b/shell/common/gin_helper/promise.cc @@ -2,6 +2,8 @@ // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. +#include + #include "shell/common/gin_helper/promise.h" namespace gin_helper { @@ -43,7 +45,8 @@ v8::Maybe PromiseBase::Reject(v8::Local except) { return GetInner()->Reject(GetContext(), except); } -v8::Maybe PromiseBase::RejectWithErrorMessage(base::StringPiece message) { +v8::Maybe PromiseBase::RejectWithErrorMessage( + const std::string_view message) { v8::HandleScope handle_scope(isolate()); gin_helper::MicrotasksScope microtasks_scope( isolate(), GetContext()->GetMicrotaskQueue()); diff --git a/shell/common/gin_helper/promise.h b/shell/common/gin_helper/promise.h index 6acf9b49ea24..ee1b41b57caf 100644 --- a/shell/common/gin_helper/promise.h +++ b/shell/common/gin_helper/promise.h @@ -6,12 +6,12 @@ #define ELECTRON_SHELL_COMMON_GIN_HELPER_PROMISE_H_ #include +#include #include #include #include #include "base/memory/raw_ptr.h" -#include "base/strings/string_piece.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "shell/common/gin_converters/std_converter.h" @@ -47,19 +47,20 @@ class PromiseBase { // // Note: The parameter type is PromiseBase&& so it can take the instances of // Promise type. - static void RejectPromise(PromiseBase&& promise, base::StringPiece errmsg) { + static void RejectPromise(PromiseBase&& promise, + const std::string_view errmsg) { if (electron::IsBrowserProcess() && !content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) { content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce( - // Note that this callback can not take StringPiece, + // Note that this callback can not take std::string_view, // as StringPiece only references string internally and // will blow when a temporary string is passed. [](PromiseBase&& promise, std::string str) { promise.RejectWithErrorMessage(str); }, - std::move(promise), std::string(errmsg.data(), errmsg.size()))); + std::move(promise), std::string{errmsg})); } else { promise.RejectWithErrorMessage(errmsg); } @@ -67,7 +68,7 @@ class PromiseBase { v8::Maybe Reject(); v8::Maybe Reject(v8::Local except); - v8::Maybe RejectWithErrorMessage(base::StringPiece message); + v8::Maybe RejectWithErrorMessage(std::string_view message); v8::Local GetContext() const; v8::Local GetHandle() const; diff --git a/shell/common/keyboard_util.cc b/shell/common/keyboard_util.cc index d8d8d553d84f..a055ffadf68f 100644 --- a/shell/common/keyboard_util.cc +++ b/shell/common/keyboard_util.cc @@ -18,7 +18,7 @@ namespace { using CodeAndShiftedChar = std::pair>; constexpr CodeAndShiftedChar KeyboardCodeFromKeyIdentifier( - base::StringPiece str) { + const std::string_view str) { #if BUILDFLAG(IS_MAC) constexpr auto CommandOrControl = ui::VKEY_COMMAND; #else @@ -26,7 +26,7 @@ constexpr CodeAndShiftedChar KeyboardCodeFromKeyIdentifier( #endif constexpr auto Lookup = - base::MakeFixedFlatMap({ + base::MakeFixedFlatMap({ {"alt", {ui::VKEY_MENU, {}}}, {"altgr", {ui::VKEY_ALTGR, {}}}, {"backspace", {ui::VKEY_BACK, {}}}, @@ -272,7 +272,7 @@ constexpr CodeAndShiftedChar KeyboardCodeFromCharCode(char16_t c) { } // namespace -ui::KeyboardCode KeyboardCodeFromStr(base::StringPiece str, +ui::KeyboardCode KeyboardCodeFromStr(const std::string_view str, std::optional* shifted_char) { auto const [code, shifted] = str.size() == 1 ? KeyboardCodeFromCharCode(base::ToLowerASCII(str[0])) diff --git a/shell/common/keyboard_util.h b/shell/common/keyboard_util.h index 45cc80f264a3..e213e9bc0efc 100644 --- a/shell/common/keyboard_util.h +++ b/shell/common/keyboard_util.h @@ -6,8 +6,8 @@ #define ELECTRON_SHELL_COMMON_KEYBOARD_UTIL_H_ #include +#include -#include "base/strings/string_piece.h" #include "ui/events/keycodes/keyboard_codes.h" namespace electron { @@ -15,7 +15,7 @@ namespace electron { // Return key code of the |str|, if the original key is a shifted character, // for example + and /, set it in |shifted_char|. // pressed. -ui::KeyboardCode KeyboardCodeFromStr(base::StringPiece str, +ui::KeyboardCode KeyboardCodeFromStr(std::string_view str, std::optional* shifted_char); } // namespace electron diff --git a/shell/common/logging.cc b/shell/common/logging.cc index 5a109d9798ac..b9d58e187b40 100644 --- a/shell/common/logging.cc +++ b/shell/common/logging.cc @@ -5,6 +5,7 @@ #include "shell/common/logging.h" #include +#include #include "base/base_switches.h" #include "base/command_line.h" @@ -19,8 +20,8 @@ namespace logging { -constexpr base::StringPiece kLogFileName("ELECTRON_LOG_FILE"); -constexpr base::StringPiece kElectronEnableLogging("ELECTRON_ENABLE_LOGGING"); +constexpr std::string_view kLogFileName{"ELECTRON_LOG_FILE"}; +constexpr std::string_view kElectronEnableLogging{"ELECTRON_ENABLE_LOGGING"}; base::FilePath GetLogFileName(const base::CommandLine& command_line) { std::string filename = command_line.GetSwitchValueASCII(switches::kLogFile); diff --git a/shell/common/node_bindings.cc b/shell/common/node_bindings.cc index 676c71237176..ca02920f8419 100644 --- a/shell/common/node_bindings.cc +++ b/shell/common/node_bindings.cc @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -293,9 +294,9 @@ void ErrorMessageListener(v8::Local message, // Only allow a specific subset of options in non-ELECTRON_RUN_AS_NODE mode. // If node CLI inspect support is disabled, allow no debug options. -bool IsAllowedOption(base::StringPiece option) { +bool IsAllowedOption(const std::string_view option) { static constexpr auto debug_options = - base::MakeFixedFlatSet({ + base::MakeFixedFlatSet({ "--debug", "--debug-brk", "--debug-port", @@ -307,7 +308,7 @@ bool IsAllowedOption(base::StringPiece option) { }); // This should be aligned with what's possible to set via the process object. - static constexpr auto options = base::MakeFixedFlatSet({ + static constexpr auto options = base::MakeFixedFlatSet({ "--dns-result-order", "--no-deprecation", "--throw-deprecation", @@ -325,7 +326,7 @@ bool IsAllowedOption(base::StringPiece option) { // See https://nodejs.org/api/cli.html#cli_node_options_options void SetNodeOptions(base::Environment* env) { // Options that are unilaterally disallowed - static constexpr auto disallowed = base::MakeFixedFlatSet({ + static constexpr auto disallowed = base::MakeFixedFlatSet({ "--enable-fips", "--experimental-policy", "--force-fips", @@ -334,7 +335,7 @@ void SetNodeOptions(base::Environment* env) { "--use-openssl-ca", }); - static constexpr auto pkg_opts = base::MakeFixedFlatSet({ + static constexpr auto pkg_opts = base::MakeFixedFlatSet({ "--http-parser", "--max-http-header-size", }); @@ -475,7 +476,7 @@ std::vector NodeBindings::ParseNodeCliFlags() { #else const auto& option = arg; #endif - const auto stripped = base::StringPiece(option).substr(0, option.find('=')); + const auto stripped = std::string_view{option}.substr(0, option.find('=')); // Only allow no-op or a small set of debug/trace related options. if (IsAllowedOption(stripped) || stripped == "--") args.push_back(option); diff --git a/shell/renderer/api/electron_api_web_frame.cc b/shell/renderer/api/electron_api_web_frame.cc index bbd5e8ef11fd..11a30d6f8d00 100644 --- a/shell/renderer/api/electron_api_web_frame.cc +++ b/shell/renderer/api/electron_api_web_frame.cc @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -397,7 +398,7 @@ class WebFrameRenderer : public gin::Wrappable, private: bool MaybeGetRenderFrame(v8::Isolate* isolate, - const base::StringPiece method_name, + const std::string_view method_name, content::RenderFrame** render_frame_ptr) { std::string error_msg; if (!MaybeGetRenderFrame(&error_msg, method_name, render_frame_ptr)) { @@ -408,7 +409,7 @@ class WebFrameRenderer : public gin::Wrappable, } bool MaybeGetRenderFrame(std::string* error_msg, - const base::StringPiece method_name, + const std::string_view method_name, content::RenderFrame** render_frame_ptr) { auto* frame = render_frame(); if (!frame) {