* WIP: Session.clearBrowsingData API
* impl API method
* clean up
* tidy types and comments
* add docs
* add barebones test
* forgot a `#` :(
* tidy: address review comments
* use format macro for cross-platform build
* add another test
* amend docs to disambiguate
* Rename to `clearData`
This aligns us with Chromiums flags / capabilities in regards to using SCK for
everything. Currently on 14.4 Electron apps will pop warnings for usage of
deprecated APIs. With this change and a few "enable-features" toggles.
`--enable-features="ScreenCaptureKitMac,ScreenCaptureKitStreamPickerSonoma,ThumbnailCapturerMac:capture_mode/sc_screenshot_manager"`
As Chromium enables these by default Electron will inherit those changes, apps wishing to skip ahead can apply these flags early.
* refactor: use base::WriteJson() in ListValueToNSArray()
refactor: use base::WriteJson() in DictionaryValueToNSDictionary()
* refactor: use base::WriteJson() in Debugger::SendCommand()
* refactor: use base::WriteJson() in ScriptingExecuteScriptFunction::Run()
* refactor: use base::WriteJson() in HandleAccessibilityRequestCallback()
* refactor: do not use banned std::to_string() in ServiceWorkerContext::GetAllRunningWorkerInfo()
* refactor: do not use banned std::to_string() in REPORT_AND_RETURN_IF_FAILED()
* refactor: do not use banned std::to_string() in JSChunkedDataPipeGetter::OnWriteChunkComplete()
* refactor: do not use banned std::to_string() in SetCrashKey()
* chore: remove unused #include
* 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
* refactor: use base::flat_map in ElectronMenuModel
* refactor: use base::flat_map in BuildSubmenuFromModel()
* refactor: use base::flat_map in GetDialogsMap()
* refactor: use base::flat_map in DesktopCapturer
* refactor: use base::flat_map, flat_set in ElectronBrowserClient
* refactor: use base::flat_map in ProxyingURLLoaderFactory
* refactor: use base::flat_map in MapToCommonId()
* refactor: use base::flat_map for g_map_id
* refactor: use base::flat_map for ViewsDelegate::AppbarAutohideEdgeMap
* refactor: use base::flat_map for App::app_metrics_
* refactor: use base::flat_map for PowerSaveBlocker::wake_lock_types_
* refactor: use base::flat_map for NativeImage::hicons_
* refactor: use base::flat_map for MenuViews::menu_runners_
* refactor: use base::flat_map for WebViewManager::web_contents_embedder_map_
* refactor: use base::flat_map for InspectableWebContents::extensions_api_
* refactor: use base::flat_set for libnotify GetServerCapabilities()
* refactor: use base::flat_set for InspectableWebContents::loaders_
* refactor: use base::flat_set for ElectronRendererClient::environments_
refactor: use base::flat_set for ElectronRendererClient::injected_frames_
* refactor: use base::flat_set for WebWorkerObserver::environments_
* feat: add transparent option to WebContents
* feat: add transparent attribute to webview
* test: add tests for webview transparent attribute
* docs: add transparent attribute to webview docs
* fix: run tests on macOS only
* refactor: remove unneeded html tag
* fix: only apply transparent option to guests
* refactor: correct comment
* refactor: use opaque instead
Retains current webview behaviour by default.
* fix: correct variable name to guest_opaque_
* refactor: use transparent webpreference
* docs: remove unused web preference
* fix: uncomment condition for transparency test
* docs: converted to list format and linked to MDN
* fix: make webviews transparent by default again
* fix: rebase error
---------
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
* chore: initial prototype of net api from utility process
* chore: update url loader to work on both browser and utility processes
* chore: add net files to utility process bundle
* chore: re-add app ready check but only on main process
* chore: replace browser thread dcheck's with sequence checker
* refactor: move url loader from browser to common
* refactor: move net-client-request.ts from browser to common
* docs: add utility process to net api docs
* refactor: move net module app ready check to browser only
* refactor: switch import from main to common after moving to common
* test: add basic net module test for utility process
* refactor: switch browser pid with utility pid
* refactor: move electron_api_net from browser to common
* chore: add fetch to utility net module
* chore: add isOnline and online to utility net module
* refactor: move net spec helpers into helper file
* refactor: break apart net module tests
Adds two additional net module test files: `api-net-session-spec.ts` for
tests that depend on a session being available (aka depend on running on
the main process) and `api-net-custom-protocols-spec.ts` for custom
protocol tests. This enables running `api-net-spec.ts` in the utility
process.
* test: add utility process mocha runner to run net module tests
* docs: add utility process to net module classes
* refactor: update imports in lib/utility to use electron/utility
* chore: check browser context before using in main process
Since the browser context supplied to the SimpleURLLoaderWrapper can now
be null for use in the UtilityProcess, adding a null check for the main
process before use to get a more sensible error if something goes wrong.
Co-authored-by: Cheng Zhao <github@zcbenz.com>
* chore: remove test debugging
* chore: remove unnecessary header include
* docs: add utility process net module limitations
* test: run net module tests in utility process individually
* refactor: clean up prior utility process net tests
* chore: add resolveHost to utility process net module
* chore: replace resolve host dcheck with sequence checker
* test: add net module tests for net.resolveHost
* docs: remove utility process limitation for resolveHost
---------
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
* chore: bump chromium in DEPS to 121.0.6154.0
* chore: bump chromium in DEPS to 121.0.6155.0
* fix patches
* chore: update patches
* patch out reference to GetOcclusionTracker
* un-flag PIPOcclusionTracker
* chore: bump chromium in DEPS to 121.0.6157.0
* fix conflicts
https://chromium-review.googlesource.com/c/chromium/src/+/5038807
* add PIP occlusion tracker sources to chromium_src
* 5037591: Replace feature_list's Initialize* methods with Init*.
https://chromium-review.googlesource.com/c/chromium/src/+/5037591
* 4811903: Move //content/browser/renderer_host/input/synthetic_gesture_controller to //content/common/input
https://chromium-review.googlesource.com/c/chromium/src/+/4811903
* 4917953: usb: Add usb-unrestricted to permission policy
https://chromium-review.googlesource.com/c/chromium/src/+/4917953
* 5072395: Remove unused `creation_context` parameter from blink/public APIs
https://chromium-review.googlesource.com/c/chromium/src/+/5072395
* 5052035: [X11] Change AtomCache from a singleton to owned by Connection
https://chromium-review.googlesource.com/c/chromium/src/+/5052035
* fix v8/.patches
* node script/gen-libc++-filenames.js
* 5035771: Remove the SetImage method of ImageButton
https://chromium-review.googlesource.com/c/chromium/src/+/5035771
* fixup! 5052035: [X11] Change AtomCache from a singleton to owned by Connection
* fixup! 5035771: Remove the SetImage method of ImageButton
* chore: bump chromium in DEPS to 121.0.6159.0
* 4505903: [Extensions] Add lastAccessed property to chrome.tabs.Tab
https://chromium-review.googlesource.com/c/chromium/src/+/4505903
* update patches
* don't duplicate tabs API types
this causes weird memory bugs if the two get out of sync
* fix UAF in TrayIconCocoa
not sure why this is popping up just now ... this has been broken for ages afaict
* Revert "don't duplicate tabs API types"
This reverts commit 80dff2efaa1297e5c191b2c69648099d6665dbff.
This is failing tests with extensions API schema check failures, so
revert for now. we'll fix it later.
* revert v8 change causing node crashes
* chore: reduce diffs in revert_api_dcheck-fail_when_we_reenter_v8_while_terminating.patch
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
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>
* chore: bump chromium in DEPS to 120.0.6049.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6050.0
* chore: update patches
* 4910494: Reland "[autopip] Show autopip UI for video pip"
https://chromium-review.googlesource.com/c/chromium/src/+/4910494
* 4812338: Move partition_alloc into a "partition_alloc" dir.
https://chromium-review.googlesource.com/c/chromium/src/+/4812338
* [Extensions Cleanup] Remove mojom ViewType::kExtensionDialog
https://chromium-review.googlesource.com/c/chromium/src/+/4909897
* 4894923: Force enable raw_ptrs pointer arithmetic check.
https://chromium-review.googlesource.com/c/chromium/src/+/4894923
* gin: Prevent wrappables from being constructed from author code.
https://chromium-review.googlesource.com/c/chromium/src/+/4905829
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6052.0
* chore: bump chromium in DEPS to 120.0.6054.0
* chore: bump chromium in DEPS to 120.0.6056.0
* chore: fix patches
* 4918545: Reland "[autopip] Add permissions embargo"
https://chromium-review.googlesource.com/c/chromium/src/+/4918545
* 4881761: UI bindings for visual logging with structured metrics.
https://chromium-review.googlesource.com/c/chromium/src/+/4881761
* chore: bump chromium in DEPS to 120.0.6058.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6060.0
* chore: bump chromium in DEPS to 120.0.6061.0
* chore: bump chromium in DEPS to 120.0.6062.0
* chore: gen libc++ filenames
* chore: update patches
* 4911894: Move //c/b/ui/views/eye_dropper to //components
https://chromium-review.googlesource.com/c/chromium/src/+/4911894
* chore: bump chromium in DEPS to 120.0.6064.0
* chore: bump chromium in DEPS to 120.0.6066.0
* chore: bump chromium in DEPS to 120.0.6068.0
* chore: bump chromium in DEPS to 120.0.6070.0
* chore: remove temp_prevent_unused_function_error.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4931270
* chore: add TransferDragSecurityInfo()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4928028
* mark TransferDragSecurityInfo() as NOTREACHED
A follow-up to previous commit. I think this is commit is correct (i.e.
that this function shouldn't get called) but am not positive, so I'm
including it in a standalone commit in case we need to revert.
* chore: update signature of OnPrivateNetworkAccessPermissionRequired()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4919478
Our impl is a no-op, so updating the signature is the only change.
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6072.0
* chore: update patches
* chore: sync ParseMatchPattern() param order with upstream change
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4944243
* chore: update fix_crash_loading_non-standard_schemes_in_iframes.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4939602
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6073.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6074.0
* chore: update disable_color_correct_rendering.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4908053
no manual changes; patch applied with fuzz 1
* chore: update fix_handle_no_top_level_aura_window_in_webcontentsimpl.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4936315
minor manual sync to upstream code shear
* chore: rebuild patches
* chore: update ClearHttpAuthCache arguments
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4937937
adding ClearDataFilterPtr arg. Upstream added this arg, which is already
present in other NetworkContext methods. Our code uses `nullptr` there.
* chore: bump chromium in DEPS to 120.0.6076.0
* chore: update mas_disable_remote_accessibility.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4865412
minor manual sync to upstream code shear
* chore: update disable_color_correct_rendering.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4942936
minor manual sync to upstream code shear
* fix: move x11_util.h include to top of source file
This is a short-term fix to unblock the roll. I will follow up a better fix in a standalone PR.
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6077.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6078.0
* chore: update patches
* refactor: add BrowserProcessImpl::os_crypt_async()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4455776
This is one to keep an eye on. This commit copies the upstream impl,
which appears to be an interim step with more upstream code changes
still forthcoming.
Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=1373092
* fixup! refactor: add BrowserProcessImpl::os_crypt_async()
chore: make 'gn check' happy
* chore: remove ensure_messageports_get_gced_when_not_referenced.patch
Xref: ensure_messageports_get_gced_when_not_referenced.patch
no longer needed because upstreamed
* chore: remove webrtc/pipewire_capturer_make_restore_tokens_re-usable_more_than_one_time.patch
Xref: https://webrtc-review.googlesource.com/c/src/+/322621
no longer needed because upstreamed
* chore: add //components/compose:buildflags dep
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4912601
needed by browser/ui/browser_dialogs.h
* chore: update filenames.libcxx.gni
node ./script/gen-libc++-filenames.js
* test: fix UI.InspectorView -> UI.InspectorView.instance()
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
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: Shelley Vohr <shelley.vohr@gmail.com>