michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsISupports.idl" michael@0: %{C++ michael@0: namespace mozilla { michael@0: class TimeStamp; michael@0: } michael@0: %} michael@0: michael@0: native TimeStamp(mozilla::TimeStamp); michael@0: michael@0: // All properties return zero if the value is not available michael@0: [scriptable, uuid(E94AB245-B40D-4154-8B7F-B6E0F2461031)] michael@0: interface nsITimedChannel : nsISupports { michael@0: // Set this attribute to true to enable collection of timing data. michael@0: // channelCreationTime will be available even with this attribute set to michael@0: // false. michael@0: attribute boolean timingEnabled; michael@0: michael@0: // The number of redirects michael@0: attribute uint16_t redirectCount; michael@0: michael@0: [noscript] readonly attribute TimeStamp channelCreation; michael@0: [noscript] readonly attribute TimeStamp asyncOpen; michael@0: michael@0: // The following are only set when the document is not (only) read from the michael@0: // cache michael@0: [noscript] readonly attribute TimeStamp domainLookupStart; michael@0: [noscript] readonly attribute TimeStamp domainLookupEnd; michael@0: [noscript] readonly attribute TimeStamp connectStart; michael@0: [noscript] readonly attribute TimeStamp connectEnd; michael@0: [noscript] readonly attribute TimeStamp requestStart; michael@0: [noscript] readonly attribute TimeStamp responseStart; michael@0: [noscript] readonly attribute TimeStamp responseEnd; michael@0: michael@0: // The redirect attributes timings must be writeble, se we can transfer michael@0: // the data from one channel to the redirected channel. michael@0: [noscript] attribute TimeStamp redirectStart; michael@0: [noscript] attribute TimeStamp redirectEnd; michael@0: michael@0: // The initiator type michael@0: [noscript] attribute AString initiatorType; michael@0: michael@0: // This flag should be set to false only if a cross-domain redirect occurred michael@0: [noscript] attribute boolean allRedirectsSameOrigin; michael@0: michael@0: // The following are only set if the document is (partially) read from the michael@0: // cache michael@0: [noscript] readonly attribute TimeStamp cacheReadStart; michael@0: [noscript] readonly attribute TimeStamp cacheReadEnd; michael@0: michael@0: // All following are PRTime versions of the above. michael@0: readonly attribute PRTime channelCreationTime; michael@0: readonly attribute PRTime asyncOpenTime; michael@0: readonly attribute PRTime domainLookupStartTime; michael@0: readonly attribute PRTime domainLookupEndTime; michael@0: readonly attribute PRTime connectStartTime; michael@0: readonly attribute PRTime connectEndTime; michael@0: readonly attribute PRTime requestStartTime; michael@0: readonly attribute PRTime responseStartTime; michael@0: readonly attribute PRTime responseEndTime; michael@0: readonly attribute PRTime cacheReadStartTime; michael@0: readonly attribute PRTime cacheReadEndTime; michael@0: readonly attribute PRTime redirectStartTime; michael@0: readonly attribute PRTime redirectEndTime; michael@0: };