mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
108 lines
3.6 KiB
Plaintext
108 lines
3.6 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 "nsIRequest.idl"
|
|
|
|
interface nsISimpleEnumerator;
|
|
interface nsIRequestObserver;
|
|
interface nsIInterfaceRequestor;
|
|
interface nsILoadGroupConnectionInfo;
|
|
|
|
/**
|
|
* A load group maintains a collection of nsIRequest objects.
|
|
*/
|
|
[scriptable, uuid(19501006-46e3-4634-b97d-26eff894b4d3)]
|
|
interface nsILoadGroup : nsIRequest
|
|
{
|
|
/**
|
|
* The group observer is notified when requests are added to and removed
|
|
* from this load group. The groupObserver is weak referenced.
|
|
*/
|
|
attribute nsIRequestObserver groupObserver;
|
|
|
|
/**
|
|
* Accesses the default load request for the group. Each time a number
|
|
* of requests are added to a group, the defaultLoadRequest may be set
|
|
* to indicate that all of the requests are related to a base request.
|
|
*
|
|
* The load group inherits its load flags from the default load request.
|
|
* If the default load request is NULL, then the group's load flags are
|
|
* not changed.
|
|
*/
|
|
attribute nsIRequest defaultLoadRequest;
|
|
|
|
/**
|
|
* Adds a new request to the group. This will cause the default load
|
|
* flags to be applied to the request. If this is a foreground
|
|
* request then the groupObserver's onStartRequest will be called.
|
|
*
|
|
* If the request is the default load request or if the default load
|
|
* request is null, then the load group will inherit its load flags from
|
|
* the request.
|
|
*/
|
|
void addRequest(in nsIRequest aRequest,
|
|
in nsISupports aContext);
|
|
|
|
/**
|
|
* Removes a request from the group. If this is a foreground request
|
|
* then the groupObserver's onStopRequest will be called.
|
|
*
|
|
* By the time this call ends, aRequest will have been removed from the
|
|
* loadgroup, even if this function throws an exception.
|
|
*/
|
|
void removeRequest(in nsIRequest aRequest,
|
|
in nsISupports aContext,
|
|
in nsresult aStatus);
|
|
|
|
/**
|
|
* Returns the requests contained directly in this group.
|
|
* Enumerator element type: nsIRequest.
|
|
*/
|
|
readonly attribute nsISimpleEnumerator requests;
|
|
|
|
/**
|
|
* Returns the count of "active" requests (ie. requests without the
|
|
* LOAD_BACKGROUND bit set).
|
|
*/
|
|
readonly attribute unsigned long activeCount;
|
|
|
|
/**
|
|
* Notification callbacks for the load group.
|
|
*/
|
|
attribute nsIInterfaceRequestor notificationCallbacks;
|
|
|
|
/**
|
|
* Connection information for managing things like js/css
|
|
* connection blocking, and per-tab connection grouping
|
|
*/
|
|
readonly attribute nsILoadGroupConnectionInfo connectionInfo;
|
|
};
|
|
|
|
/**
|
|
* Used to maintain state about the connections of a load group and
|
|
* how they interact with blocking items like HEAD css/js loads.
|
|
*/
|
|
[uuid(d1f9f18e-3d85-473a-ad58-a2367d7cdb2a)]
|
|
interface nsILoadGroupConnectionInfo : nsISupports
|
|
{
|
|
/**
|
|
* Number of active blocking transactions associated with this load group
|
|
*/
|
|
readonly attribute unsigned long blockingTransactionCount;
|
|
|
|
/**
|
|
* Increase the number of active blocking transactions associated
|
|
* with this load group by one.
|
|
*/
|
|
void addBlockingTransaction();
|
|
|
|
/**
|
|
* Decrease the number of active blocking transactions associated
|
|
* with this load group by one. The return value is the number of remaining
|
|
* blockers.
|
|
*/
|
|
unsigned long removeBlockingTransaction();
|
|
};
|