Hmm, interesting.
I’m starring at the code right now and the code does only these steps:
- run at the start of loading of the page,
- hijack
WebGL2RenderingContext.prototype.shaderSource and replace the function with its own version,
- create a new version of the aforementioned function, which differs from the original one only by a part, where it can modify shaders before running them.
Then, whenever browser calls a shader, the replaced version of the shaderSource function is called and that function searches for a specific match. If the match was found, replaces the parts, which define diameter and border width of the points. Regardless, if the match has been found or not, the modified function calls the original one to finish processing the shader.
There’s nothing more in this code, so my guess is that there’s something more inside the annotation code (the one in the Neuroglancer), that I haven’t found yet, that interacts in some way or form with the annotations.
For now, I can only say is that I’ll be looking for such an error to happen on my side and maybe then I will be able to debug it more. Sorry, that I can’t do more.