mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 19:18:59 +01:00
ProtocolHandler
This commit is contained in:
@@ -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);
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user