This helper class seems like a good idea, but the code is an awkward mix of private functions in this constructor, public methods on the prototype, and public methods in the instance.  I recommend that you put the event handlers on the prototype, and save the two callback arguments in the instance.  Start with code like this:

```
this.lostCallback = lostCallback;
this.restoreCallback = resstoreCallback;
canvas.addEventListener('webglcontextlost', this.contextLostHandler.bind(this));
canvas.addEventListener('webglcontextrestored', this.contextRestoredHandler.bind(this));
```

And then, define the handlers
```
WebGLCanvasHelper.prototype.contextLostCallback = function(event) {
  if (this.lostCallback) {
    event.preventDefault();
    this.lostCallback();
  }
};

etc.
```

I think that will make it cleaner.  I'd also suggest that you move the entire helper class so that it is right before or maybe even right after the ImageProcessor class.