nsISupports
Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)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); |
Determine whether the given channel and its content window hierarchy is third party. This is done as follows:
aChannel
is an nsIHttpChannel
and has the 'forceAllowThirdPartyCookie' property set, then: aURI
is null
, return false
.aURI
, and return.nsIDOMWindow
, and its same-type parent if it exists, from the channel's notification callbacks. Then: 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 that aURI
is not foreign with respect to the channel URI.)isThirdPartyWindow()
with arguments of the channel's bottommost window and the channel URI, respectively.Therefore, both the channel's URI and each level in the window hierarchy associated with the channel is tested.
For example, if aURI
is "http://mail.google.com/", aChannel
has a URI of "http://google.com/", and its parent is the topmost content window with a URI of "http://mozilla.com", the result will be true
.
boolean isThirdPartyChannel(
in nsIChannel aChannel,
in nsIURI aURI Optional
);
aChannel
aURI
Optionalnull
, the URI of the channel will be used.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.
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 "http://mail.google.com/" is not third party with respect to "http://images.google.com/", but "http://mail.yahoo.com/" and "http://192.168.1.1/" are.
boolean isThirdPartyURI( in nsIURI aFirstURI, in nsIURI aSecondURI );
aFirstURI
aSecondURI
true
if aFirstURI
is third party with respect to aSecondURI
.
Determine whether the given window hierarchy is third party. This is done as follows:
aWindow
. Call this the 'bottom URI'.aURI
is provided, determine if 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 "http://mail.google.com/", 'aWindow' has a URI of "http://google.com/", and its parent is the topmost content window with a URI of "http://mozilla.com", the result will be true
.
boolean isThirdPartyWindow(
in nsIDOMWindow aWindow,
in nsIURI aURI Optional
);
aWindow
aURI
Optionalnull
, the URI of the principal associated with aWindow
will be used.true
if aURI
is third party with respect to any of the URIs associated with aWindow
and its same-type parents.