IP Library Granted Patent US 12,388,911
Granted Patent B2
US 12,388,911 · App. 17/070,583 · Granted Aug 12, 2025

Proxy injection of browser-executable functions

Inventors: Brock Meadors (Bakersfield, CA); Kevin Sanders (Manchaca, TX)
Assignee: Lightspeed Solutions, LLC
H04L67/63H04L67/56H04L67/535
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 12,388,911
App. No.
17/070,583
Granted
Aug 12, 2025
Kind
B2
Abstract

A proxy, such as a proxy server or proxy server application executed on a user device may inject code into web content for execution by a web browser. The injected code may perform functions such as tracking and reporting interaction with the web content and browser-level filtering of the web content. The web browser may execute the injected code to track and report user interaction with the web content and to filter web content delivered to the web browser.

Claims (46)

1. A method, comprising:

receiving, by a proxy, web content for a web browser on a user device, wherein the web content comprises web components configured to make auxiliary web requests;

injecting, by the proxy, one or more browser-executable functions into the web content, wherein the one or more browser-executable functions comprise executable code, wherein the executable code is executed by the web browser on the user device and collects user interaction metrics indicating parameters of one or more user interactions with the web content;

transmitting, by the proxy, the web content, comprising the injected browser-executable functions, to the web browser of the user device;

receiving, by the proxy, a content request and an indication, the indication provided by the executable code of the injected one or more browser-executable functions, wherein the indication indicates whether the one or more user interactions with the web content is an auxiliary web request for a video asset and generated by a component of the web content or the content request is a user-generated request;

filtering, by the proxy, the content request based on the indication and whether the content request is for a video asset;

allowing, by the proxy, the web content when the indication indicates that the content request is generated by at least one user-generated request;

blocking, by the proxy, the web content when the indication indicates that the content request is generated by the web content; and

reporting, by the proxy, the allowed web content.

2. The method of claim 1 , wherein the injection of the one or more browser-executable functions is performed by the user device executing the web browser.

3. The method of claim 1 , further comprising:

determining a source of the web content; and

selecting one or more browser-executable functions based, at least in part, on the source of the web content, wherein the step of injecting comprises injecting, by the proxy, the selected one or more browser-executable functions into the web content.

4. The method of claim 1 , wherein the one or more browser-executable functions comprise code for use by the web browser in performing browser-level filtering of the web content.

5. The method of claim 1 , wherein the one or more browser-executable functions comprise code for use by the web browser in sanitizing at least one of video, image, or audio content.

6. The method of claim 1 , further comprising filtering, by the proxy, all content requests from the user device for a first period of time when a number of filtered content requests within a second period of time exceeds a threshold number.

7. The method of claim 1 , wherein the injected one or more browser-executable functions further comprise code for determining an amount of time spent viewing the web content by the user.

8. A computer program product, comprising:

a non-transitory computer readable medium comprising code to perform steps comprising:

receiving web content for a web browser, wherein the web content comprises web components configured to make auxiliary web requests;

injecting one or more browser-executable functions into the web content, wherein the one or more browser-executable functions comprise executable code, wherein the executable code is executed by the web browser on a user device and collects user interaction metrics indicating parameters of one or more user interactions with the web content;

transmitting the web content, comprising the injected one or more browser-executable functions, to the web browser;

receiving a content request and an indication, the indication provided by the executable code of the injected one or more browser-executable functions, wherein the indication indicates whether the one or more user interactions with the web content is an auxiliary web request for a video asset and generated by a component of the web content or the content request is a user-generated request;

filtering the content request based on the indication and whether the content request is for a video asset;

allowing, by the proxy, the web content when the indication indicates that the content request is generated by at least one user-generated request;

blocking, by the proxy, web content when the indication indicates that the content request is generated by the web content; and

reporting, by the proxy, the allowed web content.

9. The computer program product of claim 8 , wherein the one or more browser-executable functions comprise code for use by the browser in performing browser-level filtering of the web content.

10. The computer program product of claim 8 , wherein the one or more browser-executable functions further comprise code for use by the web browser in reporting tracked content access.

11. The computer program product of claim 8 , wherein the one or more browser-executable functions comprise code for use by the web browser in sanitizing at least one of video, image, or audio content.

12. The computer program product of claim 8 , wherein the one or more browser-executable functions comprise code for determining an amount of time spent viewing the web content.

13. An apparatus, comprising:

a memory; and

a processor coupled to the memory, wherein the processor is configured by code in the memory to perform steps comprising:

receiving web content, wherein the web content comprises web components configured to make auxiliary web requests;

injecting one or more browser-executable functions into the web content, wherein the one or more browser-executable functions comprise executable code, wherein the executable code is executed by the web browser on a user device and collects user interaction metrics indicating parameters of one or more user interactions with the web content;

transmitting the web content, comprising the injected one or more browser-executable functions, to the web browser;

