From 93088e84f07711481eb0e55d23fd4ab8f996f4a7 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Thu, 26 Feb 2015 13:01:12 +1000 Subject: [PATCH 1/2] If root html element contains "reftest-wait" class, don't mark document as ready until it's removed. This allows reftests to perform tests for incremental layout and other bugs that require rendering multiple frames. --- components/script/script_task.rs | 11 +++++++++-- 1 file 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 From f8ca60e74ed97c6c7fc6e4f2ac631c20609df3f1 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Thu, 26 Feb 2015 13:30:53 +1000 Subject: [PATCH 2/2] Update WPT expectations for reftest-wait change. --- tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini b/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini index 08c0d4d0d67..a8ff6da101c 100644 --- a/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini +++ b/tests/wpt/metadata/FileAPI/url/url_xmlhttprequest_img.html.ini @@ -2,4 +2,4 @@ type: reftest reftype: == refurl: /FileAPI/url/url_xmlhttprequest_img-ref.html - expected: FAIL + expected: TIMEOUT