mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-20 10:19:02 +00:00
Disable keytar in our integration tests (#116852)
* tests - extract and use ALL_PLATFORMS_API_TESTS_EXTRA_ARGS * tests - throw when accessing keytar from API tests
This commit is contained in:
@@ -45,31 +45,33 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" (
|
|||||||
|
|
||||||
:: Tests in the extension host
|
:: Tests in the extension host
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\singlefolder-tests --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
set ALL_PLATFORMS_API_TESTS_EXTRA_ARGS=--disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-keytar --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
||||||
|
|
||||||
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\singlefolder-tests %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-colorize-tests\test --extensionDevelopmentPath=%~dp0\..\extensions\vscode-colorize-tests --extensionTestsPath=%~dp0\..\extensions\vscode-colorize-tests\out --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-colorize-tests\test --extensionDevelopmentPath=%~dp0\..\extensions\vscode-colorize-tests --extensionTestsPath=%~dp0\..\extensions\vscode-colorize-tests\out %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\markdown-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\markdown-language-features --extensionTestsPath=%~dp0\..\extensions\markdown-language-features\out\test --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\markdown-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\markdown-language-features --extensionTestsPath=%~dp0\..\extensions\markdown-language-features\out\test %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" $%~dp0\..\extensions\emmet\out\test\test-fixtures --extensionDevelopmentPath=%~dp0\..\extensions\emmet --extensionTestsPath=%~dp0\..\extensions\emmet\out\test --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% .
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" $%~dp0\..\extensions\emmet\out\test\test-fixtures --extensionDevelopmentPath=%~dp0\..\extensions\emmet --extensionTestsPath=%~dp0\..\extensions\emmet\out\test %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% .
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-notebook-tests\test --enable-proposed-api=vscode.vscode-notebook-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-notebook-tests --extensionTestsPath=%~dp0\..\extensions\vscode-notebook-tests\out --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-notebook-tests\test --enable-proposed-api=vscode.vscode-notebook-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-notebook-tests --extensionTestsPath=%~dp0\..\extensions\vscode-notebook-tests\out %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
for /f "delims=" %%i in ('node -p "require('fs').realpathSync.native(require('os').tmpdir())"') do set TEMPDIR=%%i
|
for /f "delims=" %%i in ('node -p "require('fs').realpathSync.native(require('os').tmpdir())"') do set TEMPDIR=%%i
|
||||||
set GITWORKSPACE=%TEMPDIR%\git-%RANDOM%
|
set GITWORKSPACE=%TEMPDIR%\git-%RANDOM%
|
||||||
mkdir %GITWORKSPACE%
|
mkdir %GITWORKSPACE%
|
||||||
call "%INTEGRATION_TEST_ELECTRON_PATH%" %GITWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\git --extensionTestsPath=%~dp0\..\extensions\git\out\test --enable-proposed-api=vscode.git --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR%
|
call "%INTEGRATION_TEST_ELECTRON_PATH%" %GITWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\git --extensionTestsPath=%~dp0\..\extensions\git\out\test --enable-proposed-api=vscode.git %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS%
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
:: Tests in commonJS (CSS, HTML)
|
:: Tests in commonJS (CSS, HTML)
|
||||||
|
|||||||
@@ -65,28 +65,31 @@ fi
|
|||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
# Tests in the extension host
|
# Tests in the extension host
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
|
||||||
|
ALL_PLATFORMS_API_TESTS_EXTRA_ARGS="--disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-keytar --disable-extensions --user-data-dir=$VSCODEUSERDATADIR"
|
||||||
|
|
||||||
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/typescript-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test/unit --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/typescript-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test/unit $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/emmet/out/test/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/emmet/out/test/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $(mktemp -d 2>/dev/null) --enable-proposed-api=vscode.git --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $(mktemp -d 2>/dev/null) --enable-proposed-api=vscode.git --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-notebook-tests/test --enable-proposed-api=vscode.vscode-notebook-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-notebook-tests --extensionTestsPath=$ROOT/extensions/vscode-notebook-tests/out/ --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-notebook-tests/test --enable-proposed-api=vscode.vscode-notebook-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-notebook-tests --extensionTestsPath=$ROOT/extensions/vscode-notebook-tests/out/ $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS
|
||||||
after_suite
|
after_suite
|
||||||
|
|
||||||
# Tests in commonJS (CSS, HTML)
|
# Tests in commonJS (CSS, HTML)
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ export interface NativeParsedArgs {
|
|||||||
'export-default-configuration'?: string;
|
'export-default-configuration'?: string;
|
||||||
'install-source'?: string;
|
'install-source'?: string;
|
||||||
'disable-updates'?: boolean;
|
'disable-updates'?: boolean;
|
||||||
|
'disable-keytar'?: boolean;
|
||||||
'disable-crash-reporter'?: boolean;
|
'disable-crash-reporter'?: boolean;
|
||||||
'crash-reporter-directory'?: string;
|
'crash-reporter-directory'?: string;
|
||||||
'crash-reporter-id'?: string;
|
'crash-reporter-id'?: string;
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ export interface IEnvironmentMainService extends INativeEnvironmentService {
|
|||||||
sandbox: boolean;
|
sandbox: boolean;
|
||||||
driverVerbose: boolean;
|
driverVerbose: boolean;
|
||||||
disableUpdates: boolean;
|
disableUpdates: boolean;
|
||||||
|
disableKeytar: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class EnvironmentMainService extends NativeEnvironmentService implements IEnvironmentMainService {
|
export class EnvironmentMainService extends NativeEnvironmentService implements IEnvironmentMainService {
|
||||||
@@ -61,6 +62,9 @@ export class EnvironmentMainService extends NativeEnvironmentService implements
|
|||||||
@memoize
|
@memoize
|
||||||
get disableUpdates(): boolean { return !!this._args['disable-updates']; }
|
get disableUpdates(): boolean { return !!this._args['disable-updates']; }
|
||||||
|
|
||||||
|
@memoize
|
||||||
|
get disableKeytar(): boolean { return !!this._args['disable-keytar']; }
|
||||||
|
|
||||||
@memoize
|
@memoize
|
||||||
get nodeCachedDataDir(): string | undefined { return process.env['VSCODE_NODE_CACHED_DATA_DIR'] || undefined; }
|
get nodeCachedDataDir(): string | undefined { return process.env['VSCODE_NODE_CACHED_DATA_DIR'] || undefined; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ export const OPTIONS: OptionDescriptions<Required<NativeParsedArgs>> = {
|
|||||||
'skip-release-notes': { type: 'boolean' },
|
'skip-release-notes': { type: 'boolean' },
|
||||||
'disable-telemetry': { type: 'boolean' },
|
'disable-telemetry': { type: 'boolean' },
|
||||||
'disable-updates': { type: 'boolean' },
|
'disable-updates': { type: 'boolean' },
|
||||||
|
'disable-keytar': { type: 'boolean' },
|
||||||
'disable-crash-reporter': { type: 'boolean' },
|
'disable-crash-reporter': { type: 'boolean' },
|
||||||
'crash-reporter-directory': { type: 'string' },
|
'crash-reporter-directory': { type: 'string' },
|
||||||
'crash-reporter-id': { type: 'string' },
|
'crash-reporter-id': { type: 'string' },
|
||||||
|
|||||||
@@ -658,7 +658,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
|||||||
private static readonly PASSWORD_CHUNK_SIZE = NativeHostMainService.MAX_PASSWORD_LENGTH - 100;
|
private static readonly PASSWORD_CHUNK_SIZE = NativeHostMainService.MAX_PASSWORD_LENGTH - 100;
|
||||||
|
|
||||||
async getPassword(windowId: number | undefined, service: string, account: string): Promise<string | null> {
|
async getPassword(windowId: number | undefined, service: string, account: string): Promise<string | null> {
|
||||||
const keytar = await import('keytar');
|
const keytar = await this.withKeytar();
|
||||||
|
|
||||||
const password = await keytar.getPassword(service, account);
|
const password = await keytar.getPassword(service, account);
|
||||||
if (password) {
|
if (password) {
|
||||||
@@ -686,7 +686,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setPassword(windowId: number | undefined, service: string, account: string, password: string): Promise<void> {
|
async setPassword(windowId: number | undefined, service: string, account: string, password: string): Promise<void> {
|
||||||
const keytar = await import('keytar');
|
const keytar = await this.withKeytar();
|
||||||
|
|
||||||
if (isWindows && password.length > NativeHostMainService.MAX_PASSWORD_LENGTH) {
|
if (isWindows && password.length > NativeHostMainService.MAX_PASSWORD_LENGTH) {
|
||||||
let index = 0;
|
let index = 0;
|
||||||
@@ -714,7 +714,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
|||||||
}
|
}
|
||||||
|
|
||||||
async deletePassword(windowId: number | undefined, service: string, account: string): Promise<boolean> {
|
async deletePassword(windowId: number | undefined, service: string, account: string): Promise<boolean> {
|
||||||
const keytar = await import('keytar');
|
const keytar = await this.withKeytar();
|
||||||
|
|
||||||
const didDelete = await keytar.deletePassword(service, account);
|
const didDelete = await keytar.deletePassword(service, account);
|
||||||
if (didDelete) {
|
if (didDelete) {
|
||||||
@@ -725,17 +725,25 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
|||||||
}
|
}
|
||||||
|
|
||||||
async findPassword(windowId: number | undefined, service: string): Promise<string | null> {
|
async findPassword(windowId: number | undefined, service: string): Promise<string | null> {
|
||||||
const keytar = await import('keytar');
|
const keytar = await this.withKeytar();
|
||||||
|
|
||||||
return keytar.findPassword(service);
|
return keytar.findPassword(service);
|
||||||
}
|
}
|
||||||
|
|
||||||
async findCredentials(windowId: number | undefined, service: string): Promise<Array<{ account: string, password: string }>> {
|
async findCredentials(windowId: number | undefined, service: string): Promise<Array<{ account: string, password: string }>> {
|
||||||
const keytar = await import('keytar');
|
const keytar = await this.withKeytar();
|
||||||
|
|
||||||
return keytar.findCredentials(service);
|
return keytar.findCredentials(service);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async withKeytar(): Promise<typeof import('keytar')> {
|
||||||
|
if (this.environmentMainService.disableKeytar) {
|
||||||
|
throw new Error('keytar has been disabled via --disable-keytar option');
|
||||||
|
}
|
||||||
|
|
||||||
|
return await import('keytar');
|
||||||
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
private windowById(windowId: number | undefined): ICodeWindow | undefined {
|
private windowById(windowId: number | undefined): ICodeWindow | undefined {
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ export async function spawn(options: SpawnOptions): Promise<Code> {
|
|||||||
'--disable-telemetry',
|
'--disable-telemetry',
|
||||||
'--no-cached-data',
|
'--no-cached-data',
|
||||||
'--disable-updates',
|
'--disable-updates',
|
||||||
|
'--disable-keytar',
|
||||||
'--disable-crash-reporter',
|
'--disable-crash-reporter',
|
||||||
`--extensions-dir=${options.extensionsPath}`,
|
`--extensions-dir=${options.extensionsPath}`,
|
||||||
`--user-data-dir=${options.userDataDir}`,
|
`--user-data-dir=${options.userDataDir}`,
|
||||||
|
|||||||
Reference in New Issue
Block a user