CanvasTexture setPixel doesn't work

I met a bug in Phaser 3:
CanvasTexture’s setPixel(or getPixel) doesn’t work.

Here is the code:

'use strict';

var Scene = require('phaser').Scene;

class BootScene extends Scene{
    constructor(){
        super({ key: 'BootScene' });
    }
    preload(){
        
    }
    create(){
        var Sprite = require('phaser').GameObjects.Sprite;

        var __CT__ = this.textures.createCanvas('ct', 25, 25);
        for(let i = 0 ; i < 25 ; i++){
            for(let j = 0 ; j < 25 ; j++){
                console.log(` ~ SETTIN 255-128-64`);
                __CT__.setPixel(i, j, 255, 128, 64);
                let _pxl = __CT__.getPixel(i, j);
                console.log(` ~ GETTIN ${_pxl.r}-${_pxl.g}-${_pxl.b}`);
            }
        }
        __CT__.refresh();

        var s2 = new Sprite(this, 200, 200, 'ct');
        this.add.existing(s2);
        s2.setDisplaySize(200, 100);
    }
}

module.exports = BootScene;

Here what I see in Safari:
Screenshot - fa8b60d7663a7b16852490065f894923 - Gyazo (nothing)

What I see in Brave:
Screenshot - 9be908c484b49bae75e0e242cdf0e2df - Gyazo (rectangle)

And in both browsers I see that getPixel returns nothing:

Is it planned to be fixed? Or what should I do now to avoid this bug?

versions:
phaser: 3.52.0
safari: 14.0.1 (16610.2.11.51.8)

getPixel(x, y [, out])

Get the color of a specific pixel from this texture and store it in a Color object.

If you have drawn anything to this CanvasTexture since it was created you must call CanvasTexture.update to refresh the array buffer, otherwise this may return out of date color values, or worse - throw a run-time error as it tries to access an array element that doesn’t exist.

You also shouldn’t do 625 setPixel’s (625 times a getImageData and putImageData). That’s insanely expensive.
Try something more like this:

var invert = function() {
    ctx.drawImage(img, 0, 0);
    const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    const data = imageData.data;
    for (var i = 0; i < data.length; i += 4) {
        data[i]     = 255 - data[i];     // red
        data[i + 1] = 255 - data[i + 1]; // green
        data[i + 2] = 255 - data[i + 2]; // blue
    }
    ctx.putImageData(imageData, 0, 0);
};

Note: When running under WebGL the Canvas Texture needs to re-generate its base WebGLTexture and reupload it to the GPU every time you modify it, otherwise the changes you make to this texture will not be visible. To do this you should call CanvasTexture.refresh() once you are finished with your changes to the canvas. Try and keep this to a minimum, especially on large canvas sizes, or you may inadvertently thrash the GPU by constantly uploading texture data to it. This restriction does not apply if using the Canvas Renderer.