mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-28 12:45:27 +00:00
servo: Merge #4852 - Add flag to send live updates to devtools (from jdm:buffermessages); r=jdm
Rebased and squashed version of #4191. Source-Repo: https://github.com/servo/servo Source-Revision: 0a2bde1b6ea97b68dfa0e62440dc92ef80fb1fd2
This commit is contained in:
parent
c9aac69d6b
commit
9b1f1b9c10
@ -8,6 +8,7 @@
|
||||
|
||||
use actor::{Actor, ActorRegistry};
|
||||
use actors::console::ConsoleActor;
|
||||
use devtools_traits::WantsLiveNotifications;
|
||||
use protocol::JsonPacketStream;
|
||||
|
||||
use serialize::json;
|
||||
@ -99,6 +100,7 @@ impl Actor for TabActor {
|
||||
let console_actor = registry.find::<ConsoleActor>(self.console.as_slice());
|
||||
console_actor.streams.borrow_mut().push(stream.clone());
|
||||
stream.write_json_packet(&msg);
|
||||
console_actor.script_chan.send(WantsLiveNotifications(console_actor.pipeline, true));
|
||||
true
|
||||
}
|
||||
|
||||
@ -112,6 +114,7 @@ impl Actor for TabActor {
|
||||
let console_actor = registry.find::<ConsoleActor>(self.console.as_slice());
|
||||
console_actor.streams.borrow_mut().pop();
|
||||
stream.write_json_packet(&msg);
|
||||
console_actor.script_chan.send(WantsLiveNotifications(console_actor.pipeline, false));
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -94,6 +94,7 @@ pub enum DevtoolScriptControlMsg {
|
||||
GetChildren(PipelineId, String, Sender<Vec<NodeInfo>>),
|
||||
GetLayout(PipelineId, String, Sender<(f32, f32)>),
|
||||
ModifyAttribute(PipelineId, String, Vec<Modification>),
|
||||
WantsLiveNotifications(PipelineId, bool),
|
||||
}
|
||||
|
||||
/// Messages to instruct devtools server to update its state relating to a particular
|
||||
|
@ -108,3 +108,8 @@ pub fn handle_modify_attribute(page: &Rc<Page>, pipeline: PipelineId, node_id: S
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn handle_wants_live_notifications(page: &Rc<Page>, pipeline_id: PipelineId, send_notifications: bool) {
|
||||
let page = get_page(&*page, pipeline_id);
|
||||
page.devtools_wants_updates.set(send_notifications);
|
||||
}
|
||||
|
@ -96,6 +96,10 @@ pub struct Page {
|
||||
/// An enlarged rectangle around the page contents visible in the viewport, used
|
||||
/// to prevent creating display list items for content that is far away from the viewport.
|
||||
pub page_clip_rect: Cell<Rect<Au>>,
|
||||
|
||||
/// A flag to indicate whether the developer tools have requested live updates of
|
||||
/// page changes.
|
||||
pub devtools_wants_updates: Cell<bool>,
|
||||
}
|
||||
|
||||
pub struct PageIterator {
|
||||
@ -161,6 +165,7 @@ impl Page {
|
||||
constellation_chan: constellation_chan,
|
||||
children: DOMRefCell::new(vec!()),
|
||||
page_clip_rect: Cell::new(MAX_RECT),
|
||||
devtools_wants_updates: Cell::new(false),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ use devtools;
|
||||
|
||||
use devtools_traits::{DevtoolsControlChan, DevtoolsControlPort, NewGlobal, GetRootNode, DevtoolsPageInfo};
|
||||
use devtools_traits::{DevtoolScriptControlMsg, EvaluateJS, GetDocumentElement};
|
||||
use devtools_traits::{GetChildren, GetLayout, ModifyAttribute};
|
||||
use devtools_traits::{GetChildren, GetLayout, ModifyAttribute, WantsLiveNotifications};
|
||||
use script_traits::CompositorEvent;
|
||||
use script_traits::CompositorEvent::{ResizeEvent, ReflowEvent, ClickEvent};
|
||||
use script_traits::CompositorEvent::{MouseDownEvent, MouseUpEvent};
|
||||
@ -637,6 +637,8 @@ impl ScriptTask {
|
||||
devtools::handle_get_layout(&*self.page.borrow(), id, node_id, reply),
|
||||
ModifyAttribute(id, node_id, modifications) =>
|
||||
devtools::handle_modify_attribute(&*self.page.borrow(), id, node_id, modifications),
|
||||
WantsLiveNotifications(pipeline_id, to_send) =>
|
||||
devtools::handle_wants_live_notifications(&*self.page.borrow(), pipeline_id, to_send),
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user