aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_task.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-02-25 21:06:57 -0700
committerbors-servo <metajack+bors@gmail.com>2015-02-25 21:06:57 -0700
commitc7c399a26b01fe6f4d49476638a68caf6ecb8f82 (patch)
treeb8d2a06b3eb11e6d455e09b3a12e4e88844a5698 /components/script/script_task.rs
parent67b78983db31128604339e2fd7f391e878cf9f9b (diff)
parentf8ca60e74ed97c6c7fc6e4f2ac631c20609df3f1 (diff)
downloadservo-c7c399a26b01fe6f4d49476638a68caf6ecb8f82.tar.gz
servo-c7c399a26b01fe6f4d49476638a68caf6ecb8f82.zip
auto merge of #5071 : glennw/servo/reftest-wait, r=jdm
This allows reftests to perform tests for incremental layout and other bugs that require rendering multiple frames.
Diffstat (limited to 'components/script/script_task.rs')
-rw-r--r--components/script/script_task.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index 348328507c6..83b2fd8cadf 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -22,7 +22,7 @@ use dom::bindings::structuredclone::StructuredCloneData;
use dom::bindings::trace::JSTraceable;
use dom::bindings::utils::{wrap_for_same_compartment, pre_wrap};
use dom::document::{Document, IsHTMLDocument, DocumentHelpers, DocumentProgressHandler, DocumentProgressTask, DocumentSource};
-use dom::element::{Element, ActivationElementHelpers};
+use dom::element::{Element, ActivationElementHelpers, AttributeHandlers};
use dom::event::{Event, EventHelpers};
use dom::uievent::UIEvent;
use dom::eventtarget::EventTarget;
@@ -59,6 +59,7 @@ use net::image_cache_task::ImageCacheTask;
use net::resource_task::{ResourceTask, ControlMsg};
use net::resource_task::LoadData as NetLoadData;
use net::storage_task::StorageTask;
+use string_cache::Atom;
use util::geometry::to_frac_px;
use util::smallvec::SmallVec;
use util::str::DOMString;
@@ -695,7 +696,13 @@ impl ScriptTask {
*layout_join_port = None;
}
- self.compositor.borrow_mut().set_ready_state(pipeline_id, FinishedLoading);
+ let doc = page.frame().as_ref().unwrap().document.root();
+ let html_element = doc.r().GetDocumentElement().root();
+ let reftest_wait = html_element.r().map_or(false, |elem| elem.has_class(&Atom::from_slice("reftest-wait")));
+
+ if !reftest_wait {
+ self.compositor.borrow_mut().set_ready_state(pipeline_id, FinishedLoading);
+ }
}
/// Window was resized, but this script was not active, so don't reflow yet