mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 09:38:38 +01:00
Remove no longer used code (due to vs/languages removal)
This commit is contained in:
@@ -5,9 +5,7 @@
|
||||
'use strict';
|
||||
|
||||
import * as flags from 'vs/base/common/flags';
|
||||
import {IDisposable, dispose} from 'vs/base/common/lifecycle';
|
||||
import {logOnceWebWorkerWarning, IWorker, IWorkerCallback, IWorkerFactory} from 'vs/base/common/worker/workerClient';
|
||||
import * as dom from 'vs/base/browser/dom';
|
||||
import {logOnceWebWorkerWarning, IWorker, IWorkerCallback, IWorkerFactory} from 'vs/base/common/worker/simpleWorker';
|
||||
|
||||
function defaultGetWorkerUrl(workerId:string, label:string): string {
|
||||
return require.toUrl('./' + workerId) + '#' + label;
|
||||
@@ -52,117 +50,25 @@ class WebWorker implements IWorker {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A worker that runs in an iframe and therefore does have its
|
||||
* own global scope, but no own thread.
|
||||
*/
|
||||
class FrameWorker implements IWorker {
|
||||
|
||||
private id: number;
|
||||
private iframe: HTMLIFrameElement;
|
||||
|
||||
private onMessage: EventListener;
|
||||
private loaded: boolean;
|
||||
private beforeLoadMessages: any[];
|
||||
|
||||
private _listeners: IDisposable[];
|
||||
|
||||
constructor(moduleId:string, id: number, onMessageCallback:IWorkerCallback) {
|
||||
this.id = id;
|
||||
this._listeners = [];
|
||||
|
||||
// Collect all messages sent to the worker until the iframe is loaded
|
||||
this.loaded = false;
|
||||
this.beforeLoadMessages = [];
|
||||
|
||||
this.postMessage(moduleId);
|
||||
|
||||
this.iframe = <HTMLIFrameElement> document.createElement('iframe');
|
||||
this.iframe.id = this.iframeId();
|
||||
this.iframe.src = require.toUrl('./workerMainCompatibility.html');
|
||||
(<any> this.iframe).frameborder = this.iframe.height = this.iframe.width = '0';
|
||||
this.iframe.style.display = 'none';
|
||||
this._listeners.push(dom.addDisposableListener(this.iframe, 'load', () => this.onLoaded()));
|
||||
|
||||
this.onMessage = function(ev:any) {
|
||||
onMessageCallback(ev.data);
|
||||
};
|
||||
this._listeners.push(dom.addDisposableListener(window, 'message', this.onMessage));
|
||||
document.body.appendChild(this.iframe);
|
||||
}
|
||||
|
||||
public dispose(): void {
|
||||
this._listeners = dispose(this._listeners);
|
||||
window.removeEventListener('message', this.onMessage);
|
||||
window.frames[this.iframeId()].close();
|
||||
}
|
||||
|
||||
private iframeId(): string {
|
||||
return 'worker_iframe_' + this.id;
|
||||
}
|
||||
|
||||
private onLoaded(): void {
|
||||
this.loaded = true;
|
||||
while (this.beforeLoadMessages.length > 0) {
|
||||
this.postMessage(this.beforeLoadMessages.shift());
|
||||
}
|
||||
}
|
||||
|
||||
public getId(): number {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public postMessage(msg:string): void {
|
||||
if (this.loaded === true) {
|
||||
var iframe = window.frames[this.iframeId()];
|
||||
if (iframe.postMessage) {
|
||||
iframe.postMessage(msg, '*');
|
||||
} else {
|
||||
iframe.contentWindow.postMessage(msg, '*');
|
||||
}
|
||||
} else {
|
||||
this.beforeLoadMessages.push(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class DefaultWorkerFactory implements IWorkerFactory {
|
||||
|
||||
private static LAST_WORKER_ID = 0;
|
||||
|
||||
private _label: string;
|
||||
private _fallbackToIframe:boolean;
|
||||
private _webWorkerFailedBeforeError:any;
|
||||
|
||||
constructor(label:string, fallbackToIframe:boolean) {
|
||||
constructor(label:string) {
|
||||
this._label = label;
|
||||
this._fallbackToIframe = fallbackToIframe;
|
||||
this._webWorkerFailedBeforeError = false;
|
||||
}
|
||||
|
||||
public create(moduleId:string, onMessageCallback:IWorkerCallback, onErrorCallback:(err:any)=>void):IWorker {
|
||||
let workerId = (++DefaultWorkerFactory.LAST_WORKER_ID);
|
||||
if (this._fallbackToIframe) {
|
||||
if (this._webWorkerFailedBeforeError) {
|
||||
// Avoid always trying to create web workers if they would just fail...
|
||||
return new FrameWorker(moduleId, workerId, onMessageCallback);
|
||||
}
|
||||
|
||||
try {
|
||||
return new WebWorker(moduleId, workerId, this._label || 'anonymous' + workerId, onMessageCallback, (err) => {
|
||||
logOnceWebWorkerWarning(err);
|
||||
this._webWorkerFailedBeforeError = err;
|
||||
onErrorCallback(err);
|
||||
});
|
||||
} catch(err) {
|
||||
logOnceWebWorkerWarning(err);
|
||||
return new FrameWorker(moduleId, workerId, onMessageCallback);
|
||||
}
|
||||
}
|
||||
|
||||
if (this._webWorkerFailedBeforeError) {
|
||||
throw this._webWorkerFailedBeforeError;
|
||||
}
|
||||
|
||||
return new WebWorker(moduleId, workerId, this._label || 'anonymous' + workerId, onMessageCallback, (err) => {
|
||||
logOnceWebWorkerWarning(err);
|
||||
this._webWorkerFailedBeforeError = err;
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
<!-- Copyright (c) Microsoft Corporation. All rights reserved. -->
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
|
||||
<script type="text/javascript" src="../../loader.js"></script>
|
||||
<script>
|
||||
require.config({
|
||||
baseUrl: '../../../',
|
||||
catchError: true
|
||||
});
|
||||
|
||||
(function() {
|
||||
var isFirstMessage = true;
|
||||
var beforeReadyMessages = [];
|
||||
|
||||
var loadCode = function(moduleId) {
|
||||
require([moduleId], function(ws) {
|
||||
var workerServer = ws.create(function (msg) {
|
||||
window.parent.postMessage(msg, '*');
|
||||
});
|
||||
|
||||
var readyListener = function (ev) {
|
||||
workerServer.onmessage(ev.data);
|
||||
};
|
||||
if (window.attachEvent) {
|
||||
window.detachEvent('onmessage', beforeReadyListener);
|
||||
window.attachEvent('onmessage', readyListener);
|
||||
} else {
|
||||
window.onmessage = readyListener;
|
||||
}
|
||||
while(beforeReadyMessages.length > 0) {
|
||||
readyListener({ data: beforeReadyMessages.shift() });
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var beforeReadyListener = function (message) {
|
||||
if (!isFirstMessage) {
|
||||
beforeReadyMessages.push(message.data);
|
||||
return;
|
||||
}
|
||||
|
||||
isFirstMessage = false;
|
||||
loadCode(message.data);
|
||||
};
|
||||
|
||||
if (window.attachEvent) {
|
||||
window.attachEvent('onmessage', beforeReadyListener);
|
||||
} else {
|
||||
window.onmessage = beforeReadyListener;
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div>compatibility worker iframe</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user