mirror of
https://github.com/bitwarden/browser.git
synced 2024-11-21 11:35:34 +01:00
[PM-358] Bump electron to 24 and node to 18 (#5205)
Upgrade Electron to version 24, node to 18 and npm to 9. Electron changed to using node 18 in 23, with node 18 using npm 9 as default. There doesn't seem to be any breaking changes except the deprecation of Windows 7, 8.1, and Server 2012. A somewhat undocumented breaking change was that elements in the title bar are now draggable which broke the account switching selector. Resolved by adding a no-drag css rule. - electronjs.org/blog/electron-22-0 - electronjs.org/blog/electron-23-0 - electronjs.org/blog/electron-24-0
This commit is contained in:
parent
3c42178c81
commit
9a41d5dc6f
4
.github/workflows/build-browser.yml
vendored
4
.github/workflows/build-browser.yml
vendored
@ -126,7 +126,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Install node-gyp
|
- name: Install node-gyp
|
||||||
run: |
|
run: |
|
||||||
@ -253,7 +253,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
|
8
.github/workflows/build-cli.yml
vendored
8
.github/workflows/build-cli.yml
vendored
@ -75,7 +75,7 @@ jobs:
|
|||||||
- setup
|
- setup
|
||||||
env:
|
env:
|
||||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||||
_WIN_PKG_FETCH_VERSION: 16.16.0
|
_WIN_PKG_FETCH_VERSION: 18.5.0
|
||||||
_WIN_PKG_VERSION: 3.4
|
_WIN_PKG_VERSION: 3.4
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
@ -92,7 +92,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Install node-gyp
|
- name: Install node-gyp
|
||||||
run: |
|
run: |
|
||||||
@ -149,7 +149,7 @@ jobs:
|
|||||||
- setup
|
- setup
|
||||||
env:
|
env:
|
||||||
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }}
|
||||||
_WIN_PKG_FETCH_VERSION: 16.16.0
|
_WIN_PKG_FETCH_VERSION: 18.5.0
|
||||||
_WIN_PKG_VERSION: 3.4
|
_WIN_PKG_VERSION: 3.4
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
@ -166,7 +166,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Install node-gyp
|
- name: Install node-gyp
|
||||||
run: |
|
run: |
|
||||||
|
12
.github/workflows/build-desktop.yml
vendored
12
.github/workflows/build-desktop.yml
vendored
@ -150,7 +150,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -266,7 +266,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||||
@ -479,7 +479,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -631,7 +631,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -828,7 +828,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -1017,7 +1017,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
2
.github/workflows/lint.yml
vendored
2
.github/workflows/lint.yml
vendored
@ -43,7 +43,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Run linter
|
- name: Run linter
|
||||||
run: |
|
run: |
|
||||||
|
10
.github/workflows/release-desktop-beta.yml
vendored
10
.github/workflows/release-desktop-beta.yml
vendored
@ -124,7 +124,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -220,7 +220,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||||
@ -415,7 +415,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -544,7 +544,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
@ -746,7 +746,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@ -32,7 +32,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: '16'
|
node-version: '18'
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
"build:prod": "cross-env NODE_ENV=production webpack",
|
"build:prod": "cross-env NODE_ENV=production webpack",
|
||||||
"build:prod:watch": "cross-env NODE_ENV=production webpack --watch",
|
"build:prod:watch": "cross-env NODE_ENV=production webpack --watch",
|
||||||
"package": "npm run package:win && npm run package:mac && npm run package:lin",
|
"package": "npm run package:win && npm run package:mac && npm run package:lin",
|
||||||
"package:win": "pkg . --targets win-x64 --output ./dist/windows/bw.exe --build",
|
"package:win": "pkg . --targets win-x64 --output ./dist/windows/bw.exe",
|
||||||
"package:mac": "pkg . --targets macos-x64 --output ./dist/macos/bw",
|
"package:mac": "pkg . --targets macos-x64 --output ./dist/macos/bw",
|
||||||
"package:lin": "pkg . --targets linux-x64 --output ./dist/linux/bw",
|
"package:lin": "pkg . --targets linux-x64 --output ./dist/linux/bw",
|
||||||
"debug": "node --inspect ./build/bw.js",
|
"debug": "node --inspect ./build/bw.js",
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"**/node_modules/@bitwarden/desktop-native/index.js",
|
"**/node_modules/@bitwarden/desktop-native/index.js",
|
||||||
"**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node"
|
"**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node"
|
||||||
],
|
],
|
||||||
"electronVersion": "21.3.1",
|
"electronVersion": "24.1.1",
|
||||||
"generateUpdatesFilesForAllChannels": true,
|
"generateUpdatesFilesForAllChannels": true,
|
||||||
"publish": {
|
"publish": {
|
||||||
"provider": "generic",
|
"provider": "generic",
|
||||||
|
@ -73,9 +73,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ng-container *ngIf="oldOs">
|
|
||||||
<app-callout type="warning" class="os-deprecated">
|
|
||||||
{{ (deprecated ? "windows8Deprecated" : "windows8SoonDeprecated") | i18n }}
|
|
||||||
</app-callout>
|
|
||||||
</ng-container>
|
|
||||||
</form>
|
</form>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
import * as os from "os";
|
|
||||||
|
|
||||||
import { Component, NgZone } from "@angular/core";
|
import { Component, NgZone } from "@angular/core";
|
||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
import { ipcRenderer } from "electron";
|
import { ipcRenderer } from "electron";
|
||||||
@ -33,8 +31,6 @@ const BroadcasterSubscriptionId = "LockComponent";
|
|||||||
export class LockComponent extends BaseLockComponent {
|
export class LockComponent extends BaseLockComponent {
|
||||||
private deferFocus: boolean = null;
|
private deferFocus: boolean = null;
|
||||||
protected biometricReady = false;
|
protected biometricReady = false;
|
||||||
protected oldOs = false;
|
|
||||||
protected deprecated = false;
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
router: Router,
|
router: Router,
|
||||||
@ -74,20 +70,6 @@ export class LockComponent extends BaseLockComponent {
|
|||||||
policyService,
|
policyService,
|
||||||
passwordGenerationService
|
passwordGenerationService
|
||||||
);
|
);
|
||||||
|
|
||||||
if (process.platform === "win32") {
|
|
||||||
try {
|
|
||||||
const release = os.release();
|
|
||||||
const majorVersion = parseInt(release.split(".")[0], 10);
|
|
||||||
|
|
||||||
this.oldOs = majorVersion < 10;
|
|
||||||
if (new Date() > new Date("2023-05-31")) {
|
|
||||||
this.deprecated = true;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
this.logService.error(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
|
@ -159,12 +159,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-container *ngIf="oldOs">
|
|
||||||
<app-callout type="warning" class="os-deprecated">
|
|
||||||
{{ (deprecated ? "windows8Deprecated" : "windows8SoonDeprecated") | i18n }}
|
|
||||||
</app-callout>
|
|
||||||
</ng-container>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<ng-template #environment></ng-template>
|
<ng-template #environment></ng-template>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
import * as os from "os";
|
|
||||||
|
|
||||||
import { Component, NgZone, OnDestroy, ViewChild, ViewContainerRef } from "@angular/core";
|
import { Component, NgZone, OnDestroy, ViewChild, ViewContainerRef } from "@angular/core";
|
||||||
import { FormBuilder } from "@angular/forms";
|
import { FormBuilder } from "@angular/forms";
|
||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
@ -39,8 +37,6 @@ export class LoginComponent extends BaseLoginComponent implements OnDestroy {
|
|||||||
showingModal = false;
|
showingModal = false;
|
||||||
|
|
||||||
private deferFocus: boolean = null;
|
private deferFocus: boolean = null;
|
||||||
protected oldOs = false;
|
|
||||||
protected deprecated = false;
|
|
||||||
|
|
||||||
get loggedEmail() {
|
get loggedEmail() {
|
||||||
return this.formGroup.value.email;
|
return this.formGroup.value.email;
|
||||||
@ -93,20 +89,6 @@ export class LoginComponent extends BaseLoginComponent implements OnDestroy {
|
|||||||
super.onSuccessfulLogin = () => {
|
super.onSuccessfulLogin = () => {
|
||||||
return syncService.fullSync(true);
|
return syncService.fullSync(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (process.platform === "win32") {
|
|
||||||
try {
|
|
||||||
const release = os.release();
|
|
||||||
const majorVersion = parseInt(release.split(".")[0], 10);
|
|
||||||
|
|
||||||
this.oldOs = majorVersion < 10;
|
|
||||||
if (new Date() > new Date("2023-05-31")) {
|
|
||||||
this.deprecated = true;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
this.logService.error(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
|
@ -2251,13 +2251,5 @@
|
|||||||
},
|
},
|
||||||
"windowsBiometricUpdateWarningTitle": {
|
"windowsBiometricUpdateWarningTitle": {
|
||||||
"message": "Recommended Settings Update"
|
"message": "Recommended Settings Update"
|
||||||
},
|
|
||||||
"windows8SoonDeprecated": {
|
|
||||||
"message": "The operating system you are using will no longer be supported after the 2023.5.0 release. Upgrade to a supported operating system. Continuing without updating your operating system may result in unexpected behavior or security risks.",
|
|
||||||
"description": "Windows 8, 8.1 and Server 2012 R2 are no longer supported by Electron & Chromium. Show a notice on the login and lock screen while 2023.4.0 is the active version."
|
|
||||||
},
|
|
||||||
"windows8Deprecated": {
|
|
||||||
"message": "The operating system you are using is no longer supported. Continuing without updating your operating system may result in unexpected behavior.",
|
|
||||||
"description": "Windows 8, 8.1 and Server 2012 R2 are no longer supported by Electron & Chromium. Show a notice on the login and lock screen after 2023.5.0 is released."
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
app-account-switcher {
|
app-account-switcher {
|
||||||
|
// Electron will mark elements in the title bar as draggable so that the window can be moved. This
|
||||||
|
// disables the click events. To restore the click functionality, we mark this element as no-drag.
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
@ -272,13 +272,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Remove after 2023.4 release
|
|
||||||
.os-deprecated {
|
|
||||||
margin-top: 20px;
|
|
||||||
width: 500px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lock-page {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
1737
package-lock.json
generated
1737
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -87,7 +87,7 @@
|
|||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"css-loader": "^6.5.1",
|
"css-loader": "^6.5.1",
|
||||||
"del": "^6.0.0",
|
"del": "^6.0.0",
|
||||||
"electron": "21.3.1",
|
"electron": "24.1.1",
|
||||||
"electron-builder": "^23.6.0",
|
"electron-builder": "^23.6.0",
|
||||||
"electron-log": "^4.4.8",
|
"electron-log": "^4.4.8",
|
||||||
"electron-notarize": "^1.2.2",
|
"electron-notarize": "^1.2.2",
|
||||||
@ -118,7 +118,7 @@
|
|||||||
"lint-staged": "^13.0.3",
|
"lint-staged": "^13.0.3",
|
||||||
"mini-css-extract-plugin": "^2.4.5",
|
"mini-css-extract-plugin": "^2.4.5",
|
||||||
"node-ipc": "9.2.1",
|
"node-ipc": "9.2.1",
|
||||||
"pkg": "5.8.0",
|
"pkg": "5.8.1",
|
||||||
"postcss": "^8.4.14",
|
"postcss": "^8.4.14",
|
||||||
"postcss-loader": "^7.0.1",
|
"postcss-loader": "^7.0.1",
|
||||||
"prettier": "2.8.4",
|
"prettier": "2.8.4",
|
||||||
@ -212,7 +212,7 @@
|
|||||||
"*.ts": "eslint --cache --cache-strategy content --fix"
|
"*.ts": "eslint --cache --cache-strategy content --fix"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "~16",
|
"node": "~18",
|
||||||
"npm": "~8"
|
"npm": "~9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user