Auto merge of #14356 - heycam:nac-no-doc, r=emilio

stylo: don't match native anonymous content to user/author rules

<!-- Please describe your changes on the following line: -->

This makes us skip user and document style sheets when performing the cascade for Gecko native anonymous content.  It was reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1293809 by @emilio.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14356)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-11-23 23:32:32 -08:00 committed by GitHub
commit a9b0eb101f
5 changed files with 83 additions and 60 deletions

View file

@ -28,6 +28,7 @@ use gecko_bindings::bindings::Gecko_StoreStyleDifference;
use gecko_bindings::structs;
use gecko_bindings::structs::{NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO, NODE_IS_DIRTY_FOR_SERVO};
use gecko_bindings::structs::{nsIAtom, nsIContent, nsStyleContext};
use gecko_bindings::structs::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
use parking_lot::RwLock;
use parser::ParserContextExtraData;
use properties::{ComputedValues, parse_style_attribute};
@ -624,4 +625,9 @@ impl<'le> ElementExt for GeckoElement<'le> {
fn is_link(&self) -> bool {
self.match_non_ts_pseudo_class(NonTSPseudoClass::AnyLink)
}
#[inline]
fn matches_user_and_author_rules(&self) -> bool {
self.flags() & (NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE as u32) == 0
}
}