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