3
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
4
*--------------------------------------------------------------------------------------------*/
5
5
6
- import * as vscode from 'vscode' ;
7
6
import { ExtensionServiceDefinition , ExtensionServiceImplementation , GetWorkspaceAuthInfoRequest , GetWorkspaceAuthInfoResponse , LocalSSHServiceDefinition , ExtensionServicePingRequest , SendErrorReportRequest , SendLocalSSHUserFlowStatusRequest , SendLocalSSHUserFlowStatusRequest_Code , SendLocalSSHUserFlowStatusRequest_ConnType , SendLocalSSHUserFlowStatusRequest_Status } from '../../proto/typescript/ipc/v1/ipc' ;
8
7
import { Disposable } from '../../common/dispose' ;
9
8
import { retry , timeout } from '../../common/async' ;
@@ -17,8 +16,6 @@ import { ISessionService } from '../../services/sessionService';
17
16
import { CallContext , ServerError , Status } from 'nice-grpc-common' ;
18
17
import { IHostService } from '../../services/hostService' ;
19
18
import { Server , createClient , createServer , createChannel } from 'nice-grpc' ;
20
- import { INotificationService } from '../../services/notificationService' ;
21
- import { getGitpodRemoteWindowConnectionInfo , showWsNotRunningDialog } from '../../remote' ;
22
19
import { ITelemetryService , UserFlowTelemetry } from '../../services/telemetryService' ;
23
20
import { ExperimentalSettings } from '../../experiments' ;
24
21
import { Configuration } from '../../configuration' ;
@@ -38,23 +35,14 @@ const phaseMap: Record<WorkspaceInstanceStatus_Phase, WorkspaceInstancePhase | u
38
35
} ;
39
36
40
37
export class ExtensionServiceImpl implements ExtensionServiceImplementation {
41
- private notificationGapSet = new Set < string > ( ) ;
42
-
43
- constructor ( private readonly context : vscode . ExtensionContext , private logService : ILogService , private sessionService : ISessionService , private hostService : IHostService , private notificationService : INotificationService , private experiments : ExperimentalSettings , private telemetryService : ITelemetryService ) { }
38
+ constructor (
39
+ private logService : ILogService ,
40
+ private sessionService : ISessionService ,
41
+ private hostService : IHostService ,
42
+ private experiments : ExperimentalSettings ,
43
+ private telemetryService : ITelemetryService
44
+ ) {
44
45
45
- private canShowNotification ( id : string ) {
46
- let remoteConnectionInfo = getGitpodRemoteWindowConnectionInfo ( this . context ) ;
47
- if ( ! remoteConnectionInfo || remoteConnectionInfo . connectionInfo . workspaceId !== id ) {
48
- return false ;
49
- }
50
- if ( this . notificationGapSet . has ( id ) ) {
51
- return false ;
52
- }
53
- this . notificationGapSet . add ( id ) ;
54
- setTimeout ( ( ) => {
55
- this . notificationGapSet . delete ( id ) ;
56
- } , 10000 ) ; // clean gap after 10s
57
- return true ;
58
46
}
59
47
60
48
async ping ( _request : ExtensionServicePingRequest , _context : CallContext ) : Promise < { } > {
@@ -80,11 +68,6 @@ export class ExtensionServiceImpl implements ExtensionServiceImplementation {
80
68
81
69
const phase = usePublicApi ? phaseMap [ ( workspace as Workspace ) . status ?. instance ?. status ?. phase ?? WorkspaceInstanceStatus_Phase . UNSPECIFIED ] : ( workspace as WorkspaceInfo ) . latestInstance ?. status . phase ;
82
70
if ( phase !== 'running' ) {
83
- const show = this . canShowNotification ( workspaceId ) ;
84
- if ( show ) {
85
- const flow : UserFlowTelemetry = { workspaceId, gitpodHost, userId : userId , flow : 'extension_ipc' } ;
86
- showWsNotRunningDialog ( workspaceId , gitpodHost , flow , this . notificationService , this . logService ) ;
87
- }
88
71
throw new ServerError ( Status . UNAVAILABLE , 'workspace is not running, current phase: ' + phase ) ;
89
72
}
90
73
@@ -161,11 +144,9 @@ export class ExtensionServiceServer extends Disposable {
161
144
private localSSHServiceClient = createClient ( LocalSSHServiceDefinition , createChannel ( '127.0.0.1:' + Configuration . getLocalSshIpcPort ( ) ) ) ;
162
145
163
146
constructor (
164
- private readonly context : vscode . ExtensionContext ,
165
147
private readonly logService : ILogService ,
166
148
private readonly sessionService : ISessionService ,
167
149
private readonly hostService : IHostService ,
168
- private readonly notificationService : INotificationService ,
169
150
private readonly telemetryService : ITelemetryService ,
170
151
private experiments : ExperimentalSettings ,
171
152
) {
@@ -180,7 +161,7 @@ export class ExtensionServiceServer extends Disposable {
180
161
181
162
private getServer ( ) : Server {
182
163
const server = createServer ( ) ;
183
- const serviceImpl = new ExtensionServiceImpl ( this . context , this . logService , this . sessionService , this . hostService , this . notificationService , this . experiments , this . telemetryService ) ;
164
+ const serviceImpl = new ExtensionServiceImpl ( this . logService , this . sessionService , this . hostService , this . experiments , this . telemetryService ) ;
184
165
server . add ( ExtensionServiceDefinition , serviceImpl ) ;
185
166
return server ;
186
167
}
0 commit comments