123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /* -*- Mode: C++; tab-width: 4; 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"
- %{C++
- // Forward-declare mozilla::net::SpdyPushCache
- namespace mozilla {
- namespace net {
- class SpdyPushCache;
- }
- }
- %}
- [ptr] native SpdyPushCachePtr(mozilla::net::SpdyPushCache);
- /**
- * The nsIRequestContext is used to maintain state about connections
- * that are in some way associated with each other (often by being part
- * of the same load group) and how they interact with blocking items like
- * HEAD css/js loads.
- *
- * This used to be known as nsILoadGroupConnectionInfo and nsISchedulingContext.
- */
- [scriptable, uuid(658e3e6e-8633-4b1a-8d66-fa9f72293e63)]
- interface nsIRequestContext : nsISupports
- {
- /**
- * A unique identifier for this request context
- */
- [noscript] readonly attribute nsID ID;
- /**
- * Number of active blocking transactions associated with this context
- */
- readonly attribute unsigned long blockingTransactionCount;
- /**
- * Increase the number of active blocking transactions associated
- * with this context by one.
- */
- void addBlockingTransaction();
- /**
- * Decrease the number of active blocking transactions associated
- * with this context by one. The return value is the number of remaining
- * blockers.
- */
- unsigned long removeBlockingTransaction();
- /**
- * This gives out a weak pointer to the push cache.
- * The nsIRequestContext implementation owns the cache
- * and will destroy it when overwritten or when the context
- * ends.
- */
- [noscript] attribute SpdyPushCachePtr spdyPushCache;
- /**
- * This holds a cached value of the user agent override.
- */
- [noscript] attribute ACString userAgentOverride;
- };
- /**
- * The nsIRequestContextService is how anyone gets access to a request
- * context when they haven't been explicitly given a strong reference to an
- * existing one. It is responsible for creating and handing out strong
- * references to nsIRequestContexts, but only keeps weak references itself.
- * The shared request context will go away once no one else is keeping a
- * reference to it. If you ask for a request context that has no one else
- * holding a reference to it, you'll get a brand new request context. Anyone
- * who asks for the same request context while you're holding a reference
- * will get a reference to the same request context you have.
- */
- [uuid(7fcbf4da-d828-4acc-b144-e5435198f727)]
- interface nsIRequestContextService : nsISupports
- {
- /**
- * Get an existing request context from its ID
- */
- nsIRequestContext getRequestContext(in nsIDRef id);
- /**
- * Create a new request context identifier
- */
- nsID newRequestContextID();
- /**
- * Remove an existing request context from its ID
- */
- void removeRequestContext(in nsIDRef id);
- };
|