mirror of
https://github.com/servo/servo.git
synced 2025-06-20 07:08:59 +01:00
layout: Avoid a division by zero in tile_image()
.
Fixes a crash on Facebook Timeline.
This commit is contained in:
parent
19d466b062
commit
02b15e016d
4 changed files with 19 additions and 2 deletions
|
@ -390,9 +390,13 @@ impl ImageFragmentInfo {
|
|||
}
|
||||
|
||||
/// Tile an image
|
||||
pub fn tile_image(position: &mut Au, size: &mut Au,
|
||||
virtual_position: Au, image_size: u32) {
|
||||
pub fn tile_image(position: &mut Au, size: &mut Au, virtual_position: Au, image_size: u32) {
|
||||
// Avoid division by zero below!
|
||||
let image_size = image_size as i32;
|
||||
if image_size == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
let delta_pixels = (virtual_position - *position).to_px();
|
||||
let tile_count = (delta_pixels + image_size - 1) / image_size;
|
||||
let offset = Au::from_px(image_size * tile_count);
|
||||
|
|
9
tests/ref/background_size_zero_a.html
Normal file
9
tests/ref/background_size_zero_a.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<style>
|
||||
body {
|
||||
background-image: url(400x400_green.png);
|
||||
background-size: 0 0;
|
||||
}
|
||||
</style>
|
||||
Don't crash!
|
||||
|
3
tests/ref/background_size_zero_ref.html
Normal file
3
tests/ref/background_size_zero_ref.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
<!DOCTYPE html>
|
||||
Don't crash!
|
||||
|
|
@ -37,6 +37,7 @@ flaky_cpu == append_style_a.html append_style_b.html
|
|||
== background_repeat_y_a.html background_repeat_y_b.html
|
||||
== background_size_a.html background_size_ref.html
|
||||
== background_size_shorthand_a.html background_size_shorthand_ref.html
|
||||
== background_size_zero_a.html background_size_zero_ref.html
|
||||
== background_style_attr.html background_ref.html
|
||||
== basic_width_px.html basic_width_em.html
|
||||
== block_formatting_context_a.html block_formatting_context_ref.html
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue