Merge pull request #7878 from electron/glossary

Add a glossary of terms
This commit is contained in:
Zeke Sikelianos 2016-12-21 14:12:07 -08:00 committed by GitHub
commit 2b955a5ae1
37 changed files with 190 additions and 39 deletions

View file

@ -2,7 +2,7 @@
> loquear o sistema de entrar no modo de pouca energia (suspenso).
Processo: [Main](../tutorial/quick-start.md#main-process)
Processo: [Main](../glossary.md#main-process)
Por exemplo:

View file

@ -16,6 +16,7 @@ an issue:
## Guides
* [Glossary of Terms](glossary.md)
* [Supported Platforms](tutorial/supported-platforms.md)
* [Security](tutorial/security.md)
* [Electron Versioning](tutorial/electron-versioning.md)

View file

@ -2,7 +2,7 @@
> Control your application's event lifecycle.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
The following example shows how to quit the application when the last window is
closed:

View file

@ -2,7 +2,7 @@
> Enable apps to automatically update themselves.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
The `autoUpdater` module provides an interface for the
[Squirrel](https://github.com/Squirrel) framework.

View file

@ -2,7 +2,7 @@
> Manipulate the child browser window
Process: [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Renderer](../glossary.md#renderer-process)
The `BrowserWindowProxy` object is returned from `window.open` and provides
limited functionality with the child window.

View file

@ -2,7 +2,7 @@
> Create and control browser windows.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
```javascript
// In the main process.
@ -111,7 +111,7 @@ child.once('ready-to-show', () => {
> Create and control browser windows.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
`BrowserWindow` is an
[EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter).

View file

@ -2,7 +2,7 @@
> Make HTTP/HTTPS requests.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
`ClientRequest` implements the [Writable Stream](https://nodejs.org/api/stream.html#stream_writable_streams)
interface and is therefore an [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter).

View file

@ -2,7 +2,7 @@
> Perform copy and paste operations on the system clipboard.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The following example shows how to write a string to the clipboard:

View file

@ -3,7 +3,7 @@
> Collect tracing data from Chromium's content module for finding performance
bottlenecks and slow operations.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
This module does not include a web interface so you need to open
`chrome://tracing/` in a Chrome browser and load the generated file to view the

View file

@ -2,7 +2,7 @@
> Query and modify a session's cookies.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
Instances of the `Cookies` class are accessed by using `cookies` property of
a `Session`.

View file

@ -2,7 +2,7 @@
> Submit crash reports to a remote server.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The following is an example of automatically submitting a crash report to a
remote server:

View file

@ -2,7 +2,7 @@
> An alternate transport for Chrome's remote debugging protocol.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
Chrome Developer Tools has a [special binding][rdp] available at JavaScript
runtime that allows interacting with pages and instrumenting them.

View file

@ -3,7 +3,7 @@
> Access information about media sources that can be used to capture audio and
> video from the desktop using the [`navigator.webkitGetUserMedia`] API.
Process: [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Renderer](../glossary.md#renderer-process)
The following example shows how to capture video from a desktop window whose
title is `Electron`:

View file

@ -2,7 +2,7 @@
> Display native system dialogs for opening and saving files, alerting, etc.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
An example of showing a dialog to select multiple files and directories:

View file

@ -2,7 +2,7 @@
> Control file downloads from remote sources.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
`DownloadItem` is an `EventEmitter` that represents a download item in Electron.
It is used in `will-download` event of `Session` class, and allows users to

View file

@ -2,7 +2,7 @@
> Detect keyboard events when the application does not have keyboard focus.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
The `globalShortcut` module can register/unregister a global keyboard shortcut
with the operating system so that you can customize the operations for various

View file

@ -2,7 +2,7 @@
> Handle responses to HTTP/HTTPS requests.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
`IncomingMessage` implements the [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams)
interface and is therefore an [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter).

View file

@ -2,7 +2,7 @@
> Communicate asynchronously from the main process to renderer processes.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
The `ipcMain` module is an instance of the
[EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) class. When used in the main

View file

@ -2,7 +2,7 @@
> Communicate asynchronously from a renderer process to the main process.
Process: [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Renderer](../glossary.md#renderer-process)
The `ipcRenderer` module is an instance of the
[EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) class. It provides a few

View file

@ -2,7 +2,7 @@
> Add items to native application menus and context menus.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
See [`Menu`](menu.md) for examples.

View file

@ -2,7 +2,7 @@
> Create native application menus and context menus.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
### `new Menu()`

View file

@ -2,7 +2,7 @@
> Create tray, dock, and application icons using PNG or JPG files.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
In Electron, for the APIs that take images, you can pass either file paths or
`NativeImage` instances. An empty image will be used when `null` is passed.
@ -159,7 +159,7 @@ Creates a new `NativeImage` instance from `dataURL`.
> Natively wrap images such as tray, dock, and application icons.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
### Instance Methods

View file

@ -2,7 +2,7 @@
> Issue HTTP/HTTPS requests using Chromium's native networking library
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
The `net` module is a client-side API for issuing HTTP(S) requests. It is
similar to the [HTTP](https://nodejs.org/api/http.html) and

View file

@ -2,7 +2,7 @@
> Monitor power state changes.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
You cannot require or use this module until the `ready` event of the `app`
module is emitted.

View file

@ -2,7 +2,7 @@
> Block the system from entering low-power (sleep) mode.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
For example:

View file

@ -2,7 +2,7 @@
> Extensions to process object.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
Electron's `process` object is extended from the
[Node.js `process` object](https://nodejs.org/api/process.html).

View file

@ -2,7 +2,7 @@
> Register a custom protocol and intercept existing protocol requests.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
An example of implementing a protocol that has the same effect as the
`file://` protocol:

View file

@ -2,7 +2,7 @@
> Use main process modules from the renderer process.
Process: [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Renderer](../glossary.md#renderer-process)
The `remote` module provides a simple way to do inter-process communication
(IPC) between the renderer process (web page) and the main process.

View file

@ -2,7 +2,7 @@
> Retrieve information about screen size, displays, cursor position, etc.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
You cannot require or use this module until the `ready` event of the `app`
module is emitted.

View file

@ -2,7 +2,7 @@
> Manage browser sessions, cookies, cache, proxy settings, etc.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
The `session` module can be used to create new `Session` objects.
@ -54,7 +54,7 @@ A `Session` object, the default session object of the app.
> Get and set properties of a session.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
You can create a `Session` object in the `session` module:

View file

@ -2,7 +2,7 @@
> Manage files and URLs using their default applications.
Process: [Main](../tutorial/quick-start.md#main-process), [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The `shell` module provides functions related to desktop integration.

View file

@ -2,7 +2,7 @@
> Get system preferences.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
```javascript
const {systemPreferences} = require('electron')

View file

@ -2,7 +2,7 @@
> Add icons and context menus to the system's notification area.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
`Tray` is an [EventEmitter][event-emitter].

View file

@ -2,7 +2,7 @@
> Render and control web pages.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
`webContents` is an
[EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter).
@ -49,7 +49,7 @@ Returns `WebContents` - A WebContents instance with the given ID.
> Render and control the contents of a BrowserWindow instance.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
### Instance Events

View file

@ -2,7 +2,7 @@
> Customize the rendering of the current web page.
Process: [Renderer](../tutorial/quick-start.md#renderer-process)
Process: [Renderer](../glossary.md#renderer-process)
An example of zooming current page to 200%.

View file

@ -2,7 +2,7 @@
> Intercept and modify the contents of a request at various stages of its lifetime.
Process: [Main](../tutorial/quick-start.md#main-process)
Process: [Main](../glossary.md#main-process)
Instances of the `WebRequest` class are accessed by using the `webRequest`
property of a `Session`.

150
docs/glossary.md Normal file
View file

@ -0,0 +1,150 @@
# Glossary
This page defines some terminology that is commonly used in Electron development.
### ASAR
ASAR stands for Atom Shell Archive Format. An [asar][asar] archive is a simple
`tar`-like format that concatenates files into a single file. Electron can read
arbitrary files from it without unpacking the whole file.
The ASAR format was created primarily to improve performance on Windows... TODO
### Brightray
Brightray is a static library that makes [libchromiumcontent] easier to use in
applications. It was created specifically for Electron, but can be used to
enable Chromium's renderer in native apps that are not based on Electron.
Brightray is a low-level dependency of Electron that does not concern the
majority of Electron users.
### DMG
An Apple Disk Image is a packaging format used by macOS. DMG files are
commonly used for distributing application "installers". [electron-builder]
supports `dmg` as a build target.
### IPC
IPC stands for Inter-Process Communication. Electron uses IPC to send
serialized JSON messages between the [main] and [renderer] processes.
### libchromiumcontent
A single, shared library that includes the Chromium Content module and all its
dependencies (e.g., Blink, [V8], etc.).
### main process
The main process, commonly a file named `main.js`, is the entry point to every
Electron app. It controls the life of the app, from open to close. It also
manages native elements such as the Menu, Menu Bar, Dock, Tray, etc. The
main process is responsible for creating each new renderer process in the app.
The full Node API is built in.
Every app's main process file is specified in the `main` property in
`package.json`. This is how `electron .` knows what file to execute at startup.
See also: [process](#process), [renderer process](#renderer-process)
### MAS
Acronym for Apple's Mac App Store. For details on submitting your app to the
MAS, see the [Mac App Store Submission Guide].
### native modules
Native modules (also called [addons] in
Node.js) are modules written in C or C++ that can be loaded into Node.js or
Electron using the require() function, and used just as if they were an
ordinary Node.js module. They are used primarily to provide an interface
between JavaScript running in Node.js and C/C++ libraries.
Native Node modules are supported by Electron, but since Electron is very
likely to use a different V8 version from the Node binary installed in your
system, you have to manually specify the location of Electrons headers when
building native modules.
See also [Using Native Node Modules].
## NSIS
Nullsoft Scriptable Install System is a script-driven Installer
authoring tool for Microsoft Windows. It is released under a combination of
free software licenses, and is a widely-used alternative to commercial
proprietary products like InstallShield. [electron-builder] supports NSIS
as a build target.
### process
A process is an instance of a computer program that is being executed. Electron
apps that make use of the [main] and one or many [renderer] process are
actually running several programs simultaneously.
In Node.js and Electron, each running process has a `process` object. This
object is a global that provides information about, and control over, the
current process. As a global, it is always available to applications without
using require().
See also: [main process](#main-process), [renderer process](#renderer-process)
### renderer process
The renderer process is a browser window in your app. Unlike the main process,
there can be multiple of these and each is run in a separate process.
They can also be hidden.
In normal browsers, web pages usually run in a sandboxed environment and are not
allowed access to native resources. Electron users, however, have the power to
use Node.js APIs in web pages allowing lower level operating system
interactions.
See also: [process](#process), [main process](#main-process)
### Squirrel
Squirrel is an open-source framework that enables Electron apps to update
automatically as new versions are released. See the [autoUpdater] API for
info about getting started with Squirrel.
### userland
This term originated in the Unix community, where "userland" or "userspace"
referred to programs that run outside of the operating system kernel. More
recently, the term has been popularized in the Node and npm community to
distinguish between the features available in "Node core" versus packages
published to the npm registry by the much larger "user" community.
Like Node, Electron is focused on having a small set of APIs that provide
all the necessary primitives for developing multi-platform desktop applications.
This design philosophy allows Electron to remain a flexible tool without being
overly prescriptive about how it should be used. Userland enables users to
create and share tools that provide additional functionality on top of what is
available in "core".
### V8
V8 is Google's open source JavaScript engine. It is written in C++ and is
used in Google Chrome, the open source browser from Google. V8 can run
standalone, or can be embedded into any C++ application.
### webview
`webview` tags are used to embed 'guest' content (such as external web pages) in
your Electron app. They are similar to `iframe`s, but differ in that each
webview runs in a separate process. It doesn't have the same
permissions as your web page and all interactions between your app and
embedded content will be asynchronous. This keeps your app safe from the
embedded content.
[addons]: https://nodejs.org/api/addons.html
[autoUpdater]: api/auto-updater.md
[electron-builder]: https://github.com/electron-userland/electron-builder
[libchromiumcontent]: #libchromiumcontent
[Mac App Store Submission Guide]: tutorials/mac-app-store-submission-guide.md
[main]: #main-process
[renderer]: #renderer-process
[Using Native Node Modules]: tutorial/using-native-node-modules.md
[userland]: #userland
[V8]: #v8