* refactor: add EmitDeprecationWarning helper
Also switches EmitWarning to using Node's ProcessEmitWarningGeneric
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
* chore: use node namespace for function call
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
WebView uses WebContentsViewChildFrame, which doesn't have a Focus impl
and triggers a fatal NOTREACHED.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Jinli Wu <wujinli@bytedance.com>
* refactor: add electron::Buffer namespace; move the Buffer as_byte_span() into it
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* feat: add electron::Buffer::Copy()
a span-friendly version of node::Buffer::Copy()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in electron_api_base_window.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in electron_api_data_pipe_holder.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in electron_api_safe_storage.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in electron_api_clipboard.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in osr_converter.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in electron_api_native_image.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in net_converter.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use electron::Buffer::Copy() in electron_api_web_contents.cc
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make NewEmptyBuffer() return a Local<Value>
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: explicitly call GetNativeNSView() on macOS
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: move macOS impl to a .mm file
This is needed in order to access gfx::NativeView::GetNativeNSView()
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>
feat: expose shouldUseDarkColorsForSystemIntegratedUI
Closes https://github.com/electron/electron/issues/46429.
Refs https://github.com/electron/electron/pull/19735.
This PR adds a new API `shouldUseDarkColorsForSystemIntegratedUI` to the
`nativeTheme` module. This API returns a boolean indicating whether the
system is using dark colors for system integrated UI elements. This is
useful for applications that want to adapt their UI to match the system
theme, especially for those that use system integrated UI elements like
the shell theme or taskbar appearance.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* refactor: return a std::array<int 2> from BaseWindow::GetMaximumSize()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: return a std::array<int 2> from BaseWindow::GetMinimumSize()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: return a std::array<int 2> from BaseWindow::GetPosition()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: return a std::array<int 2> from BaseWindow::GetSize()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: return a std::array<int 2> from BaseWindow::GetContentSize()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: extract helper method ToArray(const gfx::Size)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: #include correctness
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: make api::View::GetBounds() const
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make api::View::OnViewBoundsChanged() private
refactor: make api::View::OnViewIsDeleting() private
refactor: make api::View::OnChildViewRemoved() private
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make ChildPair private
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>
* chore: bump chromium in DEPS to 136.0.7081.1
* chore: bump chromium in DEPS to 136.0.7083.1
* chore: bump chromium in DEPS to 136.0.7085.1
* chore: bump chromium in DEPS to 136.0.7087.1
* chore: bump chromium in DEPS to 136.0.7089.0
* chore: bump chromium in DEPS to 136.0.7091.0
* chore: bump chromium in DEPS to 136.0.7092.0
* chore: bump chromium in DEPS to 136.0.7093.1
* chore: bump chromium in DEPS to 136.0.7095.1
* chore: bump chromium in DEPS to 136.0.7097.1
* chore: bump chromium in DEPS to 136.0.7099.1
* chore: bump chromium in DEPS to 136.0.7101.0
* chore: bump chromium in DEPS to 136.0.7103.0
* chore: bump chromium in DEPS to 136.0.7103.15
* chore: bump chromium in DEPS to 136.0.7103.17
* chore: bump chromium to 136.0.7095.0 (main) (#46118)
* chore: bump chromium in DEPS to 136.0.7076.0
* chore: bump chromium in DEPS to 136.0.7077.0
* 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | 6368856
* 6356528: Clean up LegacyRenderWidgetHostHWND code | 6356528
* chore: export patches
* 6339113: [Viewport Segments] Add CDP commands to override Viewport Segments without overriding other device properties. | 6339113
* 6352169: [DevTools][MultiInstance] Support new tab in another window on Android | 6352169
* 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | 6368856
* 6360858:Clickiness: Wire response from URLLoader to DB, add e2e tests| 6360858
* chore: bump chromium in DEPS to 136.0.7079.0
* chore: export patches
* chore: bump chromium in DEPS to 136.0.7081.0
* chore: export patches
* chore: bump chromium in DEPS to 136.0.7083.0
* 6361987: Remove double-declaration with gfx::NativeView and gfx::NativeWindow | 6361987
* chore: export patches
* chore: bump chromium in DEPS to 136.0.7087.0
* chore: export patches
* fix: include node patch for missing AtomicsWaitEvent
6385540
* build: add depot_tools python to path
* fix: cppgc init and unregistering v8 isolate
6333562
CppGc is now initialized earlier so Node can skip reinitializing it.
Additionally, gin::IsolateHandle was attempting to destruct an already destructed
v8::Isolate upon electron::JavaScriptEnvironment destruction. By removing the call
to NodePlatform::UnregisterIsolate, this fixes the crash on app shutdown.
* fix: unregister isolate after destruction
See code comment.
* chore: bump chromium in DEPS to 136.0.7095.0
* chore: sync patches
* fix: add script_parsing::ContentScriptType parameter
6298395
* fix: migrate content::BrowserAccessibilityState methods
64014376383275
* feat: enableHappyEyeballs option for host resolver
6332599
* fix: add new cookie exclusion reason
6343479
* fix: add new url loader method
6337340
* fix: add new cppgc header file for electron_node headers
6348644
* fix: disable CREL on Linux ARM64
https://chromium-review.googlesource.com/q/I3a62f02f564f07be63173b0773b4ecaffbe939b9
* fixup! fix: add new cppgc header file for electron_node headers 6348644
* chore: update corner smoothing patch
* fixup! chore: update corner smoothing patch
* chore: disable NAN weak tests
These two tests are incompatible with a V8 change that disallows running JS code from a weak finalizer callback.
Ref: 4733273
* test: fix task starvation in node test
A V8 change makes these contexts get collected in a task that is posted
and run asynchronously. The tests were synchronously GC'ing in an
infinite loop, preventing the task loop from running the task that would
GC these contexts.
This change should be upstreamed in some way.
Ref: 4733273
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: alice <alice@makenotion.com>
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: clavin <clavin@electronjs.org>
(cherry picked from commit 9c019b6147)
* Remove file-wide unsafe buffer suppression from content/ [3 of N]
6341711
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* refactor: instantiate navigation_entries on the stack instead of the heap
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: reserve the full size of navigation_entries
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use emplace_back to simplify the code a little
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: remove electron::api::App::FileIconCallback
last use removed in 2018 by 3f15f516
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix: gin_helper::Promise in GPUInfoManager must be destroyed before destroying Node/V8
Co-authored-by: Yang Liu <ouyangliu.leo@gmail.com>
* fix: use CleanedUpAtExit to control the lifetime of GPUInfoManager
Co-authored-by: Yang Liu <ouyangliu.leo@gmail.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Yang Liu <ouyangliu.leo@gmail.com>
feat: add support for associating a Menu with a WebFrameMain (#45138)
* feat: add support for associating a Menu with a WebFrameMain
This allows certain OS level features to activate such as Writing Tools, Autofill.. and Services.
There appears to be a bug in macOS where the responder chain isn't traversed if the menu is not popped up using an event, as such we spoof a fake mouse event at the write coordinates in the right window and use that to open the menu.
* build: fix build on non-mac
* build: oops missed a header
* fix: safely handle optional T* by checking nullptr too
* build: fix gn check and build errors
* docs: suggested changes
* feat: default `frame` to `window.webContents.mainFrame` when possible
* fix: avoid deref nullptr view
* Revert "feat: default `frame` to `window.webContents.mainFrame` when possible"
This reverts commit 2e888368199317d67f6ad931a7e9eff0295c4b1b.
* fix: lint
* Remove redundant scoped objects
This code, including the comments, matches almost exactly the behavior of this argument to the function.
* Add ScopedPumpMessagesInPrivateModes patch
* More null pointer safety
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
* perf: use absl::flat_hash_set in SpellCheckClient::SpellCheckText()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: use absl::flat_hash_set in MessagePort::DisentanglePorts()
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: use v8::String::Empty() when creating empty strings
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: avoid a redundant map lookuop in GetStorageMask()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: avoid a redundant map lookup in GetDataTypeMask()
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: ftbfs when printing is disabled
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: extract-method GetAddedFileSystems()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use GetAddedFileSystems() in GetAddedFileSystemPaths()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use GetAddedFileSystems() in IsDevToolsFileSystemAdded()
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>
When using the SCK thumbnail capturer, the first refresh has the list of
sources, and the second refresh has the thumbnails. If thumbnails are
not needed, only wait for the first refresh.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: John Beutner <beutner.john@gmail.com>
* perf: make ElectronUsbDelegate::controller_map_ an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make ElectronSerialDelegate::controller_map_ an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make ElectronHidDelegate::controller_map_ an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make FrameTreeNodeIdMap an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make AutofillDriverFactory::driver_map_ an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make asar::Archive::external_files_ an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make VersionIdMap an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: make ObjectCache::proxy_map_ an absl::flat_hash_map
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* docs: add TODO to investigate absl map in KeyWeakMap
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: remove unused field ServiceWorkerMain::weak_factory_
Added in a467d06, appears to have never been used
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
refactor: use '= default' to define trivial destructors
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: decouple api::Protocol from ElectronBrowserContext
now they do not know about each other
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make electron::api::ProtocolError private
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove unused isolate arg in Protocol constructor
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use =default for trivial destructor
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: use GetDefaultStoragePartition()
Use GetDefaultStorageParition() instead of GetStoragePartition(nullptr)
- It improves code uniformity, since we use get-default everywhere else
- It's more readable
- It's marginally faster, since GetStoragePartition() has more steps
Added in 49b0a1bf4a
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
The former is now a pass-through for the latter and is slated for removal
Xref: https://issues.chromium.org/issues/402415654907781
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make UtilityProcessWrapper inherit privately from mojo::MessageReceiver
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make ParentPort inherit privately from mojo::MessageReceiver
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make MessagePort inherit privately from mojo::MessageReceiver
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>