* refactor: remove a few uses of native_mate/gfx_converter.h
* refactor: deprecate mate::EventEmitter
* refactor: add gin_helper::EventEmitter
* refactor: convert a few classes to use gin_helper::EventEmitter
* refactor: get rid of native_mate_converters/gfx_converter.h
* fix: follow native_mate on reporting errors
* fix: gin is weak at guessing parameter types
* fix: incorrect full class name
* fix: gin::Handle does not accept null
* 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
* refactor: convert methods of AutoUpdater to gin
* refactor: converter in map_converter.h is no more needed
* refactor: use gin in crash_reporter
* refactor: remove native_mate_converters/map_converter.h
* refactor: implement gfx_converter with gin
* refactor: convert methods of NativeImage to gin
* refactor: add gin_helper::Arguments
* fix: use gin_helper::Arguments to parse multi-type parameters
* refactor: use gin converters in api::Protocol
* refactor: convert JS constructor impl to gin
* refactor: use InitWithArgs helper
* fix: gin_helper::Dictionary should behave the same with mate
* fix cpplint warnings
* refactor: no more need to patch gin/dictionary.h
* refactor: use v8 serialization for ipc
* cloning process.env doesn't work
* serialize host objects by enumerating key/values
* new serialization can handle NaN, Infinity, and undefined correctly
* can't allocate v8 objects during GC
* backport microtasks fix
* fix compile
* fix node_stream_loader reentrancy
* update subframe spec to expect undefined instead of null
* write undefined instead of crashing when serializing host objects
* fix webview spec
* fix download spec
* buffers are transformed into uint8arrays
* can't serialize promises
* fix chrome.i18n.getMessage
* fix devtools tests
* fix zoom test
* fix debug build
* fix lint
* update ipcRenderer tests
* fix printToPDF test
* update patch
* remove accidentally re-added remote-side spec
* wip
* don't attempt to serialize host objects
* jump through different hoops to set options.webContents sometimes
* whoops
* fix lint
* clean up error-handling logic
* fix memory leak
* fix lint
* convert host objects using old base::Value serialization
* fix lint more
* fall back to base::Value-based serialization
* remove commented-out code
* add docs to breaking-changes.md
* Update breaking-changes.md
* update ipcRenderer and WebContents docs
* lint
* use named values for format tag
* save a memcpy for ~30% speedup
* get rid of calls to ShallowClone
* extra debugging for paranoia
* d'oh, use the correct named tags
* apparently msstl doesn't like this DCHECK
* funny story about that DCHECK
* disable remote-related functions when enable_remote_module = false
* nits
* use EnableIf to disable remote methods in mojom
* fix include
* review comments
* deprecate native_mate/native_mate/object_template_builder.h
* add gin_helper/object_template_builder.h
* add patch to avoid ambiguous error
* remove usage of object_template_builder_deprecated.h in a few files
* add note we should remove gin_helper/object_template_builder.h in future
* fix: use coordinate offsets in ShowAutofillPopup
* fix: silence coord int->float narrowing conversion
Minor fix to silence clang-tidy warning about implicit range narrowing.
Not a huge deal but the revision is also easier to read.
clang-tidy: bugprone-narrowing-conversions
* fix: emit updated on NativeTheme on the UI thread to avoid DCHECK
* Update atom_api_native_theme.cc
* spec: wait a few ticks for async events to emit so that test events do not leak into each other
Exposing these in the renderer didn't make sense as they weren't backed
by the same instance / value store. This API should be browser only
especially now that we have nativeTheme.themeSource. Exposing in
//common was a mistake from the beginning.
* refactor: fix clang-tidy vector operation warnings
Fix vector population performance-inefficient-vector-operation warnings
generated by clang-tidy
* refactor: fix clang-tidy emplace_back warnings
In cases where a temporary is created to be passed
to push_back(), replace it with emplace_back().
Warning: modernize-use-emplace
* refactor: fix clang-tidy loop iteration warnings
When practical, use range-based for loops instead of C-style for loops.
clang-tiny check: modernize-loop-convert
* refactor: fix clang-tidy string initialize warning
Remove redundant empty string initialization.
clang-tidy check: readability-redundant-string-init
* 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 nativeTheme.shouldUseDarkColorsOverride to allow apps to override Chromiums theme choice
* spec: add tests for shouldUseDarkColorsOverride
* chore: add missing forward declarations
* refactor: rename overrideShouldUseDarkColors to themeSource
* chore: only run appLevelAppearance specs on Mojave and up
* chore: update patch with more info and no define
* Update spec-main/api-native-theme-spec.ts
Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>
* Update api-native-theme-spec.ts
* Update api-native-theme-spec.ts
* Update api-native-theme-spec.ts