IP Library Granted Patent US 10,860,279
Granted Patent B2
US 10,860,279 · App. 15/632,126 · Granted Dec 8, 2020

Method and system for browser-based screen sharing

Inventors: Adam Michael Lieb (San Francisco, CA); James L. Benton (San Francisco, CA); Zack Thomsen-Gray (Albany, CA); Brad Tofel (San Francisco, CA)
Assignee: CLEARSLIDE, INC.
G06F3/1454G06F3/0481H04L65/4015H04L67/101H04L67/1008H04L67/1021G09G2370/02H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,860,279
App. No.
15/632,126
Granted
Dec 8, 2020
Kind
B2
Abstract

Techniques are disclosed for facilitating browser-based screen sharing using scripting computer language codes that are directly executable by a web browser. An example method comprises loading a presentation webpage in a presenter's web browser. The presentation webpage includes scripting language codes that are configured to cause the presenter's web browser to capture a screen image without requiring the presenter's web browser to load an applet. The method further includes receiving data indicative of the captured screen image from the presenter device, wherein the data is generated by the scripting language codes, processing the received data to form a processed screen image that is in an image format natively displayable to a viewer's web browser, and transmitting a viewer webpage including the processed screen image to the viewer's web browser.

Claims (52)

1. A method comprising:

receiving a request to view a presentation upon a presenter device from a viewer device;

assigning one or more servers of a plurality of servers to perform as a screen sharing server;

responsive to determining that a web browser of the presenter device supports web real-time communications, loading a presentation webpage in the web browser of the presenter device, wherein the presentation webpage includes a screen sharing script directly executable by the web browser to cause the web browser of the presenter device to capture a plurality of static screen images;

receiving, by the one or more servers, data indicative of the plurality of static screen images from the presenter device, the data being generated by the screen sharing script which is configured to adjust the data indicative of the static screen images based on a network bandwidth between the presenter device and the one or more servers in order to maintain a specified frame rate of displaying the plurality of static screen images at the viewer device; and

transmitting, by the one or more servers, the data indicative of the plurality of static screen images to the viewer device.

2. The method of claim 1 , wherein the one or more servers include a presentation control server that receives control signals from the presenter device, and a presentation sharing server that transmits the presentation to the viewer device.

3. The method of claim 1 , wherein the screen sharing script is configured to cause the web browser of the presenter device to capture the plurality of static screen images by issuing instructions through an application programming interface of the web browser of the presenter device.

4. The method of claim 1 , wherein the screen sharing script is further configured to:

adaptively adjust the plurality of static screen images to reduce an overall size of the data indicative of the plurality of static screen images based on the network bandwidth between the presenter device and the one or more servers.

5. The method of claim 4 , wherein the screen sharing script is configured to adjust the data by performing at least one of:

reducing an image resolution of the plurality of static screen images; and

reducing a color depth of the plurality of static screen images.

6. The method of claim 1 , further comprising:

adaptively adjusting the plurality of static screen images to reduce an overall size of the plurality of static screen images based on the network bandwidth between the viewer device and the one or more servers.

7. The method of claim 6 , wherein the adjusting the plurality of static screen images comprises at least one of:

reducing an image resolution of the plurality of static screen images; and

reducing a color depth of the plurality of static screen images.

8. The method of claim 1 , wherein the screen sharing script is further configured to:

determine a frequency for refreshing the plurality of static screen images based on an operating speed of the presenter device; and

periodically capture a static screen image at the determined frequency.

9. The method of claim 1 , wherein the screen sharing script is further configured to enable a presenter to adjust a screen area to be captured.

10. The method of claim 1 , wherein the screen sharing script is further configured to:

determine a difference between a first static screen image and a second static screen image; and

selectively transmit to the one or more servers one of: the second static screen image or data indicative of the difference.

11. The method of claim 1 , further comprising displaying one or more markings within the presentation webpage; wherein

an active sharing area of the screen image is determined by the screen sharing script based on locations of the one or more markings within the presentation webpage.

12. The method of claim 1 , wherein the screen sharing script transmits additional data relating to a pointer controlled by a presenter within an active sharing area of the screen.

13. A computer system comprising:

a memory; and

a processor communicatively coupled to the memory, wherein the processor is configured to:

receive a request to view a presentation upon a presenter device from a viewer device;

assign one or more servers of a plurality of servers to perform as a screen sharing server;

responsive to determining that a web browser of the presenter device supports web real-time communications, load a presentation webpage in the web browser, wherein the presentation webpage includes a screen sharing script directly executable by the web browser to cause the web browser to capture a plurality of static screen images;

receive data indicative of the plurality of static screen images from the web browser, the data being generated by the screen sharing script which is configured to adjust the data indicative of the static screen images based on a network bandwidth between the presenter device and the one or more servers in order to maintain a specified frame rate of displaying the plurality of static screen images at the viewer device; and

