Commit graph

3011 commits

Author SHA1 Message Date
Shelley Vohr
f49f6ff68b
fix: check screen capture permissions in desktopCapturer (#43080)
fix: check screen capture permissions in desktopCapturer
2024-08-09 10:08:49 +02:00
Shelley Vohr
0718c2b9ee
fix: system-context-menu with frameless BrowserWindows (#43243) 2024-08-09 10:08:01 +02:00
Shelley Vohr
70dda694e2
build: fix build when enable_pdf_viewer and enable_electron_extensions disabled (#43206)
build: fix build when enable_pdf_viewer and enable_electron_extensions disabled
2024-08-07 14:51:38 +02:00
Charles Kerr
6293bbced0
perf: avoid redundant calls to GetView() (#43216)
* perf: avoid double-calls to GetView()

There are a lot of places where we call the virtual method GetView()
twice in succession: the first to check if the view exists, and the
second to use. This PR holds the view in a temp variable instead, e.g.:

if (auto* view = foo->GetView())
  view->DoSomething();

* perf: avoid discarded GetView() call
2024-08-06 11:25:59 -05:00
Charles Kerr
3d766e9ccb
perf: don't build unused vectors in HidChooserContext (#43192)
* refactor: remove unused code in HidChooserContext::DeviceRemoved()

* refactor: remove unused code in HidChooserContext::OnHidManagerConnectionError()

* refactor: use structured bindings for readability
2024-08-05 15:31:58 +02:00
Charles Kerr
6877671390
fix: gin_helper::MicrotasksScope instantiation (#43185) 2024-08-05 08:24:27 -05:00
Shelley Vohr
e64302cc91
refactor: simplify window moveAbove/moveTop impl on macOS (#43157)
refactor: simplify window moveAbove/moveTop impl on macOS
2024-08-05 09:57:16 +02:00
Charles Kerr
5a809a6694
refactor: prefer std::ranges over base::ranges (#43172)
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5668999

Xref: https://groups.google.com/a/chromium.org/g/cxx/c/ZnIbkfJ0Glw
2024-08-02 21:21:59 -05:00
Charles Kerr
5b18cc46bc
chore: bump chromium to 129.0.6630.0 (main) (#43087)
* chore: bump chromium in DEPS to 129.0.6623.0

* chore: update mas_avoid_private_macos_api_usage.patch.patch

remove the changes to media/audio/mac/audio_manager_mac.cc,
since upstream has also made this change now.

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5738654

* chore: update fix_disable_scope_reuse_associated_dchecks.patch

We had been removing a couple of `DCHECK`. Upstream changed their
code to limit when these `DCHECK`s get called, so let's see if our
change is still needed.

Xref: https://chromium-review.googlesource.com/c/v8/v8/+/5739076

* chore: e patches all

* Bump the Chrome macOS deployment target to 11.0

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5734361

BREAKING CHANGE: Bump the Chrome macOS deployment target to 11.0

* src: stop using deprecated fields of `v8::FastApiCallbackOptions`

Xref: d0000b118d
Xref: https://chromium-review.googlesource.com/c/v8/v8/+/5741336
Xref: https://chromium-review.googlesource.com/c/v8/v8/+/5741199

* fixup! chore: update fix_disable_scope_reuse_associated_dchecks.patch

chore: re-disable DCHECKs

yep, it is still needed

* refactor use non-deprecated variant of openApplicationAtURL

old version is deprecated now in macOS 11

Xref: https://developer.apple.com/documentation/appkit/nsworkspace/1534810-launchapplicationaturl

Xref: https://developer.apple.com/documentation/appkit/nsworkspace/3172700-openapplicationaturl

* chore: bump chromium in DEPS to 129.0.6626.0

* chore: e patches all

* chore: disable NSUserNotification deprecation errors

* chore: disable NSWindowStyleMaskTexturedBackground deprecation errors

Xref: https://github.com/electron/electron/issues/43125

* chore: disable deprecation errors in platform_util_mac.mm

* chore: disable launchApplication deprecation errors

* chore: bump chromium in DEPS to 129.0.6630.0

* chore: update refactor_expose_file_system_access_blocklist.patch

apply patch manually due to context shear

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5745444

* chore: update deps_add_v8_object_setinternalfieldfornodecore.patch

no manual changes. patch applied with fuzz 1 (offset -5 lines)

* chore: e patches all

* fix: add clang_x64_v8_arm64/snapshot_blob.bin to the zip manifest

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5746173

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
2024-08-02 09:02:11 -05:00
Shelley Vohr
3a07bd8821
fix: take bluetooth serial ports into account in serial.getPorts() (#43101)
* fix: take bluetooth serial ports into account in serial.getPorts()

* chore: remove port.path.LossyDisplayName()
2024-08-01 11:13:31 -05:00
cptpcrd
2337d8676d
fix: handle failing to enter fullscreen on macOS (#43112)
* fix: handle failing to enter/exit fullscreen on macOS

On macOS, failing to enter/exit fullscreen can fail. If this happens,
properly restore the original window state.

* refactor: remove fail to exit fullscreen handlers

Seem to be unnecessary since the window exits fullscreen anyway.
2024-08-01 12:13:13 +02:00
Shelley Vohr
ed3242adc1
fix: vibrant view is inserted into Views API hierarchy (#43078)
* fix: vibrant view is inserted into Views API hierarchy (#42263)

* Update shell/browser/native_window_mac.mm

Co-authored-by: Charles Kerr <charles@charleskerr.com>

---------

Co-authored-by: Hans Halverson <hans_halverson@alumni.brown.edu>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2024-07-30 18:21:20 -05:00
Shelley Vohr
d09a2e513c
fix: showInactive window not showing (#43079)
fix: showInactive window not showing

Refs https://github.com/electron/electron/pull/42226 and https://github.com/electron/electron/pull/43033
2024-07-30 12:37:27 +02:00
Charles Kerr
e70ce89235
chore: more iwyu (#43063)
* chore: iwyu shell/browser/electron_pdf_document_helper_client.h

* chore: iwyu shell/browser/hid/electron_hid_delegate.h

* chore: iwyu content/public/browser/web_contents.h

* chore: iwyu shell/browser/usb/electron_usb_delegate.h

* chore: iwyu shell/browser/browser_observer.h

* chore: iwyu shell/browser/bluetooth/electron_bluetooth_delegate.h

* chore: iwyu shell/browser/serial/electron_serial_delegate.h

* chore: iwyu shell/browser/api/frame_subscriber.h

* chore: iwyu mojo/public/cpp/bindings/

* chore: iwyu components/

* chore: iwyu extensions/

* chore: iwyu shell/common/gin_helper/

* chore: iwyu v8/

* chore: iwyu base/containers/linked_list.h

* chore: iwyu shell/browser/native_window.h

* chore: iwyu shell/browser/api/electron_api_base_window.h

* chore: iwyu shell/common/node_includes.h

* chore: iwyu gin/handle.h

* chore: iwyu base/functional/callback.h

* chore: iwyu ui/gfx/

* chore: iwyu content/public/browser/render_frame_host.h

* fix: mac

* fix: mac

* fix: win

* chore: iwyu base/files/file_path.h

* chore: iwyu base/unguessable_token.h

* chore: iwyu ui/display/screen.h

* chore: iwyu chrome/browser/predictors/preconnect_manager.h

* chore: iwyu base/observer_list_types.h

* chore: iwyu content/public/browser/web_contents.h

* chore: iwyu chrome/browser/devtools/devtools_eye_dropper.h

* chore: iwyu shell/browser/ui/inspectable_web_contents.h

* chore: iwyu content/public/browser/keyboard_event_processing_result.h

* chore: iwyu net/cookies/canonical_cookie.h

* chore: iwyu net/base/address_list.h

* chore: iwyu net/cert/x509_certificate.h

* chore: iwyu net/cookies/cookie_change_dispatcher.h

* chore: iwyu net/dns/public/host_resolver_results.h

* fix: mac

* Revert "chore: iwyu net/cert/x509_certificate.h"

This reverts commit 002896f71146e90f1e29e090a1d6eede48cee11e.
2024-07-29 12:42:57 -05:00
electron-roller[bot]
92496c1930
chore: bump chromium to 129.0.6616.0 (main) (#43012)
* chore: bump chromium in DEPS to 128.0.6613.0

* chore: 5725076: Update EventType names | https://chromium-review.googlesource.com/c/chromium/src/+/5725076

* chore: export patches

* chore: 5725076: Update EventType names | https://chromium-review.googlesource.com/c/chromium/src/+/5725076 for windows

* chore: bump chromium in DEPS to 129.0.6614.0

* 5725672: Add a feature to limit the number of preconnect in LoadingPredictor | https://chromium-review.googlesource.com/c/chromium/src/+/5725672

* chore: bump chromium in DEPS to 129.0.6616.0

* chore: e patches all and resolve conflict in  patches/v8/fix_disable_scope_reuse_associated_dchecks.patch

* 5730656: Show an error dialog when UpdatePrintSettings() fails | https://chromium-review.googlesource.com/c/chromium/src/+/5730656

* chore: gen-libc++-filenames

* 5729956: Finally remove string_piece.h | https://chromium-review.googlesource.com/c/chromium/src/+/5729956

* chore: replace all references of base::StringPiece with std::string_view

* chore: remove more references of stringPiece in favor of string_view

* chore: rename string_piece variables to string_view

* 5508795: Remove the NotificationService | https://chromium-review.googlesource.com/c/chromium/src/+/5508795

* 5734053: Revert Rename GlobalFeatures to GlobalDesktopFeatures. | https://chromium-review.googlesource.com/c/chromium/src/+/5734053

* chore: resolve conflict with main without merge

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Alice Zhao <alice@makenotion.com>
2024-07-29 09:37:35 -04:00
Fedor Indutny
55e7a47d70
fix: always terminate active Node Streams (#43056)
`.destroy()` is an important method in the lifecycle of a Node.js
Readable stream. It is typically called to reclaim the resources
(e.g., close file descriptor). The only situations where calling
it manually isn't necessary are when the following events are
emitted first:

- `end`: natural end of a stream
- `error`: stream terminated due to a failure

Prior to this commit the ended state was incorrectly tracked together
with a pending internal error. It led to situations where the request
could get aborted during a read and then get marked as ended (having
pending error).

With this change we disentangle pending "error" and "destroyed" cases to
always properly terminate an active Node.js Readable stream.

Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2024-07-27 12:25:43 -05:00
Keeley Hammond
8db1563d73
fix: remove InspectableWebContentsViewMac (#43033)
* Revert "refactor: remove InspectableWebContentsViewMac in favor of the Views version (#41326)"

This reverts commit e67ab9a93d.

* build: fix gn check

* chore: implement setCornerRadii in inspectable_web_contents_view_mac

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* fix: pass in cornerRadii value in setCornerRadii

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* fix: forward declaration

* 5578714: Remove 0-arg (default) constructor for views::Widget::InitParams.

https://chromium-review.googlesource.com/c/chromium/src/+/5578714

* fix: contents_web_view_ -> contents_view_

* chore: remove extraneous includes

---------

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2024-07-27 11:44:22 -05:00
BILL SHEN
77ba40bc01
chore: avoid crash while notification removal (#43040)
* avoid crash of operation on an invalid entry while erase set iterator.

* fix notification removal crash due to the nullptr presenter

---------

Co-authored-by: bill.shen <shenyb32768@gmail.com>
2024-07-26 15:34:40 +02:00
Keeley Hammond
2fd04a78a1
fix: revert BrowserWindow unresponsive handling refactor (#43034)
* Revert "refactor: JSify BrowserWindow unresponsive handling (#37902)"

This reverts commit 67ba30402b.

* chore: remove BrowserWindow::SetTitleBarOverlay

---------

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2024-07-25 13:02:02 -07:00
Charles Kerr
660872c048
refactor: move safe_storage functions into anonymous namespace (#43032) 2024-07-25 13:18:13 -05:00
Shelley Vohr
976f5d1b75
fix: File System API permissions should reset on WebContents destruction (#43009)
fix: active File System API permissions should reset on WebContents destruction
2024-07-25 09:53:30 -04:00
Charles Kerr
aa23198ad8
chore: remove more unused #include calls (#43000)
* chore: in shell/renderer/renderer_client_base.h, remove include media/base/key_systems_support_registration.h

last use removed in c670e38b (##41610)

* chore: iwyu electron/fuses.h

* chore: iwyu media/base/video_frame.h

* chore: iwyu base/functional/callback.h

* chore: iwyu base/task/cancelable_task_tracker.h

* chore: iwyu shell/browser/draggable_region_provider.h

* chore: iwyu shell/browser/ui/inspectable_web_contents_view.h

* chore: iwyu ui/aura/window.h

* chore: iwyu ui/base/win/shell.h

* chore: iwyu ui/display/win/screen_win.h

* chore: iwyu ui/gfx/geometry/insets.h

* chore: iwyu ui/display/display.h

* chore: iwyu ui/gfx/geometry/skia_conversions.h

* chore: iwyu ui/gfx/geometry/rect_conversions.h

* chore: iwyu ui/gfx/geometry/point.h

* chore: iwyu ui/gfx/scoped_canvas.h

* chore: iwyu ui/gfx/image/image.h

* chore: iwyu ui/accessibility/ax_node_data.h

* chore: iwyu ui/views/animation/ink_drop_highlight.h

* chore: iwyu ui/gfx/font_list.h

* chore: iwyu ui/linux/nav_button_provider.h

* chore: iwyu shell/browser/ui/views/frameless_view.h

* chore: iwyu services/metrics/public/cpp/ukm_source_id.h

* chore: iwyu net/http/http_util.h

* chore: iwyu net/base/mime_util.h

* chore: iwyu content/public/common/content_client.h

* chore: iwyu <list>

* chore: iwyu <optional>

* chore: iwyu <memory>

* chore: iwyu base/files/file_path.h

* chore: iwyu ui/base/cursor/cursor.h

* chore: iwyu build/build_config.h

* chore: iwyu content/public/browser/web_contents.h

* chore: iwyu shell/browser/hid/hid_chooser_context.h

* chore: iwyu shell/common/platform_util.h

* chore: iwyu base/task/single_thread_task_runner.h

* chore: iwyu content/browser/renderer_host/render_widget_host_impl.h

* chore: iwyu content/public/browser/render_widget_host.h

* chore: iwyu shell/browser/electron_browser_context.h

* chore: iwyu content/public/browser/web_contents_observer.h

* chore: iwyu content/public/browser/render_frame_host.h

* chore: iwyu content/public/browser/media_stream_request.h

* chore: iwyu chrome/common/chrome_paths.h

* chore: iwyu chrome/browser/icon_manager.h

* chore: iwyu printing/print_settings.h

* chore: iwyu renderer/pepper_helper.h

* chore: iwyu shell/browser/api/process_metric.h

* chore: iwyu shell/browser/electron_browser_client.h

* chore: iwyu shell/browser/electron_browser_context.h

* chore: iwyu shell/browser/api/electron_api_session.h

* chore: iwyu shell/browser/api/electron_api_app.h

* chore: iwyu shell/browser/ui/views/client_frame_view_linux.h

* chore: iwyu shell/browser/native_window_views.h

* chore: iwyu base/win/windows_version.h

* chore: iwyu shell/common/electron_paths.h

* chore: iwyu content/public/common/content_switches.h

* chore: iwyu third_party/skia/include/core/SkRRect.h

* chore: iwyu third_party/skia/include/core/SkBitmap.h

* chore: iwyu third_party/skia

* chore: iwyu shell/browser/osr/osr_host_display_client.h

* chore: iwyu shell/browser/login_handler.h

* chore: iwyu shell/browser/javascript_environment.h

* chore: iwyu shell/browser/event_emitter_mixin.h

* fix: mac

* fix: mac

* chore: iwyu base/nix/xdg_util.h

* fix: win

* fix: win

* fix: win

* fix: win
2024-07-25 11:25:45 +02:00
Shelley Vohr
cfdcf48e1b
fix: desktopCapturer breaks BrowserWindow resizable on macOS (#43013)
* fix: desktopCapturer breaks BrowserWindow resizable on macOS

* test: oops fix showing
2024-07-25 11:17:37 +02:00
Charles Kerr
df524c6eca
chore: use v8::Local<>, not v8::Handle<> (#43019)
v8::Handle is an alias for v8::Local that "is kept around for historical
reasons" and is disabled when V8_IMMINENT_DEPRECATION_WARNING is defined
2024-07-24 18:24:07 -05:00
Shelley Vohr
5669a40d5c
feat: add transparency checking to nativeTheme (#42862)
* feat: add transparency checking to nativeTheme

Refs https://chromium-review.googlesource.com/c/chromium/src/+/4684870

* chore: deprecate previous function

* chore: fix lint
2024-07-24 14:38:22 +02:00
electron-roller[bot]
3e22f992b0
chore: bump chromium to 128.0.6611.0 (main) (#42779)
* chore: bump chromium in DEPS to 128.0.6577.0

* chore: bump chromium in DEPS to 128.0.6579.0

* 5675706: Reland "Reland "Reland "Reland "Add toolchains without PartitionAlloc-Everywhere for dump_syms et al""""

https://chromium-review.googlesource.com/c/chromium/src/+/5675706

* 5668597: [PDF Ink Signatures] Prompt download menu on save when there are edits

https://chromium-review.googlesource.com/c/chromium/src/+/5668597

* 5677014: Reland "Pull data_sharing_sdk from CIPD"

https://chromium-review.googlesource.com/c/chromium/src/+/5677014

* chore: fixup patch indices

* chore: bump chromium in DEPS to 128.0.6581.0

* chore: bump chromium in DEPS to 128.0.6583.0

* update patches

* 5455480: [Extensions] Allow service worker requests to continue without a cert

https://chromium-review.googlesource.com/c/chromium/src/+/5455480

* try to get some debugging output from script/push-patch.js

* chore: bump chromium in DEPS to 128.0.6585.0

* chore: bump chromium in DEPS to 128.0.6587.0

* update patches

* chore: bump chromium in DEPS to 128.0.6589.0

* more patch work

* maybe over here?

* chore: update patches

* 5673207: [HTTPS Upgrades] Disable in captive portal login webview

https://chromium-review.googlesource.com/c/chromium/src/+/5673207

* 5636785: Extensions: WAR: manifest.json's use_dynamic_url requires a dynamic url

https://chromium-review.googlesource.com/c/chromium/src/+/5636785

* chore: bump chromium in DEPS to 128.0.6591.0

* 5665458: Trigger WN2 page when feature is enabled

https://chromium-review.googlesource.com/c/chromium/src/+/5665458

* update patches

* chore: bump chromium in DEPS to 128.0.6593.0

* chore: bump chromium in DEPS to 128.0.6595.0

* chore: bump chromium in DEPS to 128.0.6597.0

* (patch update) 5694586: [compile hints] Remove the usage of v8::Isolate::SetJavaScriptCompileHintsMagicEnabledCallback API
https://chromium-review.googlesource.com/c/chromium/src/+/5694586

* update patches

* 5691287: Reland "Change blink::WebKeyboardEvent to use std::array in is members"
https://chromium-review.googlesource.com/c/chromium/src/+/5691287

The code changed here is modeled after code in `content/renderer/pepper/event_conversion.cc` that was also modified in this CL, so I took the same approach.

* 5529018: Cleanup EnableWebHidOnExtensionServiceWorker flag
https://chromium-review.googlesource.com/c/chromium/src/+/5529018

* 5526324: [Code Health] Add deprecation comment for base::SupportsWeakPtr.
https://chromium-review.googlesource.com/c/chromium/src/+/5526324

Note that this CL actually does make `SupportsWeakPtr` strictly restricted to existing implementations, no new ones. We could add a patch to add ourselves to this list, but it looks like we'll have to refactor this anyways in the near future. Since the refactor seems straightforward, let's try that first.

* chore: bump chromium in DEPS to 128.0.6598.0

* chore: update patches

* 5704737: Rename ExclusiveAccessContext::GetActiveWebContents to avoid conflict
https://chromium-review.googlesource.com/c/chromium/src/+/5704737

* chore: bump chromium in DEPS to 128.0.6601.0

* chore: update patches

* Add `base::StringPiece` header includes

Chromium is working on replacing `base::StringPiece` with `std::string_view`. (See the Chromium Bug below.) They're currently running mass codemods (across many multiple changes) to replace uses of `StringPiece` with `string_view`, including removing the header include for `StringPiece` in those files. This cascades down to our files that were implicitly depending on those includes through some other include.

They're on track to eventually deprecate and remove `StringPiece` so our code should be converted, but that can be done as an upgrade follow-up task. For now, adding the header back to files that need it should suffice for minimal upgrade changes.

Chromium Bug: https://issues.chromium.org/issues/40506050

* 5702737: GlobalRequestID: Avoid unwanted inlining and narrowing int conversions
https://chromium-review.googlesource.com/c/chromium/src/+/5702737

contender for smallest commit 2024

* 5706534: Rename GlobalFeatures to GlobalDesktopFeatures.
https://chromium-review.googlesource.com/c/chromium/src/+/5706534

* 5691321: ui: remove params variants of SelectFile listener functions
https://chromium-review.googlesource.com/c/chromium/src/+/5691321

* 5714949: [Extensions] Display re-enable dialog for MV2 disabled stage
https://chromium-review.googlesource.com/c/chromium/src/+/5714949

* chore: update libc++ filenames

* patch: disable scope reuse & associated dchecks in v8 (hopefully temp, upgrade follow-up)

* fixup! Add `base::StringPiece` header includes

* update MAS patch

5710330: Add crash keys to debug NativeWidgetMacNSWindowBorderlessFrame exception
https://chromium-review.googlesource.com/c/chromium/src/+/5710330

* chore: bump chromium in DEPS to 128.0.6603.0

* chore: update patches

* 5713258: Reland "Preparation for decoupling creation/initialization of context"
https://chromium-review.googlesource.com/c/chromium/src/+/5713258

When destroying a context, it must already be shutdown, and this change enforces it with a new CHECK.

We were overriding `BrowserContextKeyedServiceFactory::BrowserContextShutdown` with an empty implementation, which differed from the default implementation that notifies the `KeyedServiceFactory` that the context has shutdown. Since we were missing this notification, the CHECK would later trip when the service was being destoryed because it was not registered as shutdown when it was shutdown.

* chore: bump chromium in DEPS to 128.0.6605.2

* chore: update patches

* refactor: linux open/save dialog patch

Our existing implementation was relying on an opaque `void* params` parameter that was passed through `ui::SelectFileDialog`.

Recently, that parameter has been getting removed:
- 5691321: ui: remove params variants of SelectFile listener functions | https://chromium-review.googlesource.com/c/chromium/src/+/5691321
- 5709097: ui: remove SelectFileDialog impl params | https://chromium-review.googlesource.com/c/chromium/src/+/5709097
- https://issues.chromium.org/issues/340178601 "reconsider SelectFileDialog"

This restructures the patch to work with mostly the same mechanics, but directly on the `ui::SelectFileDialog` object. This nets us some wins in terms of a smaller patch.

* 5713262: DevTools UI binding AIDA client event returns response
https://chromium-review.googlesource.com/c/chromium/src/+/5713262

* fixup! refactor: linux open/save dialog patch

* chore: bump chromium in DEPS to 128.0.6606.0

* chore: update patches

* fixup! refactor: linux open/save dialog patch

* chore: bump chromium in DEPS to 128.0.6607.0

* chore: update printing.patch

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5722937

* fix: pwd error in electron-test, nan-test

fix: unshallow depot_tools before 3-way apply

* chore: e patches all

* fixup! fix: pwd error in electron-test, nan-test

* chore: bump chromium in DEPS to 128.0.6609.0

* chore: bump chromium in DEPS to 128.0.6611.0

* chore: update patches

* chore: update libcxx filenames

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Alice Zhao <alice@makenotion.com>
2024-07-23 08:59:44 -07:00
Shelley Vohr
8454f4e49f
feat: emit an event when accessing restricted path in File System Access API (#42561)
* fix: show a dialog when accessing restricted path in File System Access API

* fix: allow overriding initial blocked paths

* docs: fix doc

* Update docs/api/session.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* fix: change block to deny for consistency

---------

Co-authored-by: Erick Zhao <erick@hotmail.ca>
2024-07-22 12:18:15 +02:00
Charles Kerr
60c4c9fec6
chore: remove unused #includes (#42971)
* chore: iwyu buildflags.h

* chore: iwyu dictionary.h

* chore: iwyu arguments.h

* chore: iwyu values.h

* chore: iwyu compiler_specific.h

* chore: iwyu binder_map.h

* chore: iwyu <vector>

* chore: iwyu <set>

* chore: iwyu raw_ptr

* chore: iwyu gfx/canvas.h

* chore: iwyu gfx/color_utils.h

* chore: iwyu base/strings/stringprintf.h

* chore: iwyu base/task/thread_pool.h

* chore: iwyu base/no_destructor.h

* chore: iwyu base/path_service.h

* chore: iwyu base/files/file_pathh

* chore: iwyu base/strings/sys_string_conversions.h

* chore: iwyu base/logging.h

* chore: iwyu base/command_line.h

* chore: iwyu base/files/file_util.h

* chore: iwyu base/files/scoped_file.h

* chore: iwyu base/strings/utf_string_conversions.h

* chore: iwyu base/environment.h

* chore: iwyu base/scoped_observation.h

* chore: iwyu base/strings/string_split.h

* chore: iwyu base/strings/pattern.h

* chore: iwyu base/json/string_escape.h

* chore: iwyu base/json/json_reader.h

* chore: iwyu base/memory/singleton.h

* chore: iwyu base/observer_list.h

* chore: iwyu base/timer/timer.h

* fixup! chore: iwyu values.h

* chore: iwyu shell/browser/browser.h

* chore: iwyu base/stl_util.h

* chore: iwyu base/strings/string_util.h

* chore: iwyu shell/browser/javascript_environment.h

* chore: iwyu base/memory/ref_counted.h

* chore: iwyu base/environment.h

* chore: iwyu content/public/browser/browser_thread.h

* chore: remove unused typedef gin_helper::EventEmitter::ValueArray

* chore: iwyu gin/wrappable.h

* chore: iwyu shell/common/gin_helper/function_template_extensions.h

* chore: iwyu shell/common/gin_converters/login_item_settings_converter.h

* chore: iwyu shell/common/gin_helper/arguments.h

* chore: iwyu ui/gfx/skia_util.h

* chore: iwyu ui/gfx/geometry/rect.h

* chore: iwyu ui/gfx/image/image.h

* chore: iwyu base/strings/strcat.h

* chore: iwyu ui/native_theme/native_theme.h

* fixup! chore: iwyu shell/browser/javascript_environment.h

* fixup! chore: iwyu gfx/canvas.h

* fixup! chore: iwyu content/public/browser/browser_thread.h

* fixup! chore: iwyu ui/native_theme/native_theme.h

* fixup! chore: iwyu ui/native_theme/native_theme.h
2024-07-22 11:31:32 +02:00
Charles Kerr
780677e00f
chore: remove unused BaseWindow::GetWeakPtr() (#42973)
last caller removed in 67ba3040 (#37902)
2024-07-22 10:44:34 +02:00
Charles Kerr
c72a714dd5
refactor: remove WindowListObserver::OnWindowAdded() (#42979)
refactor: remove WindowListObserver::OnWindowRemove()

these have never been used
2024-07-22 10:44:08 +02:00
Charles Kerr
7a101a1c4b
refactor: remove unused web contents preferences methods (#42947)
* chore: remove unused WebContentsPreferences::ShouldDisableDialogs()

* chore: remove unused WebContentsPreferences::ShouldUseSafeDialogs()

caller removed in 85bc005c

* chore: remove unused WebContentsPreferences::GetSafeDialogsMessage()

caller removed in 85bc005c

* refactor: WebContentsPreferences::GetPreloadPath() now returns a std::optional<base::FilePath>

* refactor: make WebContentsPreferences::last_preference() const
2024-07-19 12:26:57 -05:00
Charles Kerr
5b7ed6097e
chore: remove unused typedef CreateDownloadPathCallback (#42949)
chore: remove unused typedef ElectronDownloadManagerDelegate::CreateDownloadPathCallback

use was removed in e3c580e9
2024-07-19 11:49:58 -05:00
Charles Kerr
32a74b0942
chore: remove unused field ElectronBrowserClient::browser_main_parts_ (#42956)
chore: remove unused field ElectronBrowserClient::browser_main_parts_

caller removed in 48d0b09a
2024-07-19 11:48:52 -05:00
Charles Kerr
5773a2dce6
fix: dangling raw_ptr NodeBindings::uv_env_ (#42933) 2024-07-17 23:30:09 -05:00
Charles Kerr
bc345db351
fix: dangling raw_ptr<views::View> in api::View (#42929) 2024-07-17 21:31:48 -05:00
arno renevier
81bdba67ec
feat: Implement password delegate for NSS (#41205)
* feat: Implement password delegate for NSS (#41188)

Introduce an app event client-certificate-request-password. It allows
the user to display a UI to prompt for the password.

An alternative would have been to implement a class similar to
CryptoModulePasswordDialogView, to provide the UI. This might have been
simpler for the user, comparing to letting them implement the UI. But it
seems like electron does not have an i18n framework, so it's not
possible to provide a locale aware UI.

* fix lint:markdown error

* address review comments

* use a trampoline handler in JS. The api exposed is now app.setClientCertRequestPasswordHandler
* use properties on the Event object instead of positional parameters
* remove ChromeNSSCryptoModuleDelegate::OnPassword in favor of args->GetNext(&password_)

* address review comments second round

- backslash escape parametrized TypeScript
- rename hostName param to hostname
- use base::ScopedAllowBaseSyncPrimitivesForTesting
- and then, rename ChromeNSSCryptoModuleDelegate to ElectronNSSCryptoModuleDelegate

* Update docs/api/app.md

Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>

* Update docs/api/app.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

---------

Co-authored-by: Arno Renevier <arnaud@switchboard.app>
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2024-07-17 09:48:03 -04:00
wujinli
9023707b9b
fix: crash with creating OffScreenWebContentsView (#42920)
On the Mac platform, OffScreenWebContentsView uses Automatic Reference
Counting (ARC) to handle the lifecycle of offScreenView_. However, this
private member variable is not initialized and its value is undefined.
In some cases, it is initialized to a garbage value, which may cause ARC
to release the value incorrectly, resulting in a crash.
2024-07-17 13:09:32 +02:00
Shelley Vohr
fd907bc0a3
fix: getUserMedia needs macOS system permissions check (#42899)
fix: getUserMedia needs macOS system permissions check

Closes https://github.com/electron/electron/issues/42714
Closes https://github.com/electron/electron/issues/29861
2024-07-17 11:30:05 +02:00
Sam Maddock
778d3098a0
feat: customize border radius of Views (#42320)
* feat: add View#setBorderRadius

test: initial setBorderRadius tests

fix: robustly set border radius

chore: add PAUSE_CAPTURE_TESTS for easier screencap dev

feat: add view border radius support

test: view border radius

refactor: cleanup view code

* maybe delay capture to fix tests?

* refactor: retry screen captures in an attempt to fix flakiness

* refactor: ScreenCapture constructor no longer async

* increase screen capture timeout, feels a little short

* refactor: move rounded rect util into chromium_src

* skip some capture tests on mas
2024-07-16 20:16:25 -04:00
Shelley Vohr
cbd11bb605
fix: BrowserWindow.setBackgroundColor should work with transparency (#42824)
fix: BrowserWindow.setBackgroundColor should work with transparency
2024-07-16 20:11:49 +02:00
Theo Gravity
bab3fcc9ab
feat: add getPercentComplete / getCurrentBytesPerSecond / getEndTime to DownloadItem (#42805)
feat: getCurrentSpeed / getPercentComplete / getEndTime on DownloadItem
2024-07-15 19:32:44 -04:00
Shelley Vohr
ae1a684d10
fix: iteration issues in hid RevokeEphemeralDevicePermission (#42851)
fix: iteration issues in hid RevokeEphemeralDevicePermission
2024-07-15 10:41:38 -04:00
Robo
1e1dc22e16
fix: crash when resolving proxy due to network service restart (#42878) 2024-07-15 17:46:24 +09:00
Shelley Vohr
bbd7f4a5ad
fix: File System Access API should remember last picked directory (#42850) 2024-07-14 18:43:37 +02:00
Calvin
493bc3ac9d
fix: desktopCapturer and screen display ids should match (#42883)
* fix: `desktopCapturer` and `screen` display IDs should match

* simplify wide-to-utf8 conversion

* remove unnecessary include
2024-07-14 09:51:57 +02:00
Shelley Vohr
4e10eeb87e
fix: desktopCapturer and screen source ids should match screen ids (#42781)
* fix: desktopCapturer screen source ids should match screen ids

* test: add a regression test
2024-07-10 16:32:29 -07:00
Shelley Vohr
fa6ce4f0f8
fix: High Contrast mode not working on Windows (#42853)
Closes https://github.com/electron/electron/issues/42609
Refs https://chromium-review.googlesource.com/c/chromium/src/+/5324688
Refs https://chromium-review.googlesource.com/c/chromium/src/+/5368321
2024-07-10 15:14:02 -07:00
Charles Kerr
f9d94211bb
refactor: do not subclass ElectronSpeechRecognitionManagerDelegate from SpeechRecognitionEventListener (#42806)
All the listener functions are empty stubs (and have been since d4e3c39)
so it doesn't seem like we need a listener?

SpeechRecognitionManagerDelegate declares this method:

> // Checks whether the delegate is interested (returning a non nullptr
> // ptr) or not (returning nullptr) in receiving a copy of all sessions
> // events. This is called on the IO thread.
> virtual SpeechRecognitionEventListener* GetEventListener() = 0;

This PR has ElectronSpeechRecognitionManagerDelegate stop subclassing
from the Listener and changes GetEventListener() to return nullptr.
2024-07-10 15:32:50 +02:00
Charles Kerr
e9db02948e
fix: multiple move() calls on the same unique_ptr (#42788) 2024-07-08 11:04:35 -04:00
Charles Kerr
27e3273f0a
refactor: minor electron browser context cleanup (#42789)
* refactor: make DevicePermissionMap private to electron::ElectronBrowserContext

refactor: make PartitionPath private to electron::ElectronBrowserContext

* refactor: remove unused forward declarations of v8 classes

* chore: forward declare gin::Arguments

* refactor: use unique_ptr operator bool
2024-07-08 16:49:41 +02:00