# US 11,307,911 B2 · File upload modifications for client side applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,911 B2
- Document ID: US11307911B2
- Status: Granted
- Kind: B2
- Application number: 16/888,327
- Filed: 2020-05-29
- Published: 2021-12-02
- Granted: 2022-04-19
- Earliest claimed: 2020-05-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Guy Lewin; Amir Geri; Yossi Haber
- Web page: https://patentgrep.com/patent/US11307911B2

## CPC

- G06F 16/95: Retrieval from the web
- G06F 3/0486: Drag-and-drop
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/543: {User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/302: {where the computing system component is a software system}
- G06F 16/16: File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F 16/953: Querying, e.g. by the use of web search engines
- G06F 16/958: Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- G06F 2201/86: Event-based monitoring
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems are provided for a client computing device including a browser that renders a web page. Program code generates a mock upload event and a corresponding mock data transfer object for uploading data using the web page. The mock upload event and the corresponding mock data transfer object are propagated to an upload event listener of the web page and executed. Prior to generating the mock upload event and corresponding mock data transfer object, an embedded upload event listener may receive an upload event, read the upload event, drop the received upload event from an event handler pipeline, and call synchronously or asynchronously, code to perform logic on the received upload event for the generation of the mock upload event and a corresponding mock data transfer object.

## Claims

### Claim 1

A system in a client computing device, comprising:
an embedded upload event listener configured to:
intercept a received upload event;
read the received upload event; and
drop the received upload event from an upload event handler pipeline;
a mock upload event generator including program code configured to generate a mock upload event and a corresponding mock data transfer object for uploading data using a web page, the mock upload event a replacement for the dropped upload event, wherein the program code is configured to execute in the client computing device;
a dispatcher configured to propagate the mock upload event and the corresponding mock data transfer object to an upload event listener of the web page; and
an event handler configured to execute the mock upload event.

### Claim 2 (depends on 1)

The system of claim 1, wherein the data includes a file, a plurality of files, a directory, or a plurality of directories.

### Claim 3 (depends on 1)

The system of claim 1, wherein the mock upload event performs at least one of:
modifying a file,
changing a file name,
changing content of a file,
creating a file,
changing a list of files in a directory, or
creating a file system.

### Claim 4 (depends on 1)

The system of claim 1, wherein the embedded upload event listener is further configured to:
call, synchronously or asynchronously, the program code to perform logic on the received upload event.

### Claim 5 (depends on 4)

The system of claim 4, wherein the program code configured to generate a mock upload event and a corresponding mock data transfer object for uploading data using the web page is configured to modify the received upload event.

### Claim 6 (depends on 4)

The system of claim 4, wherein the embedded upload event listener is configured to respond to a drag-and-drop input or a selection input in a dialog element input of the web page.

### Claim 7 (depends on 4)

The system of claim 4, wherein the embedded upload event listener is registered to be executed prior to any other event listeners of the web page.

### Claim 8 (depends on 4)

The system of claim 4, wherein the mock upload event generator is configured to:
send, to a proxy server, a query including metadata about the received upload event; and
receive, from the proxy server, a response to the query including instructions;
wherein the mock upload event generator including program code is further configured to generate the mock upload event and the corresponding mock data transfer object based on the instructions received from the proxy server.

### Claim 9 (depends on 1)

The system of claim 1, wherein the mock upload event generator includes at least one of:
script browser extension code;
script code that alters a received event;
new script code; or
script code injected as a hook library in the web page.

### Claim 10 (depends on 1)

The system of claim 1, wherein the mock upload event generator is script code of a scripting language.

### Claim 11

A method in a client computing device, comprising:
intercepting a received upload event;
reading the received upload event;
dropping the received upload event from an upload event handler pipeline;
generating a mock upload event and a corresponding mock data transfer object for uploading data using a web page, the mock upload event a replacement for the dropped upload event;
propagating the mock upload event and the corresponding mock data transfer object to an upload event listener of the web page; and
instructing the upload event listener for execution of the mock upload event.

### Claim 12 (depends on 11)

The method of claim 11, wherein the mock upload event performs at least one of:
modifying a file,
changing a file name,
changing content of a file,
creating a file,
changing a list of files in a directory, or
creating a file system.

### Claim 13 (depends on 11)

The method of claim 11, wherein prior to said generating a mock upload event and a corresponding mock data transfer object for uploading data using the web page, the method further comprises:
calling synchronously or asynchronously, by an embedded upload event listener, code to perform logic on the received upload event for said generating.

### Claim 14 (depends on 13)

The method of claim 13, wherein said embedded upload event listener is registered to be executed prior to any other event listeners of the web page.

### Claim 15 (depends on 13)

The method of claim 13, further comprising:
sending, to a proxy server, a query including metadata about the received upload event; and
receiving, from the proxy server, a response to the query including instructions;
wherein said generating a mock upload event and a corresponding mock data transfer object for uploading data using the web page is based on the instructions received from the proxy server.

### Claim 16 (depends on 11)

The method of claim 11, wherein the mock upload event generator includes at least one of:
script browser extension code;
script code that alters a received event;
new script code; or
script code injected as a hook library in the web page.

### Claim 17 (depends on 11)

The method of claim 11, wherein the mock upload event generator is script code of a scripting language.

### Claim 18

A physical hardware computer-readable medium having program code recorded thereon that when executed by at least one processor causes the at least one processor to perform a method, the method comprising:
intercepting a received upload event;
reading the received upload event;
dropping the received upload event from an upload event handler pipeline;
generating a mock upload event and a corresponding mock data transfer object for uploading data using a web page, the mock upload event a replacement for the dropped upload event;
propagating the mock upload event and the corresponding mock data transfer object to an upload event listener of the web page; and
instructing the upload event listener for execution of the mock upload event.

### Claim 19 (depends on 18)

The physical hardware computer-readable medium of claim 18, wherein prior to said generating a mock upload event and a corresponding mock data transfer object for uploading data using the web page, the method further comprises:
calling synchronously or asynchronously, by an embedded upload event listener, code to perform logic on the received upload event for said generating.

### Claim 20 (depends on 19)

The physical hardware computer-readable medium of claim 19, further comprising:
sending, to a proxy server, a query including metadata about the received upload event; and
receiving, from the proxy server, a response to the query including instructions;
wherein said generating, by program code configured to execute in a client computing device, a mock upload event and a corresponding mock data transfer object for uploading data using the web page is based on the instructions received from the proxy server.
