Patent ID: 11870837
Assignee: nan
Field: Computer technology (Electrical engineering)
Classification: CPC G  H | IPC G  H

Claim 0:
1. A system configured to establish a dynamically-enhanced browsing session with an arbitrary web application and transparently proxy said arbitrary web application to one or more users, the system comprising:
a JS/HTML rewrite engine processor configured to produce modified content by rewriting to the unprocessed content in computer-readable memory;
a load balancer configured to implement a URL encoding scheme permitting mapping of all URLs of an origin web application to corresponding URLs within the proxied web application, said URL encoding scheme making use of one of a leader token and a follower token, wherein URLs of the origin web application encoded using the leader token are leader links and URLs of the origin web application encoded using the follower token are follower links;
a user interface (UI) application configured to serve a customizable web application implementing functionality on top of the proxied web application;
a proxy comprising: (1) an HTTP proxy application adapted to work in connection with a WebSocket (WS) proxy application; and (2) the WebSocket proxy application configured to work with the HTTP proxy application, the proxy configured to rewrite unprocessed HTTP and WS requests into processed requests, and rewrite unprocessed response content into processed content in response to a user opening a leader link, by:
parsing and modifying HTML and CSS content of the origin web application using a system configuration,
parsing and modifying Javascript content of the origin web application using the system configuration,
parsing and modifying WebSocket traffic using the system configuration,
encoding all URLs inside the parsed content,
wrapping HTML documents inside an iFrame within a custom user interface window served by the user interface application,
injecting additional client-side code into the processed request,
modifying HTTP headers using the system configuration, and
replacing original content with content generated by the proxy;

a rewrite worker processor comprising a Javascript parser configured to reconstruct Javascript code by routing one or more of property setters, getters, and function calls to a plurality of getset handlers adapted to change return values of communications between the origin web application and the user's web browser, and between the client-side part of the origin web application and its server-side part; and
a co-browsing server.