Commit graph

591 commits

Author SHA1 Message Date
Thiago de Arruda
cd05834d96 Refactor sandboxed renderer init scripts
This change gives sandboxed renderer scripts a similar structure to what already
exists in the lib/{browser,renderer,common} directories.

It also allows sandboxed renderer initialization to share more code with
non-sandboxed renderers (ipcRenderer is now imported directly from
lib/renderer/api/ipc-renderer).
2017-03-09 20:39:14 -03:00
Thiago de Arruda
d78f3cae7b Expose builtin v8 modules to AtomSandboxedRendererClient
- Adapt node.cc code that implements `process.binding` to create a similar
  object in AtomSandboxedRendererClient.
- Replace the ipc binding object passed to `lib/sandboxed_renderer/init.js` by
  the new binding object.
- Refactor the initialization script to use this new object to fetch the ipc
  binding and store as a hidden value using the `v8_util` module.

This change also required applying a patch to node.js, so the submodule commit
was updated.
2017-03-09 20:39:14 -03:00
Cheng Zhao
aaa8e81cd4 Merge pull request #8811 from electron/clean-node-on-exit
Clean up node Environment on exit
2017-03-06 20:36:59 +09:00
Kevin Sawicki
7fb77ee1cb Set isolated world security origin 2017-03-02 08:49:18 -08:00
Cheng Zhao
1709e74958 Fix crash when the main frame is replaced 2017-03-02 17:19:00 +09:00
Cheng Zhao
24574f7299 Avoid touch an Environemnt after it gets destroyed 2017-03-02 17:19:00 +09:00
Cheng Zhao
29278e500b Destroy node environment when a JS context in renderer is destroyed 2017-03-02 17:19:00 +09:00
deepak1556
7a0aff2bae code cleanup 2017-02-12 01:48:24 +05:30
deepak1556
e3fe3cc490 map webframe zoom api to use HostZoomMap 2017-02-12 00:49:17 +05:30
deepak1556
07794a58aa use zoom factor webpreference option when required.
* When setzoomlevel is not called for the host.
* When there is no zoom preference for the host.
2017-02-12 00:49:17 +05:30
Cheng Zhao
81784827ff PrintWebViewHelper is attached to RenderFrame 2017-02-06 10:34:29 -08:00
Cheng Zhao
6d5339b74e insertText is deprecated 2017-02-06 10:34:29 -08:00
Kevin Sawicki
c374e37cc4 Leak IsolateData since Environment is also leaked 2017-01-19 09:05:59 +02:00
Kevin Sawicki
54e2c480cb Upgrade to node 7.4 2017-01-19 09:05:59 +02:00
Kevin Sawicki
602db2e04f 🎨 2017-01-19 09:05:59 +02:00
Kevin Sawicki
d6eb0d6629 Implement insertCSS on webFrame 2017-01-19 09:05:59 +02:00
Cheng Zhao
497f5a1199 Update files for Chrome 54 API changes 2017-01-19 09:05:59 +02:00
Kevin Sawicki
9ccc78c62f Use options constants for keys 2017-01-16 13:09:38 -08:00
Kevin Sawicki
b26428c43c 🎨 2017-01-16 12:38:16 -08:00
Kevin Sawicki
815cb1b31c Include atom_natives after builtin includes 2017-01-16 12:38:16 -08:00
Kevin Sawicki
dcf9a395c2 Only create isolated context in main frame 2017-01-16 12:38:16 -08:00
Kevin Sawicki
2e62d81c24 Access getter instead of variable 2017-01-16 12:38:16 -08:00
Kevin Sawicki
f35224b0e4 🎨 2017-01-16 12:38:16 -08:00
Kevin Sawicki
3f7b3c4bd7 Implement window overrides in main context 2017-01-16 12:38:16 -08:00
Kevin Sawicki
eef72647b4 Set human readable context name 2017-01-16 12:38:16 -08:00
Kevin Sawicki
ad3b837ad5 Rename option to contextIsolation 2017-01-16 12:38:16 -08:00
Kevin Sawicki
b56bdc83af 🎨 2017-01-16 12:38:16 -08:00
Kevin Sawicki
2e7dbe6c6b Use patch worldScriptContext to get isolated context 2017-01-16 12:38:16 -08:00
Kevin Sawicki
4f5c725dde 🎨 Use enum for world ids 2017-01-16 12:38:16 -08:00
Kevin Sawicki
5b6397aaa6 Store context that API is running in to deliver IPC events 2017-01-16 12:38:16 -08:00
Kevin Sawicki
5da4f032c3 Notify client each time main context is created 2017-01-16 12:38:16 -08:00
Kevin Sawicki
c5e68ec165 🎨 2017-01-16 12:38:16 -08:00
Kevin Sawicki
78e0b80dc7 Support IPC messages in isolated context 2017-01-16 12:38:16 -08:00
Kevin Sawicki
073d8c2177 Add world id constants 2017-01-16 12:38:16 -08:00
Kevin Sawicki
d194a84ae4 Setup isolated context from AtomRenderFrameObserver 2017-01-16 12:38:16 -08:00
Kevin Sawicki
cdf33ff3dc Add null guards 2017-01-16 12:38:15 -08:00
Kevin Sawicki
08b203fed1 Match extension name to class name 2017-01-16 12:38:15 -08:00
Kevin Sawicki
736befe90f Add initial support for loading into isolated world 2017-01-16 12:38:15 -08:00
Kevin Sawicki
2e1e893675 Merge pull request #8159 from seanchas116/devtools
Record JavaScript calls in DevTools timeline on Node/ipc callback
2016-12-12 13:50:42 -08:00
Kevin Sawicki
3796d7a6a1 Use trace event with zero args 2016-12-12 13:49:58 -08:00
Kevin Sawicki
1d288b69e2 Merge pull request #7947 from beakerbrowser/register-standard-secure-schemes
Add {secure:} opt to protocol.registerStandardSchemes
2016-12-12 12:52:28 -08:00
Kevin Sawicki
cac85d2a12 Remove linter errors 2016-12-12 12:51:48 -08:00
Kevin Sawicki
381f55b3cb Remove unneeded empty checks 2016-12-12 12:51:48 -08:00
Paul Frazee
04fa85f67f removed unused iostream include 2016-12-12 12:51:48 -08:00
Paul Frazee
bacf6511a6 remove unneeded deprecations couts 2016-12-12 12:51:48 -08:00
Paul Frazee
a46040a4fa log deprecation notices for webframe 2016-12-12 12:51:48 -08:00
Paul Frazee
b458201874 add deprecation notices to webframe 2016-12-12 12:51:48 -08:00
Paul Frazee
99ea50649a finish implementation of {secure:true} opt on protocol.registerStandardScehesm, and add working test 2016-12-12 12:49:57 -08:00
Geoff Lywood
5345b08d24 Fix printing with the sandbox enabled
Closes #7984
2016-12-07 17:40:18 -08:00
Ryohei Ikegami
a7a06a483e Record JavaScript calls in DevTools timeline on Node/ipc callback 2016-12-07 20:22:13 +09:00
Kevin Sawicki
d4368fabb9 Add 2.0 comment about setZoomLevelLimits 2016-11-22 08:09:14 -08:00
Kevin Sawicki
e887fb69bd Export a setVisualZoomLevelLimits method 2016-11-22 07:53:02 -08:00
Paul Betts
7445f9bdcc Lint 2016-11-21 15:13:34 -05:00
Paul Betts
e2649ce7d8 Add new method to set layout-based zoom level limit 2016-11-21 14:59:55 -05:00
Kevin Sawicki
0841c4291a Remove RegisterURLSchemeAsPrivileged lint error 2016-10-24 16:27:54 +09:00
Paul Frazee
a5c62bb264 add options to webFrame.registerURLSchemeAsPrivileged 2016-10-18 15:52:41 -05:00
Brian Clifton
13de65d310 Fixes mouse coordinates for Windows when display is set to a higher DPI (ex: enlarged by 150% using display settings) 2016-09-27 08:23:48 -07:00
Cheng Zhao
458c4dd129 Merge branch 'support-chromium-sandbox' of https://github.com/tarruda/electron into tarruda-support-chromium-sandbox 2016-09-27 20:02:23 +08:00
Thiago de Arruda
524bab530a Improve AtomSandboxedRendererClient to support preload scripts.
Add RenderFrameObserver/RenderViewObserver subclasses that implement the
necessary support for preload scripts in sandboxed renderers.
2016-09-27 06:01:47 -03:00
Thiago de Arruda
6afe8aa7f2 Move EmitIPCEvent into AtomRenderViewObserver.
Refactor this function as a method so it is possible to inherit most behavior
from AtomRenderViewObserver and override EmitIPCEvent.
2016-09-27 06:01:46 -03:00
Thiago de Arruda
c8629019f5 Expose atom_api_renderer_ipc module API 2016-09-27 06:01:46 -03:00
Thiago de Arruda
a7b6332ed0 Add atom::AtomSandboxedRendererClient class 2016-09-27 06:01:46 -03:00
deepak1556
ed465208a2 renderer: add content settings class for managing storage 2016-09-21 21:47:30 +05:30
Cheng Zhao
e3e450613d Merge pull request #7157 from Mossop/moveguest
Allow moving a webcontents to a different webview
2016-09-20 14:28:42 +09:00
Kevin Sawicki
1072519488 Mark atom-shell version as deprecated 2016-09-16 15:59:00 -07:00
Cheng Zhao
f28e8d7168 Fix API changes of Chrome 53 2016-09-14 16:22:43 +09:00
Dave Townsend
313b2faa3c Add a guestinstance attribute to webviews reflecting their current guest
instance ID and allowing moving a guest instance to a new webview.
2016-09-09 10:32:05 -07:00
Kevin Sawicki
6285500cdc Sort includes alphabetically 2016-08-26 15:30:02 -07:00
deepak1556
77173be1c6 webFrame: enable privileged schemes to send CORS requests 2016-08-11 23:01:10 +05:30
Cheng Zhao
5dabc47440 Remove the view-painted event 2016-08-03 16:20:55 +09:00
Cheng Zhao
8c0a033b6f Fix lint errors of using __proto__ 2016-08-02 21:02:28 +09:00
Cheng Zhao
8c3232dc56 Every native class now gets a name 2016-08-02 19:28:12 +09:00
Cheng Zhao
cb19efe49c Pass FunctionTemplate in BuildPrototype 2016-08-02 18:08:12 +09:00
Cheng Zhao
c497765dea Merge pull request #6524 from liusy182/painted-event-6426
add "view-painted" event to WebContent.
2016-07-25 16:02:50 +09:00
Cheng Zhao
b57665330c Merge branch 'master' into chrome52 2016-07-21 05:34:36 -06:00
liusi
d335d7d706 add "view-painted" event to WebContent. 2016-07-18 14:54:52 +08:00
deepak1556
c8bf6edcc6 webcontents: replace deprecated navigation observers 2016-07-14 06:47:38 +05:30
Haojian Wu
4ac4dacffe Some manual change to for-ranged loop.
Use "const auto&" where possible.
2016-07-10 15:57:51 +02:00
Haojian Wu
55b3f1936f Modernize to C++11: Use for-range loop. 2016-07-10 13:33:15 +02:00
Haojian Wu
3bdeac98bf Modernize to C++11: use override. 2016-07-10 13:21:42 +02:00
Haojian Wu
fab02809c6 Modernize to C++11: NULL => nullptr.
No functional change.
2016-07-10 11:57:04 +02:00
Cheng Zhao
1ba3907038 Update to API changes of Chrome 52 2016-07-04 15:32:43 +09:00
Cheng Zhao
a3dd6c635f Avoid calling Environment::GetCurrent for unjected contexts
It seems to cause crashes when it is called for contexts that do not
have node integrations.
2016-06-20 16:51:42 +09:00
Cheng Zhao
1bfbd215ea Don't rely on AddAdditionalSchemes for setting standard schemes
On Linux because of the existence of zygote process, it becomes very
tricky to correctly set standard schemes, basically we have to:
1. Pass --standard-schemes to both zygote and render processes
2. Init standard schemes for both zygote and render processes

