Commit graph

294 commits

Author SHA1 Message Date
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
Kevin Sawicki
2faf00dc19 Only use default accelerator in Windows/Linux app menu 2016-07-07 11:50:19 -07:00
Kevin Sawicki
cf480f8e17 Set default app window icon on Linux 2016-07-06 11:47:21 -07:00
Cheng Zhao
13c668f22b mac: Implement webContents.startDrag 2016-07-03 12:26:43 +09:00
Kevin Sawicki
25b2724ab9 Add menu item role defaults 2016-06-22 13:09:48 -07:00
Cheng Zhao
9aa7291627 linux: Implement win.disable/enable/isEnabled() API 2016-06-20 11:16:41 +09:00
Kevin Sawicki
3aecb11094 Extract Event clas to own file 2016-06-16 09:51:54 -07:00
Kevin Sawicki
7f9fa92e2d Add chrome.webNavigation stubs 2016-06-16 09:46:26 -07:00
Cheng Zhao
e2442fb052 Move converter for std::map to native_mate 2016-06-13 09:27:13 +09:00
Milan Burda
c89d8b19b6 Add optional requestHeaders argument to autoUpdater.setFeedURL + allow calling mulitple times 2016-06-12 12:46:16 +02:00
Jessica Lord
f121f46a24 Merge branch 'master' into chrome-storage-sync 2016-06-09 16:35:00 -07:00
Jessica Lord
41d6ddd588 Add storage file 2016-06-09 14:14:14 -07:00
Kevin Sawicki
84960af793 Add initial chrome.i18n.getMessage API 2016-06-09 13:57:08 -07:00
Cheng Zhao
0646f6ea9e Implement Relaunch on Windows 2016-06-02 19:49:36 +09:00
Cheng Zhao
a3f39e9d0b Implement Relaunch on Linux 2016-06-02 16:54:21 +09:00
Cheng Zhao
060829da64 Separate implementations of RelauncherMain and RelauncherSynchronizeWithParent 2016-06-02 09:09:32 +09:00
Cheng Zhao
6df18956cd Get ready to make relauncher cross-platform 2016-06-01 22:04:20 +09:00
Cheng Zhao
7b3ba739bf Import chrome/browser/mac/relauncher.{cc,h} 2016-06-01 16:26:08 +09:00
deepak1556
db4dc4757a move bluetooth_chooser to atom/browser/lib 2016-06-01 11:43:39 +05:30
deepak1556
a70749e80a browser: implement bluetooth chooser interface 2016-06-01 11:43:39 +05:30
Cheng Zhao
49d9446cce Implement a simple content script injector 2016-05-27 10:29:57 +09:00
Cheng Zhao
4fb9e20c33 Add API to set render process preferences 2016-05-27 08:51:02 +09:00
cdaringe
32073fa079
🎨 Support non-native promises 2016-05-25 10:11:18 -06:00