提交 e2b07d79 编写于 作者: J Joao Moreno

ProtocolHandler

上级 f4e9ff47
......@@ -98,8 +98,6 @@ export class InactiveExtensionUrlHandler implements IInactiveExtensionUrlHandler
// forget about all uris buffered more than 5 minutes ago
private garbageCollect(): void {
console.log('garbage collect');
const now = new Date().getTime();
const uriBuffer = new Map<string, { timestamp: number, uri: URI }[]>();
......
......@@ -660,8 +660,8 @@ declare module 'vscode' {
//#region URLs
export interface ExternalUriHandler {
handleExternalUri(uri: Uri): void;
export interface ProtocolHandler {
handleUri(uri: Uri): void;
}
export namespace window {
......@@ -669,7 +669,7 @@ declare module 'vscode' {
/**
* Registers a protocol handler capable of handling system-wide URIs.
*/
export function registerExternalUriHandler(handler: ExternalUriHandler): Disposable;
export function registerProtocolHandler(handler: ProtocolHandler): Disposable;
}
//#endregion
......
......@@ -42,7 +42,7 @@ export class MainThreadUrls implements MainThreadUrlsShape {
this.proxy = context.getProxy(ExtHostContext.ExtHostUrls);
}
$registerExternalUriHandler(handle: number, extensionId: string): TPromise<void> {
$registerProtocolHandler(handle: number, extensionId: string): TPromise<void> {
const handler = new ExtensionUrlHandler(this.proxy, handle, extensionId);
const disposable = this.urlService.registerHandler(handler);
......@@ -52,7 +52,7 @@ export class MainThreadUrls implements MainThreadUrlsShape {
return TPromise.as(null);
}
$unregisterExternalUriHandler(handle: number): TPromise<void> {
$unregisterProtocolHandler(handle: number): TPromise<void> {
const tuple = this.handlers.get(handle);
if (!tuple) {
......
......@@ -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);
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册