Network status simulation for remote device infrastructure
AssigneeBrowserStack Limited
InventorsJames Barboza, Krishna Suravarapu, Kunal Chowdhary
Life of this patent
Estimating the term…
Abstract
A software development infrastructure can enable user developers to select remote hardware devices at a remote datacenter to develop and test software programs, such as web or mobile applications. The developer can remotely install an application on a selected remote device and observe a mirrored display of the remote device on a browser local to the developer. The software development infrastructure can enable the developer to test offline mode workflows of the application by blocking network traffic to and from the application but allowing network transmission to and from a streaming application installed on the remote device.
Claims17
A method comprising:
- establishing a network communication link between a browser, installed on a local machine at a first location and a host, coupled to a remote device at a second location through a virtual network interface layer, wherein the host is configured to provide network communication to the remote device via the virtual network interface layer;
- installing a streaming application on the remote device, wherein the streaming application is configured to stream, via the network communication link, a display of the remote device to the browser;
- receiving a request from the browser to enable offline mode on the remote device;
- executing a network filtering command, on the virtual network interface layer resident on the host, instructing the virtual network interface layer to block or reduce transmission speed of network traffic to and from a user application installed on the remote device, while allowing network traffic to and from the streaming application, wherein the user application comprises requests to a network status application programming interface (API) provided by an operating system of the remote device;
- decompiling the user application;
- detecting calls in the user application for input from the network status application programing interface (API) of the operating system of the host;
- generating modified calls, by replacing the detected calls in the user application to the network status APIs of the operating system of the host, with calls for input from a replacement network status API;
- recompiling the user application with the modified calls;
- and
- installing the user application with the modified calls on the remote device,
- wherein the replacement network status API is configured to signal a blocked or reduced transmission speed status to the user application.
A non-transitory computer storage that stores executable program instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising:
- establishing a network communication link between a browser, installed on a local machine at a first location and a host, coupled to a remote device at a second location through a virtual network interface layer, wherein the host is configured to provide network communication to the remote device via the virtual network interface layer;
- installing a streaming application on the remote device, wherein the streaming application is configured to stream, via the network communication link, a display of the remote device to the browser;
- receiving a request from the browser to enable offline mode on the remote device;
- executing a network filtering command, on the virtual network interface layer resident on the host, instructing the virtual network interface layer to block or reduce transmission speed of network traffic to and from a user application installed on the remote device, while allowing network traffic to and from the streaming application, wherein the user application comprises requests to a network status application programming interface (API) provided by an operating system of the remote device;
- decompiling the user application;
- detecting calls in the user application for input from the network status application programing interface (API) of the operating system of the host;
- generating modified calls, by replacing the detected calls in the user application to the network status APIs of the operating system of the host, with calls for input from a replacement network status API;
- recompiling the user application with the modified calls;
- and
- installing the user application with the modified calls on the remote device,
- wherein the replacement network status API is configured to signal a blocked or reduced transmission speed status to the user application.
A system comprising a processor, the processor configured to perform operations comprising:
- establishing a network communication link between a browser, installed on a local machine at a first location and a host, coupled to a remote device at a second location through a virtual network interface layer;
- installing a streaming application on the remote device, wherein the streaming application is configured to stream, via the network communication link, a display of the remote device to the browser;
- receiving a request from the browser to enable offline mode on the remote device;
- executing a network filtering command, on the virtual network interface layer resident on the host, instructing the virtual network interface layer to block or reduce transmission speed of network traffic to and from a user application installed on the remote device, while allowing network traffic to and from the streaming application, wherein the user application comprises requests to a network status application programming interface (API) provided by an operating system of the remote device;
- decompiling the user application;
- detecting calls in the user application for input from the network status application programing interface (API) of the operating system of the host;
- generating modified calls, by replacing the detected calls in the user application to the network status APIs of the operating system of the host, with calls for input from a replacement network status API;
- recompiling the user application with the modified calls;
- and
- installing the user application with the modified calls on the remote device,
- wherein the replacement network status API is configured to signal a blocked or reduced transmission speed status to the user application.
Dependencies are inferred from the claim text.