IP Library Granted Patent US 11,983,233
Granted Patent B2
US 11,983,233 · App. 17/499,255 · Granted May 14, 2024

Browser based feedback for optimized web browsing

Inventors: Peter Lepeska (Boston, MA); William B. Sebastian (Falmouth, MA)
Assignee: VIASAT, INC.
G06F16/9574G06F16/9566H04L67/01H04L67/02H04L67/535H04L67/563H04L67/568H04L67/5681H04L67/5682
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 11,983,233
App. No.
17/499,255
Granted
May 14, 2024
Kind
B2
Abstract

The present invention relates to systems, apparatus, and methods of accelerating web transactions. One embodiment includes observing, with a web browser plug-in operating on a computer, at least a portion of a first web page transaction in a web browser operating on the computer. A web browser module may be used to identify transaction information from the observing of the at least a portion of the first web page transaction. The browser may communicate transaction information to a prefetching system in a communication separate from the first web page transaction; and the transaction information may be used to perform a prefetch operation.

Claims (125)

1. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page and the page information indicates an order in which a plurality of the child URLs were used by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page.

2. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page and the page information includes a timing dependency of one of the child URLs with respect to another of the child URLs during the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page.

3. The prefetching system of claim 2 , wherein the timing dependency indicates that the one of the child URLs is dependent on the other of the child URLs.

4. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information;

determine from the page information that a second of the child URLs is dependent on a first of the child URLs; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page and the hinting information including a page loading instruction to fetch the first of the child URLs before fetching the second of the child URLs; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page.

5. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page,

wherein:

the child URLs comprise a first child URL fetched by the first web browser from a first web domain and a second child URL fetched by the first web browser from a second web domain that is different than the first web domain, and

web objects associated with the first domain are on the content server and web objects associated with the second domain are on a different server.

6. The prefetching system of claim 5 , wherein the page information comprises render times of a plurality of the child URLs during the prior loading of the web page.

7. The prefetching system of claim 5 , wherein the page information identifies a child URL fetched by the first web browser from its local cache during the prior loading of the web page.

8. The prefetching system of claim 5 , wherein the hinting information comprises information for caching, at a second web browser of the plurality of web browsers, child objects of the child URLs on the web page.

9. The prefetching system of claim 8 , wherein the hinting information for caching one of the child objects comprises an indication of a most recent time the child object was modified.

10. The prefetching system of claim 5 , wherein the browsing assistance module is further configured to:

receive second page information relating to a second loading of the web page; and

update the stored hinting information from the second page information.

11. The prefetching system of claim 5 , wherein the browsing assistance module is further configured to:

receive from a second web browser of the plurality of web browsers, a request for hinting information associated with the web page; and

in response to the request, send to the second web browser, the stored hinting information.

12. The prefetching system of claim 5 , wherein the browsing assistance module is further configured to send to a second web browser of the plurality of web browsers the hinting information for use by the second web browser in the future loading of the web page.

13. The prefetching system of claim 5 , wherein the browser assistance module is further configured to:

identify in the page information a parameter from the prior loading of the web page by the first web browser, and

associate one of the child URLs in the page information with the identified parameter,

wherein the hinting information comprises a page loading instruction to pre-fetch the one of the child URLs upon encountering the parameter during the future loading of the web page.

14. The prefetching system of claim 5 , wherein:

the page information further comprises a first root URL corresponding to a root object fetched by the first web browser as part of the prior loading of the web page; and

the browser assistance module is further configured to:

identify a field in the first root URL; and

associate one of the child URLs in the page information with the identified field,

wherein the hinting information comprises a page loading instruction to pre-fetch the one of the child URLs upon encountering a root URL that comprises the identified field during the future loading of the web page.

15. The prefetching system of claim 14 , wherein the browser assistance module is further configured to:

receive second page information following a second loading of the web page by one of the plurality of web browsers;

determine that the second page information:

indicates that a root URL comprising the identified field was fetched as part of the second loading of the web page, but

