1. A method for crawling a browser-accessible application, the method comprising: causing a target application and a bridge application to run concurrently in a browser-controllable player; and iteratively performing steps until a predefined termination condition is reached, wherein the steps include: receiving from said bridge application current state information of said target application; storing said state information on a data storage device if said state information is not found on said data storage device, wherein said state information is stored as a descendant state of an initial state of said target application, wherein said storing step comprises storing a description of any interactions performed with said target application that effected said current state; and interacting with said target application in accordance with a predefined simulation algorithm, thereby effecting a new state of said target application; wherein said causing, receiving, storing, and interacting steps are implemented in one of: a) computer hardware configured to perform said steps; and b) computer software embodied in a non-transitory, tangible, computer-readable storage medium; iteratively performing said receiving, storing, and interacting steps until all simulated interactions determined by said simulation algorithm for performing with said target application in a given one of said states have been performed; and returning said target application to a parent state of said given state by returning said target application to its initial state and interacting with said target application in accordance with said stored interaction descriptions to effect a sequence of states from said initial state to said parent state.