IP Library Granted Patent US 8,250,082
Granted Patent B2
US 8,250,082 · App. 11/426,174 · Granted Aug 21, 2012

Cross domain communication

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 8,250,082
App. No.
11/426,174
Granted
Aug 21, 2012
Kind
B2
Abstract

Various embodiments utilize nested Iframes within a web page to allow cross domain communication. That is, various embodiments can create an embedded Iframe that shares the domain of an Iframe or web page with which communication is desired. Because the embedded Iframe shares the domain of the Iframe or web page with which communication is desired, restrictions on cross-site scripting do not inhibit communication or scripting between the domain-matched Iframe(s) and/or web page. This embedded Iframe can then provide a mechanism by which web pages or Iframes from other domains can communicate with the Iframe or web page with which the embedded Iframe shares a domain.

Claims (66)

1. A computer-implemented method comprising:

creating a message in an Iframe in a first domain for communication to a second domain, the act of creating being performed by a web page that includes an associated listener Iframe in the first domain that is configured to receive messages from the second domain;

using the associated listener Iframe as a target window for cross domain communication between the first and second domains, the cross domain communicating being performed without round tripping to a server and comprising:

communicating, using a post back URL, relationship information associated with a user between the first and second domains such that the relationship information associated with the user remains protected;

manipulating a URL associated with the Iframe, wherein the manipulating comprises:

appending the created message to a URL of the form:

scheme://authority/path?query#[message], such that:

the authority comprises a name or IP address;

the path specifies a location in some hierarchical structure;

the query expresses parameters of a dynamic query to a database, program or script; and

a fragment occurring after the hash (“#”) identifies a portion of a resource;

detecting a change in the URL at the Iframe and parsing the URL to access the message; and

associating a unique, incremental ID for each new message from a specific URL;

using a message counter implemented as a field in a URL associated with a target recipient of the message to ensure that messages that are communicated between the different domains are not missed, wherein if the message counter is off by one or more increments, requesting a missing message from a sender; and

processing the message.

2. The method of claim 1 , wherein the web page and the Iframe are created in different domains and wherein the act of using the associated listener Iframe comprises manipulating an URL associated with the Iframe.

3. The method of claim 1 , wherein the relationship information pertains to a buddy list.

4. The method of claim 1 , additionally comprising:

interpreting the fragment on the client side and not using the fragment on the server.

5. The method of claim 1 , additionally comprising:

following the authority with a colon and a TCP port number; and

including in the authority a username and password for authenticating the server.

6. A software-implemented method comprising:

creating a message in an Iframe in a first domain for communication to a second domain, the act of creating being performed by a web page that includes an associated listener Iframe in the first domain that is configured to receive messages from the second domain;

using the associated listener Iframe as a target window for cross domain communication between the first and second domains, the cross domain communicating being performed without round tripping to a server and comprising:

communicating, using a post back URL, relationship information associated with a user between the first and second domains such that the relationship information associated with the user remains protected;

manipulating a URL associated with the Iframe, wherein the manipulating comprises:

appending the created message to a URL of the form:

scheme://authority/path?query#[message], such that:

the authority comprises a name or IP address;

the path specifies a location in some hierarchical structure;

the query expresses parameters of a dynamic query to a database, program or script; and

a fragment occurring after the hash (“#”) identifies a portion of a resource;

detecting a change in the URL at the Iframe and parsing the URL to access the message; and

associating a unique, incremental ID for each new message from a specific URL;

using a message counter implemented as a field in a URL associated with a target recipient of the message to ensure that messages that are communicated between the different domains are not missed, wherein if the message counter is off by one or more increments, requesting a missing message from a sender; and

processing the message.

7. The method of claim 6 , wherein the web page and the Iframe are created in different domains and wherein the act of using comprises manipulating an URL associated with the Iframe.

8. The method of claim 6 , wherein the relationship information comprises a buddy list.

9. The method of claim 6 , additionally comprising:

interpreting the fragments and hashes on the client side and not using the fragments and hashes on the server.

10. The method of claim 6 , additionally comprising:

following the authority with a colon and a TCP port number; and

including in the authority a username and password for authenticating the server.

11. A browser-implemented method comprising:

creating a message in an Iframe in a first domain for communication to a second domain, the act of creating being performed by a web page that includes an associated listener Iframe in the first domain that is configured to receive messages from the second domain;

using the associated listener Iframe as a target window for cross domain communication between the first and second domains, the cross domain communicating being performed without round tripping to a server and comprising:

communicating, using a post back URL, relationship information associated with a user between the first and second domains such that the relationship information associated with the user remains protected;

manipulating a URL associated with the Iframe, wherein the manipulating comprises:

appending the created message to a URL of the form:

scheme://authority/path?query#[message], such that:

the authority comprises a name or IP address;

the path specifies a location in some hierarchical structure;

the query expresses parameters of a dynamic query to a database, program or script; and

a fragment occurring after the hash (“#”) identifies a portion of a resource;

detecting a change in the URL at the Iframe and parsing the URL to access the message; and

associating a unique, incremental ID for each new message from a specific URL;

using a message counter implemented as a field in a URL associated with a target recipient of the message to ensure that messages that are communicated between the different domains are not missed, wherein if the message counter is off by one or more increments, requesting a missing message from a sender; and

processing the message.

12. The method of claim 11 , wherein the web page and the Iframe are created in different domains and wherein the act of using comprises manipulating an URL associated with the Iframe.

13. The method of claim 11 , wherein the relationship information comprises a buddy list.

14. The method of claim 11 , additionally comprising:

interpreting the fragments and hashes on the client side and not using the fragments and hashes on the server.

15. The method of claim 11 , additionally comprising:

following the authority with a colon and a TCP port number; and

including in the authority a username and password for authenticating the server.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2006
From: GWOZDZ, DANIEL; ISAACS, SCOTT M; MAKER, REID
To: MICROSOFT CORPORATION
Reel/Frame 018556/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2006
From: GWOZDZ, DANIEL; ISAACS, SCOTT M
To: MICROSOFT CORPORATION
Reel/Frame 017889/0492 →