servo: Merge #10871 - Fix issue #10755 Canvas without contexts (from daoshengmu:canvasWithoutContexts); r=jdm

While canvas without contexts, we just need to return the function without drawing any pixel.

Fixes #10755.

Source-Repo: https://github.com/servo/servo
Source-Revision: 14de06aef077e57ca7fdccaae72551919b7748c4
This commit is contained in:
Daosheng Mu 2016-04-27 16:40:43 -07:00
Родитель 3be282a328
Коммит 2ebd1ffdc6
1 изменённых файлов: 3 добавлений и 9 удалений

Просмотреть файл

@ -13,7 +13,7 @@
use app_units::{Au, AU_PER_PX}; use app_units::{Au, AU_PER_PX};
use azure::azure_hl::Color; use azure::azure_hl::Color;
use block::{BlockFlow, BlockStackingContextType}; use block::{BlockFlow, BlockStackingContextType};
use canvas_traits::{CanvasMsg, CanvasPixelData, CanvasData, FromLayoutMsg}; use canvas_traits::{CanvasMsg, CanvasData, FromLayoutMsg};
use context::LayoutContext; use context::LayoutContext;
use euclid::num::Zero; use euclid::num::Zero;
use euclid::{Matrix4D, Point2D, Point3D, Rect, SideOffsets2D, Size2D}; use euclid::{Matrix4D, Point2D, Point3D, Rect, SideOffsets2D, Size2D};
@ -34,7 +34,7 @@ use gfx::paint_thread::THREAD_TINT_COLORS;
use gfx::text::glyph::CharIndex; use gfx::text::glyph::CharIndex;
use gfx_traits::{color, ScrollPolicy}; use gfx_traits::{color, ScrollPolicy};
use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT}; use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT};
use ipc_channel::ipc::{self, IpcSharedMemory}; use ipc_channel::ipc::{self};
use list_item::ListItemFlow; use list_item::ListItemFlow;
use model::{self, MaybeAuto, ToGfxMatrix}; use model::{self, MaybeAuto, ToGfxMatrix};
use net_traits::image::base::PixelFormat; use net_traits::image::base::PixelFormat;
@ -1259,13 +1259,7 @@ impl FragmentDisplayListBuilding for Fragment {
FromLayoutMsg::SendData(sender))).unwrap(); FromLayoutMsg::SendData(sender))).unwrap();
receiver.recv().unwrap() receiver.recv().unwrap()
}, },
None => CanvasData::Pixels(CanvasPixelData { None => return,
image_data: IpcSharedMemory::from_byte(0xFFu8,
(computed_width *
computed_height * 4)
as usize),
image_key: None,
}),
}; };
let base = state.create_base_display_item( let base = state.create_base_display_item(