Milan Burda
81e9dab52f
refactor: replace ipcRendererUtils.invoke() with ipcRendererInternal.invoke() ( #19574 )
2019-08-23 15:45:50 -07:00
Jeremy Apthorp
c71cdce0b7
chore: disable JS impl when //extensions support is on ( #19512 )
2019-07-31 14:25:41 -07:00
Milan Burda
69369cf365
refactor: don't expose isPromise as an internal module ( #19139 )
2019-07-08 15:17:50 +09:00
Milan Burda
69ea0b4ebf
fix: ignore non-absolute session preload script paths when sandboxed ( #19066 )
2019-07-03 08:05:45 -07:00
Milan Burda
4575a4aae3
Revert "feat: only allow bundled preload scripts ( #17308 )" ( #18091 )
...
This reverts commit 8cf15cc931
.
2019-06-20 08:39:12 +09:00
Milan Burda
edb56500c7
refactor: piggy-back on ELECTRON_BROWSER_SANDBOX_LOAD to get content scripts ( #18823 )
2019-06-19 17:23:44 +02:00
Milan Burda
6f5c850d60
refactor: add emitCustomEvent() helper ( #17960 )
2019-05-01 09:07:57 -04:00
Milan Burda
9714a91392
refactor: use fs.promises API, which is stable since Node 12 ( #17999 )
2019-04-29 11:18:03 -07:00
Jeremy Apthorp
841e31b7e6
feat: show underlying stack in errors in remote module ( #17851 )
2019-04-18 17:38:19 -07:00
Samuel Attard
78411db4b5
fix: maintain a ref count for objects sent over remote ( #17464 )
...
* spec: clean up after a failed window count assertion
Previously when this assertion failed all tests that ran after the
failed assertion also failed. This ensure that the assertion fails for
the test that actually caused the issue but cleans up the left-over
windows so that future tests do not fail.
* fix: maintain a ref count for objects sent over remote
Previously there was a race condition where a GC could occur in the
renderer process between the main process sending a meta.id and the
renderer pulling the proxy out its weakmap to stop it being GC'ed.
This fixes that race condition by maintaining a "sent" ref count in the
object registry and a "received" ref count in the object cache on the
renderer side. The deref request now sends the number of refs the
renderer thinks it owns, if the number does not match the value in the
object registry it is assumed that there is an IPC message containing a
new reference in flight and this race condition was hit.
The browser side ref count is then reduced and we wait for the new deref
message. This guaruntees that an object will only be removed from the
registry if every reference we sent has been guarunteed to be unreffed.
2019-04-16 16:08:11 -04:00
Milan Burda
8cf15cc931
feat: only allow bundled preload scripts ( #17308 )
2019-03-28 11:38:51 +01:00
Milan Burda
06a4594435
chore: remove special handling for dialog methods in remote module ( #17412 )
...
* chore: remove special handling for dialog methods in remote module
* refactor: remove callFunction helper
2019-03-19 11:59:33 -07:00
Shelley Vohr
38d75010c7
chore: rename atomBinding to electronBinding ( #17419 )
2019-03-18 12:37:06 -07:00
Milan Burda
3a091cdea4
refactor: implement clipboard APIs without the remote module ( #17200 )
2019-03-15 17:32:04 -07:00
Milan Burda
d34f81972d
refactor: make ELECTRON_BROWSER_SANDBOX_LOAD handler async ( #17107 )
2019-03-08 11:21:41 +01:00
Milan Burda
5a99ea4c46
refactor: merge ipcMainUtils.handle / handleSync ( #17062 )
2019-02-26 15:48:26 -08:00
Milan Burda
d8ba1278d1
chore: disable the remote module in devtools / chrome extension background scripts ( #16866 )
...
* cache isRemoteModuleEnabled
* chore: disable the remote module in devtools / chrome extension background scripts
2019-02-11 10:42:37 -10:00
Milan Burda
4211a9c69f
refactor: use ipcRendererUtils.invokeSync / ipcMainUtils.handleSync ( #16759 )
2019-02-06 09:53:28 -08:00
Milan Burda
6d674eebb1
refactor: crashReporterInit ( #16729 )
2019-02-05 12:56:44 -08:00
Samuel Attard
af64140100
refactor: enforce naming of ipcMainInternal ( #16689 )
2019-02-04 14:49:53 -08:00
Milan Burda
fa5442f211
fix: execute session preload scripts in sandboxed renderers ( #16538 )
2019-01-29 10:16:46 +09:00
Milan Burda
7d4a1223fd
feat: add preload-error
event to webContents
( #16411 )
2019-01-18 12:03:43 +01:00
Milan Burda
349a3c20ae
feat: add additional remote APIs filtering ( #16293 )
2019-01-08 14:27:56 -08:00
Milan Burda
5c250455ad
refactor: pass isWebViewTagEnabled via ELECTRON_BROWSER_SANDBOX_LOAD ( #16238 )
2019-01-08 10:12:34 +01:00
Milan Burda
a0cdcc5f8d
security: improve IPC validation in guest-view-manager
2019-01-05 00:06:47 +01:00
Milan Burda
c65a0d90b8
chore: misc cleanup ( #16037 )
2018-12-12 15:31:16 -06:00
Cheng Zhao
db2fda1b6f
chore: make rpc-server reply to sender frame instead of the main frame ( #15973 )
...
* chore: make rpc-server reply to frame
* fix: check IsRenderFrameLive
2018-12-10 09:37:42 +09:00
Milan Burda
8483cb4aa7
security: only handle related IPCs when <webview> tag is enabled ( #15859 )
...
* refactor: move guest-view-manager related IPC handling out of rpc-server
* feat: only handle related IPCs when <webview> tag is enabled
2018-11-30 18:44:38 +09:00
Jeremy Apthorp
0642be296d
fix: crash in sandbox on linux when getting execPath ( #15701 )
2018-11-15 12:59:01 -08:00
Cheng Zhao
a8f2646ba6
Fix missing remote object error when calling remote function created in preload script ( #15444 )
...
* fix: report wrong context error based on contextId
* fix: destroyed remote renderer warning is now async
2018-10-31 11:26:57 -04:00
Milan Burda
db37ab1039
feat: add remote.require() / remote.getGlobal() filtering ( #15014 )
2018-10-18 14:36:45 +11:00
Milan Burda
508551b81b
fix: small refactoring regressions ( #15206 )
...
* fix: require('@electron/internal/browser/guest-view-manager')
* fix: add missing crashServicePid used by tests
2018-10-17 12:18:18 -07:00
Milan Burda
d3efc52745
feat: add webPreferences.enableRemoteModule option ( #13028 )
2018-10-13 20:50:07 +03:00
Milan Burda
b50f86ef43
refactor: use separate ipc-renderer-internal / ipc-main-internal APIs for Electron internals ( #13940 )
2018-10-07 00:48:00 +13:00
Milan Burda
5efb0fdff1
feat: add security warnings to sandboxed renderers ( #14869 )
...
Also refactor not to use the remote module.
2018-10-03 21:36:12 +02:00
Milan Burda
3ad3ade828
refactor: add prefer-const to .eslintrc + fix errors ( #14880 )
2018-10-02 11:56:31 +10:00
Milan Burda
d48f9bcf7f
refactor: implement <webview> methods via dedicated IPCs without the remote module ( #14377 )
2018-10-01 10:07:50 +09:00
Milan Burda
b499d57cfd
refactor: use error-utils for remote exception serialization / deserialization ( #14788 )
...
* refactor: use error-utils for remote exception serialization / deserialization
* fix internal process.type in sandboxed renderer
2018-09-26 15:44:55 +10:00
Milan Burda
3df739fa89
refactor: implement crashReporter.start() without the remote module ( #14434 )
2018-09-26 15:43:34 +10:00
Samuel Attard
54ef906832
[RFC] perf: use an internal module resolver to improve require performance ( #14633 )
...
* perf: use an internal module resolver instead of relative requires
* perf: memoize the results of getting exported Electron properties
* perf: make internal module changes consistent across sandboxed / bundled files
2018-09-20 13:43:26 +10:00
Samuel Attard
558fff69e7
chore: update to standard 12
2018-09-14 14:57:01 +10:00
Milan Burda
28e4fcea3b
refactor: move common logic to handleRemoteCommand
2018-08-27 21:06:03 +02:00
Milan Burda
f1fe485768
fix: don't expose desktopCapturer in sandboxed renderers if the feature is disabled ( #14310 )
2018-08-27 13:16:52 -05:00
Milan Burda
c23e7fa101
refactor: implement ipcRenderer.sendTo in native code for better performance ( #14285 )
2018-08-24 14:14:39 -07:00
Milan Burda
fc85d02786
feat: expose missing process APIs in sandboxed renderers ( #13505 )
2018-08-21 11:05:45 -07:00
Milan Burda
702cc84bd3
Don't pass preloadPath via ELECTRON_BROWSER_SANDBOX_LOAD for security reasons ( #13031 )
2018-08-10 17:19:49 -05:00
Milan Burda
db38c8b620
Fix process.execPath returning parent process path instead of the helper in sandboxed renderer ( #13839 )
2018-07-30 11:13:42 +10:00
Cheng Zhao
3094f62f0b
fix: use webContentsId with contextId together ( #13749 )
...
After after using `processId-contextCounter` as contextId, it may happen
that contexts in different WebContents sharing the same renderer process
get the same contextId. Using webContentsId as part of key in
ObjectsRegistry can fix this.
2018-07-24 16:21:38 +09:00
Cheng Zhao
305e3aad40
refactor: remove private webContents.getId() API ( #13674 )
2018-07-23 18:08:36 +09:00
Cheng Zhao
4cdb1b8fc3
fix double-freeing remote references
...
After the page does navigations, garbage collection can still happen in
the old context. This commit changes to store references to remote objects
by _pages_, instead of by _WebContents_.
2018-07-12 10:44:26 +09:00