Thiago de Arruda
0227254774
Move DidClearWindowObject into RendererClientBase.
...
Also adapt AtomSandboxedRenderFrameObserver to forward DidClearWindowObject to
RendererClientBase.
2017-04-08 10:43:19 -03:00
Thiago de Arruda
91ee0ea740
Move AtomRenderFrameObserver into a separate module.
...
Also move SetupMainWorldOverrides into the AtomRendererClient class(since the
code there is specific to AtomRendererClient).
2017-04-08 10:29:05 -03:00
Kevin Sawicki
f5a75c4e87
Merge pull request #9076 from electron/cleanup-cpp
...
Cleanup cpp codebase
2017-04-03 08:30:08 -07:00
Haojian Wu
5f724e57bc
Avoid unnecessary copy of parameters.
2017-03-29 22:06:07 +02:00
Thiago de Arruda
d1f08beddf
Make AtomSandboxedRendererClient a RendererClientBase subclass.
2017-03-27 18:49:55 -03:00
Thiago de Arruda
c3a8f665f2
Extract base class from AtomRendererClient
...
The new `RendererClientBase` class contains code that is not specific to node.js
integration with the renderer.
2017-03-27 18:49:55 -03:00
Thiago de Arruda
bf756e3c00
Prevent browserify from leaking the require function
...
Define a "require" argument in the wrapper functions that runs browserify
bundles, which will prevent browserify from leaking the require function.
Note that this doesn't affect the isolated renderer script, only when `-r` flag
is passed to browserify command it will export a require function. It is still
added to isolated renderer script to prevent future mistakes(doesn't hurt
defining a "require" local).
2017-03-23 10:01:02 -03:00
Thiago de Arruda
e1aebef57c
Make sandbox APIs more compatible with normal renderers
...
- Expose remote shortcuts for the `fs`, `os` and `child_process` modules.
- Expose the `url` and `timers` modules(the browserify versions)
- Add `process.crash` and `process.platform`
2017-03-23 10:01:02 -03:00
Cheng Zhao
0287f23e3b
Fix cpplint warning
2017-03-20 12:52:46 -07:00
Cheng Zhao
940d77b9a0
Fix typos and adjust sentences
2017-03-20 12:52:46 -07:00
Cheng Zhao
033aa16e04
test: Node integration in web workers
2017-03-20 12:52:46 -07:00
Cheng Zhao
a49af26e39
Add nodeIntegrationInWorker option
2017-03-20 12:52:46 -07:00
Cheng Zhao
e496e18f6e
Make Archive thread safe
2017-03-20 12:52:46 -07:00
Cheng Zhao
c068285ff8
AtomBindings should not use default uv loop
2017-03-20 12:52:46 -07:00
Cheng Zhao
9c9c8ec5f1
WebWorkerObserver should be destroyed on exit
2017-03-20 12:52:46 -07:00
Cheng Zhao
d2f185bea5
Create new uv loop in each worker
2017-03-20 12:52:46 -07:00
Cheng Zhao
b467c3939e
Add a new type of NodeBindings
2017-03-20 12:52:45 -07:00
Cheng Zhao
2cbdb6bac3
Wrap ContextCreated with context scope
2017-03-20 12:52:45 -07:00
Cheng Zhao
e017e157ba
Insert node integrations into WebWorker
2017-03-20 12:52:45 -07:00
Thiago de Arruda
a6e4867111
Handle Buffer deserialization in sandboxed renderers
...
In sandboxed renderers we use browserify to provide a node-like environment. The
Buffer class used by browserify is actually just a wrapper around Uint8Array,
but to deserialize Buffer correctly we must expose the class as a hidden value
and use it in V8ValueConverter.
2017-03-16 13:20:09 -03:00
deepak1556
a4400dc549
add basic spec
2017-03-14 00:26:27 +05:30
deepak1556
e767c59da2
enable pdf plugin by default
2017-03-14 00:26:27 +05:30
deepak1556
fdd574cea5
browser: implement pdf renderer as webui
2017-03-14 00:25:59 +05:30
deepak1556
4281c73cf2
renderer: reset plugin cache when render frame is created
2017-03-12 00:53:39 +05:30
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
Brian R. Bondy
e8c4fb6903
setBaseBackgroundColor moved to WebFrameWidget
2016-05-13 11:11:50 +09:00
Cheng Zhao
df397dab30
Add scrollBounce option and disable it by default
2016-05-06 14:57:43 +09:00
Cheng Zhao
272592415d
Fix building on non-mac
2016-04-25 10:34:41 +09:00
Cheng Zhao
2ae52d0ff4
Make Wrappable a template class
2016-04-25 10:17:54 +09:00
Cheng Zhao
17446f4284
Make sure every page will get a script context created
2016-04-12 15:11:10 +09:00
Cheng Zhao
cb470cb94b
Use BrowserWindow's backgroundColor as renderer view's background color
2016-04-02 20:46:50 +09:00
Cheng Zhao
c307478d5d
Merge pull request #4892 from deepak1556/v8_util_patch
...
common: use v8::private symbols as identifiers for object properties
2016-03-31 10:22:23 +09:00
Cheng Zhao
e401335ebb
Get rid of the global_env
2016-03-27 19:21:12 +09:00
Cheng Zhao
896ea7b79d
Do not create dummy node environment
...
There is a bug in V8 that using Private in a dummy environment would
result in crash.
2016-03-27 19:16:26 +09:00
Robo
5fccbfc7c6
common: use v8::private symbols as identifiers for object properties
2016-03-24 01:24:01 +05:30
Robo
fd53a4b24d
modify default background for all render views
2016-03-14 19:26:20 +05:30
Robo
f8f3fba433
webview: allow setting background color
2016-03-14 15:01:36 +05:30
Cheng Zhao
5fae63a2f5
Fix compilation errors on OS X
2016-03-10 17:06:21 +09:00
Paul Betts
4503aafe64
int32 => int32_t
2016-03-10 17:06:21 +09:00
Paul Betts
d2944c62a5
basictypes.h => macros.h
2016-03-10 17:06:21 +09:00
Kevin Sawicki
70aa9b06ee
Move JavaScript to root lib/ folder
2016-03-08 11:14:21 -08:00
Cheng Zhao
e152b8850c
Merge pull request #4665 from christoth/christoth-webview-flexbox
...
Use flexbox layout for browserplugin
2016-03-06 15:36:20 +09:00
Kevin Sawicki
f460d81dd0
Allow remote member functions to be deleted
2016-03-04 15:51:17 -08:00
Kevin Sawicki
610a503188
Make member functions writable
2016-03-04 15:49:46 -08:00
christoth
fed77d1837
Use flexbox layout for browserplugin
2016-03-03 17:22:20 -05:00
Robo
1235907835
run webframe methods for webview in its context
2016-02-26 05:14:45 +05:30
Robo
8386baf267
add spec
2016-02-25 11:46:30 +05:30
Robo
a734326907
track async api requests
2016-02-25 11:45:59 +05:30
Robo
2b547bd44a
webContents: provide responses for executeJavscript method
2016-02-25 11:45:59 +05:30
Robo
6fcc197db8
webview: api to get webcontents and associated host webcontents
2016-02-24 11:55:15 +05:30
Cheng Zhao
fe7462b352
No longer needs cache for methods of remote
...
Refs #4517 .
2016-02-22 13:05:58 +08:00