1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 6 #ifndef TimingStruct_h_ 7 #define TimingStruct_h_ 8 9 #include "mozilla/TimeStamp.h" 10 11 namespace mozilla { namespace net { 12 13 struct TimingStruct { 14 TimeStamp domainLookupStart; 15 TimeStamp domainLookupEnd; 16 TimeStamp connectStart; 17 TimeStamp connectEnd; 18 TimeStamp requestStart; 19 TimeStamp responseStart; 20 TimeStamp responseEnd; 21 }; 22 23 struct ResourceTimingStruct : TimingStruct { 24 TimeStamp fetchStart; 25 TimeStamp redirectStart; 26 TimeStamp redirectEnd; 27 uint64_t transferSize; 28 uint64_t encodedBodySize; 29 nsCString protocolVersion; 30 31 // Not actually part of resource timing, but not part of the transaction 32 // timings either. These need to be passed to HttpChannelChild along with 33 // the rest of the timings so the timing information in the child is complete. 34 TimeStamp cacheReadStart; 35 TimeStamp cacheReadEnd; 36 }; 37 38 } // namespace net 39 } // namespace mozilla 40 41 #endif 42