diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2016-03-23 17:49:03 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2016-04-28 10:53:13 -0700 |
commit | 7bd257089c38489ded7d8d84493406c321c1f16f (patch) | |
tree | d2be850caffa2862ec5bf9f73b4c368cb68f95af /components/script/dom/htmliframeelement.rs | |
parent | c011c3197d61d64274d151d8bad85216d3b85041 (diff) | |
download | servo-7bd257089c38489ded7d8d84493406c321c1f16f.tar.gz servo-7bd257089c38489ded7d8d84493406c321c1f16f.zip |
script: Make iframes know their pipeline IDs at all times, even after
navigation.
Since WebRender uses the pipeline ID stored in the iframe element to
determine which pipeline to display, it had better be kept up to date!
Closes #9919.
Diffstat (limited to 'components/script/dom/htmliframeelement.rs')
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index a9d5471d468..ad172fabb99 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -24,7 +24,7 @@ use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers}; use dom::event::Event; use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; -use dom::node::{Node, UnbindContext, window_from_node, document_from_node}; +use dom::node::{Node, NodeDamage, UnbindContext, window_from_node, document_from_node}; use dom::urlhelper::UrlHelper; use dom::virtualmethods::VirtualMethods; use dom::window::{ReflowReason, Window}; @@ -177,8 +177,14 @@ impl HTMLIFrameElement { } } - pub fn update_subpage_id(&self, new_subpage_id: SubpageId) { + pub fn update_subpage_id(&self, new_subpage_id: SubpageId, new_pipeline_id: PipelineId) { self.subpage_id.set(Some(new_subpage_id)); + self.pipeline_id.set(Some(new_pipeline_id)); + + let mut blocker = self.load_blocker.borrow_mut(); + LoadBlocker::terminate(&mut blocker); + + self.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage); } fn new_inherited(localName: Atom, |