-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
IFrame navigation requests do not record resource timing entries #41666
Description
Like #41660, navigation requests do not use the NetworkListener infrastructure so we are missing code that submits timing information when the response is complete. This code is where the response is first processed:
servo/components/script/navigation.rs
Line 70 in de27dc6
| fn notify_fetch(&self, message: FetchResponseMsg) { |
The next spot is:
servo/components/script/script_thread.rs
Line 3684 in de27dc6
| fn handle_fetch_eof( |
Finally:
servo/components/script/dom/servoparser/mod.rs
Lines 1422 to 1434 in de27dc6
| if let Some(pushed_index) = self.pushed_entry_index { | |
| let document = &parser.document; | |
| let performance_entry = PerformanceNavigationTiming::new( | |
| &document.global(), | |
| CrossProcessInstant::now(), | |
| document, | |
| CanGc::note(), | |
| ); | |
| document | |
| .global() | |
| .performance() | |
| .update_entry(pushed_index, performance_entry.upcast::<PerformanceEntry>()); | |
| } |
If an HTML IFRAME element is included on the page, then only the resource requested by IFRAME src attribute is included as a PerformanceResourceTiming object in the Performance Timeline. Sub-resources requested by the IFRAME document will be included in the IFRAME document's Performance Timeline and not the parent document's Performance Timeline.