All the UI that relates to Canvas uses the canvas' node. We currently get the node via a protocol method, but since we always need the node in the UI, we might as well save a trip and just include the nodeId in the Canvas payload. Doing this will eliminate the need for Canvas.requestNode.
<rdar://problem/35842976>
Created attachment 328416 [details] [Patch] WIP I probably should've uploaded this earlier, but I tried doing some of this at the WebKit Contributors Meeting. I kept running into an issue with how the document is fetched by the frontend, and how in doing so it would clear all the previously retrieved IDs, meaning that any we sent to the frontend for the Canvases would effectively be wiped out.