mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
style: use the XBL styleset quirks mode to match XBL rules.
This fixes bug 1405543. MozReview-Commit-ID: Dv3mt3Fb8Yp
This commit is contained in:
parent
715fc9cea6
commit
100dd18307
2 changed files with 16 additions and 2 deletions
|
@ -123,6 +123,11 @@ impl PerDocumentStyleData {
|
|||
/// Create a dummy `PerDocumentStyleData`.
|
||||
pub fn new(pres_context: RawGeckoPresContextOwned) -> Self {
|
||||
let device = Device::new(pres_context);
|
||||
|
||||
// FIXME(emilio, tlin): How is this supposed to work with XBL? This is
|
||||
// right now not always honored, see bug 1405543...
|
||||
//
|
||||
// Should we just force XBL Stylists to be NoQuirks?
|
||||
let quirks_mode = unsafe {
|
||||
(*device.pres_context().mDocument.raw::<nsIDocument>()).mCompatMode
|
||||
};
|
||||
|
|
|
@ -1270,12 +1270,21 @@ impl Stylist {
|
|||
// ServoStyleSet::CreateXBLServoStyleSet() loads XBL style sheets
|
||||
// under eAuthorSheetFeatures level.
|
||||
if let Some(map) = stylist.cascade_data.author.borrow_for_pseudo(pseudo_element) {
|
||||
// NOTE(emilio): This is needed because the XBL stylist may
|
||||
// think it has a different quirks mode than the document.
|
||||
let mut matching_context = MatchingContext::new(
|
||||
context.matching_mode,
|
||||
context.bloom_filter,
|
||||
context.nth_index_cache.as_mut().map(|s| &mut **s),
|
||||
stylist.quirks_mode,
|
||||
);
|
||||
|
||||
map.get_all_matching_rules(
|
||||
element,
|
||||
&rule_hash_target,
|
||||
applicable_declarations,
|
||||
context,
|
||||
self.quirks_mode,
|
||||
&mut matching_context,
|
||||
stylist.quirks_mode,
|
||||
flags_setter,
|
||||
CascadeLevel::XBL,
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue