|
100 | 100 | if (typeof url === 'string' && host(url) !== window.location.host) { |
101 | 101 | domains = domains || []; |
102 | 102 | domains.push(origin(url)); |
103 | | - const iframe = document.createElement('iframe'); |
| 103 | + var iframe = document.createElement('iframe'); |
104 | 104 | iframe.style.width = iframe.style.height = 0; |
105 | 105 | iframe.style.position = 'absolute'; |
106 | 106 | iframe.style.top = iframe.style.left = '-9999px'; |
107 | 107 | iframe.style.border = 'none'; |
108 | | - let proxy_url = url; |
| 108 | + var proxy_url = url; |
109 | 109 | if (!url.match(/\.html|\.php|\?/)) { |
110 | 110 | proxy_url = url.replace(/\/$/, '') + '/proxy.html'; |
111 | 111 | } |
|
117 | 117 | iframe.removeEventListener('error', handler); |
118 | 118 | }); |
119 | 119 | iframe.addEventListener('load', function handler() { |
120 | | - let win; |
| 120 | + var win; |
121 | 121 | // fix for Safari |
122 | 122 | // https://stackoverflow.com/q/42632188/387194 |
123 | 123 | try { |
|
193 | 193 | }); |
194 | 194 | }, |
195 | 195 | list: function() { |
196 | | - const id = list_id++; |
197 | | - const marker = { target: target_id, id: id }; |
198 | | - const timer = delay(sysend.timeout); |
| 196 | + var id = list_id++; |
| 197 | + var marker = { target: target_id, id: id, origin: self.origin }; |
| 198 | + var timer = delay(sysend.timeout); |
199 | 199 | return new Promise(function(resolve) { |
200 | | - const ids = []; |
| 200 | + var ids = []; |
201 | 201 | sysend.on(make_internal('__window_ack__'), function(data) { |
202 | 202 | log('__window_ack__', { data, marker }); |
203 | 203 | if (data.origin.target === target_id && data.origin.id === id) { |
|
229 | 229 | } |
230 | 230 | }, |
231 | 231 | rpc: function(object) { |
232 | | - const prefix = ++rpc_count; |
233 | | - const req = `__${prefix}_rpc_request__`; |
234 | | - const res = `__${prefix}_rpc_response__`; |
235 | | - let request_index = 0; |
236 | | - const timeout = 1000; |
| 232 | + var prefix = ++rpc_count; |
| 233 | + var req = `__${prefix}_rpc_request__`; |
| 234 | + var res = `__${prefix}_rpc_response__`; |
| 235 | + var request_index = 0; |
| 236 | + var timeout = 1000; |
237 | 237 | function request(id, method, args = []) { |
238 | | - const req_id = ++request_index; |
| 238 | + var req_id = ++request_index; |
239 | 239 | return new Promise((resolve, reject) => { |
240 | 240 | sysend.track('message', function handler({data, origin}) { |
241 | 241 | if (data.type === res) { |
242 | | - const { result, error, id: res_id } = data; |
| 242 | + var { result, error, id: res_id } = data; |
243 | 243 | if (origin === id && req_id === res_id) { |
244 | 244 | if (error) { |
245 | 245 | reject(error); |
|
252 | 252 | } |
253 | 253 | }, true); |
254 | 254 | sysend.post(id, { method, id: req_id, type: req, args }); |
255 | | - const timer = setTimeout(() => { |
| 255 | + var timer = setTimeout(() => { |
256 | 256 | reject(new Error('Timeout error')); |
257 | 257 | }, timeout); |
258 | 258 | }); |
259 | 259 | } |
260 | 260 |
|
261 | 261 | sysend.track('message', async function handler({ data, origin }) { |
262 | 262 | if (data.type == req) { |
263 | | - const { method, args, id } = data; |
264 | | - const type = res; |
| 263 | + var { method, args, id } = data; |
| 264 | + var type = res; |
265 | 265 | if (Object.hasOwn(object, method)) { |
266 | 266 | try { |
267 | 267 | unpromise(object[method](...args), function(result) { |
|
278 | 278 | } |
279 | 279 | } |
280 | 280 | }, true); |
281 | | - const error_msg = 'You need to specify the target window/tab'; |
| 281 | + var error_msg = 'You need to specify the target window/tab'; |
282 | 282 | return Object.fromEntries(Object.keys(object).map(name => { |
283 | 283 | return [name, (id, ...args) => { |
284 | 284 | if (!id) { |
|
329 | 329 | // ------------------------------------------------------------------------- |
330 | 330 | function unpromise(obj, callback, error = null) { |
331 | 331 | if (is_promise(obj)) { |
332 | | - const ret = obj.then(callback); |
| 332 | + var ret = obj.then(callback); |
333 | 333 | if (error === null) { |
334 | 334 | return ret; |
335 | 335 | } else { |
|
644 | 644 | } |
645 | 645 | // ------------------------------------------------------------------------- |
646 | 646 | function setup_update_tracking() { |
647 | | - let list = []; |
| 647 | + var list = []; |
648 | 648 |
|
649 | 649 | function update() { |
650 | 650 | trigger(handlers.update, list); |
|
0 commit comments