nsISupports
Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)Method overview
boolean isThirdPartyChannel(in nsIChannel aChannel, [optional] in nsIURI aURI); |
boolean isThirdPartyURI(in nsIURI aFirstURI, in nsIURI aSecondURI); |
boolean isThirdPartyWindow(in nsIDOMWindow aWindow, [optional] in nsIURI aURI); |
Methods
isThirdPartyChannel()
Determine whether the given channel and its content window hierarchy is third party. This is done as follows:
- If
aChannel
is annsIHttpChannel
and has the 'forceAllowThirdPartyCookie' property set, then:- If
aURI
isnull
, returnfalse
. - Otherwise, find the URI of the channel, determine whether it is foreign with respect to
aURI
, and return.
- If
- Find the URI of the channel and determine whether it is third party with respect to the URI of the channel. If so, return.
- Obtain the bottommost
nsIDOMWindow
, and its same-type parent if it exists, from the channel's notification callbacks. Then:- If the parent is the same as the bottommost window, and the channel has the LOAD_DOCUMENT_URI flag set, return
false
. This represents the case where a toplevel load is occurring and the window's URI has not yet been updated. (We have already checked thataURI
is not foreign with respect to the channel URI.) - Otherwise, return the result of
isThirdPartyWindow()
with arguments of the channel's bottommost window and the channel URI, respectively.
- If the parent is the same as the bottommost window, and the channel has the LOAD_DOCUMENT_URI flag set, return
Therefore, both the channel's URI and each level in the window hierarchy associated with the channel is tested.
For example, if aURI
is "https://mail.google.com/", aChannel
has a URI of "https://google.com/", and its parent is the topmost content window with a URI of "https://mozilla.com", the result will be true
.
boolean isThirdPartyChannel(
in nsIChannel aChannel,
in nsIURI aURI Optional
);
Parameters
aChannel
- The channel associated with the load.
aURI
Optional- A URI to test against. If
null
, the URI of the channel will be used.
Return value
true
if aURI
is third party with respect to the channel URI or any of the URIs associated with the same-type window hierarchy of the channel.
isThirdPartyURI()
Determine whether two URIs are third party with respect to each other. This is determined by computing the base domain for both URIs. If they can be determined, and the base domains match, the request is defined as first party. If it cannot be determined because one or both URIs do not have a base domain (for instance, in the case of IP addresses, host aliases such as 'localhost', or a file:// URI), an exact string comparison on host is performed.
For example, the URI "https://mail.google.com/" is not third party with respect to "https://images.google.com/", but "https://mail.yahoo.com/" and "https://192.168.1.1/" are.
boolean isThirdPartyURI( in nsIURI aFirstURI, in nsIURI aSecondURI );
Parameters
aFirstURI
- Missing Description
aSecondURI
- Missing Description
Return value
true
if aFirstURI
is third party with respect to aSecondURI
.
isThirdPartyWindow()
Determine whether the given window hierarchy is third party. This is done as follows:
- Obtain the URI of the principal associated with
aWindow
. Call this the 'bottom URI'. - If
aURI
is provided, determine if it is third party with respect to the bottom URI. If so, return. - Find the same-type parent window, if there is one, and its URI. Determine whether it is third party with respect to the bottom URI. If so, return.
Therefore, each level in the window hierarchy is tested. (This means that nested iframes with different base domains, even though the bottommost and topmost URIs might be equal, will be considered third party.)
For example, if aURI
is "https://mail.google.com/", 'aWindow' has a URI of "https://google.com/", and its parent is the topmost content window with a URI of "https://mozilla.com", the result will be true
.
boolean isThirdPartyWindow(
in nsIDOMWindow aWindow,
in nsIURI aURI Optional
);
Parameters
aWindow
- The bottommost window in the hierarchy.
aURI
Optional- A URI to test against. If
null
, the URI of the principal associated withaWindow
will be used.
Return value
true
if aURI
is third party with respect to any of the URIs associated with aWindow
and its same-type parents.