US 11,741,179 B2
Web browser remoting across a network using draw commands
Trevor Sundberg, Kirkland, WA (US); Killian Koenig, Seattle, WA (US); Darren Remington, Mesa, AZ (US); Benjamin Buzbee, Woodinville, WA (US); Michael Conrad, Monroe, WA (US); and David Harnett, Seattle, WA (US)
Assigned to CLOUDFLARE, INC., San Francisco, CA (US)
Filed by CLOUDFLARE, INC., San Francisco, CA (US)
Filed on Dec. 30, 2021, as Appl. No. 17/566,550.
Application 17/566,550 is a continuation of application No. 16/781,859, filed on Feb. 4, 2020, granted, now 11,314,835.
Claims priority of provisional application 62/800,948, filed on Feb. 4, 2019.
Claims priority of provisional application 62/800,937, filed on Feb. 4, 2019.
Prior Publication US 2022/0121724 A1, Apr. 21, 2022
Int. Cl. G06F 16/957 (2019.01); G06F 16/958 (2019.01); G06F 21/62 (2013.01); G06F 21/71 (2013.01); G06F 9/451 (2018.01); G06F 40/14 (2020.01); H04L 67/131 (2022.01)
CPC G06F 16/9574 (2019.01) [G06F 9/452 (2018.02); G06F 16/9577 (2019.01); G06F 16/972 (2019.01); G06F 16/986 (2019.01); G06F 21/629 (2013.01); G06F 21/6245 (2013.01); G06F 21/6281 (2013.01); G06F 21/71 (2013.01); G06F 40/14 (2020.01); H04L 67/131 (2022.05)] 24 Claims
OG exemplary drawing
 
1. A non-transitory computer-readable medium that provides instructions that, when executed by a processor, cause the processor to perform operations, comprising:
instantiating an instance of a remote application in a server, the remote application instance being instantiated responsive to a request from a client device that is executing a web browser application, the request for content for rendering on the web browser application;
intercepting, at the remote application instance, a first set of one or more draw commands associated with the requested content at a highest rendering interception level determined based on characteristics of the client device;
providing the first set of one or more draw commands to the client device to cause the web browser application executing on the client device to render one or more portions of output on the web browser application based on the first set of one or more draw commands;
receiving, at the remote application instance, an input event from the web browser application; and
providing a second set of one or more draw commands to the client device to cause the web browser application to render one or more portions of output on the web browser application based on the second set of one or more draw commands.