提交 d367f2f2 编写于 作者: R Rachel Macfarlane

Pass disable extensions as part of CLI configuration

上级 3ea42df3
...@@ -482,7 +482,7 @@ export class CodeWindow implements ICodeWindow { ...@@ -482,7 +482,7 @@ export class CodeWindow implements ICodeWindow {
}); });
} }
public load(config: IWindowConfiguration, isReload?: boolean, disableExtensions?: boolean): void { public load(config: IWindowConfiguration, isReload?: boolean): void {
// If this is the first time the window is loaded, we associate the paths // If this is the first time the window is loaded, we associate the paths
// directly with the window because we assume the loading will just work // directly with the window because we assume the loading will just work
...@@ -499,13 +499,6 @@ export class CodeWindow implements ICodeWindow { ...@@ -499,13 +499,6 @@ export class CodeWindow implements ICodeWindow {
this._readyState = ReadyState.NAVIGATING; this._readyState = ReadyState.NAVIGATING;
} }
// Copy the config so that the change to disable-extensions is not preserved
// on another reload.
const configuration = objects.mixin({}, config);
if (disableExtensions) {
configuration['disable-extensions'] = true;
}
// Clear Document Edited if needed // Clear Document Edited if needed
if (isMacintosh && this._win.isDocumentEdited()) { if (isMacintosh && this._win.isDocumentEdited()) {
if (!isReload || !this.backupMainService.isHotExitEnabled()) { if (!isReload || !this.backupMainService.isHotExitEnabled()) {
...@@ -524,7 +517,7 @@ export class CodeWindow implements ICodeWindow { ...@@ -524,7 +517,7 @@ export class CodeWindow implements ICodeWindow {
// Load URL // Load URL
mark('main:loadWindow'); mark('main:loadWindow');
this._win.loadURL(this.getUrl(configuration)); this._win.loadURL(this.getUrl(config));
// Make window visible if it did not open in N seconds because this indicates an error // Make window visible if it did not open in N seconds because this indicates an error
// Only do this when running out of sources and not when running tests // Only do this when running out of sources and not when running tests
...@@ -539,7 +532,7 @@ export class CodeWindow implements ICodeWindow { ...@@ -539,7 +532,7 @@ export class CodeWindow implements ICodeWindow {
} }
} }
public reload(configuration?: IWindowConfiguration, cli?: ParsedArgs, disableExtensions?: boolean): void { public reload(configuration?: IWindowConfiguration, cli?: ParsedArgs): void {
// If config is not provided, copy our current one // If config is not provided, copy our current one
if (!configuration) { if (!configuration) {
...@@ -562,10 +555,14 @@ export class CodeWindow implements ICodeWindow { ...@@ -562,10 +555,14 @@ export class CodeWindow implements ICodeWindow {
configuration['extensions-dir'] = cli['extensions-dir']; configuration['extensions-dir'] = cli['extensions-dir'];
} }
if (cli) {
configuration['disable-extensions'] = cli['disable-extensions'];
}
configuration.isInitialStartup = false; // since this is a reload configuration.isInitialStartup = false; // since this is a reload
// Load config // Load config
this.load(configuration, true, disableExtensions); this.load(configuration, true);
} }
private getUrl(windowConfiguration: IWindowConfiguration): string { private getUrl(windowConfiguration: IWindowConfiguration): string {
......
...@@ -1266,12 +1266,12 @@ export class WindowsManager implements IWindowsMainService { ...@@ -1266,12 +1266,12 @@ export class WindowsManager implements IWindowsMainService {
return state; return state;
} }
public reload(win: CodeWindow, cli?: ParsedArgs, disableExtensions?: boolean): void { public reload(win: CodeWindow, cli?: ParsedArgs): void {
// Only reload when the window has not vetoed this // Only reload when the window has not vetoed this
this.lifecycleService.unload(win, UnloadReason.RELOAD).done(veto => { this.lifecycleService.unload(win, UnloadReason.RELOAD).done(veto => {
if (!veto) { if (!veto) {
win.reload(void 0, cli, disableExtensions); win.reload(void 0, cli);
// Emit // Emit
this._onWindowReload.fire(win.id); this._onWindowReload.fire(win.id);
......
...@@ -108,8 +108,7 @@ export interface IWindowsService { ...@@ -108,8 +108,7 @@ export interface IWindowsService {
showSaveDialog(windowId: number, options: SaveDialogOptions): TPromise<string>; showSaveDialog(windowId: number, options: SaveDialogOptions): TPromise<string>;
showOpenDialog(windowId: number, options: OpenDialogOptions): TPromise<string[]>; showOpenDialog(windowId: number, options: OpenDialogOptions): TPromise<string[]>;
reloadWindow(windowId: number): TPromise<void>; reloadWindow(windowId: number, args?: ParsedArgs): TPromise<void>;
reloadWindowExtensionsDisabled(windowId: number): TPromise<void>;
openDevTools(windowId: number): TPromise<void>; openDevTools(windowId: number): TPromise<void>;
toggleDevTools(windowId: number): TPromise<void>; toggleDevTools(windowId: number): TPromise<void>;
closeWorkspace(windowId: number): TPromise<void>; closeWorkspace(windowId: number): TPromise<void>;
...@@ -184,8 +183,7 @@ export interface IWindowService { ...@@ -184,8 +183,7 @@ export interface IWindowService {
pickFileAndOpen(options: INativeOpenDialogOptions): TPromise<void>; pickFileAndOpen(options: INativeOpenDialogOptions): TPromise<void>;
pickFolderAndOpen(options: INativeOpenDialogOptions): TPromise<void>; pickFolderAndOpen(options: INativeOpenDialogOptions): TPromise<void>;
pickWorkspaceAndOpen(options: INativeOpenDialogOptions): TPromise<void>; pickWorkspaceAndOpen(options: INativeOpenDialogOptions): TPromise<void>;
reloadWindow(): TPromise<void>; reloadWindow(args?: ParsedArgs): TPromise<void>;
reloadWindowExtensionsDisabled(): TPromise<void>;
openDevTools(): TPromise<void>; openDevTools(): TPromise<void>;
toggleDevTools(): TPromise<void>; toggleDevTools(): TPromise<void>;
closeWorkspace(): TPromise<void>; closeWorkspace(): TPromise<void>;
......
...@@ -13,6 +13,7 @@ import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier, IWorkspaceFolde ...@@ -13,6 +13,7 @@ import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier, IWorkspaceFolde
import { IRecentlyOpened } from 'vs/platform/history/common/history'; import { IRecentlyOpened } from 'vs/platform/history/common/history';
import { ICommandAction } from 'vs/platform/actions/common/actions'; import { ICommandAction } from 'vs/platform/actions/common/actions';
import URI from 'vs/base/common/uri'; import URI from 'vs/base/common/uri';
import { ParsedArgs } from 'vs/platform/environment/common/environment';
export interface IWindowsChannel extends IChannel { export interface IWindowsChannel extends IChannel {
call(command: 'event:onWindowOpen'): TPromise<number>; call(command: 'event:onWindowOpen'): TPromise<number>;
...@@ -25,8 +26,7 @@ export interface IWindowsChannel extends IChannel { ...@@ -25,8 +26,7 @@ export interface IWindowsChannel extends IChannel {
call(command: 'showMessageBox', arg: [number, MessageBoxOptions]): TPromise<IMessageBoxResult>; call(command: 'showMessageBox', arg: [number, MessageBoxOptions]): TPromise<IMessageBoxResult>;
call(command: 'showSaveDialog', arg: [number, SaveDialogOptions]): TPromise<string>; call(command: 'showSaveDialog', arg: [number, SaveDialogOptions]): TPromise<string>;
call(command: 'showOpenDialog', arg: [number, OpenDialogOptions]): TPromise<string[]>; call(command: 'showOpenDialog', arg: [number, OpenDialogOptions]): TPromise<string[]>;
call(command: 'reloadWindow', arg: number): TPromise<void>; call(command: 'reloadWindow', arg: [number, ParsedArgs]): TPromise<void>;
call(command: 'reloadWindowExtensionsDisabled', arg: number): TPromise<void>;
call(command: 'toggleDevTools', arg: number): TPromise<void>; call(command: 'toggleDevTools', arg: number): TPromise<void>;
call(command: 'closeWorkspace', arg: number): TPromise<void>; call(command: 'closeWorkspace', arg: number): TPromise<void>;
call(command: 'createAndEnterWorkspace', arg: [number, IWorkspaceFolderCreationData[], string]): TPromise<IEnterWorkspaceResult>; call(command: 'createAndEnterWorkspace', arg: [number, IWorkspaceFolderCreationData[], string]): TPromise<IEnterWorkspaceResult>;
...@@ -92,8 +92,7 @@ export class WindowsChannel implements IWindowsChannel { ...@@ -92,8 +92,7 @@ export class WindowsChannel implements IWindowsChannel {
case 'showMessageBox': return this.service.showMessageBox(arg[0], arg[1]); case 'showMessageBox': return this.service.showMessageBox(arg[0], arg[1]);
case 'showSaveDialog': return this.service.showSaveDialog(arg[0], arg[1]); case 'showSaveDialog': return this.service.showSaveDialog(arg[0], arg[1]);
case 'showOpenDialog': return this.service.showOpenDialog(arg[0], arg[1]); case 'showOpenDialog': return this.service.showOpenDialog(arg[0], arg[1]);
case 'reloadWindowExtensionsDisabled': return this.service.reloadWindowExtensionsDisabled(arg); case 'reloadWindow': return this.service.reloadWindow(arg[0], arg[1]);
case 'reloadWindow': return this.service.reloadWindow(arg);
case 'openDevTools': return this.service.openDevTools(arg); case 'openDevTools': return this.service.openDevTools(arg);
case 'toggleDevTools': return this.service.toggleDevTools(arg); case 'toggleDevTools': return this.service.toggleDevTools(arg);
case 'closeWorkspace': return this.service.closeWorkspace(arg); case 'closeWorkspace': return this.service.closeWorkspace(arg);
...@@ -194,12 +193,8 @@ export class WindowsChannelClient implements IWindowsService { ...@@ -194,12 +193,8 @@ export class WindowsChannelClient implements IWindowsService {
return this.channel.call('showOpenDialog', [windowId, options]); return this.channel.call('showOpenDialog', [windowId, options]);
} }
reloadWindow(windowId: number): TPromise<void> { reloadWindow(windowId: number, args?: ParsedArgs): TPromise<void> {
return this.channel.call('reloadWindow', windowId); return this.channel.call('reloadWindow', [windowId, args]);
}
reloadWindowExtensionsDisabled(windowId: number): TPromise<void> {
return this.channel.call('reloadWindowExtensionsDisabled', windowId);
} }
openDevTools(windowId: number): TPromise<void> { openDevTools(windowId: number): TPromise<void> {
......
...@@ -11,6 +11,7 @@ import { IWindowService, IWindowsService, INativeOpenDialogOptions, IEnterWorksp ...@@ -11,6 +11,7 @@ import { IWindowService, IWindowsService, INativeOpenDialogOptions, IEnterWorksp
import { IRecentlyOpened } from 'vs/platform/history/common/history'; import { IRecentlyOpened } from 'vs/platform/history/common/history';
import { ICommandAction } from 'vs/platform/actions/common/actions'; import { ICommandAction } from 'vs/platform/actions/common/actions';
import { IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces'; import { IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
import { ParsedArgs } from 'vs/platform/environment/common/environment';
export class WindowService implements IWindowService { export class WindowService implements IWindowService {
...@@ -60,12 +61,8 @@ export class WindowService implements IWindowService { ...@@ -60,12 +61,8 @@ export class WindowService implements IWindowService {
return this.windowsService.pickWorkspaceAndOpen(options); return this.windowsService.pickWorkspaceAndOpen(options);
} }
reloadWindow(): TPromise<void> { reloadWindow(args?: ParsedArgs): TPromise<void> {
return this.windowsService.reloadWindow(this.windowId); return this.windowsService.reloadWindow(this.windowId, args);
}
reloadWindowExtensionsDisabled(): TPromise<void> {
return this.windowsService.reloadWindowExtensionsDisabled(this.windowId);
} }
openDevTools(): TPromise<void> { openDevTools(): TPromise<void> {
......
...@@ -12,7 +12,7 @@ import { assign } from 'vs/base/common/objects'; ...@@ -12,7 +12,7 @@ import { assign } from 'vs/base/common/objects';
import URI from 'vs/base/common/uri'; import URI from 'vs/base/common/uri';
import product from 'vs/platform/node/product'; import product from 'vs/platform/node/product';
import { IWindowsService, OpenContext, INativeOpenDialogOptions, IEnterWorkspaceResult, IMessageBoxResult } from 'vs/platform/windows/common/windows'; import { IWindowsService, OpenContext, INativeOpenDialogOptions, IEnterWorkspaceResult, IMessageBoxResult } from 'vs/platform/windows/common/windows';
import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IEnvironmentService, ParsedArgs } from 'vs/platform/environment/common/environment';
import { shell, crashReporter, app, Menu, clipboard } from 'electron'; import { shell, crashReporter, app, Menu, clipboard } from 'electron';
import Event, { chain, fromNodeEventEmitter } from 'vs/base/common/event'; import Event, { chain, fromNodeEventEmitter } from 'vs/base/common/event';
import { IURLService } from 'vs/platform/url/common/url'; import { IURLService } from 'vs/platform/url/common/url';
...@@ -107,22 +107,12 @@ export class WindowsService implements IWindowsService, IDisposable { ...@@ -107,22 +107,12 @@ export class WindowsService implements IWindowsService, IDisposable {
return this.windowsMainService.showOpenDialog(options, codeWindow); return this.windowsMainService.showOpenDialog(options, codeWindow);
} }
reloadWindowExtensionsDisabled(windowId: number): TPromise<void> { reloadWindow(windowId: number, args: ParsedArgs): TPromise<void> {
const codeWindow = this.windowsMainService.getWindowById(windowId);
if (codeWindow) {
this.windowsMainService.reload(codeWindow, undefined, true);
}
return TPromise.as(null);
}
reloadWindow(windowId: number): TPromise<void> {
this.logService.trace('windowsService#reloadWindow', windowId); this.logService.trace('windowsService#reloadWindow', windowId);
const codeWindow = this.windowsMainService.getWindowById(windowId); const codeWindow = this.windowsMainService.getWindowById(windowId);
if (codeWindow) { if (codeWindow) {
this.windowsMainService.reload(codeWindow); this.windowsMainService.reload(codeWindow, args);
} }
return TPromise.as(null); return TPromise.as(null);
......
...@@ -569,7 +569,7 @@ export class ReloadWindowWithExtensionsDisabledAction extends Action { ...@@ -569,7 +569,7 @@ export class ReloadWindowWithExtensionsDisabledAction extends Action {
} }
run(): TPromise<boolean> { run(): TPromise<boolean> {
return this.windowService.reloadWindowExtensionsDisabled().then(() => true); return this.windowService.reloadWindow({ _: [], 'disable-extensions': true }).then(() => true);
} }
} }
......
...@@ -927,10 +927,6 @@ export class TestWindowService implements IWindowService { ...@@ -927,10 +927,6 @@ export class TestWindowService implements IWindowService {
return TPromise.as(void 0); return TPromise.as(void 0);
} }
reloadWindowExtensionsDisabled(): TPromise<void> {
return TPromise.as(void 0);
}
openDevTools(): TPromise<void> { openDevTools(): TPromise<void> {
return TPromise.as(void 0); return TPromise.as(void 0);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册