gecko/netwerk/base/nsILoadContextInfo.idl

80 lines
1.8 KiB
Plaintext

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
/**
* Helper interface to carry informatin about the load context
* encapsulating an AppID, IsInBrowser and IsPrivite properties.
* It shall be used where nsILoadContext cannot be used or is not
* available.
*/
[scriptable, uuid(1ea9cbdb-9df4-46a0-8c45-f4091aad9459)]
interface nsILoadContextInfo : nsISupports
{
/**
* Whether the context is in a Private Browsing mode
*/
readonly attribute boolean isPrivate;
/**
* Whether the context belongs under an App
*/
const unsigned long NO_APP_ID = 0;
const unsigned long UNKNOWN_APP_ID = 4294967295; // UINT32_MAX
readonly attribute uint32_t appId;
/**
* Whether the context is in a browser tag
*/
readonly attribute boolean isInBrowserElement;
/**
* Whether the load is initiated as anonymous
*/
readonly attribute boolean isAnonymous;
%{C++
/**
* De-XPCOMed getters
*/
bool IsPrivate()
{
bool pb;
GetIsPrivate(&pb);
return pb;
}
uint32_t AppId()
{
uint32_t appId;
GetAppId(&appId);
return appId;
}
bool IsInBrowserElement()
{
bool ib;
GetIsInBrowserElement(&ib);
return ib;
}
bool IsAnonymous()
{
bool anon;
GetIsAnonymous(&anon);
return anon;
}
bool Equals(nsILoadContextInfo *aOther)
{
return (IsPrivate() == aOther->IsPrivate() &&
AppId() == aOther->AppId() &&
IsInBrowserElement() == aOther->IsInBrowserElement() &&
IsAnonymous() == aOther->IsAnonymous());
}
%}
};