mirror of
https://github.com/balena-io/etcher.git
synced 2025-04-20 05:17:18 +00:00

Sentry error reports showcase that elevation errors on Windows are one of the most frequent Windows errors. In order to perform Windows elevation, we ship compiled EXEs of a third party CLI elevation application (http://code.kliu.org/misc/elevate/) that has several limitations: - We have the scan the output of the script to determine if a user cancelled the elevation request, which causes all sorts of issues on computers where English is not the main language - The application displays a `cmd.exe` window for some milliseconds, which is bad UX, that we have to workaround by distributing a patched version of the tool - The CLI application has to be spawned, which seems to be problematic if users have anti-virus software, leading to hard to debug issues - We don't have any control if something goes wrong For these reasons, we decided to implement our own elevation mechanism in C++ as a Node.js add-on, based on the `elevate.exe` code we where previously using. Misc changes: - Introduce a `lib/shared/bindings.js` module to easily require local native add-ons - Install `cpplint` and configure it to lint C++ files Note that for practical reasons, the C++ code lives in this repository rather than in a separate module. We will release this functionality in a more accessible way in the future as part of the Etcher SDK project. Change-Type: patch Changelog-Entry: Fix uncaught errors when cancelling elevation requests on Windows when the system's language is not English. Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
42 lines
645 B
Plaintext
42 lines
645 B
Plaintext
# Logs
|
|
logs
|
|
*.log
|
|
npm-debug.log*
|
|
|
|
# Runtime data
|
|
pids
|
|
*.pid
|
|
*.seed
|
|
|
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
lib-cov
|
|
|
|
# Coverage directory used by tools like istanbul
|
|
coverage
|
|
|
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
.grunt
|
|
|
|
# node-waf configuration
|
|
.lock-wscript
|
|
|
|
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
|
build
|
|
|
|
# Dependency directory
|
|
# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git
|
|
node_modules
|
|
bower_components
|
|
|
|
# Compiled Electron releases
|
|
release/
|
|
etcher-release/
|
|
|
|
# Certificates
|
|
*.spc
|
|
*.pvk
|
|
*.p12
|
|
*.cer
|
|
*.crt
|
|
*.pem
|