ProtocolHandler

This commit is contained in:
Joao Moreno
2018-04-21 10:45:22 +02:00
parent f4e9ff4773
commit e2b07d79da
6 changed files with 14 additions and 16 deletions

View File

@@ -434,8 +434,8 @@ export function createApiFactory(
registerWebviewPanelSerializer: proposedApiFunction(extension, (viewType: string, serializer: vscode.WebviewPanelSerializer) => {
return extHostWebviews.registerWebviewPanelSerializer(viewType, serializer);
}),
registerExternalUriHandler: proposedApiFunction(extension, (handler: vscode.ExternalUriHandler) => {
return extHostUrls.registerExternalUriHandler(extension.id, handler);
registerProtocolHandler: proposedApiFunction(extension, (handler: vscode.ProtocolHandler) => {
return extHostUrls.registerProtocolHandler(extension.id, handler);
})
};

View File

@@ -374,8 +374,8 @@ export interface ExtHostWebviewsShape {
}
export interface MainThreadUrlsShape extends IDisposable {
$registerExternalUriHandler(handle: number, extensionId: string): TPromise<void>;
$unregisterExternalUriHandler(handle: number): TPromise<void>;
$registerProtocolHandler(handle: number, extensionId: string): TPromise<void>;
$unregisterProtocolHandler(handle: number): TPromise<void>;
}
export interface ExtHostUrlsShape {

View File

@@ -14,7 +14,7 @@ export class ExtHostUrls implements ExtHostUrlsShape {
private static HandlePool = 0;
private readonly _proxy: MainThreadUrlsShape;
private handlers = new Map<number, vscode.ExternalUriHandler>();
private handlers = new Map<number, vscode.ProtocolHandler>();
constructor(
mainContext: IMainContext
@@ -22,14 +22,14 @@ export class ExtHostUrls implements ExtHostUrlsShape {
this._proxy = mainContext.getProxy(MainContext.MainThreadUrls);
}
registerExternalUriHandler(extensionId: string, handler: vscode.ExternalUriHandler): vscode.Disposable {
registerProtocolHandler(extensionId: string, handler: vscode.ProtocolHandler): vscode.Disposable {
const handle = ExtHostUrls.HandlePool++;
this.handlers.set(handle, handler);
this._proxy.$registerExternalUriHandler(handle, extensionId);
this._proxy.$registerProtocolHandler(handle, extensionId);
return toDisposable(() => {
this.handlers.delete(handle);
this._proxy.$unregisterExternalUriHandler(handle);
this._proxy.$unregisterProtocolHandler(handle);
});
}
@@ -40,7 +40,7 @@ export class ExtHostUrls implements ExtHostUrlsShape {
return TPromise.as(null);
}
handler.handleExternalUri(URI.revive(uri));
handler.handleUri(URI.revive(uri));
return TPromise.as(null);
}
}