gustafn
committed
on 05 Aug 19
allow to reach exactly upper boundary in sanity check
openacs-4/.../tcl/boomerang-procs.tcl (+2 -2)
166 166                 # Just record data containing this information.
167 167                 #
168 168                 # Other entries have often strange t_done values: e.g. a
169 169                 # reload of a page, having an automatic refresh after many
170 170                 # refreshes will cause such a beacon GET request with a
171 171                 # t_done time span reaching to the original load of the
172 172                 # page.
173 173                 #
174 174                 if {
175 175                     [dict exists $entries nt_con_st]
176 176                     && [dict exists $entries nt_req_st]
177 177                 } {
178 178                     #
179 179                     # Add nt_*_time variables according to the "Navigation Timing" W3C recommendation
180 180                     # up to domComplete (see https://www.w3.org/TR/navigation-timing/#processing-model)
181 181                     #
182 182                     dict set entries nt_start_time [expr {[dict get $entries nt_req_st] - [dict get $entries nt_nav_st]}]
183 183                     dict set entries nt_tcp_time [expr {[dict get $entries nt_con_end] - [dict get $entries nt_con_st]}]
184 184                     dict set entries nt_request_time [expr {[dict get $entries nt_res_st] - [dict get $entries nt_req_st]}]
185 185                     dict set entries nt_response_time [expr {[dict get $entries nt_res_end] - [dict get $entries nt_res_st]}]
186                       if {![dict get $entries nt_domcomp]} {
  186                     if {![dict exists $entries nt_domcomp]} {
187 187                         dict set entries nt_processing_time 0
188 188                     } else {
189 189                         dict set entries nt_processing_time [expr {[dict get $entries nt_domcomp] - [dict get $entries nt_res_end]}]
190 190                     }
191 191                     dict set entries nt_total_time [expr {[dict get $entries nt_load_end] - [dict get $entries nt_nav_st]}]
192 192
193 193                     #
194 194                     # Sanity checks for the computed fields:
195 195                     # - no *_time can be larger than t_done
196 196                     # - no *_time must be negative
197 197                     # - check for unrealistic high t_done times (caused be technicalities)
198 198                     set t_done [dict get $entries t_done]
199 199                     set max_time [expr {$t_done + 1}]
200 200                     set time_fields {
201 201                         nt_start_time nt_tcp_time nt_request_time nt_response_time
202 202                         nt_processing_time nt_total_time
203 203                     }
204 204                     foreach time_field $time_fields {
205 205                         set v [dict get $entries $time_field]
206 206                         if {$v < 0 || $v > $max_time} {