transmit the data indicative of the plurality of static screen images to viewer device.

14. The system of claim 13 , wherein the screen sharing script is further configured to cause the web browser to capture the plurality of static screen images by issuing instructions through an application programming interface of the web browser.

15. The system of claim 13 , wherein the screen sharing script is further configured to:

detect a network condition between the presenter device, on which the web browser operates, and the one or more servers; and

adjust the plurality of static screen images to reduce an overall size of the data indicative of the plurality of static screen images based on the network condition between the presenter device and the one or more servers.

16. The system of claim 15 , wherein the screen sharing script is further configured to adjust the data by performing at least one of: reducing an image resolution of plurality of static screen images or reducing a color depth of the plurality of static screen images.

17. The system of claim 13 , wherein the processor is further configured to:

detect a network condition between the viewer device, on which the web browser of the viewer device operates, and the one or more servers; and

adaptively adjust the plurality of static screen images to reduce an overall size of the plurality of static screen images based on the network condition between the viewer device and the one or more servers.

18. The system of claim 17 , wherein the adjusting the plurality of static screen images comprises performing at least one of: reducing an image resolution of the plurality of static screen imaged or reducing a color depth of the plurality of static screen images.

19. The system of claim 13 , wherein the screen sharing script is further configured to:

determine a frequency for refreshing the screen image based on an operating speed of the presenter device; and

periodically perform the capturing of the capture a static screen image at the determined frequency.

20. The system of claim 13 , wherein the screen sharing script is further configured to enable a presenter to adjust a screen area of the screen image to be captured.

21. The system of claim 13 , wherein the screen sharing script is further configured to:

determine a difference between a first static screen image and a second static screen image; and

selectively transmit to the one or more servers one of: the second static screen image or data indicative of the difference.

Assignments (16)
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded May 6, 2026
From: CANTOR FITZGERALD SECURITIES, AS COLLATERAL AGENT
To: CLEARSLIDE INC.; COREL CORPORATION (AS SUCCESSOR IN INTEREST TO CASCADE BIDCO CORP.)
Reel/Frame 075522/0510 →
RELEASE OF SECURITY INTEREST Recorded May 5, 2026
From: CITIBANK, N.A., AS AGENT
To: COREL CORPORATION; CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
Reel/Frame 075559/0953 →
SECURITY INTEREST Recorded May 16, 2025
From: CLEARSLIDE, INC.; BRAINSHARK, INC.
To: SIXTH STREET SPECIALTY LENDING, INC.
Reel/Frame 071144/0287 →
RELEASE OF SECURITY INTEREST Recorded Jan 8, 2021
From: CANTOR FITZGERALD SECURITIES
To: CLEARSLIDE, INC.
Reel/Frame 054864/0061 →
RELEASE OF SECURITY INTEREST Recorded Jan 8, 2021
From: CITIBANK, N.A.
To: CLEARSLIDE, INC.
Reel/Frame 054864/0093 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME: 049678/0980 Recorded Jan 4, 2021
From: CANTOR FITZGERALD SECURITIES
To: CLEARSIDE, INC.
Reel/Frame 054897/0008 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME: 049678/0950 Recorded Jan 4, 2021
From: CITIBANK, N.A.
To: CLEARSIDE, INC.
Reel/Frame 054897/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2020
From: BENTON, JAMES L.
To: CLEARSLIDE, INC.
Reel/Frame 054185/0053 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2020
From: LIEB, ADAM MICHAEL; THOMSEN-GRAY, ZACK; TOFEL, BRAD
To: CLEARSLIDE, INC.
Reel/Frame 054185/0055 →
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 046299 FRAME 0836 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: COREL CORPORATION; CLEARSLIDE, INC.
Reel/Frame 049773/0628 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CITIBANK, N.A.
Reel/Frame 049678/0950 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CANTOR FITZGERALD SECURITIES
Reel/Frame 049678/0980 →
SECURITY INTEREST Recorded Jun 5, 2018
From: CLEARSLIDE, INC.
To: UBS AG, STAMFORD BRANCH
Reel/Frame 045988/0789 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2018
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: CLEARSLIDE, INC.
Reel/Frame 045984/0122 →
SECURITY INTEREST Recorded Feb 27, 2018
From: CLEARSLIDE , INC.
To: SILICON VALLEY BANK
Reel/Frame 045045/0956 →
Continuity (5)
Continuation 14448620 · Jul 31, 2014
Continuation In Part 12953054 · Nov 23, 2010
Provisional Application 61860647 · Jul 31, 2013
Provisional Application 61264185 · Nov 24, 2009
Related Publication 20170300286A1 · Oct 19, 2017