IP Library › Granted Patent US 12,455,939
Granted Patent B2
US 12,455,939 · App. 18/461,468 · Granted Oct 28, 2025

Systems and methods for communication across multiple browser pages for an application

Inventors: Samir Yasin Vaidya (Bangalore, IN); Swati Bhatia (Bangalore, IN)
Assignee: Open Text Corporation
G06F16/9577G06F3/0482G06F3/0483G06F8/34G06F8/38G06F8/65G06F9/451G06F9/542
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,455,939
App. No.
18/461,468
Granted
Oct 28, 2025
Kind
B2
Abstract

A system for composing browser-based applications is enhanced with cross-tab communication capability. At design time, responsive to a configuration instruction from a user, the system configures a user interface (UI) event for a browser-based application such that the UI event is publishable across all open browser tabs at application runtime. Responsive to a publication instruction from the user, the system configures a first application page to generate the UI event at application runtime in response to a trigger and to publish the UI event to browser local storage. Responsive to a subscription instruction from the user, the system configures a second application page to periodically poll the browser local storage for the user interface event at application runtime and, in response to the UI event published by the first application page to the browser local storage, process the UI event and automatically immediately update the second application page.

Claims (62)

1. A system, comprising:

a processor;

a non-transitory computer-readable medium; and

stored instructions translatable by the processor to perform:

providing a first browser-based application running on a first user device using a plurality of application pages of the first browser-based application for accessing and displaying web content on the first user device;

defining a user interface event for the first browser-based application associated with activity of a first widget on a first application page of the plurality of application pages;

providing communication configuration settings for the first browser-based application, the communication configuration settings including:

configuration settings for the first application page to publish the user interface event when triggered by user activity with the first widget on the first application page;

configuration settings operative to configure a set of additional application pages of the plurality of application pages to subscribe to the user interface event published by the first application page;

configuration settings for the set of additional application pages specifying one or more actions for each of the set of additional application pages to take in response to the user interface event;

responsive to a trigger originating from a user interface of the first application page resulting from a user's activity with the first widget, generating a first user interface event configured to be publishable across multiple application pages of the first browser-based application;

publishing the first user interface event to a browser local storage;

periodically polling, by each of the set of additional application pages, the browser local storage for the user interface event;

responsive to the first user interface event being published to the browser local storage, updating, without user intervention, data on the each of the set of additional application pages of the first browser-based application with information relating to the first user interface event; and

configuring the plurality of application pages to each check the browser local storage, determine whether each respective application page is last to process the first user interface event, and, responsive to a determination of being last to process the first user interface event, removing the first user interface event from the browser local storage.

2. The system of claim 1 , wherein the stored instructions are further translatable by the processor to perform:

configuring the first application page of the first browser-based application to publish the first user interface event to the browser local storage by creating a data structure containing event data for the first user interface event and storing the data structure in the browser local storage.

3. The system of claim 2 , wherein the data structure includes a unique identifier and a payload for the user interface event.

4. The system of claim 1 , wherein the one or more actions including updating a value of a second widget on the respective additional application page based on an event payload.

5. The system of claim 1 , wherein the one or more actions including ignoring the user interface event.

6. The system of claim 1 , wherein the stored instructions are further translatable by the processor to perform:

configuring the plurality of application pages to, in response to the user interface event published by the first application page to the browser local storage, each append a tab identifier to a data structure for the user interface event in the browser local storage.

7. A method of providing communication across multiple browser pages in a browser-based application, the method comprising:

providing a first browser-based application running on a first user device using a plurality of application pages of the first browser-based application for accessing and displaying web content on the first user device;

defining a user interface event for the first browser-based application associated with activity of a first widget on a first application page of the plurality of application pages;

providing communication configuration settings for the first browser-based application, the communication configuration settings including:

configuration settings for the first application page to publish the user interface event when triggered by user activity with the first widget on the first application page;

configuration settings operative to configure a set of additional application pages of the plurality of application pages to subscribe to the user interface event published by the first application page;

configuration settings for the set of additional application pages specifying one or more actions for each of the set of additional application pages to take in response to the user interface event;

receiving a trigger originating from a user interface of the first application page resulting from a user's activity with the first widget;

responsive to receiving the trigger, generating a first user interface event configured to be publishable across multiple application pages of the first browser-based application;

