electron/atom/common
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
..
api AtomBindings should not use default uv loop 2017-03-20 12:52:46 -07:00
asar Make Archive thread safe 2017-03-20 12:52:46 -07:00
crash_reporter 🎨 2017-03-31 10:42:43 -07:00
linux Rename hard-coded application names in code 2015-04-14 15:55:41 +08:00
native_mate_converters Merge pull request #9099 from electron/certificate-trust 2017-04-04 11:17:09 -07:00
resources/mac mac: Set CFBundleExecutable for Electron Framework 2015-10-14 11:54:59 +08:00
atom_command_line.cc Implement Relaunch on Windows 2016-06-02 19:49:36 +09:00
atom_command_line.h Implement Relaunch on Windows 2016-06-02 19:49:36 +09:00
atom_constants.cc Dont intercept pdf request for subframes 2017-03-14 00:26:27 +05:30
atom_constants.h Dont intercept pdf request for subframes 2017-03-14 00:26:27 +05:30
atom_version.h Bump v1.6.6 2017-04-07 09:01:28 -07:00
chrome_version.h Update to Chrome 56.0.2924.87 2017-02-06 10:34:30 -08:00
color_util.cc Remove const since SkColor is an int 2016-10-11 13:15:27 -07:00
color_util.h Remove const since SkColor is an int 2016-10-11 13:15:27 -07:00
common_message_generator.cc Remove All Rights Reserved after GitHub copyright 2014-10-31 11:17:05 -07:00
common_message_generator.h use existing ipc message generator 2017-03-14 00:26:27 +05:30
draggable_region.cc
draggable_region.h Fix ui/gfx/geometry headers 2015-03-18 09:57:38 +08:00
google_api_key.h allow GOOGLE_API_KEY to be set in environment 2016-09-20 12:01:59 -07:00
key_weak_map.h Remove usages of linked_ptr 2016-08-01 20:26:06 +09:00
keyboard_util.cc web/WebInputEvent.h is moved to platform/WebInputEvent.h 2017-02-06 10:34:29 -08:00
keyboard_util.h Assert key and code in keyup input event spec 2016-10-10 09:35:44 -07:00
mouse_util.cc Quick fix for the memory leak + docs 2016-02-01 07:17:58 +01:00
mouse_util.h Quick fix for the memory leak + docs 2016-02-01 07:17:58 +01:00
node_bindings.cc Implement initial, experimental BrowserView API 2017-04-13 01:27:27 +03:00
node_bindings.h AtomBindings should not use default uv loop 2017-03-20 12:52:46 -07:00
node_bindings_linux.cc Add a new type of NodeBindings 2017-03-20 12:52:45 -07:00
node_bindings_linux.h Add a new type of NodeBindings 2017-03-20 12:52:45 -07:00
node_bindings_mac.cc Add a new type of NodeBindings 2017-03-20 12:52:45 -07:00
node_bindings_mac.h Add a new type of NodeBindings 2017-03-20 12:52:45 -07:00
node_bindings_win.cc Add a new type of NodeBindings 2017-03-20 12:52:45 -07:00
node_bindings_win.h Add a new type of NodeBindings 2017-03-20 12:52:45 -07:00
node_includes.h Node also defines LIKELY 2017-02-06 10:34:28 -08:00
options_switches.cc Enable native tabs on macOS 2017-03-29 13:51:39 +02:00
options_switches.h Enable native tabs on macOS 2017-03-29 13:51:39 +02:00
platform_util.h platform_util code should not involve V8 code 2016-11-17 11:22:09 +09:00
platform_util_linux.cc Use GetDesktopEnvironment to determien desktop env 2017-03-29 16:21:38 +09:00
platform_util_mac.mm Remove extra blank. 2017-04-01 15:09:53 +02:00
platform_util_win.cc Also fix the Windows and Linux side of async openExternal 2016-11-17 12:13:07 +09:00