* refactor: change defined(MAS_BUILD) to IS_MAS_BUILD()
This is missing-definition safe and thus allows us to move the definition of this macro away from "all compilation targets" to "just the compilation targets that depend on this macro".
In turn this makes the rebuild time changing from mas <-> darwin only 80 seconds on my machine, instead of the 12-15 minutes it used to take. This will also allow us in the future to build both MAS and darwin on the same CI machine. Costing us ~2 minutes on one machine but saving us anywhere from 30 minutes to an hour of CI time on other parts of the matrix.
* build: always define IS_MAS_BUILD even on non-mac builds
* build: use extra_configs
* chore: bump chromium in DEPS to 109.0.5364.0
* chore: update patches
* chore: bump chromium in DEPS to 109.0.5366.0
* chore: update patches
* i3940364: Change PermissionType::WINDOW_PLACEMENT to WINDOW_MANAGEMENT
3940364
* 3866812: Change content::PluginList to only run on the UI thread.
3866812
* chore: bump chromium in DEPS to 109.0.5368.0
* [cleanup] Replace enable_basic_printing with enable_printing
3957357
* chore: update patches
* 3956318: Desktop PWAs: Retire kWebAppWindowControlsOverlay flag
3956318
* fixup! Change content::PluginList to only run on the UI thread.
(cherry picked from commit 7b5ec87d4ff5d34e7493b4fb46c40c0afeef2005)
Co-Authored-By: Robo <hop2deep@gmail.com>
* chore: bump chromium in DEPS to 109.0.5370.0
* 3956299: Quota: Cleanup QuotaPermissionContext
3956299
* chore: update patches
* 3803867: Add Mojo interface to parse XML for OOP printer capabilities
3803867
* fixup: Add Mojo interface to parse XML for OOP printer capabilities
* chore: bump chromium in DEPS to 109.0.5372.0
* chore: update patches
* chore: bump chromium in DEPS to 109.0.5374.0
* chore: bump chromium in DEPS to 109.0.5376.0
* chore: bump chromium in DEPS to 109.0.5378.0
* chore: update patches
* Quota: Cleanup kPersistent in BrowsingDataRemover
3964859
* 3955976: serial: Create DOMException with V8ThrowDOMException
3955976
* 3758405: Append trailer data to serialized messages.
3758405
* chore: revert clang roll
This patch reverts 3967491
because that roll breaks the WOA build: https://crbug.com/1377819
* chore: update patches
* chore: bump chromium in DEPS to 109.0.5380.0
* chore: update patches
* 3859750: [linux/wayland] Added plumbing for the state of tiled edges.
3859750
Also 3970920: [linux/wayland] Fixed the tiled edges for the GTK frame.
3970920
* chore: bump chromium in DEPS to 109.0.5382.0
* chore: update patches
* chore: revert Use accessibility.pkey when setting page access.
3949281
breaks our Linux builds run under Docker.
This patch should be removed once
3949284
is merged.
* 3976312: Roll clang llvmorg-16-init-8189-g97196a2d-2 : llvmorg-16-init-8697-g60809cd2-1
3976312
* 3967841: [heap] Remove AllocationSpace::MAP_SPACE enum constant
3967841
* 3956131: [cleanup] Remove flag for Wasm threads & atomics
3956131
* chore: update docs for Quota: Cleanup kPersistent in BrowsingDataRemover
3964859
* test: fixup HID test for ARM CI
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: electron-patch-conflict-fixer[bot] <83340002+electron-patch-conflict-fixer[bot]@users.noreply.github.com>
* build: determine electron version from tags not files
* build: make electron_version dependent on packed-refs and git HEAD
* build: do not delete electron/.git
* build: do not revert a commit we didn't make
* build: gen version file instead of just writing it
* build: update cache and ninja targets
* build: copy resource.h to generated electron.rc
* build: electron_win32_resources should be public deps
* build: also copy the icon
feat: ensure mas builds of the same application can use safestorage
This change ensures that MAS builds of applications with an equivilant darwin build that share the same name do not fight over access to the same Safe Storage account.
Specifically this changes the account name for app "My App" from "My App" to "My App AppStore" if the app is using a MAS build of Electron.
We attempt to migrate the safe storage key from the old account, if that migration succeeds we delete the old key and move on.
Existing apps that aren't built for the app store should be unimpacted, there is one edge case where a user uses BOTH an AppStore and a darwin build of the same app only one will keep it's access to the safestorage key as during the migration we delete the old account. This is an acceptable edge case as no one should be actively using two versions of the same app.
Co-authored-by: Samuel Attard <sattard@salesforce.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* Updates to allow for using a custom v8 snapshot file name
* Allow using a custom v8 snapshot file name
* Fix up patch due to merge
* Use fuse to set up custom v8 snapshot file in browser process
* Refactor to use delegate instead of command line parameter
* Refactoring
* Update due to merge
* PR comments
* Rename patch
* Rename patch
* test: drop the now-empty remote runner from CI
* move fixtures to spec-main
* remove remote runner
* fix stuff
* remove global-paths hack
* move ts-smoke to spec/
* fix test after merge
* rename spec-main to spec
* no need to ignore spec/node_modules twice
* simplify spec-runner a little
* no need to hash pj/yl twice
* undo lint change to verify-mksnapshot.py
* excessive ..
* update electron_woa_testing.yml
* don't search for test-results-remote.xml
it is never produced now
* fix: broken wayland window decorations due to botched chromium update
The `GetTitlebarBounds().height()` is obviously intended to be placed in
the `top` parameter, which used to be the second one before upstream
removed multi-parameter `gfx::Rect::Inset`, but it's the first parameter
for `gfx::Insets::TLBR`, which was intended to replace the removed
`Inset` function. However, whoever updated Chromium kept the parameter
unchanged, causing the title bar height to be passed to the `left`
parameter, causing the window title bar to be unclickable.
* fix: wayland window top bar buttons unclickable
Use NonClientFrameView::TargetForRect for the ClientFrameViewLinux
implementation because the default inherited from FramelessView blocks
any non-HTCLIENT events.
* fix: add maximized parameter to LinuxUI::GetWindowFrameProvider
* fix: pass frame_->IsMaximized() to GetWindowFrameProvider
This ensures that the toolkit renders the window decorations in maximized mode
while the window is maximized to ensure that there is no empty space around the window.
* refactor: unduplicate MediaStreamDevicesController
* restore old logic for GUM_* request types
* lint
* gn format
* add test for unsupported getDisplayMedia
* simplify + comment
* build: fix building with enable_basic_printing false
* temp flags for ci builds
* fix other systems
* disable cups
* disable print preview
* revert changes
* merge with printing.patch
* chore: bump chromium in DEPS to 104.0.5096.0
* 3651284: Use the entry settings object for window.open navigation
3651284
* 3644598: Make RenderFrameHost used for notification permission decision
3644598
* 3642842: Window Placement: Prototype Fullscreen Capability Delegation - Part 2
3642842
* 3652785: [sandbox] Enable sandboxed pointers on sanitizer builds
3652785
* 3611967: webhid: Migrate HidDelegate to use BrowserContext and Origin
3611967
* 3665762: Remove RenderFrameHost::IsRenderFrameCreated from //content/.
3665762
* 3659375: Fold x509_util_ios and most of x509_util_mac into x509_util_apple
3659375
* 3656234: [CodeHealth] Remove uses of base::ListValue::Append() (Final, take 2)
3656234
* chore: update patch indices
* chore: fix lint
* 3644598: Make RenderFrameHost used for notification permission decision
3644598
* webhid: Migrate HidDelegate to use BrowserContext and Origin
This is a temporary fix for 3611967 to get the build compiling, but we need to either patch around 3611967 or move our device permissioning to BrowserContext
* chore: fix lint
* build: run electron/script/gen-libc++-filenames.js
fixes gn check
* chore: bump chromium in DEPS to 104.0.5098.0
* chore: disable flaking tests
* 3682394: Change pipes surrounding code references in comments to backticks
3682394
* 3652749: Delete GLRenderer and related classes
3652749
* chore: fixup patch indices
* 3671199: Remove ContentMainDelegate::PostFieldTrialInitialization
3671199
* 3607963: hid: Do not exclude HID device with no collections
3607963
* refactor: use ElectronBrowserContext instead of WebContents to persist devices
due to changes like 3611967,
we can no longer use WebContents to store device permissions so this commit
moves device permission storage to live in memory in ElectronBrowserContext
instead.
* 3557253: Deprecate some signature checks
3557253
* chore: bump chromium in DEPS to 104.0.5100.0
* 3680781: Add policy for Renderer App Container.
3680781
* chore: update patch indices
* 3675465: Update NetLog network service API to use mojom::DictionaryValue.
3675465
* chore: bump chromium in DEPS to 104.0.5102.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5103.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5104.0
* chore: update patches
* fix: add patch for DCHECK in fullscreen test
* build: fix nan build
* build: make the nan spec runner work on macOS
* chore: bump chromium in DEPS to 104.0.5106.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5108.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5110.0
* chore: update patches
* chore: bump chromium in DEPS to 104.0.5112.0
* chore: bump chromium in DEPS to 105.0.5113.0
* chore: bump chromium in DEPS to 105.0.5115.0
* chore: bump chromium in DEPS to 105.0.5117.0
* chore: update patches
* chore: update libcpp patch
* 3693745: Delete base::LowerCaseEqualsASCII()
Ref: 3693745
* 3669226: Remove printing PostTask usage of IO thread
Ref: 3669226
* 3687395: Remove DictionaryValue::HasKey().
Ref: 3687395
* 3691014: Prevent unsafe narrowing: ui/accessibility, part 2
Ref: 3691014
* 3560567: [MSC] Porting GenerateStreams clients to handle stream vectors.
Ref: 3560567
* 3684873: [Bluetooth][Win/Linux] Add bluetooth pair confirmation prompt
3684873
* chore: bump chromium in DEPS to 105.0.5119.0
* chore: missing includes in desktop_notification_controller
* chore: update patches
* 3685951: Reland "Make sure screen object is created once in tests."
3685951
* fixup: Reland "Make sure screen object is created once in tests."
* 3646014: [API] Deprecate LegacyOOMErrorCallback
Ref: 3646014
* chore: bump chromium in DEPS to 105.0.5121.0
* chore: update patches
* 3699085: [cleanup] update PrintBackend::EnumeratePrinters to use reference
Ref: 3699085
* chore: bump chromium in DEPS to 105.0.5123.0
* chore: update patches
* chore: bump chromium in DEPS to 105.0.5125.0
* chore: update patches
* 3630082: [sandbox] Also enable the sandbox outside of Chromium builds
Ref: 3630082
* chore: bump chromium in DEPS to 105.0.5127.0
* chore: update patches
* chore: bump chromium in DEPS to 105.0.5129.0
* chore: update patches
* 3703741: Remove WebContents::GetMainFrame.
3703741
* chore: update patches
* fixup! 3703741: Remove WebContents::GetMainFrame.
* fix lint
* more lint
* chore: document breaking change
* 3687671: [v8] Freeze flags after initialization
3687671
* fixup! 3560567: [MSC] Porting GenerateStreams clients to handle stream vectors.
* use the v8 allocator for node serdes
* chore: update patches
* remove faulty non-v8-sandbox-compatible code
* make NodeArrayBufferAllocator use the v8 allocator under the hood
* fixup! 3560567: [MSC] Porting GenerateStreams clients to handle stream vectors.
* fix build on windows
* 3691954: [Reland][Extensions Bindings] Validate arguments sent to API events
3691954
* chore: remove deprecated AccessorSignatures
https://github.com/nodejs/nan/pull/941
* Update patches/chromium/notification_provenance.patch
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* remove chore_expose_v8_initialization_isolate_callbacks.patch
* add link to nodejs/nan#941
* 52026: Do not allow md4 or md5 based signatures in X.509 certificates.
https://boringssl-review.googlesource.com/c/boringssl/+/52026
* chore: update patches
* disable nan buffer-test
* disable sandboxed pointers for now
* force sandboxed pointers off
* improve node allocation patch
* restore accidentally dropped node crypto test patch
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: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <sattard@salesforce.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: VerteDinde <keeleymhammond@gmail.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Jeremy Rose <japthorp@slack-corp.com>
fix: performance problem in crashReporter.start() on macOS
This change reduces the duration of crashReporter.start() on Intel macOS
from 622 milliseconds to 257 milliseconds!
Backports 3641386
posix: Replace DoubleForkAndExec() with ForkAndSpawn()
The DoubleForkAndExec() function was taking over 622 milliseconds to run
on macOS 11 (BigSur) on Intel i5-1038NG7. I did some debugging by adding
some custom traces and found that the fork() syscall is the bottleneck
here, i.e., the first fork() takes around 359 milliseconds and the
nested fork() takes around 263 milliseconds. Replacing the nested fork()
and exec() with posix_spawn() reduces the time consumption to 257
milliseconds!
See https://github.com/libuv/libuv/pull/3064 to know why fork() is so
slow on macOS and why posix_spawn() is a better replacement.
Another point to note is that even base::LaunchProcess() from Chromium
calls posix_spawnp() on macOS -
8f8d82dea0:base/process/launch_mac.cc;l=295-296
Change-Id: I25c6ee9629a1ae5d0c32b361b56a1ce0b4b0fd26
Reviewed-on: 3641386
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Fixes: https://github.com/electron/electron/issues/34321
Signed-off-by: Darshan Sen <raisinten@gmail.com>
* chore: bump chromium in DEPS to 103.0.5020.0
* chore: bump chromium in DEPS to 103.0.5022.0
* chore: bump chromium in DEPS to 103.0.5024.0
* chore: update patches
* 3587410: [Printing] Remove JobEventDetails
Ref: 3587410
* chore: bump chromium in DEPS to 103.0.5026.0
* chore: update patches
* 3577218: WebUI: Delete webui_resources.grd and related GN targets.
Ref: 3577218
* chore: bump chromium in DEPS to 103.0.5028.0
* chore: update patches
* 3579297: Convert UpdatePrintSettings() to use non-deprecated base::Value APIs.
Ref: 3579297
* 3560622: serial: Add SerialPort.forget() method
Ref: 3560622
* 3581708: Restore original display when moving from tab-fullscreen to browser-fullscreen.
Ref: 3581708
* chore: fix authorization flags lint error
* 3583363: Remove net wrappers around base/strings/escape.h
Ref: 3583363
* fixup! 3560622: serial: Add SerialPort.forget() method
Ref: 3560622
* 3587589: Reland "Propagate the MIME type from DownloadTargetDeterminer to DownloadItem"
Ref: 3587589
* 3584006: Remove IsRenderViewLive from content public
Ref: 3584006
* 3596174: [api] Remove APIs for resurrecting finalizers
Ref: 3596174
* 3368244: Hook SnapshotForContentAnalysis renderer API to scan system prints
Ref: 3368244
* chore: bump chromium in DEPS to 103.0.5030.0
* chore: update patches
* chore: bump chromium in DEPS to 103.0.5032.0
* chore: bump chromium in DEPS to 103.0.5034.0
* chore: bump chromium in DEPS to 103.0.5036.0
* chore: update patches
* 3586363: Introduce PrintRenderFrame.PrintWithParams() for batch printing to PDF
Ref: 3586363
* 3593199: Remove content::PermissionType references and replace them with blink::PermissionType
Ref: 3593199
* 3368244: Hook SnapshotForContentAnalysis renderer API to scan system prints
Ref: 3368244
* chore: lint
* chore: bump chromium in DEPS to 103.0.5038.0
* chore: update patches
* fixup! 3560622: serial: Add SerialPort.forget() method
* 3606495: mac screen capture: add metric
Ref: 3606495
* chore: bump chromium in DEPS to 103.0.5040.0
* chore: update patches
* 3590840: Add IPs to DnsOverHttpsServerConfig
3590840
* stub functions for ElectronSerialDelegate and SerialChooserController to fix link
* 3566412: [base] Remove base/android dependency on post_task.h and officially remove post_task.h!
Ref: 3566412
* 3347944: [content] No longer hand-off whole MainFunctionParams to BrowserMainParts
Ref: 3347944
* fixup! 3566412: [base] Remove base/android dependency on post_task.h and off…
e3ea3e1
…icially remove post_task.h!
* chore: update process_singleton patches for content::GetIOThreadTaskRunner({})
Ref: 2015655: [BrowserThread] Migrate co/pub/br and co/br/scheduler to the new API | 2015655
* chore: migrate base::DeleteSoon to content::GetUIThreadTaskRunner({})->DeleteSoon
Ref: 3566412
* chore: remove duplicate functions for RevokePortPermissionWebInitiated & GetPortInfo
* chore: migrate Linux/Windows methods off of post_task.h
Ref: 3566412
* 64908: Stop building legacy SwiftShader GL in Chromium
https://swiftshader-review.googlesource.com/c/SwiftShader/+/64908
* 3573245: Added Themed versions of RoundedRectBackground and RoundedRectBorder.
Ref: 3573245
* chore: bump chromium in DEPS to 103.0.5042.0
* chore: update patches
* 3571804: [api] Advance API deprecation for V8 version v10.2
3571804
* fixup! 3571804: [api] Advance API deprecation for V8 version v10.2
* build: fix run-clang-format extension matching
* lint
* fix windows build
* how is clang-format still not working for me
* chore: update patches
* 3623985: Replace ad-hoc SetPublicFirstPartySets calls with method in ContentBrowserClient.
3623985
* no need to implement WillProvidePublicFirstPartySets; the default is false
* 3601036: [QT] Introduce ui/views/linux_ui/linux_ui_factory.*
3601036
* 3583363: Remove net wrappers around base/strings/escape.h
3583363
* lint
* chore: bump chromium in DEPS to 103.0.5044.0
* fix conflicts
* chore: update patches
* upgrade nan
* pin version of nan in tests
* replace my hacky deprecated override fix with the fix from upstream
* revert runtime dcheck in v8
* pin nan version at root too
* refactor: tell gyp to use c++17 when building with our node
* Revert "refactor: tell gyp to use c++17 when building with our node"
This reverts commit 41a03a5799a8f40f31555d73d20ea865acfcd192.
* Undo the reversion of 41a03a5799a8f40f31555d73d20ea865acfcd192.
This reverts commit 54440abc598153bd7e259be4a908f0ecc0b33348.
* disable sequential/test-cpu-prof-kill for now
* also sequential/test-diagnostic-dir-cpu-prof
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Jeremy Rose <japthorp@slack-corp.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix: create singleton pipename from user & executable
* fix: use process id & main thread id for pipe name
* fix: write rand to file using WIN method
* fix: remove file rand, add user_name to pipe
* chore: style fixes, shorten program_name & user_name
* fix: remove user_name