1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  package org.htmlunit.javascript.host.performance;
16  
17  import org.htmlunit.javascript.HtmlUnitScriptable;
18  import org.htmlunit.javascript.configuration.JsxClass;
19  import org.htmlunit.javascript.configuration.JsxConstructor;
20  import org.htmlunit.javascript.configuration.JsxGetter;
21  
22  
23  
24  
25  
26  
27  
28  
29  @JsxClass
30  public class PerformanceTiming extends HtmlUnitScriptable {
31  
32      private final long domainLookupStart_;
33      private final long domainLookupEnd_;
34      private final long connectStart_;
35      private final long connectEnd_;
36      private final long responseStart_;
37      private final long responseEnd_;
38  
39      private final long domContentLoadedEventStart_;
40      private final long domContentLoadedEventEnd_;
41      private final long domLoading_;
42      private final long domInteractive_;
43      private final long domComplete_;
44  
45      private final long loadEventStart_;
46      private final long loadEventEnd_;
47      private final long navigationStart_;
48      private final long fetchStart_;
49  
50      
51  
52  
53      public PerformanceTiming() {
54          super();
55          final long now = System.currentTimeMillis();
56  
57          
58          domainLookupStart_ = now;
59          domainLookupEnd_ = domainLookupStart_ + 1L;
60  
61          connectStart_ = domainLookupEnd_;
62          connectEnd_ = connectStart_ + 1L;
63  
64          responseStart_ = connectEnd_;
65          responseEnd_ = responseStart_ + 1L;
66  
67          loadEventStart_ = responseEnd_;
68          loadEventEnd_ = loadEventStart_ + 1L;
69          domLoading_ = responseEnd_;
70          domInteractive_ = responseEnd_;
71          domContentLoadedEventStart_ = responseEnd_;
72          domContentLoadedEventEnd_ = domContentLoadedEventStart_ + 1L;
73          domComplete_ = domContentLoadedEventEnd_;
74  
75          navigationStart_ = now;
76          fetchStart_ = now;
77      }
78  
79      
80  
81  
82      @JsxConstructor
83      public void jsConstructor() {
84          
85      }
86  
87      
88  
89  
90      @JsxGetter
91      public long getDomainLookupStart() {
92          return domainLookupStart_;
93      }
94  
95      
96  
97  
98      @JsxGetter
99      public long getDomainLookupEnd() {
100         return domainLookupEnd_;
101     }
102 
103     
104 
105 
106     @JsxGetter
107     public long getConnectStart() {
108         return connectStart_;
109     }
110 
111     
112 
113 
114     @JsxGetter
115     public long getConnectEnd() {
116         return connectEnd_;
117     }
118 
119     
120 
121 
122     @JsxGetter
123     public long getResponseStart() {
124         return responseStart_;
125     }
126 
127     
128 
129 
130     @JsxGetter
131     public long getResponseEnd() {
132         return responseEnd_;
133     }
134 
135     
136 
137 
138     @JsxGetter
139     public long getSecureConnectionStart() {
140         return 0;
141     }
142 
143     
144 
145 
146     @JsxGetter
147     public long getUnloadEventStart() {
148         return 0;
149     }
150 
151     
152 
153 
154     @JsxGetter
155     public long getUnloadEventEnd() {
156         return 0;
157     }
158 
159     
160 
161 
162     @JsxGetter
163     public long getRedirectStart() {
164         return 0;
165     }
166 
167     
168 
169 
170     @JsxGetter
171     public long getRedirectEnd() {
172         return 0;
173     }
174 
175     
176 
177 
178     @JsxGetter
179     public long getDomContentLoadedEventStart() {
180         return domContentLoadedEventStart_;
181     }
182 
183     
184 
185 
186     @JsxGetter
187     public long getDomLoading() {
188         return domLoading_;
189     }
190 
191     
192 
193 
194     @JsxGetter
195     public long getDomInteractive() {
196         return domInteractive_;
197     }
198 
199     
200 
201 
202     @JsxGetter
203     public long getDomContentLoadedEventEnd() {
204         return domContentLoadedEventEnd_;
205     }
206 
207     
208 
209 
210     @JsxGetter
211     public long getDomComplete() {
212         return domComplete_;
213     }
214 
215     
216 
217 
218     @JsxGetter
219     public long getLoadEventStart() {
220         return loadEventStart_;
221     }
222 
223     
224 
225 
226     @JsxGetter
227     public long getLoadEventEnd() {
228         return loadEventEnd_;
229     }
230 
231     
232 
233 
234     @JsxGetter
235     public long getNavigationStart() {
236         return navigationStart_;
237     }
238 
239     
240 
241 
242     @JsxGetter
243     public long getFetchStart() {
244         return fetchStart_;
245     }
246 }