The )1 is very hard to achieve, so instead of using
AddAdditionalSchemes, we just call url::AddStandardScheme directly.
2016-06-08 16:32:02 +09:00
Cheng Zhao
6755aa44f6 Initialize script context in DidClearWindowObject
Doing it in RunScriptsAtDocumentStart would somehow result in weird
results when webSecurity is off.
2016-05-30 16:34:28 +09:00
Cheng Zhao
d8db695712 Handle port disconnecting 2016-05-28 12:07:08 +09:00
Cheng Zhao
9ab76fb884 Add webContents.sendToAll to send message to all frames 2016-05-27 16:58:49 +09:00
Cheng Zhao
134f9019eb Enable node integration for pages in devtools extension 2016-05-27 15:10:46 +09:00
Cheng Zhao
7e1f159185 Run content scripts at correct phase 2016-05-27 11:12:51 +09:00
Cheng Zhao
4fb9e20c33 Add API to set render process preferences 2016-05-27 08:51:02 +09:00
Cheng Zhao
7ba391da7c Update to API changes of Chrome 51 2016-05-23 10:59:39 +09:00
deepak1556
c9b314d43c renderer: generate net error strings when requested 2016-05-21 10:21:15 +05:30
Cheng Zhao
c740438032 Rename webFrame.purgeCaches to webFrame.clearCache
This matches the name of session.clearCache.
2016-05-14 22:48:25 +09:00
Cheng Zhao
7459581d13 Fix cpplint warnings 2016-05-14 22:40:18 +09:00
Paul Betts
652913f8d6 Just return the type directly 2016-05-13 10:54:10 -07:00
Paul Betts
d83c36e0fd Add a way to drop all cached memory 2016-05-13 10:54:10 -07:00
Paul Betts
22a3765394 Wire up a new method in web frame 2016-05-13 10:54:10 -07:00
Cheng Zhao
bb5b30b8a0 It is not allowed to run scripts in DidCreateDocumentElement 2016-05-13 11:12:01 +09:00
Cheng Zhao
73223fe5c3 Upgrade to Node v6 2016-05-13 11:12:01 +09:00
Cheng Zhao
35d9e37220 Simplify the check for web_frame_widget 2016-05-13 11:11:50 +09:00