···99 pub(crate) struct ScrollEvent {
1010 /// Scroll by this offset, or to Start or End
1111 pub scroll: Scroll,
1212-@@ -75,6 +75,18 @@
1212+@@ -73,6 +73,18 @@
1313 DidNotPinchZoom,
1414 }
1515···2828 /// A renderer for a libservo `WebView`. This is essentially the [`ServoRenderer`]'s interface to a
2929 /// libservo `WebView`, but the code here cannot depend on libservo in order to prevent circular
3030 /// dependencies, which is why we store a `dyn WebViewTrait` here instead of the `WebView` itself.
3131-@@ -116,6 +128,10 @@
3131+@@ -114,6 +126,10 @@
3232 /// and initial values for zoom derived from the `viewport` meta tag in web content.
3333 viewport_description: Option<ViewportDescription>,
3434···3939 //
4040 // Data that is shared with the parent renderer.
4141 //
4242-@@ -154,6 +170,7 @@
4242+@@ -152,6 +168,7 @@
4343 hidden: false,
4444 animating: false,
4545 viewport_description: None,
···4747 embedder_to_constellation_sender,
4848 refresh_driver,
4949 webrender_document,
5050-@@ -189,6 +206,16 @@
5050+@@ -187,6 +204,16 @@
5151 new_value != old_value
5252 }
5353···6464 /// Returns the [`PipelineDetails`] for the given [`PipelineId`], creating it if needed.
6565 pub(crate) fn ensure_pipeline_details(
6666 &mut self,
6767-@@ -384,16 +411,14 @@
6767+@@ -382,16 +409,14 @@
6868 .map(|point| point.as_device_point(self.device_pixels_per_page_pixel()));
6969 let hit_test_result = match event_point {
7070 Some(point) => {
···8686 },
8787 None => None,
8888 };
8989-@@ -724,6 +749,88 @@
8989+@@ -722,6 +747,88 @@
9090 self.on_scroll_window_event(scroll, point);
9191 }
9292···175175 fn on_scroll_window_event(&mut self, scroll: Scroll, cursor: DevicePoint) {
176176 self.pending_scroll_zoom_events
177177 .push(ScrollZoomEvent::Scroll(ScrollEvent {
178178-@@ -733,18 +840,25 @@
178178+@@ -730,18 +837,25 @@
179179 }));
180180 }
181181···206206 }
207207208208 // Batch up all scroll events and changes to pinch zoom into a single change, or
209209-@@ -798,15 +912,24 @@
209209+@@ -787,15 +901,24 @@
210210 }
211211 }
212212···237237238238 let scroll_result = combined_scroll_event.and_then(|combined_event| {
239239 self.scroll_node_at_device_point(
240240-@@ -815,6 +938,21 @@
240240+@@ -804,6 +927,21 @@
241241 combined_event.scroll,
242242 )
243243 });
···259259 if let Some(ref scroll_result) = scroll_result {
260260 self.send_scroll_positions_to_layout_for_pipeline(
261261 scroll_result.hit_test_result.pipeline_id,
262262-@@ -830,7 +968,11 @@
262262+@@ -819,7 +957,11 @@
263263 self.send_pinch_zoom_infos_to_script();
264264 }
265265···272272 }
273273274274 /// Perform a hit test at the given [`DevicePoint`] and apply the [`Scroll`]
275275-@@ -837,7 +979,7 @@
275275+@@ -826,7 +968,7 @@
276276 /// scrolling to the applicable scroll node under that point. If a scroll was
277277 /// performed, returns the hit test result contains [`PipelineId`] of the node
278278 /// scrolled, the id, and the final scroll delta.
···281281 &mut self,
282282 render_api: &RenderApi,
283283 cursor: DevicePoint,
284284-@@ -865,7 +1007,10 @@
284284+@@ -854,7 +996,10 @@
285285 // its ancestor pipelines.
286286 let mut previous_pipeline_id = None;
287287 for hit_test_result in hit_test_results {
···293293 if previous_pipeline_id.replace(hit_test_result.pipeline_id) !=
294294 Some(hit_test_result.pipeline_id)
295295 {
296296-@@ -892,7 +1037,11 @@
296296+@@ -881,7 +1026,11 @@
297297 }
298298 }
299299 }
···306306 }
307307308308 /// Scroll the viewport (root pipeline, root scroll node) of this WebView, but first
309309-@@ -1031,20 +1180,45 @@
309309+@@ -1020,20 +1169,45 @@
310310 }
311311312312 fn send_window_size_message(&self) {
···364364 }
365365366366 /// Set the `hidpi_scale_factor` for this renderer, returning `true` if the value actually changed.
367367-@@ -1108,8 +1282,21 @@
367367+@@ -1097,8 +1271,21 @@
368368 if let Some(wheel_event) = self.pending_wheel_events.remove(&id) {
369369 if !result.contains(InputEventResult::DefaultPrevented) {
370370 // A scroll delta for a wheel event is the inverse of the wheel delta.
···6161 /// Handle the transfer of a port in the current task.
6262 pub(crate) fn mark_port_as_transferred(&self, port_id: &MessagePortId) -> MessagePortImpl {
6363 if let MessagePortState::Managed(_id, message_ports) =
6464-@@ -3126,6 +3159,16 @@
6464+@@ -3127,6 +3160,16 @@
6565 self.inherited_secure_context
6666 }
6767