Why would you need commit in this case? Isn't its function purely to display the drawing buffer contents in the canvas?
as for commit(), it seems to me it should go on DrawingBuffer asthat's the object that's deciding if something is swapping bufferson commit or copying buffers on commit.
Having it on Drawingbuffer also means it can be used in workerswithout a canvas.
NOTE: This electronic mail message may contain confidential and privileged information from HI Corporation. If you are not the intended recipient, any disclosure, photocopying, distribution or use of the contents of the received information is prohibited. If you have received this e-mail in error, please notify the sender immediately and permanently delete this message and all related copies.