electron/docs/api
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
..
structures 📝 Fix document of MimeTypedBuffer Object 2017-04-06 11:38:59 +09:00
accelerator.md Link Accelerator docs to globalShortcut module 2016-10-26 14:48:09 +02:00
app.md fix indentation of app.setLoginItemSettings arguments 2017-03-02 13:28:58 -08:00
auto-updater.md Add Squirrel Release Server to the update server list. 2017-01-12 13:40:14 +00:00
browser-view.md Implement initial, experimental BrowserView API 2017-04-13 01:27:27 +03:00
browser-window-proxy.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
browser-window.md Implement initial, experimental BrowserView API 2017-04-13 01:27:27 +03:00
chrome-command-line-switches.md --cipher-suite-blacklist is also removed 2017-02-06 10:34:29 -08:00
client-request.md Fix net module to accept non-string header values 2017-03-30 16:01:40 -03:00
clipboard.md Change data -> format in clipboard docs 2017-03-17 09:57:17 -07:00
content-tracing.md contentTracing.setWatchEvent/cancelWatchEvent is removed 2017-02-06 10:34:28 -08:00
cookies.md Put optional label before dash 2016-12-29 14:11:26 -08:00
crash-reporter.md Pass uploadToServer to windows crash reporter 2017-03-31 13:46:30 -03:00
debugger.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
desktop-capturer.md Use point / size / rectangle structures consistently in API docs 2017-04-04 08:31:09 +02:00
dialog.md Merge pull request #9099 from electron/certificate-trust 2017-04-04 11:17:09 -07:00
download-item.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
environment-variables.md Move variables from development to production 2016-12-22 09:22:04 -08:00
file-object.md document process(es) for all APIs 2016-11-03 10:26:00 -07:00
frameless-window.md Tweak GitHub spelling 2017-04-10 08:17:55 -07:00
global-shortcut.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
incoming-message.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
ipc-main.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
ipc-renderer.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
locales.md Sort by codes 2016-11-23 09:10:27 -08:00
menu-item.md create a linkable heading for MenuItem roles 2017-03-30 11:07:25 -07:00
menu.md 📝 Document that setApplicationMenu(null) has no effect on macOS 2017-04-04 18:00:20 +12:00
native-image.md Use point / size / rectangle structures consistently in API docs 2017-04-04 08:31:09 +02:00
net.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
power-monitor.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
power-save-blocker.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
process.md Add missing property types on the process docs 2017-03-25 14:51:23 +11:00
protocol.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
remote.md Remove spaces around brackets 2017-03-30 11:58:09 -07:00
sandbox-option.md Clarification of the chromium sandbox support 2017-03-30 10:47:14 +01:00
screen.md Use point / size / rectangle structures consistently in API docs 2017-04-04 08:31:09 +02:00
session.md Merge pull request #9154 from miniak/fix-api-docs 2017-04-10 08:16:54 -07:00
shell.md link process annotations to glossary 2016-12-21 13:47:40 -08:00
synopsis.md Update url (#7598) 2016-10-13 14:09:14 -07:00
system-preferences.md Fix a typo, there => their 2016-12-21 19:21:04 -08:00
touch-bar-button.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar-color-picker.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar-group.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar-label.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar-popover.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar-scrubber.md Generic doc fixes 2017-03-25 12:37:07 +11:00
touch-bar-segmented-control.md Add descriptions for each segmentStyle 2017-03-30 12:36:20 -07:00
touch-bar-slider.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar-spacer.md Mark touch bar apis with _Experimental_ 2017-03-17 10:56:41 -07:00
touch-bar.md Support passing escape item to TouchBar constructor 2017-04-04 12:50:41 -07:00
tray.md Use point / size / rectangle structures consistently in API docs 2017-04-04 08:31:09 +02:00
web-contents.md Use point / size / rectangle structures consistently in API docs 2017-04-04 08:31:09 +02:00
web-frame.md Add missing return type on executeJavaScript 2017-03-25 14:59:48 +11:00
web-request.md Define filter argument type for WebRequest methods 2017-04-10 02:18:36 +02:00
webview-tag.md Add missing finalUpdate prop 2017-04-01 12:11:34 +11:00
window-open.md Link to return class type 2016-12-19 09:40:07 -08:00