publishing the first user interface event to a browser local storage;

periodically polling, by each of the set of additional application pages, the browser local storage for the user interface event;

responsive to the first user interface event being published to the browser local storage, updating, without user intervention, data on the each of the set of additional application pages of the first browser-based application with information relating to the first user interface event; and

configuring the plurality of application pages to each check the browser local storage, determine whether each respective application page is last to process the first user interface event, and, responsive to a determination of being last to process the first user interface event, removing the first user interface event from the browser local storage.

8. The method according to claim 7 , further comprising:

configuring the first application page of the first browser-based application to publish the first user interface event to the browser local storage by creating a data structure containing event data for the first user interface event and storing the data structure in the browser local storage.

9. The method according to claim 8 , wherein the data structure includes a unique identifier and a payload for the user interface event.

10. The method according to claim 7 , wherein the one or more actions including updating a value of a second widget on the respective additional application page based on an event payload.

11. The method according to claim 7 , wherein the one or more actions including ignoring the user interface event.

12. The method according to claim 7 , wherein the stored instructions are further translatable by the processor to perform:

configuring the plurality of application pages to, in response to the user interface event published by the first application page to the browser local storage, each append a tab identifier to a data structure for the user interface event in the browser local storage.

13. A computer program product for providing communication across multiple browser pages in a browser-based application, the computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor to perform:

providing a first browser-based application running on a first user device using a plurality of application pages of the first browser-based application for accessing and displaying web content on the first user device;

defining a user interface event for the first browser-based application associated with activity of a first widget on the first application page of the plurality of application pages;

providing communication configuration settings for the first browser-based application, the communication configuration settings including:

configuration settings for the first application page to publish the user interface event when triggered by user activity with the first widget on the first application page;

configuration settings operative to configure a set of additional application pages of the plurality of application pages to subscribe to the user interface event published by the first application page;

configuration settings for the set of additional application pages specifying one or more actions for each of the set of additional application pages to take in response to the user interface event;

receiving a trigger originating from a user interface of the first application page resulting from a user's activity with the first widget;

responsive to receiving the trigger, generating a first user interface event configured to be publishable across multiple application pages of the first browser-based application;

publishing the first user interface event to a browser local storage;

periodically polling, by each of the set of additional application pages, the browser local storage for the user interface event;

responsive to the first user interface event being published to the browser local storage, updating, without user intervention, data on the each of the set of additional application pages of the first browser-based application with information relating to the first user interface event; and

configuring the plurality of application pages to each check the browser local storage, determine whether each respective application page is last to process the first user interface event, and, responsive to a determination of being last to process the first user interface event, removing the first user interface event from the browser local storage.

14. The computer program product of claim 13 , wherein the instructions are further translatable by the processor to perform:

configuring the first application page of the first browser-based application to publish the first user interface event to the browser local storage by creating a data structure containing event data for the first user interface event and storing the data structure in the browser local storage.

15. The computer program product of claim 14 , wherein the data structure includes a unique identifier and a payload for the user interface event.

16. The computer program product of claim 13 , wherein the one or more actions including updating a value of a second widget on the respective additional application page based on an event payload.

17. The computer program product of claim 13 , wherein the one or more actions including ignoring the user interface event.

18. The computer program product of claim 13 , wherein the stored instructions are further translatable by the processor to perform:

configuring the plurality of application pages to, in response to the user interface event published by the first application page to the browser local storage, each append a tab identifier to a data structure for the user interface event in the browser local storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: VAIDYA, SAMIR YASIN; BHATIA, SWATI
To: OPEN TEXT CORPORATION
Reel/Frame 064900/0758 →
Continuity (4)
Continuation 16984918 · Aug 4, 2020
Continuation 16000676 · Jun 5, 2018
Provisional Application 62518655 · Jun 13, 2017
Related Publication 20230409661A1 · Dec 21, 2023
References Cited (66)
US 6065130A · Glitho · 2000 [cited by examiner]
US 7502853B2 · Allamaraju · 2009 [cited by examiner]
US 8626865B1 · Phillips · 2014 [cited by examiner]
US 8950005B1 · Torney · 2015 [cited by examiner]
US 9253128B2 · Bassemir · 2016 [cited by examiner]
US 9253129B2 · Bassemir · 2016 [cited by examiner]
US 9639526B2 · Freiberg · 2017 [cited by examiner]
US 9823838B2 · Morris · 2017 [cited by examiner]
US 10698647B2 · Shipper · 2020 [cited by examiner]
US 10769233B2 · Vaidya · 2020 [cited by examiner]
US 10917400B1 · Goings · 2021 [cited by examiner]
US 11790027B2 · Vaidya · 2023 [cited by examiner]
US 20060248467A1 · Elvanoglu · 2006 [cited by examiner]
US 20070240166A1 · Marappan · 2007 [cited by examiner]
US 20070299857A1 · Gwozdz · 2007 [cited by examiner]
US 20070300064A1 · Isaacs · 2007 [cited by examiner]
US 20080216093A1 · Maclellan · 2008 [cited by examiner]
US 20090006981A1 · Pagan · 2009 [cited by examiner]
US 20090187918A1 · Chen · 2009 [cited by examiner]
US 20090248476A1 · Trinh · 2009 [cited by examiner]
US 20100199185A1 · Greenberg · 2010 [cited by examiner]
US 20100241732A1 · del Valle Lopez · 2010 [cited by examiner]
US 20100287146A1 · Skelton · 2010 [cited by examiner]
US 20110113364A1 · Neil · 2011 [cited by examiner]
US 20110265027A1 · Lipstein · 2011 [cited by examiner]
US 20110276899A1 · Li · 2011 [cited by examiner]
US 20110282921A1 · Dodge · 2011 [cited by examiner]
US 20110282938A1 · Kim · 2011 [cited by examiner]
US 20120032945A1 · Dare · 2012 [cited by examiner]
US 20120076283A1 · Ajmera · 2012 [cited by examiner]
US 20120089659A1 · Halevi · 2012 [cited by examiner]
US 20120089926A1 · Bassemir · 2012 [cited by examiner]
US 20120240057A1 · Bassemir · 2012 [cited by examiner]
US 20120272252A1 · Beardsmore · 2012 [cited by examiner]
US 20130086146A1 · Addala · 2013 [cited by examiner]
US 20130132861A1 · Kienzle · 2013 [cited by examiner]
US 20130159892A1 · Suraj · 2013 [cited by examiner]
US 20130212557A1 · Edmunds · 2013 [cited by examiner]
US 20130310726A1 · Miller · 2013 [cited by examiner]
US 20140012626A1 · Ajmera · 2014 [cited by examiner]
US 20140149998A1 · Kumar · 2014 [cited by examiner]
US 20150020002A1 · Mckenzie · 2015 [cited by examiner]
US 20150121194A1 · Patten · 2015 [cited by examiner]
US 20150135076A1 · Vuskovic · 2015 [cited by examiner]
US 20150169154A1 · Ainslie · 2015 [cited by examiner]
US 20150286729A1 · Kumar · 2015 [cited by examiner]
US 20150331596A1 · Yu · 2015 [cited by examiner]
US 20160004410A1 · Srinivasan · 2016 [cited by examiner]
US 20160328485A1 · Dodonov · 2016 [cited by examiner]
US 20160334951A1 · Denkel · 2016 [cited by examiner]
US 20170053028A1 · Lau · 2017 [cited by examiner]
US 20170068578A1 · Janarthanam · 2017 [cited by examiner]
US 20170104798A1 · Kuchoor · 2017 [cited by examiner]
US 20170123631A1 · Sharma · 2017 [cited by examiner]
US 20170293479A1 · Kumar · 2017 [cited by examiner]
US 20170329505A1 · Richter · 2017 [cited by examiner]
US 20170351969A1 · Parmar · 2017 [cited by examiner]
US 20180007059A1 · Innes · 2018 [cited by examiner]
US 20180084111A1 · Pirat · 2018 [cited by examiner]
US 20180246983A1 · Rathod · 2018 [cited by examiner]
US 20180309804A1 · Nagy · 2018 [cited by examiner]
US 20180322216A1 · Vaidya · 2018 [cited by examiner]
US 20180351936A1 · Battacharya · 2018 [cited by examiner]
US 20190197785A1 · Tate-Gans · 2019 [cited by examiner]
US 20200364286A1 · Vaidya · 2020 [cited by examiner]
US 20230409661A1 · Vaidya · 2023 [cited by examiner]