From b2652becebd94c83b91e4555db44e608a4086fcb Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 13 Sep 2019 10:26:59 -0400 Subject: [PATCH] refactor: apply some 'clang-tidy -fix' changes (#20172) * refactor: fix clang-tidy vector operation warnings Fix vector population performance-inefficient-vector-operation warnings generated by clang-tidy * refactor: fix clang-tidy emplace_back warnings In cases where a temporary is created to be passed to push_back(), replace it with emplace_back(). Warning: modernize-use-emplace * refactor: fix clang-tidy loop iteration warnings When practical, use range-based for loops instead of C-style for loops. clang-tiny check: modernize-loop-convert * refactor: fix clang-tidy string initialize warning Remove redundant empty string initialization. clang-tidy check: readability-redundant-string-init --- shell/app/atom_content_client.cc | 26 +++++++++---------- shell/browser/api/atom_api_app.cc | 2 +- shell/browser/api/atom_api_screen.cc | 8 +++--- shell/browser/api/atom_api_web_contents.cc | 6 ++--- .../browser/atom_javascript_dialog_manager.cc | 2 +- shell/browser/browser_linux.cc | 14 +++++----- shell/browser/lib/bluetooth_chooser.cc | 1 + .../media/media_stream_devices_controller.cc | 16 ++++++------ shell/browser/net/resolve_proxy_helper.cc | 2 +- shell/browser/relauncher_linux.cc | 4 +-- shell/browser/ui/drag_util_views.cc | 3 ++- shell/browser/ui/file_dialog_gtk.cc | 8 +++--- shell/browser/ui/file_dialog_win.cc | 8 +++--- shell/browser/ui/views/menu_bar.cc | 15 +++++------ shell/browser/web_dialog_helper.cc | 2 +- shell/common/crash_reporter/crash_reporter.cc | 3 +-- .../content_converter.cc | 1 + shell/renderer/api/atom_api_web_frame.cc | 4 +-- shell/renderer/atom_autofill_agent.cc | 6 ++--- 19 files changed, 62 insertions(+), 69 deletions(-) diff --git a/shell/app/atom_content_client.cc b/shell/app/atom_content_client.cc index 607ec84740be..2698a6217ec6 100644 --- a/shell/app/atom_content_client.cc +++ b/shell/app/atom_content_client.cc @@ -101,29 +101,27 @@ content::PepperPluginInfo CreatePepperFlashInfo(const base::FilePath& path, std::vector flash_version_numbers = base::SplitString( version, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); if (flash_version_numbers.empty()) - flash_version_numbers.push_back("11"); + flash_version_numbers.emplace_back("11"); // |SplitString()| puts in an empty string given an empty string. :( else if (flash_version_numbers[0].empty()) flash_version_numbers[0] = "11"; if (flash_version_numbers.size() < 2) - flash_version_numbers.push_back("2"); + flash_version_numbers.emplace_back("2"); if (flash_version_numbers.size() < 3) - flash_version_numbers.push_back("999"); + flash_version_numbers.emplace_back("999"); if (flash_version_numbers.size() < 4) - flash_version_numbers.push_back("999"); + flash_version_numbers.emplace_back("999"); // E.g., "Shockwave Flash 10.2 r154": plugin.description = plugin.name + " " + flash_version_numbers[0] + "." + flash_version_numbers[1] + " r" + flash_version_numbers[2]; plugin.version = base::JoinString(flash_version_numbers, "."); - content::WebPluginMimeType swf_mime_type(content::kFlashPluginSwfMimeType, - content::kFlashPluginSwfExtension, - content::kFlashPluginSwfDescription); - plugin.mime_types.push_back(swf_mime_type); - content::WebPluginMimeType spl_mime_type(content::kFlashPluginSplMimeType, - content::kFlashPluginSplExtension, - content::kFlashPluginSplDescription); - plugin.mime_types.push_back(spl_mime_type); + plugin.mime_types.emplace_back(content::kFlashPluginSwfMimeType, + content::kFlashPluginSwfExtension, + content::kFlashPluginSwfDescription); + plugin.mime_types.emplace_back(content::kFlashPluginSplMimeType, + content::kFlashPluginSplExtension, + content::kFlashPluginSplDescription); return plugin; } @@ -219,8 +217,8 @@ void AtomContentClient::AddAdditionalSchemes(Schemes* schemes) { AppendDelimitedSwitchToVector(switches::kCORSSchemes, &schemes->cors_enabled_schemes); - schemes->service_worker_schemes.push_back(url::kFileScheme); - schemes->standard_schemes.push_back("chrome-extension"); + schemes->service_worker_schemes.emplace_back(url::kFileScheme); + schemes->standard_schemes.emplace_back("chrome-extension"); } void AtomContentClient::AddPepperPlugins( diff --git a/shell/browser/api/atom_api_app.cc b/shell/browser/api/atom_api_app.cc index 562db2a5ec2c..2fc1ece2638f 100644 --- a/shell/browser/api/atom_api_app.cc +++ b/shell/browser/api/atom_api_app.cc @@ -751,7 +751,7 @@ base::OnceClosure App::SelectClientCertificate( // to avoid changes in the API. auto client_certs = net::CertificateList(); for (const std::unique_ptr& identity : identities) - client_certs.push_back(identity->certificate()); + client_certs.emplace_back(identity->certificate()); auto shared_identities = std::make_shared(std::move(identities)); diff --git a/shell/browser/api/atom_api_screen.cc b/shell/browser/api/atom_api_screen.cc index 8650f2b95205..5d51ebd1f620 100644 --- a/shell/browser/api/atom_api_screen.cc +++ b/shell/browser/api/atom_api_screen.cc @@ -42,13 +42,13 @@ typename T::iterator FindById(T* container, int id) { std::vector MetricsToArray(uint32_t metrics) { std::vector array; if (metrics & display::DisplayObserver::DISPLAY_METRIC_BOUNDS) - array.push_back("bounds"); + array.emplace_back("bounds"); if (metrics & display::DisplayObserver::DISPLAY_METRIC_WORK_AREA) - array.push_back("workArea"); + array.emplace_back("workArea"); if (metrics & display::DisplayObserver::DISPLAY_METRIC_DEVICE_SCALE_FACTOR) - array.push_back("scaleFactor"); + array.emplace_back("scaleFactor"); if (metrics & display::DisplayObserver::DISPLAY_METRIC_ROTATION) - array.push_back("rotation"); + array.emplace_back("rotation"); return array; } diff --git a/shell/browser/api/atom_api_web_contents.cc b/shell/browser/api/atom_api_web_contents.cc index 9fd812ad72bd..545a82049c29 100644 --- a/shell/browser/api/atom_api_web_contents.cc +++ b/shell/browser/api/atom_api_web_contents.cc @@ -248,7 +248,7 @@ struct Converter { static v8::Local ToV8(v8::Isolate* isolate, electron::api::WebContents::Type val) { using Type = electron::api::WebContents::Type; - std::string type = ""; + std::string type; switch (val) { case Type::BACKGROUND_PAGE: type = "backgroundPage"; @@ -1719,9 +1719,9 @@ void WebContents::Print(mate::Arguments* args) { std::vector page_ranges; if (options.Get("pageRanges", &page_ranges)) { std::unique_ptr page_range_list(new base::ListValue()); - for (size_t i = 0; i < page_ranges.size(); ++i) { + for (auto& range : page_ranges) { int from, to; - if (page_ranges[i].Get("from", &from) && page_ranges[i].Get("to", &to)) { + if (range.Get("from", &from) && range.Get("to", &to)) { std::unique_ptr range( new base::DictionaryValue()); range->SetInteger(printing::kSettingPageRangeFrom, from); diff --git a/shell/browser/atom_javascript_dialog_manager.cc b/shell/browser/atom_javascript_dialog_manager.cc index 508ca62c07c4..a425537f61b2 100644 --- a/shell/browser/atom_javascript_dialog_manager.cc +++ b/shell/browser/atom_javascript_dialog_manager.cc @@ -67,7 +67,7 @@ void AtomJavaScriptDialogManager::RunJavaScriptDialog( std::vector buttons = {"OK"}; if (dialog_type == JavaScriptDialogType::JAVASCRIPT_DIALOG_TYPE_CONFIRM) { - buttons.push_back("Cancel"); + buttons.emplace_back("Cancel"); // First button is default, second button is cancel default_id = 0; cancel_id = 1; diff --git a/shell/browser/browser_linux.cc b/shell/browser/browser_linux.cc index 184db9383d61..34994296dfba 100644 --- a/shell/browser/browser_linux.cc +++ b/shell/browser/browser_linux.cc @@ -32,7 +32,7 @@ bool LaunchXdgUtility(const std::vector& argv, int* exit_code) { return false; base::LaunchOptions options; - options.fds_to_remap.push_back(std::make_pair(devnull, STDIN_FILENO)); + options.fds_to_remap.emplace_back(devnull, STDIN_FILENO); base::Process process = base::LaunchProcess(argv, options); close(devnull); @@ -46,10 +46,10 @@ bool SetDefaultWebClient(const std::string& protocol) { std::unique_ptr env(base::Environment::Create()); std::vector argv; - argv.push_back(kXdgSettings); - argv.push_back("set"); + argv.emplace_back(kXdgSettings); + argv.emplace_back("set"); if (!protocol.empty()) { - argv.push_back(kXdgSettingsDefaultSchemeHandler); + argv.emplace_back(kXdgSettingsDefaultSchemeHandler); argv.push_back(protocol); } argv.push_back(libgtkui::GetDesktopName(env.get())); @@ -88,9 +88,9 @@ bool Browser::IsDefaultProtocolClient(const std::string& protocol, return false; std::vector argv; - argv.push_back(kXdgSettings); - argv.push_back("check"); - argv.push_back(kXdgSettingsDefaultSchemeHandler); + argv.emplace_back(kXdgSettings); + argv.emplace_back("check"); + argv.emplace_back(kXdgSettingsDefaultSchemeHandler); argv.push_back(protocol); argv.push_back(libgtkui::GetDesktopName(env.get())); diff --git a/shell/browser/lib/bluetooth_chooser.cc b/shell/browser/lib/bluetooth_chooser.cc index 7c61b6b65f38..c856454b2ad0 100644 --- a/shell/browser/lib/bluetooth_chooser.cc +++ b/shell/browser/lib/bluetooth_chooser.cc @@ -117,6 +117,7 @@ void BluetoothChooser::AddOrUpdateDevice(const std::string& device_id, std::vector BluetoothChooser::GetDeviceList() { std::vector vec; + vec.reserve(device_map_.size()); for (const auto& it : device_map_) { DeviceInfo info = {it.first, it.second}; vec.push_back(info); diff --git a/shell/browser/media/media_stream_devices_controller.cc b/shell/browser/media/media_stream_devices_controller.cc index a646a52ae2ab..771e4ba43ee7 100644 --- a/shell/browser/media/media_stream_devices_controller.cc +++ b/shell/browser/media/media_stream_devices_controller.cc @@ -170,19 +170,19 @@ void MediaStreamDevicesController::HandleUserMediaRequest() { if (request_.audio_type == blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE) { - devices.push_back(blink::MediaStreamDevice( - blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE, "", "")); + devices.emplace_back(blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE, + "", ""); } if (request_.video_type == blink::mojom::MediaStreamType::GUM_TAB_VIDEO_CAPTURE) { - devices.push_back(blink::MediaStreamDevice( - blink::mojom::MediaStreamType::GUM_TAB_VIDEO_CAPTURE, "", "")); + devices.emplace_back(blink::mojom::MediaStreamType::GUM_TAB_VIDEO_CAPTURE, + "", ""); } if (request_.audio_type == blink::mojom::MediaStreamType::GUM_DESKTOP_AUDIO_CAPTURE) { - devices.push_back(blink::MediaStreamDevice( + devices.emplace_back( blink::mojom::MediaStreamType::GUM_DESKTOP_AUDIO_CAPTURE, "loopback", - "System Audio")); + "System Audio"); } if (request_.video_type == blink::mojom::MediaStreamType::GUM_DESKTOP_VIDEO_CAPTURE) { @@ -197,9 +197,9 @@ void MediaStreamDevicesController::HandleUserMediaRequest() { content::DesktopMediaID::Parse(request_.requested_video_device_id); } - devices.push_back(blink::MediaStreamDevice( + devices.emplace_back( blink::mojom::MediaStreamType::GUM_DESKTOP_VIDEO_CAPTURE, - screen_id.ToString(), "Screen")); + screen_id.ToString(), "Screen"); } std::move(callback_).Run( diff --git a/shell/browser/net/resolve_proxy_helper.cc b/shell/browser/net/resolve_proxy_helper.cc index fca8d13ceeba..40d463889d31 100644 --- a/shell/browser/net/resolve_proxy_helper.cc +++ b/shell/browser/net/resolve_proxy_helper.cc @@ -33,7 +33,7 @@ void ResolveProxyHelper::ResolveProxy(const GURL& url, ResolveProxyCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); // Enqueue the pending request. - pending_requests_.push_back(PendingRequest(url, std::move(callback))); + pending_requests_.emplace_back(url, std::move(callback)); // If nothing is in progress, start. if (!binding_.is_bound()) { diff --git a/shell/browser/relauncher_linux.cc b/shell/browser/relauncher_linux.cc index ba9a45c2b0a6..a77630911736 100644 --- a/shell/browser/relauncher_linux.cc +++ b/shell/browser/relauncher_linux.cc @@ -61,8 +61,8 @@ int LaunchProgram(const StringVector& relauncher_args, base::LaunchOptions options; options.allow_new_privs = true; options.new_process_group = true; // detach - options.fds_to_remap.push_back(std::make_pair(devnull.get(), STDERR_FILENO)); - options.fds_to_remap.push_back(std::make_pair(devnull.get(), STDOUT_FILENO)); + options.fds_to_remap.emplace_back(devnull.get(), STDERR_FILENO); + options.fds_to_remap.emplace_back(devnull.get(), STDOUT_FILENO); base::Process process = base::LaunchProcess(argv, options); return process.IsValid() ? 0 : 1; diff --git a/shell/browser/ui/drag_util_views.cc b/shell/browser/ui/drag_util_views.cc index 1ea57f5951bc..a592836d9e9f 100644 --- a/shell/browser/ui/drag_util_views.cc +++ b/shell/browser/ui/drag_util_views.cc @@ -28,8 +28,9 @@ void DragFileItems(const std::vector& files, *views::Widget::GetTopLevelWidgetForNativeView(view), data.get()); std::vector file_infos; + file_infos.reserve(files.size()); for (const base::FilePath& file : files) { - file_infos.push_back(ui::FileInfo(file, base::FilePath())); + file_infos.emplace_back(file, base::FilePath()); } data->SetFilenames(file_infos); diff --git a/shell/browser/ui/file_dialog_gtk.cc b/shell/browser/ui/file_dialog_gtk.cc index b48846bd0c15..0aab6df11a58 100644 --- a/shell/browser/ui/file_dialog_gtk.cc +++ b/shell/browser/ui/file_dialog_gtk.cc @@ -229,13 +229,11 @@ void FileChooserDialog::OnFileDialogResponse(GtkWidget* widget, int response) { } void FileChooserDialog::AddFilters(const Filters& filters) { - for (size_t i = 0; i < filters.size(); ++i) { - const Filter& filter = filters[i]; + for (const auto& filter : filters) { GtkFileFilter* gtk_filter = gtk_file_filter_new(); - for (size_t j = 0; j < filter.second.size(); ++j) { - auto file_extension = - std::make_unique("." + filter.second[j]); + for (const auto& extension : filter.second) { + auto file_extension = std::make_unique("." + extension); gtk_file_filter_add_custom( gtk_filter, GTK_FILE_FILTER_FILENAME, reinterpret_cast(FileFilterCaseInsensitive), diff --git a/shell/browser/ui/file_dialog_win.cc b/shell/browser/ui/file_dialog_win.cc index 3710a82be15f..36428c97ba41 100644 --- a/shell/browser/ui/file_dialog_win.cc +++ b/shell/browser/ui/file_dialog_win.cc @@ -48,16 +48,14 @@ void ConvertFilters(const Filters& filters, } buffer->reserve(filters.size() * 2); - for (size_t i = 0; i < filters.size(); ++i) { - const Filter& filter = filters[i]; - + for (const Filter& filter : filters) { COMDLG_FILTERSPEC spec; buffer->push_back(base::UTF8ToWide(filter.first)); spec.pszName = buffer->back().c_str(); std::vector extensions(filter.second); - for (size_t j = 0; j < extensions.size(); ++j) - extensions[j].insert(0, "*."); + for (std::string& extension : extensions) + extension.insert(0, "*."); buffer->push_back(base::UTF8ToWide(base::JoinString(extensions, ";"))); spec.pszSpec = buffer->back().c_str(); diff --git a/shell/browser/ui/views/menu_bar.cc b/shell/browser/ui/views/menu_bar.cc index fc6b3efac2b9..ffcbd9c7ea44 100644 --- a/shell/browser/ui/views/menu_bar.cc +++ b/shell/browser/ui/views/menu_bar.cc @@ -159,9 +159,8 @@ bool MenuBar::AcceleratorPressed(const ui::Accelerator& accelerator) { views::FocusManager::FocusChangeReason::kFocusTraversal); return true; default: { - auto children = GetChildrenInZOrder(); - for (int i = 0, n = children.size(); i < n; ++i) { - auto* button = static_cast(children[i]); + for (auto* child : GetChildrenInZOrder()) { + auto* button = static_cast(child); bool shifted = false; auto keycode = electron::KeyboardCodeFromCharCode(button->accelerator(), &shifted); @@ -204,10 +203,9 @@ bool MenuBar::SetPaneFocus(views::View* initial_focus) { bool result = views::AccessiblePaneView::SetPaneFocus(initial_focus); if (result) { - auto children = GetChildrenInZOrder(); std::set reg; - for (int i = 0, n = children.size(); i < n; ++i) { - auto* button = static_cast(children[i]); + for (auto* child : GetChildrenInZOrder()) { + auto* button = static_cast(child); bool shifted = false; auto keycode = electron::KeyboardCodeFromCharCode(button->accelerator(), &shifted); @@ -235,10 +233,9 @@ void MenuBar::RemovePaneFocus() { views::AccessiblePaneView::RemovePaneFocus(); SetAcceleratorVisibility(false); - auto children = GetChildrenInZOrder(); std::set unreg; - for (int i = 0, n = children.size(); i < n; ++i) { - auto* button = static_cast(children[i]); + for (auto* child : GetChildrenInZOrder()) { + auto* button = static_cast(child); bool shifted = false; auto keycode = electron::KeyboardCodeFromCharCode(button->accelerator(), &shifted); diff --git a/shell/browser/web_dialog_helper.cc b/shell/browser/web_dialog_helper.cc index a5510ac498f9..55049958f56a 100644 --- a/shell/browser/web_dialog_helper.cc +++ b/shell/browser/web_dialog_helper.cc @@ -282,7 +282,7 @@ file_dialog::Filters GetFileTypesFromAcceptType( // Allow all files when extension is specified. filters.push_back(file_dialog::Filter()); filters.back().first = "All Files"; - filters.back().second.push_back("*"); + filters.back().second.emplace_back("*"); return filters; } diff --git a/shell/common/crash_reporter/crash_reporter.cc b/shell/common/crash_reporter/crash_reporter.cc index fab444af1f55..72f50248d1f1 100644 --- a/shell/common/crash_reporter/crash_reporter.cc +++ b/shell/common/crash_reporter/crash_reporter.cc @@ -93,8 +93,7 @@ CrashReporter::GetUploadedReports(const base::FilePath& crashes_dir) { int report_time = 0; if (report_item.size() >= 2 && base::StringToInt(report_item[0], &report_time)) { - result.push_back( - CrashReporter::UploadReportResult(report_time, report_item[1])); + result.emplace_back(report_time, report_item[1]); } } } diff --git a/shell/common/native_mate_converters/content_converter.cc b/shell/common/native_mate_converters/content_converter.cc index a03be29a985c..c07c8014929e 100644 --- a/shell/common/native_mate_converters/content_converter.cc +++ b/shell/common/native_mate_converters/content_converter.cc @@ -66,6 +66,7 @@ v8::Local MenuToV8(v8::Isolate* isolate, const content::CustomContextMenuContext& context, const std::vector& menu) { std::vector> v8_menu; + v8_menu.reserve(menu.size()); for (const auto& menu_item : menu) v8_menu.push_back(MenuItemToV8(isolate, web_contents, context, menu_item)); return mate::ConvertToV8(isolate, v8_menu); diff --git a/shell/renderer/api/atom_api_web_frame.cc b/shell/renderer/api/atom_api_web_frame.cc index 5a28c6c0dd87..53ed575c4641 100644 --- a/shell/renderer/api/atom_api_web_frame.cc +++ b/shell/renderer/api/atom_api_web_frame.cc @@ -96,7 +96,7 @@ content::RenderFrame* GetRenderFrame(v8::Local value) { return content::RenderFrame::FromWebFrame(frame); } -class RenderFrameStatus : public content::RenderFrameObserver { +class RenderFrameStatus final : public content::RenderFrameObserver { public: explicit RenderFrameStatus(content::RenderFrame* render_frame) : content::RenderFrameObserver(render_frame) {} @@ -165,7 +165,7 @@ class FrameSetSpellChecker : public content::RenderFrameVisitor { DISALLOW_COPY_AND_ASSIGN(FrameSetSpellChecker); }; -class SpellCheckerHolder : public content::RenderFrameObserver { +class SpellCheckerHolder final : public content::RenderFrameObserver { public: // Find existing holder for the |render_frame|. static SpellCheckerHolder* FromRenderFrame( diff --git a/shell/renderer/atom_autofill_agent.cc b/shell/renderer/atom_autofill_agent.cc index 4a158df53098..8cd2f7177b00 100644 --- a/shell/renderer/atom_autofill_agent.cc +++ b/shell/renderer/atom_autofill_agent.cc @@ -43,9 +43,9 @@ void TrimStringVectorForIPC(std::vector* strings) { strings->resize(kMaxListSize); // Limit the size of the strings in the vector. - for (size_t i = 0; i < strings->size(); ++i) { - if ((*strings)[i].length() > kMaxDataLength) - (*strings)[i].resize(kMaxDataLength); + for (auto& str : *strings) { + if (str.length() > kMaxDataLength) + str.resize(kMaxDataLength); } } } // namespace