revokeObjectURLs
This commit is contained in:
parent
bffd5bb891
commit
9c5407c21f
3 changed files with 23 additions and 0 deletions
|
@ -69,6 +69,12 @@ export default class MAudioBody extends React.Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
if (this.state.decryptedUrl) {
|
||||||
|
URL.revokeObjectURL(this.state.decryptedUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const content = this.props.mxEvent.getContent();
|
const content = this.props.mxEvent.getContent();
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ export default class extends React.Component {
|
||||||
this.context.matrixClient.on('sync', this.onClientSync);
|
this.context.matrixClient.on('sync', this.onClientSync);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: factor this out and aplpy it to MVideoBody and MAudioBody too!
|
||||||
onClientSync(syncState, prevState) {
|
onClientSync(syncState, prevState) {
|
||||||
if (this.unmounted) return;
|
if (this.unmounted) return;
|
||||||
// Consider the client reconnected if there is no error with syncing.
|
// Consider the client reconnected if there is no error with syncing.
|
||||||
|
@ -206,6 +207,13 @@ export default class extends React.Component {
|
||||||
dis.unregister(this.dispatcherRef);
|
dis.unregister(this.dispatcherRef);
|
||||||
this.context.matrixClient.removeListener('sync', this.onClientSync);
|
this.context.matrixClient.removeListener('sync', this.onClientSync);
|
||||||
this._afterComponentWillUnmount();
|
this._afterComponentWillUnmount();
|
||||||
|
|
||||||
|
if (this.state.decryptedUrl) {
|
||||||
|
URL.revokeObjectURL(this.state.decryptedUrl);
|
||||||
|
}
|
||||||
|
if (this.state.decryptedThumbnailUrl) {
|
||||||
|
URL.revokeObjectURL(this.state.decryptedThumbnailUrl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// To be overridden by subclasses (e.g. MStickerBody) for further
|
// To be overridden by subclasses (e.g. MStickerBody) for further
|
||||||
|
|
|
@ -120,6 +120,15 @@ module.exports = React.createClass({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
componentWillUnmount: function() {
|
||||||
|
if (this.state.decryptedUrl) {
|
||||||
|
URL.revokeObjectURL(this.state.decryptedUrl);
|
||||||
|
}
|
||||||
|
if (this.state.decryptedThumbnailUrl) {
|
||||||
|
URL.revokeObjectURL(this.state.decryptedThumbnailUrl);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
render: function() {
|
render: function() {
|
||||||
const content = this.props.mxEvent.getContent();
|
const content = this.props.mxEvent.getContent();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue