in src/utils.ts [252:284]
export function getRemoteEndpointSettings(config: Partial<IUserConfig> = {}): IDevToolsSettings {
const settings = vscode.workspace.getConfiguration(SETTINGS_STORE_NAME);
const hostname: string = config.hostname || settings.get('hostname') || SETTINGS_DEFAULT_HOSTNAME;
const port: number = config.port || settings.get('port') || SETTINGS_DEFAULT_PORT;
const useHttps: boolean = config.useHttps || settings.get('useHttps') || SETTINGS_DEFAULT_USE_HTTPS;
const defaultUrl: string = config.url || settings.get('defaultUrl') || SETTINGS_DEFAULT_URL;
const timeout: number = config.timeout || settings.get('timeout') || SETTINGS_DEFAULT_ATTACH_TIMEOUT;
// Check to see if we need to use a user data directory, which will force Edge to launch with a new manager process.
// We generate a temp directory if the user opted in explicitly with 'true' (which is the default),
// Or if it is not defined and they are not using a custom browser path (such as electron).
// This matches the behavior of the chrome and edge debug extensions.
const browserPathSet = config.browserFlavor || 'Default';
let userDataDir: string | boolean | undefined;
if (typeof config.userDataDir !== 'undefined') {
userDataDir = config.userDataDir;
} else {
const settingsUserDataDir: string | boolean | undefined = settings.get('userDataDir');
if (typeof settingsUserDataDir !== 'undefined') {
userDataDir = settingsUserDataDir;
}
}
if (userDataDir === true || (typeof userDataDir === 'undefined' && browserPathSet === 'Default')) {
// Generate a temp directory
userDataDir = path.join(os.tmpdir(), `vscode-edge-devtools-userdatadir_${port}`);
} else if (!userDataDir) {
// Explicit opt-out
userDataDir = '';
}
return { hostname, port, useHttps, defaultUrl, userDataDir, timeout };
}