Auto merge of #18759 - emilio:keep-unshipping-dont-stop, r=upsuper

stylo: Keep unshipping stuff.

From bug 1396066

<!-- 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/18759)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-10-05 17:54:57 -05:00 committed by GitHub
commit 90d0afc614
4 changed files with 2528 additions and 2600 deletions

File diff suppressed because it is too large Load diff

View file

@ -32,6 +32,7 @@ use string_cache::Atom;
use style_traits::{CSSPixel, DevicePixel};
use style_traits::{ToCss, ParseError, StyleParseError};
use style_traits::viewport::ViewportConstraints;
use stylesheets::Origin;
use values::{CSSFloat, CustomIdent, serialize_dimension};
use values::computed::{self, ToComputedValue};
use values::specified::Length;
@ -594,8 +595,10 @@ impl Expression {
/// ```
/// (media-feature: media-value)
/// ```
pub fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
-> Result<Self, ParseError<'i>> {
pub fn parse<'i, 't>(
context: &ParserContext,
input: &mut Parser<'i, 't>,
) -> Result<Self, ParseError<'i>> {
input.expect_parenthesis_block().map_err(|err|
match err {
BasicParseError::UnexpectedToken(t) => StyleParseError::ExpectedIdentifier(t),
@ -616,6 +619,12 @@ impl Expression {
)?;
let mut flags = 0;
if context.in_chrome_stylesheet() ||
context.stylesheet_origin == Origin::UserAgent {
flags |= nsMediaFeature_RequirementFlags::eUserAgentAndChromeOnly as u8;
}
let result = {
let mut feature_name = &**ident;

View file

@ -117,8 +117,8 @@ macro_rules! apply_non_ts_list {
("-moz-window-inactive", MozWindowInactive, mozWindowInactive, _, _),
],
string: [
// FIXME(emilio): Unship this for content docs (bug 1396066).
("-moz-system-metric", MozSystemMetric, mozSystemMetric, _, _),
("-moz-system-metric", MozSystemMetric, mozSystemMetric, _,
PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
("lang", Lang, lang, _, _),
],
keyword: [

View file

@ -130,6 +130,11 @@ impl<'a> ParserContext<'a> {
};
context.error_reporter.report_error(self.url_data, location, error)
}
/// Returns whether this is a chrome stylesheets.
pub fn in_chrome_stylesheet(&self) -> bool {
self.url_data.is_chrome()
}
}
// XXXManishearth Replace all specified value parse impls with impls of this