├── script
├── lib
│ ├── __init__.py
│ ├── electron.gitattributes
│ ├── npm.py
│ └── npx.py
├── codesign
│ ├── .gitignore
│ ├── get-trusted-identity.sh
│ └── codesign.cnf
├── release
│ └── notes
│ │ └── .gitignore
├── native-test-targets.json
├── generate-zip-manifest.py
├── run-if-exists.js
├── start.js
└── start-goma.ps1
├── spec-main
├── fixtures
│ ├── blank.png
│ ├── blank.html
│ ├── api
│ │ ├── context-bridge
│ │ │ ├── empty.html
│ │ │ ├── context-bridge-mutability
│ │ │ │ ├── package.json
│ │ │ │ ├── preload.js
│ │ │ │ └── index.html
│ │ │ └── can-bind-preload.js
│ │ ├── net-log
│ │ │ └── package.json
│ │ ├── test-menu-null
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── test-menu-visibility
│ │ │ └── package.json
│ │ ├── ipc-main-listeners
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── service-workers
│ │ │ ├── sw.js
│ │ │ ├── sw-logs.js
│ │ │ ├── index.html
│ │ │ └── logs.html
│ │ ├── beforeunload-undefined.html
│ │ ├── send-sync-message.html
│ │ ├── beforeunload-empty-string.html
│ │ ├── beforeunload-false.html
│ │ ├── beforeunload-false-prevent3.html
│ │ └── native-window-open-native-addon.html
│ ├── module
│ │ ├── test.coffee
│ │ ├── uv-dlopen.js
│ │ ├── declare-buffer.js
│ │ ├── declare-global.js
│ │ ├── declare-process.js
│ │ ├── echo-renamed.js
│ │ ├── echo.js
│ │ └── print-crash-parameters.js
│ ├── sub-frames
│ │ ├── test.js
│ │ ├── debug-frames.html
│ │ ├── preload.js
│ │ ├── frame.html
│ │ ├── frame-container.html
│ │ ├── frame-with-frame.html
│ │ ├── frame-with-frame-container.html
│ │ ├── frame-with-frame-container-webview.html
│ │ └── frame-container-webview.html
│ ├── devtools-extensions
│ │ ├── bad-manifest
│ │ │ └── manifest.json
│ │ └── foo
│ │ │ ├── devtools.js
│ │ │ ├── foo.html
│ │ │ ├── _locales
│ │ │ └── en
│ │ │ │ └── messages.json
│ │ │ ├── manifest.json
│ │ │ └── index.html
│ ├── native-addon
│ │ ├── uv-dlopen
│ │ │ ├── foo.cpp
│ │ │ ├── package.json
│ │ │ ├── binding.gyp
│ │ │ └── index.js
│ │ └── echo
│ │ │ ├── lib
│ │ │ └── echo.js
│ │ │ ├── package.json
│ │ │ └── binding.gyp
│ ├── extensions
│ │ ├── ui-page
│ │ │ ├── script.js
│ │ │ ├── page-script-load.html
│ │ │ ├── bare-page.html
│ │ │ ├── page-get-background.html
│ │ │ └── manifest.json
│ │ ├── mv3-service-worker
│ │ │ ├── background.js
│ │ │ └── manifest.json
│ │ ├── persistent-background-page
│ │ │ ├── background.js
│ │ │ └── manifest.json
│ │ ├── red-bg
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ │ ├── content-script-document-idle
│ │ │ ├── idle.js
│ │ │ └── manifest.json
│ │ ├── content-script-document-end
│ │ │ ├── end.js
│ │ │ └── manifest.json
│ │ ├── content-script-document-start
│ │ │ ├── start.js
│ │ │ └── manifest.json
│ │ ├── content-script
│ │ │ ├── all_frames-disabled.css
│ │ │ ├── all_frames-enabled.css
│ │ │ ├── frame.html
│ │ │ ├── frame-with-frame.html
│ │ │ └── manifest.json
│ │ ├── lazy-background-page
│ │ │ ├── page-get-background.html
│ │ │ ├── page-runtime-get-background.html
│ │ │ ├── background.js
│ │ │ ├── get-background-page.js
│ │ │ ├── content_script.js
│ │ │ ├── runtime-get-background-page.js
│ │ │ └── manifest.json
│ │ ├── devtools-extension
│ │ │ ├── foo.js
│ │ │ ├── manifest.json
│ │ │ ├── index.html
│ │ │ ├── index.js
│ │ │ └── foo.html
│ │ ├── chrome-i18n
│ │ │ ├── _locales
│ │ │ │ └── en
│ │ │ │ │ └── messages.json
│ │ │ └── manifest.json
│ │ ├── load-error
│ │ │ └── manifest.json
│ │ ├── chrome-webRequest
│ │ │ ├── background.js
│ │ │ └── manifest.json
│ │ ├── chrome-webRequest-wss
│ │ │ ├── manifest.json
│ │ │ └── background.js
│ │ ├── chrome-runtime
│ │ │ ├── background.js
│ │ │ └── manifest.json
│ │ ├── chrome-storage
│ │ │ ├── manifest.json
│ │ │ └── main.js
│ │ └── chrome-api
│ │ │ └── manifest.json
│ ├── cat.pdf
│ ├── apps
│ │ ├── crash
│ │ │ ├── package.json
│ │ │ ├── node-crash.js
│ │ │ └── sandbox-preload.js
│ │ ├── xwindow-icon
│ │ │ ├── package.json
│ │ │ ├── icon.png
│ │ │ └── main.js
│ │ ├── remote-control
│ │ │ └── package.json
│ │ └── libuv-hang
│ │ │ ├── renderer.js
│ │ │ ├── index.html
│ │ │ └── preload.js
│ ├── crash-cases
│ │ ├── setimmediate-renderer-crash
│ │ │ └── preload.js
│ │ ├── webcontents-create-leak-exit
│ │ │ └── index.js
│ │ ├── webcontentsview-create-leak-exit
│ │ │ └── index.js
│ │ ├── early-in-memory-session-create
│ │ │ └── index.js
│ │ ├── in-memory-session-double-free
│ │ │ └── index.js
│ │ ├── webview-attach-destroyed
│ │ │ └── index.js
│ │ ├── transparent-window-get-background-color
│ │ │ └── index.js
│ │ └── quit-on-crashed-event
│ │ │ └── index.js
│ ├── auto-update
│ │ ├── update
│ │ │ └── package.json
│ │ ├── update-json
│ │ │ └── package.json
│ │ ├── check
│ │ │ ├── package.json
│ │ │ └── index.js
│ │ ├── initial
│ │ │ ├── package.json
│ │ │ └── index.js
│ │ └── check-with-headers
│ │ │ └── package.json
│ ├── pages
│ │ ├── pdf-in-iframe.html
│ │ ├── datalist.html
│ │ └── webview-devtools.html
│ └── chromium
│ │ ├── spellchecker.html
│ │ └── other-window.js
├── .gitignore
├── ambient.d.ts
├── .eslintrc
├── api-view-spec.ts
├── types-spec.ts
└── api-power-save-blocker-spec.ts
├── docs
├── fiddles
│ ├── native-ui
│ │ ├── tray
│ │ │ └── .keep
│ │ ├── dialogs
│ │ │ ├── .keep
│ │ │ └── error-dialog
│ │ │ │ └── renderer.js
│ │ ├── drag-and-drop
│ │ │ └── .keep
│ │ ├── notifications
│ │ │ ├── .keep
│ │ │ └── basic-notification
│ │ │ │ └── renderer.js
│ │ └── external-links-file-manager
│ │ │ ├── .keep
│ │ │ ├── path-in-file-manager
│ │ │ └── renderer.js
│ │ │ └── renderer.js
│ ├── media
│ │ └── screenshot
│ │ │ └── .keep
│ ├── menus
│ │ ├── shortcuts
│ │ │ └── .keep
│ │ └── customize-menus
│ │ │ ├── .keep
│ │ │ └── renderer.js
│ ├── system
│ │ ├── clipboard
│ │ │ ├── .keep
│ │ │ ├── paste
│ │ │ │ ├── renderer.js
│ │ │ │ └── main.js
│ │ │ └── copy
│ │ │ │ ├── renderer.js
│ │ │ │ └── main.js
│ │ ├── protocol-handler
│ │ │ └── .keep
│ │ ├── system-app-user-information
│ │ │ ├── .keep
│ │ │ └── app-information
│ │ │ │ └── main.js
│ │ └── system-information
│ │ │ └── get-version-information
│ │ │ └── renderer.js
│ ├── windows
│ │ ├── manage-windows
│ │ │ ├── .keep
│ │ │ ├── frameless-window
│ │ │ │ └── renderer.js
│ │ │ ├── create-frameless-window
│ │ │ │ └── renderer.js
│ │ │ └── new-window
│ │ │ │ └── renderer.js
│ │ └── crashes-and-hangs
│ │ │ └── .keep
│ ├── communication
│ │ └── two-processes
│ │ │ ├── .keep
│ │ │ ├── synchronous-messages
│ │ │ └── renderer.js
│ │ │ └── asynchronous-messages
│ │ │ └── renderer.js
│ ├── features
│ │ ├── macos-dark-mode
│ │ │ ├── styles.css
│ │ │ └── renderer.js
│ │ ├── notifications
│ │ │ ├── renderer
│ │ │ │ └── renderer.js
│ │ │ └── main
│ │ │ │ └── index.html
│ │ ├── online-detection
│ │ │ ├── renderer
│ │ │ │ ├── renderer.js
│ │ │ │ └── main.js
│ │ │ └── main
│ │ │ │ └── renderer.js
│ │ ├── drag-and-drop
│ │ │ └── renderer.js
│ │ ├── keyboard-shortcuts
│ │ │ └── interception-from-main
│ │ │ │ ├── main.js
│ │ │ │ └── index.html
│ │ ├── offscreen-rendering
│ │ │ └── index.html
│ │ ├── macos-dock-menu
│ │ │ └── index.html
│ │ ├── progress-bar
│ │ │ └── index.html
│ │ ├── recent-documents
│ │ │ └── index.html
│ │ └── represented-file
│ │ │ └── index.html
│ └── quick-start
│ │ ├── preload.js
│ │ └── index.html
├── api
│ ├── structures
│ │ ├── size.md
│ │ ├── crash-report.md
│ │ ├── event.md
│ │ ├── extension-info.md
│ │ ├── file-filter.md
│ │ ├── bluetooth-device.md
│ │ ├── memory-usage-details.md
│ │ ├── upload-raw-data.md
│ │ ├── new-window-web-contents-event.md
│ │ ├── web-source.md
│ │ ├── shared-worker-info.md
│ │ ├── protocol-response-upload-data.md
│ │ ├── scrubber-item.md
│ │ ├── file-path-with-headers.md
│ │ ├── protocol-request.md
│ │ ├── mime-typed-buffer.md
│ │ ├── sharing-item.md
│ │ ├── point.md
│ │ ├── segmented-control-segment.md
│ │ ├── upload-data.md
│ │ ├── extension.md
│ │ ├── keyboard-input-event.md
│ │ ├── input-event.md
│ │ ├── certificate-principal.md
│ │ ├── cpu-usage.md
│ │ ├── user-default-types.md
│ │ ├── rectangle.md
│ │ ├── upload-file.md
│ │ ├── ipc-main-invoke-event.md
│ │ ├── service-worker-info.md
│ │ ├── process-memory-info.md
│ │ ├── referrer.md
│ │ ├── io-counters.md
│ │ ├── memory-info.md
│ │ ├── notification-response.md
│ │ ├── mouse-wheel-input-event.md
│ │ ├── mouse-input-event.md
│ │ └── custom-scheme.md
│ └── touch-bar-group.md
├── images
│ ├── dark_mode.gif
│ ├── gatekeeper.png
│ ├── drag-and-drop.gif
│ ├── local-shortcut.png
│ ├── macos-dock-menu.png
│ ├── recent-documents.png
│ ├── represented-file.png
│ ├── dock-progress-bar.png
│ ├── linux-progress-bar.png
│ ├── macos-progress-bar.png
│ ├── notification-main.png
│ ├── versioning-sketch-0.png
│ ├── versioning-sketch-1.png
│ ├── versioning-sketch-2.png
│ ├── versioning-sketch-3.png
│ ├── versioning-sketch-4.png
│ ├── versioning-sketch-5.png
│ ├── versioning-sketch-6.png
│ ├── versioning-sketch-7.png
│ ├── notification-renderer.png
│ ├── performance-cpu-prof.png
│ ├── performance-heap-prof.png
│ ├── simplest-electron-app.png
│ ├── online-event-detection.png
│ ├── message-notification-renderer.png
│ ├── mission-control-progress-bar.png
│ └── subpixel-rendering-screenshot.gif
└── tutorial
│ └── using-pepper-flash-plugin.md
├── spec
├── fixtures
│ ├── pages
│ │ ├── blank.html
│ │ ├── save_page
│ │ │ ├── test.css
│ │ │ ├── test.js
│ │ │ └── index.html
│ │ ├── fullscreen.html
│ │ ├── external-string.html
│ │ ├── base-page.html
│ │ ├── webview-isolated.html
│ │ ├── webview-visibilitychange.html
│ │ ├── theme-color.html
│ │ ├── webview-no-script.html
│ │ ├── webview-zoom-factor.html
│ │ ├── useragent.html
│ │ ├── will-navigate.html
│ │ ├── b.html
│ │ ├── ping.html
│ │ ├── webview-stripped-preload.html
│ │ ├── e.html
│ │ ├── partition
│ │ │ └── one.html
│ │ ├── window-opener-postMessage.html
│ │ ├── permissions
│ │ │ ├── geolocation.html
│ │ │ ├── midi.html
│ │ │ ├── midi-sysex.html
│ │ │ ├── media.html
│ │ │ └── notification.html
│ │ ├── form-with-data.html
│ │ ├── ipc-message.html
│ │ ├── set-global.html
│ │ ├── window-open.html
│ │ ├── window-open-size.html
│ │ ├── base-page-security.html
│ │ ├── storage
│ │ │ ├── cookie.html
│ │ │ ├── local_storage.html
│ │ │ ├── session_storage.html
│ │ │ ├── indexed_db.html
│ │ │ └── web_sql.html
│ │ ├── window-opener-node.html
│ │ ├── cache-storage.html
│ │ ├── webview-did-navigate-in-page-with-hash.html
│ │ ├── window-no-javascript.html
│ │ ├── webview-allowpopups.html
│ │ ├── webview-did-navigate-in-page-with-history.html
│ │ ├── send-after-node.html
│ │ ├── onmouseup.html
│ │ ├── webview-trusted-types.html
│ │ ├── insecure-resources.html
│ │ ├── close.html
│ │ ├── history.html
│ │ ├── onkeyup.html
│ │ ├── native-module.html
│ │ ├── zoom-factor.html
│ │ ├── d.html
│ │ ├── webframe-zoom.html
│ │ ├── window-open-hide.html
│ │ ├── window-opener-location.html
│ │ ├── webview-will-navigate.html
│ │ ├── base-page-security-onload-message.html
│ │ ├── world-safe-preload.js
│ │ ├── post.html
│ │ ├── window-opener.html
│ │ ├── c.html
│ │ ├── dom-ready.html
│ │ ├── window-opener-webview.html
│ │ ├── worker.html
│ │ ├── webview-zoom-inherited.html
│ │ ├── geolocation
│ │ │ └── index.html
│ │ ├── history-replace.html
│ │ ├── webview-did-navigate-in-page.html
│ │ ├── beforeunload-false.html
│ │ ├── media-id-reset.html
│ │ ├── service-worker
│ │ │ └── service-worker.js
│ │ ├── target-name.html
│ │ ├── world-safe-preload-error.js
│ │ ├── a.html
│ │ ├── webview-opener-no-node-integration.html
│ │ ├── video.html
│ │ ├── shared_worker.html
│ │ ├── webframe-spell-check.html
│ │ ├── window-open-postMessage-driver.html
│ │ ├── key-events.html
│ │ ├── visibilitychange.html
│ │ ├── window-open-postMessage.html
│ │ ├── webview-did-attach-event.html
│ │ ├── window-opener-no-node-integration.html
│ │ ├── window-opener-no-webview-tag.html
│ │ └── webview-opener-postMessage.html
│ ├── test.asar
│ │ ├── file
│ │ ├── unpack.asar.unpacked
│ │ │ ├── a.txt
│ │ │ └── atom.png
│ │ ├── empty.asar
│ │ ├── echo.asar
│ │ ├── logo.asar
│ │ ├── video.asar
│ │ ├── unpack.asar
│ │ ├── web.asar
│ │ └── script.asar
│ ├── module
│ │ ├── noop.js
│ │ ├── preload-set-global.js
│ │ ├── process-stdout.js
│ │ ├── set-global-preload-1.js
│ │ ├── set-global.js
│ │ ├── preload-error-exception.js
│ │ ├── preload-error-syntax.js
│ │ ├── set-global-preload-2.js
│ │ ├── set-global-preload-3.js
│ │ ├── isolated-ping.js
│ │ ├── hello.js
│ │ ├── ping.js
│ │ ├── preload-node-off-wrapper.js
│ │ ├── original-fs.js
│ │ ├── get-global-preload.js
│ │ ├── process_args.js
│ │ ├── hello-child.js
│ │ ├── asar.js
│ │ ├── check-arguments.js
│ │ ├── create_socket.js
│ │ ├── delay-exit.js
│ │ ├── preload-webview.js
│ │ ├── run-as-node.js
│ │ ├── preload-sandboxæø åü.js
│ │ ├── empty.js
│ │ ├── preload-ipc.js
│ │ ├── send-later.js
│ │ ├── preload-pdf-loaded.js
│ │ ├── preload.js
│ │ ├── locale-compare.js
│ │ ├── preload-context.js
│ │ ├── set-immediate.js
│ │ ├── preload-ipc-ping-pong.js
│ │ ├── preload-required-module.js
│ │ ├── preload-node-off.js
│ │ ├── no-asar.js
│ │ ├── preload-pdf-loaded-in-subframe.js
│ │ ├── access-blink-apis.js
│ │ └── fork_ping.js
│ ├── api
│ │ ├── electron-module-app
│ │ │ ├── .gitignore
│ │ │ ├── node_modules
│ │ │ │ ├── electron
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ │ └── foo
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ └── index.html
│ │ ├── loaded-from-dataurl.js
│ │ ├── native-window-open-child.html
│ │ ├── electron-main-module
│ │ │ ├── app
│ │ │ │ ├── node_modules
│ │ │ │ │ └── some-module
│ │ │ │ │ │ ├── main2.js
│ │ │ │ │ │ └── package.json
│ │ │ │ └── index.js
│ │ │ └── app.asar
│ │ ├── quit-app
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── cookie-app
│ │ │ └── package.json
│ │ ├── app-path
│ │ │ ├── package.json
│ │ │ └── lib
│ │ │ │ └── index.js
│ │ ├── command-line
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── default-menu
│ │ │ └── package.json
│ │ ├── relaunch
│ │ │ └── package.json
│ │ ├── singleton
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── locale-check
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── blank.html
│ │ ├── did-fail-load-iframe.html
│ │ ├── mixed-sandbox-app
│ │ │ ├── package.json
│ │ │ └── electron-app-mixed-sandbox-preload.js
│ │ ├── window-all-closed
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── new-window-webview-preload.js
│ │ ├── exit-closes-all-windows-app
│ │ │ ├── package.json
│ │ │ └── main.js
│ │ ├── shared-worker
│ │ │ ├── shared-worker1.js
│ │ │ └── shared-worker2.js
│ │ ├── isolated-process.js
│ │ ├── localstorage.html
│ │ ├── native-window-open-isolated-preload.js
│ │ ├── window-open-location-final.html
│ │ ├── new-window-preload.js
│ │ ├── native-window-open-argv.html
│ │ ├── isolated-fetch-preload.js
│ │ ├── native-window-open-iframe.html
│ │ ├── window-open-location-open.html
│ │ ├── unload.html
│ │ ├── globals.html
│ │ ├── close.html
│ │ ├── native-window-open-no-allowpopups.html
│ │ ├── new-window.html
│ │ ├── native-window-open-isolated.html
│ │ ├── window-open-location-change.html
│ │ ├── frame-subscriber.html
│ │ ├── offscreen-rendering.html
│ │ ├── preload.html
│ │ ├── native-window-open-file.html
│ │ ├── no-leak.html
│ │ ├── native-window-open-blank.html
│ │ └── new-window-webview.html
│ ├── zip
│ │ └── a.zip
│ ├── assets
│ │ ├── LICENSE
│ │ ├── 1x1.png
│ │ ├── 2x2.jpg
│ │ ├── 3x3.png
│ │ ├── icon.ico
│ │ ├── logo.png
│ │ ├── tone.wav
│ │ ├── shortcut.lnk
│ │ └── logo_Template.png
│ ├── workers
│ │ ├── worker.js
│ │ ├── worker_node.js
│ │ ├── shared_worker.js
│ │ └── shared_worker_node.js
│ ├── certificates
│ │ └── client.p12
│ ├── video-source-image.webp
│ ├── snapshot-items-available
│ │ └── package.json
│ └── testsnap.js
├── configs
│ └── browsertests.yml
├── spec-helpers.js
├── .eslintrc
├── static
│ └── get-files.js
├── expect-helpers.js
└── ts-smoke
│ └── tsconfig.json
├── .dockerignore
├── ELECTRON_VERSION
├── patches
├── nan
│ └── .patches
├── Mantle
│ └── .patches
├── depot_tools
│ └── .patches
├── README.md
├── ReactiveObjC
│ └── .patches
├── boringssl
│ └── .patches
├── squirrel.mac
│ └── .patches
└── v8
│ └── .patches
├── default_app
├── icon.png
└── package.json
├── .github
└── semantic.yml
├── lib
├── asar
│ └── init.ts
├── browser
│ ├── api
│ │ ├── content-tracing.ts
│ │ ├── tray.ts
│ │ ├── view.ts
│ │ ├── browser-view.ts
│ │ ├── native-image.ts
│ │ ├── native-theme.ts
│ │ ├── global-shortcut.ts
│ │ ├── auto-updater
│ │ │ └── auto-updater-native.ts
│ │ ├── power-save-blocker.ts
│ │ ├── auto-updater.ts
│ │ ├── session.ts
│ │ ├── desktop-capturer.ts
│ │ ├── views
│ │ │ └── image-view.ts
│ │ ├── notification.ts
│ │ ├── ipc-main.ts
│ │ ├── web-contents-view.ts
│ │ ├── exports
│ │ │ └── electron.ts
│ │ ├── message-channel.ts
│ │ └── share-menu.ts
│ ├── ipc-main-internal.ts
│ └── .eslintrc.json
├── common
│ ├── api
│ │ ├── shell.ts
│ │ └── module-list.ts
│ └── webpack-globals-provider.ts
├── renderer
│ └── api
│ │ ├── web-frame.ts
│ │ ├── exports
│ │ └── electron.ts
│ │ └── crash-reporter.ts
├── sandboxed_renderer
│ └── api
│ │ └── exports
│ │ └── electron.ts
└── isolated_renderer
│ └── init.ts
├── .markdownlint.autofix.json
├── .remarkrc
├── shell
├── browser
│ ├── resources
│ │ ├── win
│ │ │ ├── electron.ico
│ │ │ ├── resource.h
│ │ │ └── dpi_aware.manifest
│ │ └── mac
│ │ │ └── electron.icns
│ ├── feature_list.h
│ ├── extensions
│ │ └── electron_display_info_provider.cc
│ ├── ui
│ │ ├── tray_icon_win.cc
│ │ ├── run_all_unittests.cc
│ │ └── inspectable_web_contents_view_delegate.cc
│ ├── child_web_contents_tracker.cc
│ └── font_defaults.h
├── app
│ ├── BRANDING.json
│ ├── electron_main.h
│ ├── node_main.h
│ ├── command_line_args.h
│ ├── electron_main_delegate_mac.h
│ └── resources
│ │ └── mac
│ │ └── loginhelper-Info.plist
├── common
│ ├── extensions
│ │ └── api
│ │ │ └── _permission_features.json
│ ├── gin_helper
│ │ └── locker.cc
│ ├── heap_snapshot.h
│ └── language_util_linux.cc
└── renderer
│ └── resources
│ └── mac
│ └── Info.plist
├── .env.example
├── tsconfig.electron.json
├── tsconfig.spec.json
├── tsconfig.default_app.json
├── tsconfig.script.json
├── npm
└── package.json
├── vsts-arm32v7.yml
├── vsts-arm64v8.yml
├── .gitattributes
└── tsconfig.json
/script/lib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec-main/fixtures/blank.png:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/native-ui/tray/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec-main/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/spec-main/fixtures/blank.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/blank.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/media/screenshot/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/menus/shortcuts/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/native-ui/dialogs/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/system/clipboard/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/script/codesign/.gitignore:
--------------------------------------------------------------------------------
1 | .working
--------------------------------------------------------------------------------
/script/release/notes/.gitignore:
--------------------------------------------------------------------------------
1 | .cache
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/file:
--------------------------------------------------------------------------------
1 | file
2 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | *
2 | !tools/xvfb-init.sh
3 |
--------------------------------------------------------------------------------
/ELECTRON_VERSION:
--------------------------------------------------------------------------------
1 | 14.0.0-nightly.20210426
--------------------------------------------------------------------------------
/docs/fiddles/menus/customize-menus/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/native-ui/drag-and-drop/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/native-ui/notifications/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/system/protocol-handler/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/windows/manage-windows/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/communication/two-processes/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/windows/crashes-and-hangs/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/fiddles/system/system-app-user-information/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/fixtures/module/noop.js:
--------------------------------------------------------------------------------
1 | process.exit(0);
2 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/save_page/test.css:
--------------------------------------------------------------------------------
1 | h1 { }
2 |
--------------------------------------------------------------------------------
/docs/fiddles/native-ui/external-links-file-manager/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/patches/nan/.patches:
--------------------------------------------------------------------------------
1 | api_simplify_scriptorigin.patch
2 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/fullscreen.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/save_page/test.js:
--------------------------------------------------------------------------------
1 | // do nothing
2 |
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/unpack.asar.unpacked/a.txt:
--------------------------------------------------------------------------------
1 | a
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/context-bridge/empty.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/test.coffee:
--------------------------------------------------------------------------------
1 | module.exports = yes
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/sub-frames/test.js:
--------------------------------------------------------------------------------
1 | console.log('hello');
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-module-app/.gitignore:
--------------------------------------------------------------------------------
1 | !node_modules
--------------------------------------------------------------------------------
/patches/Mantle/.patches:
--------------------------------------------------------------------------------
1 | remove_mtlmanagedobjectadapter_h.patch
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/uv-dlopen.js:
--------------------------------------------------------------------------------
1 | require('uv-dlopen');
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-module-app/node_modules/electron/index.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/fixtures/api/loaded-from-dataurl.js:
--------------------------------------------------------------------------------
1 | window.ping = 'pong';
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/native-window-open-child.html:
--------------------------------------------------------------------------------
1 |
Hello
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-set-global.js:
--------------------------------------------------------------------------------
1 | window.foo = 'bar';
2 |
--------------------------------------------------------------------------------
/script/lib/electron.gitattributes:
--------------------------------------------------------------------------------
1 | *.mm diff=objc
2 | *.m diff=objc
3 |
--------------------------------------------------------------------------------
/script/native-test-targets.json:
--------------------------------------------------------------------------------
1 | [
2 | "shell_browser_ui_unittests"
3 | ]
--------------------------------------------------------------------------------
/spec-main/fixtures/devtools-extensions/bad-manifest/manifest.json:
--------------------------------------------------------------------------------
1 | }
2 |
--------------------------------------------------------------------------------
/spec/configs/browsertests.yml:
--------------------------------------------------------------------------------
1 | tests:
2 | - content_browsertests
3 |
--------------------------------------------------------------------------------
/spec-main/fixtures/native-addon/uv-dlopen/foo.cpp:
--------------------------------------------------------------------------------
1 | extern "C"
2 | void foo() { }
--------------------------------------------------------------------------------
/spec/fixtures/pages/external-string.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/patches/depot_tools/.patches:
--------------------------------------------------------------------------------
1 | remove_some_deps_that_do_not_work_on_arm64.patch
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/process-stdout.js:
--------------------------------------------------------------------------------
1 | process.stdout.write('pipes stdio');
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/set-global-preload-1.js:
--------------------------------------------------------------------------------
1 | window.preload1 = 'preload-1';
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/set-global.js:
--------------------------------------------------------------------------------
1 | if (!window.test) window.test = 'preload';
2 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/base-page.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/patches/README.md:
--------------------------------------------------------------------------------
1 | See [/docs/development/patches.md](/docs/development/patches.md).
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/ui-page/script.js:
--------------------------------------------------------------------------------
1 | document.write('script loaded ok');
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-error-exception.js:
--------------------------------------------------------------------------------
1 | throw new Error('Hello World!');
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-error-syntax.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line
2 | foobar
3 |
--------------------------------------------------------------------------------
/docs/api/structures/size.md:
--------------------------------------------------------------------------------
1 | # Size Object
2 |
3 | * `width` Number
4 | * `height` Number
5 |
--------------------------------------------------------------------------------
/spec/fixtures/module/set-global-preload-2.js:
--------------------------------------------------------------------------------
1 | window.preload2 = window.preload1 + '-2';
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/set-global-preload-3.js:
--------------------------------------------------------------------------------
1 | window.preload3 = window.preload2 + '-3';
2 |
--------------------------------------------------------------------------------
/default_app/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/default_app/icon.png
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/ui-page/page-script-load.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-module-app/node_modules/foo/index.js:
--------------------------------------------------------------------------------
1 | exports.bar = function () {};
2 |
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/empty.asar:
--------------------------------------------------------------------------------
1 | 4 0 + {"files":{"file1":{"size":0,"offset":"0"}}}
--------------------------------------------------------------------------------
/.github/semantic.yml:
--------------------------------------------------------------------------------
1 | # Always validate the PR title, and ignore the commits
2 | titleOnly: true
3 |
--------------------------------------------------------------------------------
/docs/api/structures/crash-report.md:
--------------------------------------------------------------------------------
1 | # CrashReport Object
2 |
3 | * `date` Date
4 | * `id` String
5 |
--------------------------------------------------------------------------------
/patches/ReactiveObjC/.patches:
--------------------------------------------------------------------------------
1 | build_conditionally_import_ext_headers_from_framework_or_from.patch
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-main-module/app/node_modules/some-module/main2.js:
--------------------------------------------------------------------------------
1 | // Nothing to do here
2 |
--------------------------------------------------------------------------------
/docs/images/dark_mode.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/dark_mode.gif
--------------------------------------------------------------------------------
/lib/asar/init.ts:
--------------------------------------------------------------------------------
1 | import { wrapFsWithAsar } from './fs-wrapper';
2 |
3 | wrapFsWithAsar(require('fs'));
4 |
--------------------------------------------------------------------------------
/patches/boringssl/.patches:
--------------------------------------------------------------------------------
1 | expose_ripemd160.patch
2 | expose_aes-cfb.patch
3 | expose_des-ede3.patch
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/mv3-service-worker/background.js:
--------------------------------------------------------------------------------
1 | console.log('service worker installed');
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/persistent-background-page/background.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-undef */
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/red-bg/main.js:
--------------------------------------------------------------------------------
1 | document.documentElement.style.backgroundColor = 'red';
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/ui-page/bare-page.html:
--------------------------------------------------------------------------------
1 |
2 | ui page loaded ok
3 |
--------------------------------------------------------------------------------
/spec/fixtures/zip/a.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/zip/a.zip
--------------------------------------------------------------------------------
/docs/api/structures/event.md:
--------------------------------------------------------------------------------
1 | # Event Object extends `GlobalEvent`
2 |
3 | * `preventDefault` VoidFunction
4 |
--------------------------------------------------------------------------------
/docs/api/structures/extension-info.md:
--------------------------------------------------------------------------------
1 | # ExtensionInfo Object
2 |
3 | * `name` String
4 | * `version` String
5 |
--------------------------------------------------------------------------------
/docs/api/structures/file-filter.md:
--------------------------------------------------------------------------------
1 | # FileFilter Object
2 |
3 | * `name` String
4 | * `extensions` String[]
5 |
--------------------------------------------------------------------------------
/docs/images/gatekeeper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/gatekeeper.png
--------------------------------------------------------------------------------
/lib/browser/api/content-tracing.ts:
--------------------------------------------------------------------------------
1 | export default process._linkedBinding('electron_browser_content_tracing');
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/cat.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec-main/fixtures/cat.pdf
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/ui-page/page-get-background.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/declare-buffer.js:
--------------------------------------------------------------------------------
1 | const Buffer = 'declared Buffer';
2 | module.exports = Buffer;
3 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/declare-global.js:
--------------------------------------------------------------------------------
1 | const global = 'declared global';
2 | module.exports = global;
3 |
--------------------------------------------------------------------------------
/spec/fixtures/api/quit-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-quit-app",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/assets/LICENSE:
--------------------------------------------------------------------------------
1 | tone.wav
2 | http://soundbible.com/1815-A-Tone.html
3 | License: Public Domain
4 |
--------------------------------------------------------------------------------
/spec/fixtures/workers/worker.js:
--------------------------------------------------------------------------------
1 | this.onmessage = function (msg) {
2 | this.postMessage(msg.data);
3 | };
4 |
--------------------------------------------------------------------------------
/docs/images/drag-and-drop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/drag-and-drop.gif
--------------------------------------------------------------------------------
/docs/images/local-shortcut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/local-shortcut.png
--------------------------------------------------------------------------------
/spec-main/fixtures/api/net-log/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-net-log",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/apps/crash/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-crash",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/content-script-document-idle/idle.js:
--------------------------------------------------------------------------------
1 | document.body.style.backgroundColor = 'red';
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/declare-process.js:
--------------------------------------------------------------------------------
1 | const process = 'declared process';
2 | module.exports = process;
3 |
--------------------------------------------------------------------------------
/spec-main/fixtures/native-addon/echo/lib/echo.js:
--------------------------------------------------------------------------------
1 | module.exports = require('../build/Release/echo.node').Print;
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/cookie-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-cookie-app",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/assets/1x1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/1x1.png
--------------------------------------------------------------------------------
/spec/fixtures/assets/2x2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/2x2.jpg
--------------------------------------------------------------------------------
/spec/fixtures/assets/3x3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/3x3.png
--------------------------------------------------------------------------------
/spec/fixtures/assets/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/icon.ico
--------------------------------------------------------------------------------
/spec/fixtures/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/logo.png
--------------------------------------------------------------------------------
/spec/fixtures/assets/tone.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/tone.wav
--------------------------------------------------------------------------------
/spec/fixtures/module/isolated-ping.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 | ipcRenderer.send('pong');
3 |
--------------------------------------------------------------------------------
/.markdownlint.autofix.json:
--------------------------------------------------------------------------------
1 | {
2 | "default": false,
3 | "no-trailing-spaces": {
4 | "br_spaces": 0
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/default_app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron",
3 | "productName": "Electron",
4 | "main": "main.js"
5 | }
6 |
--------------------------------------------------------------------------------
/docs/api/structures/bluetooth-device.md:
--------------------------------------------------------------------------------
1 | # BluetoothDevice Object
2 |
3 | * `deviceName` String
4 | * `deviceId` String
5 |
--------------------------------------------------------------------------------
/docs/images/macos-dock-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/macos-dock-menu.png
--------------------------------------------------------------------------------
/docs/images/recent-documents.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/recent-documents.png
--------------------------------------------------------------------------------
/docs/images/represented-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/represented-file.png
--------------------------------------------------------------------------------
/lib/browser/api/tray.ts:
--------------------------------------------------------------------------------
1 | const { Tray } = process._linkedBinding('electron_browser_tray');
2 |
3 | export default Tray;
4 |
--------------------------------------------------------------------------------
/lib/browser/api/view.ts:
--------------------------------------------------------------------------------
1 | const { View } = process._linkedBinding('electron_browser_view');
2 |
3 | export default View;
4 |
--------------------------------------------------------------------------------
/lib/common/api/shell.ts:
--------------------------------------------------------------------------------
1 | const shell = process._linkedBinding('electron_common_shell');
2 |
3 | export default shell;
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/test-menu-null/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-menu",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/app-path/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-app-path",
3 | "main": "lib/index.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/command-line/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-command-line",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/default-menu/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-default-menu",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/relaunch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-app-relaunch",
3 | "main": "main.js"
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/api/singleton/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-app-singleton",
3 | "main": "main.js"
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/docs/images/dock-progress-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/dock-progress-bar.png
--------------------------------------------------------------------------------
/docs/images/linux-progress-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/linux-progress-bar.png
--------------------------------------------------------------------------------
/docs/images/macos-progress-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/macos-progress-bar.png
--------------------------------------------------------------------------------
/docs/images/notification-main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/notification-main.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-0.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-1.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-2.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-3.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-4.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-5.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-6.png
--------------------------------------------------------------------------------
/docs/images/versioning-sketch-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/versioning-sketch-7.png
--------------------------------------------------------------------------------
/spec-main/fixtures/api/test-menu-visibility/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-menu",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/apps/xwindow-icon/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-xwindow-icon",
3 | "main": "main.js"
4 | }
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/content-script-document-end/end.js:
--------------------------------------------------------------------------------
1 | document.documentElement.style.backgroundColor = 'red';
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/content-script-document-start/start.js:
--------------------------------------------------------------------------------
1 | document.documentElement.style.backgroundColor = 'red';
2 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/content-script/all_frames-disabled.css:
--------------------------------------------------------------------------------
1 | #all_frames_disabled {
2 | background: blue;
3 | }
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/content-script/all_frames-enabled.css:
--------------------------------------------------------------------------------
1 | #all_frames_enabled {
2 | background: red;
3 | }
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/lazy-background-page/page-get-background.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-module-app/node_modules/foo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "foo",
3 | "main": "index.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/locale-check/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-locale-check",
3 | "main": "main.js"
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/assets/shortcut.lnk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/shortcut.lnk
--------------------------------------------------------------------------------
/spec/fixtures/module/hello.js:
--------------------------------------------------------------------------------
1 | class Hello {
2 | say () {
3 | return 'hi';
4 | }
5 | }
6 | module.exports = Hello;
7 |
--------------------------------------------------------------------------------
/spec/fixtures/module/ping.js:
--------------------------------------------------------------------------------
1 | process.on('message', function (msg) {
2 | process.send(msg);
3 | process.exit(0);
4 | });
5 |
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/echo.asar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/test.asar/echo.asar
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/logo.asar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/test.asar/logo.asar
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/video.asar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/test.asar/video.asar
--------------------------------------------------------------------------------
/docs/images/notification-renderer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/notification-renderer.png
--------------------------------------------------------------------------------
/docs/images/performance-cpu-prof.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/performance-cpu-prof.png
--------------------------------------------------------------------------------
/docs/images/performance-heap-prof.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/performance-heap-prof.png
--------------------------------------------------------------------------------
/docs/images/simplest-electron-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/simplest-electron-app.png
--------------------------------------------------------------------------------
/spec-main/fixtures/apps/remote-control/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-remote-control",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/blank.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/api/did-fail-load-iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/api/mixed-sandbox-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-app-mixed-sandbox",
3 | "main": "main.js"
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/api/window-all-closed/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-window-all-closed",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/certificates/client.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/certificates/client.p12
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-node-off-wrapper.js:
--------------------------------------------------------------------------------
1 | setImmediate(function () {
2 | require('./preload-required-module');
3 | });
4 |
--------------------------------------------------------------------------------
/spec/fixtures/video-source-image.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/video-source-image.webp
--------------------------------------------------------------------------------
/.remarkrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | ["remark-lint-code-block-style", "fenced"],
4 | ["remark-lint-fenced-code-flag"]
5 | ]
6 | }
--------------------------------------------------------------------------------
/docs/images/online-event-detection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/online-event-detection.png
--------------------------------------------------------------------------------
/patches/squirrel.mac/.patches:
--------------------------------------------------------------------------------
1 | build_add_gn_config.patch
2 | fix_ensure_that_self_is_retained_until_the_racsignal_is_complete.patch
3 |
--------------------------------------------------------------------------------
/shell/browser/resources/win/electron.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/shell/browser/resources/win/electron.ico
--------------------------------------------------------------------------------
/spec-main/fixtures/crash-cases/setimmediate-renderer-crash/preload.js:
--------------------------------------------------------------------------------
1 | setImmediate(() => {
2 | throw new Error('oh no');
3 | });
4 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-module-app/node_modules/electron/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron",
3 | "main": "index.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/mixed-sandbox-app/electron-app-mixed-sandbox-preload.js:
--------------------------------------------------------------------------------
1 | require('electron').ipcRenderer.send('argv', process.argv);
2 |
--------------------------------------------------------------------------------
/spec/fixtures/assets/logo_Template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/assets/logo_Template.png
--------------------------------------------------------------------------------
/spec/fixtures/module/original-fs.js:
--------------------------------------------------------------------------------
1 | process.on('message', function () {
2 | process.send(typeof require('original-fs'));
3 | });
4 |
--------------------------------------------------------------------------------
/spec/fixtures/workers/worker_node.js:
--------------------------------------------------------------------------------
1 | self.postMessage([typeof process, typeof setImmediate, typeof global, typeof Buffer].join(' '));
2 |
--------------------------------------------------------------------------------
/shell/browser/resources/mac/electron.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/shell/browser/resources/mac/electron.icns
--------------------------------------------------------------------------------
/spec-main/fixtures/api/ipc-main-listeners/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-ipc-main-listeners",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/service-workers/sw.js:
--------------------------------------------------------------------------------
1 | self.addEventListener('install', function (event) {
2 | console.log('Installed');
3 | });
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/auto-update/update/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "initial-app",
3 | "version": "1.0.0",
4 | "main": "./index.js"
5 | }
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/lazy-background-page/page-runtime-get-background.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-main-module/app/node_modules/some-module/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "some-module",
3 | "main": "./main2.js"
4 | }
--------------------------------------------------------------------------------
/spec/fixtures/api/new-window-webview-preload.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | window.ipcRenderer = ipcRenderer;
4 |
--------------------------------------------------------------------------------
/spec/fixtures/module/get-global-preload.js:
--------------------------------------------------------------------------------
1 | require('electron').ipcRenderer.send('vars', window.preload1, window.preload2, window.preload3);
2 |
--------------------------------------------------------------------------------
/spec/fixtures/module/process_args.js:
--------------------------------------------------------------------------------
1 | process.on('message', function () {
2 | process.send(process.argv);
3 | process.exit(0);
4 | });
5 |
--------------------------------------------------------------------------------
/spec/fixtures/snapshot-items-available/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-snapshot-items-available",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/unpack.asar:
--------------------------------------------------------------------------------
1 | d ` Y {"files":{"a.txt":{"size":2,"unpacked":true},"atom.png":{"size":643183,"unpacked":true}}}
--------------------------------------------------------------------------------
/docs/api/structures/memory-usage-details.md:
--------------------------------------------------------------------------------
1 | # MemoryUsageDetails Object
2 |
3 | * `count` Number
4 | * `size` Number
5 | * `liveSize` Number
6 |
--------------------------------------------------------------------------------
/docs/images/message-notification-renderer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/message-notification-renderer.png
--------------------------------------------------------------------------------
/docs/images/mission-control-progress-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/mission-control-progress-bar.png
--------------------------------------------------------------------------------
/docs/images/subpixel-rendering-screenshot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/docs/images/subpixel-rendering-screenshot.gif
--------------------------------------------------------------------------------
/lib/renderer/api/web-frame.ts:
--------------------------------------------------------------------------------
1 | const { mainFrame } = process._linkedBinding('electron_renderer_web_frame');
2 |
3 | export default mainFrame;
4 |
--------------------------------------------------------------------------------
/shell/app/BRANDING.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_name": "electron",
3 | "product_name": "Electron",
4 | "mac_bundle_id": "com.github.Electron"
5 | }
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/apps/xwindow-icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec-main/fixtures/apps/xwindow-icon/icon.png
--------------------------------------------------------------------------------
/spec-main/fixtures/auto-update/update-json/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "initial-app",
3 | "version": "1.0.0",
4 | "main": "./index.js"
5 | }
--------------------------------------------------------------------------------
/spec-main/fixtures/devtools-extensions/foo/devtools.js:
--------------------------------------------------------------------------------
1 | /* global chrome */
2 | chrome.devtools.panels.create('Foo', 'foo.png', 'index.html');
3 |
--------------------------------------------------------------------------------
/spec-main/fixtures/native-addon/echo/package.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "main": "./lib/echo.js",
4 | "name": "echo",
5 | "version": "0.0.1"
6 | }
7 |
--------------------------------------------------------------------------------
/spec-main/fixtures/native-addon/uv-dlopen/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "uv-dlopen",
3 | "version": "0.0.1",
4 | "main": "index.js"
5 | }
6 |
--------------------------------------------------------------------------------
/spec/fixtures/api/exit-closes-all-windows-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-exit-closes-all-windows",
3 | "main": "main.js"
4 | }
5 |
--------------------------------------------------------------------------------
/spec/fixtures/module/hello-child.js:
--------------------------------------------------------------------------------
1 | class Hello {
2 | say () {
3 | return 'hi child window';
4 | }
5 | }
6 | module.exports = Hello;
7 |
--------------------------------------------------------------------------------
/docs/api/structures/upload-raw-data.md:
--------------------------------------------------------------------------------
1 | # UploadRawData Object
2 |
3 | * `type` 'rawData' - `rawData`.
4 | * `bytes` Buffer - Data to be uploaded.
5 |
--------------------------------------------------------------------------------
/lib/browser/api/browser-view.ts:
--------------------------------------------------------------------------------
1 | const { BrowserView } = process._linkedBinding('electron_browser_browser_view');
2 |
3 | export default BrowserView;
4 |
--------------------------------------------------------------------------------
/lib/browser/api/native-image.ts:
--------------------------------------------------------------------------------
1 | const { nativeImage } = process._linkedBinding('electron_common_native_image');
2 |
3 | export default nativeImage;
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/auto-update/check/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-initial-app",
3 | "version": "1.0.0",
4 | "main": "./index.js"
5 | }
--------------------------------------------------------------------------------
/spec-main/fixtures/pages/pdf-in-iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-main-module/app.asar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/api/electron-main-module/app.asar
--------------------------------------------------------------------------------
/docs/api/structures/new-window-web-contents-event.md:
--------------------------------------------------------------------------------
1 | # NewWindowWebContentsEvent Object extends `Event`
2 |
3 | * `newGuest` BrowserWindow (optional)
4 |
--------------------------------------------------------------------------------
/lib/browser/api/native-theme.ts:
--------------------------------------------------------------------------------
1 | const { nativeTheme } = process._linkedBinding('electron_common_native_theme');
2 |
3 | module.exports = nativeTheme;
4 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/context-bridge/context-bridge-mutability/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "context-bridge-mutability",
3 | "main": "main.js"
4 | }
--------------------------------------------------------------------------------
/spec-main/fixtures/auto-update/initial/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-initial-app",
3 | "version": "1.0.0",
4 | "main": "./index.js"
5 | }
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/devtools-extension/foo.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line
2 | chrome.devtools.panels.create('Foo', 'icon.png', 'index.html')
3 |
--------------------------------------------------------------------------------
/spec/fixtures/api/shared-worker/shared-worker1.js:
--------------------------------------------------------------------------------
1 | self.onconnect = function (e) {
2 | const port = e.ports[0];
3 | port.postMessage('ready');
4 | };
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/shared-worker/shared-worker2.js:
--------------------------------------------------------------------------------
1 | self.onconnect = function (e) {
2 | const port = e.ports[0];
3 | port.postMessage('ready');
4 | };
5 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/webview-isolated.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/webview-visibilitychange.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib/browser/api/global-shortcut.ts:
--------------------------------------------------------------------------------
1 | const { globalShortcut } = process._linkedBinding('electron_browser_global_shortcut');
2 | export default globalShortcut;
3 |
--------------------------------------------------------------------------------
/spec/fixtures/api/isolated-process.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | ipcRenderer.send('context-isolation', process.contextIsolated);
4 |
--------------------------------------------------------------------------------
/docs/api/structures/web-source.md:
--------------------------------------------------------------------------------
1 | # WebSource Object
2 |
3 | * `code` String
4 | * `url` String (optional)
5 | * `startLine` Integer (optional) - Default is 1.
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/auto-update/check-with-headers/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "electron-test-initial-app",
3 | "version": "1.0.0",
4 | "main": "./index.js"
5 | }
--------------------------------------------------------------------------------
/spec/fixtures/module/asar.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | process.on('message', function (file) {
3 | process.send(fs.readFileSync(file).toString());
4 | });
5 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/theme-color.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/unpack.asar.unpacked/atom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/postmanlabs/electron/master/spec/fixtures/test.asar/unpack.asar.unpacked/atom.png
--------------------------------------------------------------------------------
/lib/browser/api/auto-updater/auto-updater-native.ts:
--------------------------------------------------------------------------------
1 | const { autoUpdater } = process._linkedBinding('electron_browser_auto_updater');
2 |
3 | export default autoUpdater;
4 |
--------------------------------------------------------------------------------
/lib/browser/api/power-save-blocker.ts:
--------------------------------------------------------------------------------
1 | const { powerSaveBlocker } = process._linkedBinding('electron_browser_power_save_blocker');
2 | export default powerSaveBlocker;
3 |
--------------------------------------------------------------------------------
/spec-main/fixtures/chromium/spellchecker.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/echo-renamed.js:
--------------------------------------------------------------------------------
1 | let echo;
2 | try {
3 | echo = require('echo');
4 | } catch (e) {
5 | process.exit(1);
6 | }
7 | process.exit(echo(0));
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/webview-no-script.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/ui-page/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui-page",
3 | "version": "1.0",
4 | "manifest_version": 2,
5 | "permissions": [""]
6 | }
7 |
--------------------------------------------------------------------------------
/spec/fixtures/module/check-arguments.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 | window.onload = function () {
3 | ipcRenderer.send('answer', process.argv);
4 | };
5 |
--------------------------------------------------------------------------------
/docs/api/structures/shared-worker-info.md:
--------------------------------------------------------------------------------
1 | # SharedWorkerInfo Object
2 |
3 | * `id` String - The unique id of the shared worker.
4 | * `url` String - The url of the shared worker.
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/devtools-extension/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "foo",
3 | "version": "1.0",
4 | "devtools_page": "foo.html",
5 | "manifest_version": 2
6 | }
7 |
--------------------------------------------------------------------------------
/spec/fixtures/module/create_socket.js:
--------------------------------------------------------------------------------
1 | const net = require('net');
2 | const server = net.createServer(function () {});
3 | server.listen(process.argv[2]);
4 | process.exit(0);
5 |
--------------------------------------------------------------------------------
/spec/fixtures/module/delay-exit.js:
--------------------------------------------------------------------------------
1 | const { app } = require('electron');
2 |
3 | process.on('message', () => {
4 | console.log('Notified to quit');
5 | app.quit();
6 | });
7 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/webview-zoom-factor.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/chrome-i18n/_locales/en/messages.json:
--------------------------------------------------------------------------------
1 | {
2 | "extName": {
3 | "message": "chrome-i18n",
4 | "description": "Extension name."
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-webview.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | window.onload = function () {
4 | ipcRenderer.send('webview', typeof WebView);
5 | };
6 |
--------------------------------------------------------------------------------
/spec/fixtures/module/run-as-node.js:
--------------------------------------------------------------------------------
1 | console.log(JSON.stringify({
2 | stdoutType: process.stdout._type,
3 | processType: typeof process.type,
4 | window: typeof window
5 | }));
6 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/useragent.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/will-navigate.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/api/electron-main-module/app/index.js:
--------------------------------------------------------------------------------
1 | try {
2 | require('some-module');
3 | } catch (err) {
4 | console.error(err);
5 | process.exit(1);
6 | }
7 |
8 | process.exit(0);
9 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-sandboxæø åü.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | window.require = require;
3 | if (location.protocol === 'file:') {
4 | window.test = 'preload';
5 | }
6 | })();
7 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/b.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/ping.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/save_page/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/echo.js:
--------------------------------------------------------------------------------
1 | process.on('uncaughtException', function (err) {
2 | process.send(err.message);
3 | });
4 |
5 | const echo = require('echo');
6 | process.send(echo('ok'));
7 |
--------------------------------------------------------------------------------
/spec/fixtures/api/localstorage.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/module/empty.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | window.addEventListener('message', (event) => {
4 | ipcRenderer.send('leak-result', event.data);
5 | });
6 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-ipc.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 | ipcRenderer.on('ping', function (event, message) {
3 | ipcRenderer.sendToHost('pong', message);
4 | });
5 |
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | # These env vars are only necessary for creating Electron releases.
2 | # See docs/development/releasing.md
3 |
4 | APPVEYOR_CLOUD_TOKEN=
5 | CIRCLE_TOKEN=
6 | ELECTRON_GITHUB_TOKEN=
7 |
--------------------------------------------------------------------------------
/docs/api/structures/protocol-response-upload-data.md:
--------------------------------------------------------------------------------
1 | # ProtocolResponseUploadData Object
2 |
3 | * `contentType` String - MIME type of the content.
4 | * `data` String | Buffer - Content to be sent.
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/module/print-crash-parameters.js:
--------------------------------------------------------------------------------
1 | process.crashReporter.addExtraParameter('hello', 'world');
2 | process.stdout.write(JSON.stringify(process.crashReporter.getParameters()) + '\n');
3 |
--------------------------------------------------------------------------------
/spec/fixtures/module/send-later.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 | window.onload = function () {
3 | ipcRenderer.send('answer', typeof window.process, typeof window.Buffer);
4 | };
5 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/webview-stripped-preload.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tsconfig.electron.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "rootDir": "lib"
5 | },
6 | "include": [
7 | "lib",
8 | "typings"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/docs/api/structures/scrubber-item.md:
--------------------------------------------------------------------------------
1 | # ScrubberItem Object
2 |
3 | * `label` String (optional) - The text to appear in this item.
4 | * `icon` NativeImage (optional) - The image to appear in this item.
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/load-error/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "load-error",
3 | "version": "1.0",
4 | "icons": {
5 | "16": "/images/error.png"
6 | },
7 | "manifest_version": 2
8 | }
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/e.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/devtools-extension/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | a custom devtools extension
4 |
5 |
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/native-addon/echo/binding.gyp:
--------------------------------------------------------------------------------
1 | {
2 | "targets": [
3 | {
4 | "target_name": "echo",
5 | "sources": [
6 | "binding.cc"
7 | ]
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/partition/one.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/window-opener-postMessage.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "rootDir": "spec-main"
5 | },
6 | "include": [
7 | "spec-main",
8 | "typings"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/docs/api/structures/file-path-with-headers.md:
--------------------------------------------------------------------------------
1 | # FilePathWithHeaders Object
2 |
3 | * `path` String - The path to the file to send.
4 | * `headers` Record (optional) - Additional headers to be sent.
5 |
--------------------------------------------------------------------------------
/spec/fixtures/api/native-window-open-isolated-preload.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | window.addEventListener('message', (event) => {
4 | ipcRenderer.send('answer', event.data);
5 | });
6 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload-pdf-loaded.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | window.addEventListener('pdf-loaded', function (event) {
4 | ipcRenderer.send('pdf-loaded', event.detail);
5 | });
6 |
--------------------------------------------------------------------------------
/spec/fixtures/module/preload.js:
--------------------------------------------------------------------------------
1 | const types = {
2 | require: typeof require,
3 | module: typeof module,
4 | process: typeof process,
5 | Buffer: typeof Buffer
6 | };
7 | console.log(JSON.stringify(types));
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/permissions/geolocation.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/permissions/midi.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/crash-cases/webcontents-create-leak-exit/index.js:
--------------------------------------------------------------------------------
1 | const { app, webContents } = require('electron');
2 | app.whenReady().then(function () {
3 | webContents.create({});
4 |
5 | app.quit();
6 | });
7 |
--------------------------------------------------------------------------------
/spec-main/fixtures/devtools-extensions/foo/foo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | foo
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/permissions/midi-sysex.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/tsconfig.default_app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "rootDir": "default_app"
5 | },
6 | "include": [
7 | "default_app",
8 | "typings"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/docs/fiddles/system/system-app-user-information/app-information/main.js:
--------------------------------------------------------------------------------
1 | const {app, ipcMain} = require('electron')
2 |
3 | ipcMain.on('get-app-path', (event) => {
4 | event.sender.send('got-app-path', app.getAppPath())
5 | })
--------------------------------------------------------------------------------
/lib/browser/api/auto-updater.ts:
--------------------------------------------------------------------------------
1 | if (process.platform === 'win32') {
2 | module.exports = require('./auto-updater/auto-updater-win');
3 | } else {
4 | module.exports = require('./auto-updater/auto-updater-native');
5 | }
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/beforeunload-undefined.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/spec/fixtures/api/window-open-location-final.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | bar
9 |
10 |
11 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/form-with-data.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/ipc-message.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/set-global.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/window-open.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/window-open-size.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/workers/shared_worker.js:
--------------------------------------------------------------------------------
1 | this.onconnect = function (event) {
2 | const port = event.ports[0];
3 | port.start();
4 | port.onmessage = function (event) {
5 | port.postMessage(event.data);
6 | };
7 | };
8 |
--------------------------------------------------------------------------------
/docs/api/structures/protocol-request.md:
--------------------------------------------------------------------------------
1 | # ProtocolRequest Object
2 |
3 | * `url` String
4 | * `referrer` String
5 | * `method` String
6 | * `uploadData` [UploadData[]](upload-data.md) (optional)
7 | * `headers` Record
8 |
--------------------------------------------------------------------------------
/lib/browser/api/session.ts:
--------------------------------------------------------------------------------
1 | const { fromPartition } = process._linkedBinding('electron_browser_session');
2 |
3 | export default {
4 | fromPartition,
5 | get defaultSession () {
6 | return fromPartition('');
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/spec/fixtures/testsnap.js:
--------------------------------------------------------------------------------
1 | // taken from https://chromium.googlesource.com/v8/v8.git/+/HEAD/test/cctest/test-serialize.cc#1127
2 | function f () { return g() * 2; } // eslint-disable-line no-unused-vars
3 | function g () { return 43; }
4 |
--------------------------------------------------------------------------------
/tsconfig.script.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "rootDir": ".",
5 | "noEmit": true,
6 | "skipLibCheck": true
7 | },
8 | "include": [
9 | "script"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/service-workers/sw-logs.js:
--------------------------------------------------------------------------------
1 | self.addEventListener('install', function (event) {
2 | console.log('log log');
3 | console.info('info log');
4 | console.warn('warn log');
5 | console.error('error log');
6 | });
7 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/devtools-extension/index.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line
2 | chrome.devtools.inspectedWindow.eval(`require("electron").ipcRenderer.send("winning")`, (result, exc) => {
3 | console.log(result, exc);
4 | });
5 |
--------------------------------------------------------------------------------
/spec-main/fixtures/sub-frames/debug-frames.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This is a frame, is has one child
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/base-page-security.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/docs/api/structures/mime-typed-buffer.md:
--------------------------------------------------------------------------------
1 | # MimeTypedBuffer Object
2 |
3 | * `mimeType` String (optional) - MIME type of the buffer.
4 | * `charset` String (optional) - Charset of the buffer.
5 | * `data` Buffer - The actual Buffer content.
6 |
--------------------------------------------------------------------------------
/docs/fiddles/features/macos-dark-mode/styles.css:
--------------------------------------------------------------------------------
1 | @media (prefers-color-scheme: dark) {
2 | body { background: #333; color: white; }
3 | }
4 |
5 | @media (prefers-color-scheme: light) {
6 | body { background: #ddd; color: black; }
7 | }
8 |
--------------------------------------------------------------------------------
/lib/browser/api/desktop-capturer.ts:
--------------------------------------------------------------------------------
1 | import { getSourcesImpl } from '@electron/internal/browser/desktop-capturer';
2 |
3 | export async function getSources (options: Electron.SourcesOptions) {
4 | return getSourcesImpl(null, options);
5 | }
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/devtools-extensions/foo/_locales/en/messages.json:
--------------------------------------------------------------------------------
1 | {
2 | "foo": {
3 | "message": "foo - $BAZ$ ($2)",
4 | "placeholders": {
5 | "baz": {
6 | "content": "$1"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/storage/cookie.html:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/workers/shared_worker_node.js:
--------------------------------------------------------------------------------
1 | self.onconnect = function (event) {
2 | const port = event.ports[0];
3 | port.start();
4 | port.postMessage([typeof process, typeof setImmediate, typeof global, typeof Buffer].join(' '));
5 | };
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/lazy-background-page/background.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-undef */
2 | chrome.runtime.onMessage.addListener((message, sender, reply) => {
3 | window.receivedMessage = message;
4 | reply({ message, sender });
5 | });
6 |
--------------------------------------------------------------------------------
/spec/fixtures/module/locale-compare.js:
--------------------------------------------------------------------------------
1 | process.on('message', function () {
2 | process.send([
3 | 'a'.localeCompare('a'),
4 | 'ä'.localeCompare('z', 'de'),
5 | 'ä'.localeCompare('a', 'sv', { sensitivity: 'base' })
6 | ]);
7 | });
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/storage/local_storage.html:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/window-opener-node.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/spec/spec-helpers.js:
--------------------------------------------------------------------------------
1 | exports.ifit = (condition) => (condition ? it : it.skip);
2 | exports.ifdescribe = (condition) => (condition ? describe : describe.skip);
3 |
4 | exports.delay = (time = 0) => new Promise(resolve => setTimeout(resolve, time));
5 |
--------------------------------------------------------------------------------
/docs/api/structures/sharing-item.md:
--------------------------------------------------------------------------------
1 | # SharingItem Object
2 |
3 | * `texts` String[] (optional) - An array of text to share.
4 | * `filePaths` String[] (optional) - An array of files to share.
5 | * `urls` String[] (optional) - An array of URLs to share.
6 |
--------------------------------------------------------------------------------
/spec-main/fixtures/crash-cases/webcontentsview-create-leak-exit/index.js:
--------------------------------------------------------------------------------
1 | const { WebContentsView, app } = require('electron');
2 | app.whenReady().then(function () {
3 | new WebContentsView({}) // eslint-disable-line
4 |
5 | app.quit();
6 | });
7 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/cache-storage.html:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/webview-did-navigate-in-page-with-hash.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/docs/fiddles/features/notifications/renderer/renderer.js:
--------------------------------------------------------------------------------
1 | const myNotification = new Notification('Title', {
2 | body: 'Notification from the Renderer process'
3 | })
4 |
5 | myNotification.onclick = () => {
6 | console.log('Notification clicked')
7 | }
8 |
--------------------------------------------------------------------------------
/spec-main/fixtures/api/ipc-main-listeners/main.js:
--------------------------------------------------------------------------------
1 | const { app, ipcMain } = require('electron');
2 |
3 | app.whenReady().then(() => {
4 | process.stdout.write(JSON.stringify(ipcMain.eventNames()));
5 | process.stdout.end();
6 |
7 | app.quit();
8 | });
9 |
--------------------------------------------------------------------------------
/spec/fixtures/api/new-window-preload.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer, webFrame } = require('electron');
2 |
3 | ipcRenderer.send('answer', {
4 | nativeWindowOpen: webFrame.getWebPreference('nativeWindowOpen'),
5 | argv: process.argv
6 | });
7 | window.close();
8 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/storage/session_storage.html:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/window-no-javascript.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 | CLICK
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib/browser/api/views/image-view.ts:
--------------------------------------------------------------------------------
1 | import { View } from 'electron/main';
2 |
3 | const { ImageView } = process._linkedBinding('electron_browser_image_view');
4 |
5 | Object.setPrototypeOf(ImageView.prototype, View.prototype);
6 |
7 | export default ImageView;
8 |
--------------------------------------------------------------------------------
/spec-main/fixtures/crash-cases/early-in-memory-session-create/index.js:
--------------------------------------------------------------------------------
1 | const { app, session } = require('electron');
2 |
3 | app.on('ready', () => {
4 | session.fromPartition('in-memory');
5 | setImmediate(() => {
6 | process.exit(0);
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/spec-main/fixtures/devtools-extensions/foo/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 2,
3 | "name": "foo",
4 | "permissions": [
5 | "storage"
6 | ],
7 | "version": "1.0",
8 | "devtools_page": "foo.html",
9 | "default_locale": "en"
10 | }
11 |
--------------------------------------------------------------------------------
/spec/fixtures/api/app-path/lib/index.js:
--------------------------------------------------------------------------------
1 | const { app } = require('electron');
2 |
3 | const payload = {
4 | appPath: app.getAppPath()
5 | };
6 |
7 | process.stdout.write(JSON.stringify(payload));
8 | process.stdout.end();
9 |
10 | process.exit();
11 |
--------------------------------------------------------------------------------
/spec/fixtures/api/native-window-open-argv.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/spec/fixtures/pages/storage/indexed_db.html:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/docs/tutorial/using-pepper-flash-plugin.md:
--------------------------------------------------------------------------------
1 | # Using Pepper Flash Plugin
2 |
3 | Electron no longer supports the Pepper Flash plugin, as Chrome has removed support.
4 |
5 | See [Chromium's Flash Roadmap](https://www.chromium.org/flash-roadmap) for more
6 | details.
7 |
--------------------------------------------------------------------------------
/lib/browser/api/notification.ts:
--------------------------------------------------------------------------------
1 | const {
2 | Notification: ElectronNotification,
3 | isSupported
4 | } = process._linkedBinding('electron_common_notification');
5 |
6 | ElectronNotification.isSupported = isSupported;
7 |
8 | export default ElectronNotification;
9 |
--------------------------------------------------------------------------------
/spec/fixtures/api/isolated-fetch-preload.js:
--------------------------------------------------------------------------------
1 | const { ipcRenderer } = require('electron');
2 |
3 | // Ensure fetch works from isolated world origin
4 | fetch('https://localhost:1234').catch(err => {
5 | ipcRenderer.send('isolated-fetch-error', err.message);
6 | });
7 |
--------------------------------------------------------------------------------
/spec-main/fixtures/extensions/chrome-webRequest/background.js:
--------------------------------------------------------------------------------
1 | /* global chrome */
2 |
3 | chrome.webRequest.onBeforeRequest.addListener(
4 | (details) => {
5 | return { cancel: true };
6 | },
7 | { urls: ['*://127.0.0.1:*'] },
8 | ['blocking']
9 | );
10 |
--------------------------------------------------------------------------------
/spec/fixtures/api/native-window-open-iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/spec/fixtures/test.asar/web.asar:
--------------------------------------------------------------------------------
1 | <