A method, comprising, in a streaming application environment including one or more processors: interfacing a virtual streaming application with a remote device coupled to the streaming application environment over a packet-switched network, including receiving from the packet-switched network input generated at the remote device and streaming an output display representation generated by the virtual streaming application in response to the received input over the packet-switched network to the remote device; receiving frame refresh events from the remote device, each frame refresh event associated with a frame on the remote device; receiving input events from the remote device, each input event associated with an input generated during rendering of a frame on the remote device, each input event including a remote device system time timestamp; queuing the received input events, including queuing the associated remote device system time timestamp for each received input event; generating virtual frames for the virtual streaming application corresponding to the frames with which the received frame refresh events are associated, wherein the virtual frames comprise rendered content output by the virtual streaming application, and wherein generating virtual frames for the virtual streaming application comprises: generating a first virtual frame refresh event in response to a first frame refresh event received from the remote device; and in response to the first virtual frame refresh event, synchronizing injection of the queued received input events by: for each of the queued input events, handling the respective input event based upon a timestamp associated with the respective input event relative to a timestamp associated with the first virtual frame refresh event. interfacing a virtual streaming application with a remote device coupled to the streaming application environment over a packet-switched network, including receiving from the packet-switched network input generated at the remote device and streaming an output display representation generated by the virtual streaming application in response to the received input over the packet-switched network to the remote device; receiving frame refresh events from the remote device, each frame refresh event associated with a frame on the remote device; receiving input events from the remote device, each input event associated with an input generated during rendering of a frame on the remote device, each input event including a remote device system time timestamp; queuing the received input events, including queuing the associated remote device system time timestamp for each received input event; generating virtual frames for the virtual streaming application corresponding to the frames with which the received frame refresh events are associated, wherein the virtual frames comprise rendered content output by the virtual streaming application, and wherein generating virtual frames for the virtual streaming application comprises: generating a first virtual frame refresh event in response to a first frame refresh event received from the remote device; and in response to the first virtual frame refresh event, synchronizing injection of the queued received input events by: for each of the queued input events, handling the respective input event based upon a timestamp associated with the respective input event relative to a timestamp associated with the first virtual frame refresh event. generating a first virtual frame refresh event in response to a first frame refresh event received from the remote device; and in response to the first virtual frame refresh event, synchronizing injection of the queued received input events by: for each of the queued input events, handling the respective input event based upon a timestamp associated with the respective input event relative to a timestamp associated with the first virtual frame refresh event.