From 3f253a48ee39013ce88ed5a13399bf170bb3ce0e Mon Sep 17 00:00:00 2001 From: Matthew Toohey Date: Mon, 19 Dec 2022 19:19:46 +1100 Subject: [PATCH 1/2] Make handle_binary compliant with the KernelMessage.IMessage spec Since Jupyterlab v4.0.0a21 the buffers deserialized from a KernelMessage are now of type ArrayBuffer instead of the DataView type handle_binary expects. However, it turns out that the spec for KernelMessage.IMessage has always specifed that buffers could be either an ArrayBuffer or an ArrayBufferView. This commit ensures either type is accepted. --- src/mpl_widget.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mpl_widget.ts b/src/mpl_widget.ts index 06841f2b..373bcd0b 100644 --- a/src/mpl_widget.ts +++ b/src/mpl_widget.ts @@ -234,10 +234,10 @@ export class MPLCanvasModel extends DOMWidgetModel { this.send_draw_message(); } - handle_binary(msg: any, dataviews: any) { + handle_binary(msg: any, buffers: (ArrayBuffer | ArrayBufferView)[]) { const url_creator = window.URL || window.webkitURL; - const buffer = new Uint8Array(dataviews[0].buffer); + const buffer = new Uint8Array(ArrayBuffer.isView(buffers[0]) ? buffers[0].buffer : buffers[0]); const blob = new Blob([buffer], { type: 'image/png' }); const image_url = url_creator.createObjectURL(blob); @@ -263,7 +263,7 @@ export class MPLCanvasModel extends DOMWidgetModel { // button to toggle? } - on_comm_message(evt: any, dataviews: any) { + on_comm_message(evt: any, buffers: (ArrayBuffer | ArrayBufferView)[]) { const msg = JSON.parse(evt.data); const msg_type = msg['type']; let callback; @@ -281,7 +281,7 @@ export class MPLCanvasModel extends DOMWidgetModel { } if (callback) { - callback(msg, dataviews); + callback(msg, buffers); } } From 1237eca7788cbcb21411765c12fb2016c6058623 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 08:35:31 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/mpl_widget.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mpl_widget.ts b/src/mpl_widget.ts index 373bcd0b..7e839f92 100644 --- a/src/mpl_widget.ts +++ b/src/mpl_widget.ts @@ -237,7 +237,9 @@ export class MPLCanvasModel extends DOMWidgetModel { handle_binary(msg: any, buffers: (ArrayBuffer | ArrayBufferView)[]) { const url_creator = window.URL || window.webkitURL; - const buffer = new Uint8Array(ArrayBuffer.isView(buffers[0]) ? buffers[0].buffer : buffers[0]); + const buffer = new Uint8Array( + ArrayBuffer.isView(buffers[0]) ? buffers[0].buffer : buffers[0] + ); const blob = new Blob([buffer], { type: 'image/png' }); const image_url = url_creator.createObjectURL(blob);