Archived
Merge from vscode 78a4c91400152c0f27ba4d363eb56d2835f9903a (#9506)
* Merge from vscode 78a4c91400152c0f27ba4d363eb56d2835f9903a * fix hygiene
This commit is contained in:
@@ -179,13 +179,6 @@ steps:
|
|||||||
zip -d $(agent.builddirectory)/VSCode-darwin.zip "*.pkg"
|
zip -d $(agent.builddirectory)/VSCode-darwin.zip "*.pkg"
|
||||||
displayName: Clean Archive
|
displayName: Clean Archive
|
||||||
|
|
||||||
- script: |
|
|
||||||
set -e
|
|
||||||
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
|
|
||||||
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
|
|
||||||
node build/azure-pipelines/common/createAsset.js darwin-unnotarized archive "VSCode-darwin-$VSCODE_QUALITY.zip" $(agent.builddirectory)/VSCode-darwin.zip
|
|
||||||
displayName: Publish Unnotarized Build
|
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
|
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
|
||||||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Dependencies shared by all extensions",
|
"description": "Dependencies shared by all extensions",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"typescript": "3.8.2"
|
"typescript": "3.8.3"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postinstall": "node ./postinstall"
|
"postinstall": "node ./postinstall"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
typescript@3.8.2:
|
typescript@3.8.3:
|
||||||
version "3.8.2"
|
version "3.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
|
||||||
integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==
|
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
|
||||||
|
|||||||
@@ -176,7 +176,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .signature-label {
|
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .signature-label {
|
||||||
overflow: auto;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,6 +228,7 @@
|
|||||||
|
|
||||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left {
|
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left {
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
|
flex-grow: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .monaco-icon-label {
|
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .monaco-icon-label {
|
||||||
|
|||||||
@@ -144,11 +144,10 @@ class ItemRenderer implements IListRenderer<CompletionItem, ISuggestionTemplateD
|
|||||||
const text = append(container, $('.contents'));
|
const text = append(container, $('.contents'));
|
||||||
const main = append(text, $('.main'));
|
const main = append(text, $('.main'));
|
||||||
|
|
||||||
|
data.iconContainer = append(main, $('.icon-label.codicon'));
|
||||||
data.left = append(main, $('span.left'));
|
data.left = append(main, $('span.left'));
|
||||||
data.right = append(main, $('span.right'));
|
data.right = append(main, $('span.right'));
|
||||||
|
|
||||||
data.iconContainer = append(data.left, $('.icon-label.codicon'));
|
|
||||||
|
|
||||||
data.iconLabel = new IconLabel(data.left, { supportHighlights: true, supportCodicons: true });
|
data.iconLabel = new IconLabel(data.left, { supportHighlights: true, supportCodicons: true });
|
||||||
data.disposables.add(data.iconLabel);
|
data.disposables.add(data.iconLabel);
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import { dirExists } from 'vs/base/node/pfs';
|
|||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { ITelemetryData, ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
import { ITelemetryData, ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||||
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
|
|
||||||
export interface IElectronMainService extends AddFirstParameterToFunctions<IElectronService, Promise<any> /* only methods, not events */, number | undefined /* window ID */> { }
|
export interface IElectronMainService extends AddFirstParameterToFunctions<IElectronService, Promise<any> /* only methods, not events */, number | undefined /* window ID */> { }
|
||||||
|
|
||||||
@@ -34,7 +35,8 @@ export class ElectronMainService implements IElectronMainService {
|
|||||||
@IDialogMainService private readonly dialogMainService: IDialogMainService,
|
@IDialogMainService private readonly dialogMainService: IDialogMainService,
|
||||||
@ILifecycleMainService private readonly lifecycleMainService: ILifecycleMainService,
|
@ILifecycleMainService private readonly lifecycleMainService: ILifecycleMainService,
|
||||||
@IEnvironmentService private readonly environmentService: IEnvironmentService,
|
@IEnvironmentService private readonly environmentService: IEnvironmentService,
|
||||||
@ITelemetryService private readonly telemetryService: ITelemetryService
|
@ITelemetryService private readonly telemetryService: ITelemetryService,
|
||||||
|
@ILogService private readonly logService: ILogService
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,6 +394,7 @@ export class ElectronMainService implements IElectronMainService {
|
|||||||
|
|
||||||
async startCrashReporter(windowId: number | undefined, options: CrashReporterStartOptions): Promise<void> {
|
async startCrashReporter(windowId: number | undefined, options: CrashReporterStartOptions): Promise<void> {
|
||||||
crashReporter.start(options);
|
crashReporter.start(options);
|
||||||
|
this.logService.trace('ElectronMainService#crashReporter', JSON.stringify(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export interface IProductConfiguration {
|
|||||||
readonly checksums?: { [path: string]: string; };
|
readonly checksums?: { [path: string]: string; };
|
||||||
readonly checksumFailMoreInfoUrl?: string;
|
readonly checksumFailMoreInfoUrl?: string;
|
||||||
|
|
||||||
readonly hockeyApp?: {
|
readonly appCenter?: {
|
||||||
readonly 'win32-ia32': string;
|
readonly 'win32-ia32': string;
|
||||||
readonly 'win32-x64': string;
|
readonly 'win32-x64': string;
|
||||||
readonly 'linux-x64': string;
|
readonly 'linux-x64': string;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
|
|||||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { generateUuid } from 'vs/base/common/uuid';
|
import { generateUuid } from 'vs/base/common/uuid';
|
||||||
import { instanceStorageKey, firstSessionDateStorageKey, lastSessionDateStorageKey, currentSessionDateStorageKey } from 'vs/platform/telemetry/common/telemetry';
|
import { instanceStorageKey, firstSessionDateStorageKey, lastSessionDateStorageKey, currentSessionDateStorageKey, crashReporterIdStorageKey } from 'vs/platform/telemetry/common/telemetry';
|
||||||
|
|
||||||
type Key = string;
|
type Key = string;
|
||||||
type Value = string;
|
type Value = string;
|
||||||
@@ -54,6 +54,16 @@ export class GlobalStorageDatabaseChannel extends Disposable implements IServerC
|
|||||||
this.logService.error(error);
|
this.logService.error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is unique to the application instance and thereby
|
||||||
|
// should be written from the main process once.
|
||||||
|
//
|
||||||
|
// THIS SHOULD NEVER BE SENT TO TELEMETRY.
|
||||||
|
//
|
||||||
|
const crashReporterId = this.storageMainService.get(crashReporterIdStorageKey, undefined);
|
||||||
|
if (crashReporterId === undefined) {
|
||||||
|
this.storageMainService.store(crashReporterIdStorageKey, generateUuid());
|
||||||
|
}
|
||||||
|
|
||||||
// Apply global telemetry values as part of the initialization
|
// Apply global telemetry values as part of the initialization
|
||||||
// These are global across all windows and thereby should be
|
// These are global across all windows and thereby should be
|
||||||
// written from the main process once.
|
// written from the main process once.
|
||||||
|
|||||||
@@ -45,3 +45,4 @@ export const instanceStorageKey = 'telemetry.instanceId';
|
|||||||
export const currentSessionDateStorageKey = 'telemetry.currentSessionDate';
|
export const currentSessionDateStorageKey = 'telemetry.currentSessionDate';
|
||||||
export const firstSessionDateStorageKey = 'telemetry.firstSessionDate';
|
export const firstSessionDateStorageKey = 'telemetry.firstSessionDate';
|
||||||
export const lastSessionDateStorageKey = 'telemetry.lastSessionDate';
|
export const lastSessionDateStorageKey = 'telemetry.lastSessionDate';
|
||||||
|
export const crashReporterIdStorageKey = 'crashReporter.guid';
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.monaco-workbench .part.panel > .composite.title > .composite-bar-excess {
|
.monaco-workbench .part.panel > .composite.title > .composite-bar-excess {
|
||||||
width: 100%;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.monaco-workbench .part.panel > .title > .panel-switcher-container > .monaco-action-bar {
|
.monaco-workbench .part.panel > .title > .panel-switcher-container > .monaco-action-bar {
|
||||||
|
|||||||
@@ -687,10 +687,6 @@ export abstract class TextResourceEditorInput extends EditorInput {
|
|||||||
return false; // untitled is never readonly
|
return false; // untitled is never readonly
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.fileService.canHandleResource(this.resource)) {
|
|
||||||
return true; // resources without file support are always readonly
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.fileService.hasCapability(this.resource, FileSystemProviderCapabilities.Readonly);
|
return this.fileService.hasCapability(this.resource, FileSystemProviderCapabilities.Readonly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -262,7 +262,8 @@ function compareViewContentDescriptors(a: IViewContentDescriptor, b: IViewConten
|
|||||||
return aPriority - bPriority;
|
return aPriority - bPriority;
|
||||||
}
|
}
|
||||||
|
|
||||||
return a.content < b.content ? -1 : 1;
|
// No priroity, keep views sorted in the order they got registered
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ViewsRegistry extends Disposable implements IViewsRegistry {
|
class ViewsRegistry extends Disposable implements IViewsRegistry {
|
||||||
@@ -601,4 +602,3 @@ export interface IViewPaneContainer {
|
|||||||
getView(viewId: string): IView | undefined;
|
getView(viewId: string): IView | undefined;
|
||||||
saveState(): void;
|
saveState(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -260,6 +260,17 @@ export class BulkFileOperations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sort (once) categories atop which have unconfirmed edits
|
||||||
|
this.categories.sort((a, b) => {
|
||||||
|
if (a.metadata.needsConfirmation === b.metadata.needsConfirmation) {
|
||||||
|
return a.metadata.label.localeCompare(b.metadata.label);
|
||||||
|
} else if (a.metadata.needsConfirmation) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -258,19 +258,6 @@ export class BulkEditDataSource implements IAsyncDataSource<BulkFileOperations,
|
|||||||
export class BulkEditSorter implements ITreeSorter<BulkEditElement> {
|
export class BulkEditSorter implements ITreeSorter<BulkEditElement> {
|
||||||
|
|
||||||
compare(a: BulkEditElement, b: BulkEditElement): number {
|
compare(a: BulkEditElement, b: BulkEditElement): number {
|
||||||
if (a instanceof CategoryElement && b instanceof CategoryElement) {
|
|
||||||
//
|
|
||||||
const aConfirm = BulkEditSorter._needsConfirmation(a.category);
|
|
||||||
const bConfirm = BulkEditSorter._needsConfirmation(b.category);
|
|
||||||
if (aConfirm === bConfirm) {
|
|
||||||
return a.category.metadata.label.localeCompare(b.category.metadata.label);
|
|
||||||
} else if (aConfirm) {
|
|
||||||
return -1;
|
|
||||||
} else {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (a instanceof FileElement && b instanceof FileElement) {
|
if (a instanceof FileElement && b instanceof FileElement) {
|
||||||
return compare(a.edit.uri.toString(), b.edit.uri.toString());
|
return compare(a.edit.uri.toString(), b.edit.uri.toString());
|
||||||
}
|
}
|
||||||
@@ -281,10 +268,6 @@ export class BulkEditSorter implements ITreeSorter<BulkEditElement> {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static _needsConfirmation(a: BulkCategory): boolean {
|
|
||||||
return a.fileOperations.some(ops => ops.needsConfirmation());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- ACCESSI
|
// --- ACCESSI
|
||||||
|
|||||||
@@ -857,6 +857,6 @@ registerThemingParticipant((theme, collector) => {
|
|||||||
const linkFg = theme.getColor(textLinkForeground);
|
const linkFg = theme.getColor(textLinkForeground);
|
||||||
if (linkFg) {
|
if (linkFg) {
|
||||||
collector.addRule(`.markers-panel .markers-panel-container .tree-container .monaco-tl-contents .details-container a.code-link .marker-code > span:hover { color: ${linkFg}; }`);
|
collector.addRule(`.markers-panel .markers-panel-container .tree-container .monaco-tl-contents .details-container a.code-link .marker-code > span:hover { color: ${linkFg}; }`);
|
||||||
collector.addRule(`.markers-panel .markers-panel-container .tree-container .monaco-list:focus .monaco-tl-contents .details-container a.code-link .marker-code > span:hover { color: ${linkFg.lighten(.4)}; }`);
|
collector.addRule(`.markers-panel .markers-panel-container .tree-container .monaco-list:focus .monaco-tl-contents .details-container a.code-link .marker-code > span:hover { color: inherit; }`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
import * as nls from 'vs/nls';
|
import * as nls from 'vs/nls';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import * as errors from 'vs/base/common/errors';
|
import * as errors from 'vs/base/common/errors';
|
||||||
import { equals, deepClone, assign } from 'vs/base/common/objects';
|
import { equals, deepClone } from 'vs/base/common/objects';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import { Separator } from 'vs/base/browser/ui/actionbar/actionbar';
|
import { Separator } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||||
import { IAction } from 'vs/base/common/actions';
|
import { IAction } from 'vs/base/common/actions';
|
||||||
import { IFileService } from 'vs/platform/files/common/files';
|
import { IFileService } from 'vs/platform/files/common/files';
|
||||||
import { toResource, IUntitledTextResourceInput, SideBySideEditor, pathsToEditors } from 'vs/workbench/common/editor';
|
import { toResource, IUntitledTextResourceInput, SideBySideEditor, pathsToEditors } from 'vs/workbench/common/editor';
|
||||||
import { IEditorService, IResourceEditor } from 'vs/workbench/services/editor/common/editorService';
|
import { IEditorService, IResourceEditor } from 'vs/workbench/services/editor/common/editorService';
|
||||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
import { ITelemetryService, crashReporterIdStorageKey } from 'vs/platform/telemetry/common/telemetry';
|
||||||
import { IWindowSettings, IOpenFileRequest, IWindowsConfiguration, IAddFoldersRequest, IRunActionInWindowRequest, IRunKeybindingInWindowRequest, getTitleBarStyle } from 'vs/platform/windows/common/windows';
|
import { IWindowSettings, IOpenFileRequest, IWindowsConfiguration, IAddFoldersRequest, IRunActionInWindowRequest, IRunKeybindingInWindowRequest, getTitleBarStyle } from 'vs/platform/windows/common/windows';
|
||||||
import { ITitleService } from 'vs/workbench/services/title/common/titleService';
|
import { ITitleService } from 'vs/workbench/services/title/common/titleService';
|
||||||
import { IWorkbenchThemeService, VS_HC_THEME } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IWorkbenchThemeService, VS_HC_THEME } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
@@ -46,7 +46,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
|
|||||||
import { MenubarControl } from '../browser/parts/titlebar/menubarControl';
|
import { MenubarControl } from '../browser/parts/titlebar/menubarControl';
|
||||||
import { ILabelService } from 'vs/platform/label/common/label';
|
import { ILabelService } from 'vs/platform/label/common/label';
|
||||||
import { IUpdateService } from 'vs/platform/update/common/update';
|
import { IUpdateService } from 'vs/platform/update/common/update';
|
||||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||||
import { IPreferencesService } from '../services/preferences/common/preferences';
|
import { IPreferencesService } from '../services/preferences/common/preferences';
|
||||||
import { IMenubarService, IMenubarData, IMenubarMenu, IMenubarKeybinding, IMenubarMenuItemSubmenu, IMenubarMenuItemAction, MenubarMenuItem } from 'vs/platform/menubar/node/menubar';
|
import { IMenubarService, IMenubarData, IMenubarMenu, IMenubarKeybinding, IMenubarMenuItemSubmenu, IMenubarMenuItemAction, MenubarMenuItem } from 'vs/platform/menubar/node/menubar';
|
||||||
import { withNullAsUndefined, assertIsDefined } from 'vs/base/common/types';
|
import { withNullAsUndefined, assertIsDefined } from 'vs/base/common/types';
|
||||||
@@ -104,7 +104,8 @@ export class ElectronWindow extends Disposable {
|
|||||||
@IWorkbenchLayoutService private readonly layoutService: IWorkbenchLayoutService,
|
@IWorkbenchLayoutService private readonly layoutService: IWorkbenchLayoutService,
|
||||||
@IElectronEnvironmentService private readonly electronEnvironmentService: IElectronEnvironmentService,
|
@IElectronEnvironmentService private readonly electronEnvironmentService: IElectronEnvironmentService,
|
||||||
@IWorkingCopyService private readonly workingCopyService: IWorkingCopyService,
|
@IWorkingCopyService private readonly workingCopyService: IWorkingCopyService,
|
||||||
@IFilesConfigurationService private readonly filesConfigurationService: IFilesConfigurationService
|
@IFilesConfigurationService private readonly filesConfigurationService: IFilesConfigurationService,
|
||||||
|
@IStorageService private readonly storageService: IStorageService,
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
@@ -422,8 +423,8 @@ export class ElectronWindow extends Disposable {
|
|||||||
this.updateTouchbarMenu();
|
this.updateTouchbarMenu();
|
||||||
|
|
||||||
// Crash reporter (if enabled)
|
// Crash reporter (if enabled)
|
||||||
if (!this.environmentService.disableCrashReporter && product.crashReporter && product.hockeyApp && this.configurationService.getValue('telemetry.enableCrashReporter')) {
|
if (!this.environmentService.disableCrashReporter && product.crashReporter && product.appCenter && this.configurationService.getValue('telemetry.enableCrashReporter')) {
|
||||||
this.setupCrashReporter(product.crashReporter.companyName, product.crashReporter.productName, product.hockeyApp);
|
this.setupCrashReporter(product.crashReporter.companyName, product.crashReporter.productName, product.appCenter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -536,31 +537,36 @@ export class ElectronWindow extends Disposable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async setupCrashReporter(companyName: string, productName: string, hockeyAppConfig: typeof product.hockeyApp): Promise<void> {
|
private async setupCrashReporter(companyName: string, productName: string, appCenterConfig: typeof product.appCenter): Promise<void> {
|
||||||
if (!hockeyAppConfig) {
|
if (!appCenterConfig) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const appCenterURL = isWindows ? appCenterConfig[process.arch === 'ia32' ? 'win32-ia32' : 'win32-x64']
|
||||||
|
: isLinux ? appCenterConfig[`linux-x64`] : appCenterConfig.darwin;
|
||||||
|
const info = await this.telemetryService.getTelemetryInfo();
|
||||||
|
const crashReporterId = this.storageService.get(crashReporterIdStorageKey, StorageScope.GLOBAL)!;
|
||||||
|
|
||||||
// base options with product info
|
// base options with product info
|
||||||
const options: CrashReporterStartOptions = {
|
const options: CrashReporterStartOptions = {
|
||||||
companyName,
|
companyName,
|
||||||
productName,
|
productName,
|
||||||
submitURL: isWindows ? hockeyAppConfig[process.arch === 'ia32' ? 'win32-ia32' : 'win32-x64'] : isLinux ? hockeyAppConfig[`linux-x64`] : hockeyAppConfig.darwin,
|
submitURL: appCenterURL.concat('&uid=', crashReporterId, '&iid=', crashReporterId, '&sid=', info.sessionId),
|
||||||
extra: {
|
extra: {
|
||||||
vscode_version: product.version,
|
vscode_version: product.version,
|
||||||
vscode_commit: product.commit || ''
|
vscode_commit: product.commit || ''
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// mixin telemetry info
|
// start crash reporter in the main process first.
|
||||||
const info = await this.telemetryService.getTelemetryInfo();
|
// On windows crashpad excepts a name pipe for the client to connect,
|
||||||
assign(options.extra, { vscode_sessionId: info.sessionId });
|
// this pipe is created by crash reporter initialization from the main process,
|
||||||
|
// changing this order of initialization will cause issues.
|
||||||
|
// For more info: https://chromium.googlesource.com/crashpad/crashpad/+/HEAD/doc/overview_design.md#normal-registration
|
||||||
|
await this.electronService.startCrashReporter(options);
|
||||||
|
|
||||||
// start crash reporter right here
|
// start crash reporter right here
|
||||||
crashReporter.start(deepClone(options));
|
crashReporter.start(deepClone(options));
|
||||||
|
|
||||||
// start crash reporter in the main process
|
|
||||||
return this.electronService.startCrashReporter(options);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private onAddFoldersRequest(request: IAddFoldersRequest): void {
|
private onAddFoldersRequest(request: IAddFoldersRequest): void {
|
||||||
|
|||||||
Reference in New Issue
Block a user