Patent · US10630780B1 · B1 · US
Intersession communications
- (11) Publication number
- US10630780B1
- (21) Application number
- 16/250,527
- (22) Filing date
- 2019-01-17
- (30) Priority date
- 2015-12-14
- (43) Publication date
- 2020-04-21
- (45) Date of grant
- 2020-04-21
- (51) IPC
- G06F 11/07; G06F 15/173; G06F 9/44; G06F 9/54; H04L 12/26; H04L 29/08; H04W 4/21
- (52) CPC
- (73) Assignee
- Facebook Inc
- (72) Inventors
- Steven Harold Levithan
- (54) Title
- Intersession communications
- (57) Abstract
A system and method for communication across browser-based applications, and from a crashed application to a web server are disclosed. The system can store structured data in local storage for each instance (e.g., tab, window, frame) of an browser-based application (e.g., website, web application). The data can be structured to group blocks of data according to instances of an application in different tabs. A first session can locate a block of data created by a second session to achieve synchronization between two sessions. In addition, if one session has crashed, data written by that session can be accessed by another session and sent to a web browser. In some implementations, a session, when writing to a block of data, can include meta-data for another session or for the web server, such as a timestamp, valid-until time, data-item identifier, etc.
- Full text
- View on Google Patents
Claims (20)
- A non-transitory computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for reporting, by a first browser session, a crash of a second browser session, the operations comprising: reading, by the first browser session, multiple session data structures from a local storage memory of a browser; iterating through the multiple session data structures wherein each iteration operates on a session data structure of the multiple session data structures, and, in a selected iteration that operates on a selected session data structure, identifying: that the second browser session is stored in the selected session data structure of the local storage memory; and that the second browser session crashed; and in response to the identifying, communicating, by the first browser session, at least a portion of the selected session data structure to a server.
- The computer-readable storage medium of claim 1 wherein the operations further comprise updating the selected session data structure in the local storage memory by: removing the selected session data structure in the local storage memory; or setting a status identifier associated with the selected session data structure to indicate that the second browser session is not active.
- The computer-readable storage medium of claim 1 wherein the operations further comprise: setting a status identifier associated with the selected session data structure to indicate that the second browser session has closed; and setting a removal timer associated with the selected session data structure, wherein a browser session is configured to remove the selected session data structure from the local storage memory upon determining that the removal timer has expired.
- The computer-readable storage medium of claim 1 wherein identifying that the second browser session crashed comprises one or more of: determining that the second browser session is no longer active and that the selected session data structure has not been marked as closed; determining that a timestamp indicating when the selected session data structure was last updated is older than a threshold from a current time; determining that the second browser session is not responding; or any combination thereof.
- The computer-readable storage medium of claim 1 wherein the selected session data structure comprises: an application identifier indicating a browser-based application which initialized the second browser session; a session identifier for the second browser session; and a timestamp indicating when the selected session data structure was last updated.
- The computer-readable storage medium of claim 1 wherein the selected session data structure comprises: a valid until time marker indicating when data in the selected session data structure is valid until; and/or a status identifier indicating whether the second browser session is active.
- The computer-readable storage medium of claim 1, wherein the operations further comprise gathering, by the first browser session, additional data about the second browser session; and wherein communicating at least the portion of the selected session data structure to the server comprises also communicating, by the first browser session, the gathered additional data about the second browser session.
- A method for inter-session communication between multiple browser sessions, comprising: reading, by the first browser session, multiple session data structures from a local storage memory of a browser; iterating through the multiple session data structures wherein each iteration operates on a session data structure of the multiple session data structures, and, in a selected iteration that operates on a selected session data structure, identifying: that the second browser session is stored in the selected session data structure of the local storage memory; and that the second browser session crashed; and in response to the identifying, communicating, by the first browser session, at least a portion of the selected session data structure to a server.
- The method of claim 8 further comprising updating the selected session data structure in the local storage memory by: removing the selected session data structure in the local storage memory; or setting a status identifier associated with the selected session data structure to indicate that the second browser session is not active.
- The method of claim 8 further comprising: setting a status identifier associated with the selected session data structure to indicate that the second browser session has closed; and setting a removal timer associated with the selected session data structure, wherein a browser session is configured to remove the selected session data structure from the local storage memory upon determining that the removal timer has expired.
- The method of claim 8 wherein identifying that the second browser session crashed comprises one or more of: determining that the second browser session is no longer active and that the selected session data structure has not been marked as closed; determining that a timestamp indicating when the selected session data structure was last updated is older than a threshold from a current time; determining that the second browser session is not responding; or any combination thereof.
- The method of claim 8 wherein the selected session data structure comprises: an application identifier indicating a browser-based application which initialized the second browser session; a session identifier for the second browser session; and a timestamp indicating when the selected session data structure was last updated.
- The method of claim 8 wherein the selected session data structure comprises: a valid until time marker indicating when data in the selected session data structure is valid until; and/or a status identifier indicating whether the second browser session is active.
- The method of claim 8, wherein the method further comprises gathering, by the first browser session, additional data about the second browser session; and wherein communicating at least the portion of the selected session data structure to the server comprises also communicating, by the first browser session, the gathered additional data about the second browser session.
- A system including a processor for intersession communication between multiple browser sessions, comprising: a polling timer configured to trigger a local storage read event upon termination of a timer, wherein the timer was initiated based on a previous read event; a local storage bridge configured to read multiple session data structures from a local storage memory of a browser; and a session data processor configured to, for a selected session data structure of the multiple session data structures: iterate through the multiple session data structures wherein each iteration operates on a session data structure of the multiple session data structures, and, in a selected iteration that operates on a selected session data structure, identifying: that the second browser session is stored in the selected session data structure of the local storage memory; and that the selected browser session crashed; and in response to the identifying, communicate at least a portion of the selected session data structure to a server.
- The system of claim 15 wherein the session data processor is configured to update the selected session data structure in the local storage memory by: removing the selected session data structure in the local storage memory; or setting a status identifier associated with the selected session data structure to indicate that the selected browser session is not active.
- The system of claim 15 wherein the session data processor is configured to: set a status identifier associated with the selected session data structure to indicate that the selected browser session has closed; and set a removal timer associated with the selected session data structure, wherein a browser session is configured to remove the selected session data structure from the local storage memory upon determining that the removal timer has expired.
- The system of claim 15 wherein identifying that the second browser session crashed comprises one or more of: determining that the selected browser session is no longer active and that the selected session data structure has not been marked as closed; determining that a timestamp indicating when the selected session data structure was last updated is older than a threshold from a current time; determining that the selected browser session is not responding; or any combination thereof.
- The system of claim 15 wherein the selected session data structure comprises: an application identifier indicating a browser-based application which initialized the selected browser session; a session identifier for the selected browser session; and a timestamp indicating when the selected session data structure was last updated.
- The system of claim 15 wherein the selected session data structure comprises: a valid until time marker indicating when data in the selected session data structure is valid until; and/or a status identifier indicating whether the selected browser session is active.
Description
Web browsers enable users to access a variety of websites and web applications on the Internet. Users often use web browsers (“browsers”) to open several sessions (“sessions,”) e.g. any combination of tabs, windows, frames, or panels of websites and web applications (“web apps”). For example, a user can open a social media website, an online retail store, and an instant messaging web application all on the same browser with different tabs. The user can also open several sessions for the same social media website, the online retail store, or the instant messaging web app on the same browser. A user can modify values in the different tabs, close tabs, and re-open tabs.
Although interacting with multiple sessions is convenient, multiple sessions can present problems with data synchronization, reporting to servers, prompting, etc. For example, a user who modifies a value in one session for a web app may find that the same value in another session for the web app is not modified. More specifically, if a user checks a box in a voting poll in a web app, the user may see that the same voting poll in another tab for the web app does not have a checked box. Also, a user may experience a session crashing. For example, a user may be using several tabs for an online retail store website or web app. The user may have selected to purchase one item from one tab and another item from another tab. If one tab crashes, the user will need to re-open a tab and find the item again.
Citations (13)
- US6601091B1
- US6557038B1
- US7188176B1
- US8819251B1
- US20070214495A1
- US6678791B1
- US20090320073A1
- US20140081983A1
- US20070299928A1
- US9569356B1
- US9747382B1
- US20160371507A1
- US10225351B2
Record as JSON
{
"publication_number": "US10630780B1",
"country": "US",
"kind": "B1",
"title": "Intersession communications",
"abstract": "A system and method for communication across browser-based applications, and from a crashed application to a web server are disclosed. The system can store structured data in local storage for each instance (e.g., tab, window, frame) of an browser-based application (e.g., website, web application). The data can be structured to group blocks of data according to instances of an application in different tabs. A first session can locate a block of data created by a second session to achieve synchronization between two sessions. In addition, if one session has crashed, data written by that session can be accessed by another session and sent to a web browser. In some implementations, a session, when writing to a block of data, can include meta-data for another session or for the web server, such as a timestamp, valid-until time, data-item identifier, etc.",
"claims": [
"1. A non-transitory computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for reporting, by a first browser session, a crash of a second browser session, the operations comprising: reading, by the first browser session, multiple session data structures from a local storage memory of a browser; iterating through the multiple session data structures wherein each iteration operates on a session data structure of the multiple session data structures, and, in a selected iteration that operates on a selected session data structure, identifying: that the second browser session is stored in the selected session data structure of the local storage memory; and that the second browser session crashed; and in response to the identifying, communicating, by the first browser session, at least a portion of the selected session data structure to a server.",
"2. The computer-readable storage medium of claim 1 wherein the operations further comprise updating the selected session data structure in the local storage memory by: removing the selected session data structure in the local storage memory; or setting a status identifier associated with the selected session data structure to indicate that the second browser session is not active.",
"3. The computer-readable storage medium of claim 1 wherein the operations further comprise: setting a status identifier associated with the selected session data structure to indicate that the second browser session has closed; and setting a removal timer associated with the selected session data structure, wherein a browser session is configured to remove the selected session data structure from the local storage memory upon determining that the removal timer has expired.",
"4. The computer-readable storage medium of claim 1 wherein identifying that the second browser session crashed comprises one or more of: determining that the second browser session is no longer active and that the selected session data structure has not been marked as closed; determining that a timestamp indicating when the selected session data structure was last updated is older than a threshold from a current time; determining that the second browser session is not responding; or any combination thereof.",
"5. The computer-readable storage medium of claim 1 wherein the selected session data structure comprises: an application identifier indicating a browser-based application which initialized the second browser session; a session identifier for the second browser session; and a timestamp indicating when the selected session data structure was last updated.",
"6. The computer-readable storage medium of claim 1 wherein the selected session data structure comprises: a valid until time marker indicating when data in the selected session data structure is valid until; and/or a status identifier indicating whether the second browser session is active.",
"7. The computer-readable storage medium of claim 1, wherein the operations further comprise gathering, by the first browser session, additional data about the second browser session; and wherein communicating at least the portion of the selected session data structure to the server comprises also communicating, by the first browser session, the gathered additional data about the second browser session.",
"8. A method for inter-session communication between multiple browser sessions, comprising: reading, by the first browser session, multiple session data structures from a local storage memory of a browser; iterating through the multiple session data structures wherein each iteration operates on a session data structure of the multiple session data structures, and, in a selected iteration that operates on a selected session data structure, identifying: that the second browser session is stored in the selected session data structure of the local storage memory; and that the second browser session crashed; and in response to the identifying, communicating, by the first browser session, at least a portion of the selected session data structure to a server.",
"9. The method of claim 8 further comprising updating the selected session data structure in the local storage memory by: removing the selected session data structure in the local storage memory; or setting a status identifier associated with the selected session data structure to indicate that the second browser session is not active.",
"10. The method of claim 8 further comprising: setting a status identifier associated with the selected session data structure to indicate that the second browser session has closed; and setting a removal timer associated with the selected session data structure, wherein a browser session is configured to remove the selected session data structure from the local storage memory upon determining that the removal timer has expired.",
"11. The method of claim 8 wherein identifying that the second browser session crashed comprises one or more of: determining that the second browser session is no longer active and that the selected session data structure has not been marked as closed; determining that a timestamp indicating when the selected session data structure was last updated is older than a threshold from a current time; determining that the second browser session is not responding; or any combination thereof.",
"12. The method of claim 8 wherein the selected session data structure comprises: an application identifier indicating a browser-based application which initialized the second browser session; a session identifier for the second browser session; and a timestamp indicating when the selected session data structure was last updated.",
"13. The method of claim 8 wherein the selected session data structure comprises: a valid until time marker indicating when data in the selected session data structure is valid until; and/or a status identifier indicating whether the second browser session is active.",
"14. The method of claim 8, wherein the method further comprises gathering, by the first browser session, additional data about the second browser session; and wherein communicating at least the portion of the selected session data structure to the server comprises also communicating, by the first browser session, the gathered additional data about the second browser session.",
"15. A system including a processor for intersession communication between multiple browser sessions, comprising: a polling timer configured to trigger a local storage read event upon termination of a timer, wherein the timer was initiated based on a previous read event; a local storage bridge configured to read multiple session data structures from a local storage memory of a browser; and a session data processor configured to, for a selected session data structure of the multiple session data structures: iterate through the multiple session data structures wherein each iteration operates on a session data structure of the multiple session data structures, and, in a selected iteration that operates on a selected session data structure, identifying: that the second browser session is stored in the selected session data structure of the local storage memory; and that the selected browser session crashed; and in response to the identifying, communicate at least a portion of the selected session data structure to a server.",
"16. The system of claim 15 wherein the session data processor is configured to update the selected session data structure in the local storage memory by: removing the selected session data structure in the local storage memory; or setting a status identifier associated with the selected session data structure to indicate that the selected browser session is not active.",
"17. The system of claim 15 wherein the session data processor is configured to: set a status identifier associated with the selected session data structure to indicate that the selected browser session has closed; and set a removal timer associated with the selected session data structure, wherein a browser session is configured to remove the selected session data structure from the local storage memory upon determining that the removal timer has expired.",
"18. The system of claim 15 wherein identifying that the second browser session crashed comprises one or more of: determining that the selected browser session is no longer active and that the selected session data structure has not been marked as closed; determining that a timestamp indicating when the selected session data structure was last updated is older than a threshold from a current time; determining that the selected browser session is not responding; or any combination thereof.",
"19. The system of claim 15 wherein the selected session data structure comprises: an application identifier indicating a browser-based application which initialized the selected browser session; a session identifier for the selected browser session; and a timestamp indicating when the selected session data structure was last updated.",
"20. The system of claim 15 wherein the selected session data structure comprises: a valid until time marker indicating when data in the selected session data structure is valid until; and/or a status identifier indicating whether the selected browser session is active."
],
"description_excerpt": "Web browsers enable users to access a variety of websites and web applications on the Internet. Users often use web browsers (“browsers”) to open several sessions (“sessions,”) e.g. any combination of tabs, windows, frames, or panels of websites and web applications (“web apps”). For example, a user can open a social media website, an online retail store, and an instant messaging web application all on the same browser with different tabs. The user can also open several sessions for the same social media website, the online retail store, or the instant messaging web app on the same browser. A user can modify values in the different tabs, close tabs, and re-open tabs.\n\nAlthough interacting with multiple sessions is convenient, multiple sessions can present problems with data synchronization, reporting to servers, prompting, etc. For example, a user who modifies a value in one session for a web app may find that the same value in another session for the web app is not modified. More specifically, if a user checks a box in a voting poll in a web app, the user may see that the same voting poll in another tab for the web app does not have a checked box. Also, a user may experience a session crashing. For example, a user may be using several tabs for an online retail store website or web app. The user may have selected to purchase one item from one tab and another item from another tab. If one tab crashes, the user will need to re-open a tab and find the item again.",
"cpc": [
"H04L 67/14",
"G06F 11/07",
"G06F 9/44",
"G06F 9/451",
"G06F 9/54",
"H04L 43/106",
"H04L 67/02",
"H04W 4/21"
],
"ipc": [
"G06F 11/07",
"G06F 15/173",
"G06F 9/44",
"G06F 9/54",
"H04L 12/26",
"H04L 29/08",
"H04W 4/21"
],
"assignees": [
"Facebook Inc"
],
"inventors": [
"Steven Harold Levithan"
],
"filing_date": "2019-01-17",
"publication_date": "2020-04-21",
"grant_date": "2020-04-21",
"priority_date": "2015-12-14",
"application_number": "US-201916250527-A",
"family_id": "59020466",
"cited_by_count": 3,
"citations": [
"US6601091B1",
"US6557038B1",
"US7188176B1",
"US8819251B1",
"US20070214495A1",
"US6678791B1",
"US20090320073A1",
"US20140081983A1",
"US20070299928A1",
"US9569356B1",
"US9747382B1",
"US20160371507A1",
"US10225351B2"
]
}
Record 2,201 of 8,000 in Patents full text (MLC-0201). Request the full dataset.