# Electron > Control your application's event lifecycle. ## Pages - [app](api-app.md): Control your application's event lifecycle. - [autoUpdater](api-auto-updater.md): Enable apps to automatically update themselves. - [BaseWindow](api-base-window.md): Create and control windows. - [BrowserView](api-browser-view.md): deprecated: - [BrowserWindow](api-browser-window.md): Create and control browser windows. - [Client Request](api-client-request.md): Make HTTP/HTTPS requests. - [clipboard](api-clipboard.md): Perform copy and paste operations on the system clipboard. - [Supported Command Line Switches](api-command-line-switches.md): Command line switches supported by Electron. - [Command Line](api-command-line.md): Manipulate the command line arguments for your app that Chromium reads - [contentTracing](api-content-tracing.md): Collect tracing data from Chromium to find performance bottlenecks and slow operations. - [contextBridge](api-context-bridge.md): changes: - [Cookies](api-cookies.md): Query and modify a session's cookies. - [Corner Smoothing Css](api-corner-smoothing-css.md): Smoothes out the corner rounding of the`border-radius`CSS rule. - [crashReporter](api-crash-reporter.md): Submit crash reports to a remote server. - [Debugger](api-debugger.md): An alternate transport for Chrome's remote debugging protocol. - [desktopCapturer](api-desktop-capturer.md): Access information about media sources that can be used to capture audio and - [dialog](api-dialog.md): Display native system dialogs for opening and saving files, alerting, etc. - [Dock](api-dock.md): Control your app in the macOS dock - [Download Item](api-download-item.md): Control file downloads from remote sources. - [Environment Variables](api-environment-variables.md): Control application configuration and behavior without changing code. - [Extensions Api](api-extensions-api.md): Load and interact with extensions. - [Chrome Extension Support](api-extensions.md): Electron supports a subset of the [Chrome Extensions API][chrome-extensions-api-index], - [globalShortcut](api-global-shortcut.md): Detect keyboard events when the application does not have keyboard focus. - [ImageView](api-image-view.md): A View that displays an image. - [inAppPurchase](api-in-app-purchase.md): In-app purchases on Mac App Store. - [Incoming Message](api-incoming-message.md): Handle responses to HTTP/HTTPS requests. - [Ipc Main Service Worker](api-ipc-main-service-worker.md): Communicate asynchronously from the main process to service workers. - [ipcMain](api-ipc-main.md): Communicate asynchronously from the main process to renderer processes. - [ipcRenderer](api-ipc-renderer.md): changes: - [MenuItem](api-menu-item.md): Add items to native application menus and context menus. - [Menu](api-menu.md): Create application menus and context menus. - [MessageChannelMain](api-message-channel-main.md): `MessageChannelMain`is the main-process-side equivalent of the DOM - [MessagePortMain](api-message-port-main.md): `MessagePortMain`is the main-process-side equivalent of the DOM - [nativeImage](api-native-image.md): Create tray, dock, and application icons using PNG or JPG files. - [nativeTheme](api-native-theme.md): Read and respond to changes in Chromium's native color theme. - [Navigation History](api-navigation-history.md): Manage a list of navigation entries, representing the user's browsing history within the application. - [netLog](api-net-log.md): Logging network events for a session. - [net](api-net.md): Issue HTTP/HTTPS requests using Chromium's native networking library - [Notification](api-notification.md): Create OS desktop notifications - [parentPort](api-parent-port.md): Interface for communication with parent process. - [powerMonitor](api-power-monitor.md): Monitor power state changes. - [powerSaveBlocker](api-power-save-blocker.md): Block the system from entering low-power (sleep) mode. - [process](api-process.md): Extensions to process object. - [protocol](api-protocol.md): Register a custom protocol and intercept existing protocol requests. - [pushNotifications](api-push-notifications.md): Process: [Main](../glossary.md#main-process) - [safeStorage](api-safe-storage.md): Allows access to simple encryption and decryption of strings for storage on the local machine. - [screen](api-screen.md): Retrieve information about screen size, displays, cursor position, etc. - [Service Worker Main](api-service-worker-main.md): An instance of a Service Worker representing a version of a script for a given scope. - [Service Workers](api-service-workers.md): Query and receive events from a sessions active service workers. - [session](api-session.md): Manage browser sessions, cookies, cache, proxy settings, etc. - [ShareMenu](api-share-menu.md): The`ShareMenu`class creates [Share Menu][share-menu] on macOS, which can be - [sharedTexture](api-shared-texture.md): Import shared textures into Electron and converts platform specific handles into [`VideoFrame`](https://developer.moz... - [shell](api-shell.md): Manage files and URLs using their default applications. - [BaseWindowConstructorOptions Object](api-structures-base-window-options.md): *`width`Integer (optional) - Window's width in pixels. Default is`800`. - [BluetoothDevice Object](api-structures-bluetooth-device.md): *`deviceName`string - [BrowserWindowConstructorOptions Object extends `BaseWindowConstructorOptions`](api-structures-browser-window-options.md): *`webPreferences`[WebPreferences](web-preferences.md?inline) (optional) - Settings of web page's features. - [CertificatePrincipal Object](api-structures-certificate-principal.md): *`commonName`string - Common Name. - [Certificate Object](api-structures-certificate.md): *`data`string - PEM encoded data - [ColorSpace Object](api-structures-color-space.md): *`primaries`string - The color primaries of the color space. Can be one of the following values: - [Cookie Object](api-structures-cookie.md): *`name`string - The name of the cookie. - [CPUUsage Object](api-structures-cpu-usage.md): *`percentCPUUsage`number - Percentage of CPU used since the last call to getCPUUsage. - [CustomScheme Object](api-structures-custom-scheme.md): *`scheme`string - Custom schemes to be registered with options. - [DesktopCapturerSource Object](api-structures-desktop-capturer-source.md): *`id`string - The identifier of a window or screen that can be used as a - [Display Object](api-structures-display.md): *`accelerometerSupport`string - Can be`available`,`unavailable`,`unknown`. - [ExtensionInfo Object](api-structures-extension-info.md): *`name`string - [Extension Object](api-structures-extension.md): *`id`string - [FileFilter Object](api-structures-file-filter.md): *`name`string - [FilePathWithHeaders Object](api-structures-file-path-with-headers.md): *`path`string - The path to the file to send. - [FilesystemPermissionRequest Object extends `PermissionRequest`](api-structures-filesystem-permission-request.md): *`filePath`string (optional) - The path of the`fileSystem`request. - [GPUFeatureStatus Object](api-structures-gpu-feature-status.md): *`2d_canvas`string - Canvas. - [HIDDevice Object](api-structures-hid-device.md): *`deviceId`string - Unique identifier for the device. - [InputEvent Object](api-structures-input-event.md): *`type`string - Can be`undefined`,`mouseDown`,`mouseUp`,`mouseMove`, - [IpcMainEvent Object extends `Event`](api-structures-ipc-main-event.md): *`type`String - Possible values include`frame` - [IpcMainInvokeEvent Object extends `Event`](api-structures-ipc-main-invoke-event.md): *`type`String - Possible values include`frame` - [IpcMainServiceWorkerEvent Object extends `Event`](api-structures-ipc-main-service-worker-event.md): *`type`String - Possible values include`service-worker`. - [IpcMainServiceWorkerInvokeEvent Object extends `Event`](api-structures-ipc-main-service-worker-invoke-event.md): *`type`String - Possible values include`service-worker`. - [IpcRendererEvent Object extends `Event`](api-structures-ipc-renderer-event.md): *`sender`[IpcRenderer](../ipc-renderer.md) - The`IpcRenderer`instance that emitted the event originally - [JumpListCategory Object](api-structures-jump-list-category.md): *`type`string (optional) - One of the following: - [JumpListItem Object](api-structures-jump-list-item.md): *`type`string (optional) - One of the following: - [KeyboardEvent Object](api-structures-keyboard-event.md): *`ctrlKey`boolean (optional) - whether the Control key was used in an accelerator to trigger the Event - [KeyboardInputEvent Object extends `InputEvent`](api-structures-keyboard-input-event.md): *`type`string - The type of the event, can be`rawKeyDown`,`keyDown`,`keyUp`or`char`. - [MediaAccessPermissionRequest Object extends `PermissionRequest`](api-structures-media-access-permission-request.md): *`securityOrigin`string (optional) - The security origin of the request. - [MemoryInfo Object](api-structures-memory-info.md): *`workingSetSize`Integer - The amount of memory currently pinned to actual physical RAM. - [MemoryUsageDetails Object](api-structures-memory-usage-details.md): *`count`number - [MimeTypedBuffer Object](api-structures-mime-typed-buffer.md): *`mimeType`string (optional) - MIME type of the buffer. - [MouseInputEvent Object extends `InputEvent`](api-structures-mouse-input-event.md): *`type`string - The type of the event, can be`mouseDown`, - [MouseWheelInputEvent Object extends `MouseInputEvent`](api-structures-mouse-wheel-input-event.md): *`type`string - The type of the event, can be`mouseWheel`. - [NavigationEntry Object](api-structures-navigation-entry.md): *`url`string - [NotificationAction Object](api-structures-notification-action.md): *`type`string - The type of action, can be`button`. - [NotificationResponse Object](api-structures-notification-response.md): *`actionIdentifier`string - The identifier string of the action that the user selected. - [OffscreenSharedTexture Object](api-structures-offscreen-shared-texture.md): *`textureInfo`Object - The shared texture info. - [OpenExternalPermissionRequest Object extends `PermissionRequest`](api-structures-open-external-permission-request.md): *`externalURL`string (optional) - The url of the`openExternal`request. - [PaymentDiscount Object](api-structures-payment-discount.md): *`identifier`string - A string used to uniquely identify a discount offer for a product. - [PermissionRequest Object](api-structures-permission-request.md): *`requestingUrl`string - The last URL the requesting frame loaded. - [Point Object](api-structures-point.md): *`x`number - [PostBody Object](api-structures-post-body.md): *`data`([UploadRawData](upload-raw-data.md) | [UploadFile](upload-file.md))[] - The post data to be sent to the - [PreloadScriptRegistration Object](api-structures-preload-script-registration.md): *`type`string - Context type where the preload script will be executed. - [PreloadScript Object](api-structures-preload-script.md): *`type`string - Context type where the preload script will be executed. - [PrinterInfo Object](api-structures-printer-info.md): *`name`string - the name of the printer as understood by the OS. - [ProcessMemoryInfo Object](api-structures-process-memory-info.md): *`residentSet`Integer _Linux_ _Windows_ - The amount of memory - [ProcessMetric Object](api-structures-process-metric.md): *`pid`Integer - Process id of the process. - [ProductDiscount Object](api-structures-product-discount.md): *`identifier`string - A string used to uniquely identify a discount offer for a product. - [ProductSubscriptionPeriod Object](api-structures-product-subscription-period.md): *`numberOfUnits`number - The number of units per subscription period. - [Product Object](api-structures-product.md): *`productIdentifier`string - The string that identifies the product to the Apple App Store. - [ProtocolRequest Object](api-structures-protocol-request.md): *`url`string - [ProtocolResponseUploadData Object](api-structures-protocol-response-upload-data.md): *`contentType`string - MIME type of the content. - [ProtocolResponse Object](api-structures-protocol-response.md): *`error`Integer (optional) - When assigned, the`request`will fail with the - [ProxyConfig Object](api-structures-proxy-config.md): *`mode`string (optional) - The proxy mode. Should be one of`direct`, - [Rectangle Object](api-structures-rectangle.md): *`x`number - The x coordinate of the origin of the rectangle (must be an integer). - [Referrer Object](api-structures-referrer.md): *`url`string - HTTP Referrer URL. - [RenderProcessGoneDetails Object](api-structures-render-process-gone-details.md): *`reason`string - The reason the render process is gone. Possible values: - [ResolvedEndpoint Object](api-structures-resolved-endpoint.md): *`address`string - [ResolvedHost Object](api-structures-resolved-host.md): *`endpoints`[ResolvedEndpoint[]](resolved-endpoint.md) - resolved DNS entries for the hostname - [ScrubberItem Object](api-structures-scrubber-item.md): *`label`string (optional) - The text to appear in this item. - [SegmentedControlSegment Object](api-structures-segmented-control-segment.md): *`label`string (optional) - The text to appear in this segment. - [SerialPort Object](api-structures-serial-port.md): *`portId`string - Unique identifier for the port. - [ServiceWorkerInfo Object](api-structures-service-worker-info.md): *`scriptUrl`string - The full URL to the script that this service worker runs - [SharedDictionaryInfo Object](api-structures-shared-dictionary-info.md): *`match`string - The matching path pattern for the dictionary which was declared in 'use-as-dictionary' response he... - [SharedDictionaryUsageInfo Object](api-structures-shared-dictionary-usage-info.md): *`frameOrigin`string - The origin of the frame where the request originates. It’s specific to the individual frame ... - [SharedTextureHandle Object](api-structures-shared-texture-handle.md): *`ntHandle`Buffer (optional) _Windows_ - NT HANDLE holds the shared texture. Note that this NT HANDLE is local to c... - [SharedTextureImportTextureInfo Object](api-structures-shared-texture-import-texture-info.md): *`pixelFormat`string - The pixel format of the texture. - [SharedTextureImportedSubtle Object](api-structures-shared-texture-imported-subtle.md): *`getVideoFrame`Function\ - Create a`V... - [SharedTextureImported Object](api-structures-shared-texture-imported.md): *`textureId`string - The unique identifier of the imported shared texture. - [SharedTextureSubtle Object](api-structures-shared-texture-subtle.md): *`importSharedTexture`Function\ - Imports the sh... - [SharedTextureSyncToken Object](api-structures-shared-texture-sync-token.md): *`syncToken`string - The opaque data for sync token. - [SharedTextureTransfer Object](api-structures-shared-texture-transfer.md): *`transfer`string _Readonly_ - The opaque transfer data of the shared texture. This can be transferred across Elect... - [SharedWorkerInfo Object](api-structures-shared-worker-info.md): *`id`string - The unique id of the shared worker. - [SharingItem Object](api-structures-sharing-item.md): *`texts`string[] (optional) - An array of text to share. - [ShortcutDetails Object](api-structures-shortcut-details.md): *`target`string - The target to launch from this shortcut. - [Task Object](api-structures-task.md): *`program`string - Path of the program to execute, usually you should - [ThumbarButton Object](api-structures-thumbar-button.md): *`icon`[NativeImage](../native-image.md) - The icon showing in thumbnail - [TraceCategoriesAndOptions Object](api-structures-trace-categories-and-options.md): *`categoryFilter`string - A filter to control what category groups - [TraceConfig Object](api-structures-trace-config.md): *`recording_mode`string (optional) - Can be`record-until-full`,`record-continuously`,`record-as-much-as-possible... - [Transaction Object](api-structures-transaction.md): *`transactionIdentifier`string - A string that uniquely identifies a successful payment transaction. - [UploadData Object](api-structures-upload-data.md): *`bytes`Buffer - Content being sent. - [UploadFile Object](api-structures-upload-file.md): *`type`'file' -`file`. - [UploadRawData Object](api-structures-upload-raw-data.md): *`type`'rawData' -`rawData`. - [USBDevice Object](api-structures-usb-device.md): *`configuration`Object (optional) - A [USBConfiguration](https://developer.mozilla.org/en-US/docs/Web/API/USBConfig... - [UserDefaultTypes Object](api-structures-user-default-types.md): *`string`string - [WebPreferences Object](api-structures-web-preferences.md): *`devTools`boolean (optional) - Whether to enable DevTools. If it is set to`false`, can not use`BrowserWindow.web... - [WebRequestFilter Object](api-structures-web-request-filter.md): *`urls`string[] - Array of [URL patterns](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Ma... - [WebSource Object](api-structures-web-source.md): *`code`string - [WindowOpenHandlerResponse Object](api-structures-window-open-handler-response.md): *`action`string - Can be`allow`or`deny`. Controls whether new window should be created. - [WindowSessionEndEvent Object extends `Event`](api-structures-window-session-end-event.md): *`reasons`string[] - List of reasons for shutdown. Can be 'shutdown', 'close-app', 'critical', or 'logoff'. - [systemPreferences](api-system-preferences.md): Get system preferences. - [Touch Bar Button](api-touch-bar-button.md): Create a button in the touch bar for native macOS applications - [Touch Bar Color Picker](api-touch-bar-color-picker.md): Create a color picker in the touch bar for native macOS applications - [Touch Bar Group](api-touch-bar-group.md): Create a group in the touch bar for native macOS applications - [Touch Bar Label](api-touch-bar-label.md): Create a label in the touch bar for native macOS applications - [Touch Bar Other Items Proxy](api-touch-bar-other-items-proxy.md): Instantiates a special "other items proxy", which nests TouchBar elements inherited - [Touch Bar Popover](api-touch-bar-popover.md): Create a popover in the touch bar for native macOS applications - [Touch Bar Scrubber](api-touch-bar-scrubber.md): Create a scrubber (a scrollable selector) - [Touch Bar Segmented Control](api-touch-bar-segmented-control.md): Create a segmented control (a button group) where one button has a selected state - [Touch Bar Slider](api-touch-bar-slider.md): Create a slider in the touch bar for native macOS applications - [Touch Bar Spacer](api-touch-bar-spacer.md): Create a spacer between two items in the touch bar for native macOS applications - [TouchBar](api-touch-bar.md): [!WARNING] - [Tray](api-tray.md): Add icons and context menus to the system's notification area. - [utilityProcess](api-utility-process.md): `utilityProcess`creates a child process with - [View](api-view.md): Create and layout native views. - [WebContentsView](api-web-contents-view.md): A View that displays a WebContents. - [webContents](api-web-contents.md): Render and control web pages. - [webFrameMain](api-web-frame-main.md): Control web pages and iframes. - [webFrame](api-web-frame.md): Customize the rendering of the current web page. - [Web Request](api-web-request.md): Intercept and modify the contents of a request at various stages of its lifetime. - [webUtils](api-web-utils.md): A utility layer to interact with Web API objects (Files, Blobs, etc.) - [`` Tag](api-webview-tag.md): Electron's`webview`tag is based on [Chromium's`webview`][chrome-webview], which - [Opening windows from the renderer](api-window-open.md): There are several ways to control how windows are created from trusted or - [Breaking Changes](breaking-changes.md): Breaking changes will be documented here, and deprecation warnings added to JS code where possible, at least [one maj... - [Electron API History Migration Guide](development-api-history-migration-guide.md): This document demonstrates how to add API History blocks to existing APIs. - [Build Instructions](development-build-instructions-gn.md): Follow the guidelines below for building **Electron itself**, for the purposes of creating custom Electron binaries. ... - [Build Instructions (Linux)](development-build-instructions-linux.md): Follow the guidelines below for building **Electron itself** on Linux, for the purposes of creating custom Electron b... - [Build Instructions (macOS)](development-build-instructions-macos.md): Follow the guidelines below for building **Electron itself** on macOS, for the purposes of creating custom Electron b... - [Build Instructions (Windows)](development-build-instructions-windows.md): Follow the guidelines below for building **Electron itself** on Windows, for the purposes of creating custom Electron... - [Chromium Development](development-chromium-development.md): A collection of resources for learning about Chromium and tracking its development. - [Using clang-tidy on C++ Code](development-clang-tidy.md): [`clang-tidy`](https://clang.llvm.org/extra/clang-tidy/) is a tool to - [Coding Style](development-coding-style.md): These are the style guidelines for coding in Electron. - [Creating a New Electron Browser Module](development-creating-api.md): Welcome to the Electron API guide! If you are unfamiliar with creating a new Electron API module within the [`browser... - [Debugging on macOS](development-debugging-on-macos.md): If you experience crashes or issues in Electron that you believe are not caused - [Debugging on Windows](development-debugging-on-windows.md): If you experience crashes or issues in Electron that you believe are not caused - [Setting Up Symbol Server in Debugger](development-debugging-with-symbol-server.md): Debug symbols allow you to have better debugging sessions. They have information - [Debugging With Xcode](development-debugging-with-xcode.md): Run`gn gen`with the --ide=xcode argument. - [Electron Debugging](development-debugging.md): There are many different approaches to debugging issues and bugs in Electron, many of which - [Issues In Electron](development-issues.md): * How to Contribute to Issues - [Patches in Electron](development-patches.md): Electron is built on two major upstream projects: Chromium and Node.js. Each of these projects has several of their o... - [Pull Requests](development-pull-requests.md): * Setting up your local environment - [Reclient](development-reclient.md): Reclient integrates with an existing build system to enable remote execution and caching of build actions. - [Source Code Directory Structure](development-source-code-directory-structure.md): The source code of Electron is separated into a few parts, mostly - [Electron Documentation Style Guide](development-style-guide.md): These are the guidelines for writing Electron documentation. - [Testing](development-testing.md): We aim to keep the code coverage of Electron high. We ask that all pull - [V8 Development](development-v8-development.md): A collection of resources for learning and using V8 - [Experimental APIs](experimental.md): Some of Electron's APIs are tagged with`_Experimental_`in the documentation. - [Electron FAQ](faq.md): When running`npm install electron`, some users occasionally encounter - [Glossary](glossary.md): This page defines some terminology that is commonly used in Electron development. - [Accessibility](tutorial-accessibility.md): Accessibility concerns in Electron applications are similar to those of - [Application Debugging](tutorial-application-debugging.md): Whenever your Electron application is not behaving the way you wanted it to, - [Application Packaging](tutorial-application-distribution.md): To distribute your app with Electron, you need to package and rebrand it. To do this, you - [Application Menu](tutorial-application-menu.md): Each Electron app has a single top-level application menu. - [ASAR Archives](tutorial-asar-archives.md): After creating an [application distribution](application-distribution.md), the - [ASAR Integrity](tutorial-asar-integrity.md): ASAR integrity is a security feature that validates the contents of your app's - [Automated Testing](tutorial-automated-testing.md): Test automation is an efficient way of validating that your application code works as intended. - [Boilerplates and CLIs](tutorial-boilerplates-and-clis.md): Electron development is unopinionated - there is no "one true way" to develop, - [Code Signing](tutorial-code-signing.md): Code signing is a security technology to certify that an app was created by you. - [Context Isolation](tutorial-context-isolation.md): Context Isolation is a feature that ensures that both your`preload`scripts and Electron's internal logic run in a s... - [Context Menu](tutorial-context-menu.md): Context menus are pop-up menus that appear when right-clicking (or pressing a shortcut - [Custom Title Bar](tutorial-custom-title-bar.md): Application windows have a default chrome applied by the OS. Not to be confused - [Custom Window Interactions](tutorial-custom-window-interactions.md): By default, windows are dragged using the title bar provided by the OS chrome. Apps - [Custom Window Styles](tutorial-custom-window-styles.md): A frameless window removes all chrome applied by the OS, including window controls. - [Dark Mode](tutorial-dark-mode.md): "Native interfaces" include the file picker, window border, dialogs, context - [Debugging the Main Process](tutorial-debugging-main-process.md): The DevTools in an Electron browser window can only debug JavaScript that's - [Debugging in VSCode](tutorial-debugging-vscode.md): This guide goes over how to set up VSCode debugging for both your own Electron - [Device Access](tutorial-devices.md): Like Chromium based browsers, Electron provides access to device hardware - [DevTools Extension](tutorial-devtools-extension.md): Electron supports [Chrome DevTools extensions][devtools-extension], which can - [Distribution Overview](tutorial-distribution-overview.md): Once your app is ready for production, there are a couple steps you need to take before - [Electron Releases](tutorial-electron-timelines.md): Electron frequently releases major versions alongside every other Chromium release. - [Electron Versioning](tutorial-electron-versioning.md): A detailed look at our versioning policy and implementation. - [ES Modules (ESM) in Electron](tutorial-esm.md): The ECMAScript module (ESM) format is [the standard way of loading JavaScript packages](https://tc39.es/ecma262/#sec-... - [Examples Overview](tutorial-examples.md): In this section, we have collected a set of guides for common features - [Distributing Apps With Electron Forge](tutorial-forge-overview.md): Electron Forge is a tool for packaging and publishing Electron applications. - [Electron Fuses](tutorial-fuses.md): Package time feature toggles - [In-App Purchases](tutorial-in-app-purchases.md): If you haven't already, you’ll need to sign the Paid Applications Agreement and set up your banking and tax informati... - [Advanced Installation Instructions](tutorial-installation.md): To install prebuilt Electron binaries, use [`npm`][npm]. - [Introduction](tutorial-introduction.md): Electron is a framework for building desktop applications using JavaScript, - [Inter-Process Communication](tutorial-ipc.md): Inter-process communication (IPC) is a key part of building feature-rich desktop applications - [Keyboard Shortcuts](tutorial-keyboard-shortcuts.md): Accelerators are strings that can be used to represent keyboard shortcuts throughout your Electron. - [Deep Links](tutorial-launch-app-from-url-in-another-app.md): This guide will take you through the process of setting your Electron app as the default - [Desktop Launcher Actions](tutorial-linux-desktop-actions.md): On many Linux environments, you can add custom entries to the system launcher - [Mac App Store Submission Guide](tutorial-mac-app-store-submission-guide.md): This guide provides information on: - [Dock Menu](tutorial-macos-dock.md): On macOS, the [Dock](https://support.apple.com/en-ca/guide/mac-help/mh35859/mac) is an interface - [Menus](tutorial-menus.md): import Tabs from '@theme/Tabs'; - [MessagePorts in Electron](tutorial-message-ports.md): `MessagePort`s are a web feature that allow passing messages between - [Multithreading](tutorial-multithreading.md): With [Web Workers][web-workers], it is possible to run JavaScript in OS-level - [Native Code and Electron: C++ (Linux)](tutorial-native-code-and-electron-cpp-linux.md): This tutorial builds on the [general introduction to Native Code and Electron](./native-code-and-electron.md) and foc... - [Native Code and Electron: C++ (Windows)](tutorial-native-code-and-electron-cpp-win32.md): This tutorial builds on the [general introduction to Native Code and Electron](./native-code-and-electron.md) and foc... - [Native Code and Electron: Objective-C (macOS)](tutorial-native-code-and-electron-objc-macos.md): This tutorial builds on the [general introduction to Native Code and Electron](./native-code-and-electron.md) and foc... - [Native Code and Electron: Swift (macOS)](tutorial-native-code-and-electron-swift-macos.md): This tutorial builds on the [general introduction to Native Code and Electron](./native-code-and-electron.md) and foc... - [Native Code and Electron](tutorial-native-code-and-electron.md): One of Electron's most powerful features is the ability to combine web technologies with native code - both for compu... - [Native File Drag & Drop](tutorial-native-file-drag-drop.md): Certain kinds of applications that manipulate files might want to support - [Navigation History](tutorial-navigation-history.md): The [NavigationHistory](../api/navigation-history.md) class allows you to manage and interact with the browsing histo... - [Notifications](tutorial-notifications.md): Each operating system has its own mechanism to display notifications to users. Electron's notification - [Offscreen Rendering](tutorial-offscreen-rendering.md): Offscreen rendering lets you obtain the content of a`BrowserWindow`in a - [Online/Offline Event Detection](tutorial-online-offline-events.md): Online and offline event detection can be implemented in both the main and renderer processes: - [Performance](tutorial-performance.md): Developers frequently ask about strategies to optimize the performance of - [Process Model](tutorial-process-model.md): Electron inherits its multi-process architecture from Chromium, which makes the framework - [Progress Bars](tutorial-progress-bar.md): A progress bar enables a window to provide progress information to the user - [Recent Documents](tutorial-recent-documents.md): Windows and macOS provide access to a list of recent documents opened by - [REPL](tutorial-repl.md): is a simple, interactive computer programming environment that takes single user - [Representing Files in a BrowserWindow](tutorial-represented-file.md): On macOS, you can set a represented file for any window in your application. - [Process Sandboxing](tutorial-sandbox.md): One key security feature in Chromium is that processes can be executed within a sandbox. - [Security](tutorial-security.md): :::info Reporting security issues - [Snapcraft Guide (Linux)](tutorial-snapcraft.md): This guide provides information on how to package your Electron application - [SpellChecker](tutorial-spellchecker.md): Electron has built-in support for Chromium's spellchecker since Electron 8. On Windows and Linux this is powered by ... - [This doc has moved!](tutorial-support.md): * For information on supported releases, see the [Electron Releases](./electron-timelines.md) doc. - [Testing on Headless CI Systems (Travis CI, Jenkins)](tutorial-testing-on-headless-ci.md): Being based on Chromium, Electron requires a display driver to function. - [Tray Menu](tutorial-tray.md): This guide will take you through the process of creating an icon with its own context menu to the - [Prerequisites](tutorial-tutorial-1-prerequisites.md): :::info Follow along the tutorial - [Building your First App](tutorial-tutorial-2-first-app.md): :::info Follow along the tutorial - [Using Preload Scripts](tutorial-tutorial-3-preload.md): :::info Follow along the tutorial - [Adding Features](tutorial-tutorial-4-adding-features.md): :::info Follow along the tutorial - [Packaging Your Application](tutorial-tutorial-5-packaging.md): import Tabs from '@theme/Tabs'; - [Publishing and Updating](tutorial-tutorial-6-publishing-updating.md): :::info Follow along the tutorial - [Updating Applications](tutorial-updates.md): There are several ways to provide automatic updates to your Electron application. - [Native Node Modules](tutorial-using-native-node-modules.md): Native Node.js modules are supported by Electron, but since Electron has a different - [Pepper Flash Plugin](tutorial-using-pepper-flash-plugin.md): Electron no longer supports the Pepper Flash plugin, as Chrome has removed support. - [Web Embeds](tutorial-web-embeds.md): If you want to embed (third-party) web content in an Electron`BrowserWindow`, - [Window Customization](tutorial-window-customization.md): import DocCardList from '@theme/DocCardList'; - [Windows on ARM](tutorial-windows-arm.md): If your app runs with Electron 6.0.8 or later, you can now build it for Windows 10 on Arm. This considerably improves... - [Windows Store Guide](tutorial-windows-store-guide.md): With Windows 10, the good old win32 executable got a new sibling: The Universal - [Taskbar Customization](tutorial-windows-taskbar.md): Electron has APIs to configure the app's icon in the Windows taskbar. This API - [Why Electron](why-electron.md): Electron is a framework enabling developers to build cross-platform desktop applications for macOS, Windows, and Linu...