Prevent TypeError: page is undefined
when the document has been destroyed (PR 6546 follow-up)
*Follow-up to PR 6546.* If rendering has already started when the document is destroyed, then `this.pageCache[data.pageIndex]` may already have been cleared when the `StartRenderingPage`/`RenderPageChunk` messages are recieved in `api.js`, which results in `TypeError`s being thrown.
This commit is contained in:
parent
5111422d89
commit
5bd95df427
@ -1233,6 +1233,9 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
messageHandler.on('StartRenderPage', function transportRender(data) {
|
messageHandler.on('StartRenderPage', function transportRender(data) {
|
||||||
|
if (this.destroyed) {
|
||||||
|
return; // Ignore any pending requests if the worker was terminated.
|
||||||
|
}
|
||||||
var page = this.pageCache[data.pageIndex];
|
var page = this.pageCache[data.pageIndex];
|
||||||
|
|
||||||
page.stats.timeEnd('Page Request');
|
page.stats.timeEnd('Page Request');
|
||||||
@ -1240,6 +1243,9 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
messageHandler.on('RenderPageChunk', function transportRender(data) {
|
messageHandler.on('RenderPageChunk', function transportRender(data) {
|
||||||
|
if (this.destroyed) {
|
||||||
|
return; // Ignore any pending requests if the worker was terminated.
|
||||||
|
}
|
||||||
var page = this.pageCache[data.pageIndex];
|
var page = this.pageCache[data.pageIndex];
|
||||||
|
|
||||||
page._renderPageChunk(data.operatorList, data.intent);
|
page._renderPageChunk(data.operatorList, data.intent);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user