@@ -17,14 +17,9 @@ use wapcaplet::LwcString;
17
17
use extra:: net:: url:: Url ;
18
18
use netsurfcss:: stylesheet:: CssUrlResolutionFn ;
19
19
20
- // This takes a DataStreamFactory instead of a DataStream because
21
- // servo's DataStream contains a comm::Port, which is not sendable,
22
- // so DataStream is an @fn which can't be sent to the lexer task.
23
- // So the DataStreamFactory gives the caller an opportunity to create
24
- // the data stream from inside the lexer task.
25
- pub fn parse_stylesheet ( url : Url , input : DataStream ) -> CssStylesheet {
20
+ fn default_params ( url : Url ) -> CssStylesheetParams {
26
21
let resolve: CssUrlResolutionFn = resolve_url;
27
- let params : CssStylesheetParams = CssStylesheetParams {
22
+ CssStylesheetParams {
28
23
params_version : CssStylesheetParamsVersion1 ,
29
24
level : CssLevel21 ,
30
25
charset : ~"UTF -8 ",
@@ -36,7 +31,16 @@ pub fn parse_stylesheet(url: Url, input: DataStream) -> CssStylesheet {
36
31
import : None ,
37
32
color : None ,
38
33
font : None ,
39
- } ;
34
+ }
35
+ }
36
+
37
+ // This takes a DataStreamFactory instead of a DataStream because
38
+ // servo's DataStream contains a comm::Port, which is not sendable,
39
+ // so DataStream is an @fn which can't be sent to the lexer task.
40
+ // So the DataStreamFactory gives the caller an opportunity to create
41
+ // the data stream from inside the lexer task.
42
+ pub fn parse_stylesheet ( url : Url , input : DataStream ) -> CssStylesheet {
43
+ let params = default_params ( url) ;
40
44
let mut sheet = css_stylesheet_create ( & params) ;
41
45
42
46
loop {
@@ -48,7 +52,16 @@ pub fn parse_stylesheet(url: Url, input: DataStream) -> CssStylesheet {
48
52
}
49
53
}
50
54
sheet. data_done ( ) ;
51
- return sheet;
55
+ sheet
56
+ }
57
+
58
+ pub fn parse_style_attribute ( url : Url , data : & str ) -> CssStylesheet {
59
+ let mut params = default_params ( url) ;
60
+ params. inline_style = true ;
61
+ let mut sheet = css_stylesheet_create ( & params) ;
62
+ sheet. append_data ( data. as_bytes ( ) ) ;
63
+ sheet. data_done ( ) ;
64
+ sheet
52
65
}
53
66
54
67
fn resolve_url ( _base : & str , _rel : & LwcString ) -> CssResult < LwcString > {
0 commit comments