This is necessary in Chromium for hooking up the WebGL backbuffer with the layer compositor that renders the page. GraphicsContext3D::create() already gets a pointer to the HostWindow that's only used in Qt for similar purposes. Unfortunately that pointer doesn't really help in Chromium where views aren't identified by their platform window.
It would be a layering violation for the GraphicsContext3D to get a pointer to the Page.