Adopt dom.addDisposableListener in the few places still using addListener

This commit is contained in:
Alex Dima
2016-02-02 18:25:46 +01:00
parent 083a56c3b1
commit 57d7b84dee
18 changed files with 152 additions and 171 deletions

View File

@@ -5,6 +5,7 @@
'use strict';
import dom = require('vs/base/browser/dom');
import lifecycle = require('vs/base/common/lifecycle');
import env = require('vs/base/common/flags');
import {IWorker, IWorkerCallback, IWorkerFactory} from 'vs/base/common/worker/workerClient';
@@ -57,8 +58,11 @@ class FrameWorker implements IWorker {
private loaded: boolean;
private beforeLoadMessages: any[];
private _listeners: lifecycle.IDisposable[];
constructor(id: number, onMessageCallback:IWorkerCallback) {
this.id = id;
this._listeners = [];
// Collect all messages sent to the worker until the iframe is loaded
this.loaded = false;
@@ -69,15 +73,19 @@ class FrameWorker implements IWorker {
this.iframe.src = require.toUrl('./workerMainCompatibility.html');
(<any> this.iframe).frameborder = this.iframe.height = this.iframe.width = '0';
this.iframe.style.display = 'none';
dom.addListener(this.iframe, 'load', () => this.onLoaded());
this._listeners.push(dom.addDisposableListener(this.iframe, 'load', () => this.onLoaded()));
this.onMessage = function(ev:any) {
onMessageCallback(ev.data);
};
dom.addListener(window, 'message', this.onMessage);
this._listeners.push(dom.addDisposableListener(window, 'message', this.onMessage));
document.body.appendChild(this.iframe);
}
public dispose(): void {
this._listeners = lifecycle.disposeAll(this._listeners);
}
private iframeId(): string {
return 'worker_iframe_' + this.id;
}