* Remove microtasks_scope.h and microtasks_scope.cc
* Use v8::MicrotasksScope when ignoring browser checkpoint
These call always skip the browser checkpoint, so they are equivalent to using v8::MicrotasksScope directly (modulo the optional wrapper behavior).
* Remove MicrotasksScope from node_bindings.cc
This code seems contradictory: it explicitly specifies "do not run microtasks" yet runs a microtask checkpoint in the browser process.
Looking at its history, it [was introduced][1] with the intention to not run microtasks, but a [subtle C++ language behavior][2] caused it to do the opposite later in the same roll. Since the original intention was to not run microtasks, and since that is also the simplest explanation, we can assume `ignore_browser_checkpoint` should be true and migrate this to `v8::MicrotasksScope` as it is equivalent (modulo the optional wrapper behavior).
[1]: a4ea80dd47 (diff-efe58cf03c97028f37f801db044d396a5f428686da6595d2c692f1c052bbd09c)
[2]: https://github.com/electron/electron/pull/43185
* Migrate gin_helper/promise.h and gin_helper/promise.cc to v8::MicrotasksScope
Restores the [original][1] behavior of running the microtask checkpoint at destruction, but preserves the behavior of running microtasks in the browser process. This had last changed in the migration to gin_helper::MicroTasks.
[1]: https://github.com/electron/electron/pull/16401
* refactor: move scope scaffolding into SettletScope
idea stolen from SpellCheckScope
* refactor: move impl of PromiseBase::RejectPromise() to the cc file
* chore: remove unused #include
refactor: avoid redundant Promise.GetContext calls
Several Promise methods call `GetContext()` multiple times. From looking
at the assembly in obj/electron/electron_lib/promise.o, these redundant
calls are actually being made -- they aren't optmized out.
This PR keeps the return value in a local variable to avoid extra calls.
* 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: 4294483
Xref: https://docs.google.com/document/d/1d4RnD1uAE2t4iANR0nXy82ASIPGsPuw2mpO6v6T7JKs
* 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: let Node.js perform microtask checkpoint in the main process
* fix: don't specify v8::MicrotasksScope for explicit policy
* fix: remove checkpoint from some call-sites
We already perform checkpoint at the end of a task,
either through MicrotaskRunner or through NodeBindings.
There isn't a need to add them again when calling into JS
except when dealing with promises.
* fix: remove checkpoint from some call-sites
We already perform checkpoint at the end of a task,
either through MicrotaskRunner or through NodeBindings.
There isn't a need to add them again when calling into JS
except when dealing with promises.
* fix incorrect specs
* default constructor arguments are considered for explicit mark
* add regression spec
* refactor: use gin in Promise
* refactor: separate Promise impl that returns nothing
* refactor: use Promise<void> for promise that returns nothing
* fix: methods should be able to run on both browser and renderer process
* fix: should not pass base::StringPiece across threads
* refactor: no more need to use different ResolvePromise for empty Promise
* refactor: move Promise to gin_helper