aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_thread.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/script_thread.rs')
-rw-r--r--components/script/script_thread.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index 663d87f46ee..ef55e608be8 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -1131,6 +1131,8 @@ impl ScriptThread {
ConstellationControlMsg::DispatchFrameLoadEvent {
target: pipeline_id, parent: containing_id } =>
self.handle_frame_load_event(containing_id, pipeline_id),
+ ConstellationControlMsg::FramedContentChanged(containing_pipeline_id, subpage_id) =>
+ self.handle_framed_content_changed(containing_pipeline_id, subpage_id),
ConstellationControlMsg::ReportCSSError(pipeline_id, filename, line, column, msg) =>
self.handle_css_error_reporting(pipeline_id, filename, line, column, msg),
}
@@ -1487,6 +1489,22 @@ impl ScriptThread {
}
}
+ fn handle_framed_content_changed(&self,
+ parent_pipeline_id: PipelineId,
+ subpage_id: SubpageId) {
+ let borrowed_page = self.root_page();
+ let page = borrowed_page.find(parent_pipeline_id).unwrap();
+ let doc = page.document();
+ let frame_element = doc.find_iframe(subpage_id);
+ if let Some(ref frame_element) = frame_element {
+ frame_element.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage);
+ let window = page.window();
+ window.reflow(ReflowGoal::ForDisplay,
+ ReflowQueryType::NoQuery,
+ ReflowReason::FramedContentChanged);
+ }
+ }
+
/// Handles a mozbrowser event, for example see:
/// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadstart
fn handle_mozbrowser_event_msg(&self,