Expose Quirks Mode information in the style shared context r=emilio

This commit is contained in:
Julien Wajsberg 2016-11-29 18:32:10 +01:00
parent 9d2b98e6f8
commit d024787188
9 changed files with 58 additions and 25 deletions

View file

@ -77,7 +77,6 @@ use html5ever::serialize;
use html5ever::serialize::SerializeOpts;
use html5ever::serialize::TraversalScope;
use html5ever::serialize::TraversalScope::{ChildrenOnly, IncludeNode};
use html5ever::tree_builder::{LimitedQuirks, NoQuirks, Quirks};
use html5ever_atoms::{Prefix, LocalName, Namespace, QualName};
use js::jsapi::{HandleValue, JSAutoCompartment};
use parking_lot::RwLock;
@ -98,7 +97,7 @@ use std::rc::Rc;
use std::sync::Arc;
use std::sync::atomic::{AtomicUsize, Ordering};
use style::attr::{AttrValue, LengthOrPercentageOrAuto};
use style::context::ReflowGoal;
use style::context::{QuirksMode, ReflowGoal};
use style::element_state::*;
use style::matching::{common_style_affecting_attributes, rare_style_affecting_attributes};
use style::parser::ParserContextExtraData;
@ -1084,8 +1083,8 @@ impl Element {
let quirks_mode = document_from_node(self).quirks_mode();
let is_equal = |lhs: &Atom, rhs: &Atom| {
match quirks_mode {
NoQuirks | LimitedQuirks => lhs == rhs,
Quirks => lhs.eq_ignore_ascii_case(&rhs),
QuirksMode::NoQuirks | QuirksMode::LimitedQuirks => lhs == rhs,
QuirksMode::Quirks => lhs.eq_ignore_ascii_case(&rhs),
}
};
self.get_attribute(&ns!(), &local_name!("class"))
@ -1265,7 +1264,7 @@ impl Element {
// Step 7
if *self.root_element() == *self {
if doc.quirks_mode() != Quirks {
if doc.quirks_mode() != QuirksMode::Quirks {
win.scroll(x, y, behavior);
}
@ -1274,7 +1273,7 @@ impl Element {
// Step 9
if doc.GetBody().r() == self.downcast::<HTMLElement>() &&
doc.quirks_mode() == Quirks &&
doc.quirks_mode() == QuirksMode::Quirks &&
!self.potentially_scrollable() {
win.scroll(x, y, behavior);
return;
@ -1645,7 +1644,7 @@ impl ElementMethods for Element {
// Step 5
if *self.root_element() == *self {
if doc.quirks_mode() == Quirks {
if doc.quirks_mode() == QuirksMode::Quirks {
return 0.0;
}
@ -1655,7 +1654,7 @@ impl ElementMethods for Element {
// Step 7
if doc.GetBody().r() == self.downcast::<HTMLElement>() &&
doc.quirks_mode() == Quirks &&
doc.quirks_mode() == QuirksMode::Quirks &&
!self.potentially_scrollable() {
return win.ScrollY() as f64;
}
@ -1696,7 +1695,7 @@ impl ElementMethods for Element {
// Step 7
if *self.root_element() == *self {
if doc.quirks_mode() != Quirks {
if doc.quirks_mode() != QuirksMode::Quirks {
win.scroll(win.ScrollX() as f64, y, behavior);
}
@ -1705,7 +1704,7 @@ impl ElementMethods for Element {
// Step 9
if doc.GetBody().r() == self.downcast::<HTMLElement>() &&
doc.quirks_mode() == Quirks &&
doc.quirks_mode() == QuirksMode::Quirks &&
!self.potentially_scrollable() {
win.scroll(win.ScrollX() as f64, y, behavior);
return;
@ -1737,7 +1736,7 @@ impl ElementMethods for Element {
// Step 5
if *self.root_element() == *self {
if doc.quirks_mode() != Quirks {
if doc.quirks_mode() != QuirksMode::Quirks {
// Step 6
return win.ScrollX() as f64;
}
@ -1747,7 +1746,7 @@ impl ElementMethods for Element {
// Step 7
if doc.GetBody().r() == self.downcast::<HTMLElement>() &&
doc.quirks_mode() == Quirks &&
doc.quirks_mode() == QuirksMode::Quirks &&
!self.potentially_scrollable() {
return win.ScrollX() as f64;
}
@ -1788,7 +1787,7 @@ impl ElementMethods for Element {
// Step 7
if *self.root_element() == *self {
if doc.quirks_mode() == Quirks {
if doc.quirks_mode() == QuirksMode::Quirks {
return;
}
@ -1798,7 +1797,7 @@ impl ElementMethods for Element {
// Step 9
if doc.GetBody().r() == self.downcast::<HTMLElement>() &&
doc.quirks_mode() == Quirks &&
doc.quirks_mode() == QuirksMode::Quirks &&
!self.potentially_scrollable() {
win.scroll(x, win.ScrollY() as f64, behavior);
return;