Commit graph

316 commits

Author SHA1 Message Date
Charles Kerr
31172ecaa0
Merge pull request #11008 from electron/implement-stream-protocol
Implement {register,intercept}StreamProtocol
2017-11-14 09:31:57 -06:00
Thiago de Arruda
5ea3a5886b Implement {register,intecept}StreamProtocol
These new functions are more flexible than the other
{intercept,register}*ProtocoProtocol functions, since it allows the user to
return a node.js stream to feed the data to the protocol handler.

It also allows the user to specify a response header dictionary, which makes it
possible to correctly intercept any request made from renderers.
2017-11-13 16:16:14 -03:00
Thiago de Arruda
68f514b92f Implement EventSubscriber<T> class.
This class simplifies the task of subscribing/handling javascript events from
C++ classes in the main process.
2017-11-13 15:22:50 -03:00
Ted Kim
4119da607f Implement login helper to manage login item in Mac App Store build 2017-10-20 11:44:19 +09:00
Samuel Attard
6b010614e2 Implement moveToApplicationsFolder (#10142)
* Implement moveToApplicationsFolder

* Fix tabs / spaces

* Fix linting

* Use Browser::Quit, instead of exit

* Update documentation as per feedback

* Fix spec
2017-08-31 10:37:12 -04:00
Aleksei Kuzmin
da36bdfcc4 Add enable_osr build flag 2017-06-28 18:58:52 +02:00
Kevin Sawicki
9a362eed53 Merge pull request #9572 from shubham2892/api-height-menubar-macos
API height menubar macos
2017-06-05 10:35:16 -07:00
Cheng Zhao
e82af41591 Merge pull request #9269 from electron/main-notifications
Notifications from the main process
2017-05-31 17:21:05 +09:00
Shubham
62d9bf9bae 🎨 code comments and test for getMenuBarHeight function 2017-05-30 17:26:02 -04:00
Samuel Attard
5048425e6e
Update implementation as per feedback 2017-05-30 19:06:51 +10:00
Samuel Attard
c741b584a1
Remove OS specific implementations 2017-05-29 21:18:18 +10:00
Shubham
b2f1cdfbae Add API to get top bar height on macOS 2017-05-23 22:24:56 -04:00
Samuel Attard
da31615de5
Basic linux impl 2017-05-23 02:05:13 +10:00
Samuel Attard
6bbc4c3113
Support Windows 7 notifications from brightray 2017-05-23 02:05:13 +10:00
Samuel Attard
7c38633d1e
Initial semi-working windows implementation 2017-05-23 02:05:13 +10:00
Samuel Attard
5dd4d6a961
macOS implementation of notifications in the main process 2017-05-23 02:05:13 +10:00
Heilig Benedek
218e28b136 minor fixes and enable datalist elements in OSR 2017-05-21 19:55:19 +02:00
Heilig Benedek
f360104bee add datalist element view 2017-05-19 21:36:37 +02:00
Cheng Zhao
f4420b449f Use v8::ArrayBuffer::Allocator inside Node 2017-05-18 16:26:46 +09:00
Kevin Sawicki
c419ebdd6d Remove unused test server 2017-05-16 14:44:28 -07:00
Ryohei Ikegami
7ac93045b7 Merge branch 'master' into native-window-open 2017-05-11 13:51:43 +09:00
Brendan Forster
50af70a0e8 Merge branch 'master' into certificate-addition-windows 2017-04-27 14:47:50 +10:00
Ryohei Ikegami
1d73e84a29 Merge branch 'master' into native-window-open 2017-04-27 12:03:55 +09:00
Kevin Sawicki
ca5a8b6166 Extract script tags to renderer.js file 2017-04-25 08:27:57 -07:00
Brendan Forster
4f40b8a42c stub the windows source file 2017-04-20 14:21:08 +10:00
Ryohei Ikegami
8dff29185b Merge branch 'master' into native-window-open 2017-04-18 21:59:22 +09:00
Birunthan Mohanathas
638eae1080 Remove MenuLayout in favor of NativeWindowViews::Layout 2017-04-13 01:27:31 +03:00
Birunthan Mohanathas
8b9f7e5b00 Implement initial, experimental BrowserView API
Right now, `<webview>` is the only way to embed additional content in a
`BrowserWindow`. Unfortunately `<webview>` suffers from a [number of
problems](https://github.com/electron/electron/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Awebview%20).
To make matters worse, many of these are upstream Chromium bugs instead
of Electron-specific bugs.

For us at [Figma](https://www.figma.com), the main issue is very slow
performance.

Despite the upstream improvements to `<webview>` through the OOPIF work, it is
probable that there will continue to be `<webview>`-specific bugs in the
future.

Therefore, this introduces a `<webview>` alternative to called `BrowserView`,
which...

- is a thin wrapper around `api::WebContents` (so bugs in `BrowserView` will
  likely also be bugs in `BrowserWindow` web contents)

- is instantiated in the main process like `BrowserWindow` (and unlike
  `<webview>`, which lives in the DOM of a `BrowserWindow` web contents)

- needs to be added to a `BrowserWindow` to display something on the screen

This implements the most basic API. The API is expected to evolve and change in
the near future and has consequently been marked as experimental. Please do not
use this API in production unless you are prepared to deal with breaking
changes.

In the future, we will want to change the API to support multiple
`BrowserView`s per window. We will also want to consider z-ordering
auto-resizing, and possibly even nested views.
2017-04-13 01:27:27 +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
Ryohei Ikegami
34ed1a9ef8 Track child web contents 2017-04-06 12:15:27 +09:00
Ryohei Ikegami
526086d900 Improve RootWebContentsTracker 2017-04-06 11:37:21 +09:00
joshaber
398132cfe3 Fix file sorting 2017-04-03 21:19:00 -04:00
joshaber
6e89cb9d7c Move it into dialog 2017-04-03 15:05:24 -04:00
joshaber
7b044ffe0e Compile these lovely files 2017-03-30 17:26:03 -04: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
Cheng Zhao
bb5ad4ac05 Correctly initialize Node environment in worker 2017-03-20 12:52:45 -07:00
Cheng Zhao
e017e157ba Insert node integrations into WebWorker 2017-03-20 12:52:45 -07:00
Kevin Sawicki
019883f2fa Merge pull request #8899 from electron/dynamically-generate-browserify-dep-list
Dynamically generate dependencies of browserify build actions
2017-03-15 09:12:31 -07:00
deepak1556
5a8e522526 StreamManager class is no longer required.
Stream lifetime is managed by webui
2017-03-14 00:26:27 +05:30
deepak1556
c982af991d request for pdf resource from the webui 2017-03-14 00:26:27 +05:30
deepak1556
6cb626db88 use existing ipc message generator 2017-03-14 00:26:27 +05:30
deepak1556
0c7bb72891 listen to ipc messages from plugin to perform SaveAs op 2017-03-14 00:25:59 +05:30
deepak1556
fd8c450ef3 move pdfviewer ui data source to separate file 2017-03-14 00:25:59 +05:30
deepak1556
945e26750e manage the lifetime of streams created 2017-03-14 00:25:59 +05:30
deepak1556
c8b932fce4 build pdf resources from submodule 2017-03-14 00:25:59 +05:30
deepak1556
a2db14476a create webui message handler 2017-03-14 00:25:59 +05:30
deepak1556
fdd574cea5 browser: implement pdf renderer as webui 2017-03-14 00:25:59 +05:30
Thiago de Arruda
da023b72ee Dynamically generate dependencies of browserify build actions
Instead of having to list in filenames.gypi every javascript file that may go
into a browserify build, generate this list dynamically when the build files are
created by gyp.
2017-03-10 16:30:23 -03:00
Thiago de Arruda
dda2288541 Remove lib/renderer/api/ipc-renderer-setup.js
This file is no longer required since sandboxed renderer directly imports
ipc-renderer.js.
2017-03-09 20:40:32 -03:00
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
Thiago de Arruda
44bd93589a Refactor electron exports to keep module list in separate files 2017-03-09 19:08:01 -03:00
Kevin Sawicki
b632cdd37d Extract helper class to encapsulate touch bar items 2017-03-03 14:00:38 -08:00
Kevin Sawicki
52905ae9b3 Get compiling against 10.10 SDK 2017-03-03 14:00:38 -08:00
Samuel Attard
7857c83ea1 Make dynamic buttons work along with click events 2017-03-03 14:00:38 -08:00
Kevin Sawicki
be79417a03 Include CanFocus on Windows and map to state 2017-02-15 08:28:55 -08:00
deepak1556
63c0e4cbb1 Add ZoomController to manager zoom changes for webcontents 2017-02-12 00:49:17 +05:30
deepak1556
ff3aaa55f7 define icon loader for liunx as separate target 2017-02-07 09:52:11 -08:00
Robo
b25b141642 create iconmanager as singleton class and cleanup code (#1)
* create iconmanager as singleton class and cleanup code
2017-02-07 09:52:11 -08:00
Yury Solovyov
d118fed5c2 Try my own class 2017-02-07 09:48:12 -08:00
Yury Solovyov
8e4ed664d9 Add icon fetching sources 2017-02-07 09:48:12 -08:00
Cheng Zhao
1a15b45736 --cipher-suite-blacklist is also removed 2017-02-06 10:34:29 -08:00
Cheng Zhao
13a1d79ca6 Deperecate AtomSecurityStateModelClient with SecurityStateTabHelper 2017-02-06 10:34:28 -08:00
Kevin Sawicki
3f7b3c4bd7 Implement window overrides in main context 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
736befe90f Add initial support for loading into isolated world 2017-01-16 12:38:15 -08:00
deepak1556
a0065e62fa add about: protocol handler 2016-11-09 13:22:58 +05:30
Kevin Sawicki
e0afb814aa Only call browserify when one of sandbox sources change 2016-11-07 08:19:59 -08:00
Cheng Zhao
dfefa00a50 Merge pull request #7577 from thomsonreuters/net_module
net module
2016-10-31 10:31:56 +09:00
ali.ibrahim
61278f9ace Fixing code review issues. 2016-10-25 12:41:01 +02:00
Kevin Sawicki
144a61c5a3 Add find text support to clipboard 2016-10-25 14:15:54 +09:00
Kevin Sawicki
39a5c7dab9 Merge pull request #7631 from beakerbrowser/webview-policy-flags2
Add 'webpreferences' attribute to webview
2016-10-25 12:14:25 +09:00
Kevin Sawicki
2556ed8744 Add parse-features-strings.js 2016-10-25 10:28:36 +09:00
deepak1556
5cbbd6efe6 session: exclude hosts from CT verification if they are handled by custom cert verifiers 2016-10-17 16:35:28 +05:30
ali.ibrahim
7521aeea09 Implement URLRequest::Delegate, handle thread sync. 2016-10-12 14:54:15 +02:00
ali.ibrahim
e8d4abe78f Adding net module and URLRequest class. 2016-10-12 14:54:15 +02:00
Kevin Sawicki
24bcf6ac16 Add initial cookie changed event support 2016-09-29 09:16:29 -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
72154b64ed Embed setup bundle for preload scripts in sandboxed renderers.
Add a gyp target that creates a browserify bundle starting with
`lib/sandboxed_renderer/init.js`, which is embedded into the executable using
the `atom_js2c` target.

The goal of this bundle is to provide a very basic environment for preload
scripts where a `require` function is available.
2016-09-27 06:01:47 -03:00
Thiago de Arruda
0f7652dc85 Move code that defines ipcRenderer methods into another file. 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
Samuel Attard
5dd5dbb3d8
Add a systemPreferences API method to fetch the system ColorizationColor
This is useful for automatical app theming

* Fetches the color from the registry
* Returns an empty string if the fetch fails (a falsey value)
2016-09-20 02:41:26 +10:00
Cheng Zhao
9714348260 Merge pull request #6941 from deepak1556/blob_data_patch
protocol: provide blob uuid with uploadData
2016-09-16 17:01:15 +09:00
deepak1556
7b85ca0301 create helper class to read blob data 2016-09-01 08:52:44 +05:30
Vadim Macagon
c64294cf60 Extend the custom Jump List API
Add `app.getJumpListSettings()` and `app.setJumpList(callback)` that
make it possible to fully customize the Jump List of an Electron app.
It is now possible to:
- Add tasks to the standard `Tasks` category.
- Add separators to the standard `Tasks` category.
- Add custom categories containing tasks and file links.
- Add system managed Recent/Frequent categories.
- Remove the custom Jump List.
2016-09-01 09:56:14 +07:00
Cheng Zhao
41df037f64 Show dummy view under offscreen mode 2016-08-04 15:35:08 +09:00
Cheng Zhao
921aaf9aa3 Move osr related files to atom/browser/osr 2016-08-03 13:05:47 +09:00
Heilig Benedek
4088f0eb33 remove unneeded windows specific things 2016-08-02 12:57:23 +02:00
gellert
6abf7475b8 cleaning up osr pt1 2016-07-29 14:50:27 +02:00
gellert
8090278708 breaks down osr api to separate files 2016-07-25 19:44:44 +02:00
gellert
96e1ba9c14 gpu acclereted osr added 2016-07-25 19:44:44 +02:00
Heilig Benedek
5371921f8a speed(up) bump 2016-07-25 19:44:44 +02:00
Heilig Benedek
4a0f0063a0 speedup base 2016-07-25 19:44:44 +02:00
Cheng Zhao
1c9421bc89 Use ArrayBuffer.isView to detect Buffer and ArrayBuffer 2016-07-25 16:39:09 +09:00
haad
2757046e71 Add isTypedArray to Electron exports 2016-07-23 11:30:14 +01:00
Kevin Sawicki
d8eb8f4007 Sort filenames 2016-07-13 14:18:41 -07:00
Kevin Sawicki
7877fa7c0a Add webContents.isFocused() 2016-07-13 14:16:56 -07:00
Cheng Zhao
7848608198 Replace DialogScope with UnresponsiveSuppressor
The latter is global-wide.
2016-07-11 15:29:03 +09:00