receiving a content request and an indication, the indication provided by the injected one or more browser-executable functions, wherein the indication indicates whether the one or more user interactions with the web content is an auxiliary web request for a video asset and generated by a component of the web content or the content request is a user-generated request;

allowing, by the proxy, the content request when the indication indicates that the content request is generated by at least one user-generated request;

blocking, by the proxy, web content when the indication indicates that the content request is generated by the web content; and

reporting, by the proxy, the allowed web content.

14. The apparatus of claim 13 , wherein the one or more browser-executable functions comprise code for use by the browser in performing browser-level filtering of the web content.

15. The apparatus of claim 13 , wherein the processor is further configured to execute the web browser.

16. The apparatus of claim 13 , wherein the one or more browser-executable functions further comprise code for use by the web browser in reporting tracked content access to a proxy.

17. The apparatus of claim 13 , wherein the one or more browser-executable functions further comprise code for determining an amount of time spent viewing the requested web content by the user.

18. The apparatus of claim 13 , wherein the one or more browser-executable functions comprise code for use by the web browser in sanitizing at least one of video, image, or audio content.

Assignments (3)
SECURITY INTEREST Recorded Mar 1, 2022
From: LIGHTSPEED SOLUTIONS, LLC; CATCHON, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 059133/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: MEADORS, BROCK; SANDERS, KEVIN
To: LIGHTSPEED SYSTEMS, INC.
Reel/Frame 054055/0412 →
ARTICLES OF ORGANIZATION - CONVERSION Recorded Oct 14, 2020
From: LIGHTSPEED SYSTEMS, INC.
To: LIGHTSPEED SOLUTIONS, LLC
Reel/Frame 054084/0218 →
Continuity (2)
Continuation 15960378 · Apr 23, 2018
Related Publication 20210029220A1 · Jan 28, 2021
References Cited (22)
US 9420049B1 · Talmor · 2016 [cited by examiner]
US 10326789B1 · Vines · 2019 [cited by examiner]
US 10855806B2 · Meadors · 2020 [cited by examiner]
US 20080228910A1 · Petri · 2008 [cited by examiner]
US 20100153544A1 · Krassner · 2010 [cited by examiner]
US 20140215050A1 · Lu · 2014 [cited by examiner]
US 20170126627A1 · Yang · 2017 [cited by examiner]
US 20170228795A1 · Papakostas · 2017 [cited by examiner]
US 20170237766A1 · Mattson · 2017 [cited by examiner]
US 20170244737A1 · Kuperman · 2017 [cited by examiner]
US 20170364949A1 · Vandusen · 2017 [cited by examiner]
US 20180012256A1 · Napchi · 2018 [cited by examiner]
US 20180253415A1 · Halai · 2018 [cited by examiner]
US 20180343201A1 · Peterson · 2018 [cited by examiner]
US 20200050179A1 · Erickson · 2020 [cited by examiner]
Anonymous: “Google Analytics—Wikipedia”, Feb. 22, 2018 (Feb. 22, 2018), XP055621150, Retrieved from the Internet: URL: https://en.wikipedia.org/w/index.php?title=Google Analytics&oldid=827025596. [cited by applicant]
Durieux, T. et al., “ Fully Automated HTML and Javascript Rewriting for Constructing a Self-healing Web Proxy”, arxiv.org, Cornell University Library, Mar. 23, 2018 (Mar. 23, 2018). [cited by applicant]
Henkel, Z. “SP Advertisement Injection—CMA Communications” Mar. 29, 2013 (Mar. 29, 2013), XP055597666, Retrieved from the Internet: URL:https://zmhenkel.blogspot.com/2013/03/isp-advertisement-injection-cma.html. [cited by applicant]
Hruska, F. “Nginx reverse proxy with code injection—FHR's Blog”, Sep. 20, 2017 (Sep. 20, 2017), XP055620406, Retrieved from the Internet: URL: https://blog.fhrnet.eu/2017/09/20/nginx-reverse-proxy-with-code-injection/. [cited by applicant]
Malhotra, P. “Injecting Javascript in HTML Content Using MITM Proxy”, Jun. 8, 2015 (Jun. 8, 2015), XP055597689, Retrieved from the Internet: URL:http://pankajmalhotra.com/Injecting-Javascript-In-HTML-Content-Using-MITM-… [cited by applicant]
Tsirantonakis et al., “A Large-scale Analysis of Content Modification by Open HTTP Proxies”, Proceedings 2018 Network and Distributed System Security Symposium, Feb. 18, 2018 (Feb. 18, 2018), XP055620768, Reston, VA. [cited by applicant]
Yakushev, R. “Using Outbound Rules to add Web Analytics tracking code: Microsoft Docs”, Jul. 16, 2009 (Jul. 16, 2009), XP055621154, Retrieved from the Internet: URL:https://docs.microsoft.com/en-us/iis/extensions/url-re… [cited by applicant]