lacks an indication that the one of the child URLs was fetched as part of the second loading of the web page; and

update the hinting information by decreasing a pre-fetching probability associated with the one of the child URLs.

16. The prefetching system of claim 14 , wherein the browser assistance module is further configured to:

receive second page information relating to a second loading of the web page by one of the plurality of web browsers;

determine that the second page information indicates that:

a second root URL that is different than the first root URL but nevertheless comprises the identified field was fetched as part of the second loading of the web page, and

the one of the child URLs was fetched as part of the second loading of the web page; and

update the hinting information by increasing a pre-fetching probability associated with the one of the child URLs.

17. The prefetching system of claim 5 , wherein:

the hinting information comprises, for a child URL on the web page, an identification of a second server from which to pre-fetch the child URL, and

the second server is different than the content server.

18. The prefetching system of claim 5 , wherein one of the plurality of web browsers is configured to:

download the stored hinting information; and

load the web page or the related web page utilizing the downloaded hinting information.

19. The prefetching system of claim 18 , wherein the one of the plurality of web browsers is further configured to:

prefetch one of the child URLs identified in the hinting information; and

utilize the prefetched child URL as part of the loading of the web page or the related web page.

20. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page,

wherein the page information comprises a dependency of one of the child URLs on an identified cookie.

21. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page;

wherein the browsing assistance module is further configured to determine a probability for each of a plurality of the child URLs that the child URL will be fetched as part of the future loading of the web page.

22. The prefetching system of claim 21 , wherein the browsing assistance module is further configured to, in response to receiving second page information relating to a second loading of the web page, update the probabilities of a set of the plurality of the child URLs.

23. The prefetching system of claim 21 , wherein:

the hinting information comprises a subset of less than all child URLs on the web page for pre-fetching, and

the probability of each of the child URLs in the subset is greater than a threshold probability.

24. The prefetching system of claim 21 , wherein:

the child URLs comprise a first child URL fetched by the first web browser from a first web domain and a second child URL fetched by the first web browser from a second web domain that is different than the first web domain, and

web objects associated with the first domain are on the content server and web objects associated with the second domain are on a different server.

25. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page,

wherein:

the web page is served by the content server encrypted, and

the page information identifies child URLs fetched by the first web browser from different domains.

26. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page.

27. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page,

wherein the browsing assistance module is further configured to:

identify parameters in the page information and determine;

determine whether a plurality of the parameters corresponds to a model of the web page stored at the browsing assistance module; and

responsive to determining that the plurality of the parameters corresponds to the model of the web page, include in the hinting information as child URLs for pre-fetching, child URLs associated with the plurality of the parameters in the model.

28. The prefetching system of claim 27 , wherein the browsing assistance module is further configured to, responsive to determining that the plurality of the parameters does not correspond to the model of the web page, create a model of the web page using the parameters.

29. A prefetching system comprising:

a browsing assistance module configured to:

receive page information regarding a prior loading of a web page stored at a content server by a first web browser of a plurality of web browsers, wherein the page information identifies child universal resource locators (URLs) fetched by the first web browser as part of the prior loading of the web page;

analyze the page information; and

generate hinting information from the analysis of the page information, the hinting information including page loading instructions for the plurality of web browsers for shortening a load time of the web page; and

a digital memory configured to store the hinting information in association with an identification of the web page such that the hinting information is available for download by the plurality of web browsers in conjunction with a future loading of the web page or a related web page,

wherein the browsing assistance module is further configured to determine a probability that one or more of the child URLs will be fetched as part of the future rendering of the web page.

Assignments (11)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64176/0566 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071510/0382 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD., AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0001 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 064164/0152 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071484/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 19, 2023
From: VIASAT, INC.
To: MUFG BANK, LTD., AS AGENT
Reel/Frame 064948/0379 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Jun 29, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 064164/0152 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Jun 29, 2023
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 064176/0566 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2021
From: LEPESKA, PETER; SEBASTIAN, WILLIAM B
To: VIASAT, INC.
Reel/Frame 058051/0787 →