Skip to content

Commit 465c550

Browse files
committed
move update to platform
1 parent 05c7946 commit 465c550

7 files changed

Lines changed: 75 additions & 61 deletions

File tree

src/vs/code/electron-main/main.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import { WindowsService } from 'vs/platform/windows/electron-main/windowsService
1919
import { WindowEventChannel } from 'vs/code/common/windowsIpc';
2020
import { ILifecycleService, LifecycleService } from 'vs/code/electron-main/lifecycle';
2121
import { VSCodeMenu } from 'vs/code/electron-main/menus';
22-
import { IUpdateService, UpdateManager } from 'vs/code/electron-main/update-manager';
22+
import { IUpdateService } from 'vs/platform/update/common/update';
23+
import { UpdateService } from 'vs/platform/update/electron-main/updateService';
2324
import { Server as ElectronIPCServer } from 'vs/base/parts/ipc/electron-main/ipc.electron-main';
2425
import { Server, serve, connect } from 'vs/base/parts/ipc/node/ipc.net';
2526
import { TPromise } from 'vs/base/common/winjs.base';
@@ -454,7 +455,7 @@ function start(): void {
454455
services.set(IStorageService, new SyncDescriptor(StorageService));
455456
services.set(IConfigurationService, new SyncDescriptor(ConfigurationService));
456457
services.set(IRequestService, new SyncDescriptor(RequestService));
457-
services.set(IUpdateService, new SyncDescriptor(UpdateManager));
458+
services.set(IUpdateService, new SyncDescriptor(UpdateService));
458459
services.set(IURLService, new SyncDescriptor(URLService, args['open-url']));
459460

460461
const instantiationService = new InstantiationService(services);

src/vs/code/electron-main/menus.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { IPath, VSCodeWindow } from 'vs/code/electron-main/window';
1515
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1616
import { IStorageService } from 'vs/code/electron-main/storage';
1717
import { IFilesConfiguration, AutoSaveConfiguration } from 'vs/platform/files/common/files';
18-
import { IUpdateService, State as UpdateState } from 'vs/code/electron-main/update-manager';
18+
import { IUpdateService, State as UpdateState } from 'vs/platform/update/common/update';
1919
import { Keybinding } from 'vs/base/common/keybinding';
2020
import product from 'vs/platform/product';
2121

src/vs/code/electron-main/windows.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { ipcMain as ipc, app, screen, BrowserWindow, dialog } from 'electron';
2222
import { IPathWithLineAndColumn, parseLineAndColumnAware } from 'vs/code/electron-main/paths';
2323
import { ILifecycleService } from 'vs/code/electron-main/lifecycle';
2424
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
25-
import { IUpdateService } from 'vs/code/electron-main/update-manager';
25+
import { IUpdateService } from 'vs/platform/update/common/update';
2626
import { ILogService } from 'vs/code/electron-main/log';
2727
import { IWindowEventService } from 'vs/code/common/windows';
2828
import { createDecorator, IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
'use strict';
7+
8+
import Event from 'vs/base/common/event';
9+
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
10+
import { TPromise } from 'vs/base/common/winjs.base';
11+
12+
export enum State {
13+
Uninitialized,
14+
Idle,
15+
CheckingForUpdate,
16+
UpdateAvailable,
17+
UpdateDownloaded
18+
}
19+
20+
export enum ExplicitState {
21+
Implicit,
22+
Explicit
23+
}
24+
25+
export interface IRawUpdate {
26+
releaseNotes: string;
27+
version: string;
28+
date: Date;
29+
}
30+
31+
export interface IUpdate {
32+
version: string;
33+
date?: Date;
34+
releaseNotes?: string;
35+
url?: string;
36+
}
37+
38+
export interface IAutoUpdater extends NodeJS.EventEmitter {
39+
setFeedURL(url: string): void;
40+
checkForUpdates(): void;
41+
quitAndInstall(): void;
42+
}
43+
44+
export const IUpdateService = createDecorator<IUpdateService>('updateService');
45+
46+
export interface IUpdateService {
47+
_serviceBrand: any;
48+
49+
readonly onError: Event<any>;
50+
readonly onUpdateAvailable: Event<{ url: string; version: string; }>;
51+
readonly onUpdateNotAvailable: Event<boolean>;
52+
readonly onUpdateReady: Event<IRawUpdate>;
53+
readonly onStateChange: Event<void>;
54+
55+
readonly state: State;
56+
checkForUpdates(explicit: boolean): TPromise<IUpdate>;
57+
quitAndInstall(): void;
58+
}

src/vs/code/electron-main/auto-updater.linux.ts renamed to src/vs/platform/update/electron-main/auto-updater.linux.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@ import { isString } from 'vs/base/common/types';
1010
import { Promise } from 'vs/base/common/winjs.base';
1111
import { asJson } from 'vs/base/node/request';
1212
import { IRequestService } from 'vs/platform/request/common/request';
13+
import { IAutoUpdater } from 'vs/platform/update/common/update';
1314
import product from 'vs/platform/product';
1415

15-
export interface IUpdate {
16+
interface IUpdate {
1617
url: string;
1718
name: string;
1819
releaseNotes?: string;
1920
version?: string;
2021
}
2122

22-
export class LinuxAutoUpdaterImpl extends EventEmitter {
23+
export class LinuxAutoUpdaterImpl extends EventEmitter implements IAutoUpdater {
2324

2425
private url: string;
2526
private currentRequest: Promise;

src/vs/code/electron-main/auto-updater.win32.ts renamed to src/vs/platform/update/electron-main/auto-updater.win32.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ import { Promise, TPromise } from 'vs/base/common/winjs.base';
1717
import { download, asJson } from 'vs/base/node/request';
1818
import { ILifecycleService } from 'vs/code/electron-main/lifecycle';
1919
import { IRequestService } from 'vs/platform/request/common/request';
20+
import { IAutoUpdater } from 'vs/platform/update/common/update';
2021
import product from 'vs/platform/product';
2122

22-
export interface IUpdate {
23+
interface IUpdate {
2324
url: string;
2425
name: string;
2526
releaseNotes?: string;
@@ -28,7 +29,7 @@ export interface IUpdate {
2829
hash: string;
2930
}
3031

31-
export class Win32AutoUpdaterImpl extends EventEmitter {
32+
export class Win32AutoUpdaterImpl extends EventEmitter implements IAutoUpdater {
3233

3334
private url: string = null;
3435
private currentRequest: Promise = null;

src/vs/code/electron-main/update-manager.ts renamed to src/vs/platform/update/electron-main/updateService.ts

Lines changed: 6 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,69 +14,22 @@ import { always, Throttler } from 'vs/base/common/async';
1414
import { memoize } from 'vs/base/common/decorators';
1515
import { fromEventEmitter } from 'vs/base/node/event';
1616
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
17-
import { Win32AutoUpdaterImpl } from 'vs/code/electron-main/auto-updater.win32';
18-
import { LinuxAutoUpdaterImpl } from 'vs/code/electron-main/auto-updater.linux';
17+
import { Win32AutoUpdaterImpl } from './auto-updater.win32';
18+
import { LinuxAutoUpdaterImpl } from './auto-updater.linux';
1919
import { ILifecycleService } from 'vs/code/electron-main/lifecycle';
20-
import { createDecorator, IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
20+
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
2121
import { IRequestService } from 'vs/platform/request/common/request';
2222
import product from 'vs/platform/product';
2323
import { TPromise } from 'vs/base/common/winjs.base';
24+
import { IUpdateService, State, IAutoUpdater, IUpdate, IRawUpdate } from 'vs/platform/update/common/update';
2425

25-
export enum State {
26-
Uninitialized,
27-
Idle,
28-
CheckingForUpdate,
29-
UpdateAvailable,
30-
UpdateDownloaded
31-
}
32-
33-
export enum ExplicitState {
34-
Implicit,
35-
Explicit
36-
}
37-
38-
export interface IRawUpdate {
39-
releaseNotes: string;
40-
version: string;
41-
date: Date;
42-
}
43-
44-
export interface IUpdate {
45-
version: string;
46-
date?: Date;
47-
releaseNotes?: string;
48-
url?: string;
49-
}
50-
51-
interface IRawAutoUpdater extends NodeJS.EventEmitter {
52-
setFeedURL(url: string): void;
53-
checkForUpdates(): void;
54-
quitAndInstall(): void;
55-
}
56-
57-
export const IUpdateService = createDecorator<IUpdateService>('updateService');
58-
59-
export interface IUpdateService {
60-
_serviceBrand: any;
61-
62-
readonly onError: Event<any>;
63-
readonly onUpdateAvailable: Event<{ url: string; version: string; }>;
64-
readonly onUpdateNotAvailable: Event<boolean>;
65-
readonly onUpdateReady: Event<IRawUpdate>;
66-
readonly onStateChange: Event<void>;
67-
68-
readonly state: State;
69-
checkForUpdates(explicit: boolean): TPromise<IUpdate>;
70-
quitAndInstall(): void;
71-
}
72-
73-
export class UpdateManager implements IUpdateService {
26+
export class UpdateService implements IUpdateService {
7427

7528
_serviceBrand: any;
7629

7730
private _state: State = State.Uninitialized;
7831
private _availableUpdate: IUpdate = null;
79-
private raw: IRawAutoUpdater;
32+
private raw: IAutoUpdater;
8033
private throttler: Throttler = new Throttler();
8134

8235
private _onError = new Emitter<any>();

0 commit comments

Comments
 (0)