123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /* 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"
- interface nsIPrincipal;
- %{C++
- namespace mozilla {
- class TimeStamp;
- }
- %}
- native TimeStamp(mozilla::TimeStamp);
- // All properties return zero if the value is not available
- [scriptable, uuid(ca63784d-959c-4c3a-9a59-234a2a520de0)]
- interface nsITimedChannel : nsISupports {
- // Set this attribute to true to enable collection of timing data.
- // channelCreationTime will be available even with this attribute set to
- // false.
- attribute boolean timingEnabled;
- // The number of redirects
- attribute uint8_t redirectCount;
- attribute uint8_t internalRedirectCount;
- [noscript] readonly attribute TimeStamp channelCreation;
- [noscript] readonly attribute TimeStamp asyncOpen;
- // The following are only set when the document is not (only) read from the
- // cache
- [noscript] readonly attribute TimeStamp domainLookupStart;
- [noscript] readonly attribute TimeStamp domainLookupEnd;
- [noscript] readonly attribute TimeStamp connectStart;
- [noscript] readonly attribute TimeStamp secureConnectionStart;
- [noscript] readonly attribute TimeStamp connectEnd;
- [noscript] readonly attribute TimeStamp requestStart;
- [noscript] readonly attribute TimeStamp responseStart;
- [noscript] readonly attribute TimeStamp responseEnd;
- // The following are only set when the request is intercepted by a service
- // worker no matter the response is synthesized.
- [noscript] attribute TimeStamp launchServiceWorkerStart;
- [noscript] attribute TimeStamp launchServiceWorkerEnd;
- [noscript] attribute TimeStamp dispatchFetchEventStart;
- [noscript] attribute TimeStamp dispatchFetchEventEnd;
- [noscript] attribute TimeStamp handleFetchEventStart;
- [noscript] attribute TimeStamp handleFetchEventEnd;
- // The redirect attributes timings must be writeble, se we can transfer
- // the data from one channel to the redirected channel.
- [noscript] attribute TimeStamp redirectStart;
- [noscript] attribute TimeStamp redirectEnd;
- // The initiator type
- [noscript] attribute AString initiatorType;
- // This flag should be set to false only if a cross-domain redirect occurred
- [noscript] attribute boolean allRedirectsSameOrigin;
- // This flag is set to false if the timing allow check fails
- [noscript] attribute boolean allRedirectsPassTimingAllowCheck;
- // Implements the timing-allow-check to determine if we should report
- // timing info for the resourceTiming object.
- [noscript] boolean timingAllowCheck(in nsIPrincipal origin);
- %{C++
- inline bool TimingAllowCheck(nsIPrincipal* aOrigin) {
- bool allowed = false;
- return NS_SUCCEEDED(TimingAllowCheck(aOrigin, &allowed)) && allowed;
- }
- %}
- // The following are only set if the document is (partially) read from the
- // cache
- [noscript] readonly attribute TimeStamp cacheReadStart;
- [noscript] readonly attribute TimeStamp cacheReadEnd;
- // All following are PRTime versions of the above.
- readonly attribute PRTime channelCreationTime;
- readonly attribute PRTime asyncOpenTime;
- readonly attribute PRTime launchServiceWorkerStartTime;
- readonly attribute PRTime launchServiceWorkerEndTime;
- readonly attribute PRTime dispatchFetchEventStartTime;
- readonly attribute PRTime dispatchFetchEventEndTime;
- readonly attribute PRTime handleFetchEventStartTime;
- readonly attribute PRTime handleFetchEventEndTime;
- readonly attribute PRTime domainLookupStartTime;
- readonly attribute PRTime domainLookupEndTime;
- readonly attribute PRTime connectStartTime;
- readonly attribute PRTime secureConnectionStartTime;
- readonly attribute PRTime connectEndTime;
- readonly attribute PRTime requestStartTime;
- readonly attribute PRTime responseStartTime;
- readonly attribute PRTime responseEndTime;
- readonly attribute PRTime cacheReadStartTime;
- readonly attribute PRTime cacheReadEndTime;
- readonly attribute PRTime redirectStartTime;
- readonly attribute PRTime redirectEndTime;
- };
|