Essentially, we need a way to snapshot the DOM and share it out.
If we remove the complexities of traditional screen sharing and focus on sharing the contents of a browser tab, the problem greatly simplifies to a.) capturing the visible tab in its current state, and b.) sending that 'frame' across the wire. Relaying mouse pointer position, forwarding keystrokes, and achieving full 24-bit color repaints at 60fps are just a few of the issues. There are a lot of things to consider and a lot of challenges to overcome. From my experience, implementing VNC solely in web platform technologies (i.e. In the past couple of years, I've helped a few different companies achieve screensharing-like functionality using only browser technologies.