Skip to content
  • Samuel Attard's avatar
    feat: add a new contextBridge module (#20307) · 0090616f
    Samuel Attard authored
    * 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
    0090616f