Remove createEvent() fallbacks
We can now rely on proper constructors for our events.
This commit is contained in:
parent
27496941a0
commit
6a4c411976
|
@ -25,7 +25,6 @@ import DES from "./des.js";
|
||||||
import KeyTable from "./input/keysym.js";
|
import KeyTable from "./input/keysym.js";
|
||||||
import XtScancode from "./input/xtscancodes.js";
|
import XtScancode from "./input/xtscancodes.js";
|
||||||
import { encodings } from "./encodings.js";
|
import { encodings } from "./encodings.js";
|
||||||
import "./util/polyfill.js";
|
|
||||||
|
|
||||||
import RawDecoder from "./decoders/raw.js";
|
import RawDecoder from "./decoders/raw.js";
|
||||||
import CopyRectDecoder from "./decoders/copyrect.js";
|
import CopyRectDecoder from "./decoders/copyrect.js";
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
/*
|
|
||||||
* noVNC: HTML5 VNC client
|
|
||||||
* Copyright (C) 2020 The noVNC Authors
|
|
||||||
* Licensed under MPL 2.0 or any later version (see LICENSE.txt)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Polyfills to provide new APIs in old browsers */
|
|
||||||
|
|
||||||
/* CustomEvent constructor (taken from MDN) */
|
|
||||||
(() => {
|
|
||||||
function CustomEvent(event, params) {
|
|
||||||
params = params || { bubbles: false, cancelable: false, detail: undefined };
|
|
||||||
const evt = document.createEvent( 'CustomEvent' );
|
|
||||||
evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
|
|
||||||
return evt;
|
|
||||||
}
|
|
||||||
|
|
||||||
CustomEvent.prototype = window.Event.prototype;
|
|
||||||
|
|
||||||
if (typeof window.CustomEvent !== "function") {
|
|
||||||
window.CustomEvent = CustomEvent;
|
|
||||||
}
|
|
||||||
})();
|
|
|
@ -1,17 +1,5 @@
|
||||||
import Base64 from '../core/base64.js';
|
import Base64 from '../core/base64.js';
|
||||||
|
|
||||||
// PhantomJS can't create Event objects directly, so we need to use this
|
|
||||||
function makeEvent(name, props) {
|
|
||||||
const evt = document.createEvent('Event');
|
|
||||||
evt.initEvent(name, true, true);
|
|
||||||
if (props) {
|
|
||||||
for (let prop in props) {
|
|
||||||
evt[prop] = props[prop];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return evt;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class FakeWebSocket {
|
export default class FakeWebSocket {
|
||||||
constructor(uri, protocols) {
|
constructor(uri, protocols) {
|
||||||
this.url = uri;
|
this.url = uri;
|
||||||
|
@ -35,7 +23,7 @@ export default class FakeWebSocket {
|
||||||
close(code, reason) {
|
close(code, reason) {
|
||||||
this.readyState = FakeWebSocket.CLOSED;
|
this.readyState = FakeWebSocket.CLOSED;
|
||||||
if (this.onclose) {
|
if (this.onclose) {
|
||||||
this.onclose(makeEvent("close", { 'code': code, 'reason': reason, 'wasClean': true }));
|
this.onclose(new CloseEvent("close", { 'code': code, 'reason': reason, 'wasClean': true }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +46,7 @@ export default class FakeWebSocket {
|
||||||
_open() {
|
_open() {
|
||||||
this.readyState = FakeWebSocket.OPEN;
|
this.readyState = FakeWebSocket.OPEN;
|
||||||
if (this.onopen) {
|
if (this.onopen) {
|
||||||
this.onopen(makeEvent('open'));
|
this.onopen(new Event('open'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +55,7 @@ export default class FakeWebSocket {
|
||||||
// neatly packaged
|
// neatly packaged
|
||||||
for (let i = 0;i < data.length;i++) {
|
for (let i = 0;i < data.length;i++) {
|
||||||
let buf = data.subarray(i, i+1);
|
let buf = data.subarray(i, i+1);
|
||||||
this.onmessage(makeEvent("message", { 'data': buf }));
|
this.onmessage(new MessageEvent("message", { 'data': buf }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2506,23 +2506,11 @@ describe('Remote Frame Buffer Protocol Client', function () {
|
||||||
let pos = elementToClient(x, y);
|
let pos = elementToClient(x, y);
|
||||||
let ev;
|
let ev;
|
||||||
|
|
||||||
try {
|
ev = new MouseEvent('mousemove',
|
||||||
ev = new MouseEvent('mousemove',
|
{ 'screenX': pos.x + window.screenX,
|
||||||
{ 'screenX': pos.x + window.screenX,
|
'screenY': pos.y + window.screenY,
|
||||||
'screenY': pos.y + window.screenY,
|
'clientX': pos.x,
|
||||||
'clientX': pos.x,
|
'clientY': pos.y });
|
||||||
'clientY': pos.y });
|
|
||||||
} catch (e) {
|
|
||||||
ev = document.createEvent('MouseEvent');
|
|
||||||
ev.initMouseEvent('mousemove',
|
|
||||||
true, true, window, 0,
|
|
||||||
pos.x + window.screenX,
|
|
||||||
pos.y + window.screenY,
|
|
||||||
pos.x, pos.y,
|
|
||||||
false, false, false, false,
|
|
||||||
0, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
client._canvas.dispatchEvent(ev);
|
client._canvas.dispatchEvent(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2530,25 +2518,13 @@ describe('Remote Frame Buffer Protocol Client', function () {
|
||||||
let pos = elementToClient(x, y);
|
let pos = elementToClient(x, y);
|
||||||
let ev;
|
let ev;
|
||||||
|
|
||||||
try {
|
ev = new MouseEvent(down ? 'mousedown' : 'mouseup',
|
||||||
ev = new MouseEvent(down ? 'mousedown' : 'mouseup',
|
{ 'screenX': pos.x + window.screenX,
|
||||||
{ 'screenX': pos.x + window.screenX,
|
'screenY': pos.y + window.screenY,
|
||||||
'screenY': pos.y + window.screenY,
|
'clientX': pos.x,
|
||||||
'clientX': pos.x,
|
'clientY': pos.y,
|
||||||
'clientY': pos.y,
|
'button': button,
|
||||||
'button': button,
|
'buttons': 1 << button });
|
||||||
'buttons': 1 << button });
|
|
||||||
} catch (e) {
|
|
||||||
ev = document.createEvent('MouseEvent');
|
|
||||||
ev.initMouseEvent(down ? 'mousedown' : 'mouseup',
|
|
||||||
true, true, window, 0,
|
|
||||||
pos.x + window.screenX,
|
|
||||||
pos.y + window.screenY,
|
|
||||||
pos.x, pos.y,
|
|
||||||
false, false, false, false,
|
|
||||||
button, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
client._canvas.dispatchEvent(ev);
|
client._canvas.dispatchEvent(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2783,25 +2759,14 @@ describe('Remote Frame Buffer Protocol Client', function () {
|
||||||
let pos = elementToClient(x, y);
|
let pos = elementToClient(x, y);
|
||||||
let ev;
|
let ev;
|
||||||
|
|
||||||
try {
|
ev = new WheelEvent('wheel',
|
||||||
ev = new WheelEvent('wheel',
|
{ 'screenX': pos.x + window.screenX,
|
||||||
{ 'screenX': pos.x + window.screenX,
|
'screenY': pos.y + window.screenY,
|
||||||
'screenY': pos.y + window.screenY,
|
'clientX': pos.x,
|
||||||
'clientX': pos.x,
|
'clientY': pos.y,
|
||||||
'clientY': pos.y,
|
'deltaX': dx,
|
||||||
'deltaX': dx,
|
'deltaY': dy,
|
||||||
'deltaY': dy,
|
'deltaMode': mode });
|
||||||
'deltaMode': mode });
|
|
||||||
} catch (e) {
|
|
||||||
ev = document.createEvent('WheelEvent');
|
|
||||||
ev.initWheelEvent('wheel', true, true, window, 0,
|
|
||||||
pos.x + window.screenX,
|
|
||||||
pos.y + window.screenY,
|
|
||||||
pos.x, pos.y,
|
|
||||||
0, null, "",
|
|
||||||
dx, dy, 0, mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
client._canvas.dispatchEvent(ev);
|
client._canvas.dispatchEvent(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue