diff --git a/src/display/base_factory.js b/src/display/base_factory.js
index 0325779a1..69d0954a9 100644
--- a/src/display/base_factory.js
+++ b/src/display/base_factory.js
@@ -23,7 +23,14 @@ class BaseCanvasFactory {
   }
 
   create(width, height) {
-    unreachable("Abstract method `create` called.");
+    if (width <= 0 || height <= 0) {
+      throw new Error("Invalid canvas size");
+    }
+    const canvas = this._createCanvas(width, height);
+    return {
+      canvas,
+      context: canvas.getContext("2d"),
+    };
   }
 
   reset(canvasAndContext, width, height) {
@@ -48,6 +55,13 @@ class BaseCanvasFactory {
     canvasAndContext.canvas = null;
     canvasAndContext.context = null;
   }
+
+  /**
+   * @private
+   */
+  _createCanvas(width, height) {
+    unreachable("Abstract method `_createCanvas` called.");
+  }
 }
 
 class BaseCMapReaderFactory {
diff --git a/src/display/display_utils.js b/src/display/display_utils.js
index eba1a6fbd..7021c6fd4 100644
--- a/src/display/display_utils.js
+++ b/src/display/display_utils.js
@@ -37,18 +37,11 @@ class DOMCanvasFactory extends BaseCanvasFactory {
     this._document = ownerDocument;
   }
 
-  create(width, height) {
-    if (width <= 0 || height <= 0) {
-      throw new Error("Invalid canvas size");
-    }
+  _createCanvas(width, height) {
     const canvas = this._document.createElement("canvas");
-    const context = canvas.getContext("2d");
     canvas.width = width;
     canvas.height = height;
-    return {
-      canvas,
-      context,
-    };
+    return canvas;
   }
 }
 
diff --git a/src/display/node_utils.js b/src/display/node_utils.js
index cf8a387c5..5ea0d42aa 100644
--- a/src/display/node_utils.js
+++ b/src/display/node_utils.js
@@ -55,16 +55,9 @@ if ((typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) && isNodeJS) {
   };
 
   NodeCanvasFactory = class extends BaseCanvasFactory {
-    create(width, height) {
-      if (width <= 0 || height <= 0) {
-        throw new Error("Invalid canvas size");
-      }
+    _createCanvas(width, height) {
       const Canvas = __non_webpack_require__("canvas");
-      const canvas = Canvas.createCanvas(width, height);
-      return {
-        canvas,
-        context: canvas.getContext("2d"),
-      };
+      return Canvas.createCanvas(width, height);
     }
   };