electron/spec
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
..
fixtures Add failing spec for app.exit with >2 windows 2017-04-11 09:09:17 -07:00
static Add failing spec for no callback 2017-03-06 10:49:23 -08:00
api-app-spec.js Add failing spec for app.exit with >2 windows 2017-04-11 09:09:17 -07:00
api-auto-updater-spec.js
api-browser-view-spec.js Implement initial, experimental BrowserView API 2017-04-13 01:27:27 +03:00
api-browser-window-spec.js Add initial tabbingIdentifier spec 2017-03-30 13:46:58 -07:00
api-clipboard-spec.js 🎨 2017-03-17 09:57:17 -07:00
api-crash-reporter-spec.js Fix sandboxed crashReporter for windows. 2017-04-05 18:09:24 -03:00
api-debugger-spec.js Update type to level in debugger message spec 2017-01-19 09:05:59 +02:00
api-deprecations-spec.js
api-desktop-capturer-spec.js
api-dialog-spec.js Add specs for showCertificateTrustDialog option errors 2017-04-04 10:49:21 -07:00
api-global-shortcut-spec.js
api-ipc-spec.js Add tests for setting remote property null/undefined 2017-04-04 11:18:16 -07:00
api-menu-spec.js 🎨 2017-03-29 12:29:36 -07:00
api-native-image-spec.js Add spec for adding representation to existing image 2017-03-09 09:56:42 -08:00
api-net-spec.js Wait until server closes in afterEach 2017-04-07 16:42:01 -07:00
api-power-save-blocker-spec.js
api-protocol-spec.js Merge pull request #8085 from deepak1556/protocol_http_session_patch 2016-12-12 13:07:14 -08:00
api-screen-spec.js
api-session-spec.js Expect count to be 0 2017-03-27 10:21:01 -07:00
api-shell-spec.js
api-system-preferences-spec.js Add systemPreferences.setUserDefault for macOS 2016-11-29 09:46:32 -08:00
api-touch-bar-spec.js Add spec for interaction event with escape item 2017-04-04 13:14:56 -07:00
api-web-contents-spec.js Remove unneeded done call 2017-03-09 09:53:01 -08:00
api-web-frame-spec.js closeWindow in an afterEach block 2016-11-29 12:30:40 -08:00
api-web-request-spec.js
asar-spec.js Use 1 or 2 minute timeout for long specs 2016-11-29 14:31:57 -08:00
chromium-spec.js Fix js lint 2017-03-20 12:52:46 -07:00
modules-spec.js Add declared const Buffer spec 2017-02-14 08:42:34 -08:00
node-spec.js 🎨 2017-04-06 09:52:52 -07:00
package.json Add coffee-script dependency to specs 2017-02-08 09:00:14 -08:00
webview-spec.js Disable flaky post navigation spec on AppVeyor 2017-03-27 09:15:40 -07:00
window-helpers.js Assert single window from closeWindow helper 2016-11-29 11:29:20 -08:00