CompositingRunLoop has a method runLoop() which gets the runLoop of a WorkQueue. This is GTK and generic run loop specific so WinCairo cannot currently use this.
I don't think WorkQueue should expose RunLoop in its member function since it's implementation detail. If handling RunLoop is required, it means that WorkQueue abstraction is too high to use there. CompositingRunLoop should use RunLoop instead of WorkQueue I think.
We have two options here, either use our own thread with a run loop, or keep using a work queue, but making the timer creation platform specific (I guess in windows you could add a WorkQueue::timerQueue() similar to dispatchQueue() used by cocoa and runLoop() used by glib and generic) and create the timer with CreateTimerQueueTimer().
This will be fixed in bug #195208
*** This bug has been marked as a duplicate of bug 195208 ***