mirror of
https://github.com/servo/servo.git
synced 2025-08-02 20:20:14 +01:00
First part of refactoring constellation to support iframe navigation.
The history is now recorded per frame, but needs to be exposed in a followup PR. Also fixes a race condition that occurs loading iframes under heavy CPU load. This ensures that iframes never do a reflow / layout until they have a valid window size set from their parent frame.
This commit is contained in:
parent
0888a3a16d
commit
939a89568e
11 changed files with 587 additions and 921 deletions
|
@ -13,18 +13,16 @@ use windowing::{WindowEvent, WindowMethods};
|
|||
|
||||
use azure::azure_hl::{SourceSurfaceMethods, Color};
|
||||
use geom::point::Point2D;
|
||||
use geom::rect::{Rect, TypedRect};
|
||||
use geom::rect::Rect;
|
||||
use geom::size::Size2D;
|
||||
use layers::platform::surface::{NativeCompositingGraphicsContext, NativeGraphicsMetadata};
|
||||
use layers::layers::LayerBufferSet;
|
||||
use pipeline::CompositionPipeline;
|
||||
use msg::compositor_msg::{Epoch, LayerId, LayerMetadata, ReadyState};
|
||||
use msg::compositor_msg::{PaintListener, PaintState, ScriptListener, ScrollPolicy};
|
||||
use msg::constellation_msg::{ConstellationChan, PipelineId};
|
||||
use msg::constellation_msg::{Key, KeyState, KeyModifiers};
|
||||
use url::Url;
|
||||
use util::cursor::Cursor;
|
||||
use util::geometry::PagePx;
|
||||
use util::memory::MemoryProfilerChan;
|
||||
use util::time::TimeProfilerChan;
|
||||
use std::sync::mpsc::{channel, Sender, Receiver};
|
||||
|
@ -207,10 +205,6 @@ pub enum Msg {
|
|||
PaintMsgDiscarded,
|
||||
/// Replaces the current frame tree, typically called during main frame navigation.
|
||||
SetFrameTree(SendableFrameTree, Sender<()>, ConstellationChan),
|
||||
/// Requests the compositor to create a root layer for a new frame.
|
||||
CreateRootLayerForPipeline(CompositionPipeline, CompositionPipeline, Option<TypedRect<PagePx, f32>>, Sender<()>),
|
||||
/// Requests the compositor to change a root layer's pipeline and remove all child layers.
|
||||
ChangeLayerPipelineAndRemoveChildren(CompositionPipeline, CompositionPipeline, Sender<()>),
|
||||
/// The load of a page has completed.
|
||||
LoadComplete,
|
||||
/// Indicates that the scrolling timeout with the given starting timestamp has happened and a
|
||||
|
@ -241,8 +235,6 @@ impl Debug for Msg {
|
|||
Msg::ChangePageUrl(..) => write!(f, "ChangePageUrl"),
|
||||
Msg::PaintMsgDiscarded(..) => write!(f, "PaintMsgDiscarded"),
|
||||
Msg::SetFrameTree(..) => write!(f, "SetFrameTree"),
|
||||
Msg::CreateRootLayerForPipeline(..) => write!(f, "CreateRootLayerForPipeline"),
|
||||
Msg::ChangeLayerPipelineAndRemoveChildren(..) => write!(f, "ChangeLayerPipelineAndRemoveChildren"),
|
||||
Msg::LoadComplete => write!(f, "LoadComplete"),
|
||||
Msg::ScrollTimeout(..) => write!(f, "ScrollTimeout"),
|
||||
Msg::KeyEvent(..) => write!(f, "KeyEvent"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue