From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- netwerk/base/nsITimedChannel.idl | 80 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 netwerk/base/nsITimedChannel.idl (limited to 'netwerk/base/nsITimedChannel.idl') diff --git a/netwerk/base/nsITimedChannel.idl b/netwerk/base/nsITimedChannel.idl new file mode 100644 index 000000000..6ec2d1ff8 --- /dev/null +++ b/netwerk/base/nsITimedChannel.idl @@ -0,0 +1,80 @@ +/* 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 uint16_t redirectCount; + + [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 connectEnd; + [noscript] readonly attribute TimeStamp requestStart; + [noscript] readonly attribute TimeStamp responseStart; + [noscript] readonly attribute TimeStamp responseEnd; + + // 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 domainLookupStartTime; + readonly attribute PRTime domainLookupEndTime; + readonly attribute PRTime connectStartTime; + 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; +}; -- cgit v1.2.3