mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 02:58:56 +01:00
rename uri api
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);
|
||||
}),
|
||||
registerUrlHandler: proposedApiFunction(extension, (handler: vscode.UrlHandler) => {
|
||||
return extHostUrls.registerUrlHandler(extension.id, handler);
|
||||
registerExternalUriHandler: proposedApiFunction(extension, (handler: vscode.ExternalUriHandler) => {
|
||||
return extHostUrls.registerExternalUriHandler(extension.id, handler);
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
@@ -373,12 +373,12 @@ export interface ExtHostWebviewsShape {
|
||||
}
|
||||
|
||||
export interface MainThreadUrlsShape extends IDisposable {
|
||||
$registerUrlHandler(handle: number, extensionId: string): TPromise<void>;
|
||||
$unregisterUrlHandler(handle: number): TPromise<void>;
|
||||
$registerExternalUriHandler(handle: number, extensionId: string): TPromise<void>;
|
||||
$unregisterExternalUriHandler(handle: number): TPromise<void>;
|
||||
}
|
||||
|
||||
export interface ExtHostUrlsShape {
|
||||
$handleUrl(handle: number, uri: UriComponents): TPromise<void>;
|
||||
$handleExternalUri(handle: number, uri: UriComponents): TPromise<void>;
|
||||
}
|
||||
|
||||
export interface MainThreadWorkspaceShape extends IDisposable {
|
||||
|
||||
@@ -14,7 +14,7 @@ export class ExtHostUrls implements ExtHostUrlsShape {
|
||||
private static HandlePool = 0;
|
||||
private readonly _proxy: MainThreadUrlsShape;
|
||||
|
||||
private handlers = new Map<number, vscode.UrlHandler>();
|
||||
private handlers = new Map<number, vscode.ExternalUriHandler>();
|
||||
|
||||
constructor(
|
||||
mainContext: IMainContext
|
||||
@@ -22,25 +22,25 @@ export class ExtHostUrls implements ExtHostUrlsShape {
|
||||
this._proxy = mainContext.getProxy(MainContext.MainThreadUrls);
|
||||
}
|
||||
|
||||
registerUrlHandler(extensionId: string, handler: vscode.UrlHandler): vscode.Disposable {
|
||||
registerExternalUriHandler(extensionId: string, handler: vscode.ExternalUriHandler): vscode.Disposable {
|
||||
const handle = ExtHostUrls.HandlePool++;
|
||||
this.handlers.set(handle, handler);
|
||||
this._proxy.$registerUrlHandler(handle, extensionId);
|
||||
this._proxy.$registerExternalUriHandler(handle, extensionId);
|
||||
|
||||
return toDisposable(() => {
|
||||
this.handlers.delete(handle);
|
||||
this._proxy.$unregisterUrlHandler(handle);
|
||||
this._proxy.$unregisterExternalUriHandler(handle);
|
||||
});
|
||||
}
|
||||
|
||||
$handleUrl(handle: number, uri: UriComponents): TPromise<void> {
|
||||
$handleExternalUri(handle: number, uri: UriComponents): TPromise<void> {
|
||||
const handler = this.handlers.get(handle);
|
||||
|
||||
if (!handler) {
|
||||
return TPromise.as(null);
|
||||
}
|
||||
|
||||
handler.handleUrl(URI.revive(uri));
|
||||
handler.handleExternalUri(URI.revive(uri));
|
||||
return TPromise.as(null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user