electron/shell/common
Samuel Attard 0090616f7b
feat: add a new contextBridge module (#20307)
* 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
2019-10-18 12:57:09 -07:00
..
api chore: remove native_mate (Part 8) (#20598) 2019-10-18 09:31:29 +09:00
asar fix: allow paths to asar archives to contain the .asar extension in directories (#20342) 2019-10-02 13:33:07 +09:00
crash_reporter chore: remove native_mate (Part 8) (#20598) 2019-10-18 09:31:29 +09:00
extensions feat: preliminary support for //extensions (#17440) 2019-07-24 16:01:08 -07:00
gin_converters chore: remove native_mate (Part 8) (#20598) 2019-10-18 09:31:29 +09:00
gin_helper chore: remove native_mate (Part 8) (#20598) 2019-10-18 09:31:29 +09:00
mac chore: bump chromium to 79eae5b7b2d9dac441ac0182ee160 (master) (#19166) 2019-07-24 15:58:51 -07:00
native_mate_converters chore: remove native_mate (Part 8) (#20598) 2019-10-18 09:31:29 +09:00
resources/mac refactor: rename the atom directory to shell 2019-06-19 17:33:28 -07:00
application_info.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
application_info.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
application_info_linux.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
application_info_mac.mm refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
application_info_win.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
atom_command_line.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
atom_command_line.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
atom_constants.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
atom_constants.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
color_util.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
color_util.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
deprecate_util.cc chore: remove native_mate (Part 3) (#20131) 2019-09-06 14:52:54 +09:00
deprecate_util.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
heap_snapshot.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
heap_snapshot.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
key_weak_map.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
keyboard_util.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
keyboard_util.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
mouse_util.cc chore: bump chromium to f1d9522c04ca8fa0a906f88ababe9 (master) (#18648) 2019-07-02 18:22:09 -07:00
mouse_util.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
node_bindings.cc feat: add a new contextBridge module (#20307) 2019-10-18 12:57:09 -07:00
node_bindings.h fix: bootstrap the node environment after we setup the InspectorAgent (#19317) 2019-07-18 16:54:23 -07:00
node_bindings_linux.cc refactor: run clang-tidy (#20231) 2019-09-16 18:12:00 -04:00
node_bindings_linux.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
node_bindings_mac.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
node_bindings_mac.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
node_bindings_win.cc refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
node_bindings_win.h refactor: rename the atom namespace to electron 2019-06-19 17:33:28 -07:00
node_includes.h chore: fix linting after shell rename 2019-06-19 17:33:28 -07:00
options_switches.cc feat: add --enable-api-filtering-logging commandline switch (#20335) 2019-10-04 10:49:09 -07:00
options_switches.h feat: add --enable-api-filtering-logging commandline switch (#20335) 2019-10-04 10:49:09 -07:00
platform_util.h feat: macOS removal fallback when moveItemToTrash fails (#19700) 2019-08-13 12:31:53 -07:00
platform_util_linux.cc feat: macOS removal fallback when moveItemToTrash fails (#19700) 2019-08-13 12:31:53 -07:00
platform_util_mac.mm feat: macOS removal fallback when moveItemToTrash fails (#19700) 2019-08-13 12:31:53 -07:00
platform_util_win.cc chore: bump chromium to 63be48daea281d4f8c834c2e707a7 (master) (#19923) 2019-09-18 15:58:00 -04:00
promise_util.cc refactor: make util::Promise type safe when chaining in native (#19809) 2019-08-22 17:03:28 -07:00
promise_util.h feat: add a new contextBridge module (#20307) 2019-10-18 12:57:09 -07:00
skia_util.cc refactor: move gfx::ImageSkia functions to their own util file (#19460) 2019-07-30 13:49:24 -07:00
skia_util.h refactor: move gfx::ImageSkia functions to their own util file (#19460) 2019-07-30 13:49:24 -07:00