* fix: allow Node.js to manage microtasks queue
When `uv_run()` resulted in invocation of JS functions the microtask
queue checkpoint in Node's CallbackScope was a no-op because the
expected microtask queue policy was `kExplicit` and Electron ran under
`kScoped` policy. This change switches policy to `kExplicit` right
before `uv_run()` and reverts it back to original value after `uv_run()`
completes to provide better compatibility with Node.
* add comment
* refactor: add a wrapper for wrangling uv handles.
Part 1 of a fix for #25248, #22069.
Place the uv_asyncs owned by NodeBindings, ElectronBindings inside a new
UvHandle wrapper class which manages uv_handles' need for their closed()
callback to be invoked before the handles' memory can be freed.
* chore: make lint happy
* refactor: use DCHECK_EQ() instead of DCHECK()
* refactor: fix oops
* chore: bump chromium in DEPS to 1f1c4d91f6eaa4a033ec8f499d63a0717f79a42a
* viz: Do not apply white level scaling for RGBA fp16 HDR video
2296006
* Move WebPreferences to WebContents
2263635
* Fix missing WeakPtr check in PreconnectManager
2309029
* Fixup swiftshader roll revision
* Update patch indices
* Move WebDeviceEmulationParams into common.
2303356
* Move EnableDisableDeviceEmulation to blink mojom messages
2303367
* PDF Viewer: Remove flag for two-up view
2311130
* Add mojom definition for DeviceEmulationParams.
2303491
* Remove ServiceWorkerContextWatcher from PaymentAppInstaller
2291186
* Loader: Move transferrable_url_loader.mojom into blink's mojom directory
2306123
* chore: bump chromium in DEPS to 4974f436479739025a90ebc2cc2e36d67ee1ac46
* mac: Work around Xcode 12b3 SDK bug
2315078
* Reland Update core items for macOS Big Sur.
2315162
* Update Swiftshader revision
* mac/arm64: When cross-building the snapshot, use page size of the target ISA instead of the host.
2310575
* Update patch indices
* Rename {,Non}ClientView::CanClose() to OnWindowCloseRequested()
2247838
* chore: bump chromium in DEPS to e9465d70d1dea539400f0fddad43358ea3c31d71
* chore: bump chromium in DEPS to bd5b71c5f20288eb26068a39ae6e0579566a51c5
* chore: bump chromium in DEPS to 786ee543048bd07d07c5ac50b7dbbdd6bdd8dcce
* chore: bump chromium in DEPS to 34eb6ecbf2c5894b648900bf771a2a29de204798
* chore: bump chromium in DEPS to 567ff038d68e3adb8116a01eec863cdf34d775f5
* chore: bump chromium in DEPS to 340b45c8d4ceb2dd61969fc34e1928d3c46db48c
* chore: update patches
* chore: base::DeleteFile with two params is removed
Should use base::DeleteFile and base::DeletePathRecursively when
appropriate
Refs: 2313376
* chore: add patch for NodePlatform::PostJob impl
* chore: update patches
* chore: extension file access is now instrumented
Refs: 2209995
* chore: implement SetWindowFrameInScreen in OSR RWHV
Refs: 2321409
* chore: NotifyUserActivation requires a type now
This is just for a histogram thing and therefore it does not matter what
we pass in
Refs: 2281303
* chore: update patches
* chore: bump chromium in DEPS to cd570e6dd3dcb84463ac252b04e92ceb02d8400c
* chore: update patches
* chore: bump chromium in DEPS to 0187908a31866992b90c59719ac1d016328f6ee0
* chore: bump chromium in DEPS to 3c9df38c508f3dba26a75248beed4882ddfb98e9
* chore: bump chromium in DEPS to 1a47d3b9cee710bd3c958c4f2d8b205710df9d50
* chore: bump chromium in DEPS to baac93040d96abdab72d46dd034c60f86e108702
* chore: bump chromium in DEPS to 13836145f97299e636491de38064b78861c4fb2e
* update patches
* change OS_MACOSX -> OS_MAC
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=1105907
* patch: add header for ToExecutionContext in WebMessagePortConverter
* chore: bump chromium in DEPS to 91ab9b6ac5d04dc034a03ad847fbfa8261328c2b
* update patches
* NeedToFireBeforeUnloadOrUnload -> NeedToFireBeforeUnloadOrUnloadEvents
Refs: 2288711
* chore: bump chromium in DEPS to 290deb11f0e30cb1382fd8f8793d340560283c23
* update patches
* add dragdrop header for autofill popup
* int -> x11::Time
* patch out accessibility private API use
Refs: 2330812
* remove usage of XEvent
Refs: 2317767
* trigger recalculation of WebPreferences before renderer initialization
Refs: 2263635
* chore: bump chromium in DEPS to 6bdb484583b99c96ef3388d0c2184326581b2d5a
* chore: bump chromium in DEPS to 1eb2a79cde04fd5c8ae51b4d813e6521635269e5
* chore: bump chromium in DEPS to 3dc8e3c0f400e4ca9c0a63d7a39bd910997ad4c6
* chore: update patches
* fixup! trigger recalculation of WebPreferences before renderer initialization
* views: Make MenuButton and RadioButton default constructible
2339586
* chore: fix code style
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* fix: use Node.js isolate setup logic in bindings
* Flags should be more process-specific
* Remove redundant isolate function setting
* Remove old SetFatalErrorHandler call
* 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
* chore: remove unused views API classes
* chore: remove LayoutManager code
* chore: no more need to make View inherit from TrackabeObject
* chore: make enable_view_api default to true
* chore: enable_view_api => enable_views_api
* feat: add a new contextBridge module
* chore: fix docs linting
* feat: add support for function arguments being proxied
* chore: ensure that contextBridge can only be used when contextIsolation is enabled
* docs: getReverseBinding can be null
* docs: fix broken links in md file
* feat: add support for promises in function parameters
* fix: linting failure for explicit constructor
* Update atom_api_context_bridge.cc
* chore: update docs and API design as per feedback
* refactor: remove reverse bindings and handle GC'able functions across the bridge
* chore: only expose debugGC in testing builds
* fix: do not proxy promises as objects
* spec: add complete spec coverage for contextBridge
* spec: add tests for null/undefined and the anti-overwrite logic
* chore: fix linting
* spec: add complex nested back-and-forth function calling
* fix: expose contextBridge in sandboxed renderers
* refactor: improve security of default_app using the new contextBridge module
* s/bindAPIInMainWorld/exposeInMainWorld
* chore: sorry for this commit, its a big one, I fixed like everything and refactored a lot
* chore: remove PassedValueCache as it is unused now
Values transferred from context A to context B are now cachde in the RenderFramePersistenceStore
* chore: move to anonymous namespace
* refactor: remove PassValueToOtherContextWithCache
* chore: remove commented unused code blocks
* chore: remove .only
* chore: remote commented code
* refactor: extract RenderFramePersistenceStore
* spec: ensure it works with numbered keys
* fix: handle number keys correctly
* fix: sort out the linter
* spec: update default_app asar spec for removed file
* refactor: change signatures to return v8 objects directly rather than the mate dictionary handle
* refactor: use the v8 serializer to support cloneable buffers and other object types
* chore: fix linting
* fix: handle hash collisions with a linked list in the map
* fix: enforce a recursion limit on the context bridge
* chore: fix linting
* chore: remove TODO
* chore: adapt for PR feedback
* chore: remove .only
* chore: clean up docs and clean up the proxy map when objects are released
* chore: ensure we cache object values that are cloned through the V8 serializer
* use gin converter in atom_api_menu
* please only put necessary includes in header
Having include in header means they have dependency relationship,
putting arbitrary includes really really really really really makes
refacoring much harder.
* remove some simple uses of callback_converter_deprecated.h
* use gin callback converter in file_dialog code
* use gin in ErrorThrower
* use gin in atom_bundle_mover
* fix mistake in node stream
* deprecate native_mate version of event_emitter_caller
* use gin in node_bindings
* remove usages of native_mate event_emitter_caller.h except for EventEmitter
* fix compilation on Windows
* gin::Arguments behaves differently on GetNext
* just use StringToV8
* feat: add new nativeTheme API
* chore: deprecate and clean up old systemPreferences theme APIs in favor of new nativeTheme module
* chore: clean up and deprecate things per feedback
* chore: add tests for deprecate and clean up invert impl
* build: when is a boolean not a boolean???