* perf: avoid string temporary in HidChooserController::PhysicalDeviceIdFromDeviceInfo()
return a const ref instead of a new string
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: avoid second map lookup in HidChooserController::AddDeviceInfo()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
fix: BrowserWindow.moveAbove() not working for child windows
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fix: use StartUpdating method for PipeWire capturer
Fixed a crash related to PipeWire capturer by adapting to Chromium's
interface changes. Chromium expects a call to
`NativeDesktopMediaList::StartUpdating` with an implementation of
`DesktopMediaListObserver` for delegated capturers like PipeWire. This
interface allows listening to user permission events and listing
sources only after the user has made a choice on the permission dialog.
The interface has been implemented by an inner class to allow listening
to screen and window capture permissions concurrently using two
instances of the class. A patch that was resetting the capturer on the
first refresh has been changed to exclude PipeWire. PipeWire capturer
object will follow the lifecycle of `NativeDesktopMediaList`, as is the
case in Chromium.
Fixes#37463
Co-authored-by: Athul Iddya <athul@iddya.com>
* fix: wait for thumbnails from PipeWire when necessary
The PipeWire stream starts after the dialog is dismissed. If the sources
are listed immediately afterwards, the thumbnail may not have been
generated by that time. Explicitly wait for both thumbnail generation
and a selection on the source dialog before listing sources.
Co-authored-by: Athul Iddya <athul@iddya.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Athul Iddya <athul@iddya.com>
* refactor: more constexpr lookup tables (#38886)
* refactor: use constexpr lookup table in electron_api_web_contents.cc
* refactor: make KeyboardCodeFromStr() private
it is only used as a helper to KeyboardCodeFromStr()
* chore: savepoint
* chore: make lint happy
* fixup! refactor: make KeyboardCodeFromStr() private
* refactor: use constexpr lookup table in electron_url_loader_factory
* refactor: use constexpr lookup table in electron_api_tray
* refactor: use constexpr lookup table in web_contents_preferences.cc
* refactor: use constexpr lookup table in content_converter
* chore: fix clang-format
clang-format gets confused by ifdefs in the middle of an initializer list
* refactor: use a constexpr lookup table in GetPathConstant()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use a constexpr lookup table in SystemPreferences::GetColor()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use a constexpr lookup table in SimpleURLLoaderWrapper::Create()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: bump chromium in DEPS to 116.0.5805.2
* chore: bump chromium in DEPS to 116.0.5807.0
* chore: update patches
* chore: bump chromium in DEPS to 116.0.5809.2
* chore: bump chromium in DEPS to 116.0.5811.0
* chore: bump chromium in DEPS to 116.0.5813.0
* chore: bump chromium in DEPS to 116.0.5815.0
* chore: bump chromium in DEPS to 116.0.5817.0
* chore: bump chromium in DEPS to 116.0.5819.0
* chore: bump chromium in DEPS to 116.0.5821.0
* chore: bump chromium in DEPS to 116.0.5823.0
* chore: bump chromium in DEPS to 116.0.5825.0
* chore: bump chromium in DEPS to 116.0.5827.0
* chore: bump chromium to 116.0.5817.0
cherry picked from fd5e6fbc14
* refactor: add ARC scaffolding for macOS (#38621)
(cherry picked from commit 9a9d8ae5ea)
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* perf: use base::StringPiece in InclusionStatusToString()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use base::StringPiece in ErrorCodeToString()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use base::StringPiece in MessageSourceToString()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use base::StringPiece in CursorTypeToString()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use base::StringPiece in MediaStreamTypeToString()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use base::StringPiece in ModifiersToArray()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use base::StringPiece in WebFrameRenderer::MaybeGetRenderFrame()
The strings are all build-time constants and this is a private function
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Copy the NativeWindowRelay::CreateForWebContents() idiom
to simplify SessionPreferences's constructor and lifecycle.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove unused field OffScreenRenderWidgetHostView::last_time_
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove unused field OffScreenRenderWidgetHostView::last_scroll_offset_
Unused since 1a9e253
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove unused field OffScreenRenderWidgetHostView::paint_callback_running_
assigned to, but unread, since 81bf158
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
refactor: sync api::Screen getter sigs to upstream
ui::Display GetAllDisplays(), GetPrimaryDisplay(), GetDisplayMatching(),
and GetDisplayNearestPoint() methods are all const, so make our wrappers
const too.
ui::Display GetAllDisplays() returns a const reference, so make our
wrapper return a const reference too. This avoids creating a new
std::vector<display::Display> each time it's called.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
refactor: use process_util.h helpers
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
chore: remove unused electron::api::View methods
Remove code that was added in 2c8dc9e never got used.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use base::Contains() in KeyWeakMap::Has()
* refactor: use base::Contains() in WebRequest::RequestFilter::MatchesType()
* refactor: use base::Contains() in BaseWindow::AddBrowserView()
* refactor: use base::Contains() in DeepFreeze()
* refactor: use base::Contains() in Clipboard::Read()
* Revert "refactor: use base::Contains() in BaseWindow::AddBrowserView()"
This reverts commit 60152359d3978451ebdd7c8eed602c2fb8a9cafa.
* refactor: use base::Contains() in BaseWindow::AddBrowserView()
* refactor: use base::Contains() in IsDevToolsFileSystemAdded()
* refactor: use base::Contains() in MessagePort::DisentanglePorts()
* refactor: use base::Contains() in PowerSaveBlocker::IsStarted()
* refactor: use base::Contains() in SpellCheckClient::OnSpellCheckDone()
* refactor: use base::Contains() in ShowTaskDialogWstr()
* refactor: use base::Contains() in PrintViewManagerElectron::ScriptedPrint()
* refactor: use base::Contains() in PrintViewManagerElectron::DidGetPrintedPagesCount()
* refactor: use base::Contains() in NativeWindow::AddDraggableRegionProvider()
* refactor: use base::Contains() in ElectronBindings::ActivateUVLoop()
* refactor: use base::Contains() in NativeWindowViews::IsVisibleOnAllWorkspaces()
* refactor: use base::Contains() in HidChooserController::OnDeviceAdded()
* refactor: use base::Contains() in ElectronSandboxedRendererClient::WillReleaseScriptContext()
* refactor: use base::Contains() in ElectronRendererClient::WillDestroyWorkerContextOnWorkerThread()
* refactor: use base::Contains() in GlobalShortcut::OnKeyPressed()