mirror of https://github.com/vector-im/riot-web
Expose the requestId fully in the toWidget postMessage API
This field is flagged as required in the proposal. Addresses part of https://github.com/vector-im/riot-web/issues/6708 Signed-off-by: Travis Ralstonpull/21833/head
parent
f8fd90c559
commit
0522ab8fcd
|
@ -51,11 +51,11 @@ export default class ToWidgetPostMessageApi {
|
||||||
if (payload.response === undefined) {
|
if (payload.response === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const promise = this._requestMap[payload._id];
|
const promise = this._requestMap[payload.requestId];
|
||||||
if (!promise) {
|
if (!promise) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
delete this._requestMap[payload._id];
|
delete this._requestMap[payload.requestId];
|
||||||
promise.resolve(payload);
|
promise.resolve(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,21 +64,21 @@ export default class ToWidgetPostMessageApi {
|
||||||
targetWindow = targetWindow || window.parent; // default to parent window
|
targetWindow = targetWindow || window.parent; // default to parent window
|
||||||
targetOrigin = targetOrigin || "*";
|
targetOrigin = targetOrigin || "*";
|
||||||
this._counter += 1;
|
this._counter += 1;
|
||||||
action._id = Date.now() + "-" + Math.random().toString(36) + "-" + this._counter;
|
action.requestId = Date.now() + "-" + Math.random().toString(36) + "-" + this._counter;
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this._requestMap[action._id] = {resolve, reject};
|
this._requestMap[action.requestId] = {resolve, reject};
|
||||||
targetWindow.postMessage(action, targetOrigin);
|
targetWindow.postMessage(action, targetOrigin);
|
||||||
|
|
||||||
if (this._timeoutMs > 0) {
|
if (this._timeoutMs > 0) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (!this._requestMap[action._id]) {
|
if (!this._requestMap[action.requestId]) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.error("postMessage request timed out. Sent object: " + JSON.stringify(action),
|
console.error("postMessage request timed out. Sent object: " + JSON.stringify(action),
|
||||||
this._requestMap);
|
this._requestMap);
|
||||||
this._requestMap[action._id].reject(new Error("Timed out"));
|
this._requestMap[action.requestId].reject(new Error("Timed out"));
|
||||||
delete this._requestMap[action._id];
|
delete this._requestMap[action.requestId];
|
||||||
}, this._timeoutMs);
|
}, this._timeoutMs);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue