Allow shorthands to be restricted to specific products.

This commit is contained in:
Cameron McCormack 2016-05-07 16:47:44 +10:00
parent a12493f5fe
commit 2b8f809852
2 changed files with 10 additions and 3 deletions

View file

@ -145,7 +145,11 @@ class PropertiesData(object):
return longand return longand
def declare_shorthand(self, name, sub_properties, *args, **kwargs): def declare_shorthand(self, name, sub_properties, products="gecko servo", *args, **kwargs):
products = products.split()
if self.product not in products:
return
sub_properties = [self.longhands_by_name[s] for s in sub_properties] sub_properties = [self.longhands_by_name[s] for s in sub_properties]
shorthand = Shorthand(name, sub_properties, *args, **kwargs) shorthand = Shorthand(name, sub_properties, *args, **kwargs)
self.shorthands.append(shorthand) self.shorthands.append(shorthand)

View file

@ -191,10 +191,12 @@
</%call> </%call>
</%def> </%def>
<%def name="shorthand(name, sub_properties, experimental=False)"> <%def name="shorthand(name, sub_properties, experimental=False, **kwargs)">
<% <%
shorthand = data.declare_shorthand(name, sub_properties.split(), experimental=experimental) shorthand = data.declare_shorthand(name, sub_properties.split(), experimental=experimental,
**kwargs)
%> %>
% if shorthand:
pub mod ${shorthand.ident} { pub mod ${shorthand.ident} {
use cssparser::Parser; use cssparser::Parser;
use parser::ParserContext; use parser::ParserContext;
@ -252,6 +254,7 @@
${caller.body()} ${caller.body()}
} }
} }
% endif
</%def> </%def>
<%def name="four_sides_shorthand(name, sub_property_pattern, parser_function)"> <%def name="four_sides_shorthand(name, sub_property_pattern, parser_function)">