IP Library Granted Patent US 11,341,206
Granted Patent B2
US 11,341,206 · App. 15/405,084 · Granted May 24, 2022

Intercepting not directly interceptable program object property

Inventors: Mehrdad Reshadi (Sunnyvale, CA); Rajaram Gaunker (Santa Clara, CA); Hariharan Kolam (San Ramon, CA); Raghu Batta Venkat (Sunnyvale, CA)
Assignee: Akamai Technologies, Inc.
G06F16/957G06F16/13G06F16/16G06F16/164G06F16/173G06F16/176G06F16/94G06F21/64H04L9/3236H04L63/0414H04L63/0428H04L67/02G06F2221/2119H04L63/168H04L2209/16H04L2209/34H04L2209/601H04L2209/603
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,341,206
App. No.
15/405,084
Granted
May 24, 2022
Kind
B2
Abstract

One or more instances in program code that references an identifier of the standard web object model program object property that is prevented by a web browser from being directly reassigned are identified. The one or more instances in the program code that references the identifier of the standard web object model program object property that is prevented by the web browser from being directly reassigned are modified with one or more corresponding replacement references that include a replacement identifier. The replacement identifier id defined in the program code as being associated with a new program object property defined to invoke the standard web object model program object property in addition to being defined to perform additional processing of a resource identifier associated with the invocation of the standard web object model program object property.

Claims (32)

1. A method, comprising:

identifying at least one instance in program code of a web application that references an identifier of a standard web object model program object property that is non-interceptable, the object property being non-interceptable because it cannot be directly reassigned to invoke replacement code due to a limitation enforced by a web browser;

using a processor to replace the instance in the program code that references the identifier of the non-interceptable object property with a corresponding replacement reference that includes a replacement identifier;

defining in the program code the replacement identifier as being associated with a new program object property defined to invoke the standard web object model program object property that is non-interceptable in addition to being defined to perform additional processing of a resource identifier associated with the invocation of the standard web object model program object property; and

invoking the new program object property in place of the standard web object model program object property, wherein in response to invoking the new program object property the additional processing is carried out in replacement memory address locations of a local memory instead of memory address locations of the local memory associated with standard application programming interface (API) functions.

2. The method of claim 1 , wherein the standard web object model program object property is a Document Object Model API object property.

3. The method of claim 1 , wherein the standard web object model program object property is a “.location” property of a “window” object of a web API.

4. The method of claim 1 , wherein the standard web object model program object property is a “.postMessage” property of a “window” object of a web API.

5. The method of claim 1 , wherein the standard web object model program object property is a “.source” property of a “MessageEvent” object of a web API.

6. The method of claim 1 , wherein the program code is JavaScript code of a webpage.

7. The method of claim 1 , wherein identifying the at least one instance in the program code includes identifying a location in the program code where characters of the identifier of the standard web object model program object property occur.

8. The method of claim 1 , wherein modifying the at least one instance in the program code includes replacing the identifier of the standard web object model program object property with the replacement identifier.

9. The method of claim 1 , wherein modifying the at least one instance in the program code includes modifying a code segment of the at least one instance with a replacement code that references a new program object with the new program object property.

10. The method of claim 1 , wherein the new program object property is a new property of an original object of the standard web object model program object property.

11. The method of claim 1 , wherein defining the replacement identifier includes defining a getter for the new program object property.

12. The method of claim 1 , wherein defining the replacement identifier includes defining a setter for the new program object property.

13. The method of claim 1 , wherein defining the replacement identifier includes adding in the program code a definition of the new program object property for a top level JavaScript object “Object”.

14. The method of claim 1 , wherein performing the additional processing of the resource identifier includes encoding the resource identifier to provide an encoded version of the resource identifier when invoking the standard web object model program object property.

15. The method of claim 1 , wherein performing the additional processing of the resource identifier includes decoding the resource identifier returned from invoking the standard web object model program object property.

16. The method of claim 1 , wherein the program code was received from a server and modified at an intermediary prior to execution by the web browser.

17. A system, comprising:

a processor configured to:

identify at least one instance in program code of a web application that references an identifier of a standard web object model program object property that is non-interceptable, the object property being non-interceptable because it cannot be directly reassigned to invoke replacement code due to a limitation enforced by a web browser;

replace the at least one instance in the program code that references the identifier of non-interceptable object property with a corresponding replacement reference that includes a replacement identifier;

define in the program code the replacement identifier as being associated with a new program object property defined to invoke the standard web object model program object property that is non-interceptable in addition to being defined to perform additional processing of a resource identifier associated with the invocation of the standard web object model program object property; and

invoke the new program object property in place of the standard web object model program object property, wherein in response to invoking the new program object property the additional processing is carried out in replacement memory address locations of a local memory instead of memory address locations of the local memory associated with standard application programming interface (API) functions; and

a device coupled to the processor and configured to provide the processor with instructions.

18. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

identifying at least one instance in program code of a web application that references an identifier of a standard web object model program object property that is non-interceptable, the object property being non-interceptable because it cannot be directly reassigned to invoke replacement code due to a limitation enforced by a web browser;

replacing the at least one instance in the program code that references the identifier of the non-interceptable object property with a corresponding replacement reference that includes a replacement identifier;

defining in the program code the replacement identifier as being associated with a new program object property defined to invoke the standard web object model program object property that is non-interceptable in addition to being defined to perform additional processing of a resource identifier associated with the invocation of the standard web object model program object property; and

invoking the new program object property in place of the standard web object model program object property, wherein in response to invoking the new program object property the additional processing is carried out in replacement memory address locations of a local memory instead of memory address locations of the local memory associated with standard application programming interface (API) functions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: INSTART LOGIC, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 052120/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: RESHADI, MEHRDAD; GAUNKER, RAJARAM; KOLAM, HARIHARAN; VENKAT, RAGHU BATTA
To: INSTART LOGIC, INC.
Reel/Frame 041466/0653 →
Continuity (8)
Continuation In Part 15079396 · Mar 24, 2016
Continuation In Part 14206344 · Mar 12, 2014
Continuation In Part PCTUS2016053102 · Sep 22, 2016
Continuation In Part 15079396 · Mar 24, 2016
Continuation In Part 14206344 · Mar 12, 2014
Provisional Application 62279468 · Jan 15, 2016
Provisional Application 62222116 · Sep 22, 2015
Related Publication 20170169124A1 · Jun 15, 2017