aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml13
-rw-r--r--Cargo.lock240
-rw-r--r--README.md30
-rw-r--r--components/canvas/webgl_thread.rs8
-rw-r--r--components/compositing/compositor.rs32
-rw-r--r--components/compositing/compositor_thread.rs4
-rw-r--r--components/compositing/windowing.rs4
-rw-r--r--components/config/Cargo.toml2
-rw-r--r--components/config/tests/opts.rs (renamed from tests/unit/servo_config/opts.rs)2
-rw-r--r--components/config/tests/prefs.rs (renamed from tests/unit/servo_config/prefs.rs)2
-rw-r--r--components/constellation/Cargo.toml3
-rw-r--r--components/constellation/constellation.rs16
-rw-r--r--components/constellation/lib.rs2
-rw-r--r--components/gfx/Cargo.toml2
-rw-r--r--components/gfx/display_list/mod.rs4
-rw-r--r--components/gfx/tests/text_util.rs (renamed from tests/unit/gfx/text_util.rs)2
-rw-r--r--components/gfx/text/glyph.rs2
-rw-r--r--components/hashglobe/src/shim.rs3
-rw-r--r--components/layout/Cargo.toml5
-rw-r--r--components/layout/animation.rs49
-rw-r--r--components/layout/construct.rs347
-rw-r--r--components/layout/display_list/builder.rs50
-rw-r--r--components/layout/flow.rs38
-rw-r--r--components/layout/inline.rs6
-rw-r--r--components/layout/model.rs2
-rw-r--r--components/layout/query.rs2
-rw-r--r--components/layout/tests/size_of.rs (renamed from tests/unit/layout/size_of.rs)5
-rw-r--r--components/layout/wrapper.rs2
-rw-r--r--components/layout_thread/Cargo.toml3
-rw-r--r--components/layout_thread/dom_wrapper.rs16
-rw-r--r--components/layout_thread/lib.rs41
-rw-r--r--components/msg/Cargo.toml5
-rw-r--r--components/msg/tests/size_of.rs (renamed from tests/unit/msg/size_of.rs)5
-rw-r--r--components/net/Cargo.toml6
-rw-r--r--components/net/fetch/methods.rs9
-rw-r--r--components/net/http_cache.rs74
-rw-r--r--components/net/http_loader.rs23
-rw-r--r--components/net/tests/chrome_loader.rs (renamed from tests/unit/net/chrome_loader.rs)0
-rw-r--r--components/net/tests/cookie.rs (renamed from tests/unit/net/cookie.rs)0
-rw-r--r--components/net/tests/cookie_http_state.rs (renamed from tests/unit/net/cookie_http_state.rs)0
-rw-r--r--components/net/tests/cookie_http_state_utils.py (renamed from tests/unit/net/cookie_http_state_utils.py)0
-rw-r--r--components/net/tests/data_loader.rs (renamed from tests/unit/net/data_loader.rs)0
-rw-r--r--components/net/tests/fetch.rs (renamed from tests/unit/net/fetch.rs)0
-rw-r--r--components/net/tests/file_loader.rs (renamed from tests/unit/net/file_loader.rs)2
-rw-r--r--components/net/tests/filemanager_thread.rs (renamed from tests/unit/net/filemanager_thread.rs)12
-rw-r--r--components/net/tests/hsts.rs (renamed from tests/unit/net/hsts.rs)0
-rw-r--r--components/net/tests/http_loader.rs (renamed from tests/unit/net/http_loader.rs)0
-rw-r--r--components/net/tests/main.rs (renamed from tests/unit/net/lib.rs)0
-rw-r--r--components/net/tests/mime_classifier.rs (renamed from tests/unit/net/mime_classifier.rs)4
-rwxr-xr-xcomponents/net/tests/parsable_mime/application/font-woff/test.wof (renamed from tests/unit/net/parsable_mime/application/font-woff/test.wof)0
-rw-r--r--components/net/tests/parsable_mime/application/ogg/small.ogg (renamed from tests/unit/net/parsable_mime/application/ogg/small.ogg)bin105243 -> 105243 bytes
-rw-r--r--components/net/tests/parsable_mime/application/pdf/test.pdf (renamed from tests/unit/net/parsable_mime/application/pdf/test.pdf)0
-rwxr-xr-xcomponents/net/tests/parsable_mime/application/postscript/test.ps (renamed from tests/unit/net/parsable_mime/application/postscript/test.ps)0
-rwxr-xr-xcomponents/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject (renamed from tests/unit/net/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject)bin36 -> 36 bytes
-rw-r--r--components/net/tests/parsable_mime/application/x-gzip/test.gz (renamed from tests/unit/net/parsable_mime/application/x-gzip/test.gz)bin1239 -> 1239 bytes
-rwxr-xr-xcomponents/net/tests/parsable_mime/application/x-rar-compressed/test.rar (renamed from tests/unit/net/parsable_mime/application/x-rar-compressed/test.rar)bin7 -> 7 bytes
-rwxr-xr-xcomponents/net/tests/parsable_mime/application/zip/test.zip (renamed from tests/unit/net/parsable_mime/application/zip/test.zip)0
-rw-r--r--components/net/tests/parsable_mime/audio/aiff/test.aif (renamed from tests/unit/net/parsable_mime/audio/aiff/test.aif)bin47122 -> 47122 bytes
-rw-r--r--components/net/tests/parsable_mime/audio/basic/test.au (renamed from tests/unit/net/parsable_mime/audio/basic/test.au)bin47086 -> 47086 bytes
-rw-r--r--components/net/tests/parsable_mime/audio/midi/test.mid (renamed from tests/unit/net/parsable_mime/audio/midi/test.mid)bin8444 -> 8444 bytes
-rw-r--r--components/net/tests/parsable_mime/audio/mpeg/test.mp3 (renamed from tests/unit/net/parsable_mime/audio/mpeg/test.mp3)bin33621 -> 33621 bytes
-rw-r--r--components/net/tests/parsable_mime/audio/wave/test.wav (renamed from tests/unit/net/parsable_mime/audio/wave/test.wav)bin47196 -> 47196 bytes
-rw-r--r--components/net/tests/parsable_mime/image/bmp/test.bmp (renamed from tests/unit/net/parsable_mime/image/bmp/test.bmp)bin11914 -> 11914 bytes
-rw-r--r--components/net/tests/parsable_mime/image/gif/test87a (renamed from tests/unit/net/parsable_mime/image/gif/test87a)bin1303 -> 1303 bytes
-rw-r--r--components/net/tests/parsable_mime/image/gif/test89a.gif (renamed from tests/unit/net/parsable_mime/image/gif/test89a.gif)bin1303 -> 1303 bytes
-rw-r--r--components/net/tests/parsable_mime/image/jpeg/test.jpg (renamed from tests/unit/net/parsable_mime/image/jpeg/test.jpg)bin3744 -> 3744 bytes
-rw-r--r--components/net/tests/parsable_mime/image/png/test.png (renamed from tests/unit/net/parsable_mime/image/png/test.png)bin4293 -> 4293 bytes
-rwxr-xr-xcomponents/net/tests/parsable_mime/image/webp/test.webp (renamed from tests/unit/net/parsable_mime/image/webp/test.webp)bin14 -> 14 bytes
-rw-r--r--components/net/tests/parsable_mime/image/x-icon/test.ico (renamed from tests/unit/net/parsable_mime/image/x-icon/test.ico)bin12206 -> 12206 bytes
-rw-r--r--components/net/tests/parsable_mime/image/x-icon/test_cursor.ico (renamed from tests/unit/net/parsable_mime/image/x-icon/test_cursor.ico)bin12206 -> 12206 bytes
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_a_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_a_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_a_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_a_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_a_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_a_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_a_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_a_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_b_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_b_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_b_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_b_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_b_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_b_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_b_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_b_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_body_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_body_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_body_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_body_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_body_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_body_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_body_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_body_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_br_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_br_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_br_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_br_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_br_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_br_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_br_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_br_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_comment_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_comment_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_comment_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_comment_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_comment_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_comment_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_comment_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_div_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_div_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_div_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_div_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_div_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_div_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_div_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_div_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_doctype_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_doctype_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_doctype_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_doctype_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_doctype_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_doctype_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_font_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_font_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_font_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_font_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_font_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_font_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_font_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_font_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_h1_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_h1_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_h1_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_h1_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_h1_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_h1_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_h1_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_head_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_head_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_head_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_head_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_head_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_head_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_head_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_head_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_iframe_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_iframe_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_iframe_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_iframe_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_iframe_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_iframe_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_p_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_p_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_p_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_p_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_p_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_p_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_p_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_p_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_page_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_page_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_page_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_page_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_page_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_page_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_page_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_page_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_script_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_script_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_script_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_script_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_script_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_script_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_script_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_script_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_style_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_style_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_style_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_style_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_style_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_style_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_style_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_style_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_table_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_table_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_table_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_table_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_table_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_table_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_table_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_table_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_title_20.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_title_20.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_title_20_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_title_20_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_title_3e.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_title_3e.html)0
-rw-r--r--components/net/tests/parsable_mime/text/html/text_html_title_3e_u.html (renamed from tests/unit/net/parsable_mime/text/html/text_html_title_3e_u.html)0
-rw-r--r--components/net/tests/parsable_mime/text/plain/utf16bebom.txt (renamed from tests/unit/net/parsable_mime/text/plain/utf16bebom.txt)bin42 -> 42 bytes
-rw-r--r--components/net/tests/parsable_mime/text/plain/utf16lebom.txt (renamed from tests/unit/net/parsable_mime/text/plain/utf16lebom.txt)bin40 -> 40 bytes
-rw-r--r--components/net/tests/parsable_mime/text/plain/utf8bom.txt (renamed from tests/unit/net/parsable_mime/text/plain/utf8bom.txt)0
-rwxr-xr-xcomponents/net/tests/parsable_mime/text/xml/feed.atom (renamed from tests/unit/net/parsable_mime/text/xml/feed.atom)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/feed.rss (renamed from tests/unit/net/parsable_mime/text/xml/feed.rss)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/rdf_rss.xml (renamed from tests/unit/net/parsable_mime/text/xml/rdf_rss.xml)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml (renamed from tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_1.xml)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml (renamed from tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_2.xml)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml (renamed from tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_3.xml)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml (renamed from tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_4.xml)0
-rw-r--r--components/net/tests/parsable_mime/text/xml/test.xml (renamed from tests/unit/net/parsable_mime/text/xml/test.xml)0
-rw-r--r--components/net/tests/parsable_mime/unknown/binary_file (renamed from tests/unit/net/parsable_mime/unknown/binary_file)bin1024 -> 1024 bytes
-rw-r--r--components/net/tests/parsable_mime/unknown/open_type (renamed from tests/unit/net/parsable_mime/unknown/open_type)0
-rw-r--r--components/net/tests/parsable_mime/unknown/true_type.ttf (renamed from tests/unit/net/parsable_mime/unknown/true_type.ttf)bin333616 -> 333616 bytes
-rw-r--r--components/net/tests/parsable_mime/unknown/true_type_collection.ttc (renamed from tests/unit/net/parsable_mime/unknown/true_type_collection.ttc)0
-rw-r--r--components/net/tests/parsable_mime/video/avi/test.avi (renamed from tests/unit/net/parsable_mime/video/avi/test.avi)bin675840 -> 675840 bytes
-rw-r--r--components/net/tests/parsable_mime/video/mp4/test.mp4 (renamed from tests/unit/net/parsable_mime/video/mp4/test.mp4)bin383631 -> 383631 bytes
-rw-r--r--components/net/tests/parsable_mime/video/webm/test.webm (renamed from tests/unit/net/parsable_mime/video/webm/test.webm)bin229455 -> 229455 bytes
-rw-r--r--components/net/tests/resource_thread.rs (renamed from tests/unit/net/resource_thread.rs)0
-rw-r--r--components/net/tests/subresource_integrity.rs (renamed from tests/unit/net/subresource_integrity.rs)0
-rw-r--r--components/net/tests/test.jpeg (renamed from tests/unit/net/test.jpeg)bin62218 -> 62218 bytes
-rw-r--r--components/net_traits/Cargo.toml2
-rw-r--r--components/net_traits/response.rs8
-rw-r--r--components/net_traits/tests/image.rs (renamed from tests/unit/net_traits/image.rs)2
-rw-r--r--components/net_traits/tests/pub_domains.rs (renamed from tests/unit/net_traits/pub_domains.rs)2
-rw-r--r--components/net_traits/tests/whitespace.rs (renamed from tests/unit/net_traits/lib.rs)5
-rw-r--r--components/remutex/Cargo.toml2
-rw-r--r--components/remutex/tests/smoke.rs (renamed from tests/unit/servo_remutex/lib.rs)2
-rw-r--r--components/script/Cargo.toml4
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py6
-rw-r--r--components/script/dom/bindings/conversions.rs12
-rw-r--r--components/script/dom/bindings/iterable.rs7
-rw-r--r--components/script/dom/bindings/mod.rs1
-rw-r--r--components/script/dom/bindings/nonnull.rs24
-rw-r--r--components/script/dom/bindings/root.rs35
-rw-r--r--components/script/dom/bindings/weakref.rs30
-rw-r--r--components/script/dom/crypto.rs6
-rw-r--r--components/script/dom/cssrulelist.rs2
-rw-r--r--components/script/dom/cssstyledeclaration.rs12
-rw-r--r--components/script/dom/document.rs10
-rw-r--r--components/script/dom/element.rs11
-rw-r--r--components/script/dom/gamepad.rs6
-rw-r--r--components/script/dom/htmlmediaelement.rs24
-rw-r--r--components/script/dom/imagedata.rs7
-rw-r--r--components/script/dom/medialist.rs11
-rw-r--r--components/script/dom/mediaquerylist.rs4
-rw-r--r--components/script/dom/performanceobserver.rs2
-rw-r--r--components/script/dom/screen.rs4
-rw-r--r--components/script/dom/testbinding.rs18
-rw-r--r--components/script/dom/textencoder.rs6
-rw-r--r--components/script/dom/vreyeparameters.rs6
-rw-r--r--components/script/dom/vrframedata.rs18
-rw-r--r--components/script/dom/vrpose.rs18
-rw-r--r--components/script/dom/vrstageparameters.rs6
-rw-r--r--components/script/dom/webgl2renderingcontext.rs4
-rw-r--r--components/script/dom/webgl_extensions/extensions.rs5
-rw-r--r--components/script/dom/webgl_extensions/wrapper.rs9
-rw-r--r--components/script/dom/webglrenderingcontext.rs4
-rw-r--r--components/script/dom/xmldocument.rs5
-rw-r--r--components/script/dom/xmlhttprequest.rs10
-rw-r--r--components/script/lib.rs4
-rw-r--r--components/script_layout_interface/Cargo.toml1
-rw-r--r--components/script_layout_interface/lib.rs6
-rw-r--r--components/script_layout_interface/wrapper_traits.rs18
-rw-r--r--components/script_traits/lib.rs4
-rw-r--r--components/script_traits/script_msg.rs4
-rw-r--r--components/selectors/context.rs86
-rw-r--r--components/selectors/matching.rs134
-rw-r--r--components/selectors/tree.rs2
-rw-r--r--components/servo_arc/lib.rs1
-rw-r--r--components/style/Cargo.toml2
-rw-r--r--components/style/animation.rs97
-rw-r--r--components/style/build_gecko.rs3
-rw-r--r--components/style/context.rs11
-rw-r--r--components/style/counter_style/mod.rs44
-rw-r--r--components/style/custom_properties.rs9
-rw-r--r--components/style/dom.rs2
-rw-r--r--components/style/font_face.rs16
-rw-r--r--components/style/gecko/generated/atom_macro.rs8
-rw-r--r--components/style/gecko/generated/bindings.rs4029
-rw-r--r--components/style/gecko/generated/pseudo_element_definition.rs34
-rw-r--r--components/style/gecko/generated/structs.rs46157
-rw-r--r--components/style/gecko/media_queries.rs6
-rw-r--r--components/style/gecko/pseudo_element.rs13
-rw-r--r--components/style/gecko/rules.rs10
-rw-r--r--components/style/gecko/selector_parser.rs6
-rw-r--r--components/style/gecko/url.rs9
-rw-r--r--components/style/gecko/wrapper.rs34
-rw-r--r--components/style/invalidation/element/element_wrapper.rs17
-rw-r--r--components/style/lib.rs16
-rw-r--r--components/style/macros.rs7
-rw-r--r--components/style/matching.rs10
-rw-r--r--components/style/media_queries.rs14
-rw-r--r--components/style/properties/declaration_block.rs93
-rw-r--r--components/style/properties/gecko.mako.rs240
-rw-r--r--components/style/properties/helpers.mako.rs23
-rw-r--r--components/style/properties/helpers/animated_properties.mako.rs9
-rw-r--r--components/style/properties/longhand/border.mako.rs123
-rw-r--r--components/style/properties/longhand/color.mako.rs9
-rw-r--r--components/style/properties/longhand/counters.mako.rs33
-rw-r--r--components/style/properties/longhand/inherited_text.mako.rs12
-rw-r--r--components/style/properties/longhand/pointing.mako.rs142
-rw-r--r--components/style/properties/properties.mako.rs123
-rw-r--r--components/style/properties/shorthand/background.mako.rs4
-rw-r--r--components/style/properties/shorthand/border.mako.rs10
-rw-r--r--components/style/properties/shorthand/box.mako.rs12
-rw-r--r--components/style/properties/shorthand/font.mako.rs17
-rw-r--r--components/style/properties/shorthand/inherited_svg.mako.rs2
-rw-r--r--components/style/properties/shorthand/mask.mako.rs4
-rw-r--r--components/style/properties/shorthand/outline.mako.rs2
-rw-r--r--components/style/properties/shorthand/position.mako.rs28
-rw-r--r--components/style/properties/shorthand/serialize.mako.rs19
-rw-r--r--components/style/properties/shorthand/text.mako.rs2
-rw-r--r--components/style/rule_tree/mod.rs2
-rw-r--r--components/style/selector_map.rs64
-rw-r--r--components/style/selector_parser.rs4
-rw-r--r--components/style/servo/media_queries.rs9
-rw-r--r--components/style/servo/selector_parser.rs46
-rw-r--r--components/style/servo/url.rs9
-rw-r--r--components/style/shared_lock.rs11
-rw-r--r--components/style/str.rs99
-rw-r--r--components/style/style_adjuster.rs92
-rw-r--r--components/style/style_resolver.rs144
-rw-r--r--components/style/stylesheets/document_rule.rs22
-rw-r--r--components/style/stylesheets/font_feature_values_rule.rs49
-rw-r--r--components/style/stylesheets/import_rule.rs13
-rw-r--r--components/style/stylesheets/keyframes_rule.rs26
-rw-r--r--components/style/stylesheets/media_rule.rs10
-rw-r--r--components/style/stylesheets/mod.rs4
-rw-r--r--components/style/stylesheets/namespace_rule.rs6
-rw-r--r--components/style/stylesheets/page_rule.rs8
-rw-r--r--components/style/stylesheets/rule_list.rs7
-rw-r--r--components/style/stylesheets/style_rule.rs8
-rw-r--r--components/style/stylesheets/supports_rule.rs20
-rw-r--r--components/style/stylesheets/viewport_rule.rs27
-rw-r--r--components/style/stylist.rs234
-rw-r--r--components/style/values/computed/align.rs4
-rw-r--r--components/style/values/computed/background.rs8
-rw-r--r--components/style/values/computed/basic_shape.rs14
-rw-r--r--components/style/values/computed/color.rs4
-rw-r--r--components/style/values/computed/font.rs12
-rw-r--r--components/style/values/computed/image.rs13
-rw-r--r--components/style/values/computed/inherited_box.rs14
-rw-r--r--components/style/values/computed/length.rs14
-rw-r--r--components/style/values/computed/mod.rs23
-rw-r--r--components/style/values/computed/percentage.rs4
-rw-r--r--components/style/values/computed/pointing.rs140
-rw-r--r--components/style/values/computed/position.rs9
-rw-r--r--components/style/values/computed/text.rs14
-rw-r--r--components/style/values/computed/time.rs8
-rw-r--r--components/style/values/generics/basic_shape.rs14
-rw-r--r--components/style/values/generics/border.rs23
-rw-r--r--components/style/values/generics/counters.rs4
-rw-r--r--components/style/values/generics/effects.rs8
-rw-r--r--components/style/values/generics/grid.rs34
-rw-r--r--components/style/values/generics/image.rs45
-rw-r--r--components/style/values/generics/mod.rs20
-rw-r--r--components/style/values/generics/rect.rs9
-rw-r--r--components/style/values/generics/size.rs10
-rw-r--r--components/style/values/generics/svg.rs9
-rw-r--r--components/style/values/generics/transform.rs155
-rw-r--r--components/style/values/mod.rs19
-rw-r--r--components/style/values/specified/align.rs14
-rw-r--r--components/style/values/specified/angle.rs9
-rw-r--r--components/style/values/specified/basic_shape.rs29
-rw-r--r--components/style/values/specified/box.rs18
-rw-r--r--components/style/values/specified/calc.rs9
-rw-r--r--components/style/values/specified/color.rs11
-rw-r--r--components/style/values/specified/font.rs54
-rw-r--r--components/style/values/specified/image.rs13
-rw-r--r--components/style/values/specified/inherited_box.rs9
-rw-r--r--components/style/values/specified/list.rs9
-rw-r--r--components/style/values/specified/mod.rs28
-rw-r--r--components/style/values/specified/percentage.rs9
-rw-r--r--components/style/values/specified/pointing.rs40
-rw-r--r--components/style/values/specified/position.rs24
-rw-r--r--components/style/values/specified/svg.rs10
-rw-r--r--components/style/values/specified/table.rs4
-rw-r--r--components/style/values/specified/text.rs9
-rw-r--r--components/style/values/specified/time.rs8
-rw-r--r--components/style/values/specified/ui.rs9
-rw-r--r--components/style_derive/to_css.rs52
-rw-r--r--components/style_traits/cursor.rs40
-rw-r--r--components/style_traits/lib.rs2
-rw-r--r--components/style_traits/values.rs201
-rw-r--r--components/style_traits/viewport.rs11
-rw-r--r--etc/ci/buildbot_steps.yml22
-rw-r--r--ports/cef/eutil.rs2
-rw-r--r--ports/cef/window.rs87
-rw-r--r--ports/cef/wrappers.rs2
-rw-r--r--ports/geckolib/glue.rs90
-rw-r--r--ports/geckolib/tests/build.rs15
-rw-r--r--ports/glutin/window.rs77
-rw-r--r--python/servo/bootstrap_commands.py3
-rw-r--r--python/servo/testing_commands.py40
-rw-r--r--rust-toolchain2
-rw-r--r--servo-tidy.toml6
-rw-r--r--tests/unit/gfx/Cargo.toml16
-rw-r--r--tests/unit/gfx/lib.rs9
-rw-r--r--tests/unit/layout/Cargo.toml14
-rw-r--r--tests/unit/layout/lib.rs7
-rw-r--r--tests/unit/msg/Cargo.toml14
-rw-r--r--tests/unit/msg/lib.rs7
-rw-r--r--tests/unit/net/Cargo.toml28
-rw-r--r--tests/unit/net_traits/Cargo.toml13
-rw-r--r--tests/unit/servo_config/Cargo.toml14
-rw-r--r--tests/unit/servo_config/lib.rs10
-rw-r--r--tests/unit/servo_remutex/Cargo.toml14
-rw-r--r--tests/unit/style/media_queries.rs3
-rw-r--r--tests/unit/style/properties/serialization.rs13
-rw-r--r--tests/wpt/metadata/FileAPI/file/File-constructor.html.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json5984
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/digest/digest.https.worker.js.ini (renamed from tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini)3
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini275
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/idlharness.https.worker.js.ini (renamed from tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini)128
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.https.worker.js.ini (renamed from tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini)3
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.https.worker.js.ini (renamed from tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini)3
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js.ini (renamed from tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini)3
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini5
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini4
-rw-r--r--tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini5
-rw-r--r--tests/wpt/metadata/css/CSS2/fonts/font-variant-applies-to-005.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/lists/list-style-applies-to-012.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/lists/list-style-type-applies-to-012.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini2
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flexbox_inline.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini6
-rw-r--r--tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini8
-rw-r--r--tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini90
-rw-r--r--tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini6
-rw-r--r--tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini13
-rw-r--r--tests/wpt/metadata/css/css-values/lh-unit-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-values/lh-unit-002.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/dom/usvstring-reflection.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini7
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini64
-rw-r--r--tests/wpt/metadata/mozilla-sync4
-rw-r--r--tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini4
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json31
-rw-r--r--tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini2
-rw-r--r--tests/wpt/mozilla/tests/css/issue_18544_flow_list_crash.html16
-rw-r--r--tests/wpt/mozilla/tests/mozilla/http-cache-xhr.html56
-rw-r--r--tests/wpt/mozilla/tests/mozilla/resources/http-cache-trickle.py64
-rw-r--r--tests/wpt/mozilla/tests/mozilla/resources/http-cache.js4
-rw-r--r--tests/wpt/web-platform-tests/.travis.yml2
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js3
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html1
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html1
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/file/File-constructor.html4
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/url/sandboxed-iframe.html5
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js2
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html40
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html2
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.worker.js)2
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html1
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html3
-rw-r--r--tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html1
-rw-r--r--tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/beacon/beacon-common.sub.js8
-rw-r--r--tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js26
-rw-r--r--tests/wpt/web-platform-tests/beacon/resources/beacon.py72
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/README.md36
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html26
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html39
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html39
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html28
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html27
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html24
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html41
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/generate.py189
-rwxr-xr-xtests/wpt/web-platform-tests/bluetooth/generate_test.py56
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html4
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html3
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html13
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html15
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html20
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html24
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template10
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js32
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js39
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js20
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js16
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js25
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js24
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js35
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js33
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js17
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js16
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html18
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html26
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html32
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html20
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html28
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html40
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html22
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html44
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html28
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html46
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html26
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html32
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html31
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html31
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html42
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html40
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html30
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html24
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html28
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html28
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html46
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html46
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html26
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html26
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html32
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html31
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html31
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html31
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html31
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html42
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html42
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html40
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html40
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html30
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html24
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html24
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html29
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html23
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html36
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html20
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html74
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html77
-rw-r--r--tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html18
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html39
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html23
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html23
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html25
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html30
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js51
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html3
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js65
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css3
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers1
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/support/report.py70
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-009.xht4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html20
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-003.xht7
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001-ref.html13
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003-ref.html13
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007-ref.html17
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-019.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-017.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/id-selector-002.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-005.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-004.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-005.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-006.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/comments-005.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/ident-020.xht27
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess40
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html7
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003-ref.html18
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-005.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-007.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-010.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-011.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-012.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-013.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-014.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-015.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017-ref.html17
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001-ref.html20
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html21
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-004.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht10
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht10
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht1
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-001.xht7
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht7
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht7
-rw-r--r--tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-content/element-replacement.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-content/resources/rect.svg3
-rw-r--r--tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html16
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html11
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html12
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/support/style-change.js (renamed from tests/wpt/web-platform-tests/css/css-grid/support/style-change.js)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html64
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js39
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht44
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.pngbin0 -> 1302 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js39
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html52
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html66
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js146
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html49
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html56
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html63
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html67
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html175
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html35
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html81
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html115
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html55
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html15
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html26
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html71
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html61
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html76
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html51
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html81
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html88
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html56
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html41
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html51
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html81
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html88
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html86
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html26
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html26
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/scroll-no-layout-box.html21
-rw-r--r--tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html18
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html28
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html36
-rw-r--r--tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list4
-rw-r--r--tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md35
-rw-r--r--tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html69
-rw-r--r--tests/wpt/web-platform-tests/gamepad/idlharness-manual.html80
-rw-r--r--tests/wpt/web-platform-tests/gamepad/idlharness.html66
-rw-r--r--tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js82
-rw-r--r--tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html10
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html9
-rw-r--r--tests/wpt/web-platform-tests/html/dom/usvstring-reflection.html9
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html37
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py10
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt14
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html30
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html32
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html14
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html32
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html32
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html35
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html28
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html40
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html43
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html2
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html4
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html4
-rw-r--r--tests/wpt/web-platform-tests/images/pattern.mp4bin0 -> 1528 bytes
-rw-r--r--tests/wpt/web-platform-tests/interfaces/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/interfaces/WebCryptoAPI.idl (renamed from tests/wpt/web-platform-tests/WebCryptoAPI/WebCryptoAPI.idl)0
-rw-r--r--tests/wpt/web-platform-tests/interfaces/gamepad.idl33
-rw-r--r--tests/wpt/web-platform-tests/interfaces/html.idl2
-rw-r--r--tests/wpt/web-platform-tests/interfaces/proximity.idl6
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webxr.idl180
-rw-r--r--tests/wpt/web-platform-tests/interfaces/xhr.idl91
-rw-r--r--tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html6
-rw-r--r--tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html (renamed from tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html)8
-rw-r--r--tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html (renamed from tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html)6
-rw-r--r--tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html (renamed from tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock.https.html)4
-rw-r--r--tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html (renamed from tests/wpt/web-platform-tests/keyboard-lock/navigator-cancelKeyboardLock.https.html)4
-rw-r--r--tests/wpt/web-platform-tests/lint.whitelist1
-rw-r--r--tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html1
-rwxr-xr-xtests/wpt/web-platform-tests/media-source/generate-config-change-tests.py226
-rw-r--r--tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js9
-rw-r--r--tests/wpt/web-platform-tests/media-source/mediasource-play.html12
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html1
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html2
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html4
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html37
-rw-r--r--tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html39
-rw-r--r--tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html79
-rw-r--r--tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html2
-rw-r--r--tests/wpt/web-platform-tests/proximity/idlharness.html77
-rw-r--r--tests/wpt/web-platform-tests/proximity/idlharness.https.html37
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html24
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_dedicated_worker.html28
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html24
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_frame_initiator_type.html37
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html33
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html33
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html109
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html84
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_redirects.html53
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html53
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_script_types.html72
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm49
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm10
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resources/empty_script.js0
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm7
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resources/nested.css10
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js21
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js26
-rw-r--r--tests/wpt/web-platform-tests/resources/check-layout-th.js1
-rw-r--r--tests/wpt/web-platform-tests/resources/testharness.js23
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html38
-rw-r--r--tests/wpt/web-platform-tests/server-timing/test_server_timing.html1
-rw-r--r--tests/wpt/web-platform-tests/svg/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/svg/extensibility/foreignObject/properties.svg15
-rw-r--r--tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg10
-rw-r--r--tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg16
-rw-r--r--tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg32
-rw-r--r--tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg39
-rw-r--r--tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg26
-rw-r--r--tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg39
-rw-r--r--tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg33
-rw-r--r--tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg13
-rw-r--r--tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg25
-rw-r--r--tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg24
-rw-r--r--tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg28
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/check_stability.py5
-rwxr-xr-xtests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh1
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/XMLParser.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/manifest.py12
-rw-r--r--tests/wpt/web-platform-tests/tools/runner/report.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/sslutils/base.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/tox.ini30
-rw-r--r--tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py18
-rw-r--r--tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/browser.py58
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/install.py5
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/markdown.py15
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/run.py23
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py16
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/tox.ini41
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/utils.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/virtualenv.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in1
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/README.rst2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py22
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/setup.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/test/test.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/tox.ini39
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py1
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zipbin1237 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py98
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py12
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py8
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py8
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py10
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py5
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py10
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py1
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py8
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py20
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py8
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py57
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py69
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py11
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py8
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py29
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html64
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html19
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html19
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html11
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html16
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html16
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html17
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html17
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html31
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html10
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html5
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html5
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html3
-rw-r--r--tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html12
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py2
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py4
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html403
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html10
-rw-r--r--tests/wpt/web-platform-tests/webxr/interfaces.https.html25
-rw-r--r--tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html15
-rw-r--r--tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html15
-rw-r--r--tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html15
-rw-r--r--tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html15
-rw-r--r--tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html15
-rw-r--r--tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js6
-rw-r--r--tests/wpt/web-platform-tests/xhr/interfaces.html116
-rw-r--r--tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html3
1192 files changed, 66738 insertions, 8023 deletions
diff --git a/.travis.yml b/.travis.yml
index 8b128eeedac..6e1f5e78d32 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,7 +18,6 @@ matrix:
- sudo apt-get update -q
- sudo apt-get install clang-3.9 llvm-3.9 llvm-3.9-runtime -y
- export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
- - export CC=gcc-5 CXX=g++-5
- curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
- source ~/.profile
script:
@@ -43,24 +42,12 @@ matrix:
CARGO_INCREMENTAL=0
addons:
apt:
- sources:
- - ubuntu-toolchain-r-test
- - sourceline: 'ppa:jonathonf/ffmpeg-3'
packages:
- cmake
- - dbus-x11
- freeglut3-dev
- - gcc-5
- - g++-5
- gperf
- - libavcodec-dev
- - libavformat-dev
- libosmesa6-dev
- - libpulse-dev
- libgles2-mesa-dev
- - libswscale-dev
- - libswresample-dev
- - pulseaudio
- python-virtualenv
- xorg-dev
- ccache
diff --git a/Cargo.lock b/Cargo.lock
index 109bda5891c..1598b0b3a7a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -148,7 +148,7 @@ dependencies = [
[[package]]
name = "bindgen"
-version = "0.31.3"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cexpr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -156,7 +156,7 @@ dependencies = [
"clang-sys 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)",
"clap 2.28.0 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -318,20 +318,6 @@ dependencies = [
]
[[package]]
-name = "cbindgen"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "clap 2.28.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "cc"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -486,7 +472,6 @@ dependencies = [
"devtools_traits 0.0.1",
"euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)",
- "gecko-media 0.1.0 (git+https://github.com/servo/gecko-media.git)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
"hyper 0.10.13 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -586,25 +571,6 @@ dependencies = [
]
[[package]]
-name = "cubeb-ffi"
-version = "0.0.2"
-source = "git+https://github.com/djg/cubeb-pulse-rs?branch=dev#71e1ecfad94354b92263b33c232dd45ed0a45ffe"
-dependencies = [
- "bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "cubeb-pulse"
-version = "0.0.2"
-source = "git+https://github.com/djg/cubeb-pulse-rs?branch=dev#71e1ecfad94354b92263b33c232dd45ed0a45ffe"
-dependencies = [
- "cubeb-ffi 0.0.2 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)",
- "pulse 0.2.0 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)",
- "pulse-ffi 0.1.0 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)",
- "semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "darling"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -813,14 +779,6 @@ dependencies = [
]
[[package]]
-name = "encoding_c"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "encoding_rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "encoding_rs"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1015,22 +973,6 @@ dependencies = [
]
[[package]]
-name = "gecko-media"
-version = "0.1.0"
-source = "git+https://github.com/servo/gecko-media.git#fe437442729cfa703b7f40407b449d5373774778"
-dependencies = [
- "bindgen 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "cubeb-pulse 0.0.2 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)",
- "encoding_c 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "mime 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "mp4parse_capi 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
- "walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "geckoservo"
version = "0.0.1"
dependencies = [
@@ -1102,16 +1044,6 @@ dependencies = [
]
[[package]]
-name = "gfx_tests"
-version = "0.0.1"
-dependencies = [
- "cssparser 0.23.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "gfx 0.0.1",
- "ipc-channel 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "style 0.0.1",
-]
-
-[[package]]
name = "gfx_traits"
version = "0.0.1"
dependencies = [
@@ -1493,6 +1425,7 @@ dependencies = [
"servo_config 0.0.1",
"servo_geometry 0.0.1",
"servo_url 0.0.1",
+ "size_of_test 0.0.1",
"smallvec 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"style_traits 0.0.1",
@@ -1502,14 +1435,6 @@ dependencies = [
]
[[package]]
-name = "layout_tests"
-version = "0.0.1"
-dependencies = [
- "layout 0.0.1",
- "size_of_test 0.0.1",
-]
-
-[[package]]
name = "layout_thread"
version = "0.0.1"
dependencies = [
@@ -1530,7 +1455,6 @@ dependencies = [
"metrics 0.0.1",
"msg 0.0.1",
"net_traits 0.0.1",
- "nonzero 0.0.1",
"parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"profile_traits 0.0.1",
"range 0.0.1",
@@ -1692,7 +1616,7 @@ dependencies = [
"cssparser 0.23.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
"hashglobe 0.1.0",
- "mozjs 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mozjs 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.19.0",
"servo_arc 0.1.0",
"smallbitvec 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1800,14 +1724,6 @@ dependencies = [
]
[[package]]
-name = "mime"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "unicase 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "mime_guess"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1861,7 +1777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "mozjs"
-version = "0.1.10"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1897,17 +1813,6 @@ dependencies = [
]
[[package]]
-name = "mp4parse_capi"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cbindgen 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "mp4parse 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "msg"
version = "0.0.1"
dependencies = [
@@ -1916,15 +1821,8 @@ dependencies = [
"malloc_size_of_derive 0.0.1",
"nonzero 0.0.1",
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
- "webrender_api 0.56.1 (git+https://github.com/servo/webrender)",
-]
-
-[[package]]
-name = "msg_tests"
-version = "0.0.1"
-dependencies = [
- "msg 0.0.1",
"size_of_test 0.0.1",
+ "webrender_api 0.56.1 (git+https://github.com/servo/webrender)",
]
[[package]]
@@ -1977,28 +1875,6 @@ dependencies = [
]
[[package]]
-name = "net_tests"
-version = "0.0.1"
-dependencies = [
- "cookie 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "devtools_traits 0.0.1",
- "flate2 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper 0.10.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper-openssl 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "ipc-channel 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "msg 0.0.1",
- "net 0.0.1",
- "net_traits 0.0.1",
- "profile_traits 0.0.1",
- "servo_config 0.0.1",
- "servo_url 0.0.1",
- "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "net_traits"
version = "0.0.1"
dependencies = [
@@ -2022,13 +1898,6 @@ dependencies = [
]
[[package]]
-name = "net_traits_tests"
-version = "0.0.1"
-dependencies = [
- "net_traits 0.0.1",
-]
-
-[[package]]
name = "nodrop"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2374,23 +2243,6 @@ dependencies = [
]
[[package]]
-name = "pulse"
-version = "0.2.0"
-source = "git+https://github.com/djg/cubeb-pulse-rs?branch=dev#71e1ecfad94354b92263b33c232dd45ed0a45ffe"
-dependencies = [
- "bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pulse-ffi 0.1.0 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)",
-]
-
-[[package]]
-name = "pulse-ffi"
-version = "0.1.0"
-source = "git+https://github.com/djg/cubeb-pulse-rs?branch=dev#71e1ecfad94354b92263b33c232dd45ed0a45ffe"
-dependencies = [
- "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "quote"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2564,7 +2416,6 @@ dependencies = [
"encoding_rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "gecko-media 0.1.0 (git+https://github.com/servo/gecko-media.git)",
"gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
"half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2582,10 +2433,9 @@ dependencies = [
"mime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"mime_guess 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"mitochondria 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "mozjs 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mozjs 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
- "nonzero 0.0.1",
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)",
"open 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2644,7 +2494,6 @@ dependencies = [
"metrics 0.0.1",
"msg 0.0.1",
"net_traits 0.0.1",
- "nonzero 0.0.1",
"profile_traits 0.0.1",
"range 0.0.1",
"script_traits 0.0.1",
@@ -2730,19 +2579,6 @@ version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
-name = "semver"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "serde"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2945,13 +2781,6 @@ dependencies = [
]
[[package]]
-name = "servo_config_tests"
-version = "0.0.1"
-dependencies = [
- "servo_config 0.0.1",
-]
-
-[[package]]
name = "servo_geometry"
version = "0.0.1"
dependencies = [
@@ -2981,13 +2810,6 @@ dependencies = [
]
[[package]]
-name = "servo_remutex_tests"
-version = "0.0.1"
-dependencies = [
- "servo_remutex 0.0.1",
-]
-
-[[package]]
name = "servo_url"
version = "0.0.1"
dependencies = [
@@ -3109,7 +2931,7 @@ dependencies = [
"app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"arrayvec 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bindgen 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bindgen 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3265,14 +3087,6 @@ dependencies = [
]
[[package]]
-name = "tempdir"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "tendril"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3354,14 +3168,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
-name = "toml"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "traitobject"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3393,14 +3199,6 @@ dependencies = [
]
[[package]]
-name = "unicase"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "unicode-bidi"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3561,7 +3359,7 @@ dependencies = [
[[package]]
name = "webrender"
version = "0.56.1"
-source = "git+https://github.com/servo/webrender#2547f6fe91da018cd3374acd661effb5f8fbe022"
+source = "git+https://github.com/servo/webrender#e9269c7e06e20363be0b2a2a1be98d292ff7acca"
dependencies = [
"app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3589,7 +3387,7 @@ dependencies = [
[[package]]
name = "webrender_api"
version = "0.56.1"
-source = "git+https://github.com/servo/webrender#2547f6fe91da018cd3374acd661effb5f8fbe022"
+source = "git+https://github.com/servo/webrender#e9269c7e06e20363be0b2a2a1be98d292ff7acca"
dependencies = [
"app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3777,7 +3575,7 @@ dependencies = [
"checksum base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "96434f987501f0ed4eb336a411e0631ecd1afa11574fe148587adc4ff96143c9"
"checksum binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "88ceb0d16c4fd0e42876e298d7d3ce3780dd9ebdcbe4199816a32c77e08597ff"
"checksum bincode 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9a6301db0b49fb63551bc15b5ae348147101cdf323242b93ec7546d5002ff1af"
-"checksum bindgen 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "57253399c086f4f29e57ffd3b5cdbc23a806a00292619351aa4cfa39cb49d4ea"
+"checksum bindgen 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6ed9557522980fcdb4986097c2ea9d2504eafa7e5818f393110205b5325a52ce"
"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
"checksum bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5cde24d1b2e2216a726368b2363a273739c91f4e3eb4e0dd12d672d396ad989"
"checksum bitreader 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "80b13e2ab064ff3aa0bdbf1eff533f9822dc37899821f5f98c67f263eab51707"
@@ -3792,7 +3590,6 @@ dependencies = [
"checksum byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "652805b7e73fada9d85e9a6682a4abd490cb52d96aeecc12e33a0de34dfd0d23"
"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
"checksum caseless 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8950b075cff75cdabadee97148a8b5816c7cf62e5948a6005b5255d564b42fe7"
-"checksum cbindgen 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "89e4b1f207d22a68f2d3d8778a4b83ed7399f81e96b8d0f6c316c945f1c7126f"
"checksum cc 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c674f0870e3dbd4105184ea035acb1c32c8ae69939c9e228d2b11bbfe29efad"
"checksum cexpr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393a5f0088efbe41f9d1fcd062f24e83c278608420e62109feb2c8abee07de7d"
"checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"
@@ -3813,8 +3610,6 @@ dependencies = [
"checksum core-text 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcad23756dd1dc4b47bf6a914ace27aadb8fa68889db5837af2308d018d0467c"
"checksum cssparser 0.23.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a807ac3ab7a217829c2a3b65732b926b2befe6a35f33b4bf8b503692430f223"
"checksum cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "079adec4af52bb5275eadd004292028c79eb3c5f5b4ee8086a36d4197032f6df"
-"checksum cubeb-ffi 0.0.2 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)" = "<none>"
-"checksum cubeb-pulse 0.0.2 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)" = "<none>"
"checksum darling 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9861a8495606435477df581bc858ccf15a3469747edf175b94a4704fd9aaedac"
"checksum darling_core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1486a8b00b45062c997f767738178b43219133dd0c8c826cb811e60563810821"
"checksum darling_macro 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8a86ec160aa0c3dd492dd4a14ec8104ad8f1a9400a820624db857998cc1f80f9"
@@ -3828,7 +3623,6 @@ dependencies = [
"checksum dwmapi-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07c4c7cc7b396419bc0a4d90371d0cee16cb5053b53647d287c0b728000c41fe"
"checksum dwrote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b26e30aaa6bf31ec830db15fec14ed04f0f2ecfcc486ecfce88c55d3389b237f"
"checksum either 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18785c1ba806c258137c937e44ada9ee7e69a37e3c72077542cd2f069d78562a"
-"checksum encoding_c 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "93ec52324ca72f423237a413ca0e1c60654c8b3d0934fcd5fd888508dfcc4ba7"
"checksum encoding_rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f5215aabf22b83153be3ee44dfe3f940214541b2ce13d419c55e7a115c8c51a9"
"checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c"
"checksum energymon 0.3.0 (git+https://github.com/energymon/energymon-rust.git)" = "<none>"
@@ -3852,7 +3646,6 @@ dependencies = [
"checksum gaol 0.0.1 (git+https://github.com/servo/gaol)" = "<none>"
"checksum gcc 0.3.47 (registry+https://github.com/rust-lang/crates.io-index)" = "5773372df827453bc38d4fd8efe425c7f28b1f54468816183fc8716cfb90bd30"
"checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
-"checksum gecko-media 0.1.0 (git+https://github.com/servo/gecko-media.git)" = "<none>"
"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
"checksum gif 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8a80d6fe9e52f637df9afd4779449a7be17c39cc9c35b01589bb833f956ba596"
"checksum gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f5c19cde55637681450c92f7a05ea16c78e2b6d0587e601ec1ebdab6960854b"
@@ -3903,17 +3696,15 @@ dependencies = [
"checksum memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4"
"checksum metadeps 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "73b122901b3a675fac8cecf68dcb2f0d3036193bc861d1ac0e1c337f7d5254c2"
"checksum mime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d69889cdc6336ed56b174514ce876c4c3dc564cc23dd872e7bca589bb2a36c8"
-"checksum mime 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e2e00e17be181010a91dbfefb01660b17311059dc8c7f48b9017677721e732bd"
"checksum mime_guess 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76da6df85047af8c0edfa53f48eb1073012ce1cc95c8fedc0a374f659a89dd65"
"checksum miniz-sys 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "28eaee17666671fa872e567547e8428e83308ebe5808cdf6a0e28397dbe2c726"
"checksum mio 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9e965267d4d58496fc4f740e9861118367f13570cadf66316ed2c3f2f14d87c7"
"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
"checksum mitochondria 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9de3eca27871df31c33b807f834b94ef7d000956f57aa25c5aed9c5f0aae8f6f"
-"checksum mozjs 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2cd8370617e9a151ed9e7b49f38092075d0ae80bdf9f1dcd807a60cc9c3b7151"
+"checksum mozjs 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "199f707066bf05b559ef6e46741c20e4f7bca8ae3a9c9d953d728dbb840f4eaa"
"checksum mozjs_sys 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef1e24df9f76502cd4459919098ec1ac3af75ce694ec5b8837aa91f69f2ad0eb"
"checksum mp3-metadata 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ab5f1d2693586420208d1200ce5a51cd44726f055b635176188137aff42c7de"
"checksum mp4parse 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f821e3799bc0fd16d9b861fb02fa7ee1b5fba29f45ad591dade105c48ca9a1a0"
-"checksum mp4parse_capi 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "395247952fbdb68f933dc008927c635d3c87386af3bccd6fb7ae555137028449"
"checksum net2 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)" = "bc01404e7568680f1259aa5729539f221cb1e6d047a0d9053cab4be8a73b5d67"
"checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2"
"checksum nom 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b8c256fd9471521bcb84c3cdba98921497f1a331cbc15b8030fc63b82050ce"
@@ -3950,8 +3741,6 @@ dependencies = [
"checksum png 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925"
"checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
"checksum procedural-masquerade 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c93cdc1fb30af9ddf3debc4afbdb0f35126cbd99daa229dd76cdd5349b41d989"
-"checksum pulse 0.2.0 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)" = "<none>"
-"checksum pulse-ffi 0.1.0 (git+https://github.com/djg/cubeb-pulse-rs?branch=dev)" = "<none>"
"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
"checksum rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "022e0636ec2519ddae48154b028864bdce4eaf7d35226ab8e65c611be97b189d"
"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8"
@@ -3972,8 +3761,6 @@ dependencies = [
"checksum scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef399c8893e8cb7aa9696e895427fab3a6bf265977bb96e126f24ddd2cda85a"
"checksum scopeguard 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c79eb2c3ac4bc2507cda80e7f3ac5b88bd8eae4c0914d5663e6a8933994be918"
"checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
-"checksum semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
"checksum serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "db99f3919e20faa51bb2996057f5031d8685019b5a06139b1ce761da671b8526"
"checksum serde_bytes 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a73f5ad9bb83e1e407254c7a355f4efdaffe3c1442fc0657ddb8b9b6b225655"
"checksum serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "f4ba7591cfe93755e89eeecdbcc668885624829b020050e6aec99c2a03bd3fd0"
@@ -4005,7 +3792,6 @@ dependencies = [
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
"checksum synstructure 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cf318c34a2f8381a4f3d4db2c91b45bca2b1cd8cbe56caced900647be164800c"
-"checksum tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff662132d6"
"checksum tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9de21546595a0873061940d994bbbc5c35f024ae4fd61ec5c5b159115684f508"
"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
"checksum textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0b59b6b4b44d867f1370ef1bd91bfb262bf07bf0ae65c202ea2fbc16153b693"
@@ -4016,13 +3802,11 @@ dependencies = [
"checksum time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "ffd7ccbf969a892bf83f1e441126968a07a3941c24ff522a26af9f9f4585d1a3"
"checksum tinyfiledialogs 2.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d401358cd71aca93d5f4fccd3db5b87d970ae70fe457911929d99f4a87f7531"
"checksum toml 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "736b60249cb25337bc196faa43ee12c705e426f3d55c214d73a4e7be06f92cb4"
-"checksum toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"
"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
"checksum truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)" = "acec30350633d6dac9dc1a625786b6cbe9150664be941aac2c35ad7199eab877"
"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
"checksum uluru 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "519130f0ea964ba540a9d8af1373738c2226f1d465eda07e61db29feb5479db9"
"checksum unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "13a5906ca2b98c799f4b1ab4557b76367ebd6ae5ef14930ec841c74aed5f3764"
-"checksum unicase 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2e01da42520092d0cd2d6ac3ae69eb21a22ad43ff195676b86f8c37f487d6b80"
"checksum unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a6a2c4e3710edd365cd7e78383153ed739fa31af19f9172f72d3575060f5a43a"
"checksum unicode-normalization 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f"
"checksum unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5430ae21ef212551680d0021fc7dbd936e8b268c5ea8fdae8814e0b2496d80f"
diff --git a/README.md b/README.md
index 4a1f43fbd30..95d6ddcdee8 100644
--- a/README.md
+++ b/README.md
@@ -82,10 +82,7 @@ sudo apt install git curl freeglut3-dev autoconf libx11-dev \
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
gperf g++ build-essential cmake virtualenv python-pip \
libssl1.0-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \
- libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev \
- pulseaudio dbus-x11 libavcodec-dev libavformat-dev \
- libavutil-dev libswresample-dev libswscale-dev libdbus-1-dev \
- libpulse-dev clang
+ libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev
```
If you using a version prior to **Ubuntu 17.04** or **Debian Sid**, replace `libssl1.0-dev` with `libssl-dev`.
@@ -101,7 +98,7 @@ sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \
freetype-devel mesa-libGL-devel mesa-libEGL-devel glib2-devel libX11-devel libXrandr-devel gperf \
fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \
rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa-devel \
- dbus-devel ncurses-devel pulseaudio-libs-devel clang clang-libs
+ dbus-devel ncurses-devel
```
#### On CentOS
@@ -110,30 +107,19 @@ sudo yum install curl freeglut-devel libtool gcc-c++ libXi-devel \
freetype-devel mesa-libGL-devel mesa-libEGL-devel glib2-devel libX11-devel libXrandr-devel gperf \
fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \
rpm-build openssl-devel cmake3 bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa-devel \
- dbus-devel ncurses-devel python34 pulseaudio-libs-devel clang clang-libs llvm-toolset-7
+ dbus-devel ncurses-devel python34
```
-
-Build inside `llvm-toolset` and `devtoolset`:
-```
-scl enable devtoolset-7 llvm-toolset-7 bash
-```
-with the following environmental variables set:
-```
-export CMAKE=cmake3
-export LIBCLANG_PATH=/opt/rh/llvm-toolset-7/root/usr/lib64
-```
-
#### On openSUSE Linux
``` sh
sudo zypper install libX11-devel libexpat-devel libbz2-devel Mesa-libEGL-devel Mesa-libGL-devel cabextract cmake \
dbus-1-devel fontconfig-devel freetype-devel gcc-c++ git glib2-devel gperf \
harfbuzz-devel libOSMesa-devel libXcursor-devel libXi-devel libXmu-devel libXrandr-devel libopenssl-devel \
- python-pip python-virtualenv rpm-build glu-devel llvm-clang libclang
+ python-pip python-virtualenv rpm-build glu-devel
```
#### On Arch Linux
``` sh
-sudo pacman -S --needed base-devel git python2 python2-virtualenv python2-pip mesa cmake bzip2 libxmu glu pkg-config clang
+sudo pacman -S --needed base-devel git python2 python2-virtualenv python2-pip mesa cmake bzip2 libxmu glu pkg-config
```
#### On Gentoo Linux
@@ -141,11 +127,7 @@ sudo pacman -S --needed base-devel git python2 python2-virtualenv python2-pip me
sudo emerge net-misc/curl media-libs/freeglut \
media-libs/freetype media-libs/mesa dev-util/gperf \
dev-python/virtualenv dev-python/pip dev-libs/openssl \
- x11-libs/libXmu media-libs/glu x11-base/xorg-server sys-devel/clang
-```
-with the following environment variable set:
-```sh
-export LIBCLANG_PATH="/usr/lib64/llvm/*/lib64"
+ x11-libs/libXmu media-libs/glu x11-base/xorg-server
```
#### On Windows (MSVC)
diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs
index e03021761be..730071421d9 100644
--- a/components/canvas/webgl_thread.rs
+++ b/components/canvas/webgl_thread.rs
@@ -353,7 +353,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
self.dom_outputs.insert(pipeline_id, DOMToTextureData {
context_id, texture_id, document_id, size
});
- self.webrender_api.enable_frame_output(document_id, pipeline_id, true);
+ let mut txn = webrender_api::Transaction::new();
+ txn.enable_frame_output(pipeline_id, true);
+ self.webrender_api.send_transaction(document_id, txn);
},
DOMToTextureCommand::Lock(pipeline_id, gl_sync, sender) => {
let contexts = &self.contexts;
@@ -376,7 +378,9 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
if let Some((pipeline_id, document_id)) = self.dom_outputs.iter()
.find(|&(_, v)| v.texture_id == texture_id)
.map(|(k, v)| (*k, v.document_id)) {
- self.webrender_api.enable_frame_output(document_id, pipeline_id, false);
+ let mut txn = webrender_api::Transaction::new();
+ txn.enable_frame_output(pipeline_id, false);
+ self.webrender_api.send_transaction(document_id, txn);
self.dom_outputs.remove(&pipeline_id);
}
},
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs
index 496a75b0cc3..d964c0bdbee 100644
--- a/components/compositing/compositor.rs
+++ b/components/compositing/compositor.rs
@@ -29,7 +29,7 @@ use std::rc::Rc;
use std::sync::mpsc::Sender;
use std::time::{Duration, Instant};
use style_traits::{CSSPixel, DevicePixel, PinchZoomFactor};
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use style_traits::viewport::ViewportConstraints;
use time::{precise_time_ns, precise_time_s};
use touch::{TouchHandler, TouchAction};
@@ -609,8 +609,10 @@ impl<Window: WindowMethods> IOCompositor<Window> {
self.root_pipeline = Some(frame_tree.pipeline.clone());
let pipeline_id = frame_tree.pipeline.id.to_webrender();
- self.webrender_api.set_root_pipeline(self.webrender_document, pipeline_id);
- self.webrender_api.generate_frame(self.webrender_document, None);
+ let mut txn = webrender_api::Transaction::new();
+ txn.set_root_pipeline(pipeline_id);
+ txn.generate_frame();
+ self.webrender_api.send_transaction(self.webrender_document, txn);
self.create_pipeline_details_for_frame_tree(&frame_tree);
@@ -769,7 +771,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
warn!("Sending event to constellation failed ({}).", e);
}
- if let Some(cursor) = Cursor::from_u8(item.tag.1 as _).ok() {
+ if let Some(cursor) = CursorKind::from_u8(item.tag.1 as _).ok() {
let msg = ConstellationMsg::SetCursor(cursor);
if let Err(e) = self.constellation_chan.send(msg) {
warn!("Sending event to constellation failed ({}).", e);
@@ -992,7 +994,9 @@ impl<Window: WindowMethods> IOCompositor<Window> {
(combined_event.cursor.to_f32() / self.scale).to_untyped();
let location = webrender_api::ScrollLocation::Delta(delta);
let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
- self.webrender_api.scroll(self.webrender_document, location, cursor, combined_event.phase);
+ let mut txn = webrender_api::Transaction::new();
+ txn.scroll(location, cursor, combined_event.phase);
+ self.webrender_api.send_transaction(self.webrender_document, txn);
last_combined_event = None
}
}
@@ -1047,7 +1051,9 @@ impl<Window: WindowMethods> IOCompositor<Window> {
};
let cursor = (combined_event.cursor.to_f32() / self.scale).to_untyped();
let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
- self.webrender_api.scroll(self.webrender_document, scroll_location, cursor, combined_event.phase);
+ let mut txn = webrender_api::Transaction::new();
+ txn.scroll(scroll_location, cursor, combined_event.phase);
+ self.webrender_api.send_transaction(self.webrender_document, txn);
self.waiting_for_results_of_scroll = true
}
@@ -1145,7 +1151,10 @@ impl<Window: WindowMethods> IOCompositor<Window> {
fn update_page_zoom_for_webrender(&mut self) {
let page_zoom = webrender_api::ZoomFactor::new(self.page_zoom.get());
- self.webrender_api.set_page_zoom(self.webrender_document, page_zoom);
+
+ let mut txn = webrender_api::Transaction::new();
+ txn.set_page_zoom(page_zoom);
+ self.webrender_api.send_transaction(self.webrender_document, txn);
}
/// Simulate a pinch zoom
@@ -1443,7 +1452,9 @@ impl<Window: WindowMethods> IOCompositor<Window> {
}
if self.webrender.layers_are_bouncing_back() {
- self.webrender_api.tick_scrolling_bounce_animations(self.webrender_document);
+ let mut txn = webrender_api::Transaction::new();
+ txn.tick_scrolling_bounce_animations();
+ self.webrender_api.send_transaction(self.webrender_document, txn);
self.send_viewport_rects()
}
}
@@ -1537,7 +1548,10 @@ impl<Window: WindowMethods> IOCompositor<Window> {
};
flags.toggle(flag);
self.webrender.set_debug_flags(flags);
- self.webrender_api.generate_frame(self.webrender_document, None);
+
+ let mut txn = webrender_api::Transaction::new();
+ txn.generate_frame();
+ self.webrender_api.send_transaction(self.webrender_document, txn);
}
}
diff --git a/components/compositing/compositor_thread.rs b/components/compositing/compositor_thread.rs
index 31ac2f32783..2e3d69f8057 100644
--- a/components/compositing/compositor_thread.rs
+++ b/components/compositing/compositor_thread.rs
@@ -17,7 +17,7 @@ use script_traits::{AnimationState, ConstellationMsg, EventResult, LoadData};
use servo_url::ServoUrl;
use std::fmt::{Debug, Error, Formatter};
use std::sync::mpsc::{Receiver, Sender};
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use style_traits::viewport::ViewportConstraints;
use webrender;
use webrender_api;
@@ -133,7 +133,7 @@ pub enum EmbedderMsg {
/// Sends an unconsumed key event back to the embedder.
KeyEvent(Option<TopLevelBrowsingContextId>, Option<char>, Key, KeyState, KeyModifiers),
/// Changes the cursor.
- SetCursor(Cursor),
+ SetCursor(CursorKind),
/// A favicon was detected
NewFavicon(TopLevelBrowsingContextId, ServoUrl),
/// <head> tag finished parsing
diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs
index 5a2f0bc8237..94e9bd19865 100644
--- a/components/compositing/windowing.rs
+++ b/components/compositing/windowing.rs
@@ -17,7 +17,7 @@ use servo_url::ServoUrl;
use std::fmt::{Debug, Error, Formatter};
use std::rc::Rc;
use style_traits::DevicePixel;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use webrender_api::{DeviceUintSize, DeviceUintRect, ScrollLocation};
#[derive(Clone)]
@@ -173,7 +173,7 @@ pub trait WindowMethods {
fn prepare_for_composite(&self, width: usize, height: usize) -> bool;
/// Sets the cursor to be used in the window.
- fn set_cursor(&self, cursor: Cursor);
+ fn set_cursor(&self, cursor: CursorKind);
/// Process a key event.
fn handle_key(&self, ctx: Option<TopLevelBrowsingContextId>, ch: Option<char>, key: Key, mods: KeyModifiers);
diff --git a/components/config/Cargo.toml b/components/config/Cargo.toml
index e09c78ecbb8..1d5c48d605f 100644
--- a/components/config/Cargo.toml
+++ b/components/config/Cargo.toml
@@ -8,6 +8,8 @@ publish = false
[lib]
name = "servo_config"
path = "lib.rs"
+test = false
+doctest = false
[dependencies]
euclid = "0.16"
diff --git a/tests/unit/servo_config/opts.rs b/components/config/tests/opts.rs
index b533429df5b..53a049e103c 100644
--- a/tests/unit/servo_config/opts.rs
+++ b/components/config/tests/opts.rs
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate servo_config;
+
use servo_config::opts::{parse_url_or_filename, parse_pref_from_command_line};
use servo_config::prefs::{PrefValue, PREFS};
use std::path::Path;
diff --git a/tests/unit/servo_config/prefs.rs b/components/config/tests/prefs.rs
index 8b6b7295815..c9857345bb2 100644
--- a/tests/unit/servo_config/prefs.rs
+++ b/components/config/tests/prefs.rs
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate servo_config;
+
use servo_config::basedir;
use servo_config::prefs::{PREFS, PrefValue, read_prefs_from_file};
use std::fs::{self, File};
diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml
index 7cadee11723..fda299e3840 100644
--- a/components/constellation/Cargo.toml
+++ b/components/constellation/Cargo.toml
@@ -43,6 +43,3 @@ webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios")))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}
-
-[target.'cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))'.dependencies]
-gecko-media = {git = "https://github.com/servo/gecko-media.git"}
diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs
index ec023e3971b..09bce57bb90 100644
--- a/components/constellation/constellation.rs
+++ b/components/constellation/constellation.rs
@@ -108,8 +108,6 @@ use debugger;
use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg};
use euclid::{Size2D, TypedSize2D, TypedScale};
use event_loop::EventLoop;
-#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
-use gecko_media::GeckoMedia;
use gfx::font_cache_thread::FontCacheThread;
use gfx_traits::Epoch;
use ipc_channel::{Error as IpcError};
@@ -154,7 +152,7 @@ use std::sync::Arc;
use std::sync::mpsc::{Receiver, Sender, channel};
use std::thread;
use style_traits::CSSPixel;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use style_traits::viewport::ViewportConstraints;
use timer_scheduler::TimerScheduler;
use webrender_api;
@@ -1483,16 +1481,6 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
debug!("Asking compositor to complete shutdown.");
self.compositor_proxy.send(ToCompositorMsg::ShutdownComplete);
-
- #[cfg(all(
- any(target_os = "macos", target_os = "linux"),
- not(any(target_arch = "arm", target_arch = "aarch64")),
- ))]
- {
- if let Err(()) = GeckoMedia::shutdown() {
- warn!("Media stack shutdown failed.");
- }
- }
}
fn handle_pipeline_exited(&mut self, pipeline_id: PipelineId) {
@@ -1818,7 +1806,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
self.compositor_proxy.send(ToCompositorMsg::PendingPaintMetric(pipeline_id, epoch))
}
- fn handle_set_cursor_msg(&mut self, cursor: Cursor) {
+ fn handle_set_cursor_msg(&mut self, cursor: CursorKind) {
self.embedder_proxy.send(EmbedderMsg::SetCursor(cursor))
}
diff --git a/components/constellation/lib.rs b/components/constellation/lib.rs
index 59ef714ef88..a0fd36325a8 100644
--- a/components/constellation/lib.rs
+++ b/components/constellation/lib.rs
@@ -17,8 +17,6 @@ extern crate devtools_traits;
extern crate euclid;
#[cfg(all(not(target_os = "windows"), not(target_os = "ios")))]
extern crate gaol;
-#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
-extern crate gecko_media;
extern crate gfx;
extern crate gfx_traits;
extern crate hyper;
diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml
index c9220a2c080..5eea73f321f 100644
--- a/components/gfx/Cargo.toml
+++ b/components/gfx/Cargo.toml
@@ -9,6 +9,8 @@ publish = false
[lib]
name = "gfx"
path = "lib.rs"
+test = false
+doctest = false
[features]
unstable = ["simd"]
diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs
index edde7e118f7..d481ef17017 100644
--- a/components/gfx/display_list/mod.rs
+++ b/components/gfx/display_list/mod.rs
@@ -30,7 +30,7 @@ use std::f32;
use std::fmt;
use std::sync::Arc;
use style::values::computed::Filter;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use text::TextRun;
use text::glyph::ByteIndex;
use webrender_api::{BoxShadowClipMode, ClipId, ColorF, ExtendMode, GradientStop, ImageKey};
@@ -646,7 +646,7 @@ pub struct DisplayItemMetadata {
pub node: OpaqueNode,
/// The value of the `cursor` property when the mouse hovers over this display item. If `None`,
/// this display item is ineligible for pointer events (`pointer-events: none`).
- pub pointing: Option<Cursor>,
+ pub pointing: Option<CursorKind>,
}
/// Paints a solid color.
diff --git a/tests/unit/gfx/text_util.rs b/components/gfx/tests/text_util.rs
index f0253179145..7729a6f78a7 100644
--- a/tests/unit/gfx/text_util.rs
+++ b/components/gfx/tests/text_util.rs
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate gfx;
+
use gfx::text::util::{CompressionMode, transform_text};
#[test]
diff --git a/components/gfx/text/glyph.rs b/components/gfx/text/glyph.rs
index e765f48ee20..0c3386aca7d 100644
--- a/components/gfx/text/glyph.rs
+++ b/components/gfx/text/glyph.rs
@@ -392,7 +392,7 @@ impl<'a> GlyphInfo<'a> {
/// Simple glyphs are stored inline in the `entry_buffer`, detailed glyphs are
/// stored as pointers into the `detail_store`.
///
-/// ~~~ignore
+/// ~~~ascii
/// +- GlyphStore --------------------------------+
/// | +---+---+---+---+---+---+---+ |
/// | entry_buffer: | | s | | s | | s | s | | d = detailed
diff --git a/components/hashglobe/src/shim.rs b/components/hashglobe/src/shim.rs
index 08fbf32b72f..146ff851a0e 100644
--- a/components/hashglobe/src/shim.rs
+++ b/components/hashglobe/src/shim.rs
@@ -1,5 +1,6 @@
use std::marker::PhantomData;
+// FIXME: remove this and use std::ptr::NonNull when Firefox requires Rust 1.25+
pub struct NonZeroPtr<T: 'static>(&'static T);
impl<T: 'static> NonZeroPtr<T> {
@@ -57,4 +58,4 @@ impl<'a, T> From<&'a mut T> for Shared<T> {
fn from(reference: &'a mut T) -> Self {
unsafe { Shared::new_unchecked(reference) }
}
-} \ No newline at end of file
+}
diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml
index 60cf29ca3c2..14532a1da52 100644
--- a/components/layout/Cargo.toml
+++ b/components/layout/Cargo.toml
@@ -8,6 +8,8 @@ publish = false
[lib]
name = "layout"
path = "lib.rs"
+test = false
+doctest = false
[dependencies]
app_units = "0.6.1"
@@ -46,3 +48,6 @@ style_traits = {path = "../style_traits"}
unicode-bidi = {version = "0.3", features = ["with_serde"]}
unicode-script = {version = "0.1", features = ["harfbuzz"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
+
+[dev-dependencies]
+size_of_test = {path = "../size_of_test"}
diff --git a/components/layout/animation.rs b/components/layout/animation.rs
index a3c364a7851..27497811489 100644
--- a/components/layout/animation.rs
+++ b/components/layout/animation.rs
@@ -15,6 +15,7 @@ use script_traits::{AnimationState, ConstellationControlMsg, LayoutMsg as Conste
use script_traits::UntrustedNodeAddress;
use std::sync::mpsc::Receiver;
use style::animation::{Animation, update_style_for_animation};
+use style::dom::TElement;
use style::font_metrics::ServoMetricsProvider;
use style::selector_parser::RestyleDamage;
use style::timer::Timer;
@@ -22,14 +23,19 @@ use style::timer::Timer;
/// Processes any new animations that were discovered after style recalculation.
/// Also expire any old animations that have completed, inserting them into
/// `expired_animations`.
-pub fn update_animation_state(constellation_chan: &IpcSender<ConstellationMsg>,
- script_chan: &IpcSender<ConstellationControlMsg>,
- running_animations: &mut FnvHashMap<OpaqueNode, Vec<Animation>>,
- expired_animations: &mut FnvHashMap<OpaqueNode, Vec<Animation>>,
- mut newly_transitioning_nodes: Option<&mut Vec<UntrustedNodeAddress>>,
- new_animations_receiver: &Receiver<Animation>,
- pipeline_id: PipelineId,
- timer: &Timer) {
+pub fn update_animation_state<E>(
+ constellation_chan: &IpcSender<ConstellationMsg>,
+ script_chan: &IpcSender<ConstellationControlMsg>,
+ running_animations: &mut FnvHashMap<OpaqueNode, Vec<Animation>>,
+ expired_animations: &mut FnvHashMap<OpaqueNode, Vec<Animation>>,
+ mut newly_transitioning_nodes: Option<&mut Vec<UntrustedNodeAddress>>,
+ new_animations_receiver: &Receiver<Animation>,
+ pipeline_id: PipelineId,
+ timer: &Timer,
+)
+where
+ E: TElement,
+{
let mut new_running_animations = vec![];
while let Ok(animation) = new_animations_receiver.try_recv() {
let mut should_push = true;
@@ -144,22 +150,25 @@ pub fn update_animation_state(constellation_chan: &IpcSender<ConstellationMsg>,
/// Recalculates style for a set of animations. This does *not* run with the DOM
/// lock held.
-// NB: This is specific for SelectorImpl, since the layout context and the
-// flows are SelectorImpl specific too. If that goes away at some point,
-// this should be made generic.
-pub fn recalc_style_for_animations(context: &LayoutContext,
- flow: &mut Flow,
- animations: &FnvHashMap<OpaqueNode,
- Vec<Animation>>) {
+pub fn recalc_style_for_animations<E>(
+ context: &LayoutContext,
+ flow: &mut Flow,
+ animations: &FnvHashMap<OpaqueNode, Vec<Animation>>,
+)
+where
+ E: TElement,
+{
let mut damage = RestyleDamage::empty();
flow.mutate_fragments(&mut |fragment| {
if let Some(ref animations) = animations.get(&fragment.node) {
for animation in animations.iter() {
let old_style = fragment.style.clone();
- update_style_for_animation(&context.style_context,
- animation,
- &mut fragment.style,
- &ServoMetricsProvider);
+ update_style_for_animation::<E>(
+ &context.style_context,
+ animation,
+ &mut fragment.style,
+ &ServoMetricsProvider,
+ );
let difference =
RestyleDamage::compute_style_difference(
&old_style,
@@ -173,6 +182,6 @@ pub fn recalc_style_for_animations(context: &LayoutContext,
let base = flow.mut_base();
base.restyle_damage.insert(damage);
for kid in base.children.iter_mut() {
- recalc_style_for_animations(context, kid, animations)
+ recalc_style_for_animations::<E>(context, kid, animations)
}
}
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index 79d72c8471c..bbbd9287e13 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -51,6 +51,7 @@ use style::computed_values::float::T as Float;
use style::computed_values::list_style_position::T as ListStylePosition;
use style::computed_values::position::T as Position;
use style::context::SharedStyleContext;
+use style::dom::TElement;
use style::logical_geometry::Direction;
use style::properties::ComputedValues;
use style::properties::longhands::list_style_image;
@@ -140,22 +141,22 @@ pub struct InlineFragmentsConstructionResult {
///
/// The resulting `ConstructionItem` for the outer `span` will be:
///
-/// ```ignore
+/// ```rust,ignore
/// ConstructionItem::InlineFragments(
-/// InlineFragmentsConstructionResult{
+/// InlineFragmentsConstructionResult {
/// splits: linked_list![
-/// InlineBlockSplit{
-/// predecessors: IntermediateInlineFragments{
+/// InlineBlockSplit {
+/// predecessors: IntermediateInlineFragments {
/// fragments: linked_list![A],
-/// absolute_descendents: AbsoluteDescendents{
+/// absolute_descendents: AbsoluteDescendents {
/// descendant_links: vec![]
-/// }
+/// },
/// },
-/// flow: B
+/// flow: B,
/// }
/// ],
/// fragments: linked_list![C],
-/// }
+/// },
/// )
/// ```
#[derive(Clone)]
@@ -170,11 +171,12 @@ pub struct InlineBlockSplit {
impl InlineBlockSplit {
/// Flushes the given accumulator to the new split and makes a new accumulator to hold any
/// subsequent fragments.
- fn new<ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>(fragment_accumulator: &mut InlineFragmentsAccumulator,
- node: &ConcreteThreadSafeLayoutNode,
- style_context: &SharedStyleContext,
- flow: FlowRef)
- -> InlineBlockSplit {
+ fn new<ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>(
+ fragment_accumulator: &mut InlineFragmentsAccumulator,
+ node: &ConcreteThreadSafeLayoutNode,
+ style_context: &SharedStyleContext,
+ flow: FlowRef,
+ ) -> InlineBlockSplit {
fragment_accumulator.enclosing_node.as_mut().expect(
"enclosing_node is None; Are {ib} splits being generated outside of an inline node?"
).flags.remove(InlineFragmentNodeFlags::LAST_FRAGMENT_OF_ELEMENT);
@@ -183,7 +185,9 @@ impl InlineBlockSplit {
predecessors: mem::replace(
fragment_accumulator,
InlineFragmentsAccumulator::from_inline_node(
- node, style_context)).to_intermediate_inline_fragments(style_context),
+ node,
+ style_context,
+ )).to_intermediate_inline_fragments::<ConcreteThreadSafeLayoutNode>(style_context),
flow: flow,
};
@@ -280,8 +284,13 @@ impl InlineFragmentsAccumulator {
self.fragments.absolute_descendants.push_descendants(fragments.absolute_descendants);
}
- fn to_intermediate_inline_fragments(self, context: &SharedStyleContext)
- -> IntermediateInlineFragments {
+ fn to_intermediate_inline_fragments<N>(
+ self,
+ context: &SharedStyleContext,
+ ) -> IntermediateInlineFragments
+ where
+ N: ThreadSafeLayoutNode,
+ {
let InlineFragmentsAccumulator {
mut fragments,
enclosing_node,
@@ -308,9 +317,21 @@ impl InlineFragmentsAccumulator {
if let Some((start, end)) = bidi_control_chars {
fragments.fragments.push_front(
- control_chars_to_fragment(&enclosing_node, context, start, restyle_damage));
+ control_chars_to_fragment::<N::ConcreteElement>(
+ &enclosing_node,
+ context,
+ start,
+ restyle_damage,
+ )
+ );
fragments.fragments.push_back(
- control_chars_to_fragment(&enclosing_node, context, end, restyle_damage));
+ control_chars_to_fragment::<N::ConcreteElement>(
+ &enclosing_node,
+ context,
+ end,
+ restyle_damage,
+ )
+ );
}
}
fragments
@@ -402,13 +423,18 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
/// `#[inline(always)]` because this is performance critical and LLVM will not inline it
/// otherwise.
#[inline(always)]
- fn flush_inline_fragments_to_flow(&mut self,
- fragment_accumulator: InlineFragmentsAccumulator,
- flow: &mut FlowRef,
- absolute_descendants: &mut AbsoluteDescendants,
- legalizer: &mut Legalizer,
- node: &ConcreteThreadSafeLayoutNode) {
- let mut fragments = fragment_accumulator.to_intermediate_inline_fragments(self.style_context());
+ fn flush_inline_fragments_to_flow(
+ &mut self,
+ fragment_accumulator: InlineFragmentsAccumulator,
+ flow: &mut FlowRef,
+ absolute_descendants: &mut AbsoluteDescendants,
+ legalizer: &mut Legalizer,
+ node: &ConcreteThreadSafeLayoutNode,
+ ) {
+ let mut fragments =
+ fragment_accumulator.to_intermediate_inline_fragments::<ConcreteThreadSafeLayoutNode>(
+ self.style_context(),
+ );
if fragments.is_empty() {
return
};
@@ -479,7 +505,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
}
inline_flow_ref.finish();
- legalizer.add_child(self.style_context(), flow, inline_flow_ref)
+ legalizer.add_child::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ self.style_context(),
+ flow,
+ inline_flow_ref,
+ )
}
fn build_block_flow_using_construction_result_of_child(
@@ -512,7 +542,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
legalizer,
node);
}
- legalizer.add_child(self.style_context(), flow, kid_flow)
+ legalizer.add_child::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ self.style_context(),
+ flow,
+ kid_flow,
+ )
}
abs_descendants.push_descendants(kid_abs_descendants);
}
@@ -546,7 +580,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
node);
// Push the flow generated by the {ib} split onto our list of flows.
- legalizer.add_child(self.style_context(), flow, kid_flow)
+ legalizer.add_child::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ self.style_context(),
+ flow,
+ kid_flow,
+ )
}
// Add the fragments to the list we're maintaining.
@@ -666,11 +704,17 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
let context = self.style_context();
let mut style = node.style(context);
- style = context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoText, &style);
+ style = context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &context.guards,
+ &PseudoElement::ServoText,
+ &style,
+ );
if node_is_input_or_text_area {
- style = context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoInputText, &style)
+ style = context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &context.guards,
+ &PseudoElement::ServoInputText,
+ &style,
+ )
}
self.create_fragments_for_node_text_content(&mut fragments, node, &style)
@@ -878,7 +922,9 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
let construction_item = ConstructionItem::InlineFragments(
InlineFragmentsConstructionResult {
splits: opt_inline_block_splits,
- fragments: fragment_accumulator.to_intermediate_inline_fragments(self.style_context()),
+ fragments: fragment_accumulator.to_intermediate_inline_fragments::<ConcreteThreadSafeLayoutNode>(
+ self.style_context(),
+ ),
});
ConstructionResult::ConstructionItem(construction_item)
} else {
@@ -902,9 +948,13 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
return ConstructionResult::ConstructionItem(ConstructionItem::Whitespace(
node.opaque(),
node.get_pseudo_element_type(),
- context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoText, &style),
- node.restyle_damage()))
+ context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &context.guards,
+ &PseudoElement::ServoText,
+ &style,
+ ),
+ node.restyle_damage(),
+ ))
}
// If this is generated content, then we need to initialize the accumulator with the
@@ -913,8 +963,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
let mut fragments = IntermediateInlineFragments::new();
match (node.get_pseudo_element_type(), node.type_id()) {
(_, Some(LayoutNodeType::Text)) => {
- let text_style = context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoText, &style);
+ let text_style = context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &context.guards,
+ &PseudoElement::ServoText,
+ &style,
+ );
self.create_fragments_for_node_text_content(&mut fragments, node, &text_style)
}
(PseudoElementType::Normal, _) => {
@@ -949,8 +1002,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
let context = self.style_context();
let style = node.style(context);
- let style = context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoInlineBlockWrapper, &style);
+ let style = context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &context.guards,
+ &PseudoElement::ServoInlineBlockWrapper,
+ &style,
+ );
let fragment_info = SpecificFragmentInfo::InlineBlock(InlineBlockFragmentInfo::new(
block_flow));
let fragment = Fragment::from_opaque_node_and_style(node.opaque(),
@@ -967,7 +1023,8 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
let construction_item =
ConstructionItem::InlineFragments(InlineFragmentsConstructionResult {
splits: LinkedList::new(),
- fragments: fragment_accumulator.to_intermediate_inline_fragments(context),
+ fragments: fragment_accumulator
+ .to_intermediate_inline_fragments::<ConcreteThreadSafeLayoutNode>(context),
});
ConstructionResult::ConstructionItem(construction_item)
}
@@ -987,8 +1044,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
InlineAbsoluteHypotheticalFragmentInfo::new(block_flow));
let style_context = self.style_context();
let style = node.style(style_context);
- let style = style_context.stylist.style_for_anonymous(
- &style_context.guards, &PseudoElement::ServoInlineAbsolute, &style);
+ let style = style_context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &style_context.guards,
+ &PseudoElement::ServoInlineAbsolute,
+ &style,
+ );
let fragment = Fragment::from_opaque_node_and_style(node.opaque(),
PseudoElementType::Normal,
style,
@@ -1003,7 +1063,8 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
let construction_item =
ConstructionItem::InlineFragments(InlineFragmentsConstructionResult {
splits: LinkedList::new(),
- fragments: fragment_accumulator.to_intermediate_inline_fragments(style_context),
+ fragments: fragment_accumulator
+ .to_intermediate_inline_fragments::<ConcreteThreadSafeLayoutNode>(style_context),
});
ConstructionResult::ConstructionItem(construction_item)
}
@@ -1097,8 +1158,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
{
let context = self.style_context();
table_style = node.style(context);
- wrapper_style = context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoTableWrapper, &table_style);
+ wrapper_style = context.stylist.style_for_anonymous::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ &context.guards,
+ &PseudoElement::ServoTableWrapper,
+ &table_style,
+ );
}
let wrapper_fragment =
Fragment::from_opaque_node_and_style(node.opaque(),
@@ -1128,7 +1192,11 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
CaptionSide::Top);
if let ConstructionResult::Flow(table_flow, table_abs_descendants) = construction_result {
- legalizer.add_child(self.style_context(), &mut wrapper_flow, table_flow);
+ legalizer.add_child::<ConcreteThreadSafeLayoutNode::ConcreteElement>(
+ self.style_context(),
+ &mut wrapper_flow,
+ table_flow,
+ );
abs_descendants.push_descendants(table_abs_descendants);
}
@@ -1821,16 +1889,24 @@ fn bidi_control_chars(style: &ServoArc<ComputedValues>) -> Option<(&'static str,
}
}
-fn control_chars_to_fragment(node: &InlineFragmentNodeInfo,
- context: &SharedStyleContext,
- text: &str,
- restyle_damage: RestyleDamage)
- -> Fragment {
+fn control_chars_to_fragment<E>(
+ node: &InlineFragmentNodeInfo,
+ context: &SharedStyleContext,
+ text: &str,
+ restyle_damage: RestyleDamage,
+) -> Fragment
+where
+ E: TElement,
+{
let info = SpecificFragmentInfo::UnscannedText(
Box::new(UnscannedTextFragmentInfo::new(String::from(text), None))
);
- let text_style = context.stylist.style_for_anonymous(
- &context.guards, &PseudoElement::ServoText, &node.style);
+ let text_style = context.stylist.style_for_anonymous::<E>(
+ &context.guards,
+ &PseudoElement::ServoText,
+ &node.style,
+ );
+
Fragment::from_opaque_node_and_style(node.address,
node.pseudo,
text_style,
@@ -1887,16 +1963,24 @@ impl Legalizer {
/// Makes the `child` flow a new child of `parent`. Anonymous flows are automatically inserted
/// to keep the tree legal.
- fn add_child(&mut self, context: &SharedStyleContext, parent: &mut FlowRef, mut child: FlowRef) {
+ fn add_child<E>(
+ &mut self,
+ context: &SharedStyleContext,
+ parent: &mut FlowRef,
+ mut child: FlowRef,
+ )
+ where
+ E: TElement,
+ {
while !self.stack.is_empty() {
- if self.try_to_add_child(context, parent, &mut child) {
+ if self.try_to_add_child::<E>(context, parent, &mut child) {
return
}
self.flush_top_of_stack(parent)
}
- while !self.try_to_add_child(context, parent, &mut child) {
- self.push_next_anonymous_flow(context, parent)
+ while !self.try_to_add_child::<E>(context, parent, &mut child) {
+ self.push_next_anonymous_flow::<E>(context, parent)
}
}
@@ -1913,8 +1997,15 @@ impl Legalizer {
/// This method attempts to create anonymous blocks in between `parent` and `child` if and only
/// if those blocks will only ever have `child` as their sole child. At present, this is only
/// true for anonymous block children of flex flows.
- fn try_to_add_child(&mut self, context: &SharedStyleContext, parent: &mut FlowRef, child: &mut FlowRef)
- -> bool {
+ fn try_to_add_child<E>(
+ &mut self,
+ context: &SharedStyleContext,
+ parent: &mut FlowRef,
+ child: &mut FlowRef,
+ ) -> bool
+ where
+ E: TElement,
+ {
let parent = self.stack.last_mut().unwrap_or(parent);
let (parent_class, child_class) = (parent.class(), child.class());
match (parent_class, child_class) {
@@ -1944,12 +2035,14 @@ impl Legalizer {
(FlowClass::Flex, FlowClass::Inline) => {
FlowRef::deref_mut(child).mut_base().flags.insert(FlowFlags::MARGINS_CANNOT_COLLAPSE);
- let mut block_wrapper =
- Legalizer::create_anonymous_flow(context,
- parent,
- &[PseudoElement::ServoAnonymousBlock],
- SpecificFragmentInfo::Generic,
- BlockFlow::from_fragment);
+ let mut block_wrapper = Legalizer::create_anonymous_flow::<E, _>(
+ context,
+ parent,
+ &[PseudoElement::ServoAnonymousBlock],
+ SpecificFragmentInfo::Generic,
+ BlockFlow::from_fragment,
+ );
+
{
let flag = if parent.as_flex().main_mode() == Direction::Inline {
FragmentFlags::IS_INLINE_FLEX_ITEM
@@ -1997,54 +2090,76 @@ impl Legalizer {
/// Adds the anonymous flow that would be necessary to make an illegal child of `parent` legal
/// to the stack.
- fn push_next_anonymous_flow(&mut self, context: &SharedStyleContext, parent: &FlowRef) {
+ fn push_next_anonymous_flow<E>(
+ &mut self,
+ context: &SharedStyleContext,
+ parent: &FlowRef,
+ )
+ where
+ E: TElement,
+ {
let parent_class = self.stack.last().unwrap_or(parent).class();
match parent_class {
FlowClass::TableRow => {
- self.push_new_anonymous_flow(context,
- parent,
- &[PseudoElement::ServoAnonymousTableCell],
- SpecificFragmentInfo::TableCell,
- TableCellFlow::from_fragment)
+ self.push_new_anonymous_flow::<E, _>(
+ context,
+ parent,
+ &[PseudoElement::ServoAnonymousTableCell],
+ SpecificFragmentInfo::TableCell,
+ TableCellFlow::from_fragment,
+ )
}
FlowClass::Table | FlowClass::TableRowGroup => {
- self.push_new_anonymous_flow(context,
- parent,
- &[PseudoElement::ServoAnonymousTableRow],
- SpecificFragmentInfo::TableRow,
- TableRowFlow::from_fragment)
+ self.push_new_anonymous_flow::<E, _>(
+ context,
+ parent,
+ &[PseudoElement::ServoAnonymousTableRow],
+ SpecificFragmentInfo::TableRow,
+ TableRowFlow::from_fragment,
+ )
}
FlowClass::TableWrapper => {
- self.push_new_anonymous_flow(context,
- parent,
- &[PseudoElement::ServoAnonymousTable],
- SpecificFragmentInfo::Table,
- TableFlow::from_fragment)
+ self.push_new_anonymous_flow::<E, _>(
+ context,
+ parent,
+ &[PseudoElement::ServoAnonymousTable],
+ SpecificFragmentInfo::Table,
+ TableFlow::from_fragment,
+ )
}
_ => {
- self.push_new_anonymous_flow(context,
- parent,
- &[PseudoElement::ServoTableWrapper,
- PseudoElement::ServoAnonymousTableWrapper],
- SpecificFragmentInfo::TableWrapper,
- TableWrapperFlow::from_fragment)
+ self.push_new_anonymous_flow::<E, _>(
+ context,
+ parent,
+ &[PseudoElement::ServoTableWrapper,
+ PseudoElement::ServoAnonymousTableWrapper],
+ SpecificFragmentInfo::TableWrapper,
+ TableWrapperFlow::from_fragment,
+ )
}
}
}
/// Creates an anonymous flow and pushes it onto the stack.
- fn push_new_anonymous_flow<F>(&mut self,
- context: &SharedStyleContext,
- reference: &FlowRef,
- pseudos: &[PseudoElement],
- specific_fragment_info: SpecificFragmentInfo,
- constructor: extern "Rust" fn(Fragment) -> F)
- where F: Flow {
- let new_flow = Legalizer::create_anonymous_flow(context,
- reference,
- pseudos,
- specific_fragment_info,
- constructor);
+ fn push_new_anonymous_flow<E, F>(
+ &mut self,
+ context: &SharedStyleContext,
+ reference: &FlowRef,
+ pseudos: &[PseudoElement],
+ specific_fragment_info: SpecificFragmentInfo,
+ constructor: extern "Rust" fn(Fragment) -> F,
+ )
+ where
+ E: TElement,
+ F: Flow,
+ {
+ let new_flow = Self::create_anonymous_flow::<E, _>(
+ context,
+ reference,
+ pseudos,
+ specific_fragment_info,
+ constructor,
+ );
self.stack.push(new_flow)
}
@@ -2053,21 +2168,31 @@ impl Legalizer {
///
/// This method invokes the supplied constructor function on the given specific fragment info
/// in order to actually generate the flow.
- fn create_anonymous_flow<F>(context: &SharedStyleContext,
- reference: &FlowRef,
- pseudos: &[PseudoElement],
- specific_fragment_info: SpecificFragmentInfo,
- constructor: extern "Rust" fn(Fragment) -> F)
- -> FlowRef
- where F: Flow {
+ fn create_anonymous_flow<E, F>(
+ context: &SharedStyleContext,
+ reference: &FlowRef,
+ pseudos: &[PseudoElement],
+ specific_fragment_info: SpecificFragmentInfo,
+ constructor: extern "Rust" fn(Fragment) -> F,
+ ) -> FlowRef
+ where
+ E: TElement,
+ F: Flow,
+ {
let reference_block = reference.as_block();
let mut new_style = reference_block.fragment.style.clone();
for pseudo in pseudos {
- new_style = context.stylist.style_for_anonymous(&context.guards, pseudo, &new_style)
+ new_style = context.stylist.style_for_anonymous::<E>(
+ &context.guards,
+ pseudo,
+ &new_style,
+ );
}
- let fragment = reference_block.fragment
- .create_similar_anonymous_fragment(new_style,
- specific_fragment_info);
+ let fragment =
+ reference_block.fragment.create_similar_anonymous_fragment(
+ new_style,
+ specific_fragment_info,
+ );
FlowRef::new(Arc::new(constructor(fragment)))
}
}
diff --git a/components/layout/display_list/builder.rs b/components/layout/display_list/builder.rs
index 33daf270ccc..d66fe380734 100644
--- a/components/layout/display_list/builder.rs
+++ b/components/layout/display_list/builder.rs
@@ -55,7 +55,6 @@ use style::computed_values::background_attachment::single_value::T as Background
use style::computed_values::background_clip::single_value::T as BackgroundClip;
use style::computed_values::background_origin::single_value::T as BackgroundOrigin;
use style::computed_values::border_style::T as BorderStyle;
-use style::computed_values::cursor;
use style::computed_values::overflow_x::T as StyleOverflow;
use style::computed_values::pointer_events::T as PointerEvents;
use style::computed_values::position::T as StylePosition;
@@ -67,12 +66,13 @@ use style::servo::restyle_damage::ServoRestyleDamage;
use style::values::{Either, RGBA};
use style::values::computed::{Gradient, NumberOrPercentage};
use style::values::computed::effects::SimpleShadow;
+use style::values::computed::pointing::Cursor;
use style::values::generics::background::BackgroundSize;
use style::values::generics::effects::Filter;
use style::values::generics::image::{GradientKind, Image, PaintWorklet};
use style_traits::CSSPixel;
use style_traits::ToCss;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use table_cell::CollapsedBordersForCell;
use webrender_api::{self, BoxShadowClipMode, ClipId, ClipMode, ColorF, ComplexClipRegion};
use webrender_api::{ImageRendering, LayoutSize, LayoutVector2D, LineStyle};
@@ -375,7 +375,7 @@ impl<'a> DisplayListBuildState<'a> {
bounds: &Rect<Au>,
clip: LocalClip,
node: OpaqueNode,
- cursor: Option<Cursor>,
+ cursor: Option<CursorKind>,
section: DisplayListSection,
) -> BaseDisplayItem {
let clipping_and_scrolling = if self.is_background_or_border_of_clip_scroll_node(section) {
@@ -930,7 +930,7 @@ impl FragmentDisplayListBuilding for Fragment {
&bounds,
clip,
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
display_list_section,
);
state.add_display_item(DisplayItem::SolidColor(Box::new(SolidColorDisplayItem {
@@ -1121,7 +1121,7 @@ impl FragmentDisplayListBuilding for Fragment {
&placement.bounds,
LocalClip::Rect(placement.css_clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
display_list_section,
);
@@ -1213,7 +1213,7 @@ impl FragmentDisplayListBuilding for Fragment {
&placement.bounds,
LocalClip::Rect(placement.css_clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
display_list_section,
);
@@ -1274,7 +1274,7 @@ impl FragmentDisplayListBuilding for Fragment {
&bounds,
LocalClip::from(clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
display_list_section,
);
let border_radius = build_border_radius(absolute_bounds, style.get_border());
@@ -1370,7 +1370,7 @@ impl FragmentDisplayListBuilding for Fragment {
&bounds,
LocalClip::from(clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
display_list_section,
);
@@ -1544,7 +1544,7 @@ impl FragmentDisplayListBuilding for Fragment {
&bounds,
LocalClip::from(clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
DisplayListSection::Outlines,
);
state.add_display_item(DisplayItem::Border(Box::new(BorderDisplayItem {
@@ -1571,7 +1571,7 @@ impl FragmentDisplayListBuilding for Fragment {
stacking_relative_border_box,
LocalClip::from(clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
state.add_display_item(DisplayItem::Border(Box::new(BorderDisplayItem {
@@ -1597,7 +1597,7 @@ impl FragmentDisplayListBuilding for Fragment {
&baseline,
LocalClip::from(clip.to_layout()),
self.node,
- style.get_cursor(Cursor::Default),
+ style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
state.add_display_item(DisplayItem::Line(Box::new(LineDisplayItem {
@@ -1618,7 +1618,7 @@ impl FragmentDisplayListBuilding for Fragment {
stacking_relative_border_box,
LocalClip::from(clip.to_layout()),
self.node,
- self.style.get_cursor(Cursor::Default),
+ self.style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
state.add_display_item(DisplayItem::Border(Box::new(BorderDisplayItem {
@@ -1655,7 +1655,7 @@ impl FragmentDisplayListBuilding for Fragment {
stacking_relative_border_box,
LocalClip::from(clip.to_layout()),
self.node,
- self.style.get_cursor(Cursor::Default),
+ self.style.get_cursor(CursorKind::Default),
display_list_section,
);
state.add_display_item(DisplayItem::SolidColor(Box::new(SolidColorDisplayItem {
@@ -1688,7 +1688,7 @@ impl FragmentDisplayListBuilding for Fragment {
stacking_relative_border_box.size.height,
),
);
- cursor = Cursor::Text;
+ cursor = CursorKind::Text;
} else {
insertion_point_bounds = Rect::new(
Point2D::new(
@@ -1700,7 +1700,7 @@ impl FragmentDisplayListBuilding for Fragment {
INSERTION_POINT_LOGICAL_WIDTH,
),
);
- cursor = Cursor::VerticalText;
+ cursor = CursorKind::VerticalText;
};
let base = state.create_base_display_item(
@@ -1963,7 +1963,7 @@ impl FragmentDisplayListBuilding for Fragment {
&stacking_relative_content_box,
build_local_clip(&self.style),
self.node,
- self.style.get_cursor(Cursor::Default),
+ self.style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
let item = DisplayItem::Iframe(Box::new(IframeDisplayItem {
@@ -1989,7 +1989,7 @@ impl FragmentDisplayListBuilding for Fragment {
&stacking_relative_content_box,
build_local_clip(&self.style),
self.node,
- self.style.get_cursor(Cursor::Default),
+ self.style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
state.add_display_item(DisplayItem::Image(Box::new(ImageDisplayItem {
@@ -2025,7 +2025,7 @@ impl FragmentDisplayListBuilding for Fragment {
&stacking_relative_content_box,
build_local_clip(&self.style),
self.node,
- self.style.get_cursor(Cursor::Default),
+ self.style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
let display_item = DisplayItem::Image(Box::new(ImageDisplayItem {
@@ -2128,9 +2128,9 @@ impl FragmentDisplayListBuilding for Fragment {
let (orientation, cursor) = if self.style.writing_mode.is_vertical() {
// TODO: Distinguish between 'sideways-lr' and 'sideways-rl' writing modes in CSS
// Writing Modes Level 4.
- (TextOrientation::SidewaysRight, Cursor::VerticalText)
+ (TextOrientation::SidewaysRight, CursorKind::VerticalText)
} else {
- (TextOrientation::Upright, Cursor::Text)
+ (TextOrientation::Upright, CursorKind::Text)
};
// Compute location of the baseline.
@@ -2256,7 +2256,7 @@ impl FragmentDisplayListBuilding for Fragment {
&stacking_relative_box,
LocalClip::from(clip.to_layout()),
self.node,
- self.style.get_cursor(Cursor::Default),
+ self.style.get_cursor(CursorKind::Default),
DisplayListSection::Content,
);
@@ -3158,7 +3158,7 @@ impl BaseFlowDisplayListBuilding for BaseFlow {
}
trait ComputedValuesCursorUtility {
- fn get_cursor(&self, default_cursor: Cursor) -> Option<Cursor>;
+ fn get_cursor(&self, default_cursor: CursorKind) -> Option<CursorKind>;
}
impl ComputedValuesCursorUtility for ComputedValues {
@@ -3166,14 +3166,14 @@ impl ComputedValuesCursorUtility for ComputedValues {
/// the cursor to use if `cursor` is `auto`. Typically, this will be `PointerCursor`, but for
/// text display items it may be `TextCursor` or `VerticalTextCursor`.
#[inline]
- fn get_cursor(&self, default_cursor: Cursor) -> Option<Cursor> {
+ fn get_cursor(&self, default_cursor: CursorKind) -> Option<CursorKind> {
match (
self.get_pointing().pointer_events,
self.get_pointing().cursor,
) {
(PointerEvents::None, _) => None,
- (PointerEvents::Auto, cursor::Keyword::Auto) => Some(default_cursor),
- (PointerEvents::Auto, cursor::Keyword::Cursor(cursor)) => Some(cursor),
+ (PointerEvents::Auto, Cursor(CursorKind::Auto)) => Some(default_cursor),
+ (PointerEvents::Auto, Cursor(cursor)) => Some(cursor),
}
}
}
diff --git a/components/layout/flow.rs b/components/layout/flow.rs
index b145aef0ad6..e42871dfa24 100644
--- a/components/layout/flow.rs
+++ b/components/layout/flow.rs
@@ -552,11 +552,13 @@ pub trait MutableOwnedFlowUtils {
/// Sets the flow as the containing block for all absolute descendants that have been marked
/// as having reached their containing block. This is needed in order to handle cases like:
///
- /// <div>
- /// <span style="position: relative">
- /// <span style="position: absolute; ..."></span>
- /// </span>
- /// </div>
+ /// ```html
+ /// <div>
+ /// <span style="position: relative">
+ /// <span style="position: absolute; ..."></span>
+ /// </span>
+ /// </div>
+ /// ```
fn take_applicable_absolute_descendants(&mut self,
absolute_descendants: &mut AbsoluteDescendants);
}
@@ -742,12 +744,14 @@ pub struct AbsoluteDescendantInfo {
/// Whether the absolute descendant has reached its containing block. This exists so that we
/// can handle cases like the following:
///
- /// <div>
- /// <span id=a style="position: absolute; ...">foo</span>
- /// <span style="position: relative">
- /// <span id=b style="position: absolute; ...">bar</span>
- /// </span>
- /// </div>
+ /// ```html
+ /// <div>
+ /// <span id=a style="position: absolute; ...">foo</span>
+ /// <span style="position: relative">
+ /// <span id=b style="position: absolute; ...">bar</span>
+ /// </span>
+ /// </div>
+ /// ```
///
/// When we go to create the `InlineFlow` for the outer `div`, our absolute descendants will
/// be `a` and `b`. At this point, we need a way to distinguish between the two, because the
@@ -1343,11 +1347,13 @@ impl MutableOwnedFlowUtils for FlowRef {
/// Sets the flow as the containing block for all absolute descendants that have been marked
/// as having reached their containing block. This is needed in order to handle cases like:
///
- /// <div>
- /// <span style="position: relative">
- /// <span style="position: absolute; ..."></span>
- /// </span>
- /// </div>
+ /// ```html
+ /// <div>
+ /// <span style="position: relative">
+ /// <span style="position: absolute; ..."></span>
+ /// </span>
+ /// </div>
+ /// ```
fn take_applicable_absolute_descendants(&mut self,
absolute_descendants: &mut AbsoluteDescendants) {
let mut applicable_absolute_descendants = AbsoluteDescendants::new();
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index 934e4aa1fc8..a934b95bafe 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -1143,7 +1143,11 @@ impl InlineFlow {
let font_style = style.clone_font();
let font_metrics = text::font_metrics_for_style(font_context, font_style);
let line_height = text::line_height_from_style(style, &font_metrics);
- let inline_metrics = InlineMetrics::from_font_metrics(&font_metrics, line_height);
+ let inline_metrics = if fragments.iter().any(Fragment::is_text_or_replaced) {
+ InlineMetrics::from_font_metrics(&font_metrics, line_height)
+ } else {
+ InlineMetrics::new(Au(0), Au(0), Au(0))
+ };
let mut line_metrics = LineMetrics::new(Au(0), MIN_AU);
let mut largest_block_size_for_top_fragments = Au(0);
diff --git a/components/layout/model.rs b/components/layout/model.rs
index d5b85a7424e..5d5238ece77 100644
--- a/components/layout/model.rs
+++ b/components/layout/model.rs
@@ -548,7 +548,7 @@ impl SizeConstraint {
max_size = max_size.map(|x| max(x, min_size));
if let Some(border) = border {
- min_size = max((min_size - border), Au(0));
+ min_size = max(min_size - border, Au(0));
max_size = max_size.map(|x| max(x - border, Au(0)));
}
diff --git a/components/layout/query.rs b/components/layout/query.rs
index 36e4a9b04d3..eac23f563ac 100644
--- a/components/layout/query.rs
+++ b/components/layout/query.rs
@@ -868,7 +868,7 @@ pub fn process_node_overflow_request<N: LayoutNode>(requested_node: N) -> NodeOv
let style = &*layout_node.as_element().unwrap().resolved_style();
let style_box = style.get_box();
- NodeOverflowResponse(Some((Point2D::new(style_box.overflow_x, style_box.overflow_y))))
+ NodeOverflowResponse(Some(Point2D::new(style_box.overflow_x, style_box.overflow_y)))
}
pub fn process_margin_style_query<N: LayoutNode>(requested_node: N)
diff --git a/tests/unit/layout/size_of.rs b/components/layout/tests/size_of.rs
index 6b40be0fd86..54b5ef39830 100644
--- a/tests/unit/layout/size_of.rs
+++ b/components/layout/tests/size_of.rs
@@ -2,6 +2,11 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#![cfg(target_pointer_width = "64")]
+
+extern crate layout;
+#[macro_use] extern crate size_of_test;
+
use layout::Fragment;
use layout::SpecificFragmentInfo;
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index 4eba8b88a4d..df93edb776d 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -67,7 +67,7 @@ pub trait GetRawData {
impl<T: GetLayoutData> GetRawData for T {
fn get_raw_data(&self) -> Option<&StyleAndLayoutData> {
self.get_style_and_layout_data().map(|opaque| {
- let container = opaque.ptr.get() as *mut StyleAndLayoutData;
+ let container = opaque.ptr.as_ptr() as *mut StyleAndLayoutData;
unsafe { &*container }
})
}
diff --git a/components/layout_thread/Cargo.toml b/components/layout_thread/Cargo.toml
index f4a2e5d9acb..661a7f849de 100644
--- a/components/layout_thread/Cargo.toml
+++ b/components/layout_thread/Cargo.toml
@@ -10,7 +10,7 @@ name = "layout_thread"
path = "lib.rs"
[features]
-unstable = ["parking_lot/nightly", "nonzero/unstable"]
+unstable = ["parking_lot/nightly"]
[dependencies]
app_units = "0.6"
@@ -30,7 +30,6 @@ malloc_size_of = { path = "../malloc_size_of" }
metrics = {path = "../metrics"}
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
-nonzero = {path = "../nonzero"}
parking_lot = "0.4"
profile_traits = {path = "../profile_traits"}
range = {path = "../range"}
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs
index 14a2e5f3867..0110704edad 100644
--- a/components/layout_thread/dom_wrapper.rs
+++ b/components/layout_thread/dom_wrapper.rs
@@ -36,7 +36,6 @@ use html5ever::{LocalName, Namespace};
use layout::data::StyleAndLayoutData;
use layout::wrapper::GetRawData;
use msg::constellation_msg::{BrowsingContextId, PipelineId};
-use nonzero::NonZero;
use range::Range;
use script::layout_exports::{CharacterDataTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId};
use script::layout_exports::{Document, Element, Node, Text};
@@ -59,6 +58,7 @@ use std::fmt;
use std::fmt::Debug;
use std::hash::{Hash, Hasher};
use std::marker::PhantomData;
+use std::ptr::NonNull;
use std::sync::atomic::Ordering;
use style::CaseSensitivityExt;
use style::applicable_declarations::ApplicableDeclarationBlock;
@@ -76,7 +76,7 @@ use style::shared_lock::{SharedRwLock as StyleSharedRwLock, Locked as StyleLocke
use style::str::is_whitespace;
pub unsafe fn drop_style_and_layout_data(data: OpaqueStyleAndLayoutData) {
- let ptr = data.ptr.get() as *mut StyleData;
+ let ptr = data.ptr.as_ptr() as *mut StyleData;
let non_opaque: *mut StyleAndLayoutData = ptr as *mut _;
let _ = Box::from_raw(non_opaque);
}
@@ -229,7 +229,7 @@ impl<'ln> LayoutNode for ServoLayoutNode<'ln> {
let ptr: *mut StyleAndLayoutData =
Box::into_raw(Box::new(StyleAndLayoutData::new()));
let opaque = OpaqueStyleAndLayoutData {
- ptr: NonZero::new_unchecked(ptr as *mut StyleData),
+ ptr: NonNull::new_unchecked(ptr as *mut StyleData),
};
self.init_style_and_layout_data(opaque);
};
@@ -450,12 +450,12 @@ impl<'le> TElement for ServoLayoutElement<'le> {
fn get_data(&self) -> Option<&AtomicRefCell<ElementData>> {
unsafe {
self.get_style_and_layout_data().map(|d| {
- &(*(d.ptr.get() as *mut StyleData)).element_data
+ &(*(d.ptr.as_ptr() as *mut StyleData)).element_data
})
}
}
- fn skip_root_and_item_based_display_fixup(&self) -> bool {
+ fn skip_item_display_fixup(&self) -> bool {
false
}
@@ -575,7 +575,7 @@ impl<'le> ServoLayoutElement<'le> {
fn get_style_data(&self) -> Option<&StyleData> {
unsafe {
- self.get_style_and_layout_data().map(|d| &*(d.ptr.get() as *mut StyleData))
+ self.get_style_and_layout_data().map(|d| &*(d.ptr.as_ptr() as *mut StyleData))
}
}
@@ -713,7 +713,6 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> {
&self,
pseudo_class: &NonTSPseudoClass,
_: &mut MatchingContext<Self::Impl>,
- _: VisitedHandlingMode,
_: &mut F,
) -> bool
where
@@ -861,6 +860,7 @@ impl<'ln> NodeInfo for ServoThreadSafeLayoutNode<'ln> {
impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> {
type ConcreteNode = ServoLayoutNode<'ln>;
type ConcreteThreadSafeLayoutElement = ServoThreadSafeLayoutElement<'ln>;
+ type ConcreteElement = ServoLayoutElement<'ln>;
type ChildrenIterator = ThreadSafeLayoutNodeChildrenIterator<Self>;
fn opaque(&self) -> OpaqueNode {
@@ -1085,6 +1085,7 @@ pub struct ServoThreadSafeLayoutElement<'le> {
impl<'le> ThreadSafeLayoutElement for ServoThreadSafeLayoutElement<'le> {
type ConcreteThreadSafeLayoutNode = ServoThreadSafeLayoutNode<'le>;
+ type ConcreteElement = ServoLayoutElement<'le>;
fn as_node(&self) -> ServoThreadSafeLayoutNode<'le> {
ServoThreadSafeLayoutNode {
@@ -1221,7 +1222,6 @@ impl<'le> ::selectors::Element for ServoThreadSafeLayoutElement<'le> {
&self,
_: &NonTSPseudoClass,
_: &mut MatchingContext<Self::Impl>,
- _: VisitedHandlingMode,
_: &mut F,
) -> bool
where
diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs
index ca231ffc698..fcd790fe6ec 100644
--- a/components/layout_thread/lib.rs
+++ b/components/layout_thread/lib.rs
@@ -28,7 +28,6 @@ extern crate malloc_size_of;
extern crate metrics;
extern crate msg;
extern crate net_traits;
-extern crate nonzero;
extern crate parking_lot;
#[macro_use]
extern crate profile_traits;
@@ -705,12 +704,13 @@ impl LayoutThread {
rw_data.scroll_offsets.insert(state.scroll_root_id, state.scroll_offset);
let point = Point2D::new(-state.scroll_offset.x, -state.scroll_offset.y);
- self.webrender_api.scroll_node_with_id(
- self.webrender_document,
+ let mut txn = webrender_api::Transaction::new();
+ txn.scroll_node_with_id(
webrender_api::LayoutPoint::from_untyped(&point),
state.scroll_root_id,
webrender_api::ScrollClamping::ToContentBounds
);
+ self.webrender_api.send_transaction(self.webrender_document, txn);
}
Msg::ReapStyleAndLayoutData(dead_data) => {
unsafe {
@@ -1044,15 +1044,15 @@ impl LayoutThread {
// Progressive Web Metrics.
self.paint_time_metrics.maybe_observe_paint_time(self, epoch, &*display_list);
- self.webrender_api.set_display_list(
- self.webrender_document,
+ let mut txn = webrender_api::Transaction::new();
+ txn.set_display_list(
webrender_api::Epoch(epoch.0),
Some(get_root_flow_background_color(layout_root)),
viewport_size,
builder.finalize(),
- true,
- webrender_api::ResourceUpdates::new());
- self.webrender_api.generate_frame(self.webrender_document, None);
+ true);
+ txn.generate_frame();
+ self.webrender_api.send_transaction(self.webrender_document, txn);
});
}
@@ -1491,8 +1491,11 @@ impl LayoutThread {
self.profiler_metadata(),
self.time_profiler_chan.clone(),
|| {
- animation::recalc_style_for_animations(
- &layout_context, FlowRef::deref_mut(&mut root_flow), &animations)
+ animation::recalc_style_for_animations::<ServoLayoutElement>(
+ &layout_context,
+ FlowRef::deref_mut(&mut root_flow),
+ &animations,
+ )
});
}
self.perform_post_style_recalc_layout_passes(&mut root_flow,
@@ -1522,14 +1525,16 @@ impl LayoutThread {
.as_mut()
.map(|nodes| &mut **nodes);
// Kick off animations if any were triggered, expire completed ones.
- animation::update_animation_state(&self.constellation_chan,
- &self.script_chan,
- &mut *self.running_animations.write(),
- &mut *self.expired_animations.write(),
- newly_transitioning_nodes,
- &self.new_animations_receiver,
- self.id,
- &self.timer);
+ animation::update_animation_state::<ServoLayoutElement>(
+ &self.constellation_chan,
+ &self.script_chan,
+ &mut *self.running_animations.write(),
+ &mut *self.expired_animations.write(),
+ newly_transitioning_nodes,
+ &self.new_animations_receiver,
+ self.id,
+ &self.timer,
+ );
}
profile(time::ProfilerCategory::LayoutRestyleDamagePropagation,
diff --git a/components/msg/Cargo.toml b/components/msg/Cargo.toml
index a13fa591db6..2d275b7f027 100644
--- a/components/msg/Cargo.toml
+++ b/components/msg/Cargo.toml
@@ -8,6 +8,8 @@ publish = false
[lib]
name = "msg"
path = "lib.rs"
+test = false
+doctest = false
[features]
unstable = ["nonzero/unstable"]
@@ -19,3 +21,6 @@ malloc_size_of_derive = { path = "../malloc_size_of_derive" }
nonzero = {path = "../nonzero"}
serde = "1.0.14"
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
+
+[dev-dependencies]
+size_of_test = {path = "../size_of_test"}
diff --git a/tests/unit/msg/size_of.rs b/components/msg/tests/size_of.rs
index 124238f9457..54e5294c7d5 100644
--- a/tests/unit/msg/size_of.rs
+++ b/components/msg/tests/size_of.rs
@@ -2,6 +2,11 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#![cfg(target_pointer_width = "64")]
+
+extern crate msg;
+#[macro_use] extern crate size_of_test;
+
use msg::constellation_msg::BrowsingContextId;
use msg::constellation_msg::PipelineId;
use msg::constellation_msg::TopLevelBrowsingContextId;
diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml
index 23998be349d..da9a2c7393a 100644
--- a/components/net/Cargo.toml
+++ b/components/net/Cargo.toml
@@ -8,6 +8,8 @@ publish = false
[lib]
name = "net"
path = "lib.rs"
+test = false
+doctest = false
[dependencies]
base64 = "0.6"
@@ -43,3 +45,7 @@ webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tinyfiledialogs = "2.5.9"
+
+[[test]]
+name = "main"
+path = "tests/main.rs"
diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs
index 729435020a3..69999d381cc 100644
--- a/components/net/fetch/methods.rs
+++ b/components/net/fetch/methods.rs
@@ -29,6 +29,7 @@ use std::io::Read;
use std::mem;
use std::str;
use std::sync::{Arc, Mutex};
+use std::sync::atomic::Ordering;
use std::sync::mpsc::{Sender, Receiver};
use subresource_integrity::is_response_integrity_valid;
@@ -407,6 +408,12 @@ pub fn main_fetch(request: &mut Request,
// Step 24.
target.process_response_eof(&response);
+ if !response.is_network_error() {
+ if let Ok(mut http_cache) = context.state.http_cache.write() {
+ http_cache.update_awaiting_consumers(&request, &response);
+ }
+ }
+
// Steps 25-27.
// TODO: remove this line when only asynchronous fetches are used
response
@@ -422,7 +429,7 @@ fn wait_for_response(response: &mut Response, target: Target, done_chan: &mut Do
},
Data::Done => break,
Data::Cancelled => {
- response.aborted = true;
+ response.aborted.store(true, Ordering::Relaxed);
break;
}
}
diff --git a/components/net/http_cache.rs b/components/net/http_cache.rs
index 6f0a71bd40e..219a627314c 100644
--- a/components/net/http_cache.rs
+++ b/components/net/http_cache.rs
@@ -7,7 +7,7 @@
//! A memory cache implementing the logic specified in http://tools.ietf.org/html/rfc7234
//! and <http://tools.ietf.org/html/rfc7232>.
-use fetch::methods::DoneChannel;
+use fetch::methods::{Data, DoneChannel};
use hyper::header;
use hyper::header::ContentType;
use hyper::header::Headers;
@@ -22,6 +22,8 @@ use servo_url::ServoUrl;
use std::collections::HashMap;
use std::str;
use std::sync::{Arc, Mutex};
+use std::sync::atomic::{AtomicBool, Ordering};
+use std::sync::mpsc::{channel, Sender};
use time;
use time::{Duration, Tm};
@@ -63,7 +65,9 @@ struct CachedResource {
raw_status: Option<(u16, Vec<u8>)>,
url_list: Vec<ServoUrl>,
expires: Duration,
- last_validated: Tm
+ last_validated: Tm,
+ aborted: Arc<AtomicBool>,
+ awaiting_body: Arc<Mutex<Vec<Sender<Data>>>>
}
/// Metadata about a loaded resource, such as is obtained from HTTP headers.
@@ -269,11 +273,19 @@ fn get_expiry_adjustment_from_request_headers(request: &Request, expires: Durati
}
/// Create a CachedResponse from a request and a CachedResource.
-fn create_cached_response(request: &Request, cached_resource: &CachedResource, cached_headers: &Headers)
+fn create_cached_response(request: &Request,
+ cached_resource: &CachedResource,
+ cached_headers: &Headers,
+ done_chan: &mut DoneChannel)
-> CachedResponse {
let mut response = Response::new(cached_resource.metadata.final_url.clone());
response.headers = cached_headers.clone();
response.body = cached_resource.body.clone();
+ if let ResponseBody::Receiving(_) = *cached_resource.body.lock().unwrap() {
+ let (done_sender, done_receiver) = channel();
+ *done_chan = Some((done_sender.clone(), done_receiver));
+ cached_resource.awaiting_body.lock().unwrap().push(done_sender);
+ }
response.location_url = cached_resource.location_url.clone();
response.status = cached_resource.status.clone();
response.raw_status = cached_resource.raw_status.clone();
@@ -281,6 +293,7 @@ fn create_cached_response(request: &Request, cached_resource: &CachedResource, c
response.https_state = cached_resource.https_state.clone();
response.referrer = request.referrer.to_url().cloned();
response.referrer_policy = request.referrer_policy.clone();
+ response.aborted = cached_resource.aborted.clone();
let expires = cached_resource.expires;
let adjusted_expires = get_expiry_adjustment_from_request_headers(request, expires);
let now = Duration::seconds(time::now().to_timespec().sec);
@@ -308,12 +321,17 @@ fn create_resource_with_bytes_from_resource(bytes: &[u8], resource: &CachedResou
raw_status: Some((206, b"Partial Content".to_vec())),
url_list: resource.url_list.clone(),
expires: resource.expires.clone(),
- last_validated: resource.last_validated.clone()
+ last_validated: resource.last_validated.clone(),
+ aborted: Arc::new(AtomicBool::new(false)),
+ awaiting_body: Arc::new(Mutex::new(vec![]))
}
}
/// Support for range requests <https://tools.ietf.org/html/rfc7233>.
-fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, range_spec: &[header::ByteRangeSpec])
+fn handle_range_request(request: &Request,
+ candidates: Vec<&CachedResource>,
+ range_spec: &[header::ByteRangeSpec],
+ done_chan: &mut DoneChannel)
-> Option<CachedResponse> {
let mut complete_cached_resources = candidates.iter().filter(|resource| {
match resource.raw_status {
@@ -344,7 +362,7 @@ fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, ran
if let Some(bytes) = requested {
let new_resource = create_resource_with_bytes_from_resource(bytes, complete_resource);
let cached_headers = new_resource.metadata.headers.lock().unwrap();
- let cached_response = create_cached_response(request, &new_resource, &*cached_headers);
+ let cached_response = create_cached_response(request, &new_resource, &*cached_headers, done_chan);
return Some(cached_response);
}
}
@@ -371,7 +389,7 @@ fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, ran
};
if let Some(bytes) = requested {
let new_resource = create_resource_with_bytes_from_resource(&bytes, partial_resource);
- let cached_response = create_cached_response(request, &new_resource, &*headers);
+ let cached_response = create_cached_response(request, &new_resource, &*headers, done_chan);
return Some(cached_response);
}
}
@@ -384,7 +402,7 @@ fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, ran
if let Some(bytes) = requested {
let new_resource = create_resource_with_bytes_from_resource(bytes, complete_resource);
let cached_headers = new_resource.metadata.headers.lock().unwrap();
- let cached_response = create_cached_response(request, &new_resource, &*cached_headers);
+ let cached_response = create_cached_response(request, &new_resource, &*cached_headers, done_chan);
return Some(cached_response);
}
}
@@ -411,7 +429,7 @@ fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, ran
};
if let Some(bytes) = requested {
let new_resource = create_resource_with_bytes_from_resource(&bytes, partial_resource);
- let cached_response = create_cached_response(request, &new_resource, &*headers);
+ let cached_response = create_cached_response(request, &new_resource, &*headers, done_chan);
return Some(cached_response);
}
}
@@ -424,7 +442,7 @@ fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, ran
if let Some(bytes) = requested {
let new_resource = create_resource_with_bytes_from_resource(bytes, complete_resource);
let cached_headers = new_resource.metadata.headers.lock().unwrap();
- let cached_response = create_cached_response(request, &new_resource, &*cached_headers);
+ let cached_response = create_cached_response(request, &new_resource, &*cached_headers, done_chan);
return Some(cached_response);
}
}
@@ -451,7 +469,7 @@ fn handle_range_request(request: &Request, candidates: Vec<&CachedResource>, ran
};
if let Some(bytes) = requested {
let new_resource = create_resource_with_bytes_from_resource(&bytes, partial_resource);
- let cached_response = create_cached_response(request, &new_resource, &*headers);
+ let cached_response = create_cached_response(request, &new_resource, &*headers, done_chan);
return Some(cached_response);
}
}
@@ -472,16 +490,16 @@ impl HttpCache {
/// Constructing Responses from Caches.
/// <https://tools.ietf.org/html/rfc7234#section-4>
- pub fn construct_response(&self, request: &Request) -> Option<CachedResponse> {
+ pub fn construct_response(&self, request: &Request, done_chan: &mut DoneChannel) -> Option<CachedResponse> {
// TODO: generate warning headers as appropriate <https://tools.ietf.org/html/rfc7234#section-5.5>
if request.method != Method::Get {
// Only Get requests are cached, avoid a url based match for others.
return None;
}
let entry_key = CacheKey::new(request.clone());
- let resources = self.entries.get(&entry_key)?.clone();
+ let resources = self.entries.get(&entry_key)?.into_iter().filter(|r| { !r.aborted.load(Ordering::Relaxed) });
let mut candidates = vec![];
- for cached_resource in resources.iter() {
+ for cached_resource in resources {
let mut can_be_constructed = true;
let cached_headers = cached_resource.metadata.headers.lock().unwrap();
let original_request_headers = cached_resource.request_headers.lock().unwrap();
@@ -529,7 +547,7 @@ impl HttpCache {
}
// Support for range requests
if let Some(&header::Range::Bytes(ref range_spec)) = request.headers.get::<header::Range>() {
- return handle_range_request(request, candidates, &range_spec);
+ return handle_range_request(request, candidates, &range_spec, done_chan);
} else {
// Not a Range request.
if let Some(ref cached_resource) = candidates.first() {
@@ -537,13 +555,33 @@ impl HttpCache {
// TODO: select the most appropriate one, using a known mechanism from a selecting header field,
// or using the Date header to return the most recent one.
let cached_headers = cached_resource.metadata.headers.lock().unwrap();
- let cached_response = create_cached_response(request, cached_resource, &*cached_headers);
+ let cached_response = create_cached_response(request, cached_resource, &*cached_headers, done_chan);
return Some(cached_response);
}
}
None
}
+ /// Updating consumers who received a response constructed with a ResponseBody::Receiving.
+ pub fn update_awaiting_consumers(&mut self, request: &Request, response: &Response) {
+ if let ResponseBody::Done(ref completed_body) = *response.body.lock().unwrap() {
+ let entry_key = CacheKey::new(request.clone());
+ if let Some(cached_resources) = self.entries.get(&entry_key) {
+ for cached_resource in cached_resources.iter() {
+ let mut awaiting_consumers = cached_resource.awaiting_body.lock().unwrap();
+ for done_sender in awaiting_consumers.drain(..) {
+ if cached_resource.aborted.load(Ordering::Relaxed) {
+ let _ = done_sender.send(Data::Cancelled);
+ } else {
+ let _ = done_sender.send(Data::Payload(completed_body.clone()));
+ let _ = done_sender.send(Data::Done);
+ }
+ };
+ }
+ }
+ }
+ }
+
/// Freshening Stored Responses upon Validation.
/// <https://tools.ietf.org/html/rfc7234#section-4.3.4>
pub fn refresh(&mut self, request: &Request, response: Response, done_chan: &mut DoneChannel) -> Option<Response> {
@@ -642,7 +680,9 @@ impl HttpCache {
raw_status: response.raw_status.clone(),
url_list: response.url_list.clone(),
expires: expiry,
- last_validated: time::now()
+ last_validated: time::now(),
+ aborted: response.aborted.clone(),
+ awaiting_body: Arc::new(Mutex::new(vec![]))
};
let entry = self.entries.entry(entry_key).or_insert(vec![]);
entry.push(entry_resource);
diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs
index e4bd2a7f37f..74cf5e4a30f 100644
--- a/components/net/http_loader.rs
+++ b/components/net/http_loader.rs
@@ -872,7 +872,7 @@ fn http_network_or_cache_fetch(request: &mut Request,
// Step 21
if let Ok(http_cache) = context.state.http_cache.read() {
- if let Some(response_from_cache) = http_cache.construct_response(&http_request) {
+ if let Some(response_from_cache) = http_cache.construct_response(&http_request, done_chan) {
let response_headers = response_from_cache.response.headers.clone();
// Substep 1, 2, 3, 4
let (cached_response, needs_revalidation) = match (http_request.cache_mode, &http_request.mode) {
@@ -903,6 +903,27 @@ fn http_network_or_cache_fetch(request: &mut Request,
}
}
+ if let Some(ref ch) = *done_chan {
+ // The cache constructed a response with a body of ResponseBody::Receiving.
+ // We wait for the response in the cache to "finish",
+ // with a body of either Done or Cancelled.
+ loop {
+ match ch.1.recv()
+ .expect("HTTP cache should always send Done or Cancelled") {
+ Data::Payload(_) => {},
+ Data::Done => break, // Return the full response as if it was initially cached as such.
+ Data::Cancelled => {
+ // The response was cancelled while the fetch was ongoing.
+ // Set response to None, which will trigger a network fetch below.
+ response = None;
+ break;
+ }
+ }
+ }
+ }
+ // Set done_chan back to None, it's cache-related usefulness ends here.
+ *done_chan = None;
+
// Step 22
if response.is_none() {
// Substep 1
diff --git a/tests/unit/net/chrome_loader.rs b/components/net/tests/chrome_loader.rs
index c7669d9a0ac..c7669d9a0ac 100644
--- a/tests/unit/net/chrome_loader.rs
+++ b/components/net/tests/chrome_loader.rs
diff --git a/tests/unit/net/cookie.rs b/components/net/tests/cookie.rs
index 0508f5ae4ec..0508f5ae4ec 100644
--- a/tests/unit/net/cookie.rs
+++ b/components/net/tests/cookie.rs
diff --git a/tests/unit/net/cookie_http_state.rs b/components/net/tests/cookie_http_state.rs
index 30cec8b26b2..30cec8b26b2 100644
--- a/tests/unit/net/cookie_http_state.rs
+++ b/components/net/tests/cookie_http_state.rs
diff --git a/tests/unit/net/cookie_http_state_utils.py b/components/net/tests/cookie_http_state_utils.py
index b8820c312da..b8820c312da 100644
--- a/tests/unit/net/cookie_http_state_utils.py
+++ b/components/net/tests/cookie_http_state_utils.py
diff --git a/tests/unit/net/data_loader.rs b/components/net/tests/data_loader.rs
index 4ad73dee080..4ad73dee080 100644
--- a/tests/unit/net/data_loader.rs
+++ b/components/net/tests/data_loader.rs
diff --git a/tests/unit/net/fetch.rs b/components/net/tests/fetch.rs
index 02ae6d0e6e5..02ae6d0e6e5 100644
--- a/tests/unit/net/fetch.rs
+++ b/components/net/tests/fetch.rs
diff --git a/tests/unit/net/file_loader.rs b/components/net/tests/file_loader.rs
index 31d20812222..f7a45691e57 100644
--- a/tests/unit/net/file_loader.rs
+++ b/components/net/tests/file_loader.rs
@@ -8,7 +8,7 @@ use url::Url;
#[test]
fn load_htm() {
let mut path = env::current_dir().expect("didn't get working dir");
- path.push("test.jpeg");
+ path.push("tests/test.jpeg");
let canon_path = path.canonicalize().expect("file path doesn't exist");
let url = Url::from_file_path(canon_path);
diff --git a/tests/unit/net/filemanager_thread.rs b/components/net/tests/filemanager_thread.rs
index 1ca283f7145..089e56c43fb 100644
--- a/tests/unit/net/filemanager_thread.rs
+++ b/components/net/tests/filemanager_thread.rs
@@ -16,11 +16,11 @@ pub struct TestProvider;
impl UIProvider for TestProvider {
fn open_file_dialog(&self, _path: &str, _patterns: Vec<FilterPattern>) -> Option<String> {
- Some("test.jpeg".to_string())
+ Some("tests/test.jpeg".to_string())
}
fn open_file_dialog_multi(&self, _path: &str, _patterns: Vec<FilterPattern>) -> Option<Vec<String>> {
- Some(vec!["test.jpeg".to_string()])
+ Some(vec!["tests/test.jpeg".to_string()])
}
}
@@ -28,18 +28,18 @@ impl UIProvider for TestProvider {
fn test_filemanager() {
let filemanager = FileManager::new();
- // Try to open a dummy file "tests/unit/net/test.jpeg" in tree
- let mut handler = File::open("test.jpeg").expect("test.jpeg is stolen");
+ // Try to open a dummy file "components/net/tests/test.jpeg" in tree
+ let mut handler = File::open("tests/test.jpeg").expect("test.jpeg is stolen");
let mut test_file_content = vec![];
handler.read_to_end(&mut test_file_content)
- .expect("Read tests/unit/net/test.jpeg error");
+ .expect("Read components/net/tests/test.jpeg error");
let patterns = vec![FilterPattern(".txt".to_string())];
let origin = "test.com".to_string();
{
- // Try to select a dummy file "tests/unit/net/test.jpeg"
+ // Try to select a dummy file "components/net/tests/test.jpeg"
let (tx, rx) = ipc::channel().unwrap();
filemanager.handle(FileManagerThreadMsg::SelectFile(patterns.clone(), tx, origin.clone(), None),
TEST_PROVIDER);
diff --git a/tests/unit/net/hsts.rs b/components/net/tests/hsts.rs
index eca9d2a8d27..eca9d2a8d27 100644
--- a/tests/unit/net/hsts.rs
+++ b/components/net/tests/hsts.rs
diff --git a/tests/unit/net/http_loader.rs b/components/net/tests/http_loader.rs
index bff34263a52..bff34263a52 100644
--- a/tests/unit/net/http_loader.rs
+++ b/components/net/tests/http_loader.rs
diff --git a/tests/unit/net/lib.rs b/components/net/tests/main.rs
index 773b7f387f8..773b7f387f8 100644
--- a/tests/unit/net/lib.rs
+++ b/components/net/tests/main.rs
diff --git a/tests/unit/net/mime_classifier.rs b/components/net/tests/mime_classifier.rs
index e8622b94b84..1a4757ded5f 100644
--- a/tests/unit/net/mime_classifier.rs
+++ b/components/net/tests/mime_classifier.rs
@@ -23,7 +23,7 @@ fn read_file(path: &path::Path) -> io::Result<Vec<u8>> {
fn test_sniff_mp4_matcher() {
let matcher = Mp4Matcher;
- let p = PathBuf::from("parsable_mime/video/mp4/test.mp4");
+ let p = PathBuf::from("tests/parsable_mime/video/mp4/test.mp4");
let read_result = read_file(&p);
match read_result {
@@ -66,7 +66,7 @@ fn test_sniff_with_flags(filename_orig: &path::Path,
let current_working_directory = env::current_dir().unwrap();
println!("The current directory is {}", current_working_directory.display());
- let mut filename = PathBuf::from("parsable_mime/");
+ let mut filename = PathBuf::from("tests/parsable_mime/");
filename.push(filename_orig);
let classifier = MimeClassifier::new();
diff --git a/tests/unit/net/parsable_mime/application/font-woff/test.wof b/components/net/tests/parsable_mime/application/font-woff/test.wof
index a1393ebee1d..a1393ebee1d 100755
--- a/tests/unit/net/parsable_mime/application/font-woff/test.wof
+++ b/components/net/tests/parsable_mime/application/font-woff/test.wof
diff --git a/tests/unit/net/parsable_mime/application/ogg/small.ogg b/components/net/tests/parsable_mime/application/ogg/small.ogg
index 0d7f43eb795..0d7f43eb795 100644
--- a/tests/unit/net/parsable_mime/application/ogg/small.ogg
+++ b/components/net/tests/parsable_mime/application/ogg/small.ogg
Binary files differ
diff --git a/tests/unit/net/parsable_mime/application/pdf/test.pdf b/components/net/tests/parsable_mime/application/pdf/test.pdf
index e7c6e62775f..e7c6e62775f 100644
--- a/tests/unit/net/parsable_mime/application/pdf/test.pdf
+++ b/components/net/tests/parsable_mime/application/pdf/test.pdf
diff --git a/tests/unit/net/parsable_mime/application/postscript/test.ps b/components/net/tests/parsable_mime/application/postscript/test.ps
index c273ffa3f0f..c273ffa3f0f 100755
--- a/tests/unit/net/parsable_mime/application/postscript/test.ps
+++ b/components/net/tests/parsable_mime/application/postscript/test.ps
diff --git a/tests/unit/net/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject b/components/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject
index 1b84f4c37c1..1b84f4c37c1 100755
--- a/tests/unit/net/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject
+++ b/components/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject
Binary files differ
diff --git a/tests/unit/net/parsable_mime/application/x-gzip/test.gz b/components/net/tests/parsable_mime/application/x-gzip/test.gz
index 3b99b73e6f0..3b99b73e6f0 100644
--- a/tests/unit/net/parsable_mime/application/x-gzip/test.gz
+++ b/components/net/tests/parsable_mime/application/x-gzip/test.gz
Binary files differ
diff --git a/tests/unit/net/parsable_mime/application/x-rar-compressed/test.rar b/components/net/tests/parsable_mime/application/x-rar-compressed/test.rar
index 920bd4d8a8c..920bd4d8a8c 100755
--- a/tests/unit/net/parsable_mime/application/x-rar-compressed/test.rar
+++ b/components/net/tests/parsable_mime/application/x-rar-compressed/test.rar
Binary files differ
diff --git a/tests/unit/net/parsable_mime/application/zip/test.zip b/components/net/tests/parsable_mime/application/zip/test.zip
index 5c74c9658c6..5c74c9658c6 100755
--- a/tests/unit/net/parsable_mime/application/zip/test.zip
+++ b/components/net/tests/parsable_mime/application/zip/test.zip
diff --git a/tests/unit/net/parsable_mime/audio/aiff/test.aif b/components/net/tests/parsable_mime/audio/aiff/test.aif
index ad2e35df40b..ad2e35df40b 100644
--- a/tests/unit/net/parsable_mime/audio/aiff/test.aif
+++ b/components/net/tests/parsable_mime/audio/aiff/test.aif
Binary files differ
diff --git a/tests/unit/net/parsable_mime/audio/basic/test.au b/components/net/tests/parsable_mime/audio/basic/test.au
index d4e53deb74a..d4e53deb74a 100644
--- a/tests/unit/net/parsable_mime/audio/basic/test.au
+++ b/components/net/tests/parsable_mime/audio/basic/test.au
Binary files differ
diff --git a/tests/unit/net/parsable_mime/audio/midi/test.mid b/components/net/tests/parsable_mime/audio/midi/test.mid
index a52838c62bc..a52838c62bc 100644
--- a/tests/unit/net/parsable_mime/audio/midi/test.mid
+++ b/components/net/tests/parsable_mime/audio/midi/test.mid
Binary files differ
diff --git a/tests/unit/net/parsable_mime/audio/mpeg/test.mp3 b/components/net/tests/parsable_mime/audio/mpeg/test.mp3
index 50786790311..50786790311 100644
--- a/tests/unit/net/parsable_mime/audio/mpeg/test.mp3
+++ b/components/net/tests/parsable_mime/audio/mpeg/test.mp3
Binary files differ
diff --git a/tests/unit/net/parsable_mime/audio/wave/test.wav b/components/net/tests/parsable_mime/audio/wave/test.wav
index f96276c063c..f96276c063c 100644
--- a/tests/unit/net/parsable_mime/audio/wave/test.wav
+++ b/components/net/tests/parsable_mime/audio/wave/test.wav
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/bmp/test.bmp b/components/net/tests/parsable_mime/image/bmp/test.bmp
index 8a1b10bae5e..8a1b10bae5e 100644
--- a/tests/unit/net/parsable_mime/image/bmp/test.bmp
+++ b/components/net/tests/parsable_mime/image/bmp/test.bmp
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/gif/test87a b/components/net/tests/parsable_mime/image/gif/test87a
index 8d49c776420..8d49c776420 100644
--- a/tests/unit/net/parsable_mime/image/gif/test87a
+++ b/components/net/tests/parsable_mime/image/gif/test87a
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/gif/test89a.gif b/components/net/tests/parsable_mime/image/gif/test89a.gif
index 0e2995e0821..0e2995e0821 100644
--- a/tests/unit/net/parsable_mime/image/gif/test89a.gif
+++ b/components/net/tests/parsable_mime/image/gif/test89a.gif
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/jpeg/test.jpg b/components/net/tests/parsable_mime/image/jpeg/test.jpg
index 7f758f65d13..7f758f65d13 100644
--- a/tests/unit/net/parsable_mime/image/jpeg/test.jpg
+++ b/components/net/tests/parsable_mime/image/jpeg/test.jpg
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/png/test.png b/components/net/tests/parsable_mime/image/png/test.png
index cc81374d4f5..cc81374d4f5 100644
--- a/tests/unit/net/parsable_mime/image/png/test.png
+++ b/components/net/tests/parsable_mime/image/png/test.png
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/webp/test.webp b/components/net/tests/parsable_mime/image/webp/test.webp
index ad88e62f94c..ad88e62f94c 100755
--- a/tests/unit/net/parsable_mime/image/webp/test.webp
+++ b/components/net/tests/parsable_mime/image/webp/test.webp
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/x-icon/test.ico b/components/net/tests/parsable_mime/image/x-icon/test.ico
index a2d0ee49098..a2d0ee49098 100644
--- a/tests/unit/net/parsable_mime/image/x-icon/test.ico
+++ b/components/net/tests/parsable_mime/image/x-icon/test.ico
Binary files differ
diff --git a/tests/unit/net/parsable_mime/image/x-icon/test_cursor.ico b/components/net/tests/parsable_mime/image/x-icon/test_cursor.ico
index 6029d6684d5..6029d6684d5 100644
--- a/tests/unit/net/parsable_mime/image/x-icon/test_cursor.ico
+++ b/components/net/tests/parsable_mime/image/x-icon/test_cursor.ico
Binary files differ
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_a_20.html b/components/net/tests/parsable_mime/text/html/text_html_a_20.html
index 1b9619279a7..1b9619279a7 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_a_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_a_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_a_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_a_20_u.html
index 887a1280650..887a1280650 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_a_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_a_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_a_3e.html b/components/net/tests/parsable_mime/text/html/text_html_a_3e.html
index 610cd08fea4..610cd08fea4 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_a_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_a_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_a_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_a_3e_u.html
index 48528fdf341..48528fdf341 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_a_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_a_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_b_20.html b/components/net/tests/parsable_mime/text/html/text_html_b_20.html
index 5977d2eeaab..5977d2eeaab 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_b_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_b_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_b_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_b_20_u.html
index a8a963b95f0..a8a963b95f0 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_b_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_b_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_b_3e.html b/components/net/tests/parsable_mime/text/html/text_html_b_3e.html
index dc79cd5d568..dc79cd5d568 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_b_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_b_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_b_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_b_3e_u.html
index 0d72d281aec..0d72d281aec 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_b_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_b_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_body_20.html b/components/net/tests/parsable_mime/text/html/text_html_body_20.html
index c72b1ad3bec..c72b1ad3bec 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_body_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_body_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_body_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_body_20_u.html
index 1d76ebb0f47..1d76ebb0f47 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_body_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_body_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_body_3e.html b/components/net/tests/parsable_mime/text/html/text_html_body_3e.html
index 4a66f59ef95..4a66f59ef95 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_body_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_body_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_body_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_body_3e_u.html
index b431695f3ab..b431695f3ab 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_body_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_body_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_br_20.html b/components/net/tests/parsable_mime/text/html/text_html_br_20.html
index d04df680012..d04df680012 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_br_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_br_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_br_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_br_20_u.html
index 1c0f0ce13ba..1c0f0ce13ba 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_br_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_br_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_br_3e.html b/components/net/tests/parsable_mime/text/html/text_html_br_3e.html
index 1d40ef06566..1d40ef06566 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_br_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_br_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_br_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_br_3e_u.html
index c4eae116f03..c4eae116f03 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_br_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_br_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_comment_20.html b/components/net/tests/parsable_mime/text/html/text_html_comment_20.html
index e9612efc73c..e9612efc73c 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_comment_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_comment_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_comment_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_comment_20_u.html
index e9612efc73c..e9612efc73c 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_comment_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_comment_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_comment_3e.html b/components/net/tests/parsable_mime/text/html/text_html_comment_3e.html
index 44a94ca5a7a..44a94ca5a7a 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_comment_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_comment_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_comment_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html
index 44a94ca5a7a..44a94ca5a7a 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_comment_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_div_20.html b/components/net/tests/parsable_mime/text/html/text_html_div_20.html
index 2ed34363b2f..2ed34363b2f 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_div_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_div_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_div_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_div_20_u.html
index b98886efd83..b98886efd83 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_div_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_div_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_div_3e.html b/components/net/tests/parsable_mime/text/html/text_html_div_3e.html
index ccf4ca8d70a..ccf4ca8d70a 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_div_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_div_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_div_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_div_3e_u.html
index c117f0f4cdd..c117f0f4cdd 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_div_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_div_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_doctype_20.html b/components/net/tests/parsable_mime/text/html/text_html_doctype_20.html
index dbeb5a41c2a..dbeb5a41c2a 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_doctype_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_doctype_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_doctype_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html
index acede44dffb..acede44dffb 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_doctype_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_doctype_3e.html b/components/net/tests/parsable_mime/text/html/text_html_doctype_3e.html
index 6a22ea8b978..6a22ea8b978 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_doctype_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_doctype_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_doctype_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html
index 8b16e40458e..8b16e40458e 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_doctype_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_font_20.html b/components/net/tests/parsable_mime/text/html/text_html_font_20.html
index a18fa850617..a18fa850617 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_font_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_font_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_font_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_font_20_u.html
index 6a31d2a8aba..6a31d2a8aba 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_font_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_font_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_font_3e.html b/components/net/tests/parsable_mime/text/html/text_html_font_3e.html
index 3605840fc5a..3605840fc5a 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_font_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_font_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_font_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_font_3e_u.html
index 1181517947b..1181517947b 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_font_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_font_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_h1_20.html b/components/net/tests/parsable_mime/text/html/text_html_h1_20.html
index 3ed0eb125ff..3ed0eb125ff 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_h1_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_h1_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_h1_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_h1_20_u.html
index f517b61487e..f517b61487e 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_h1_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_h1_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_h1_3e.html b/components/net/tests/parsable_mime/text/html/text_html_h1_3e.html
index af0bf8c56b9..af0bf8c56b9 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_h1_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_h1_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_h1_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html
index bae85229fcf..bae85229fcf 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_h1_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_head_20.html b/components/net/tests/parsable_mime/text/html/text_html_head_20.html
index eb322c946e0..eb322c946e0 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_head_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_head_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_head_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_head_20_u.html
index 899655a5a2c..899655a5a2c 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_head_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_head_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_head_3e.html b/components/net/tests/parsable_mime/text/html/text_html_head_3e.html
index 058c7dce4a9..058c7dce4a9 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_head_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_head_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_head_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_head_3e_u.html
index 8a33d623daa..8a33d623daa 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_head_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_head_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_iframe_20.html b/components/net/tests/parsable_mime/text/html/text_html_iframe_20.html
index e632915590a..e632915590a 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_iframe_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_iframe_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_iframe_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html
index 527a06e415c..527a06e415c 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_iframe_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_iframe_3e.html b/components/net/tests/parsable_mime/text/html/text_html_iframe_3e.html
index 9db0efd47d4..9db0efd47d4 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_iframe_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_iframe_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_iframe_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html
index e3512c8a5c2..e3512c8a5c2 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_iframe_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_p_20.html b/components/net/tests/parsable_mime/text/html/text_html_p_20.html
index a099441be2b..a099441be2b 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_p_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_p_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_p_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_p_20_u.html
index ff4befbde7b..ff4befbde7b 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_p_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_p_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_p_3e.html b/components/net/tests/parsable_mime/text/html/text_html_p_3e.html
index 98db18913d0..98db18913d0 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_p_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_p_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_p_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_p_3e_u.html
index 9d99a59ed08..9d99a59ed08 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_p_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_p_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_page_20.html b/components/net/tests/parsable_mime/text/html/text_html_page_20.html
index bb1c4572b25..bb1c4572b25 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_page_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_page_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_page_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_page_20_u.html
index b3300d9f4e4..b3300d9f4e4 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_page_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_page_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_page_3e.html b/components/net/tests/parsable_mime/text/html/text_html_page_3e.html
index e6a49c51924..e6a49c51924 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_page_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_page_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_page_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_page_3e_u.html
index 2b8ee203d25..2b8ee203d25 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_page_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_page_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_script_20.html b/components/net/tests/parsable_mime/text/html/text_html_script_20.html
index 620c629266c..620c629266c 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_script_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_script_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_script_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_script_20_u.html
index bd2c58e676c..bd2c58e676c 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_script_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_script_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_script_3e.html b/components/net/tests/parsable_mime/text/html/text_html_script_3e.html
index d59535f70cd..d59535f70cd 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_script_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_script_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_script_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_script_3e_u.html
index 625c13820f4..625c13820f4 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_script_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_script_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_style_20.html b/components/net/tests/parsable_mime/text/html/text_html_style_20.html
index 57bc2a1ecd7..57bc2a1ecd7 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_style_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_style_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_style_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_style_20_u.html
index 8163eca3c60..8163eca3c60 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_style_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_style_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_style_3e.html b/components/net/tests/parsable_mime/text/html/text_html_style_3e.html
index 229d5f951bd..229d5f951bd 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_style_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_style_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_style_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_style_3e_u.html
index 12d686e4953..12d686e4953 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_style_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_style_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_table_20.html b/components/net/tests/parsable_mime/text/html/text_html_table_20.html
index 27cccc6acd6..27cccc6acd6 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_table_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_table_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_table_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_table_20_u.html
index 556b46e7fc4..556b46e7fc4 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_table_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_table_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_table_3e.html b/components/net/tests/parsable_mime/text/html/text_html_table_3e.html
index 351ee543af8..351ee543af8 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_table_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_table_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_table_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_table_3e_u.html
index 6259870bfcf..6259870bfcf 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_table_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_table_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_title_20.html b/components/net/tests/parsable_mime/text/html/text_html_title_20.html
index f7d151658d9..f7d151658d9 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_title_20.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_title_20.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_title_20_u.html b/components/net/tests/parsable_mime/text/html/text_html_title_20_u.html
index 03a072d8ac0..03a072d8ac0 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_title_20_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_title_20_u.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_title_3e.html b/components/net/tests/parsable_mime/text/html/text_html_title_3e.html
index fedf57b9e4f..fedf57b9e4f 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_title_3e.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_title_3e.html
diff --git a/tests/unit/net/parsable_mime/text/html/text_html_title_3e_u.html b/components/net/tests/parsable_mime/text/html/text_html_title_3e_u.html
index 5fbf8a75c47..5fbf8a75c47 100644
--- a/tests/unit/net/parsable_mime/text/html/text_html_title_3e_u.html
+++ b/components/net/tests/parsable_mime/text/html/text_html_title_3e_u.html
diff --git a/tests/unit/net/parsable_mime/text/plain/utf16bebom.txt b/components/net/tests/parsable_mime/text/plain/utf16bebom.txt
index 9fb50d49fb8..9fb50d49fb8 100644
--- a/tests/unit/net/parsable_mime/text/plain/utf16bebom.txt
+++ b/components/net/tests/parsable_mime/text/plain/utf16bebom.txt
Binary files differ
diff --git a/tests/unit/net/parsable_mime/text/plain/utf16lebom.txt b/components/net/tests/parsable_mime/text/plain/utf16lebom.txt
index d79d81725ec..d79d81725ec 100644
--- a/tests/unit/net/parsable_mime/text/plain/utf16lebom.txt
+++ b/components/net/tests/parsable_mime/text/plain/utf16lebom.txt
Binary files differ
diff --git a/tests/unit/net/parsable_mime/text/plain/utf8bom.txt b/components/net/tests/parsable_mime/text/plain/utf8bom.txt
index 56ad8a265ef..56ad8a265ef 100644
--- a/tests/unit/net/parsable_mime/text/plain/utf8bom.txt
+++ b/components/net/tests/parsable_mime/text/plain/utf8bom.txt
diff --git a/tests/unit/net/parsable_mime/text/xml/feed.atom b/components/net/tests/parsable_mime/text/xml/feed.atom
index 893c3f27a8e..893c3f27a8e 100755
--- a/tests/unit/net/parsable_mime/text/xml/feed.atom
+++ b/components/net/tests/parsable_mime/text/xml/feed.atom
diff --git a/tests/unit/net/parsable_mime/text/xml/feed.rss b/components/net/tests/parsable_mime/text/xml/feed.rss
index 9dc94d32b51..9dc94d32b51 100644
--- a/tests/unit/net/parsable_mime/text/xml/feed.rss
+++ b/components/net/tests/parsable_mime/text/xml/feed.rss
diff --git a/tests/unit/net/parsable_mime/text/xml/rdf_rss.xml b/components/net/tests/parsable_mime/text/xml/rdf_rss.xml
index 4c58f82974e..4c58f82974e 100644
--- a/tests/unit/net/parsable_mime/text/xml/rdf_rss.xml
+++ b/components/net/tests/parsable_mime/text/xml/rdf_rss.xml
diff --git a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_1.xml b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml
index f6e486c5960..f6e486c5960 100644
--- a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_1.xml
+++ b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml
diff --git a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_2.xml b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml
index be8414382e5..be8414382e5 100644
--- a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_2.xml
+++ b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml
diff --git a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_3.xml b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml
index 5f0f03f1e2d..5f0f03f1e2d 100644
--- a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_3.xml
+++ b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml
diff --git a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_4.xml b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml
index c06a80cf1f8..c06a80cf1f8 100644
--- a/tests/unit/net/parsable_mime/text/xml/rdf_rss_ko_4.xml
+++ b/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml
diff --git a/tests/unit/net/parsable_mime/text/xml/test.xml b/components/net/tests/parsable_mime/text/xml/test.xml
index 8fe8c0e91cf..8fe8c0e91cf 100644
--- a/tests/unit/net/parsable_mime/text/xml/test.xml
+++ b/components/net/tests/parsable_mime/text/xml/test.xml
diff --git a/tests/unit/net/parsable_mime/unknown/binary_file b/components/net/tests/parsable_mime/unknown/binary_file
index ecf3bbcdf3e..ecf3bbcdf3e 100644
--- a/tests/unit/net/parsable_mime/unknown/binary_file
+++ b/components/net/tests/parsable_mime/unknown/binary_file
Binary files differ
diff --git a/tests/unit/net/parsable_mime/unknown/open_type b/components/net/tests/parsable_mime/unknown/open_type
index 9117b12600f..9117b12600f 100644
--- a/tests/unit/net/parsable_mime/unknown/open_type
+++ b/components/net/tests/parsable_mime/unknown/open_type
diff --git a/tests/unit/net/parsable_mime/unknown/true_type.ttf b/components/net/tests/parsable_mime/unknown/true_type.ttf
index c0142fea093..c0142fea093 100644
--- a/tests/unit/net/parsable_mime/unknown/true_type.ttf
+++ b/components/net/tests/parsable_mime/unknown/true_type.ttf
Binary files differ
diff --git a/tests/unit/net/parsable_mime/unknown/true_type_collection.ttc b/components/net/tests/parsable_mime/unknown/true_type_collection.ttc
index 42d3cef1e6d..42d3cef1e6d 100644
--- a/tests/unit/net/parsable_mime/unknown/true_type_collection.ttc
+++ b/components/net/tests/parsable_mime/unknown/true_type_collection.ttc
diff --git a/tests/unit/net/parsable_mime/video/avi/test.avi b/components/net/tests/parsable_mime/video/avi/test.avi
index f6cd837a924..f6cd837a924 100644
--- a/tests/unit/net/parsable_mime/video/avi/test.avi
+++ b/components/net/tests/parsable_mime/video/avi/test.avi
Binary files differ
diff --git a/tests/unit/net/parsable_mime/video/mp4/test.mp4 b/components/net/tests/parsable_mime/video/mp4/test.mp4
index 1fc478842f5..1fc478842f5 100644
--- a/tests/unit/net/parsable_mime/video/mp4/test.mp4
+++ b/components/net/tests/parsable_mime/video/mp4/test.mp4
Binary files differ
diff --git a/tests/unit/net/parsable_mime/video/webm/test.webm b/components/net/tests/parsable_mime/video/webm/test.webm
index da946da5290..da946da5290 100644
--- a/tests/unit/net/parsable_mime/video/webm/test.webm
+++ b/components/net/tests/parsable_mime/video/webm/test.webm
Binary files differ
diff --git a/tests/unit/net/resource_thread.rs b/components/net/tests/resource_thread.rs
index 8ad3081c224..8ad3081c224 100644
--- a/tests/unit/net/resource_thread.rs
+++ b/components/net/tests/resource_thread.rs
diff --git a/tests/unit/net/subresource_integrity.rs b/components/net/tests/subresource_integrity.rs
index d67da9c1775..d67da9c1775 100644
--- a/tests/unit/net/subresource_integrity.rs
+++ b/components/net/tests/subresource_integrity.rs
diff --git a/tests/unit/net/test.jpeg b/components/net/tests/test.jpeg
index 08f084cf549..08f084cf549 100644
--- a/tests/unit/net/test.jpeg
+++ b/components/net/tests/test.jpeg
Binary files differ
diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml
index 82ca26c6b9c..eb1774c6106 100644
--- a/components/net_traits/Cargo.toml
+++ b/components/net_traits/Cargo.toml
@@ -8,6 +8,8 @@ publish = false
[lib]
name = "net_traits"
path = "lib.rs"
+test = false
+doctest = false
[dependencies]
cookie = "0.10"
diff --git a/components/net_traits/response.rs b/components/net_traits/response.rs
index 0425b039517..39cbc3f0dea 100644
--- a/components/net_traits/response.rs
+++ b/components/net_traits/response.rs
@@ -10,6 +10,7 @@ use hyper::status::StatusCode;
use hyper_serde::Serde;
use servo_url::ServoUrl;
use std::sync::{Arc, Mutex};
+use std::sync::atomic::AtomicBool;
/// [Response type](https://fetch.spec.whatwg.org/#concept-response-type)
#[derive(Clone, Debug, Deserialize, MallocSizeOf, PartialEq, Serialize)]
@@ -113,7 +114,8 @@ pub struct Response {
/// whether or not to try to return the internal_response when asked for actual_response
pub return_internal: bool,
/// https://fetch.spec.whatwg.org/#concept-response-aborted
- pub aborted: bool,
+ #[ignore_malloc_size_of = "AtomicBool heap size undefined"]
+ pub aborted: Arc<AtomicBool>,
}
impl Response {
@@ -135,7 +137,7 @@ impl Response {
location_url: None,
internal_response: None,
return_internal: true,
- aborted: false,
+ aborted: Arc::new(AtomicBool::new(false)),
}
}
@@ -165,7 +167,7 @@ impl Response {
location_url: None,
internal_response: None,
return_internal: true,
- aborted: false,
+ aborted: Arc::new(AtomicBool::new(false)),
}
}
diff --git a/tests/unit/net_traits/image.rs b/components/net_traits/tests/image.rs
index e7d2d460d7e..238fae97050 100644
--- a/tests/unit/net_traits/image.rs
+++ b/components/net_traits/tests/image.rs
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate net_traits;
+
use net_traits::image::base::detect_image_format;
#[test]
diff --git a/tests/unit/net_traits/pub_domains.rs b/components/net_traits/tests/pub_domains.rs
index d18ecb06e0c..36e70cd39a8 100644
--- a/tests/unit/net_traits/pub_domains.rs
+++ b/components/net_traits/tests/pub_domains.rs
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate net_traits;
+
use net_traits::pub_domains::{is_pub_domain, is_reg_domain, pub_suffix, reg_suffix};
// These tests may need to be updated if the PSL changes.
diff --git a/tests/unit/net_traits/lib.rs b/components/net_traits/tests/whitespace.rs
index 64135a6a2d4..4954e0f67f4 100644
--- a/tests/unit/net_traits/lib.rs
+++ b/components/net_traits/tests/whitespace.rs
@@ -2,13 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#![cfg(test)]
-
extern crate net_traits;
-mod image;
-mod pub_domains;
-
#[test]
fn test_trim_http_whitespace() {
fn test_trim(in_: &[u8], out: &[u8]) {
diff --git a/components/remutex/Cargo.toml b/components/remutex/Cargo.toml
index 86c28838493..844a5f1aede 100644
--- a/components/remutex/Cargo.toml
+++ b/components/remutex/Cargo.toml
@@ -8,6 +8,8 @@ publish = false
[lib]
name = "servo_remutex"
path = "lib.rs"
+test = false
+doctest = false
[dependencies]
lazy_static = "1"
diff --git a/tests/unit/servo_remutex/lib.rs b/components/remutex/tests/smoke.rs
index 411c943923c..edd5ceb71f6 100644
--- a/tests/unit/servo_remutex/lib.rs
+++ b/components/remutex/tests/smoke.rs
@@ -10,8 +10,6 @@
// These tests came from https://github.com/rust-lang/rust/blob/master/src/libstd/sys/common/remutex.rs
-#![cfg(test)]
-
extern crate servo_remutex;
use servo_remutex::{ReentrantMutex, ReentrantMutexGuard};
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index a1beb33e8f8..4aae00f551b 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -23,9 +23,6 @@ phf_codegen = "0.7.18"
phf_shared = "0.7.18"
serde_json = "1.0"
-[target.'cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))'.dependencies]
-gecko-media = {git = "https://github.com/servo/gecko-media.git"}
-
[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tinyfiledialogs = "2.5.9"
@@ -68,7 +65,6 @@ mime_guess = "1.8.0"
mozjs = { version = "0.1.10", features = ["promises"]}
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
-nonzero = {path = "../nonzero"}
num-traits = "0.1.32"
offscreen_gl_context = { version = "0.14", features = ["serde"] }
open = "1.1.1"
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 4a377aa351f..92f6b3a71b6 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1422,7 +1422,7 @@ def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType.isAny():
return CGGeneric("JSVal")
if returnType.isObject() or returnType.isSpiderMonkeyInterface():
- result = CGGeneric("NonNullJSObjectPtr")
+ result = CGGeneric("NonNull<JSObject>")
if returnType.nullable():
result = CGWrapper(result, pre="Option<", post=">")
return result
@@ -2268,7 +2268,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, typedefs, config):
'dom::bindings::conversions::StringificationBehavior',
'dom::bindings::conversions::root_from_handlevalue',
'dom::bindings::error::throw_not_in_union',
- 'dom::bindings::nonnull::NonNullJSObjectPtr',
+ 'std::ptr::NonNull',
'dom::bindings::mozmap::MozMap',
'dom::bindings::root::DomRoot',
'dom::bindings::str::ByteString',
@@ -5811,7 +5811,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'dom::bindings::proxyhandler::get_expando_object',
'dom::bindings::proxyhandler::get_property_descriptor',
'dom::bindings::mozmap::MozMap',
- 'dom::bindings::nonnull::NonNullJSObjectPtr',
+ 'std::ptr::NonNull',
'dom::bindings::num::Finite',
'dom::bindings::str::ByteString',
'dom::bindings::str::DOMString',
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs
index 68318c53d70..e40a1d7092b 100644
--- a/components/script/dom/bindings/conversions.rs
+++ b/components/script/dom/bindings/conversions.rs
@@ -34,7 +34,6 @@
use dom::bindings::error::{Error, Fallible};
use dom::bindings::inheritance::Castable;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::num::Finite;
use dom::bindings::reflector::{DomObject, Reflector};
use dom::bindings::root::DomRoot;
@@ -54,7 +53,7 @@ use js::jsapi::{JS_GetLatin1StringCharsAndLength, JS_GetProperty, JS_GetReserved
use js::jsapi::{JS_GetTwoByteStringCharsAndLength, JS_IsArrayObject, JS_IsExceptionPending};
use js::jsapi::{JS_NewStringCopyN, JS_StringHasLatin1Chars, MutableHandleValue};
use js::jsval::{ObjectValue, StringValue, UndefinedValue};
-use js::rust::{ToString, get_object_class, is_dom_class, is_dom_object, maybe_wrap_value, maybe_wrap_object_value};
+use js::rust::{ToString, get_object_class, is_dom_class, is_dom_object, maybe_wrap_value};
use libc;
use num_traits::Float;
use servo_config::opts;
@@ -71,15 +70,6 @@ pub trait IDLInterface {
rustc_on_unimplemented = "The IDL interface `{Self}` is not derived from `{T}`.")]
pub trait DerivedFrom<T: Castable>: Castable {}
-// https://heycam.github.io/webidl/#es-object
-impl ToJSValConvertible for NonNullJSObjectPtr {
- #[inline]
- unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue) {
- rval.set(ObjectValue(self.get()));
- maybe_wrap_object_value(cx, rval);
- }
-}
-
impl<T: Float + ToJSValConvertible> ToJSValConvertible for Finite<T> {
#[inline]
unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue) {
diff --git a/components/script/dom/bindings/iterable.rs b/components/script/dom/bindings/iterable.rs
index 36cef24d4bd..15fbe7175cb 100644
--- a/components/script/dom/bindings/iterable.rs
+++ b/components/script/dom/bindings/iterable.rs
@@ -9,7 +9,6 @@
use dom::bindings::codegen::Bindings::IterableIteratorBinding::IterableKeyAndValueResult;
use dom::bindings::codegen::Bindings::IterableIteratorBinding::IterableKeyOrValueResult;
use dom::bindings::error::Fallible;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::bindings::root::{Dom, DomRoot};
use dom::bindings::trace::JSTraceable;
@@ -20,6 +19,7 @@ use js::jsapi::{HandleValue, Heap, JSContext, MutableHandleObject, JSObject};
use js::jsval::UndefinedValue;
use std::cell::Cell;
use std::ptr;
+use std::ptr::NonNull;
/// The values that an iterator will iterate over.
#[derive(JSTraceable, MallocSizeOf)]
@@ -73,7 +73,7 @@ impl<T: DomObject + JSTraceable + Iterable> IterableIterator<T> {
/// Return the next value from the iterable object.
#[allow(non_snake_case)]
- pub fn Next(&self, cx: *mut JSContext) -> Fallible<NonNullJSObjectPtr> {
+ pub fn Next(&self, cx: *mut JSContext) -> Fallible<NonNull<JSObject>> {
let index = self.index.get();
rooted!(in(cx) let mut value = UndefinedValue());
rooted!(in(cx) let mut rval = ptr::null_mut::<JSObject>());
@@ -105,8 +105,7 @@ impl<T: DomObject + JSTraceable + Iterable> IterableIterator<T> {
};
self.index.set(index + 1);
result.map(|_| {
- assert!(!rval.is_null());
- unsafe { NonNullJSObjectPtr::new_unchecked(rval.get()) }
+ NonNull::new(rval.get()).expect("got a null pointer")
})
}
}
diff --git a/components/script/dom/bindings/mod.rs b/components/script/dom/bindings/mod.rs
index 6fdf690588f..8ba3ea72332 100644
--- a/components/script/dom/bindings/mod.rs
+++ b/components/script/dom/bindings/mod.rs
@@ -145,7 +145,6 @@ pub mod interface;
pub mod iterable;
pub mod mozmap;
pub mod namespace;
-pub mod nonnull;
pub mod num;
pub mod proxyhandler;
pub mod refcounted;
diff --git a/components/script/dom/bindings/nonnull.rs b/components/script/dom/bindings/nonnull.rs
deleted file mode 100644
index 36dade7136b..00000000000
--- a/components/script/dom/bindings/nonnull.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-//! A wrapper type for `NonZero<*mut JSObject>`, to enable local trait impls
-
-use js::jsapi::JSObject;
-use nonzero::NonZero;
-
-/// A wrapper type for `NonZero<*mut JSObject>`, to enable local trait impls
-#[derive(Clone, Copy)]
-pub struct NonNullJSObjectPtr(NonZero<*mut JSObject>);
-
-impl NonNullJSObjectPtr {
- #[inline]
- pub unsafe fn new_unchecked(ptr: *mut JSObject) -> Self {
- NonNullJSObjectPtr(NonZero::new_unchecked(ptr))
- }
-
- #[inline]
- pub fn get(self) -> *mut JSObject {
- self.0.get()
- }
-}
diff --git a/components/script/dom/bindings/root.rs b/components/script/dom/bindings/root.rs
index 636c14b4d5c..18cb0062023 100644
--- a/components/script/dom/bindings/root.rs
+++ b/components/script/dom/bindings/root.rs
@@ -34,7 +34,6 @@ use js::jsapi::{JSObject, JSTracer, Heap};
use js::rust::GCMethods;
use malloc_size_of::{MallocSizeOf, MallocSizeOfOps};
use mitochondria::OnceCell;
-use nonzero::NonZero;
use script_layout_interface::TrustedNodeAddress;
use std::cell::{Cell, UnsafeCell};
use std::default::Default;
@@ -312,7 +311,7 @@ impl<'root, T: RootedReference<'root> + 'root> RootedReference<'root> for Option
/// This should only be used as a field in other DOM objects.
#[must_root]
pub struct Dom<T> {
- ptr: NonZero<*const T>,
+ ptr: ptr::NonNull<T>,
}
// Dom<T> is similar to Rc<T>, in that it's not always clear how to avoid double-counting.
@@ -339,7 +338,7 @@ impl<T: DomObject> Dom<T> {
pub fn from_ref(obj: &T) -> Dom<T> {
debug_assert!(thread_state::get().is_script());
Dom {
- ptr: unsafe { NonZero::new_unchecked(&*obj) },
+ ptr: ptr::NonNull::from(obj),
}
}
}
@@ -351,7 +350,7 @@ impl<T: DomObject> Deref for Dom<T> {
debug_assert!(thread_state::get().is_script());
// We can only have &Dom<T> from a rooted thing, so it's safe to deref
// it to &T.
- unsafe { &*self.ptr.get() }
+ unsafe { &*self.ptr.as_ptr() }
}
}
@@ -366,7 +365,7 @@ unsafe impl<T: DomObject> JSTraceable for Dom<T> {
trace_reflector(trc,
trace_info,
- (*self.ptr.get()).reflector());
+ (*self.ptr.as_ptr()).reflector());
}
}
@@ -374,7 +373,7 @@ unsafe impl<T: DomObject> JSTraceable for Dom<T> {
/// traits must be implemented on this.
#[allow_unrooted_interior]
pub struct LayoutDom<T> {
- ptr: NonZero<*const T>,
+ ptr: ptr::NonNull<T>,
}
impl<T: Castable> LayoutDom<T> {
@@ -384,9 +383,9 @@ impl<T: Castable> LayoutDom<T> {
T: DerivedFrom<U>
{
debug_assert!(thread_state::get().is_layout());
- let ptr: *const T = self.ptr.get();
+ let ptr: *mut T = self.ptr.as_ptr();
LayoutDom {
- ptr: unsafe { NonZero::new_unchecked(ptr as *const U) },
+ ptr: unsafe { ptr::NonNull::new_unchecked(ptr as *mut U) },
}
}
@@ -397,9 +396,9 @@ impl<T: Castable> LayoutDom<T> {
debug_assert!(thread_state::get().is_layout());
unsafe {
if (*self.unsafe_get()).is::<U>() {
- let ptr: *const T = self.ptr.get();
+ let ptr: *mut T = self.ptr.as_ptr();
Some(LayoutDom {
- ptr: NonZero::new_unchecked(ptr as *const U),
+ ptr: ptr::NonNull::new_unchecked(ptr as *mut U),
})
} else {
None
@@ -412,7 +411,7 @@ impl<T: DomObject> LayoutDom<T> {
/// Get the reflector.
pub unsafe fn get_jsobject(&self) -> *mut JSObject {
debug_assert!(thread_state::get().is_layout());
- (*self.ptr.get()).reflector().get_jsobject().get()
+ (*self.ptr.as_ptr()).reflector().get_jsobject().get()
}
}
@@ -420,7 +419,7 @@ impl<T> Copy for LayoutDom<T> {}
impl<T> PartialEq for Dom<T> {
fn eq(&self, other: &Dom<T>) -> bool {
- self.ptr == other.ptr
+ self.ptr.as_ptr() == other.ptr.as_ptr()
}
}
@@ -428,7 +427,7 @@ impl<T> Eq for Dom<T> {}
impl<T> PartialEq for LayoutDom<T> {
fn eq(&self, other: &LayoutDom<T>) -> bool {
- self.ptr == other.ptr
+ self.ptr.as_ptr() == other.ptr.as_ptr()
}
}
@@ -436,13 +435,13 @@ impl<T> Eq for LayoutDom<T> {}
impl<T> Hash for Dom<T> {
fn hash<H: Hasher>(&self, state: &mut H) {
- self.ptr.hash(state)
+ self.ptr.as_ptr().hash(state)
}
}
impl<T> Hash for LayoutDom<T> {
fn hash<H: Hasher>(&self, state: &mut H) {
- self.ptr.hash(state)
+ self.ptr.as_ptr().hash(state)
}
}
@@ -474,7 +473,7 @@ impl LayoutDom<Node> {
debug_assert!(thread_state::get().is_layout());
let TrustedNodeAddress(addr) = inner;
LayoutDom {
- ptr: NonZero::new_unchecked(addr as *const Node),
+ ptr: ptr::NonNull::new_unchecked(addr as *const Node as *mut Node),
}
}
}
@@ -700,7 +699,7 @@ impl<T: DomObject> LayoutDom<T> {
/// this is unsafe is what necessitates the layout wrappers.)
pub unsafe fn unsafe_get(&self) -> *const T {
debug_assert!(thread_state::get().is_layout());
- self.ptr.get()
+ self.ptr.as_ptr()
}
/// Returns a reference to the interior of this JS object. This method is
@@ -708,7 +707,7 @@ impl<T: DomObject> LayoutDom<T> {
/// mutate DOM nodes.
pub fn get_for_script(&self) -> &T {
debug_assert!(thread_state::get().is_script());
- unsafe { &*self.ptr.get() }
+ unsafe { &*self.ptr.as_ptr() }
}
}
diff --git a/components/script/dom/bindings/weakref.rs b/components/script/dom/bindings/weakref.rs
index 2aa12490867..e4e5f00103f 100644
--- a/components/script/dom/bindings/weakref.rs
+++ b/components/script/dom/bindings/weakref.rs
@@ -18,10 +18,10 @@ use js::jsapi::{JSTracer, JS_GetReservedSlot, JS_SetReservedSlot};
use js::jsval::PrivateValue;
use libc::c_void;
use malloc_size_of::{MallocSizeOf, MallocSizeOfOps};
-use nonzero::NonZero;
use std::cell::{Cell, UnsafeCell};
use std::mem;
use std::ops::{Deref, DerefMut, Drop};
+use std::ptr;
/// The index of the slot wherein a pointer to the weak holder cell is
/// stored for weak-referenceable bindings. We use slot 1 for holding it,
@@ -30,9 +30,10 @@ use std::ops::{Deref, DerefMut, Drop};
pub const DOM_WEAK_SLOT: u32 = 1;
/// A weak reference to a JS-managed DOM object.
+#[allow(unrooted_must_root)]
#[allow_unrooted_interior]
pub struct WeakRef<T: WeakReferenceable> {
- ptr: NonZero<*mut WeakBox<T>>,
+ ptr: ptr::NonNull<WeakBox<T>>,
}
/// The inner box of weak references, public for the finalization in codegen.
@@ -42,7 +43,7 @@ pub struct WeakBox<T: WeakReferenceable> {
/// have already been set to `None`. The pointee contributes one to the count.
pub count: Cell<usize>,
/// The pointer to the JS-managed object, set to None when it is collected.
- pub value: Cell<Option<NonZero<*const T>>>,
+ pub value: Cell<Option<ptr::NonNull<T>>>,
}
/// Trait implemented by weak-referenceable interfaces.
@@ -58,7 +59,7 @@ pub trait WeakReferenceable: DomObject + Sized {
trace!("Creating new WeakBox holder for {:p}.", self);
ptr = Box::into_raw(Box::new(WeakBox {
count: Cell::new(1),
- value: Cell::new(Some(NonZero::new_unchecked(self))),
+ value: Cell::new(Some(ptr::NonNull::from(self))),
}));
JS_SetReservedSlot(object, DOM_WEAK_SLOT, PrivateValue(ptr as *const c_void));
}
@@ -70,7 +71,7 @@ pub trait WeakReferenceable: DomObject + Sized {
new_count);
box_.count.set(new_count);
WeakRef {
- ptr: NonZero::new_unchecked(ptr),
+ ptr: ptr::NonNull::new_unchecked(ptr),
}
}
}
@@ -86,21 +87,21 @@ impl<T: WeakReferenceable> WeakRef<T> {
/// DomRoot a weak reference. Returns `None` if the object was already collected.
pub fn root(&self) -> Option<DomRoot<T>> {
- unsafe { &*self.ptr.get() }.value.get().map(|ptr| unsafe {
- DomRoot::from_ref(&*ptr.get())
+ unsafe { &*self.ptr.as_ptr() }.value.get().map(|ptr| unsafe {
+ DomRoot::from_ref(&*ptr.as_ptr())
})
}
/// Return whether the weakly-referenced object is still alive.
pub fn is_alive(&self) -> bool {
- unsafe { &*self.ptr.get() }.value.get().is_some()
+ unsafe { &*self.ptr.as_ptr() }.value.get().is_some()
}
}
impl<T: WeakReferenceable> Clone for WeakRef<T> {
fn clone(&self) -> WeakRef<T> {
unsafe {
- let box_ = &*self.ptr.get();
+ let box_ = &*self.ptr.as_ptr();
let new_count = box_.count.get() + 1;
box_.count.set(new_count);
WeakRef {
@@ -119,7 +120,8 @@ impl<T: WeakReferenceable> MallocSizeOf for WeakRef<T> {
impl<T: WeakReferenceable> PartialEq for WeakRef<T> {
fn eq(&self, other: &Self) -> bool {
unsafe {
- (*self.ptr.get()).value.get() == (*other.ptr.get()).value.get()
+ (*self.ptr.as_ptr()).value.get().map(ptr::NonNull::as_ptr) ==
+ (*other.ptr.as_ptr()).value.get().map(ptr::NonNull::as_ptr)
}
}
}
@@ -127,8 +129,8 @@ impl<T: WeakReferenceable> PartialEq for WeakRef<T> {
impl<T: WeakReferenceable> PartialEq<T> for WeakRef<T> {
fn eq(&self, other: &T) -> bool {
unsafe {
- match (*self.ptr.get()).value.get() {
- Some(ptr) => ptr.get() == other,
+ match self.ptr.as_ref().value.get() {
+ Some(ptr) => ptr::eq(ptr.as_ptr(), other),
None => false,
}
}
@@ -145,7 +147,7 @@ impl<T: WeakReferenceable> Drop for WeakRef<T> {
fn drop(&mut self) {
unsafe {
let (count, value) = {
- let weak_box = &*self.ptr.get();
+ let weak_box = &*self.ptr.as_ptr();
assert!(weak_box.count.get() > 0);
let count = weak_box.count.get() - 1;
weak_box.count.set(count);
@@ -153,7 +155,7 @@ impl<T: WeakReferenceable> Drop for WeakRef<T> {
};
if count == 0 {
assert!(value.is_none());
- mem::drop(Box::from_raw(self.ptr.get()));
+ mem::drop(Box::from_raw(self.ptr.as_ptr()));
}
}
}
diff --git a/components/script/dom/crypto.rs b/components/script/dom/crypto.rs
index 1a13194151c..71e67e46b9a 100644
--- a/components/script/dom/crypto.rs
+++ b/components/script/dom/crypto.rs
@@ -6,7 +6,6 @@ use dom::bindings::cell::DomRefCell;
use dom::bindings::codegen::Bindings::CryptoBinding;
use dom::bindings::codegen::Bindings::CryptoBinding::CryptoMethods;
use dom::bindings::error::{Error, Fallible};
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::root::DomRoot;
use dom::globalscope::GlobalScope;
@@ -14,6 +13,7 @@ use dom_struct::dom_struct;
use js::jsapi::{JSContext, JSObject};
use js::jsapi::Type;
use servo_rand::{ServoRng, Rng};
+use std::ptr::NonNull;
unsafe_no_jsmanaged_fields!(ServoRng);
@@ -44,7 +44,7 @@ impl CryptoMethods for Crypto {
unsafe fn GetRandomValues(&self,
_cx: *mut JSContext,
input: *mut JSObject)
- -> Fallible<NonNullJSObjectPtr> {
+ -> Fallible<NonNull<JSObject>> {
assert!(!input.is_null());
typedarray!(in(_cx) let mut array_buffer_view: ArrayBufferView = input);
let (array_type, mut data) = match array_buffer_view.as_mut() {
@@ -65,7 +65,7 @@ impl CryptoMethods for Crypto {
self.rng.borrow_mut().fill_bytes(&mut data);
- Ok(NonNullJSObjectPtr::new_unchecked(input))
+ Ok(NonNull::new_unchecked(input))
}
}
diff --git a/components/script/dom/cssrulelist.rs b/components/script/dom/cssrulelist.rs
index 1f800a6a0b4..baa685d5a72 100644
--- a/components/script/dom/cssrulelist.rs
+++ b/components/script/dom/cssrulelist.rs
@@ -103,7 +103,7 @@ impl CSSRuleList {
let parent_stylesheet = &*self.parent_stylesheet;
let dom_rule = CSSRule::new_specific(&window, parent_stylesheet, new_rule);
self.dom_rules.borrow_mut().insert(index, MutNullableDom::new(Some(&*dom_rule)));
- Ok((idx))
+ Ok(idx)
}
// In case of a keyframe rule, index must be valid.
diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs
index b9bf61c1924..2699bda9b07 100644
--- a/components/script/dom/cssstyledeclaration.rs
+++ b/components/script/dom/cssstyledeclaration.rs
@@ -21,7 +21,7 @@ use style::properties::{DeclarationSource, Importance, PropertyDeclarationBlock,
use style::properties::{parse_one_declaration_into, parse_style_attribute, SourcePropertyDeclaration};
use style::selector_parser::PseudoElement;
use style::shared_lock::Locked;
-use style_traits::{ParsingMode, ToCss};
+use style_traits::ParsingMode;
// http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface
#[dom_struct]
@@ -85,7 +85,8 @@ impl CSSStyleOwner {
// [1]: https://github.com/whatwg/html/issues/2306
if let Some(pdb) = attr {
let guard = shared_lock.read();
- let serialization = pdb.read_with(&guard).to_css_string();
+ let mut serialization = String::new();
+ pdb.read_with(&guard).to_css(&mut serialization).unwrap();
el.set_attribute(&local_name!("style"),
AttrValue::Declaration(serialization,
pdb));
@@ -415,7 +416,8 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
self.owner.with_block(|pdb| {
pdb.declarations().get(index as usize).map(|declaration| {
let important = pdb.declarations_importance().get(index);
- let mut css = declaration.to_css_string();
+ let mut css = String::new();
+ declaration.to_css(&mut css).unwrap();
if important {
css += " !important";
}
@@ -427,7 +429,9 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
// https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-csstext
fn CssText(&self) -> DOMString {
self.owner.with_block(|pdb| {
- DOMString::from(pdb.to_css_string())
+ let mut serialization = String::new();
+ pdb.to_css(&mut serialization).unwrap();
+ DOMString::from(serialization)
})
}
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index aecc0b0d0e7..a833ac75f58 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -21,7 +21,6 @@ use dom::bindings::codegen::Bindings::WindowBinding::{FrameRequestCallback, Scro
use dom::bindings::codegen::UnionTypes::NodeOrString;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::inheritance::{Castable, ElementTypeId, HTMLElementTypeId, NodeTypeId};
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::num::Finite;
use dom::bindings::refcounted::{Trusted, TrustedPromise};
use dom::bindings::reflector::{DomObject, reflect_dom_object};
@@ -96,7 +95,7 @@ use html5ever::{LocalName, Namespace, QualName};
use hyper::header::{Header, SetCookie};
use hyper_serde::Serde;
use ipc_channel::ipc::{self, IpcSender};
-use js::jsapi::{JSContext, JSRuntime};
+use js::jsapi::{JSContext, JSObject, JSRuntime};
use js::jsapi::JS_GetRuntime;
use metrics::{InteractiveFlag, InteractiveMetrics, InteractiveWindow, ProfilerMetadataFactory, ProgressiveWebMetric};
use msg::constellation_msg::{BrowsingContextId, Key, KeyModifiers, KeyState, TopLevelBrowsingContextId};
@@ -125,6 +124,7 @@ use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::default::Default;
use std::iter::once;
use std::mem;
+use std::ptr::NonNull;
use std::rc::Rc;
use std::time::{Duration, Instant};
use style::attr::AttrValue;
@@ -3554,7 +3554,7 @@ impl DocumentMethods for Document {
#[allow(unsafe_code)]
// https://html.spec.whatwg.org/multipage/#dom-tree-accessors:dom-document-nameditem-filter
- unsafe fn NamedGetter(&self, _cx: *mut JSContext, name: DOMString) -> Option<NonNullJSObjectPtr> {
+ unsafe fn NamedGetter(&self, _cx: *mut JSContext, name: DOMString) -> Option<NonNull<JSObject>> {
#[derive(JSTraceable, MallocSizeOf)]
struct NamedElementFilter {
name: Atom,
@@ -3611,7 +3611,7 @@ impl DocumentMethods for Document {
if elements.peek().is_none() {
// TODO: Step 2.
// Step 3.
- return Some(NonNullJSObjectPtr::new_unchecked(first.reflector().get_jsobject().get()));
+ return Some(NonNull::new_unchecked(first.reflector().get_jsobject().get()));
}
} else {
return None;
@@ -3622,7 +3622,7 @@ impl DocumentMethods for Document {
name: name,
};
let collection = HTMLCollection::create(self.window(), root, Box::new(filter));
- Some(NonNullJSObjectPtr::new_unchecked(collection.reflector().get_jsobject().get()))
+ Some(NonNull::new_unchecked(collection.reflector().get_jsobject().get()))
}
// https://html.spec.whatwg.org/multipage/#dom-tree-accessors:supported-property-names
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 30ac45802a8..c6224e7dc87 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -89,7 +89,6 @@ use script_layout_interface::message::ReflowGoal;
use script_thread::ScriptThread;
use selectors::Element as SelectorsElement;
use selectors::attr::{AttrSelectorOperation, NamespaceConstraint, CaseSensitivity};
-use selectors::context::VisitedHandlingMode;
use selectors::matching::{ElementSelectorFlags, MatchingContext};
use selectors::sink::Push;
use servo_arc::Arc;
@@ -349,11 +348,12 @@ impl Element {
}
// https://drafts.csswg.org/cssom-view/#css-layout-box
- // Elements that have a computed value of the display property
- // that is table-column or table-column-group
- // FIXME: Currently, it is assumed to be true always
+ //
+ // We'll have no content box if there's no fragment for the node, and we use
+ // bounding_content_box, for simplicity, to detect this (rather than making a more specific
+ // query to the layout thread).
fn has_css_layout_box(&self) -> bool {
- true
+ self.upcast::<Node>().bounding_content_box().is_some()
}
// https://drafts.csswg.org/cssom-view/#potentially-scrollable
@@ -2636,7 +2636,6 @@ impl<'a> SelectorsElement for DomRoot<Element> {
&self,
pseudo_class: &NonTSPseudoClass,
_: &mut MatchingContext<Self::Impl>,
- _: VisitedHandlingMode,
_: &mut F,
) -> bool
where
diff --git a/components/script/dom/gamepad.rs b/components/script/dom/gamepad.rs
index e5381d5587b..769b1ee548f 100644
--- a/components/script/dom/gamepad.rs
+++ b/components/script/dom/gamepad.rs
@@ -5,7 +5,6 @@
use dom::bindings::codegen::Bindings::GamepadBinding;
use dom::bindings::codegen::Bindings::GamepadBinding::GamepadMethods;
use dom::bindings::inheritance::Castable;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::num::Finite;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::bindings::root::{Dom, DomRoot};
@@ -21,6 +20,7 @@ use js::jsapi::{Heap, JSContext, JSObject};
use js::typedarray::{Float64Array, CreateWith};
use std::cell::Cell;
use std::ptr;
+use std::ptr::NonNull;
use webvr_traits::{WebVRGamepadData, WebVRGamepadHand, WebVRGamepadState};
#[dom_struct]
@@ -131,8 +131,8 @@ impl GamepadMethods for Gamepad {
#[allow(unsafe_code)]
// https://w3c.github.io/gamepad/#dom-gamepad-axes
- unsafe fn Axes(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.axes.get())
+ unsafe fn Axes(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.axes.get())
}
// https://w3c.github.io/gamepad/#dom-gamepad-buttons
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 426f5ae32b4..1122e267e7e 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -31,13 +31,10 @@ use dom::node::{window_from_node, document_from_node, Node, UnbindContext};
use dom::promise::Promise;
use dom::virtualmethods::VirtualMethods;
use dom_struct::dom_struct;
-#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
-use gecko_media::{CanPlayType, GeckoMedia};
use html5ever::{LocalName, Prefix};
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use microtask::{Microtask, MicrotaskRunnable};
-#[allow(unused_imports)]
use mime::{Mime, SubLevel, TopLevel};
use net_traits::{FetchResponseListener, FetchMetadata, Metadata, NetworkError};
use net_traits::request::{CredentialsMode, Destination, RequestInit};
@@ -870,27 +867,6 @@ impl HTMLMediaElementMethods for HTMLMediaElement {
self.media_element_load_algorithm();
}
- #[cfg(all(
- any(target_os = "macos", target_os = "linux"),
- not(any(target_arch = "arm", target_arch = "aarch64")),
- ))]
- // https://html.spec.whatwg.org/multipage/#dom-navigator-canplaytype
- fn CanPlayType(&self, type_: DOMString) -> CanPlayTypeResult {
- let gecko_media = match GeckoMedia::get() {
- Ok(gecko_media) => gecko_media,
- Err(_) => return CanPlayTypeResult::_empty,
- };
- match gecko_media.can_play_type(&type_) {
- CanPlayType::No => CanPlayTypeResult::_empty,
- CanPlayType::Maybe => CanPlayTypeResult::Maybe,
- CanPlayType::Probably => CanPlayTypeResult::Probably
- }
- }
-
- #[cfg(not(all(
- any(target_os = "macos", target_os = "linux"),
- not(any(target_arch = "arm", target_arch = "aarch64")),
- )))]
// https://html.spec.whatwg.org/multipage/#dom-navigator-canplaytype
fn CanPlayType(&self, type_: DOMString) -> CanPlayTypeResult {
match type_.parse::<Mime>() {
diff --git a/components/script/dom/imagedata.rs b/components/script/dom/imagedata.rs
index 6be4e5d89c2..9e80d86d089 100644
--- a/components/script/dom/imagedata.rs
+++ b/components/script/dom/imagedata.rs
@@ -5,7 +5,6 @@
use dom::bindings::codegen::Bindings::ImageDataBinding;
use dom::bindings::codegen::Bindings::ImageDataBinding::ImageDataMethods;
use dom::bindings::error::{Fallible, Error};
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::root::DomRoot;
use dom::globalscope::GlobalScope;
@@ -16,6 +15,7 @@ use js::rust::Runtime;
use js::typedarray::{Uint8ClampedArray, CreateWith};
use std::default::Default;
use std::ptr;
+use std::ptr::NonNull;
use std::vec::Vec;
#[dom_struct]
@@ -159,8 +159,7 @@ impl ImageDataMethods for ImageData {
#[allow(unsafe_code)]
// https://html.spec.whatwg.org/multipage/#dom-imagedata-data
- unsafe fn Data(&self, _: *mut JSContext) -> NonNullJSObjectPtr {
- assert!(!self.data.get().is_null());
- NonNullJSObjectPtr::new_unchecked(self.data.get())
+ unsafe fn Data(&self, _: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new(self.data.get()).expect("got a null pointer")
}
}
diff --git a/components/script/dom/medialist.rs b/components/script/dom/medialist.rs
index 6ae318da582..449c3c19ea6 100644
--- a/components/script/dom/medialist.rs
+++ b/components/script/dom/medialist.rs
@@ -93,12 +93,11 @@ impl MediaListMethods for MediaList {
// https://drafts.csswg.org/cssom/#dom-medialist-item
fn Item(&self, index: u32) -> Option<DOMString> {
let guard = self.shared_lock().read();
- self.media_queries.read_with(&guard).media_queries
- .get(index as usize).and_then(|query| {
- let mut s = String::new();
- query.to_css(&mut s).unwrap();
- Some(DOMString::from_string(s))
- })
+ self.media_queries
+ .read_with(&guard)
+ .media_queries
+ .get(index as usize)
+ .map(|query| query.to_css_string().into())
}
// https://drafts.csswg.org/cssom/#dom-medialist-item
diff --git a/components/script/dom/mediaquerylist.rs b/components/script/dom/mediaquerylist.rs
index e89e7d4d744..4c6be0091b1 100644
--- a/components/script/dom/mediaquerylist.rs
+++ b/components/script/dom/mediaquerylist.rs
@@ -83,9 +83,7 @@ impl MediaQueryList {
impl MediaQueryListMethods for MediaQueryList {
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-media
fn Media(&self) -> DOMString {
- let mut s = String::new();
- self.media_query_list.to_css(&mut s).unwrap();
- DOMString::from_string(s)
+ self.media_query_list.to_css_string().into()
}
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-matches
diff --git a/components/script/dom/performanceobserver.rs b/components/script/dom/performanceobserver.rs
index 96ad99edf92..af43fe76246 100644
--- a/components/script/dom/performanceobserver.rs
+++ b/components/script/dom/performanceobserver.rs
@@ -106,7 +106,7 @@ impl PerformanceObserverMethods for PerformanceObserver {
// step 2
// There must be at least one valid entry type.
if entry_types.is_empty() {
- return Err((Error::Type("entryTypes cannot be empty".to_string())));
+ return Err(Error::Type("entryTypes cannot be empty".to_string()));
}
// step 3-4-5
diff --git a/components/script/dom/screen.rs b/components/script/dom/screen.rs
index bec082e9729..3cd54034994 100644
--- a/components/script/dom/screen.rs
+++ b/components/script/dom/screen.rs
@@ -39,14 +39,14 @@ impl Screen {
let (send, recv) = ipc::channel::<(Size2D<u32>)>().unwrap();
self.window.upcast::<GlobalScope>()
.script_to_constellation_chan().send(ScriptMsg::GetScreenSize(send)).unwrap();
- recv.recv().unwrap_or((Size2D::zero()))
+ recv.recv().unwrap_or(Size2D::zero())
}
fn screen_avail_size(&self) -> Size2D<u32> {
let (send, recv) = ipc::channel::<(Size2D<u32>)>().unwrap();
self.window.upcast::<GlobalScope>()
.script_to_constellation_chan().send(ScriptMsg::GetScreenAvailSize(send)).unwrap();
- recv.recv().unwrap_or((Size2D::zero()))
+ recv.recv().unwrap_or(Size2D::zero())
}
}
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index 6ffe2efefdd..2dd77427590 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -21,7 +21,6 @@ use dom::bindings::codegen::UnionTypes::{StringOrLongSequence, StringOrStringSeq
use dom::bindings::codegen::UnionTypes::{StringOrUnsignedLong, StringOrBoolean, UnsignedLongOrBoolean};
use dom::bindings::error::{Error, Fallible};
use dom::bindings::mozmap::MozMap;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::num::Finite;
use dom::bindings::refcounted::TrustedPromise;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
@@ -43,6 +42,7 @@ use script_traits::MsDuration;
use servo_config::prefs::PREFS;
use std::borrow::ToOwned;
use std::ptr;
+use std::ptr::NonNull;
use std::rc::Rc;
use timers::OneshotTimerCallback;
@@ -152,20 +152,18 @@ impl TestBindingMethods for TestBinding {
}
fn SetUnion9Attribute(&self, _: ByteStringOrLong) {}
#[allow(unsafe_code)]
- unsafe fn ArrayAttribute(&self, cx: *mut JSContext) -> NonNullJSObjectPtr {
+ unsafe fn ArrayAttribute(&self, cx: *mut JSContext) -> NonNull<JSObject> {
rooted!(in(cx) let array = JS_NewUint8ClampedArray(cx, 16));
- assert!(!array.is_null());
- NonNullJSObjectPtr::new_unchecked(array.get())
+ NonNull::new(array.get()).expect("got a null pointer")
}
#[allow(unsafe_code)]
unsafe fn AnyAttribute(&self, _: *mut JSContext) -> JSVal { NullValue() }
#[allow(unsafe_code)]
unsafe fn SetAnyAttribute(&self, _: *mut JSContext, _: HandleValue) {}
#[allow(unsafe_code)]
- unsafe fn ObjectAttribute(&self, cx: *mut JSContext) -> NonNullJSObjectPtr {
+ unsafe fn ObjectAttribute(&self, cx: *mut JSContext) -> NonNull<JSObject> {
rooted!(in(cx) let obj = JS_NewPlainObject(cx));
- assert!(!obj.is_null());
- NonNullJSObjectPtr::new_unchecked(obj.get())
+ NonNull::new(obj.get()).expect("got a null pointer")
}
#[allow(unsafe_code)]
unsafe fn SetObjectAttribute(&self, _: *mut JSContext, _: *mut JSObject) {}
@@ -221,7 +219,7 @@ impl TestBindingMethods for TestBinding {
self.url.set(url);
}
#[allow(unsafe_code)]
- unsafe fn GetObjectAttributeNullable(&self, _: *mut JSContext) -> Option<NonNullJSObjectPtr> { None }
+ unsafe fn GetObjectAttributeNullable(&self, _: *mut JSContext) -> Option<NonNull<JSObject>> { None }
#[allow(unsafe_code)]
unsafe fn SetObjectAttributeNullable(&self, _: *mut JSContext, _: *mut JSObject) {}
fn GetUnionAttributeNullable(&self) -> Option<HTMLElementOrLong> {
@@ -273,7 +271,7 @@ impl TestBindingMethods for TestBinding {
#[allow(unsafe_code)]
unsafe fn ReceiveAny(&self, _: *mut JSContext) -> JSVal { NullValue() }
#[allow(unsafe_code)]
- unsafe fn ReceiveObject(&self, cx: *mut JSContext) -> NonNullJSObjectPtr {
+ unsafe fn ReceiveObject(&self, cx: *mut JSContext) -> NonNull<JSObject> {
self.ObjectAttribute(cx)
}
fn ReceiveUnion(&self) -> HTMLElementOrLong { HTMLElementOrLong::Long(0) }
@@ -317,7 +315,7 @@ impl TestBindingMethods for TestBinding {
Some(Blob::new(&self.global(), BlobImpl::new_from_bytes(vec![]), "".to_owned()))
}
#[allow(unsafe_code)]
- unsafe fn ReceiveNullableObject(&self, cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn ReceiveNullableObject(&self, cx: *mut JSContext) -> Option<NonNull<JSObject>> {
self.GetObjectAttributeNullable(cx)
}
fn ReceiveNullableUnion(&self) -> Option<HTMLElementOrLong> {
diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs
index 8fb97ac9e78..cc0eae4e5a2 100644
--- a/components/script/dom/textencoder.rs
+++ b/components/script/dom/textencoder.rs
@@ -5,7 +5,6 @@
use dom::bindings::codegen::Bindings::TextEncoderBinding;
use dom::bindings::codegen::Bindings::TextEncoderBinding::TextEncoderMethods;
use dom::bindings::error::Fallible;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::root::DomRoot;
use dom::bindings::str::{DOMString, USVString};
@@ -14,6 +13,7 @@ use dom_struct::dom_struct;
use js::jsapi::{JSContext, JSObject};
use js::typedarray::{Uint8Array, CreateWith};
use std::ptr;
+use std::ptr::NonNull;
#[dom_struct]
pub struct TextEncoder {
@@ -47,12 +47,12 @@ impl TextEncoderMethods for TextEncoder {
#[allow(unsafe_code)]
// https://encoding.spec.whatwg.org/#dom-textencoder-encode
- unsafe fn Encode(&self, cx: *mut JSContext, input: USVString) -> NonNullJSObjectPtr {
+ unsafe fn Encode(&self, cx: *mut JSContext, input: USVString) -> NonNull<JSObject> {
let encoded = input.0.as_bytes();
rooted!(in(cx) let mut js_object = ptr::null_mut::<JSObject>());
assert!(Uint8Array::create(cx, CreateWith::Slice(&encoded), js_object.handle_mut()).is_ok());
- NonNullJSObjectPtr::new_unchecked(js_object.get())
+ NonNull::new_unchecked(js_object.get())
}
}
diff --git a/components/script/dom/vreyeparameters.rs b/components/script/dom/vreyeparameters.rs
index 496277ba65d..333c717f06b 100644
--- a/components/script/dom/vreyeparameters.rs
+++ b/components/script/dom/vreyeparameters.rs
@@ -5,7 +5,6 @@
use dom::bindings::cell::DomRefCell;
use dom::bindings::codegen::Bindings::VREyeParametersBinding;
use dom::bindings::codegen::Bindings::VREyeParametersBinding::VREyeParametersMethods;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::root::{Dom, DomRoot};
use dom::globalscope::GlobalScope;
@@ -15,6 +14,7 @@ use js::jsapi::{Heap, JSContext, JSObject};
use js::typedarray::{Float32Array, CreateWith};
use std::default::Default;
use std::ptr;
+use std::ptr::NonNull;
use webvr_traits::WebVREyeParameters;
#[dom_struct]
@@ -60,8 +60,8 @@ impl VREyeParameters {
impl VREyeParametersMethods for VREyeParameters {
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vreyeparameters-offset
- unsafe fn Offset(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.offset.get())
+ unsafe fn Offset(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.offset.get())
}
// https://w3c.github.io/webvr/#dom-vreyeparameters-fieldofview
diff --git a/components/script/dom/vrframedata.rs b/components/script/dom/vrframedata.rs
index 530a3727020..621f70a55c9 100644
--- a/components/script/dom/vrframedata.rs
+++ b/components/script/dom/vrframedata.rs
@@ -5,7 +5,6 @@
use dom::bindings::codegen::Bindings::VRFrameDataBinding;
use dom::bindings::codegen::Bindings::VRFrameDataBinding::VRFrameDataMethods;
use dom::bindings::error::Fallible;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::num::Finite;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::bindings::root::{Dom, DomRoot};
@@ -17,6 +16,7 @@ use js::jsapi::{Heap, JSContext, JSObject};
use js::typedarray::{Float32Array, CreateWith};
use std::cell::Cell;
use std::ptr;
+use std::ptr::NonNull;
use webvr_traits::WebVRFrameData;
#[dom_struct]
@@ -118,26 +118,26 @@ impl VRFrameDataMethods for VRFrameData {
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrframedata-leftprojectionmatrix
- unsafe fn LeftProjectionMatrix(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.left_proj.get())
+ unsafe fn LeftProjectionMatrix(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.left_proj.get())
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrframedata-leftviewmatrix
- unsafe fn LeftViewMatrix(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.left_view.get())
+ unsafe fn LeftViewMatrix(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.left_view.get())
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrframedata-rightprojectionmatrix
- unsafe fn RightProjectionMatrix(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.right_proj.get())
+ unsafe fn RightProjectionMatrix(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.right_proj.get())
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrframedata-rightviewmatrix
- unsafe fn RightViewMatrix(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.right_view.get())
+ unsafe fn RightViewMatrix(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.right_view.get())
}
// https://w3c.github.io/webvr/#dom-vrframedata-pose
diff --git a/components/script/dom/vrpose.rs b/components/script/dom/vrpose.rs
index a0b3ec7c92a..01778471ccb 100644
--- a/components/script/dom/vrpose.rs
+++ b/components/script/dom/vrpose.rs
@@ -4,7 +4,6 @@
use dom::bindings::codegen::Bindings::VRPoseBinding;
use dom::bindings::codegen::Bindings::VRPoseBinding::VRPoseMethods;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::bindings::root::DomRoot;
use dom::globalscope::GlobalScope;
@@ -12,6 +11,7 @@ use dom_struct::dom_struct;
use js::jsapi::{Heap, JSContext, JSObject};
use js::typedarray::{Float32Array, CreateWith};
use std::ptr;
+use std::ptr::NonNull;
use webvr_traits::webvr;
#[dom_struct]
@@ -52,13 +52,13 @@ unsafe fn update_or_create_typed_array(cx: *mut JSContext,
#[inline]
#[allow(unsafe_code)]
-fn heap_to_option(heap: &Heap<*mut JSObject>) -> Option<NonNullJSObjectPtr> {
+fn heap_to_option(heap: &Heap<*mut JSObject>) -> Option<NonNull<JSObject>> {
let js_object = heap.get();
if js_object.is_null() {
None
} else {
unsafe {
- Some(NonNullJSObjectPtr::new_unchecked(js_object))
+ Some(NonNull::new_unchecked(js_object))
}
}
}
@@ -101,37 +101,37 @@ impl VRPose {
impl VRPoseMethods for VRPose {
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrpose-position
- unsafe fn GetPosition(&self, _cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetPosition(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
heap_to_option(&self.position)
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrpose-linearvelocity
- unsafe fn GetLinearVelocity(&self, _cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetLinearVelocity(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
heap_to_option(&self.linear_vel)
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrpose-linearacceleration
- unsafe fn GetLinearAcceleration(&self, _cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetLinearAcceleration(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
heap_to_option(&self.linear_acc)
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrpose-orientation
- unsafe fn GetOrientation(&self, _cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetOrientation(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
heap_to_option(&self.orientation)
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrpose-angularvelocity
- unsafe fn GetAngularVelocity(&self, _cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetAngularVelocity(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
heap_to_option(&self.angular_vel)
}
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrpose-angularacceleration
- unsafe fn GetAngularAcceleration(&self, _cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetAngularAcceleration(&self, _cx: *mut JSContext) -> Option<NonNull<JSObject>> {
heap_to_option(&self.angular_acc)
}
}
diff --git a/components/script/dom/vrstageparameters.rs b/components/script/dom/vrstageparameters.rs
index 9a34af4c03e..bd4dfa5a3a6 100644
--- a/components/script/dom/vrstageparameters.rs
+++ b/components/script/dom/vrstageparameters.rs
@@ -5,7 +5,6 @@
use dom::bindings::cell::DomRefCell;
use dom::bindings::codegen::Bindings::VRStageParametersBinding;
use dom::bindings::codegen::Bindings::VRStageParametersBinding::VRStageParametersMethods;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::num::Finite;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::bindings::root::DomRoot;
@@ -14,6 +13,7 @@ use dom_struct::dom_struct;
use js::jsapi::{Heap, JSContext, JSObject};
use js::typedarray::{Float32Array, CreateWith};
use std::ptr;
+use std::ptr::NonNull;
use webvr_traits::WebVRStageParameters;
#[dom_struct]
@@ -69,8 +69,8 @@ impl VRStageParameters {
impl VRStageParametersMethods for VRStageParameters {
#[allow(unsafe_code)]
// https://w3c.github.io/webvr/#dom-vrstageparameters-sittingtostandingtransform
- unsafe fn SittingToStandingTransform(&self, _cx: *mut JSContext) -> NonNullJSObjectPtr {
- NonNullJSObjectPtr::new_unchecked(self.transform.get())
+ unsafe fn SittingToStandingTransform(&self, _cx: *mut JSContext) -> NonNull<JSObject> {
+ NonNull::new_unchecked(self.transform.get())
}
// https://w3c.github.io/webvr/#dom-vrstageparameters-sizex
diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs
index 168f1146370..9bf016f9631 100644
--- a/components/script/dom/webgl2renderingcontext.rs
+++ b/components/script/dom/webgl2renderingcontext.rs
@@ -10,7 +10,6 @@ use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLContext
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextMethods;
use dom::bindings::codegen::UnionTypes::ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement;
use dom::bindings::error::Fallible;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{reflect_dom_object, Reflector};
use dom::bindings::root::{Dom, DomRoot, LayoutDom};
use dom::bindings::str::DOMString;
@@ -33,6 +32,7 @@ use js::jsapi::{JSContext, JSObject};
use js::jsval::JSVal;
use offscreen_gl_context::GLContextAttributes;
use script_layout_interface::HTMLCanvasDataSource;
+use std::ptr::NonNull;
#[dom_struct]
pub struct WebGL2RenderingContext {
@@ -132,7 +132,7 @@ impl WebGL2RenderingContextMethods for WebGL2RenderingContext {
#[allow(unsafe_code)]
/// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.14
- unsafe fn GetExtension(&self, cx: *mut JSContext, name: DOMString) -> Option<NonNullJSObjectPtr> {
+ unsafe fn GetExtension(&self, cx: *mut JSContext, name: DOMString) -> Option<NonNull<JSObject>> {
self.base.GetExtension(cx, name)
}
diff --git a/components/script/dom/webgl_extensions/extensions.rs b/components/script/dom/webgl_extensions/extensions.rs
index e599df7a25c..3c22817d555 100644
--- a/components/script/dom/webgl_extensions/extensions.rs
+++ b/components/script/dom/webgl_extensions/extensions.rs
@@ -7,19 +7,20 @@ use dom::bindings::cell::DomRefCell;
use dom::bindings::codegen::Bindings::OESStandardDerivativesBinding::OESStandardDerivativesConstants;
use dom::bindings::codegen::Bindings::OESTextureHalfFloatBinding::OESTextureHalfFloatConstants;
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::root::DomRoot;
use dom::bindings::trace::JSTraceable;
use dom::webglrenderingcontext::WebGLRenderingContext;
use fnv::{FnvHashMap, FnvHashSet};
use gleam::gl::GLenum;
use js::jsapi::JSContext;
+use js::jsapi::JSObject;
use js::jsval::JSVal;
use malloc_size_of::MallocSizeOf;
use ref_filter_map::ref_filter_map;
use std::cell::Ref;
use std::collections::HashMap;
use std::iter::FromIterator;
+use std::ptr::NonNull;
use super::{ext, WebGLExtension, WebGLExtensionSpec};
use super::wrapper::{WebGLExtensionWrapper, TypedWebGLExtensionWrapper};
@@ -127,7 +128,7 @@ impl WebGLExtensions {
.collect()
}
- pub fn get_or_init_extension(&self, name: &str, ctx: &WebGLRenderingContext) -> Option<NonNullJSObjectPtr> {
+ pub fn get_or_init_extension(&self, name: &str, ctx: &WebGLRenderingContext) -> Option<NonNull<JSObject>> {
let name = name.to_uppercase();
self.extensions.borrow().get(&name).and_then(|extension| {
if extension.is_supported(self) {
diff --git a/components/script/dom/webgl_extensions/wrapper.rs b/components/script/dom/webgl_extensions/wrapper.rs
index 8af48a6d93e..05fb375ffbd 100644
--- a/components/script/dom/webgl_extensions/wrapper.rs
+++ b/components/script/dom/webgl_extensions/wrapper.rs
@@ -2,13 +2,14 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::DomObject;
use dom::bindings::root::{DomRoot, MutNullableDom};
use dom::bindings::trace::JSTraceable;
use dom::webglrenderingcontext::WebGLRenderingContext;
+use js::jsapi::JSObject;
use malloc_size_of::MallocSizeOf;
use std::any::Any;
+use std::ptr::NonNull;
use super::{WebGLExtension, WebGLExtensions, WebGLExtensionSpec};
/// Trait used internally by WebGLExtensions to store and
@@ -17,7 +18,7 @@ pub trait WebGLExtensionWrapper: JSTraceable + MallocSizeOf {
fn instance_or_init(&self,
ctx: &WebGLRenderingContext,
ext: &WebGLExtensions)
- -> NonNullJSObjectPtr;
+ -> NonNull<JSObject>;
fn spec(&self) -> WebGLExtensionSpec;
fn is_supported(&self, &WebGLExtensions) -> bool;
fn is_enabled(&self) -> bool;
@@ -48,7 +49,7 @@ impl<T> WebGLExtensionWrapper for TypedWebGLExtensionWrapper<T>
fn instance_or_init(&self,
ctx: &WebGLRenderingContext,
ext: &WebGLExtensions)
- -> NonNullJSObjectPtr {
+ -> NonNull<JSObject> {
let mut enabled = true;
let extension = self.extension.or_init(|| {
enabled = false;
@@ -58,7 +59,7 @@ impl<T> WebGLExtensionWrapper for TypedWebGLExtensionWrapper<T>
self.enable(ext);
}
unsafe {
- NonNullJSObjectPtr::new_unchecked(extension.reflector().get_jsobject().get())
+ NonNull::new_unchecked(extension.reflector().get_jsobject().get())
}
}
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 21712563e40..61f05a923e8 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -17,7 +17,6 @@ use dom::bindings::codegen::UnionTypes::ImageDataOrHTMLImageElementOrHTMLCanvasE
use dom::bindings::conversions::{ConversionResult, FromJSValConvertible, ToJSValConvertible};
use dom::bindings::error::{Error, Fallible};
use dom::bindings::inheritance::Castable;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::bindings::root::{Dom, DomRoot, LayoutDom, MutNullableDom};
use dom::bindings::str::DOMString;
@@ -57,6 +56,7 @@ use script_layout_interface::HTMLCanvasDataSource;
use servo_config::prefs::PREFS;
use std::cell::{Cell, Ref};
use std::iter::FromIterator;
+use std::ptr::NonNull;
use webrender_api;
type ImagePixelResult = Result<(Vec<u8>, Size2D<i32>, bool), ()>;
@@ -1389,7 +1389,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
#[allow(unsafe_code)]
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.14
unsafe fn GetExtension(&self, _cx: *mut JSContext, name: DOMString)
- -> Option<NonNullJSObjectPtr> {
+ -> Option<NonNull<JSObject>> {
self.extension_manager.init_once(|| {
self.get_gl_extensions()
});
diff --git a/components/script/dom/xmldocument.rs b/components/script/dom/xmldocument.rs
index ed67be90900..68764eb1080 100644
--- a/components/script/dom/xmldocument.rs
+++ b/components/script/dom/xmldocument.rs
@@ -6,7 +6,6 @@ use document_loader::DocumentLoader;
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::XMLDocumentBinding::{self, XMLDocumentMethods};
use dom::bindings::inheritance::Castable;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::reflector::reflect_dom_object;
use dom::bindings::root::DomRoot;
use dom::bindings::str::DOMString;
@@ -16,8 +15,10 @@ use dom::node::Node;
use dom::window::Window;
use dom_struct::dom_struct;
use js::jsapi::JSContext;
+use js::jsapi::JSObject;
use script_traits::DocumentActivity;
use servo_url::{MutableOrigin, ServoUrl};
+use std::ptr::NonNull;
// https://dom.spec.whatwg.org/#xmldocument
#[dom_struct]
@@ -101,7 +102,7 @@ impl XMLDocumentMethods for XMLDocument {
#[allow(unsafe_code)]
// https://html.spec.whatwg.org/multipage/#dom-tree-accessors:dom-document-nameditem-filter
- unsafe fn NamedGetter(&self, _cx: *mut JSContext, name: DOMString) -> Option<NonNullJSObjectPtr> {
+ unsafe fn NamedGetter(&self, _cx: *mut JSContext, name: DOMString) -> Option<NonNull<JSObject>> {
self.upcast::<Document>().NamedGetter(_cx, name)
}
}
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 716115307d2..cb42db58ad4 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -14,7 +14,6 @@ use dom::bindings::codegen::UnionTypes::DocumentOrBodyInit;
use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::error::{Error, ErrorResult, Fallible};
use dom::bindings::inheritance::Castable;
-use dom::bindings::nonnull::NonNullJSObjectPtr;
use dom::bindings::refcounted::Trusted;
use dom::bindings::reflector::{DomObject, reflect_dom_object};
use dom::bindings::root::{Dom, DomRoot, MutNullableDom};
@@ -67,6 +66,7 @@ use std::borrow::ToOwned;
use std::cell::Cell;
use std::default::Default;
use std::ptr;
+use std::ptr::NonNull;
use std::slice;
use std::str;
use std::sync::{Arc, Mutex};
@@ -1120,11 +1120,11 @@ impl XMLHttpRequest {
// https://xhr.spec.whatwg.org/#arraybuffer-response
#[allow(unsafe_code)]
- unsafe fn arraybuffer_response(&self, cx: *mut JSContext) -> Option<NonNullJSObjectPtr> {
+ unsafe fn arraybuffer_response(&self, cx: *mut JSContext) -> Option<NonNull<JSObject>> {
// Step 1
let created = self.response_arraybuffer.get();
- if !created.is_null() {
- return Some(NonNullJSObjectPtr::new_unchecked(created));
+ if let Some(nonnull) = NonNull::new(created) {
+ return Some(nonnull)
}
// Step 2
@@ -1132,7 +1132,7 @@ impl XMLHttpRequest {
rooted!(in(cx) let mut array_buffer = ptr::null_mut::<JSObject>());
ArrayBuffer::create(cx, CreateWith::Slice(&bytes), array_buffer.handle_mut()).ok().and_then(|()| {
self.response_arraybuffer.set(array_buffer.get());
- Some(NonNullJSObjectPtr::new_unchecked(array_buffer.get()))
+ Some(NonNull::new_unchecked(array_buffer.get()))
})
}
diff --git a/components/script/lib.rs b/components/script/lib.rs
index 3143342e4f6..a871b320758 100644
--- a/components/script/lib.rs
+++ b/components/script/lib.rs
@@ -42,9 +42,6 @@ extern crate domobject_derive;
extern crate encoding_rs;
extern crate euclid;
extern crate fnv;
-#[allow(unused_extern_crates)]
-#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
-extern crate gecko_media;
extern crate gleam;
extern crate half;
#[macro_use] extern crate html5ever;
@@ -71,7 +68,6 @@ extern crate mitochondria;
extern crate mozjs as js;
extern crate msg;
extern crate net_traits;
-extern crate nonzero;
extern crate num_traits;
extern crate offscreen_gl_context;
extern crate open;
diff --git a/components/script_layout_interface/Cargo.toml b/components/script_layout_interface/Cargo.toml
index 6a64c2b205e..db3c63dddbe 100644
--- a/components/script_layout_interface/Cargo.toml
+++ b/components/script_layout_interface/Cargo.toml
@@ -25,7 +25,6 @@ malloc_size_of_derive = { path = "../malloc_size_of_derive" }
metrics = {path = "../metrics"}
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
-nonzero = {path = "../nonzero"}
profile_traits = {path = "../profile_traits"}
range = {path = "../range"}
script_traits = {path = "../script_traits"}
diff --git a/components/script_layout_interface/lib.rs b/components/script_layout_interface/lib.rs
index 4e17570f92d..45c82ee1089 100644
--- a/components/script_layout_interface/lib.rs
+++ b/components/script_layout_interface/lib.rs
@@ -7,6 +7,7 @@
//! to depend on script.
#![deny(unsafe_code)]
+#![feature(associated_type_defaults)]
extern crate app_units;
extern crate atomic_refcell;
@@ -24,7 +25,6 @@ extern crate malloc_size_of;
extern crate metrics;
extern crate msg;
extern crate net_traits;
-extern crate nonzero;
extern crate profile_traits;
extern crate range;
extern crate script_traits;
@@ -45,9 +45,9 @@ use canvas_traits::canvas::CanvasMsg;
use ipc_channel::ipc::IpcSender;
use libc::c_void;
use net_traits::image_cache::PendingImageId;
-use nonzero::NonZero;
use script_traits::UntrustedNodeAddress;
use servo_url::ServoUrl;
+use std::ptr::NonNull;
use std::sync::atomic::AtomicIsize;
use style::data::ElementData;
@@ -77,7 +77,7 @@ pub struct OpaqueStyleAndLayoutData {
// NB: We really store a `StyleAndLayoutData` here, so be careful!
#[ignore_malloc_size_of = "TODO(#6910) Box value that should be counted but \
the type lives in layout"]
- pub ptr: NonZero<*mut StyleData>,
+ pub ptr: NonNull<StyleData>,
}
#[allow(unsafe_code)]
diff --git a/components/script_layout_interface/wrapper_traits.rs b/components/script_layout_interface/wrapper_traits.rs
index dc1f5db4c54..0b04d4256a6 100644
--- a/components/script_layout_interface/wrapper_traits.rs
+++ b/components/script_layout_interface/wrapper_traits.rs
@@ -19,10 +19,10 @@ use std::fmt::Debug;
use style::attr::AttrValue;
use style::context::SharedStyleContext;
use style::data::ElementData;
-use style::dom::{LayoutIterator, NodeInfo, TNode};
+use style::dom::{LayoutIterator, NodeInfo, TElement, TNode};
use style::dom::OpaqueNode;
use style::font_metrics::ServoMetricsProvider;
-use style::properties::{CascadeFlags, ComputedValues};
+use style::properties::ComputedValues;
use style::selector_parser::{PseudoElement, PseudoElementCascadeType, SelectorImpl};
use style::stylist::RuleInclusion;
use webrender_api::ClipId;
@@ -148,6 +148,8 @@ impl<ConcreteNode> Iterator for TreeIterator<ConcreteNode>
/// node does not allow any parents or siblings of nodes to be accessed, to avoid races.
pub trait ThreadSafeLayoutNode: Clone + Copy + Debug + GetLayoutData + NodeInfo + PartialEq + Sized {
type ConcreteNode: LayoutNode<ConcreteThreadSafeLayoutNode = Self>;
+ type ConcreteElement: TElement;
+
type ConcreteThreadSafeLayoutElement:
ThreadSafeLayoutElement<ConcreteThreadSafeLayoutNode = Self>
+ ::selectors::Element<Impl=SelectorImpl>;
@@ -291,6 +293,12 @@ pub trait ThreadSafeLayoutElement
{
type ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode<ConcreteThreadSafeLayoutElement = Self>;
+ /// This type alias is just a work-around to avoid writing
+ ///
+ /// <Self::ConcreteThreadSafeLayoutNode as ThreadSafeLayoutNode>::ConcreteElement
+ ///
+ type ConcreteElement: TElement;
+
fn as_node(&self) -> Self::ConcreteThreadSafeLayoutNode;
/// Creates a new `ThreadSafeLayoutElement` for the same `LayoutElement`
@@ -307,8 +315,7 @@ pub trait ThreadSafeLayoutElement
///
/// We need this so that the functions defined on this trait can call
/// lazily_compute_pseudo_element_style, which operates on TElement.
- unsafe fn unsafe_get(self) ->
- <<Self::ConcreteThreadSafeLayoutNode as ThreadSafeLayoutNode>::ConcreteNode as TNode>::ConcreteElement;
+ unsafe fn unsafe_get(self) -> Self::ConcreteElement;
#[inline]
fn get_attr(&self, namespace: &Namespace, name: &LocalName) -> Option<&str>;
@@ -382,11 +389,10 @@ pub trait ThreadSafeLayoutElement
.unwrap().clone()
},
PseudoElementCascadeType::Precomputed => {
- context.stylist.precomputed_values_for_pseudo(
+ context.stylist.precomputed_values_for_pseudo::<Self::ConcreteElement>(
&context.guards,
&style_pseudo,
Some(data.styles.primary()),
- CascadeFlags::empty(),
&ServoMetricsProvider,
)
}
diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs
index 3159de3a5c2..e330c49d441 100644
--- a/components/script_traits/lib.rs
+++ b/components/script_traits/lib.rs
@@ -68,7 +68,7 @@ use std::sync::Arc;
use std::sync::mpsc::{Receiver, Sender, RecvTimeoutError};
use style_traits::CSSPixel;
use style_traits::SpeculativePainter;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use webdriver_msg::{LoadStatus, WebDriverScriptCommand};
use webrender_api::{ClipId, DevicePixel, DocumentId, ImageKey};
use webvr_traits::{WebVREvent, WebVRMsg};
@@ -807,7 +807,7 @@ pub enum ConstellationMsg {
/// Forward an event to the script task of the given pipeline.
ForwardEvent(PipelineId, CompositorEvent),
/// Requesting a change to the onscreen cursor.
- SetCursor(Cursor),
+ SetCursor(CursorKind),
}
/// Resources required by workerglobalscopes
diff --git a/components/script_traits/script_msg.rs b/components/script_traits/script_msg.rs
index a9b5f86d8fe..6ff47b5e004 100644
--- a/components/script_traits/script_msg.rs
+++ b/components/script_traits/script_msg.rs
@@ -25,7 +25,7 @@ use net_traits::storage_thread::StorageType;
use servo_url::ImmutableOrigin;
use servo_url::ServoUrl;
use style_traits::CSSPixel;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use style_traits::viewport::ViewportConstraints;
/// Messages from the layout to the constellation.
@@ -39,7 +39,7 @@ pub enum LayoutMsg {
/// the time when the frame with the given ID (epoch) is painted.
PendingPaintMetric(PipelineId, Epoch),
/// Requests that the constellation inform the compositor of the a cursor change.
- SetCursor(Cursor),
+ SetCursor(CursorKind),
/// Notifies the constellation that the viewport has been constrained in some manner
ViewportConstrained(PipelineId, ViewportConstraints),
}
diff --git a/components/selectors/context.rs b/components/selectors/context.rs
index 856e18497d9..257a29afc44 100644
--- a/components/selectors/context.rs
+++ b/components/selectors/context.rs
@@ -100,13 +100,11 @@ where
Impl: SelectorImpl,
{
/// Input with the matching mode we should use when matching selectors.
- pub matching_mode: MatchingMode,
+ matching_mode: MatchingMode,
/// Input with the bloom filter used to fast-reject selectors.
pub bloom_filter: Option<&'a BloomFilter>,
/// An optional cache to speed up nth-index-like selectors.
pub nth_index_cache: Option<&'a mut NthIndexCache>,
- /// Input that controls how matching for links is handled.
- pub visited_handling: VisitedHandlingMode,
/// The element which is going to match :scope pseudo-class. It can be
/// either one :scope element, or the scoping element.
///
@@ -120,11 +118,17 @@ where
/// See https://drafts.csswg.org/selectors-4/#scope-pseudo
pub scope_element: Option<OpaqueElement>,
+ /// Controls how matching for links is handled.
+ visited_handling: VisitedHandlingMode,
+
/// The current nesting level of selectors that we're matching.
///
- /// FIXME(emilio): Move this somewhere else and make MatchingContext
- /// immutable again.
- pub nesting_level: usize,
+ /// FIXME(emilio): Consider putting the mutable stuff in a Cell, then make
+ /// MatchingContext immutable again.
+ nesting_level: usize,
+
+ /// Whether we're inside a negation or not.
+ in_negation: bool,
/// An optional hook function for checking whether a pseudo-element
/// should match when matching_mode is ForStatelessPseudoElement.
@@ -175,21 +179,91 @@ where
classes_and_ids_case_sensitivity: quirks_mode.classes_and_ids_case_sensitivity(),
scope_element: None,
nesting_level: 0,
+ in_negation: false,
pseudo_element_matching_fn: None,
extra_data: Default::default(),
_impl: ::std::marker::PhantomData,
}
}
+ /// Whether we're matching a nested selector.
+ #[inline]
+ pub fn is_nested(&self) -> bool {
+ self.nesting_level != 0
+ }
+
+ /// Whether we're matching inside a :not(..) selector.
+ #[inline]
+ pub fn in_negation(&self) -> bool {
+ self.in_negation
+ }
+
/// The quirks mode of the document.
#[inline]
pub fn quirks_mode(&self) -> QuirksMode {
self.quirks_mode
}
+ /// The matching-mode for this selector-matching operation.
+ #[inline]
+ pub fn matching_mode(&self) -> MatchingMode {
+ self.matching_mode
+ }
+
/// The case-sensitivity for class and ID selectors
#[inline]
pub fn classes_and_ids_case_sensitivity(&self) -> CaseSensitivity {
self.classes_and_ids_case_sensitivity
}
+
+ /// Runs F with a deeper nesting level.
+ #[inline]
+ pub fn nest<F, R>(&mut self, f: F) -> R
+ where
+ F: FnOnce(&mut Self) -> R,
+ {
+ self.nesting_level += 1;
+ let result = f(self);
+ self.nesting_level -= 1;
+ result
+ }
+
+ /// Runs F with a deeper nesting level, and marking ourselves in a negation,
+ /// for a :not(..) selector, for example.
+ #[inline]
+ pub fn nest_for_negation<F, R>(&mut self, f: F) -> R
+ where
+ F: FnOnce(&mut Self) -> R,
+ {
+ debug_assert!(
+ !self.in_negation,
+ "Someone messed up parsing?"
+ );
+ self.in_negation = true;
+ let result = self.nest(f);
+ self.in_negation = false;
+ result
+ }
+
+ #[inline]
+ pub fn visited_handling(&self) -> VisitedHandlingMode {
+ self.visited_handling
+ }
+
+ /// Runs F with a different VisitedHandlingMode.
+ #[inline]
+ pub fn with_visited_handling_mode<F, R>(
+ &mut self,
+ handling_mode: VisitedHandlingMode,
+ f: F,
+ ) -> R
+ where
+ F: FnOnce(&mut Self) -> R,
+ {
+ let original_handling_mode = self.visited_handling;
+ self.visited_handling = handling_mode;
+ let result = f(self);
+ self.visited_handling = original_handling_mode;
+ result
+ }
}
diff --git a/components/selectors/matching.rs b/components/selectors/matching.rs
index b01f7371f6b..eda52011ac7 100644
--- a/components/selectors/matching.rs
+++ b/components/selectors/matching.rs
@@ -60,8 +60,7 @@ impl ElementSelectorFlags {
/// Holds per-compound-selector data.
struct LocalMatchingContext<'a, 'b: 'a, Impl: SelectorImpl> {
shared: &'a mut MatchingContext<'b, Impl>,
- matches_hover_and_active_quirk: bool,
- visited_handling: VisitedHandlingMode,
+ matches_hover_and_active_quirk: MatchesHoverAndActiveQuirk,
}
#[inline(always)]
@@ -171,6 +170,15 @@ enum SelectorMatchingResult {
NotMatchedGlobally,
}
+/// Whether the :hover and :active quirk applies.
+///
+/// https://quirks.spec.whatwg.org/#the-active-and-hover-quirk
+#[derive(Clone, Copy, Debug, PartialEq)]
+enum MatchesHoverAndActiveQuirk {
+ Yes,
+ No,
+}
+
/// Matches a selector, fast-rejecting against a bloom filter.
///
/// We accept an offset to allow consumers to represent and match against
@@ -236,11 +244,9 @@ where
selector.combinator_at_parse_order(from_offset - 1); // This asserts.
}
- let visited_handling = context.visited_handling;
let mut local_context = LocalMatchingContext {
shared: context,
- visited_handling,
- matches_hover_and_active_quirk: false,
+ matches_hover_and_active_quirk: MatchesHoverAndActiveQuirk::No,
};
for component in selector.iter_raw_parse_order_from(from_offset) {
@@ -279,8 +285,8 @@ where
{
// If this is the special pseudo-element mode, consume the ::pseudo-element
// before proceeding, since the caller has already handled that part.
- if context.matching_mode == MatchingMode::ForStatelessPseudoElement &&
- context.nesting_level == 0 {
+ if context.matching_mode() == MatchingMode::ForStatelessPseudoElement &&
+ !context.is_nested() {
// Consume the pseudo.
match *iter.next().unwrap() {
Component::PseudoElement(ref pseudo) => {
@@ -312,12 +318,10 @@ where
}
}
- let visited_handling = context.visited_handling;
let result = matches_complex_selector_internal(
iter,
element,
context,
- visited_handling,
flags_setter,
Rightmost::Yes,
);
@@ -333,23 +337,23 @@ fn matches_hover_and_active_quirk<Impl: SelectorImpl>(
selector_iter: &SelectorIter<Impl>,
context: &MatchingContext<Impl>,
rightmost: Rightmost,
-) -> bool {
+) -> MatchesHoverAndActiveQuirk {
if context.quirks_mode() != QuirksMode::Quirks {
- return false;
+ return MatchesHoverAndActiveQuirk::No;
}
- if context.nesting_level != 0 {
- return false;
+ if context.is_nested() {
+ return MatchesHoverAndActiveQuirk::No;
}
// This compound selector had a pseudo-element to the right that we
// intentionally skipped.
- if matches!(rightmost, Rightmost::Yes) &&
- context.matching_mode == MatchingMode::ForStatelessPseudoElement {
- return false;
+ if rightmost == Rightmost::Yes &&
+ context.matching_mode() == MatchingMode::ForStatelessPseudoElement {
+ return MatchesHoverAndActiveQuirk::No;
}
- selector_iter.clone().all(|simple| {
+ let all_match = selector_iter.clone().all(|simple| {
match *simple {
Component::LocalName(_) |
Component::AttributeInNoNamespaceExists { .. } |
@@ -375,9 +379,16 @@ fn matches_hover_and_active_quirk<Impl: SelectorImpl>(
},
_ => true,
}
- })
+ });
+
+ if all_match {
+ MatchesHoverAndActiveQuirk::Yes
+ } else {
+ MatchesHoverAndActiveQuirk::No
+ }
}
+#[derive(Clone, Copy, PartialEq)]
enum Rightmost {
Yes,
No,
@@ -417,7 +428,6 @@ fn matches_complex_selector_internal<E, F>(
mut selector_iter: SelectorIter<E::Impl>,
element: &E,
context: &mut MatchingContext<E::Impl>,
- visited_handling: VisitedHandlingMode,
flags_setter: &mut F,
rightmost: Rightmost,
) -> SelectorMatchingResult
@@ -431,7 +441,6 @@ where
&mut selector_iter,
element,
context,
- visited_handling,
flags_setter,
rightmost
);
@@ -467,12 +476,11 @@ where
// Stop matching :visited as soon as we find a link, or a combinator for
// something that isn't an ancestor.
- let mut visited_handling =
- if element.is_link() || combinator.is_sibling() {
- VisitedHandlingMode::AllLinksUnvisited
- } else {
- visited_handling
- };
+ let mut visited_handling = if element.is_link() || combinator.is_sibling() {
+ VisitedHandlingMode::AllLinksUnvisited
+ } else {
+ context.visited_handling()
+ };
loop {
let element = match next_element {
@@ -480,14 +488,16 @@ where
Some(next_element) => next_element,
};
- let result = matches_complex_selector_internal(
- selector_iter.clone(),
- &element,
- context,
- visited_handling,
- flags_setter,
- Rightmost::No,
- );
+ let result =
+ context.with_visited_handling_mode(visited_handling, |context| {
+ matches_complex_selector_internal(
+ selector_iter.clone(),
+ &element,
+ context,
+ flags_setter,
+ Rightmost::No,
+ )
+ });
match (result, combinator) {
// Return the status immediately.
@@ -521,12 +531,9 @@ where
_ => {},
}
- visited_handling =
- if element.is_link() || combinator.is_sibling() {
- VisitedHandlingMode::AllLinksUnvisited
- } else {
- visited_handling
- };
+ if element.is_link() || combinator.is_sibling() {
+ visited_handling = VisitedHandlingMode::AllLinksUnvisited;
+ }
next_element = next_element_for_combinator(&element, combinator);
}
@@ -554,7 +561,6 @@ fn matches_compound_selector<E, F>(
selector_iter: &mut SelectorIter<E::Impl>,
element: &E,
context: &mut MatchingContext<E::Impl>,
- visited_handling: VisitedHandlingMode,
flags_setter: &mut F,
rightmost: Rightmost,
) -> bool
@@ -596,7 +602,6 @@ where
let mut local_context =
LocalMatchingContext {
shared: context,
- visited_handling,
matches_hover_and_active_quirk,
};
iter::once(selector).chain(selector_iter).all(|simple| {
@@ -620,20 +625,20 @@ where
E: Element,
F: FnMut(&E, ElementSelectorFlags),
{
+ debug_assert!(context.shared.is_nested() || !context.shared.in_negation());
+
match *selector {
Component::Combinator(_) => unreachable!(),
Component::Slotted(ref selector) => {
- context.shared.nesting_level += 1;
- let result =
+ context.shared.nest(|context| {
element.assigned_slot().is_some() &&
matches_complex_selector(
selector.iter(),
element,
- context.shared,
+ context,
flags_setter,
- );
- context.shared.nesting_level -= 1;
- result
+ )
+ })
}
Component::PseudoElement(ref pseudo) => {
element.match_pseudo_element(pseudo, context.shared)
@@ -714,17 +719,17 @@ where
)
}
Component::NonTSPseudoClass(ref pc) => {
- if context.matches_hover_and_active_quirk &&
- context.shared.nesting_level == 0 &&
+ if context.matches_hover_and_active_quirk == MatchesHoverAndActiveQuirk::Yes &&
+ !context.shared.is_nested() &&
E::Impl::is_active_or_hover(pc) &&
- !element.is_link() {
+ !element.is_link()
+ {
return false;
}
element.match_non_ts_pseudo_class(
pc,
&mut context.shared,
- context.visited_handling,
flags_setter
)
}
@@ -774,17 +779,20 @@ where
matches_generic_nth_child(element, context, 0, 1, true, true, flags_setter)
}
Component::Negation(ref negated) => {
- context.shared.nesting_level += 1;
- let result = !negated.iter().all(|ss| {
- matches_simple_selector(
- ss,
- element,
- context,
- flags_setter,
- )
- });
- context.shared.nesting_level -= 1;
- result
+ context.shared.nest_for_negation(|context| {
+ let mut local_context = LocalMatchingContext {
+ matches_hover_and_active_quirk: MatchesHoverAndActiveQuirk::No,
+ shared: context,
+ };
+ !negated.iter().all(|ss| {
+ matches_simple_selector(
+ ss,
+ element,
+ &mut local_context,
+ flags_setter,
+ )
+ })
+ })
}
}
}
diff --git a/components/selectors/tree.rs b/components/selectors/tree.rs
index 0ae6d7307a5..ea36aac6f89 100644
--- a/components/selectors/tree.rs
+++ b/components/selectors/tree.rs
@@ -6,7 +6,6 @@
//! between layout and style.
use attr::{AttrSelectorOperation, NamespaceConstraint, CaseSensitivity};
-use context::VisitedHandlingMode;
use matching::{ElementSelectorFlags, MatchingContext};
use parser::SelectorImpl;
use servo_arc::NonZeroPtrMut;
@@ -69,7 +68,6 @@ pub trait Element: Sized + Clone + Debug {
&self,
pc: &<Self::Impl as SelectorImpl>::NonTSPseudoClass,
context: &mut MatchingContext<Self::Impl>,
- visited_handling: VisitedHandlingMode,
flags_setter: &mut F,
) -> bool
where
diff --git a/components/servo_arc/lib.rs b/components/servo_arc/lib.rs
index d7694901130..1301a8e6611 100644
--- a/components/servo_arc/lib.rs
+++ b/components/servo_arc/lib.rs
@@ -83,6 +83,7 @@ const MAX_REFCOUNT: usize = (isize::MAX) as usize;
/// that this is all a temporary hack, this restriction is fine for now.
///
/// [1]: https://github.com/rust-lang/rust/issues/27730
+// FIXME: remove this and use std::ptr::NonNull when Firefox requires Rust 1.25+
pub struct NonZeroPtrMut<T: ?Sized + 'static>(&'static mut T);
impl<T: ?Sized> NonZeroPtrMut<T> {
pub fn new(ptr: *mut T) -> Self {
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml
index 37cf1dc685f..16d46eb6e26 100644
--- a/components/style/Cargo.toml
+++ b/components/style/Cargo.toml
@@ -75,7 +75,7 @@ kernel32-sys = "0.2"
[build-dependencies]
lazy_static = "1"
log = "0.3"
-bindgen = { version = "0.31.2", optional = true }
+bindgen = { version = "0.32.2", optional = true }
regex = {version = "0.2", optional = true}
walkdir = "1.0"
toml = {version = "0.2.1", optional = true, default-features = false}
diff --git a/components/style/animation.rs b/components/style/animation.rs
index ada5ccad40f..ab482862358 100644
--- a/components/style/animation.rs
+++ b/components/style/animation.rs
@@ -8,7 +8,7 @@
use Atom;
use bezier::Bezier;
use context::SharedStyleContext;
-use dom::OpaqueNode;
+use dom::{OpaqueNode, TElement};
use font_metrics::FontMetricsProvider;
use properties::{self, CascadeFlags, ComputedValues, LonghandId};
use properties::animated_properties::{AnimatedProperty, TransitionProperty};
@@ -458,12 +458,16 @@ pub fn start_transitions_if_applicable(
had_animations
}
-fn compute_style_for_animation_step(context: &SharedStyleContext,
- step: &KeyframesStep,
- previous_style: &ComputedValues,
- style_from_cascade: &Arc<ComputedValues>,
- font_metrics_provider: &FontMetricsProvider)
- -> Arc<ComputedValues> {
+fn compute_style_for_animation_step<E>(
+ context: &SharedStyleContext,
+ step: &KeyframesStep,
+ previous_style: &ComputedValues,
+ style_from_cascade: &Arc<ComputedValues>,
+ font_metrics_provider: &FontMetricsProvider,
+) -> Arc<ComputedValues>
+where
+ E: TElement,
+{
match step.value {
KeyframesStepValue::ComputedValues => style_from_cascade.clone(),
KeyframesStepValue::Declarations { block: ref declarations } => {
@@ -482,20 +486,23 @@ fn compute_style_for_animation_step(context: &SharedStyleContext,
// This currently ignores visited styles, which seems acceptable,
// as existing browsers don't appear to animate visited styles.
let computed =
- properties::apply_declarations(context.stylist.device(),
- /* pseudo = */ None,
- previous_style.rules(),
- &context.guards,
- iter,
- Some(previous_style),
- Some(previous_style),
- Some(previous_style),
- /* visited_style = */ None,
- font_metrics_provider,
- CascadeFlags::empty(),
- context.quirks_mode(),
- /* rule_cache = */ None,
- &mut Default::default());
+ properties::apply_declarations::<E, _, _>(
+ context.stylist.device(),
+ /* pseudo = */ None,
+ previous_style.rules(),
+ &context.guards,
+ iter,
+ Some(previous_style),
+ Some(previous_style),
+ Some(previous_style),
+ /* visited_style = */ None,
+ font_metrics_provider,
+ CascadeFlags::empty(),
+ context.quirks_mode(),
+ /* rule_cache = */ None,
+ &mut Default::default(),
+ /* element = */ None,
+ );
computed
}
}
@@ -503,11 +510,12 @@ fn compute_style_for_animation_step(context: &SharedStyleContext,
/// Triggers animations for a given node looking at the animation property
/// values.
-pub fn maybe_start_animations(context: &SharedStyleContext,
- new_animations_sender: &Sender<Animation>,
- node: OpaqueNode,
- new_style: &Arc<ComputedValues>)
- -> bool {
+pub fn maybe_start_animations(
+ context: &SharedStyleContext,
+ new_animations_sender: &Sender<Animation>,
+ node: OpaqueNode,
+ new_style: &Arc<ComputedValues>,
+) -> bool {
let mut had_animations = false;
let box_style = new_style.get_box();
@@ -599,10 +607,15 @@ pub fn update_style_for_animation_frame(mut new_style: &mut Arc<ComputedValues>,
}
/// Updates a single animation and associated style based on the current time.
/// If `damage` is provided, inserts the appropriate restyle damage.
-pub fn update_style_for_animation(context: &SharedStyleContext,
- animation: &Animation,
- style: &mut Arc<ComputedValues>,
- font_metrics_provider: &FontMetricsProvider) {
+pub fn update_style_for_animation<E>(
+ context: &SharedStyleContext,
+ animation: &Animation,
+ style: &mut Arc<ComputedValues>,
+ font_metrics_provider: &FontMetricsProvider,
+)
+where
+ E: TElement,
+{
debug!("update_style_for_animation: entering");
debug_assert!(!animation.is_expired());
@@ -724,11 +737,13 @@ pub fn update_style_for_animation(context: &SharedStyleContext,
let relative_progress = (now - last_keyframe_ended_at) / relative_duration;
// TODO: How could we optimise it? Is it such a big deal?
- let from_style = compute_style_for_animation_step(context,
- last_keyframe,
- &**style,
- &state.cascade_style,
- font_metrics_provider);
+ let from_style = compute_style_for_animation_step::<E>(
+ context,
+ last_keyframe,
+ &**style,
+ &state.cascade_style,
+ font_metrics_provider,
+ );
// NB: The spec says that the timing function can be overwritten
// from the keyframe style.
@@ -739,11 +754,13 @@ pub fn update_style_for_animation(context: &SharedStyleContext,
timing_function = from_style.get_box().animation_timing_function_at(0);
}
- let target_style = compute_style_for_animation_step(context,
- target_keyframe,
- &from_style,
- &state.cascade_style,
- font_metrics_provider);
+ let target_style = compute_style_for_animation_step::<E>(
+ context,
+ target_keyframe,
+ &from_style,
+ &state.cascade_style,
+ font_metrics_provider,
+ );
let mut new_style = (*style).clone();
diff --git a/components/style/build_gecko.rs b/components/style/build_gecko.rs
index 1bef36f8b28..7415bff8a26 100644
--- a/components/style/build_gecko.rs
+++ b/components/style/build_gecko.rs
@@ -204,6 +204,9 @@ mod bindings {
// Disable rust unions, because we replace some types inside of
// them.
+ //
+ // FIXME(emilio, bug 1432153): Make the bindings rustfmt'd on
+ // automation.
let mut builder = Builder::default()
.rustfmt_bindings(false)
.rust_target(RustTarget::Stable_1_0);
diff --git a/components/style/context.rs b/components/style/context.rs
index 6c9ba7b47f6..3768289da0e 100644
--- a/components/style/context.rs
+++ b/components/style/context.rs
@@ -203,7 +203,7 @@ impl<'a> SharedStyleContext<'a> {
/// within the `CurrentElementInfo`. At the end of the cascade, they are folded
/// down into the main `ComputedValues` to reduce memory usage per element while
/// still remaining accessible.
-#[derive(Clone, Default)]
+#[derive(Clone, Debug, Default)]
pub struct CascadeInputs {
/// The rule node representing the ordered list of rules matched for this
/// node.
@@ -226,15 +226,6 @@ impl CascadeInputs {
}
}
-// We manually implement Debug for CascadeInputs so that we can avoid the
-// verbose stringification of ComputedValues for normal logging.
-impl fmt::Debug for CascadeInputs {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- write!(f, "CascadeInputs {{ rules: {:?}, visited_rules: {:?}, .. }}",
- self.rules, self.visited_rules)
- }
-}
-
/// A list of cascade inputs for eagerly-cascaded pseudo-elements.
/// The list is stored inline.
#[derive(Debug)]
diff --git a/components/style/counter_style/mod.rs b/components/style/counter_style/mod.rs
index f0fa18fda92..1ad385c4bfd 100644
--- a/components/style/counter_style/mod.rs
+++ b/components/style/counter_style/mod.rs
@@ -17,9 +17,11 @@ use selectors::parser::SelectorParseErrorKind;
use shared_lock::{SharedRwLockReadGuard, ToCssWithGuard};
#[allow(unused_imports)] use std::ascii::AsciiExt;
use std::borrow::Cow;
-use std::fmt;
+use std::fmt::{self, Write};
use std::ops::Range;
-use style_traits::{Comma, OneOrMoreSeparated, ParseError, StyleParseErrorKind, ToCss};
+use str::CssStringWriter;
+use style_traits::{Comma, CssWriter, OneOrMoreSeparated, ParseError};
+use style_traits::{StyleParseErrorKind, ToCss};
use values::CustomIdent;
/// Parse a counter style name reference.
@@ -228,15 +230,14 @@ macro_rules! counter_style_descriptors {
}
impl ToCssWithGuard for CounterStyleRuleData {
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@counter-style ")?;
- self.name.to_css(dest)?;
+ self.name.to_css(&mut CssWriter::new(dest))?;
dest.write_str(" {\n")?;
$(
if let Some(ref value) = self.$ident {
dest.write_str(concat!(" ", $name, ": "))?;
- ToCss::to_css(value, dest)?;
+ ToCss::to_css(value, &mut CssWriter::new(dest))?;
dest.write_str(";\n")?;
}
)+
@@ -362,7 +363,10 @@ impl Parse for System {
}
impl ToCss for System {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
System::Cyclic => dest.write_str("cyclic"),
System::Numeric => dest.write_str("numeric"),
@@ -410,7 +414,10 @@ impl Parse for Symbol {
}
impl ToCss for Symbol {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
Symbol::String(ref s) => s.to_css(dest),
Symbol::Ident(ref s) => serialize_identifier(s, dest),
@@ -477,7 +484,10 @@ fn parse_bound<'i, 't>(input: &mut Parser<'i, 't>) -> Result<Option<i32>, ParseE
}
impl ToCss for Ranges {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.0.iter();
if let Some(first) = iter.next() {
range_to_css(first, dest)?;
@@ -492,14 +502,19 @@ impl ToCss for Ranges {
}
}
-fn range_to_css<W>(range: &Range<Option<i32>>, dest: &mut W) -> fmt::Result
-where W: fmt::Write {
+fn range_to_css<W>(range: &Range<Option<i32>>, dest: &mut CssWriter<W>) -> fmt::Result
+where
+ W: Write,
+{
bound_to_css(range.start, dest)?;
dest.write_char(' ')?;
bound_to_css(range.end, dest)
}
-fn bound_to_css<W>(range: Option<i32>, dest: &mut W) -> fmt::Result where W: fmt::Write {
+fn bound_to_css<W>(range: Option<i32>, dest: &mut CssWriter<W>) -> fmt::Result
+where
+ W: Write,
+{
if let Some(finite) = range {
finite.to_css(dest)
} else {
@@ -556,7 +571,10 @@ impl Parse for Symbols {
}
impl ToCss for Symbols {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.0.iter();
let first = iter.next().expect("expected at least one symbol");
first.to_css(dest)?;
diff --git a/components/style/custom_properties.rs b/components/style/custom_properties.rs
index 86aa135a0b8..0aa43109a18 100644
--- a/components/style/custom_properties.rs
+++ b/components/style/custom_properties.rs
@@ -17,9 +17,9 @@ use smallvec::SmallVec;
#[allow(unused_imports)] use std::ascii::AsciiExt;
use std::borrow::{Borrow, Cow};
use std::cmp;
-use std::fmt;
+use std::fmt::{self, Write};
use std::hash::Hash;
-use style_traits::{ToCss, StyleParseErrorKind, ParseError};
+use style_traits::{CssWriter, ToCss, StyleParseErrorKind, ParseError};
/// A custom property name is just an `Atom`.
///
@@ -53,8 +53,9 @@ pub struct VariableValue {
}
impl ToCss for SpecifiedValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
dest.write_str(&self.css)
}
diff --git a/components/style/dom.rs b/components/style/dom.rs
index bfa0b6078ac..88cd7a82829 100644
--- a/components/style/dom.rs
+++ b/components/style/dom.rs
@@ -680,7 +680,7 @@ pub trait TElement
/// Whether we should skip any root- or item-based display property
/// blockification on this element. (This function exists so that Gecko
/// native anonymous content can opt out of this style fixup.)
- fn skip_root_and_item_based_display_fixup(&self) -> bool;
+ fn skip_item_display_fixup(&self) -> bool;
/// Sets selector flags, which indicate what kinds of selectors may have
/// matched on this element and therefore what kind of work may need to
diff --git a/components/style/font_face.rs b/components/style/font_face.rs
index 80c32a552e7..1eae14e4a3a 100644
--- a/components/style/font_face.rs
+++ b/components/style/font_face.rs
@@ -20,8 +20,10 @@ use parser::{ParserContext, ParserErrorContext, Parse};
use properties::longhands::font_language_override;
use selectors::parser::SelectorParseErrorKind;
use shared_lock::{SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::{Comma, OneOrMoreSeparated, ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use str::CssStringWriter;
+use style_traits::{Comma, CssWriter, OneOrMoreSeparated, ParseError};
+use style_traits::{StyleParseErrorKind, ToCss};
use values::computed::font::FamilyName;
use values::specified::url::SpecifiedUrl;
@@ -54,8 +56,9 @@ pub struct UrlSource {
}
impl ToCss for UrlSource {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
self.url.to_css(dest)
}
@@ -272,13 +275,12 @@ macro_rules! font_face_descriptors_common {
impl ToCssWithGuard for FontFaceRuleData {
// Serialization of FontFaceRule is not specced.
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@font-face {\n")?;
$(
if let Some(ref value) = self.$ident {
dest.write_str(concat!(" ", $name, ": "))?;
- ToCss::to_css(value, dest)?;
+ ToCss::to_css(value, &mut CssWriter::new(dest))?;
dest.write_str(";\n")?;
}
)*
diff --git a/components/style/gecko/generated/atom_macro.rs b/components/style/gecko/generated/atom_macro.rs
index ba9eda4c208..e620ce3c4c9 100644
--- a/components/style/gecko/generated/atom_macro.rs
+++ b/components/style/gecko/generated/atom_macro.rs
@@ -5178,8 +5178,6 @@ cfg_if! {
pub static nsCSSAnonBoxes_mozTreeCellText: *mut nsICSSAnonBoxPseudo;
#[link_name = "_ZN14nsCSSAnonBoxes15mozTreeCheckboxE"]
pub static nsCSSAnonBoxes_mozTreeCheckbox: *mut nsICSSAnonBoxPseudo;
- #[link_name = "_ZN14nsCSSAnonBoxes20mozTreeProgressmeterE"]
- pub static nsCSSAnonBoxes_mozTreeProgressmeter: *mut nsICSSAnonBoxPseudo;
#[link_name = "_ZN14nsCSSAnonBoxes19mozTreeDropFeedbackE"]
pub static nsCSSAnonBoxes_mozTreeDropFeedback: *mut nsICSSAnonBoxPseudo;
#[link_name = "_ZN14nsCSSAnonBoxes21mozSVGMarkerAnonChildE"]
@@ -10351,8 +10349,6 @@ cfg_if! {
pub static nsCSSAnonBoxes_mozTreeCellText: *mut nsICSSAnonBoxPseudo;
#[link_name = "?mozTreeCheckbox@nsCSSAnonBoxes@@2PEAVnsICSSAnonBoxPseudo@@EA"]
pub static nsCSSAnonBoxes_mozTreeCheckbox: *mut nsICSSAnonBoxPseudo;
- #[link_name = "?mozTreeProgressmeter@nsCSSAnonBoxes@@2PEAVnsICSSAnonBoxPseudo@@EA"]
- pub static nsCSSAnonBoxes_mozTreeProgressmeter: *mut nsICSSAnonBoxPseudo;
#[link_name = "?mozTreeDropFeedback@nsCSSAnonBoxes@@2PEAVnsICSSAnonBoxPseudo@@EA"]
pub static nsCSSAnonBoxes_mozTreeDropFeedback: *mut nsICSSAnonBoxPseudo;
#[link_name = "?mozSVGMarkerAnonChild@nsCSSAnonBoxes@@2PEAVnsICSSAnonBoxPseudo@@EA"]
@@ -15524,8 +15520,6 @@ cfg_if! {
pub static nsCSSAnonBoxes_mozTreeCellText: *mut nsICSSAnonBoxPseudo;
#[link_name = "\x01?mozTreeCheckbox@nsCSSAnonBoxes@@2PAVnsICSSAnonBoxPseudo@@A"]
pub static nsCSSAnonBoxes_mozTreeCheckbox: *mut nsICSSAnonBoxPseudo;
- #[link_name = "\x01?mozTreeProgressmeter@nsCSSAnonBoxes@@2PAVnsICSSAnonBoxPseudo@@A"]
- pub static nsCSSAnonBoxes_mozTreeProgressmeter: *mut nsICSSAnonBoxPseudo;
#[link_name = "\x01?mozTreeDropFeedback@nsCSSAnonBoxes@@2PAVnsICSSAnonBoxPseudo@@A"]
pub static nsCSSAnonBoxes_mozTreeDropFeedback: *mut nsICSSAnonBoxPseudo;
#[link_name = "\x01?mozSVGMarkerAnonChild@nsCSSAnonBoxes@@2PAVnsICSSAnonBoxPseudo@@A"]
@@ -20700,8 +20694,6 @@ macro_rules! atom {
{{ #[allow(unsafe_code)] #[allow(unused_unsafe)]unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsCSSAnonBoxes_mozTreeCellText as *mut _) } }};
(":-moz-tree-checkbox") =>
{{ #[allow(unsafe_code)] #[allow(unused_unsafe)]unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsCSSAnonBoxes_mozTreeCheckbox as *mut _) } }};
-(":-moz-tree-progressmeter") =>
- {{ #[allow(unsafe_code)] #[allow(unused_unsafe)]unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsCSSAnonBoxes_mozTreeProgressmeter as *mut _) } }};
(":-moz-tree-drop-feedback") =>
{{ #[allow(unsafe_code)] #[allow(unused_unsafe)]unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsCSSAnonBoxes_mozTreeDropFeedback as *mut _) } }};
(":-moz-svg-marker-anon-child") =>
diff --git a/components/style/gecko/generated/bindings.rs b/components/style/gecko/generated/bindings.rs
index 301aba806f5..ff7248e166c 100644
--- a/components/style/gecko/generated/bindings.rs
+++ b/components/style/gecko/generated/bindings.rs
@@ -426,1173 +426,2864 @@ enum RawServoRuleNodeVoid { }
pub struct RawServoRuleNode(RawServoRuleNodeVoid);
extern "C" {
- pub fn Gecko_EnsureTArrayCapacity ( aArray : * mut :: std :: os :: raw :: c_void , aCapacity : usize , aElementSize : usize , ) ;
-} extern "C" {
- pub fn Gecko_ClearPODTArray ( aArray : * mut :: std :: os :: raw :: c_void , aElementSize : usize , aElementAlign : usize , ) ;
-} extern "C" {
- pub fn Servo_CssRules_AddRef ( ptr : ServoCssRulesBorrowed , ) ;
-} extern "C" {
- pub fn Servo_CssRules_Release ( ptr : ServoCssRulesBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSheetContents_AddRef ( ptr : RawServoStyleSheetContentsBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSheetContents_Release ( ptr : RawServoStyleSheetContentsBorrowed , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_AddRef ( ptr : RawServoDeclarationBlockBorrowed , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_Release ( ptr : RawServoDeclarationBlockBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_AddRef ( ptr : RawServoStyleRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_Release ( ptr : RawServoStyleRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_ImportRule_AddRef ( ptr : RawServoImportRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_ImportRule_Release ( ptr : RawServoImportRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_AnimationValue_AddRef ( ptr : RawServoAnimationValueBorrowed , ) ;
-} extern "C" {
- pub fn Servo_AnimationValue_Release ( ptr : RawServoAnimationValueBorrowed , ) ;
-} extern "C" {
- pub fn Servo_Keyframe_AddRef ( ptr : RawServoKeyframeBorrowed , ) ;
-} extern "C" {
- pub fn Servo_Keyframe_Release ( ptr : RawServoKeyframeBorrowed , ) ;
-} extern "C" {
- pub fn Servo_KeyframesRule_AddRef ( ptr : RawServoKeyframesRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_KeyframesRule_Release ( ptr : RawServoKeyframesRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_MediaList_AddRef ( ptr : RawServoMediaListBorrowed , ) ;
-} extern "C" {
- pub fn Servo_MediaList_Release ( ptr : RawServoMediaListBorrowed , ) ;
-} extern "C" {
- pub fn Servo_MediaRule_AddRef ( ptr : RawServoMediaRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_MediaRule_Release ( ptr : RawServoMediaRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_NamespaceRule_AddRef ( ptr : RawServoNamespaceRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_NamespaceRule_Release ( ptr : RawServoNamespaceRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_PageRule_AddRef ( ptr : RawServoPageRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_PageRule_Release ( ptr : RawServoPageRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_SupportsRule_AddRef ( ptr : RawServoSupportsRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_SupportsRule_Release ( ptr : RawServoSupportsRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_DocumentRule_AddRef ( ptr : RawServoDocumentRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_DocumentRule_Release ( ptr : RawServoDocumentRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_FontFeatureValuesRule_AddRef ( ptr : RawServoFontFeatureValuesRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_FontFeatureValuesRule_Release ( ptr : RawServoFontFeatureValuesRuleBorrowed , ) ;
-} extern "C" {
- pub fn Servo_RuleNode_AddRef ( ptr : RawServoRuleNodeBorrowed , ) ;
-} extern "C" {
- pub fn Servo_RuleNode_Release ( ptr : RawServoRuleNodeBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_Drop ( ptr : RawServoStyleSetOwned , ) ;
-} extern "C" {
- pub fn Servo_SelectorList_Drop ( ptr : RawServoSelectorListOwned , ) ;
-} extern "C" {
- pub fn Servo_SourceSizeList_Drop ( ptr : RawServoSourceSizeListOwned , ) ;
-} extern "C" {
- pub fn Gecko_RecordTraversalStatistics ( total : u32 , parallel : u32 , total_t : u32 , parallel_t : u32 , total_s : u32 , parallel_s : u32 , ) ;
-} extern "C" {
- pub fn Gecko_IsSignificantChild ( node : RawGeckoNodeBorrowed , text_is_significant : bool , whitespace_is_significant : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_GetLastChild ( node : RawGeckoNodeBorrowed , ) -> RawGeckoNodeBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetFlattenedTreeParentNode ( node : RawGeckoNodeBorrowed , ) -> RawGeckoNodeBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetBeforeOrAfterPseudo ( element : RawGeckoElementBorrowed , is_before : bool , ) -> RawGeckoElementBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetAnonymousContentForElement ( element : RawGeckoElementBorrowed , ) -> * mut nsTArray < * mut nsIContent > ;
-} extern "C" {
- pub fn Gecko_DestroyAnonymousContentList ( anon_content : * mut nsTArray < * mut nsIContent > , ) ;
-} extern "C" {
- pub fn Gecko_ServoStyleContext_Init ( context : * mut ServoStyleContext , parent_context : ServoStyleContextBorrowedOrNull , pres_context : RawGeckoPresContextBorrowed , values : ServoComputedDataBorrowed , pseudo_type : CSSPseudoElementType , pseudo_tag : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_ServoStyleContext_Destroy ( context : * mut ServoStyleContext , ) ;
-} extern "C" {
- pub fn Gecko_ConstructStyleChildrenIterator ( aElement : RawGeckoElementBorrowed , aIterator : RawGeckoStyleChildrenIteratorBorrowedMut , ) ;
-} extern "C" {
- pub fn Gecko_DestroyStyleChildrenIterator ( aIterator : RawGeckoStyleChildrenIteratorBorrowedMut , ) ;
-} extern "C" {
- pub fn Gecko_GetNextStyleChild ( it : RawGeckoStyleChildrenIteratorBorrowedMut , ) -> RawGeckoNodeBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_LoadStyleSheet ( loader : * mut Loader , parent : * mut ServoStyleSheet , reusable_sheets : * mut LoaderReusableStyleSheets , base_url_data : * mut RawGeckoURLExtraData , url_bytes : * const u8 , url_length : u32 , media_list : RawServoMediaListStrong , ) -> * mut ServoStyleSheet ;
-} extern "C" {
- pub fn Gecko_ElementState ( element : RawGeckoElementBorrowed , ) -> u64 ;
-} extern "C" {
- pub fn Gecko_IsRootElement ( element : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_MatchesElement ( type_ : CSSPseudoClassType , element : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_MatchLang ( element : RawGeckoElementBorrowed , override_lang : * mut nsAtom , has_override_lang : bool , value : * const u16 , ) -> bool ;
-} extern "C" {
- pub fn Gecko_GetXMLLangValue ( element : RawGeckoElementBorrowed , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_GetDocumentLWTheme ( aDocument : * const nsIDocument , ) -> nsIDocument_DocumentTheme ;
-} extern "C" {
- pub fn Gecko_AtomAttrValue ( element : RawGeckoElementBorrowed , attribute : * mut nsAtom , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_LangValue ( element : RawGeckoElementBorrowed , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_HasAttr ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AttrEquals ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignoreCase : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AttrDashEquals ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AttrIncludes ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AttrHasSubstring ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AttrHasPrefix ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AttrHasSuffix ( element : RawGeckoElementBorrowed , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_ClassOrClassList ( element : RawGeckoElementBorrowed , class_ : * mut * mut nsAtom , classList : * mut * mut * mut nsAtom , ) -> u32 ;
-} extern "C" {
- pub fn Gecko_SnapshotAtomAttrValue ( element : * const ServoElementSnapshot , attribute : * mut nsAtom , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_SnapshotLangValue ( element : * const ServoElementSnapshot , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_SnapshotHasAttr ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotAttrEquals ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignoreCase : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotAttrDashEquals ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotAttrIncludes ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotAttrHasSubstring ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotAttrHasPrefix ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotAttrHasSuffix ( element : * const ServoElementSnapshot , ns : * mut nsAtom , name : * mut nsAtom , str : * mut nsAtom , ignore_case : bool , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SnapshotClassOrClassList ( element : * const ServoElementSnapshot , class_ : * mut * mut nsAtom , classList : * mut * mut * mut nsAtom , ) -> u32 ;
-} extern "C" {
- pub fn Gecko_GetStyleAttrDeclarationBlock ( element : RawGeckoElementBorrowed , ) -> RawServoDeclarationBlockStrongBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_UnsetDirtyStyleAttr ( element : RawGeckoElementBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_GetHTMLPresentationAttrDeclarationBlock ( element : RawGeckoElementBorrowed , ) -> RawServoDeclarationBlockStrongBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetExtraContentStyleDeclarations ( element : RawGeckoElementBorrowed , ) -> RawServoDeclarationBlockStrongBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetUnvisitedLinkAttrDeclarationBlock ( element : RawGeckoElementBorrowed , ) -> RawServoDeclarationBlockStrongBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetVisitedLinkAttrDeclarationBlock ( element : RawGeckoElementBorrowed , ) -> RawServoDeclarationBlockStrongBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetActiveLinkAttrDeclarationBlock ( element : RawGeckoElementBorrowed , ) -> RawServoDeclarationBlockStrongBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_IsPrivateBrowsingEnabled ( aDoc : * const nsIDocument , ) -> bool ;
-} extern "C" {
- pub fn Gecko_GetAnimationRule ( aElementOrPseudo : RawGeckoElementBorrowed , aCascadeLevel : EffectCompositor_CascadeLevel , aAnimationValues : RawServoAnimationValueMapBorrowedMut , ) -> bool ;
-} extern "C" {
- pub fn Gecko_StyleAnimationsEquals ( arg1 : RawGeckoStyleAnimationListBorrowed , arg2 : RawGeckoStyleAnimationListBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_CopyAnimationNames ( aDest : RawGeckoStyleAnimationListBorrowedMut , aSrc : RawGeckoStyleAnimationListBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_SetAnimationName ( aStyleAnimation : * mut StyleAnimation , aAtom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_UpdateAnimations ( aElementOrPseudo : RawGeckoElementBorrowed , aOldComputedValues : ServoStyleContextBorrowedOrNull , aComputedValues : ServoStyleContextBorrowedOrNull , aTasks : UpdateAnimationsTasks , ) ;
-} extern "C" {
- pub fn Gecko_ElementHasAnimations ( aElementOrPseudo : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_ElementHasCSSAnimations ( aElementOrPseudo : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_ElementHasCSSTransitions ( aElementOrPseudo : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_ElementTransitions_Length ( aElementOrPseudo : RawGeckoElementBorrowed , ) -> usize ;
-} extern "C" {
- pub fn Gecko_ElementTransitions_PropertyAt ( aElementOrPseudo : RawGeckoElementBorrowed , aIndex : usize , ) -> nsCSSPropertyID ;
-} extern "C" {
- pub fn Gecko_ElementTransitions_EndValueAt ( aElementOrPseudo : RawGeckoElementBorrowed , aIndex : usize , ) -> RawServoAnimationValueBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetProgressFromComputedTiming ( aComputedTiming : RawGeckoComputedTimingBorrowed , ) -> f64 ;
-} extern "C" {
- pub fn Gecko_GetPositionInSegment ( aSegment : RawGeckoAnimationPropertySegmentBorrowed , aProgress : f64 , aBeforeFlag : ComputedTimingFunction_BeforeFlag , ) -> f64 ;
-} extern "C" {
- pub fn Gecko_AnimationGetBaseStyle ( aBaseStyles : RawServoAnimationValueTableBorrowed , aProperty : nsCSSPropertyID , ) -> RawServoAnimationValueBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_StyleTransition_SetUnsupportedProperty ( aTransition : * mut StyleTransition , aAtom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_Atomize ( aString : * const :: std :: os :: raw :: c_char , aLength : u32 , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_Atomize16 ( aString : * const nsAString , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_AddRefAtom ( aAtom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseAtom ( aAtom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_GetAtomAsUTF16 ( aAtom : * mut nsAtom , aLength : * mut u32 , ) -> * const u16 ;
-} extern "C" {
- pub fn Gecko_AtomEqualsUTF8 ( aAtom : * mut nsAtom , aString : * const :: std :: os :: raw :: c_char , aLength : u32 , ) -> bool ;
-} extern "C" {
- pub fn Gecko_AtomEqualsUTF8IgnoreCase ( aAtom : * mut nsAtom , aString : * const :: std :: os :: raw :: c_char , aLength : u32 , ) -> bool ;
-} extern "C" {
- pub fn Gecko_EnsureMozBorderColors ( aBorder : * mut nsStyleBorder , ) ;
-} extern "C" {
- pub fn Gecko_CopyFontFamilyFrom ( dst : * mut nsFont , src : * const nsFont , ) ;
-} extern "C" {
- pub fn Gecko_nsTArray_FontFamilyName_AppendNamed ( aNames : * mut nsTArray < FontFamilyName > , aName : * mut nsAtom , aQuoted : bool , ) ;
-} extern "C" {
- pub fn Gecko_nsTArray_FontFamilyName_AppendGeneric ( aNames : * mut nsTArray < FontFamilyName > , aType : FontFamilyType , ) ;
-} extern "C" {
- pub fn Gecko_SharedFontList_Create ( ) -> * mut SharedFontList ;
-} extern "C" {
- pub fn Gecko_SharedFontList_SizeOfIncludingThis ( fontlist : * mut SharedFontList , ) -> usize ;
-} extern "C" {
- pub fn Gecko_SharedFontList_SizeOfIncludingThisIfUnshared ( fontlist : * mut SharedFontList , ) -> usize ;
-} extern "C" {
- pub fn Gecko_AddRefSharedFontListArbitraryThread ( aPtr : * mut SharedFontList , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseSharedFontListArbitraryThread ( aPtr : * mut SharedFontList , ) ;
-} extern "C" {
- pub fn Gecko_nsFont_InitSystem ( dst : * mut nsFont , font_id : i32 , font : * const nsStyleFont , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_nsFont_Destroy ( dst : * mut nsFont , ) ;
-} extern "C" {
- pub fn Gecko_ConstructFontFeatureValueSet ( ) -> * mut gfxFontFeatureValueSet ;
-} extern "C" {
- pub fn Gecko_AppendFeatureValueHashEntry ( value_set : * mut gfxFontFeatureValueSet , family : * mut nsAtom , alternate : u32 , name : * mut nsAtom , ) -> * mut nsTArray < :: std :: os :: raw :: c_uint > ;
-} extern "C" {
- pub fn Gecko_nsFont_SetFontFeatureValuesLookup ( font : * mut nsFont , pres_context : * const RawGeckoPresContext , ) ;
-} extern "C" {
- pub fn Gecko_nsFont_ResetFontFeatureValuesLookup ( font : * mut nsFont , ) ;
-} extern "C" {
- pub fn Gecko_ClearAlternateValues ( font : * mut nsFont , length : usize , ) ;
-} extern "C" {
- pub fn Gecko_AppendAlternateValues ( font : * mut nsFont , alternate_name : u32 , atom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_CopyAlternateValuesFrom ( dest : * mut nsFont , src : * const nsFont , ) ;
-} extern "C" {
- pub fn Gecko_SetImageOrientation ( aVisibility : * mut nsStyleVisibility , aOrientation : u8 , aFlip : bool , ) ;
-} extern "C" {
- pub fn Gecko_SetImageOrientationAsFromImage ( aVisibility : * mut nsStyleVisibility , ) ;
-} extern "C" {
- pub fn Gecko_CopyImageOrientationFrom ( aDst : * mut nsStyleVisibility , aSrc : * const nsStyleVisibility , ) ;
-} extern "C" {
- pub fn Gecko_SetCounterStyleToName ( ptr : * mut CounterStylePtr , name : * mut nsAtom , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_SetCounterStyleToSymbols ( ptr : * mut CounterStylePtr , symbols_type : u8 , symbols : * const * const nsACString , symbols_count : u32 , ) ;
-} extern "C" {
- pub fn Gecko_SetCounterStyleToString ( ptr : * mut CounterStylePtr , symbol : * const nsACString , ) ;
-} extern "C" {
- pub fn Gecko_CopyCounterStyle ( dst : * mut CounterStylePtr , src : * const CounterStylePtr , ) ;
-} extern "C" {
- pub fn Gecko_CounterStyle_GetName ( ptr : * const CounterStylePtr , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_CounterStyle_GetAnonymous ( ptr : * const CounterStylePtr , ) -> * const AnonymousCounterStyle ;
-} extern "C" {
- pub fn Gecko_SetNullImageValue ( image : * mut nsStyleImage , ) ;
-} extern "C" {
- pub fn Gecko_SetGradientImageValue ( image : * mut nsStyleImage , gradient : * mut nsStyleGradient , ) ;
-} extern "C" {
- pub fn Gecko_AddRefImageValueArbitraryThread ( aPtr : * mut ImageValue , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseImageValueArbitraryThread ( aPtr : * mut ImageValue , ) ;
-} extern "C" {
- pub fn Gecko_ImageValue_Create ( aURI : ServoBundledURI , aURIString : ServoRawOffsetArc < RustString > , ) -> * mut ImageValue ;
-} extern "C" {
- pub fn Gecko_ImageValue_SizeOfIncludingThis ( aImageValue : * mut ImageValue , ) -> usize ;
-} extern "C" {
- pub fn Gecko_SetLayerImageImageValue ( image : * mut nsStyleImage , aImageValue : * mut ImageValue , ) ;
-} extern "C" {
- pub fn Gecko_SetImageElement ( image : * mut nsStyleImage , atom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_CopyImageValueFrom ( image : * mut nsStyleImage , other : * const nsStyleImage , ) ;
-} extern "C" {
- pub fn Gecko_InitializeImageCropRect ( image : * mut nsStyleImage , ) ;
-} extern "C" {
- pub fn Gecko_CreateGradient ( shape : u8 , size : u8 , repeating : bool , legacy_syntax : bool , moz_legacy_syntax : bool , stops : u32 , ) -> * mut nsStyleGradient ;
-} extern "C" {
- pub fn Gecko_GetURLValue ( image : * const nsStyleImage , ) -> * const URLValueData ;
-} extern "C" {
- pub fn Gecko_GetImageElement ( image : * const nsStyleImage , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Gecko_GetGradientImageValue ( image : * const nsStyleImage , ) -> * const nsStyleGradient ;
-} extern "C" {
- pub fn Gecko_SetListStyleImageNone ( style_struct : * mut nsStyleList , ) ;
-} extern "C" {
- pub fn Gecko_SetListStyleImageImageValue ( style_struct : * mut nsStyleList , aImageValue : * mut ImageValue , ) ;
-} extern "C" {
- pub fn Gecko_CopyListStyleImageFrom ( dest : * mut nsStyleList , src : * const nsStyleList , ) ;
-} extern "C" {
- pub fn Gecko_SetCursorArrayLength ( ui : * mut nsStyleUserInterface , len : usize , ) ;
-} extern "C" {
- pub fn Gecko_SetCursorImageValue ( aCursor : * mut nsCursorImage , aImageValue : * mut ImageValue , ) ;
-} extern "C" {
- pub fn Gecko_CopyCursorArrayFrom ( dest : * mut nsStyleUserInterface , src : * const nsStyleUserInterface , ) ;
-} extern "C" {
- pub fn Gecko_SetContentDataImageValue ( aList : * mut nsStyleContentData , aImageValue : * mut ImageValue , ) ;
-} extern "C" {
- pub fn Gecko_SetCounterFunction ( content_data : * mut nsStyleContentData , type_ : nsStyleContentType , ) -> * mut nsStyleContentData_CounterFunction ;
-} extern "C" {
- pub fn Gecko_SetNodeFlags ( node : RawGeckoNodeBorrowed , flags : u32 , ) ;
-} extern "C" {
- pub fn Gecko_UnsetNodeFlags ( node : RawGeckoNodeBorrowed , flags : u32 , ) ;
-} extern "C" {
- pub fn Gecko_NoteDirtyElement ( element : RawGeckoElementBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_NoteDirtySubtreeForInvalidation ( element : RawGeckoElementBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_NoteAnimationOnlyDirtyElement ( element : RawGeckoElementBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_GetImplementedPseudo ( element : RawGeckoElementBorrowed , ) -> CSSPseudoElementType ;
-} extern "C" {
- pub fn Gecko_CalcStyleDifference ( old_style : ServoStyleContextBorrowed , new_style : ServoStyleContextBorrowed , any_style_changed : * mut bool , reset_only_changed : * mut bool , ) -> u32 ;
-} extern "C" {
- pub fn Gecko_GetElementSnapshot ( table : * const ServoElementSnapshotTable , element : RawGeckoElementBorrowed , ) -> * const ServoElementSnapshot ;
-} extern "C" {
- pub fn Gecko_HaveSeenPtr ( table : * mut SeenPtrs , ptr : * const :: std :: os :: raw :: c_void , ) -> bool ;
-} extern "C" {
- pub fn Gecko_ResizeTArrayForStrings ( array : * mut nsTArray <nsStringRepr> , length : u32 , ) ;
-} extern "C" {
- pub fn Gecko_SetStyleGridTemplate ( grid_template : * mut UniquePtr < nsStyleGridTemplate > , value : * mut nsStyleGridTemplate , ) ;
-} extern "C" {
- pub fn Gecko_CreateStyleGridTemplate ( track_sizes : u32 , name_size : u32 , ) -> * mut nsStyleGridTemplate ;
-} extern "C" {
- pub fn Gecko_CopyStyleGridTemplateValues ( grid_template : * mut UniquePtr < nsStyleGridTemplate > , other : * const nsStyleGridTemplate , ) ;
-} extern "C" {
- pub fn Gecko_NewGridTemplateAreasValue ( areas : u32 , templates : u32 , columns : u32 , ) -> * mut GridTemplateAreasValue ;
-} extern "C" {
- pub fn Gecko_AddRefGridTemplateAreasValueArbitraryThread ( aPtr : * mut GridTemplateAreasValue , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseGridTemplateAreasValueArbitraryThread ( aPtr : * mut GridTemplateAreasValue , ) ;
-} extern "C" {
- pub fn Gecko_ClearAndResizeStyleContents ( content : * mut nsStyleContent , how_many : u32 , ) ;
-} extern "C" {
- pub fn Gecko_ClearAndResizeCounterIncrements ( content : * mut nsStyleContent , how_many : u32 , ) ;
-} extern "C" {
- pub fn Gecko_ClearAndResizeCounterResets ( content : * mut nsStyleContent , how_many : u32 , ) ;
-} extern "C" {
- pub fn Gecko_CopyStyleContentsFrom ( content : * mut nsStyleContent , other : * const nsStyleContent , ) ;
-} extern "C" {
- pub fn Gecko_CopyCounterResetsFrom ( content : * mut nsStyleContent , other : * const nsStyleContent , ) ;
-} extern "C" {
- pub fn Gecko_CopyCounterIncrementsFrom ( content : * mut nsStyleContent , other : * const nsStyleContent , ) ;
-} extern "C" {
- pub fn Gecko_EnsureImageLayersLength ( layers : * mut nsStyleImageLayers , len : usize , layer_type : nsStyleImageLayers_LayerType , ) ;
-} extern "C" {
- pub fn Gecko_EnsureStyleAnimationArrayLength ( array : * mut :: std :: os :: raw :: c_void , len : usize , ) ;
-} extern "C" {
- pub fn Gecko_EnsureStyleTransitionArrayLength ( array : * mut :: std :: os :: raw :: c_void , len : usize , ) ;
-} extern "C" {
- pub fn Gecko_ClearWillChange ( display : * mut nsStyleDisplay , length : usize , ) ;
-} extern "C" {
- pub fn Gecko_AppendWillChange ( display : * mut nsStyleDisplay , atom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_CopyWillChangeFrom ( dest : * mut nsStyleDisplay , src : * mut nsStyleDisplay , ) ;
-} extern "C" {
- pub fn Gecko_GetOrCreateKeyframeAtStart ( keyframes : RawGeckoKeyframeListBorrowedMut , offset : f32 , timingFunction : * const nsTimingFunction , ) -> * mut Keyframe ;
-} extern "C" {
- pub fn Gecko_GetOrCreateInitialKeyframe ( keyframes : RawGeckoKeyframeListBorrowedMut , timingFunction : * const nsTimingFunction , ) -> * mut Keyframe ;
-} extern "C" {
- pub fn Gecko_GetOrCreateFinalKeyframe ( keyframes : RawGeckoKeyframeListBorrowedMut , timingFunction : * const nsTimingFunction , ) -> * mut Keyframe ;
-} extern "C" {
- pub fn Gecko_AppendPropertyValuePair ( aProperties : RawGeckoPropertyValuePairListBorrowedMut , aProperty : nsCSSPropertyID , ) -> * mut PropertyValuePair ;
-} extern "C" {
- pub fn Gecko_ResetStyleCoord ( unit : * mut nsStyleUnit , value : * mut nsStyleUnion , ) ;
-} extern "C" {
- pub fn Gecko_SetStyleCoordCalcValue ( unit : * mut nsStyleUnit , value : * mut nsStyleUnion , calc : nsStyleCoord_CalcValue , ) ;
-} extern "C" {
- pub fn Gecko_CopyShapeSourceFrom ( dst : * mut StyleShapeSource , src : * const StyleShapeSource , ) ;
-} extern "C" {
- pub fn Gecko_DestroyShapeSource ( shape : * mut StyleShapeSource , ) ;
-} extern "C" {
- pub fn Gecko_NewBasicShape ( shape : * mut StyleShapeSource , type_ : StyleBasicShapeType , ) ;
-} extern "C" {
- pub fn Gecko_NewShapeImage ( shape : * mut StyleShapeSource , ) ;
-} extern "C" {
- pub fn Gecko_StyleShapeSource_SetURLValue ( shape : * mut StyleShapeSource , uri : ServoBundledURI , ) ;
-} extern "C" {
- pub fn Gecko_ResetFilters ( effects : * mut nsStyleEffects , new_len : usize , ) ;
-} extern "C" {
- pub fn Gecko_CopyFiltersFrom ( aSrc : * mut nsStyleEffects , aDest : * mut nsStyleEffects , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleFilter_SetURLValue ( effects : * mut nsStyleFilter , uri : ServoBundledURI , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVGPaint_CopyFrom ( dest : * mut nsStyleSVGPaint , src : * const nsStyleSVGPaint , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVGPaint_SetURLValue ( paint : * mut nsStyleSVGPaint , uri : ServoBundledURI , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVGPaint_Reset ( paint : * mut nsStyleSVGPaint , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVG_SetDashArrayLength ( svg : * mut nsStyleSVG , len : u32 , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVG_CopyDashArray ( dst : * mut nsStyleSVG , src : * const nsStyleSVG , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVG_SetContextPropertiesLength ( svg : * mut nsStyleSVG , len : u32 , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleSVG_CopyContextProperties ( dst : * mut nsStyleSVG , src : * const nsStyleSVG , ) ;
-} extern "C" {
- pub fn Gecko_NewURLValue ( uri : ServoBundledURI , ) -> * mut URLValue ;
-} extern "C" {
- pub fn Gecko_AddRefCSSURLValueArbitraryThread ( aPtr : * mut URLValue , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseCSSURLValueArbitraryThread ( aPtr : * mut URLValue , ) ;
-} extern "C" {
- pub fn Gecko_AddRefURLExtraDataArbitraryThread ( aPtr : * mut RawGeckoURLExtraData , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseURLExtraDataArbitraryThread ( aPtr : * mut RawGeckoURLExtraData , ) ;
-} extern "C" {
- pub fn Gecko_FillAllImageLayers ( layers : * mut nsStyleImageLayers , max_len : u32 , ) ;
-} extern "C" {
- pub fn Gecko_AddRefCalcArbitraryThread ( aPtr : * mut nsStyleCoord_Calc , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseCalcArbitraryThread ( aPtr : * mut nsStyleCoord_Calc , ) ;
-} extern "C" {
- pub fn Gecko_NewCSSShadowArray ( len : u32 , ) -> * mut nsCSSShadowArray ;
-} extern "C" {
- pub fn Gecko_AddRefCSSShadowArrayArbitraryThread ( aPtr : * mut nsCSSShadowArray , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseCSSShadowArrayArbitraryThread ( aPtr : * mut nsCSSShadowArray , ) ;
-} extern "C" {
- pub fn Gecko_NewStyleQuoteValues ( len : u32 , ) -> * mut nsStyleQuoteValues ;
-} extern "C" {
- pub fn Gecko_AddRefQuoteValuesArbitraryThread ( aPtr : * mut nsStyleQuoteValues , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseQuoteValuesArbitraryThread ( aPtr : * mut nsStyleQuoteValues , ) ;
-} extern "C" {
- pub fn Gecko_NewCSSValueSharedList ( len : u32 , ) -> * mut nsCSSValueSharedList ;
-} extern "C" {
- pub fn Gecko_NewNoneTransform ( ) -> * mut nsCSSValueSharedList ;
-} extern "C" {
- pub fn Gecko_CSSValue_GetArrayItem ( css_value : nsCSSValueBorrowedMut , index : i32 , ) -> nsCSSValueBorrowedMut ;
-} extern "C" {
- pub fn Gecko_CSSValue_GetArrayItemConst ( css_value : nsCSSValueBorrowed , index : i32 , ) -> nsCSSValueBorrowed ;
-} extern "C" {
- pub fn Gecko_CSSValue_GetKeyword ( aCSSValue : nsCSSValueBorrowed , ) -> nsCSSKeyword ;
-} extern "C" {
- pub fn Gecko_CSSValue_GetNumber ( css_value : nsCSSValueBorrowed , ) -> f32 ;
-} extern "C" {
- pub fn Gecko_CSSValue_GetPercentage ( css_value : nsCSSValueBorrowed , ) -> f32 ;
-} extern "C" {
- pub fn Gecko_CSSValue_GetCalc ( aCSSValue : nsCSSValueBorrowed , ) -> nsStyleCoord_CalcValue ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetNumber ( css_value : nsCSSValueBorrowedMut , number : f32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetKeyword ( css_value : nsCSSValueBorrowedMut , keyword : nsCSSKeyword , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetPercentage ( css_value : nsCSSValueBorrowedMut , percent : f32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetPixelLength ( aCSSValue : nsCSSValueBorrowedMut , aLen : f32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetCalc ( css_value : nsCSSValueBorrowedMut , calc : nsStyleCoord_CalcValue , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetFunction ( css_value : nsCSSValueBorrowedMut , len : i32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetString ( css_value : nsCSSValueBorrowedMut , string : * const u8 , len : u32 , unit : nsCSSUnit , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetStringFromAtom ( css_value : nsCSSValueBorrowedMut , atom : * mut nsAtom , unit : nsCSSUnit , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetAtomIdent ( css_value : nsCSSValueBorrowedMut , atom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetArray ( css_value : nsCSSValueBorrowedMut , len : i32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetURL ( css_value : nsCSSValueBorrowedMut , uri : ServoBundledURI , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetInt ( css_value : nsCSSValueBorrowedMut , integer : i32 , unit : nsCSSUnit , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetPair ( css_value : nsCSSValueBorrowedMut , xvalue : nsCSSValueBorrowed , yvalue : nsCSSValueBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetList ( css_value : nsCSSValueBorrowedMut , len : u32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_SetPairList ( css_value : nsCSSValueBorrowedMut , len : u32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_InitSharedList ( css_value : nsCSSValueBorrowedMut , len : u32 , ) ;
-} extern "C" {
- pub fn Gecko_CSSValue_Drop ( css_value : nsCSSValueBorrowedMut , ) ;
-} extern "C" {
- pub fn Gecko_AddRefCSSValueSharedListArbitraryThread ( aPtr : * mut nsCSSValueSharedList , ) ;
-} extern "C" {
- pub fn Gecko_ReleaseCSSValueSharedListArbitraryThread ( aPtr : * mut nsCSSValueSharedList , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleFont_SetLang ( font : * mut nsStyleFont , atom : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleFont_CopyLangFrom ( aFont : * mut nsStyleFont , aSource : * const nsStyleFont , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleFont_FixupNoneGeneric ( font : * mut nsStyleFont , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleFont_PrefillDefaultForGeneric ( font : * mut nsStyleFont , pres_context : RawGeckoPresContextBorrowed , generic_id : u8 , ) ;
-} extern "C" {
- pub fn Gecko_nsStyleFont_FixupMinFontSize ( font : * mut nsStyleFont , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_GetBaseSize ( lang : * mut nsAtom , ) -> FontSizePrefs ;
-} extern "C" {
- pub fn Gecko_GetBindingParent ( aElement : RawGeckoElementBorrowed , ) -> RawGeckoElementBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_GetXBLBinding ( aElement : RawGeckoElementBorrowed , ) -> RawGeckoXBLBindingBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_XBLBinding_GetRawServoStyleSet ( aXBLBinding : RawGeckoXBLBindingBorrowed , ) -> RawServoStyleSetBorrowedOrNull ;
-} extern "C" {
- pub fn Gecko_XBLBinding_InheritsStyle ( aXBLBinding : RawGeckoXBLBindingBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_GetFontMetrics ( pres_context : RawGeckoPresContextBorrowed , is_vertical : bool , font : * const nsStyleFont , font_size : nscoord , use_user_font_set : bool , ) -> GeckoFontMetrics ;
-} extern "C" {
- pub fn Gecko_GetAppUnitsPerPhysicalInch ( pres_context : RawGeckoPresContextBorrowed , ) -> i32 ;
-} extern "C" {
- pub fn Gecko_StyleSheet_Clone ( aSheet : * const ServoStyleSheet , aNewParentSheet : * const ServoStyleSheet , ) -> * mut ServoStyleSheet ;
-} extern "C" {
- pub fn Gecko_StyleSheet_AddRef ( aSheet : * const ServoStyleSheet , ) ;
-} extern "C" {
- pub fn Gecko_StyleSheet_Release ( aSheet : * const ServoStyleSheet , ) ;
-} extern "C" {
- pub fn Gecko_LookupCSSKeyword ( string : * const u8 , len : u32 , ) -> nsCSSKeyword ;
-} extern "C" {
- pub fn Gecko_CSSKeywordString ( keyword : nsCSSKeyword , len : * mut u32 , ) -> * const :: std :: os :: raw :: c_char ;
-} extern "C" {
- pub fn Gecko_CSSFontFaceRule_Create ( line : u32 , column : u32 , ) -> * mut nsCSSFontFaceRule ;
-} extern "C" {
- pub fn Gecko_CSSFontFaceRule_Clone ( rule : * const nsCSSFontFaceRule , ) -> * mut nsCSSFontFaceRule ;
-} extern "C" {
- pub fn Gecko_CSSFontFaceRule_GetCssText ( rule : * const nsCSSFontFaceRule , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Gecko_CSSFontFaceRule_AddRef ( aPtr : * mut nsCSSFontFaceRule , ) ;
-} extern "C" {
- pub fn Gecko_CSSFontFaceRule_Release ( aPtr : * mut nsCSSFontFaceRule , ) ;
-} extern "C" {
- pub fn Gecko_CSSCounterStyle_Create ( name : * mut nsAtom , ) -> * mut nsCSSCounterStyleRule ;
-} extern "C" {
- pub fn Gecko_CSSCounterStyle_Clone ( rule : * const nsCSSCounterStyleRule , ) -> * mut nsCSSCounterStyleRule ;
-} extern "C" {
- pub fn Gecko_CSSCounterStyle_GetCssText ( rule : * const nsCSSCounterStyleRule , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Gecko_CSSCounterStyleRule_AddRef ( aPtr : * mut nsCSSCounterStyleRule , ) ;
-} extern "C" {
- pub fn Gecko_CSSCounterStyleRule_Release ( aPtr : * mut nsCSSCounterStyleRule , ) ;
-} extern "C" {
- pub fn Gecko_IsDocumentBody ( element : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Gecko_GetLookAndFeelSystemColor ( color_id : i32 , pres_context : RawGeckoPresContextBorrowed , ) -> nscolor ;
-} extern "C" {
- pub fn Gecko_AddPropertyToSet ( arg1 : nsCSSPropertyIDSetBorrowedMut , arg2 : nsCSSPropertyID , ) ;
-} extern "C" {
- pub fn Gecko_RegisterNamespace ( ns : * mut nsAtom , ) -> i32 ;
-} extern "C" {
- pub fn Gecko_ShouldCreateStyleThreadPool ( ) -> bool ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleFont ( ptr : * mut nsStyleFont , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleFont ( ptr : * mut nsStyleFont , other : * const nsStyleFont , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleFont ( ptr : * mut nsStyleFont , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleColor ( ptr : * mut nsStyleColor , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleColor ( ptr : * mut nsStyleColor , other : * const nsStyleColor , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleColor ( ptr : * mut nsStyleColor , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleList ( ptr : * mut nsStyleList , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleList ( ptr : * mut nsStyleList , other : * const nsStyleList , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleList ( ptr : * mut nsStyleList , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleText ( ptr : * mut nsStyleText , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleText ( ptr : * mut nsStyleText , other : * const nsStyleText , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleText ( ptr : * mut nsStyleText , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleVisibility ( ptr : * mut nsStyleVisibility , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleVisibility ( ptr : * mut nsStyleVisibility , other : * const nsStyleVisibility , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleVisibility ( ptr : * mut nsStyleVisibility , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleUserInterface ( ptr : * mut nsStyleUserInterface , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleUserInterface ( ptr : * mut nsStyleUserInterface , other : * const nsStyleUserInterface , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleUserInterface ( ptr : * mut nsStyleUserInterface , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleTableBorder ( ptr : * mut nsStyleTableBorder , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleTableBorder ( ptr : * mut nsStyleTableBorder , other : * const nsStyleTableBorder , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleTableBorder ( ptr : * mut nsStyleTableBorder , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleSVG ( ptr : * mut nsStyleSVG , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleSVG ( ptr : * mut nsStyleSVG , other : * const nsStyleSVG , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleSVG ( ptr : * mut nsStyleSVG , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleVariables ( ptr : * mut nsStyleVariables , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleVariables ( ptr : * mut nsStyleVariables , other : * const nsStyleVariables , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleVariables ( ptr : * mut nsStyleVariables , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleBackground ( ptr : * mut nsStyleBackground , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleBackground ( ptr : * mut nsStyleBackground , other : * const nsStyleBackground , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleBackground ( ptr : * mut nsStyleBackground , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStylePosition ( ptr : * mut nsStylePosition , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStylePosition ( ptr : * mut nsStylePosition , other : * const nsStylePosition , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStylePosition ( ptr : * mut nsStylePosition , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleTextReset ( ptr : * mut nsStyleTextReset , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleTextReset ( ptr : * mut nsStyleTextReset , other : * const nsStyleTextReset , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleTextReset ( ptr : * mut nsStyleTextReset , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleDisplay ( ptr : * mut nsStyleDisplay , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleDisplay ( ptr : * mut nsStyleDisplay , other : * const nsStyleDisplay , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleDisplay ( ptr : * mut nsStyleDisplay , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleContent ( ptr : * mut nsStyleContent , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleContent ( ptr : * mut nsStyleContent , other : * const nsStyleContent , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleContent ( ptr : * mut nsStyleContent , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleUIReset ( ptr : * mut nsStyleUIReset , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleUIReset ( ptr : * mut nsStyleUIReset , other : * const nsStyleUIReset , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleUIReset ( ptr : * mut nsStyleUIReset , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleTable ( ptr : * mut nsStyleTable , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleTable ( ptr : * mut nsStyleTable , other : * const nsStyleTable , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleTable ( ptr : * mut nsStyleTable , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleMargin ( ptr : * mut nsStyleMargin , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleMargin ( ptr : * mut nsStyleMargin , other : * const nsStyleMargin , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleMargin ( ptr : * mut nsStyleMargin , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStylePadding ( ptr : * mut nsStylePadding , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStylePadding ( ptr : * mut nsStylePadding , other : * const nsStylePadding , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStylePadding ( ptr : * mut nsStylePadding , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleBorder ( ptr : * mut nsStyleBorder , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleBorder ( ptr : * mut nsStyleBorder , other : * const nsStyleBorder , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleBorder ( ptr : * mut nsStyleBorder , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleOutline ( ptr : * mut nsStyleOutline , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleOutline ( ptr : * mut nsStyleOutline , other : * const nsStyleOutline , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleOutline ( ptr : * mut nsStyleOutline , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleXUL ( ptr : * mut nsStyleXUL , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleXUL ( ptr : * mut nsStyleXUL , other : * const nsStyleXUL , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleXUL ( ptr : * mut nsStyleXUL , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleSVGReset ( ptr : * mut nsStyleSVGReset , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleSVGReset ( ptr : * mut nsStyleSVGReset , other : * const nsStyleSVGReset , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleSVGReset ( ptr : * mut nsStyleSVGReset , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleColumn ( ptr : * mut nsStyleColumn , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleColumn ( ptr : * mut nsStyleColumn , other : * const nsStyleColumn , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleColumn ( ptr : * mut nsStyleColumn , ) ;
-} extern "C" {
- pub fn Gecko_Construct_Default_nsStyleEffects ( ptr : * mut nsStyleEffects , pres_context : RawGeckoPresContextBorrowed , ) ;
-} extern "C" {
- pub fn Gecko_CopyConstruct_nsStyleEffects ( ptr : * mut nsStyleEffects , other : * const nsStyleEffects , ) ;
-} extern "C" {
- pub fn Gecko_Destroy_nsStyleEffects ( ptr : * mut nsStyleEffects , ) ;
-} extern "C" {
- pub fn Gecko_RegisterProfilerThread ( name : * const :: std :: os :: raw :: c_char , ) ;
-} extern "C" {
- pub fn Gecko_UnregisterProfilerThread ( ) ;
-} extern "C" {
- pub fn Gecko_DocumentRule_UseForPresentation ( arg1 : RawGeckoPresContextBorrowed , aPattern : * const nsACString , aURLMatchingFunction : URLMatchingFunction , ) -> bool ;
-} extern "C" {
- pub fn Gecko_SetJemallocThreadLocalArena ( enabled : bool , ) ;
-} extern "C" {
- pub fn Gecko_AddBufferToCrashReport ( addr : * const :: std :: os :: raw :: c_void , len : usize , ) ;
-} extern "C" {
- pub fn Gecko_AnnotateCrashReport ( key_str : * const :: std :: os :: raw :: c_char , value_str : * const :: std :: os :: raw :: c_char , ) ;
-} extern "C" {
- pub fn Servo_Element_ClearData ( node : RawGeckoElementBorrowed , ) ;
-} extern "C" {
- pub fn Servo_Element_SizeOfExcludingThisAndCVs ( malloc_size_of : MallocSizeOf , malloc_enclosing_size_of : MallocSizeOf , seen_ptrs : * mut SeenPtrs , node : RawGeckoElementBorrowed , ) -> usize ;
-} extern "C" {
- pub fn Servo_Element_HasPrimaryComputedValues ( node : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_Element_GetPrimaryComputedValues ( node : RawGeckoElementBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_Element_HasPseudoComputedValues ( node : RawGeckoElementBorrowed , index : usize , ) -> bool ;
-} extern "C" {
- pub fn Servo_Element_GetPseudoComputedValues ( node : RawGeckoElementBorrowed , index : usize , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_Element_IsDisplayNone ( element : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_Element_IsPrimaryStyleReusedViaRuleNode ( element : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_StyleSheet_FromUTF8Bytes ( loader : * mut Loader , gecko_stylesheet : * mut ServoStyleSheet , data : * const u8 , data_len : usize , parsing_mode : SheetParsingMode , extra_data : * mut RawGeckoURLExtraData , line_number_offset : u32 , quirks_mode : nsCompatibility , reusable_sheets : * mut LoaderReusableStyleSheets , ) -> RawServoStyleSheetContentsStrong ;
-} extern "C" {
- pub fn Servo_StyleSheet_Empty ( parsing_mode : SheetParsingMode , ) -> RawServoStyleSheetContentsStrong ;
-} extern "C" {
- pub fn Servo_StyleSheet_HasRules ( sheet : RawServoStyleSheetContentsBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_StyleSheet_GetRules ( sheet : RawServoStyleSheetContentsBorrowed , ) -> ServoCssRulesStrong ;
-} extern "C" {
- pub fn Servo_StyleSheet_Clone ( sheet : RawServoStyleSheetContentsBorrowed , reference_sheet : * const ServoStyleSheet , ) -> RawServoStyleSheetContentsStrong ;
-} extern "C" {
- pub fn Servo_StyleSheet_SizeOfIncludingThis ( malloc_size_of : MallocSizeOf , malloc_enclosing_size_of : MallocSizeOf , sheet : RawServoStyleSheetContentsBorrowed , ) -> usize ;
-} extern "C" {
- pub fn Servo_StyleSheet_GetSourceMapURL ( sheet : RawServoStyleSheetContentsBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_StyleSheet_GetSourceURL ( sheet : RawServoStyleSheetContentsBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_StyleSheet_GetOrigin ( sheet : RawServoStyleSheetContentsBorrowed , ) -> u8 ;
-} extern "C" {
- pub fn Servo_StyleSet_Init ( pres_context : RawGeckoPresContextOwned , ) -> * mut RawServoStyleSet ;
-} extern "C" {
- pub fn Servo_StyleSet_RebuildCachedData ( set : RawServoStyleSetBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_MediumFeaturesChanged ( set : RawServoStyleSetBorrowed , viewport_units_used : * mut bool , ) -> u8 ;
-} extern "C" {
- pub fn Servo_StyleSet_SetDevice ( set : RawServoStyleSetBorrowed , pres_context : RawGeckoPresContextOwned , ) -> u8 ;
-} extern "C" {
- pub fn Servo_StyleSet_CompatModeChanged ( raw_data : RawServoStyleSetBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_AppendStyleSheet ( set : RawServoStyleSetBorrowed , gecko_sheet : * const ServoStyleSheet , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_PrependStyleSheet ( set : RawServoStyleSetBorrowed , gecko_sheet : * const ServoStyleSheet , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_RemoveStyleSheet ( set : RawServoStyleSetBorrowed , gecko_sheet : * const ServoStyleSheet , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_InsertStyleSheetBefore ( set : RawServoStyleSetBorrowed , gecko_sheet : * const ServoStyleSheet , before : * const ServoStyleSheet , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_FlushStyleSheets ( set : RawServoStyleSetBorrowed , doc_elem : RawGeckoElementBorrowedOrNull , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_NoteStyleSheetsChanged ( set : RawServoStyleSetBorrowed , author_style_disabled : bool , changed_origins : OriginFlags , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_GetKeyframesForName ( set : RawServoStyleSetBorrowed , name : * mut nsAtom , timing_function : nsTimingFunctionBorrowed , keyframe_list : RawGeckoKeyframeListBorrowedMut , ) -> bool ;
-} extern "C" {
- pub fn Servo_StyleSet_GetFontFaceRules ( set : RawServoStyleSetBorrowed , list : RawGeckoFontFaceRuleListBorrowedMut , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_GetCounterStyleRule ( set : RawServoStyleSetBorrowed , name : * mut nsAtom , ) -> * mut nsCSSCounterStyleRule ;
-} extern "C" {
- pub fn Servo_StyleSet_BuildFontFeatureValueSet ( set : RawServoStyleSetBorrowed , ) -> * mut gfxFontFeatureValueSet ;
-} extern "C" {
- pub fn Servo_StyleSet_ResolveForDeclarations ( set : RawServoStyleSetBorrowed , parent_style : ServoStyleContextBorrowedOrNull , declarations : RawServoDeclarationBlockBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_SelectorList_Parse ( selector_list : * const nsACString , ) -> * mut RawServoSelectorList ;
-} extern "C" {
- pub fn Servo_SourceSizeList_Parse ( value : * const nsACString , ) -> * mut RawServoSourceSizeList ;
-} extern "C" {
- pub fn Servo_SourceSizeList_Evaluate ( set : RawServoStyleSetBorrowed , arg1 : RawServoSourceSizeListBorrowedOrNull , ) -> i32 ;
-} extern "C" {
- pub fn Servo_SelectorList_Matches ( arg1 : RawGeckoElementBorrowed , arg2 : RawServoSelectorListBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_SelectorList_Closest ( arg1 : RawGeckoElementBorrowed , arg2 : RawServoSelectorListBorrowed , ) -> * const RawGeckoElement ;
-} extern "C" {
- pub fn Servo_SelectorList_QueryFirst ( arg1 : RawGeckoNodeBorrowed , arg2 : RawServoSelectorListBorrowed , may_use_invalidation : bool , ) -> * const RawGeckoElement ;
-} extern "C" {
- pub fn Servo_SelectorList_QueryAll ( arg1 : RawGeckoNodeBorrowed , arg2 : RawServoSelectorListBorrowed , content_list : * mut nsSimpleContentList , may_use_invalidation : bool , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_AddSizeOfExcludingThis ( malloc_size_of : MallocSizeOf , malloc_enclosing_size_of : MallocSizeOf , sizes : * mut ServoStyleSetSizes , set : RawServoStyleSetBorrowed , ) ;
-} extern "C" {
- pub fn Servo_UACache_AddSizeOf ( malloc_size_of : MallocSizeOf , malloc_enclosing_size_of : MallocSizeOf , sizes : * mut ServoStyleSetSizes , ) ;
-} extern "C" {
- pub fn Servo_StyleContext_AddRef ( ctx : ServoStyleContextBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleContext_Release ( ctx : ServoStyleContextBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_MightHaveAttributeDependency ( set : RawServoStyleSetBorrowed , element : RawGeckoElementBorrowed , local_name : * mut nsAtom , ) -> bool ;
-} extern "C" {
- pub fn Servo_StyleSet_HasStateDependency ( set : RawServoStyleSetBorrowed , element : RawGeckoElementBorrowed , state : u64 , ) -> bool ;
-} extern "C" {
- pub fn Servo_StyleSet_HasDocumentStateDependency ( set : RawServoStyleSetBorrowed , state : u64 , ) -> bool ;
-} extern "C" {
- pub fn Servo_CssRules_ListTypes ( rules : ServoCssRulesBorrowed , result : nsTArrayBorrowed_uintptr_t , ) ;
-} extern "C" {
- pub fn Servo_CssRules_InsertRule ( rules : ServoCssRulesBorrowed , sheet : RawServoStyleSheetContentsBorrowed , rule : * const nsACString , index : u32 , nested : bool , loader : * mut Loader , gecko_stylesheet : * mut ServoStyleSheet , rule_type : * mut u16 , ) -> nsresult ;
-} extern "C" {
- pub fn Servo_CssRules_DeleteRule ( rules : ServoCssRulesBorrowed , index : u32 , ) -> nsresult ;
-} extern "C" {
- pub fn Servo_CssRules_GetStyleRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoStyleRuleStrong ;
-} extern "C" {
- pub fn Servo_StyleRule_Debug ( rule : RawServoStyleRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_GetCssText ( rule : RawServoStyleRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_CssRules_GetImportRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoImportRuleStrong ;
-} extern "C" {
- pub fn Servo_ImportRule_Debug ( rule : RawServoImportRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_ImportRule_GetCssText ( rule : RawServoImportRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_Keyframe_Debug ( rule : RawServoKeyframeBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_Keyframe_GetCssText ( rule : RawServoKeyframeBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_CssRules_GetKeyframesRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoKeyframesRuleStrong ;
-} extern "C" {
- pub fn Servo_KeyframesRule_Debug ( rule : RawServoKeyframesRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_KeyframesRule_GetCssText ( rule : RawServoKeyframesRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_CssRules_GetMediaRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoMediaRuleStrong ;
-} extern "C" {
- pub fn Servo_MediaRule_Debug ( rule : RawServoMediaRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_MediaRule_GetCssText ( rule : RawServoMediaRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_MediaRule_GetRules ( rule : RawServoMediaRuleBorrowed , ) -> ServoCssRulesStrong ;
-} extern "C" {
- pub fn Servo_CssRules_GetNamespaceRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoNamespaceRuleStrong ;
-} extern "C" {
- pub fn Servo_NamespaceRule_Debug ( rule : RawServoNamespaceRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_NamespaceRule_GetCssText ( rule : RawServoNamespaceRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_CssRules_GetPageRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoPageRuleStrong ;
-} extern "C" {
- pub fn Servo_PageRule_Debug ( rule : RawServoPageRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_PageRule_GetCssText ( rule : RawServoPageRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_CssRules_GetSupportsRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoSupportsRuleStrong ;
-} extern "C" {
- pub fn Servo_SupportsRule_Debug ( rule : RawServoSupportsRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_SupportsRule_GetCssText ( rule : RawServoSupportsRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_SupportsRule_GetRules ( rule : RawServoSupportsRuleBorrowed , ) -> ServoCssRulesStrong ;
-} extern "C" {
- pub fn Servo_CssRules_GetDocumentRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoDocumentRuleStrong ;
-} extern "C" {
- pub fn Servo_DocumentRule_Debug ( rule : RawServoDocumentRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_DocumentRule_GetCssText ( rule : RawServoDocumentRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_DocumentRule_GetRules ( rule : RawServoDocumentRuleBorrowed , ) -> ServoCssRulesStrong ;
-} extern "C" {
- pub fn Servo_CssRules_GetFontFeatureValuesRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoFontFeatureValuesRuleStrong ;
-} extern "C" {
- pub fn Servo_FontFeatureValuesRule_Debug ( rule : RawServoFontFeatureValuesRuleBorrowed , result : * mut nsACString , ) ;
-} extern "C" {
- pub fn Servo_FontFeatureValuesRule_GetCssText ( rule : RawServoFontFeatureValuesRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_CssRules_GetFontFaceRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , ) -> * mut nsCSSFontFaceRule ;
-} extern "C" {
- pub fn Servo_CssRules_GetCounterStyleRuleAt ( rules : ServoCssRulesBorrowed , index : u32 , ) -> * mut nsCSSCounterStyleRule ;
-} extern "C" {
- pub fn Servo_StyleRule_GetStyle ( rule : RawServoStyleRuleBorrowed , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_StyleRule_SetStyle ( rule : RawServoStyleRuleBorrowed , declarations : RawServoDeclarationBlockBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_GetSelectorText ( rule : RawServoStyleRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_GetSelectorTextAtIndex ( rule : RawServoStyleRuleBorrowed , index : u32 , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_GetSpecificityAtIndex ( rule : RawServoStyleRuleBorrowed , index : u32 , specificity : * mut u64 , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_GetSelectorCount ( rule : RawServoStyleRuleBorrowed , count : * mut u32 , ) ;
-} extern "C" {
- pub fn Servo_StyleRule_SelectorMatchesElement ( arg1 : RawServoStyleRuleBorrowed , arg2 : RawGeckoElementBorrowed , index : u32 , pseudo_type : CSSPseudoElementType , ) -> bool ;
-} extern "C" {
- pub fn Servo_ImportRule_GetHref ( rule : RawServoImportRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_ImportRule_GetSheet ( rule : RawServoImportRuleBorrowed , ) -> * const ServoStyleSheet ;
-} extern "C" {
- pub fn Servo_Keyframe_GetKeyText ( keyframe : RawServoKeyframeBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_Keyframe_SetKeyText ( keyframe : RawServoKeyframeBorrowed , text : * const nsACString , ) -> bool ;
-} extern "C" {
- pub fn Servo_Keyframe_GetStyle ( keyframe : RawServoKeyframeBorrowed , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_Keyframe_SetStyle ( keyframe : RawServoKeyframeBorrowed , declarations : RawServoDeclarationBlockBorrowed , ) ;
-} extern "C" {
- pub fn Servo_KeyframesRule_GetName ( rule : RawServoKeyframesRuleBorrowed , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Servo_KeyframesRule_SetName ( rule : RawServoKeyframesRuleBorrowed , name : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Servo_KeyframesRule_GetCount ( rule : RawServoKeyframesRuleBorrowed , ) -> u32 ;
-} extern "C" {
- pub fn Servo_KeyframesRule_GetKeyframeAt ( rule : RawServoKeyframesRuleBorrowed , index : u32 , line : * mut u32 , column : * mut u32 , ) -> RawServoKeyframeStrong ;
-} extern "C" {
- pub fn Servo_KeyframesRule_FindRule ( rule : RawServoKeyframesRuleBorrowed , key : * const nsACString , ) -> u32 ;
-} extern "C" {
- pub fn Servo_KeyframesRule_AppendRule ( rule : RawServoKeyframesRuleBorrowed , sheet : RawServoStyleSheetContentsBorrowed , css : * const nsACString , ) -> bool ;
-} extern "C" {
- pub fn Servo_KeyframesRule_DeleteRule ( rule : RawServoKeyframesRuleBorrowed , index : u32 , ) ;
-} extern "C" {
- pub fn Servo_MediaRule_GetMedia ( rule : RawServoMediaRuleBorrowed , ) -> RawServoMediaListStrong ;
-} extern "C" {
- pub fn Servo_NamespaceRule_GetPrefix ( rule : RawServoNamespaceRuleBorrowed , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Servo_NamespaceRule_GetURI ( rule : RawServoNamespaceRuleBorrowed , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Servo_PageRule_GetStyle ( rule : RawServoPageRuleBorrowed , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_PageRule_SetStyle ( rule : RawServoPageRuleBorrowed , declarations : RawServoDeclarationBlockBorrowed , ) ;
-} extern "C" {
- pub fn Servo_SupportsRule_GetConditionText ( rule : RawServoSupportsRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_DocumentRule_GetConditionText ( rule : RawServoDocumentRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_FontFeatureValuesRule_GetFontFamily ( rule : RawServoFontFeatureValuesRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_FontFeatureValuesRule_GetValueText ( rule : RawServoFontFeatureValuesRuleBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_ParseProperty ( property : nsCSSPropertyID , value : * const nsACString , data : * mut RawGeckoURLExtraData , parsing_mode : ParsingMode , quirks_mode : nsCompatibility , loader : * mut Loader , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_ParseEasing ( easing : * const nsAString , data : * mut RawGeckoURLExtraData , output : nsTimingFunctionBorrowedMut , ) -> bool ;
-} extern "C" {
- pub fn Servo_GetComputedKeyframeValues ( keyframes : RawGeckoKeyframeListBorrowed , element : RawGeckoElementBorrowed , style : ServoStyleContextBorrowed , set : RawServoStyleSetBorrowed , result : RawGeckoComputedKeyframeValuesListBorrowedMut , ) ;
-} extern "C" {
- pub fn Servo_ComputedValues_ExtractAnimationValue ( computed_values : ServoStyleContextBorrowed , property : nsCSSPropertyID , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_ComputedValues_SpecifiesAnimationsOrTransitions ( computed_values : ServoStyleContextBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_Property_IsAnimatable ( property : nsCSSPropertyID , ) -> bool ;
-} extern "C" {
- pub fn Servo_Property_IsTransitionable ( property : nsCSSPropertyID , ) -> bool ;
-} extern "C" {
- pub fn Servo_Property_IsDiscreteAnimatable ( property : nsCSSPropertyID , ) -> bool ;
-} extern "C" {
- pub fn Servo_GetProperties_Overriding_Animation ( arg1 : RawGeckoElementBorrowed , arg2 : RawGeckoCSSPropertyIDListBorrowed , arg3 : nsCSSPropertyIDSetBorrowedMut , ) ;
-} extern "C" {
- pub fn Servo_MatrixTransform_Operate ( matrix_operator : MatrixTransformOperator , from : * const RawGeckoGfxMatrix4x4 , to : * const RawGeckoGfxMatrix4x4 , progress : f64 , result : * mut RawGeckoGfxMatrix4x4 , ) ;
-} extern "C" {
- pub fn Servo_GetAnimationValues ( declarations : RawServoDeclarationBlockBorrowed , element : RawGeckoElementBorrowed , style : ServoStyleContextBorrowed , style_set : RawServoStyleSetBorrowed , animation_values : RawGeckoServoAnimationValueListBorrowedMut , ) ;
-} extern "C" {
- pub fn Servo_AnimationValues_Interpolate ( from : RawServoAnimationValueBorrowed , to : RawServoAnimationValueBorrowed , progress : f64 , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_AnimationValues_IsInterpolable ( from : RawServoAnimationValueBorrowed , to : RawServoAnimationValueBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_AnimationValues_Add ( a : RawServoAnimationValueBorrowed , b : RawServoAnimationValueBorrowed , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_AnimationValues_Accumulate ( a : RawServoAnimationValueBorrowed , b : RawServoAnimationValueBorrowed , count : u64 , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_AnimationValues_GetZeroValue ( value_to_match : RawServoAnimationValueBorrowed , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_AnimationValues_ComputeDistance ( from : RawServoAnimationValueBorrowed , to : RawServoAnimationValueBorrowed , ) -> f64 ;
-} extern "C" {
- pub fn Servo_AnimationValue_Serialize ( value : RawServoAnimationValueBorrowed , property : nsCSSPropertyID , buffer : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_Shorthand_AnimationValues_Serialize ( shorthand_property : nsCSSPropertyID , values : RawGeckoServoAnimationValueListBorrowed , buffer : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_AnimationValue_GetOpacity ( value : RawServoAnimationValueBorrowed , ) -> f32 ;
-} extern "C" {
- pub fn Servo_AnimationValue_Opacity ( arg1 : f32 , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_AnimationValue_GetTransform ( value : RawServoAnimationValueBorrowed , list : * mut RefPtr < nsCSSValueSharedList > , ) ;
-} extern "C" {
- pub fn Servo_AnimationValue_Transform ( list : * const nsCSSValueSharedList , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_AnimationValue_DeepEqual ( arg1 : RawServoAnimationValueBorrowed , arg2 : RawServoAnimationValueBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_AnimationValue_Uncompute ( value : RawServoAnimationValueBorrowed , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_AnimationValue_Compute ( element : RawGeckoElementBorrowed , declarations : RawServoDeclarationBlockBorrowed , style : ServoStyleContextBorrowed , raw_data : RawServoStyleSetBorrowed , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_ParseStyleAttribute ( data : * const nsACString , extra_data : * mut RawGeckoURLExtraData , quirks_mode : nsCompatibility , loader : * mut Loader , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_CreateEmpty ( ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_Clone ( declarations : RawServoDeclarationBlockBorrowed , ) -> RawServoDeclarationBlockStrong ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_Equals ( a : RawServoDeclarationBlockBorrowed , b : RawServoDeclarationBlockBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_GetCssText ( declarations : RawServoDeclarationBlockBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SerializeOneValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , buffer : * mut nsAString , computed_values : ServoStyleContextBorrowedOrNull , custom_properties : RawServoDeclarationBlockBorrowedOrNull , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_Count ( declarations : RawServoDeclarationBlockBorrowed , ) -> u32 ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_GetNthProperty ( declarations : RawServoDeclarationBlockBorrowed , index : u32 , result : * mut nsAString , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_GetPropertyValue ( declarations : RawServoDeclarationBlockBorrowed , property : * const nsACString , value : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_GetPropertyValueById ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_GetPropertyIsImportant ( declarations : RawServoDeclarationBlockBorrowed , property : * const nsACString , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetProperty ( declarations : RawServoDeclarationBlockBorrowed , property : * const nsACString , value : * const nsACString , is_important : bool , data : * mut RawGeckoURLExtraData , parsing_mode : ParsingMode , quirks_mode : nsCompatibility , loader : * mut Loader , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetPropertyById ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : * const nsACString , is_important : bool , data : * mut RawGeckoURLExtraData , parsing_mode : ParsingMode , quirks_mode : nsCompatibility , loader : * mut Loader , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_RemoveProperty ( declarations : RawServoDeclarationBlockBorrowed , property : * const nsACString , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_RemovePropertyById ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_HasCSSWideKeyword ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , ) -> bool ;
-} extern "C" {
- pub fn Servo_AnimationCompose ( animation_values : RawServoAnimationValueMapBorrowedMut , base_values : RawServoAnimationValueTableBorrowed , property : nsCSSPropertyID , animation_segment : RawGeckoAnimationPropertySegmentBorrowed , last_segment : RawGeckoAnimationPropertySegmentBorrowed , computed_timing : RawGeckoComputedTimingBorrowed , iter_composite : IterationCompositeOperation , ) ;
-} extern "C" {
- pub fn Servo_ComposeAnimationSegment ( animation_segment : RawGeckoAnimationPropertySegmentBorrowed , underlying_value : RawServoAnimationValueBorrowedOrNull , last_value : RawServoAnimationValueBorrowedOrNull , iter_composite : IterationCompositeOperation , progress : f64 , current_iteration : u64 , ) -> RawServoAnimationValueStrong ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_PropertyIsSet ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , ) -> bool ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetIdentStringValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : * mut nsAtom , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetKeywordValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : i32 , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetIntValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : i32 , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetPixelValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : f32 , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetLengthValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : f32 , unit : nsCSSUnit , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetNumberValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : f32 , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetPercentValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : f32 , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetAutoValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetCurrentColor ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetColorValue ( declarations : RawServoDeclarationBlockBorrowed , property : nsCSSPropertyID , value : nscolor , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetFontFamily ( declarations : RawServoDeclarationBlockBorrowed , value : * const nsAString , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetTextDecorationColorOverride ( declarations : RawServoDeclarationBlockBorrowed , ) ;
-} extern "C" {
- pub fn Servo_DeclarationBlock_SetBackgroundImage ( declarations : RawServoDeclarationBlockBorrowed , value : * const nsAString , extra_data : * mut RawGeckoURLExtraData , ) ;
-} extern "C" {
- pub fn Servo_MediaList_Create ( ) -> RawServoMediaListStrong ;
-} extern "C" {
- pub fn Servo_MediaList_DeepClone ( list : RawServoMediaListBorrowed , ) -> RawServoMediaListStrong ;
-} extern "C" {
- pub fn Servo_MediaList_Matches ( list : RawServoMediaListBorrowed , set : RawServoStyleSetBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_MediaList_GetText ( list : RawServoMediaListBorrowed , result : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_MediaList_SetText ( list : RawServoMediaListBorrowed , text : * const nsACString , aCallerType : CallerType , ) ;
-} extern "C" {
- pub fn Servo_MediaList_GetLength ( list : RawServoMediaListBorrowed , ) -> u32 ;
-} extern "C" {
- pub fn Servo_MediaList_GetMediumAt ( list : RawServoMediaListBorrowed , index : u32 , result : * mut nsAString , ) -> bool ;
-} extern "C" {
- pub fn Servo_MediaList_AppendMedium ( list : RawServoMediaListBorrowed , new_medium : * const nsACString , ) ;
-} extern "C" {
- pub fn Servo_MediaList_DeleteMedium ( list : RawServoMediaListBorrowed , old_medium : * const nsACString , ) -> bool ;
-} extern "C" {
- pub fn Servo_CSSSupports2 ( name : * const nsACString , value : * const nsACString , ) -> bool ;
-} extern "C" {
- pub fn Servo_CSSSupports ( cond : * const nsACString , ) -> bool ;
-} extern "C" {
- pub fn Servo_ComputedValues_GetForAnonymousBox ( parent_style_or_null : ServoStyleContextBorrowedOrNull , pseudo_tag : * mut nsAtom , set : RawServoStyleSetBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_ComputedValues_Inherit ( set : RawServoStyleSetBorrowed , pseudo_tag : * mut nsAtom , parent_style : ServoStyleContextBorrowedOrNull , target : InheritTarget , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_ComputedValues_GetStyleBits ( values : ServoStyleContextBorrowed , ) -> u64 ;
-} extern "C" {
- pub fn Servo_ComputedValues_EqualCustomProperties ( first : ServoComputedDataBorrowed , second : ServoComputedDataBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_ComputedValues_GetStyleRuleList ( values : ServoStyleContextBorrowed , rules : RawGeckoServoStyleRuleListBorrowedMut , ) ;
-} extern "C" {
- pub fn Servo_Initialize ( dummy_url_data : * mut RawGeckoURLExtraData , ) ;
-} extern "C" {
- pub fn Servo_InitializeCooperativeThread ( ) ;
-} extern "C" {
- pub fn Servo_Shutdown ( ) ;
-} extern "C" {
- pub fn Servo_NoteExplicitHints ( element : RawGeckoElementBorrowed , restyle_hint : nsRestyleHint , change_hint : nsChangeHint , ) ;
-} extern "C" {
- pub fn Servo_TakeChangeHint ( element : RawGeckoElementBorrowed , was_restyled : * mut bool , ) -> u32 ;
-} extern "C" {
- pub fn Servo_ResolveStyle ( element : RawGeckoElementBorrowed , set : RawServoStyleSetBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_ResolvePseudoStyle ( element : RawGeckoElementBorrowed , pseudo_type : CSSPseudoElementType , is_probe : bool , inherited_style : ServoStyleContextBorrowedOrNull , set : RawServoStyleSetBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_ComputedValues_ResolveXULTreePseudoStyle ( element : RawGeckoElementBorrowed , pseudo_tag : * mut nsAtom , inherited_style : ServoStyleContextBorrowed , input_word : * const AtomArray , set : RawServoStyleSetBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_SetExplicitStyle ( element : RawGeckoElementBorrowed , primary_style : ServoStyleContextBorrowed , ) ;
-} extern "C" {
- pub fn Servo_HasAuthorSpecifiedRules ( style : ServoStyleContextBorrowed , element : RawGeckoElementBorrowed , pseudo_type : CSSPseudoElementType , rule_type_mask : u32 , author_colors_allowed : bool , ) -> bool ;
-} extern "C" {
- pub fn Servo_ResolveStyleLazily ( element : RawGeckoElementBorrowed , pseudo_type : CSSPseudoElementType , rule_inclusion : StyleRuleInclusion , snapshots : * const ServoElementSnapshotTable , set : RawServoStyleSetBorrowed , ignore_existing_styles : bool , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_ReparentStyle ( style_to_reparent : ServoStyleContextBorrowed , parent_style : ServoStyleContextBorrowed , parent_style_ignoring_first_line : ServoStyleContextBorrowed , layout_parent_style : ServoStyleContextBorrowed , element : RawGeckoElementBorrowedOrNull , set : RawServoStyleSetBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_TraverseSubtree ( root : RawGeckoElementBorrowed , set : RawServoStyleSetBorrowed , snapshots : * const ServoElementSnapshotTable , flags : ServoTraversalFlags , ) -> bool ;
-} extern "C" {
- pub fn Servo_AssertTreeIsClean ( root : RawGeckoElementBorrowed , ) ;
-} extern "C" {
- pub fn Servo_IsWorkerThread ( ) -> bool ;
-} extern "C" {
- pub fn Servo_MaybeGCRuleTree ( set : RawServoStyleSetBorrowed , ) ;
-} extern "C" {
- pub fn Servo_StyleSet_GetBaseComputedValuesForElement ( set : RawServoStyleSetBorrowed , element : RawGeckoElementBorrowed , existing_style : ServoStyleContextBorrowed , snapshots : * const ServoElementSnapshotTable , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_StyleSet_GetComputedValuesByAddingAnimation ( set : RawServoStyleSetBorrowed , element : RawGeckoElementBorrowed , existing_style : ServoStyleContextBorrowed , snapshots : * const ServoElementSnapshotTable , animation : RawServoAnimationValueBorrowed , ) -> ServoStyleContextStrong ;
-} extern "C" {
- pub fn Servo_SerializeFontValueForCanvas ( declarations : RawServoDeclarationBlockBorrowed , buffer : * mut nsAString , ) ;
-} extern "C" {
- pub fn Servo_GetCustomPropertyValue ( computed_values : ServoStyleContextBorrowed , name : * const nsAString , value : * mut nsAString , ) -> bool ;
-} extern "C" {
- pub fn Servo_GetCustomPropertiesCount ( computed_values : ServoStyleContextBorrowed , ) -> u32 ;
-} extern "C" {
- pub fn Servo_GetCustomPropertyNameAt ( arg1 : ServoStyleContextBorrowed , index : u32 , name : * mut nsAString , ) -> bool ;
-} extern "C" {
- pub fn Servo_ProcessInvalidations ( set : RawServoStyleSetBorrowed , element : RawGeckoElementBorrowed , snapshots : * const ServoElementSnapshotTable , ) ;
-} extern "C" {
- pub fn Servo_HasPendingRestyleAncestor ( element : RawGeckoElementBorrowed , ) -> bool ;
-} extern "C" {
- pub fn Servo_GetArcStringData ( arg1 : * const RustString , chars : * mut * const u8 , len : * mut u32 , ) ;
-} extern "C" {
- pub fn Servo_ReleaseArcStringData ( string : * const ServoRawOffsetArc < RustString > , ) ;
-} extern "C" {
- pub fn Servo_CloneArcStringData ( string : * const ServoRawOffsetArc < RustString > , ) -> ServoRawOffsetArc < RustString > ;
-} extern "C" {
- pub fn Servo_IsValidCSSColor ( value : * const nsAString , ) -> bool ;
-} extern "C" {
- pub fn Servo_ComputeColor ( set : RawServoStyleSetBorrowedOrNull , current_color : nscolor , value : * const nsAString , result_color : * mut nscolor , was_current_color : * mut bool , loader : * mut Loader , ) -> bool ;
-} extern "C" {
- pub fn Servo_ParseIntersectionObserverRootMargin ( value : * const nsAString , result : * mut nsCSSRect , ) -> bool ;
-} extern "C" {
- pub fn Servo_ParseTransformIntoMatrix ( value : * const nsAString , contains_3d_transform : * mut bool , result : * mut RawGeckoGfxMatrix4x4 , ) -> bool ;
-} extern "C" {
- pub fn Servo_ParseCounterStyleName ( value : * const nsACString , ) -> * mut nsAtom ;
-} extern "C" {
- pub fn Servo_ParseCounterStyleDescriptor ( aDescriptor : nsCSSCounterDesc , aValue : * const nsACString , aURLExtraData : * mut RawGeckoURLExtraData , aResult : * mut nsCSSValue , ) -> bool ;
-} extern "C" {
- pub fn Servo_ParseFontDescriptor ( desc_id : nsCSSFontDesc , value : * const nsAString , data : * mut RawGeckoURLExtraData , arg1 : nsCSSValueBorrowedMut , ) -> bool ;
-} extern "C" {
- pub fn Servo_ParseFontShorthandForMatching ( value : * const nsAString , data : * mut RawGeckoURLExtraData , family : * mut RefPtr < SharedFontList > , style : nsCSSValueBorrowedMut , stretch : nsCSSValueBorrowedMut , weight : nsCSSValueBorrowedMut , ) -> bool ;
-} extern "C" {
- pub fn Gecko_CreateCSSErrorReporter ( sheet : * mut ServoStyleSheet , loader : * mut Loader , uri : * mut nsIURI , ) -> * mut ErrorReporter ;
-} extern "C" {
- pub fn Gecko_DestroyCSSErrorReporter ( reporter : * mut ErrorReporter , ) ;
-} extern "C" {
- pub fn Gecko_ReportUnexpectedCSSError ( reporter : * mut ErrorReporter , message : * const :: std :: os :: raw :: c_char , param : * const :: std :: os :: raw :: c_char , paramLen : u32 , prefix : * const :: std :: os :: raw :: c_char , prefixParam : * const :: std :: os :: raw :: c_char , prefixParamLen : u32 , suffix : * const :: std :: os :: raw :: c_char , source : * const :: std :: os :: raw :: c_char , sourceLen : u32 , lineNumber : u32 , colNumber : u32 , ) ;
-} extern "C" {
- pub fn Gecko_ContentList_AppendAll ( aContentList : * mut nsSimpleContentList , aElements : * mut * const RawGeckoElement , aLength : usize , ) ;
-} extern "C" {
- pub fn Gecko_GetElementsWithId ( aDocument : * const nsIDocument , aId : * mut nsAtom , ) -> * const nsTArray < * mut Element > ;
-} extern "C" {
- pub fn Gecko_GetBoolPrefValue ( pref_name : * const :: std :: os :: raw :: c_char , ) -> bool ;
-} extern "C" {
- pub fn Gecko_IsInServoTraversal ( ) -> bool ;
-} extern "C" {
- pub fn Gecko_IsMainThread ( ) -> bool ;
+ pub fn Gecko_EnsureTArrayCapacity(
+ aArray: *mut ::std::os::raw::c_void,
+ aCapacity: usize,
+ aElementSize: usize,
+ );
+}
+extern "C" {
+ pub fn Gecko_ClearPODTArray(
+ aArray: *mut ::std::os::raw::c_void,
+ aElementSize: usize,
+ aElementAlign: usize,
+ );
+}
+extern "C" {
+ pub fn Servo_CssRules_AddRef(ptr: ServoCssRulesBorrowed);
+}
+extern "C" {
+ pub fn Servo_CssRules_Release(ptr: ServoCssRulesBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSheetContents_AddRef(ptr: RawServoStyleSheetContentsBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSheetContents_Release(ptr: RawServoStyleSheetContentsBorrowed);
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_AddRef(ptr: RawServoDeclarationBlockBorrowed);
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_Release(ptr: RawServoDeclarationBlockBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleRule_AddRef(ptr: RawServoStyleRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleRule_Release(ptr: RawServoStyleRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_ImportRule_AddRef(ptr: RawServoImportRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_ImportRule_Release(ptr: RawServoImportRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_AnimationValue_AddRef(ptr: RawServoAnimationValueBorrowed);
+}
+extern "C" {
+ pub fn Servo_AnimationValue_Release(ptr: RawServoAnimationValueBorrowed);
+}
+extern "C" {
+ pub fn Servo_Keyframe_AddRef(ptr: RawServoKeyframeBorrowed);
+}
+extern "C" {
+ pub fn Servo_Keyframe_Release(ptr: RawServoKeyframeBorrowed);
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_AddRef(ptr: RawServoKeyframesRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_Release(ptr: RawServoKeyframesRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_MediaList_AddRef(ptr: RawServoMediaListBorrowed);
+}
+extern "C" {
+ pub fn Servo_MediaList_Release(ptr: RawServoMediaListBorrowed);
+}
+extern "C" {
+ pub fn Servo_MediaRule_AddRef(ptr: RawServoMediaRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_MediaRule_Release(ptr: RawServoMediaRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_NamespaceRule_AddRef(ptr: RawServoNamespaceRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_NamespaceRule_Release(ptr: RawServoNamespaceRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_PageRule_AddRef(ptr: RawServoPageRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_PageRule_Release(ptr: RawServoPageRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_SupportsRule_AddRef(ptr: RawServoSupportsRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_SupportsRule_Release(ptr: RawServoSupportsRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_DocumentRule_AddRef(ptr: RawServoDocumentRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_DocumentRule_Release(ptr: RawServoDocumentRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_FontFeatureValuesRule_AddRef(ptr: RawServoFontFeatureValuesRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_FontFeatureValuesRule_Release(ptr: RawServoFontFeatureValuesRuleBorrowed);
+}
+extern "C" {
+ pub fn Servo_RuleNode_AddRef(ptr: RawServoRuleNodeBorrowed);
+}
+extern "C" {
+ pub fn Servo_RuleNode_Release(ptr: RawServoRuleNodeBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSet_Drop(ptr: RawServoStyleSetOwned);
+}
+extern "C" {
+ pub fn Servo_SelectorList_Drop(ptr: RawServoSelectorListOwned);
+}
+extern "C" {
+ pub fn Servo_SourceSizeList_Drop(ptr: RawServoSourceSizeListOwned);
+}
+extern "C" {
+ pub fn Gecko_RecordTraversalStatistics(
+ total: u32,
+ parallel: u32,
+ total_t: u32,
+ parallel_t: u32,
+ total_s: u32,
+ parallel_s: u32,
+ );
+}
+extern "C" {
+ pub fn Gecko_IsSignificantChild(
+ node: RawGeckoNodeBorrowed,
+ text_is_significant: bool,
+ whitespace_is_significant: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_GetLastChild(node: RawGeckoNodeBorrowed) -> RawGeckoNodeBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetFlattenedTreeParentNode(
+ node: RawGeckoNodeBorrowed,
+ ) -> RawGeckoNodeBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetBeforeOrAfterPseudo(
+ element: RawGeckoElementBorrowed,
+ is_before: bool,
+ ) -> RawGeckoElementBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetAnonymousContentForElement(
+ element: RawGeckoElementBorrowed,
+ ) -> *mut nsTArray<*mut nsIContent>;
+}
+extern "C" {
+ pub fn Gecko_DestroyAnonymousContentList(anon_content: *mut nsTArray<*mut nsIContent>);
+}
+extern "C" {
+ pub fn Gecko_ServoStyleContext_Init(
+ context: *mut ServoStyleContext,
+ parent_context: ServoStyleContextBorrowedOrNull,
+ pres_context: RawGeckoPresContextBorrowed,
+ values: ServoComputedDataBorrowed,
+ pseudo_type: CSSPseudoElementType,
+ pseudo_tag: *mut nsAtom,
+ );
+}
+extern "C" {
+ pub fn Gecko_ServoStyleContext_Destroy(context: *mut ServoStyleContext);
+}
+extern "C" {
+ pub fn Gecko_ConstructStyleChildrenIterator(
+ aElement: RawGeckoElementBorrowed,
+ aIterator: RawGeckoStyleChildrenIteratorBorrowedMut,
+ );
+}
+extern "C" {
+ pub fn Gecko_DestroyStyleChildrenIterator(aIterator: RawGeckoStyleChildrenIteratorBorrowedMut);
+}
+extern "C" {
+ pub fn Gecko_GetNextStyleChild(
+ it: RawGeckoStyleChildrenIteratorBorrowedMut,
+ ) -> RawGeckoNodeBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_LoadStyleSheet(
+ loader: *mut Loader,
+ parent: *mut ServoStyleSheet,
+ reusable_sheets: *mut LoaderReusableStyleSheets,
+ base_url_data: *mut RawGeckoURLExtraData,
+ url_bytes: *const u8,
+ url_length: u32,
+ media_list: RawServoMediaListStrong,
+ ) -> *mut ServoStyleSheet;
+}
+extern "C" {
+ pub fn Gecko_ElementState(element: RawGeckoElementBorrowed) -> u64;
+}
+extern "C" {
+ pub fn Gecko_IsRootElement(element: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Gecko_MatchesElement(
+ type_: CSSPseudoClassType,
+ element: RawGeckoElementBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_MatchLang(
+ element: RawGeckoElementBorrowed,
+ override_lang: *mut nsAtom,
+ has_override_lang: bool,
+ value: *const u16,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_GetXMLLangValue(element: RawGeckoElementBorrowed) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_GetDocumentLWTheme(aDocument: *const nsIDocument) -> nsIDocument_DocumentTheme;
+}
+extern "C" {
+ pub fn Gecko_AtomAttrValue(
+ element: RawGeckoElementBorrowed,
+ attribute: *mut nsAtom,
+ ) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_LangValue(element: RawGeckoElementBorrowed) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_HasAttr(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AttrEquals(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignoreCase: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AttrDashEquals(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AttrIncludes(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AttrHasSubstring(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AttrHasPrefix(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AttrHasSuffix(
+ element: RawGeckoElementBorrowed,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_ClassOrClassList(
+ element: RawGeckoElementBorrowed,
+ class_: *mut *mut nsAtom,
+ classList: *mut *mut *mut nsAtom,
+ ) -> u32;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAtomAttrValue(
+ element: *const ServoElementSnapshot,
+ attribute: *mut nsAtom,
+ ) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_SnapshotLangValue(element: *const ServoElementSnapshot) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_SnapshotHasAttr(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAttrEquals(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignoreCase: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAttrDashEquals(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAttrIncludes(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAttrHasSubstring(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAttrHasPrefix(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotAttrHasSuffix(
+ element: *const ServoElementSnapshot,
+ ns: *mut nsAtom,
+ name: *mut nsAtom,
+ str: *mut nsAtom,
+ ignore_case: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SnapshotClassOrClassList(
+ element: *const ServoElementSnapshot,
+ class_: *mut *mut nsAtom,
+ classList: *mut *mut *mut nsAtom,
+ ) -> u32;
+}
+extern "C" {
+ pub fn Gecko_GetStyleAttrDeclarationBlock(
+ element: RawGeckoElementBorrowed,
+ ) -> RawServoDeclarationBlockStrongBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_UnsetDirtyStyleAttr(element: RawGeckoElementBorrowed);
+}
+extern "C" {
+ pub fn Gecko_GetHTMLPresentationAttrDeclarationBlock(
+ element: RawGeckoElementBorrowed,
+ ) -> RawServoDeclarationBlockStrongBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetExtraContentStyleDeclarations(
+ element: RawGeckoElementBorrowed,
+ ) -> RawServoDeclarationBlockStrongBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetUnvisitedLinkAttrDeclarationBlock(
+ element: RawGeckoElementBorrowed,
+ ) -> RawServoDeclarationBlockStrongBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetVisitedLinkAttrDeclarationBlock(
+ element: RawGeckoElementBorrowed,
+ ) -> RawServoDeclarationBlockStrongBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetActiveLinkAttrDeclarationBlock(
+ element: RawGeckoElementBorrowed,
+ ) -> RawServoDeclarationBlockStrongBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_IsPrivateBrowsingEnabled(aDoc: *const nsIDocument) -> bool;
+}
+extern "C" {
+ pub fn Gecko_GetAnimationRule(
+ aElementOrPseudo: RawGeckoElementBorrowed,
+ aCascadeLevel: EffectCompositor_CascadeLevel,
+ aAnimationValues: RawServoAnimationValueMapBorrowedMut,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_StyleAnimationsEquals(
+ arg1: RawGeckoStyleAnimationListBorrowed,
+ arg2: RawGeckoStyleAnimationListBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_CopyAnimationNames(
+ aDest: RawGeckoStyleAnimationListBorrowedMut,
+ aSrc: RawGeckoStyleAnimationListBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetAnimationName(aStyleAnimation: *mut StyleAnimation, aAtom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_UpdateAnimations(
+ aElementOrPseudo: RawGeckoElementBorrowed,
+ aOldComputedValues: ServoStyleContextBorrowedOrNull,
+ aComputedValues: ServoStyleContextBorrowedOrNull,
+ aTasks: UpdateAnimationsTasks,
+ );
+}
+extern "C" {
+ pub fn Gecko_ElementHasAnimations(aElementOrPseudo: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Gecko_ElementHasCSSAnimations(aElementOrPseudo: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Gecko_ElementHasCSSTransitions(aElementOrPseudo: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Gecko_ElementTransitions_Length(aElementOrPseudo: RawGeckoElementBorrowed) -> usize;
+}
+extern "C" {
+ pub fn Gecko_ElementTransitions_PropertyAt(
+ aElementOrPseudo: RawGeckoElementBorrowed,
+ aIndex: usize,
+ ) -> nsCSSPropertyID;
+}
+extern "C" {
+ pub fn Gecko_ElementTransitions_EndValueAt(
+ aElementOrPseudo: RawGeckoElementBorrowed,
+ aIndex: usize,
+ ) -> RawServoAnimationValueBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetProgressFromComputedTiming(
+ aComputedTiming: RawGeckoComputedTimingBorrowed,
+ ) -> f64;
+}
+extern "C" {
+ pub fn Gecko_GetPositionInSegment(
+ aSegment: RawGeckoAnimationPropertySegmentBorrowed,
+ aProgress: f64,
+ aBeforeFlag: ComputedTimingFunction_BeforeFlag,
+ ) -> f64;
+}
+extern "C" {
+ pub fn Gecko_AnimationGetBaseStyle(
+ aBaseStyles: RawServoAnimationValueTableBorrowed,
+ aProperty: nsCSSPropertyID,
+ ) -> RawServoAnimationValueBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_StyleTransition_SetUnsupportedProperty(
+ aTransition: *mut StyleTransition,
+ aAtom: *mut nsAtom,
+ );
+}
+extern "C" {
+ pub fn Gecko_Atomize(aString: *const ::std::os::raw::c_char, aLength: u32) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_Atomize16(aString: *const nsAString) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_AddRefAtom(aAtom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_ReleaseAtom(aAtom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_GetAtomAsUTF16(aAtom: *mut nsAtom, aLength: *mut u32) -> *const u16;
+}
+extern "C" {
+ pub fn Gecko_AtomEqualsUTF8(
+ aAtom: *mut nsAtom,
+ aString: *const ::std::os::raw::c_char,
+ aLength: u32,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_AtomEqualsUTF8IgnoreCase(
+ aAtom: *mut nsAtom,
+ aString: *const ::std::os::raw::c_char,
+ aLength: u32,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_CopyFontFamilyFrom(dst: *mut nsFont, src: *const nsFont);
+}
+extern "C" {
+ pub fn Gecko_nsTArray_FontFamilyName_AppendNamed(
+ aNames: *mut nsTArray<FontFamilyName>,
+ aName: *mut nsAtom,
+ aQuoted: bool,
+ );
+}
+extern "C" {
+ pub fn Gecko_nsTArray_FontFamilyName_AppendGeneric(
+ aNames: *mut nsTArray<FontFamilyName>,
+ aType: FontFamilyType,
+ );
+}
+extern "C" {
+ pub fn Gecko_SharedFontList_Create() -> *mut SharedFontList;
+}
+extern "C" {
+ pub fn Gecko_SharedFontList_SizeOfIncludingThis(fontlist: *mut SharedFontList) -> usize;
+}
+extern "C" {
+ pub fn Gecko_SharedFontList_SizeOfIncludingThisIfUnshared(
+ fontlist: *mut SharedFontList,
+ ) -> usize;
+}
+extern "C" {
+ pub fn Gecko_AddRefSharedFontListArbitraryThread(aPtr: *mut SharedFontList);
+}
+extern "C" {
+ pub fn Gecko_ReleaseSharedFontListArbitraryThread(aPtr: *mut SharedFontList);
+}
+extern "C" {
+ pub fn Gecko_nsFont_InitSystem(
+ dst: *mut nsFont,
+ font_id: i32,
+ font: *const nsStyleFont,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_nsFont_Destroy(dst: *mut nsFont);
+}
+extern "C" {
+ pub fn Gecko_ConstructFontFeatureValueSet() -> *mut gfxFontFeatureValueSet;
+}
+extern "C" {
+ pub fn Gecko_AppendFeatureValueHashEntry(
+ value_set: *mut gfxFontFeatureValueSet,
+ family: *mut nsAtom,
+ alternate: u32,
+ name: *mut nsAtom,
+ ) -> *mut nsTArray<::std::os::raw::c_uint>;
+}
+extern "C" {
+ pub fn Gecko_nsFont_SetFontFeatureValuesLookup(
+ font: *mut nsFont,
+ pres_context: *const RawGeckoPresContext,
+ );
+}
+extern "C" {
+ pub fn Gecko_nsFont_ResetFontFeatureValuesLookup(font: *mut nsFont);
+}
+extern "C" {
+ pub fn Gecko_ClearAlternateValues(font: *mut nsFont, length: usize);
+}
+extern "C" {
+ pub fn Gecko_AppendAlternateValues(font: *mut nsFont, alternate_name: u32, atom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_CopyAlternateValuesFrom(dest: *mut nsFont, src: *const nsFont);
+}
+extern "C" {
+ pub fn Gecko_SetImageOrientation(
+ aVisibility: *mut nsStyleVisibility,
+ aOrientation: u8,
+ aFlip: bool,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetImageOrientationAsFromImage(aVisibility: *mut nsStyleVisibility);
+}
+extern "C" {
+ pub fn Gecko_CopyImageOrientationFrom(
+ aDst: *mut nsStyleVisibility,
+ aSrc: *const nsStyleVisibility,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetCounterStyleToName(
+ ptr: *mut CounterStylePtr,
+ name: *mut nsAtom,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetCounterStyleToSymbols(
+ ptr: *mut CounterStylePtr,
+ symbols_type: u8,
+ symbols: *const *const nsACString,
+ symbols_count: u32,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetCounterStyleToString(ptr: *mut CounterStylePtr, symbol: *const nsACString);
+}
+extern "C" {
+ pub fn Gecko_CopyCounterStyle(dst: *mut CounterStylePtr, src: *const CounterStylePtr);
+}
+extern "C" {
+ pub fn Gecko_CounterStyle_GetName(ptr: *const CounterStylePtr) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_CounterStyle_GetAnonymous(
+ ptr: *const CounterStylePtr,
+ ) -> *const AnonymousCounterStyle;
+}
+extern "C" {
+ pub fn Gecko_SetNullImageValue(image: *mut nsStyleImage);
+}
+extern "C" {
+ pub fn Gecko_SetGradientImageValue(image: *mut nsStyleImage, gradient: *mut nsStyleGradient);
+}
+extern "C" {
+ pub fn Gecko_AddRefImageValueArbitraryThread(aPtr: *mut ImageValue);
+}
+extern "C" {
+ pub fn Gecko_ReleaseImageValueArbitraryThread(aPtr: *mut ImageValue);
+}
+extern "C" {
+ pub fn Gecko_ImageValue_Create(
+ aURI: ServoBundledURI,
+ aURIString: ServoRawOffsetArc<RustString>,
+ ) -> *mut ImageValue;
+}
+extern "C" {
+ pub fn Gecko_ImageValue_SizeOfIncludingThis(aImageValue: *mut ImageValue) -> usize;
+}
+extern "C" {
+ pub fn Gecko_SetLayerImageImageValue(image: *mut nsStyleImage, aImageValue: *mut ImageValue);
+}
+extern "C" {
+ pub fn Gecko_SetImageElement(image: *mut nsStyleImage, atom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_CopyImageValueFrom(image: *mut nsStyleImage, other: *const nsStyleImage);
+}
+extern "C" {
+ pub fn Gecko_InitializeImageCropRect(image: *mut nsStyleImage);
+}
+extern "C" {
+ pub fn Gecko_CreateGradient(
+ shape: u8,
+ size: u8,
+ repeating: bool,
+ legacy_syntax: bool,
+ moz_legacy_syntax: bool,
+ stops: u32,
+ ) -> *mut nsStyleGradient;
+}
+extern "C" {
+ pub fn Gecko_GetURLValue(image: *const nsStyleImage) -> *const URLValueData;
+}
+extern "C" {
+ pub fn Gecko_GetImageElement(image: *const nsStyleImage) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Gecko_GetGradientImageValue(image: *const nsStyleImage) -> *const nsStyleGradient;
+}
+extern "C" {
+ pub fn Gecko_SetListStyleImageNone(style_struct: *mut nsStyleList);
+}
+extern "C" {
+ pub fn Gecko_SetListStyleImageImageValue(
+ style_struct: *mut nsStyleList,
+ aImageValue: *mut ImageValue,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyListStyleImageFrom(dest: *mut nsStyleList, src: *const nsStyleList);
+}
+extern "C" {
+ pub fn Gecko_SetCursorArrayLength(ui: *mut nsStyleUserInterface, len: usize);
+}
+extern "C" {
+ pub fn Gecko_SetCursorImageValue(aCursor: *mut nsCursorImage, aImageValue: *mut ImageValue);
+}
+extern "C" {
+ pub fn Gecko_CopyCursorArrayFrom(
+ dest: *mut nsStyleUserInterface,
+ src: *const nsStyleUserInterface,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetContentDataImageValue(
+ aList: *mut nsStyleContentData,
+ aImageValue: *mut ImageValue,
+ );
+}
+extern "C" {
+ pub fn Gecko_SetCounterFunction(
+ content_data: *mut nsStyleContentData,
+ type_: nsStyleContentType,
+ ) -> *mut nsStyleContentData_CounterFunction;
+}
+extern "C" {
+ pub fn Gecko_SetNodeFlags(node: RawGeckoNodeBorrowed, flags: u32);
+}
+extern "C" {
+ pub fn Gecko_UnsetNodeFlags(node: RawGeckoNodeBorrowed, flags: u32);
+}
+extern "C" {
+ pub fn Gecko_NoteDirtyElement(element: RawGeckoElementBorrowed);
+}
+extern "C" {
+ pub fn Gecko_NoteDirtySubtreeForInvalidation(element: RawGeckoElementBorrowed);
+}
+extern "C" {
+ pub fn Gecko_NoteAnimationOnlyDirtyElement(element: RawGeckoElementBorrowed);
+}
+extern "C" {
+ pub fn Gecko_GetImplementedPseudo(element: RawGeckoElementBorrowed) -> CSSPseudoElementType;
+}
+extern "C" {
+ pub fn Gecko_CalcStyleDifference(
+ old_style: ServoStyleContextBorrowed,
+ new_style: ServoStyleContextBorrowed,
+ any_style_changed: *mut bool,
+ reset_only_changed: *mut bool,
+ ) -> u32;
+}
+extern "C" {
+ pub fn Gecko_GetElementSnapshot(
+ table: *const ServoElementSnapshotTable,
+ element: RawGeckoElementBorrowed,
+ ) -> *const ServoElementSnapshot;
+}
+extern "C" {
+ pub fn Gecko_HaveSeenPtr(table: *mut SeenPtrs, ptr: *const ::std::os::raw::c_void) -> bool;
+}
+extern "C" {
+ pub fn Gecko_ResizeTArrayForStrings(array: *mut nsTArray<nsStringRepr>, length: u32);
+}
+extern "C" {
+ pub fn Gecko_SetStyleGridTemplate(
+ grid_template: *mut UniquePtr<nsStyleGridTemplate>,
+ value: *mut nsStyleGridTemplate,
+ );
+}
+extern "C" {
+ pub fn Gecko_CreateStyleGridTemplate(
+ track_sizes: u32,
+ name_size: u32,
+ ) -> *mut nsStyleGridTemplate;
+}
+extern "C" {
+ pub fn Gecko_CopyStyleGridTemplateValues(
+ grid_template: *mut UniquePtr<nsStyleGridTemplate>,
+ other: *const nsStyleGridTemplate,
+ );
+}
+extern "C" {
+ pub fn Gecko_NewGridTemplateAreasValue(
+ areas: u32,
+ templates: u32,
+ columns: u32,
+ ) -> *mut GridTemplateAreasValue;
+}
+extern "C" {
+ pub fn Gecko_AddRefGridTemplateAreasValueArbitraryThread(aPtr: *mut GridTemplateAreasValue);
+}
+extern "C" {
+ pub fn Gecko_ReleaseGridTemplateAreasValueArbitraryThread(aPtr: *mut GridTemplateAreasValue);
+}
+extern "C" {
+ pub fn Gecko_ClearAndResizeStyleContents(content: *mut nsStyleContent, how_many: u32);
+}
+extern "C" {
+ pub fn Gecko_ClearAndResizeCounterIncrements(content: *mut nsStyleContent, how_many: u32);
+}
+extern "C" {
+ pub fn Gecko_ClearAndResizeCounterResets(content: *mut nsStyleContent, how_many: u32);
+}
+extern "C" {
+ pub fn Gecko_CopyStyleContentsFrom(content: *mut nsStyleContent, other: *const nsStyleContent);
+}
+extern "C" {
+ pub fn Gecko_CopyCounterResetsFrom(content: *mut nsStyleContent, other: *const nsStyleContent);
+}
+extern "C" {
+ pub fn Gecko_CopyCounterIncrementsFrom(
+ content: *mut nsStyleContent,
+ other: *const nsStyleContent,
+ );
+}
+extern "C" {
+ pub fn Gecko_EnsureImageLayersLength(
+ layers: *mut nsStyleImageLayers,
+ len: usize,
+ layer_type: nsStyleImageLayers_LayerType,
+ );
+}
+extern "C" {
+ pub fn Gecko_EnsureStyleAnimationArrayLength(array: *mut ::std::os::raw::c_void, len: usize);
+}
+extern "C" {
+ pub fn Gecko_EnsureStyleTransitionArrayLength(array: *mut ::std::os::raw::c_void, len: usize);
+}
+extern "C" {
+ pub fn Gecko_ClearWillChange(display: *mut nsStyleDisplay, length: usize);
+}
+extern "C" {
+ pub fn Gecko_AppendWillChange(display: *mut nsStyleDisplay, atom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_CopyWillChangeFrom(dest: *mut nsStyleDisplay, src: *mut nsStyleDisplay);
+}
+extern "C" {
+ pub fn Gecko_GetOrCreateKeyframeAtStart(
+ keyframes: RawGeckoKeyframeListBorrowedMut,
+ offset: f32,
+ timingFunction: *const nsTimingFunction,
+ ) -> *mut Keyframe;
+}
+extern "C" {
+ pub fn Gecko_GetOrCreateInitialKeyframe(
+ keyframes: RawGeckoKeyframeListBorrowedMut,
+ timingFunction: *const nsTimingFunction,
+ ) -> *mut Keyframe;
+}
+extern "C" {
+ pub fn Gecko_GetOrCreateFinalKeyframe(
+ keyframes: RawGeckoKeyframeListBorrowedMut,
+ timingFunction: *const nsTimingFunction,
+ ) -> *mut Keyframe;
+}
+extern "C" {
+ pub fn Gecko_AppendPropertyValuePair(
+ aProperties: RawGeckoPropertyValuePairListBorrowedMut,
+ aProperty: nsCSSPropertyID,
+ ) -> *mut PropertyValuePair;
+}
+extern "C" {
+ pub fn Gecko_ResetStyleCoord(unit: *mut nsStyleUnit, value: *mut nsStyleUnion);
+}
+extern "C" {
+ pub fn Gecko_SetStyleCoordCalcValue(
+ unit: *mut nsStyleUnit,
+ value: *mut nsStyleUnion,
+ calc: nsStyleCoord_CalcValue,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyShapeSourceFrom(dst: *mut StyleShapeSource, src: *const StyleShapeSource);
+}
+extern "C" {
+ pub fn Gecko_DestroyShapeSource(shape: *mut StyleShapeSource);
+}
+extern "C" {
+ pub fn Gecko_NewBasicShape(shape: *mut StyleShapeSource, type_: StyleBasicShapeType);
+}
+extern "C" {
+ pub fn Gecko_NewShapeImage(shape: *mut StyleShapeSource);
+}
+extern "C" {
+ pub fn Gecko_StyleShapeSource_SetURLValue(shape: *mut StyleShapeSource, uri: ServoBundledURI);
+}
+extern "C" {
+ pub fn Gecko_ResetFilters(effects: *mut nsStyleEffects, new_len: usize);
+}
+extern "C" {
+ pub fn Gecko_CopyFiltersFrom(aSrc: *mut nsStyleEffects, aDest: *mut nsStyleEffects);
+}
+extern "C" {
+ pub fn Gecko_nsStyleFilter_SetURLValue(effects: *mut nsStyleFilter, uri: ServoBundledURI);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVGPaint_CopyFrom(dest: *mut nsStyleSVGPaint, src: *const nsStyleSVGPaint);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVGPaint_SetURLValue(paint: *mut nsStyleSVGPaint, uri: ServoBundledURI);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVGPaint_Reset(paint: *mut nsStyleSVGPaint);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVG_SetDashArrayLength(svg: *mut nsStyleSVG, len: u32);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVG_CopyDashArray(dst: *mut nsStyleSVG, src: *const nsStyleSVG);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVG_SetContextPropertiesLength(svg: *mut nsStyleSVG, len: u32);
+}
+extern "C" {
+ pub fn Gecko_nsStyleSVG_CopyContextProperties(dst: *mut nsStyleSVG, src: *const nsStyleSVG);
+}
+extern "C" {
+ pub fn Gecko_NewURLValue(uri: ServoBundledURI) -> *mut URLValue;
+}
+extern "C" {
+ pub fn Gecko_AddRefCSSURLValueArbitraryThread(aPtr: *mut URLValue);
+}
+extern "C" {
+ pub fn Gecko_ReleaseCSSURLValueArbitraryThread(aPtr: *mut URLValue);
+}
+extern "C" {
+ pub fn Gecko_AddRefURLExtraDataArbitraryThread(aPtr: *mut RawGeckoURLExtraData);
+}
+extern "C" {
+ pub fn Gecko_ReleaseURLExtraDataArbitraryThread(aPtr: *mut RawGeckoURLExtraData);
+}
+extern "C" {
+ pub fn Gecko_FillAllImageLayers(layers: *mut nsStyleImageLayers, max_len: u32);
+}
+extern "C" {
+ pub fn Gecko_AddRefCalcArbitraryThread(aPtr: *mut nsStyleCoord_Calc);
+}
+extern "C" {
+ pub fn Gecko_ReleaseCalcArbitraryThread(aPtr: *mut nsStyleCoord_Calc);
+}
+extern "C" {
+ pub fn Gecko_NewCSSShadowArray(len: u32) -> *mut nsCSSShadowArray;
+}
+extern "C" {
+ pub fn Gecko_AddRefCSSShadowArrayArbitraryThread(aPtr: *mut nsCSSShadowArray);
+}
+extern "C" {
+ pub fn Gecko_ReleaseCSSShadowArrayArbitraryThread(aPtr: *mut nsCSSShadowArray);
+}
+extern "C" {
+ pub fn Gecko_NewStyleQuoteValues(len: u32) -> *mut nsStyleQuoteValues;
+}
+extern "C" {
+ pub fn Gecko_AddRefQuoteValuesArbitraryThread(aPtr: *mut nsStyleQuoteValues);
+}
+extern "C" {
+ pub fn Gecko_ReleaseQuoteValuesArbitraryThread(aPtr: *mut nsStyleQuoteValues);
+}
+extern "C" {
+ pub fn Gecko_NewCSSValueSharedList(len: u32) -> *mut nsCSSValueSharedList;
+}
+extern "C" {
+ pub fn Gecko_NewNoneTransform() -> *mut nsCSSValueSharedList;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_GetArrayItem(
+ css_value: nsCSSValueBorrowedMut,
+ index: i32,
+ ) -> nsCSSValueBorrowedMut;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_GetArrayItemConst(
+ css_value: nsCSSValueBorrowed,
+ index: i32,
+ ) -> nsCSSValueBorrowed;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_GetKeyword(aCSSValue: nsCSSValueBorrowed) -> nsCSSKeyword;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_GetNumber(css_value: nsCSSValueBorrowed) -> f32;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_GetPercentage(css_value: nsCSSValueBorrowed) -> f32;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_GetCalc(aCSSValue: nsCSSValueBorrowed) -> nsStyleCoord_CalcValue;
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetNumber(css_value: nsCSSValueBorrowedMut, number: f32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetKeyword(css_value: nsCSSValueBorrowedMut, keyword: nsCSSKeyword);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetPercentage(css_value: nsCSSValueBorrowedMut, percent: f32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetPixelLength(aCSSValue: nsCSSValueBorrowedMut, aLen: f32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetCalc(css_value: nsCSSValueBorrowedMut, calc: nsStyleCoord_CalcValue);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetFunction(css_value: nsCSSValueBorrowedMut, len: i32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetString(
+ css_value: nsCSSValueBorrowedMut,
+ string: *const u8,
+ len: u32,
+ unit: nsCSSUnit,
+ );
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetStringFromAtom(
+ css_value: nsCSSValueBorrowedMut,
+ atom: *mut nsAtom,
+ unit: nsCSSUnit,
+ );
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetAtomIdent(css_value: nsCSSValueBorrowedMut, atom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetArray(css_value: nsCSSValueBorrowedMut, len: i32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetURL(css_value: nsCSSValueBorrowedMut, uri: ServoBundledURI);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetInt(css_value: nsCSSValueBorrowedMut, integer: i32, unit: nsCSSUnit);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetPair(
+ css_value: nsCSSValueBorrowedMut,
+ xvalue: nsCSSValueBorrowed,
+ yvalue: nsCSSValueBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetList(css_value: nsCSSValueBorrowedMut, len: u32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_SetPairList(css_value: nsCSSValueBorrowedMut, len: u32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_InitSharedList(css_value: nsCSSValueBorrowedMut, len: u32);
+}
+extern "C" {
+ pub fn Gecko_CSSValue_Drop(css_value: nsCSSValueBorrowedMut);
+}
+extern "C" {
+ pub fn Gecko_AddRefCSSValueSharedListArbitraryThread(aPtr: *mut nsCSSValueSharedList);
+}
+extern "C" {
+ pub fn Gecko_ReleaseCSSValueSharedListArbitraryThread(aPtr: *mut nsCSSValueSharedList);
+}
+extern "C" {
+ pub fn Gecko_nsStyleFont_SetLang(font: *mut nsStyleFont, atom: *mut nsAtom);
+}
+extern "C" {
+ pub fn Gecko_nsStyleFont_CopyLangFrom(aFont: *mut nsStyleFont, aSource: *const nsStyleFont);
+}
+extern "C" {
+ pub fn Gecko_nsStyleFont_FixupNoneGeneric(
+ font: *mut nsStyleFont,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_nsStyleFont_PrefillDefaultForGeneric(
+ font: *mut nsStyleFont,
+ pres_context: RawGeckoPresContextBorrowed,
+ generic_id: u8,
+ );
+}
+extern "C" {
+ pub fn Gecko_nsStyleFont_FixupMinFontSize(
+ font: *mut nsStyleFont,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_GetBaseSize(lang: *mut nsAtom) -> FontSizePrefs;
+}
+extern "C" {
+ pub fn Gecko_GetBindingParent(
+ aElement: RawGeckoElementBorrowed,
+ ) -> RawGeckoElementBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_GetXBLBinding(
+ aElement: RawGeckoElementBorrowed,
+ ) -> RawGeckoXBLBindingBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_XBLBinding_GetRawServoStyleSet(
+ aXBLBinding: RawGeckoXBLBindingBorrowed,
+ ) -> RawServoStyleSetBorrowedOrNull;
+}
+extern "C" {
+ pub fn Gecko_XBLBinding_InheritsStyle(aXBLBinding: RawGeckoXBLBindingBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Gecko_GetFontMetrics(
+ pres_context: RawGeckoPresContextBorrowed,
+ is_vertical: bool,
+ font: *const nsStyleFont,
+ font_size: nscoord,
+ use_user_font_set: bool,
+ ) -> GeckoFontMetrics;
+}
+extern "C" {
+ pub fn Gecko_GetAppUnitsPerPhysicalInch(pres_context: RawGeckoPresContextBorrowed) -> i32;
+}
+extern "C" {
+ pub fn Gecko_StyleSheet_Clone(
+ aSheet: *const ServoStyleSheet,
+ aNewParentSheet: *const ServoStyleSheet,
+ ) -> *mut ServoStyleSheet;
+}
+extern "C" {
+ pub fn Gecko_StyleSheet_AddRef(aSheet: *const ServoStyleSheet);
+}
+extern "C" {
+ pub fn Gecko_StyleSheet_Release(aSheet: *const ServoStyleSheet);
+}
+extern "C" {
+ pub fn Gecko_LookupCSSKeyword(string: *const u8, len: u32) -> nsCSSKeyword;
+}
+extern "C" {
+ pub fn Gecko_CSSKeywordString(
+ keyword: nsCSSKeyword,
+ len: *mut u32,
+ ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+ pub fn Gecko_CSSFontFaceRule_Create(line: u32, column: u32) -> *mut nsCSSFontFaceRule;
+}
+extern "C" {
+ pub fn Gecko_CSSFontFaceRule_Clone(rule: *const nsCSSFontFaceRule) -> *mut nsCSSFontFaceRule;
+}
+extern "C" {
+ pub fn Gecko_CSSFontFaceRule_GetCssText(rule: *const nsCSSFontFaceRule, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Gecko_CSSFontFaceRule_AddRef(aPtr: *mut nsCSSFontFaceRule);
+}
+extern "C" {
+ pub fn Gecko_CSSFontFaceRule_Release(aPtr: *mut nsCSSFontFaceRule);
+}
+extern "C" {
+ pub fn Gecko_CSSCounterStyle_Create(name: *mut nsAtom) -> *mut nsCSSCounterStyleRule;
+}
+extern "C" {
+ pub fn Gecko_CSSCounterStyle_Clone(
+ rule: *const nsCSSCounterStyleRule,
+ ) -> *mut nsCSSCounterStyleRule;
+}
+extern "C" {
+ pub fn Gecko_CSSCounterStyle_GetCssText(
+ rule: *const nsCSSCounterStyleRule,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Gecko_CSSCounterStyleRule_AddRef(aPtr: *mut nsCSSCounterStyleRule);
+}
+extern "C" {
+ pub fn Gecko_CSSCounterStyleRule_Release(aPtr: *mut nsCSSCounterStyleRule);
+}
+extern "C" {
+ pub fn Gecko_IsDocumentBody(element: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Gecko_GetLookAndFeelSystemColor(
+ color_id: i32,
+ pres_context: RawGeckoPresContextBorrowed,
+ ) -> nscolor;
+}
+extern "C" {
+ pub fn Gecko_AddPropertyToSet(arg1: nsCSSPropertyIDSetBorrowedMut, arg2: nsCSSPropertyID);
+}
+extern "C" {
+ pub fn Gecko_RegisterNamespace(ns: *mut nsAtom) -> i32;
+}
+extern "C" {
+ pub fn Gecko_ShouldCreateStyleThreadPool() -> bool;
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleFont(
+ ptr: *mut nsStyleFont,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleFont(ptr: *mut nsStyleFont, other: *const nsStyleFont);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleFont(ptr: *mut nsStyleFont);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleColor(
+ ptr: *mut nsStyleColor,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleColor(ptr: *mut nsStyleColor, other: *const nsStyleColor);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleColor(ptr: *mut nsStyleColor);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleList(
+ ptr: *mut nsStyleList,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleList(ptr: *mut nsStyleList, other: *const nsStyleList);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleList(ptr: *mut nsStyleList);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleText(
+ ptr: *mut nsStyleText,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleText(ptr: *mut nsStyleText, other: *const nsStyleText);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleText(ptr: *mut nsStyleText);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleVisibility(
+ ptr: *mut nsStyleVisibility,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleVisibility(
+ ptr: *mut nsStyleVisibility,
+ other: *const nsStyleVisibility,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleVisibility(ptr: *mut nsStyleVisibility);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleUserInterface(
+ ptr: *mut nsStyleUserInterface,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleUserInterface(
+ ptr: *mut nsStyleUserInterface,
+ other: *const nsStyleUserInterface,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleUserInterface(ptr: *mut nsStyleUserInterface);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleTableBorder(
+ ptr: *mut nsStyleTableBorder,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleTableBorder(
+ ptr: *mut nsStyleTableBorder,
+ other: *const nsStyleTableBorder,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleTableBorder(ptr: *mut nsStyleTableBorder);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleSVG(
+ ptr: *mut nsStyleSVG,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleSVG(ptr: *mut nsStyleSVG, other: *const nsStyleSVG);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleSVG(ptr: *mut nsStyleSVG);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleVariables(
+ ptr: *mut nsStyleVariables,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleVariables(
+ ptr: *mut nsStyleVariables,
+ other: *const nsStyleVariables,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleVariables(ptr: *mut nsStyleVariables);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleBackground(
+ ptr: *mut nsStyleBackground,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleBackground(
+ ptr: *mut nsStyleBackground,
+ other: *const nsStyleBackground,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleBackground(ptr: *mut nsStyleBackground);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStylePosition(
+ ptr: *mut nsStylePosition,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStylePosition(
+ ptr: *mut nsStylePosition,
+ other: *const nsStylePosition,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStylePosition(ptr: *mut nsStylePosition);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleTextReset(
+ ptr: *mut nsStyleTextReset,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleTextReset(
+ ptr: *mut nsStyleTextReset,
+ other: *const nsStyleTextReset,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleTextReset(ptr: *mut nsStyleTextReset);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleDisplay(
+ ptr: *mut nsStyleDisplay,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleDisplay(
+ ptr: *mut nsStyleDisplay,
+ other: *const nsStyleDisplay,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleDisplay(ptr: *mut nsStyleDisplay);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleContent(
+ ptr: *mut nsStyleContent,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleContent(
+ ptr: *mut nsStyleContent,
+ other: *const nsStyleContent,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleContent(ptr: *mut nsStyleContent);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleUIReset(
+ ptr: *mut nsStyleUIReset,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleUIReset(
+ ptr: *mut nsStyleUIReset,
+ other: *const nsStyleUIReset,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleUIReset(ptr: *mut nsStyleUIReset);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleTable(
+ ptr: *mut nsStyleTable,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleTable(ptr: *mut nsStyleTable, other: *const nsStyleTable);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleTable(ptr: *mut nsStyleTable);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleMargin(
+ ptr: *mut nsStyleMargin,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleMargin(ptr: *mut nsStyleMargin, other: *const nsStyleMargin);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleMargin(ptr: *mut nsStyleMargin);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStylePadding(
+ ptr: *mut nsStylePadding,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStylePadding(
+ ptr: *mut nsStylePadding,
+ other: *const nsStylePadding,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStylePadding(ptr: *mut nsStylePadding);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleBorder(
+ ptr: *mut nsStyleBorder,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleBorder(ptr: *mut nsStyleBorder, other: *const nsStyleBorder);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleBorder(ptr: *mut nsStyleBorder);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleOutline(
+ ptr: *mut nsStyleOutline,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleOutline(
+ ptr: *mut nsStyleOutline,
+ other: *const nsStyleOutline,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleOutline(ptr: *mut nsStyleOutline);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleXUL(
+ ptr: *mut nsStyleXUL,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleXUL(ptr: *mut nsStyleXUL, other: *const nsStyleXUL);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleXUL(ptr: *mut nsStyleXUL);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleSVGReset(
+ ptr: *mut nsStyleSVGReset,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleSVGReset(
+ ptr: *mut nsStyleSVGReset,
+ other: *const nsStyleSVGReset,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleSVGReset(ptr: *mut nsStyleSVGReset);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleColumn(
+ ptr: *mut nsStyleColumn,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleColumn(ptr: *mut nsStyleColumn, other: *const nsStyleColumn);
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleColumn(ptr: *mut nsStyleColumn);
+}
+extern "C" {
+ pub fn Gecko_Construct_Default_nsStyleEffects(
+ ptr: *mut nsStyleEffects,
+ pres_context: RawGeckoPresContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Gecko_CopyConstruct_nsStyleEffects(
+ ptr: *mut nsStyleEffects,
+ other: *const nsStyleEffects,
+ );
+}
+extern "C" {
+ pub fn Gecko_Destroy_nsStyleEffects(ptr: *mut nsStyleEffects);
+}
+extern "C" {
+ pub fn Gecko_RegisterProfilerThread(name: *const ::std::os::raw::c_char);
+}
+extern "C" {
+ pub fn Gecko_UnregisterProfilerThread();
+}
+extern "C" {
+ pub fn Gecko_DocumentRule_UseForPresentation(
+ arg1: RawGeckoPresContextBorrowed,
+ aPattern: *const nsACString,
+ aURLMatchingFunction: URLMatchingFunction,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_SetJemallocThreadLocalArena(enabled: bool);
+}
+extern "C" {
+ pub fn Gecko_AddBufferToCrashReport(addr: *const ::std::os::raw::c_void, len: usize);
+}
+extern "C" {
+ pub fn Gecko_AnnotateCrashReport(
+ key_str: *const ::std::os::raw::c_char,
+ value_str: *const ::std::os::raw::c_char,
+ );
+}
+extern "C" {
+ pub fn Servo_Element_ClearData(node: RawGeckoElementBorrowed);
+}
+extern "C" {
+ pub fn Servo_Element_SizeOfExcludingThisAndCVs(
+ malloc_size_of: MallocSizeOf,
+ malloc_enclosing_size_of: MallocSizeOf,
+ seen_ptrs: *mut SeenPtrs,
+ node: RawGeckoElementBorrowed,
+ ) -> usize;
+}
+extern "C" {
+ pub fn Servo_Element_HasPrimaryComputedValues(node: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Servo_Element_GetPrimaryComputedValues(
+ node: RawGeckoElementBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_Element_HasPseudoComputedValues(
+ node: RawGeckoElementBorrowed,
+ index: usize,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_Element_GetPseudoComputedValues(
+ node: RawGeckoElementBorrowed,
+ index: usize,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_Element_IsDisplayNone(element: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Servo_Element_IsPrimaryStyleReusedViaRuleNode(element: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_FromUTF8Bytes(
+ loader: *mut Loader,
+ gecko_stylesheet: *mut ServoStyleSheet,
+ data: *const u8,
+ data_len: usize,
+ parsing_mode: SheetParsingMode,
+ extra_data: *mut RawGeckoURLExtraData,
+ line_number_offset: u32,
+ quirks_mode: nsCompatibility,
+ reusable_sheets: *mut LoaderReusableStyleSheets,
+ ) -> RawServoStyleSheetContentsStrong;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_Empty(
+ parsing_mode: SheetParsingMode,
+ ) -> RawServoStyleSheetContentsStrong;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_HasRules(sheet: RawServoStyleSheetContentsBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_GetRules(
+ sheet: RawServoStyleSheetContentsBorrowed,
+ ) -> ServoCssRulesStrong;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_Clone(
+ sheet: RawServoStyleSheetContentsBorrowed,
+ reference_sheet: *const ServoStyleSheet,
+ ) -> RawServoStyleSheetContentsStrong;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_SizeOfIncludingThis(
+ malloc_size_of: MallocSizeOf,
+ malloc_enclosing_size_of: MallocSizeOf,
+ sheet: RawServoStyleSheetContentsBorrowed,
+ ) -> usize;
+}
+extern "C" {
+ pub fn Servo_StyleSheet_GetSourceMapURL(
+ sheet: RawServoStyleSheetContentsBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSheet_GetSourceURL(
+ sheet: RawServoStyleSheetContentsBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSheet_GetOrigin(sheet: RawServoStyleSheetContentsBorrowed) -> u8;
+}
+extern "C" {
+ pub fn Servo_StyleSet_Init(pres_context: RawGeckoPresContextOwned) -> *mut RawServoStyleSet;
+}
+extern "C" {
+ pub fn Servo_StyleSet_RebuildCachedData(set: RawServoStyleSetBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSet_MediumFeaturesChanged(
+ set: RawServoStyleSetBorrowed,
+ viewport_units_used: *mut bool,
+ ) -> u8;
+}
+extern "C" {
+ pub fn Servo_StyleSet_SetDevice(
+ set: RawServoStyleSetBorrowed,
+ pres_context: RawGeckoPresContextOwned,
+ ) -> u8;
+}
+extern "C" {
+ pub fn Servo_StyleSet_CompatModeChanged(raw_data: RawServoStyleSetBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSet_AppendStyleSheet(
+ set: RawServoStyleSetBorrowed,
+ gecko_sheet: *const ServoStyleSheet,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_PrependStyleSheet(
+ set: RawServoStyleSetBorrowed,
+ gecko_sheet: *const ServoStyleSheet,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_RemoveStyleSheet(
+ set: RawServoStyleSetBorrowed,
+ gecko_sheet: *const ServoStyleSheet,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_InsertStyleSheetBefore(
+ set: RawServoStyleSetBorrowed,
+ gecko_sheet: *const ServoStyleSheet,
+ before: *const ServoStyleSheet,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_FlushStyleSheets(
+ set: RawServoStyleSetBorrowed,
+ doc_elem: RawGeckoElementBorrowedOrNull,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_NoteStyleSheetsChanged(
+ set: RawServoStyleSetBorrowed,
+ author_style_disabled: bool,
+ changed_origins: OriginFlags,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_GetKeyframesForName(
+ set: RawServoStyleSetBorrowed,
+ name: *mut nsAtom,
+ timing_function: nsTimingFunctionBorrowed,
+ keyframe_list: RawGeckoKeyframeListBorrowedMut,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_StyleSet_GetFontFaceRules(
+ set: RawServoStyleSetBorrowed,
+ list: RawGeckoFontFaceRuleListBorrowedMut,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_GetCounterStyleRule(
+ set: RawServoStyleSetBorrowed,
+ name: *mut nsAtom,
+ ) -> *mut nsCSSCounterStyleRule;
+}
+extern "C" {
+ pub fn Servo_StyleSet_BuildFontFeatureValueSet(
+ set: RawServoStyleSetBorrowed,
+ ) -> *mut gfxFontFeatureValueSet;
+}
+extern "C" {
+ pub fn Servo_StyleSet_ResolveForDeclarations(
+ set: RawServoStyleSetBorrowed,
+ parent_style: ServoStyleContextBorrowedOrNull,
+ declarations: RawServoDeclarationBlockBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_SelectorList_Parse(selector_list: *const nsACString) -> *mut RawServoSelectorList;
+}
+extern "C" {
+ pub fn Servo_SourceSizeList_Parse(value: *const nsACString) -> *mut RawServoSourceSizeList;
+}
+extern "C" {
+ pub fn Servo_SourceSizeList_Evaluate(
+ set: RawServoStyleSetBorrowed,
+ arg1: RawServoSourceSizeListBorrowedOrNull,
+ ) -> i32;
+}
+extern "C" {
+ pub fn Servo_SelectorList_Matches(
+ arg1: RawGeckoElementBorrowed,
+ arg2: RawServoSelectorListBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_SelectorList_Closest(
+ arg1: RawGeckoElementBorrowed,
+ arg2: RawServoSelectorListBorrowed,
+ ) -> *const RawGeckoElement;
+}
+extern "C" {
+ pub fn Servo_SelectorList_QueryFirst(
+ arg1: RawGeckoNodeBorrowed,
+ arg2: RawServoSelectorListBorrowed,
+ may_use_invalidation: bool,
+ ) -> *const RawGeckoElement;
+}
+extern "C" {
+ pub fn Servo_SelectorList_QueryAll(
+ arg1: RawGeckoNodeBorrowed,
+ arg2: RawServoSelectorListBorrowed,
+ content_list: *mut nsSimpleContentList,
+ may_use_invalidation: bool,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleSet_AddSizeOfExcludingThis(
+ malloc_size_of: MallocSizeOf,
+ malloc_enclosing_size_of: MallocSizeOf,
+ sizes: *mut ServoStyleSetSizes,
+ set: RawServoStyleSetBorrowed,
+ );
+}
+extern "C" {
+ pub fn Servo_UACache_AddSizeOf(
+ malloc_size_of: MallocSizeOf,
+ malloc_enclosing_size_of: MallocSizeOf,
+ sizes: *mut ServoStyleSetSizes,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleContext_AddRef(ctx: ServoStyleContextBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleContext_Release(ctx: ServoStyleContextBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSet_MightHaveAttributeDependency(
+ set: RawServoStyleSetBorrowed,
+ element: RawGeckoElementBorrowed,
+ local_name: *mut nsAtom,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_StyleSet_HasStateDependency(
+ set: RawServoStyleSetBorrowed,
+ element: RawGeckoElementBorrowed,
+ state: u64,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_StyleSet_HasDocumentStateDependency(
+ set: RawServoStyleSetBorrowed,
+ state: u64,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_CssRules_ListTypes(
+ rules: ServoCssRulesBorrowed,
+ result: nsTArrayBorrowed_uintptr_t,
+ );
+}
+extern "C" {
+ pub fn Servo_CssRules_InsertRule(
+ rules: ServoCssRulesBorrowed,
+ sheet: RawServoStyleSheetContentsBorrowed,
+ rule: *const nsACString,
+ index: u32,
+ nested: bool,
+ loader: *mut Loader,
+ gecko_stylesheet: *mut ServoStyleSheet,
+ rule_type: *mut u16,
+ ) -> nsresult;
+}
+extern "C" {
+ pub fn Servo_CssRules_DeleteRule(rules: ServoCssRulesBorrowed, index: u32) -> nsresult;
+}
+extern "C" {
+ pub fn Servo_CssRules_GetStyleRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoStyleRuleStrong;
+}
+extern "C" {
+ pub fn Servo_StyleRule_Debug(rule: RawServoStyleRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_StyleRule_GetCssText(rule: RawServoStyleRuleBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_CssRules_GetImportRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoImportRuleStrong;
+}
+extern "C" {
+ pub fn Servo_ImportRule_Debug(rule: RawServoImportRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_ImportRule_GetCssText(rule: RawServoImportRuleBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_Keyframe_Debug(rule: RawServoKeyframeBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_Keyframe_GetCssText(rule: RawServoKeyframeBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_CssRules_GetKeyframesRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoKeyframesRuleStrong;
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_Debug(rule: RawServoKeyframesRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_GetCssText(
+ rule: RawServoKeyframesRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_CssRules_GetMediaRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoMediaRuleStrong;
+}
+extern "C" {
+ pub fn Servo_MediaRule_Debug(rule: RawServoMediaRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_MediaRule_GetCssText(rule: RawServoMediaRuleBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_MediaRule_GetRules(rule: RawServoMediaRuleBorrowed) -> ServoCssRulesStrong;
+}
+extern "C" {
+ pub fn Servo_CssRules_GetNamespaceRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoNamespaceRuleStrong;
+}
+extern "C" {
+ pub fn Servo_NamespaceRule_Debug(rule: RawServoNamespaceRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_NamespaceRule_GetCssText(
+ rule: RawServoNamespaceRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_CssRules_GetPageRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoPageRuleStrong;
+}
+extern "C" {
+ pub fn Servo_PageRule_Debug(rule: RawServoPageRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_PageRule_GetCssText(rule: RawServoPageRuleBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_CssRules_GetSupportsRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoSupportsRuleStrong;
+}
+extern "C" {
+ pub fn Servo_SupportsRule_Debug(rule: RawServoSupportsRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_SupportsRule_GetCssText(
+ rule: RawServoSupportsRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_SupportsRule_GetRules(rule: RawServoSupportsRuleBorrowed) -> ServoCssRulesStrong;
+}
+extern "C" {
+ pub fn Servo_CssRules_GetDocumentRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoDocumentRuleStrong;
+}
+extern "C" {
+ pub fn Servo_DocumentRule_Debug(rule: RawServoDocumentRuleBorrowed, result: *mut nsACString);
+}
+extern "C" {
+ pub fn Servo_DocumentRule_GetCssText(
+ rule: RawServoDocumentRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_DocumentRule_GetRules(rule: RawServoDocumentRuleBorrowed) -> ServoCssRulesStrong;
+}
+extern "C" {
+ pub fn Servo_CssRules_GetFontFeatureValuesRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoFontFeatureValuesRuleStrong;
+}
+extern "C" {
+ pub fn Servo_FontFeatureValuesRule_Debug(
+ rule: RawServoFontFeatureValuesRuleBorrowed,
+ result: *mut nsACString,
+ );
+}
+extern "C" {
+ pub fn Servo_FontFeatureValuesRule_GetCssText(
+ rule: RawServoFontFeatureValuesRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_CssRules_GetFontFaceRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ ) -> *mut nsCSSFontFaceRule;
+}
+extern "C" {
+ pub fn Servo_CssRules_GetCounterStyleRuleAt(
+ rules: ServoCssRulesBorrowed,
+ index: u32,
+ ) -> *mut nsCSSCounterStyleRule;
+}
+extern "C" {
+ pub fn Servo_StyleRule_GetStyle(
+ rule: RawServoStyleRuleBorrowed,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_StyleRule_SetStyle(
+ rule: RawServoStyleRuleBorrowed,
+ declarations: RawServoDeclarationBlockBorrowed,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleRule_GetSelectorText(rule: RawServoStyleRuleBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_StyleRule_GetSelectorTextAtIndex(
+ rule: RawServoStyleRuleBorrowed,
+ index: u32,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleRule_GetSpecificityAtIndex(
+ rule: RawServoStyleRuleBorrowed,
+ index: u32,
+ specificity: *mut u64,
+ );
+}
+extern "C" {
+ pub fn Servo_StyleRule_GetSelectorCount(rule: RawServoStyleRuleBorrowed, count: *mut u32);
+}
+extern "C" {
+ pub fn Servo_StyleRule_SelectorMatchesElement(
+ arg1: RawServoStyleRuleBorrowed,
+ arg2: RawGeckoElementBorrowed,
+ index: u32,
+ pseudo_type: CSSPseudoElementType,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ImportRule_GetHref(rule: RawServoImportRuleBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_ImportRule_GetSheet(rule: RawServoImportRuleBorrowed) -> *const ServoStyleSheet;
+}
+extern "C" {
+ pub fn Servo_Keyframe_GetKeyText(keyframe: RawServoKeyframeBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_Keyframe_SetKeyText(
+ keyframe: RawServoKeyframeBorrowed,
+ text: *const nsACString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_Keyframe_GetStyle(
+ keyframe: RawServoKeyframeBorrowed,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_Keyframe_SetStyle(
+ keyframe: RawServoKeyframeBorrowed,
+ declarations: RawServoDeclarationBlockBorrowed,
+ );
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_GetName(rule: RawServoKeyframesRuleBorrowed) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_SetName(rule: RawServoKeyframesRuleBorrowed, name: *mut nsAtom);
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_GetCount(rule: RawServoKeyframesRuleBorrowed) -> u32;
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_GetKeyframeAt(
+ rule: RawServoKeyframesRuleBorrowed,
+ index: u32,
+ line: *mut u32,
+ column: *mut u32,
+ ) -> RawServoKeyframeStrong;
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_FindRule(
+ rule: RawServoKeyframesRuleBorrowed,
+ key: *const nsACString,
+ ) -> u32;
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_AppendRule(
+ rule: RawServoKeyframesRuleBorrowed,
+ sheet: RawServoStyleSheetContentsBorrowed,
+ css: *const nsACString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_KeyframesRule_DeleteRule(rule: RawServoKeyframesRuleBorrowed, index: u32);
+}
+extern "C" {
+ pub fn Servo_MediaRule_GetMedia(rule: RawServoMediaRuleBorrowed) -> RawServoMediaListStrong;
+}
+extern "C" {
+ pub fn Servo_NamespaceRule_GetPrefix(rule: RawServoNamespaceRuleBorrowed) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Servo_NamespaceRule_GetURI(rule: RawServoNamespaceRuleBorrowed) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Servo_PageRule_GetStyle(
+ rule: RawServoPageRuleBorrowed,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_PageRule_SetStyle(
+ rule: RawServoPageRuleBorrowed,
+ declarations: RawServoDeclarationBlockBorrowed,
+ );
+}
+extern "C" {
+ pub fn Servo_SupportsRule_GetConditionText(
+ rule: RawServoSupportsRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_DocumentRule_GetConditionText(
+ rule: RawServoDocumentRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_FontFeatureValuesRule_GetFontFamily(
+ rule: RawServoFontFeatureValuesRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_FontFeatureValuesRule_GetValueText(
+ rule: RawServoFontFeatureValuesRuleBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_ParseProperty(
+ property: nsCSSPropertyID,
+ value: *const nsACString,
+ data: *mut RawGeckoURLExtraData,
+ parsing_mode: ParsingMode,
+ quirks_mode: nsCompatibility,
+ loader: *mut Loader,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_ParseEasing(
+ easing: *const nsAString,
+ data: *mut RawGeckoURLExtraData,
+ output: nsTimingFunctionBorrowedMut,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_GetComputedKeyframeValues(
+ keyframes: RawGeckoKeyframeListBorrowed,
+ element: RawGeckoElementBorrowed,
+ style: ServoStyleContextBorrowed,
+ set: RawServoStyleSetBorrowed,
+ result: RawGeckoComputedKeyframeValuesListBorrowedMut,
+ );
+}
+extern "C" {
+ pub fn Servo_ComputedValues_ExtractAnimationValue(
+ computed_values: ServoStyleContextBorrowed,
+ property: nsCSSPropertyID,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_SpecifiesAnimationsOrTransitions(
+ computed_values: ServoStyleContextBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_Property_IsAnimatable(property: nsCSSPropertyID) -> bool;
+}
+extern "C" {
+ pub fn Servo_Property_IsTransitionable(property: nsCSSPropertyID) -> bool;
+}
+extern "C" {
+ pub fn Servo_Property_IsDiscreteAnimatable(property: nsCSSPropertyID) -> bool;
+}
+extern "C" {
+ pub fn Servo_GetProperties_Overriding_Animation(
+ arg1: RawGeckoElementBorrowed,
+ arg2: RawGeckoCSSPropertyIDListBorrowed,
+ arg3: nsCSSPropertyIDSetBorrowedMut,
+ );
+}
+extern "C" {
+ pub fn Servo_MatrixTransform_Operate(
+ matrix_operator: MatrixTransformOperator,
+ from: *const RawGeckoGfxMatrix4x4,
+ to: *const RawGeckoGfxMatrix4x4,
+ progress: f64,
+ result: *mut RawGeckoGfxMatrix4x4,
+ );
+}
+extern "C" {
+ pub fn Servo_GetAnimationValues(
+ declarations: RawServoDeclarationBlockBorrowed,
+ element: RawGeckoElementBorrowed,
+ style: ServoStyleContextBorrowed,
+ style_set: RawServoStyleSetBorrowed,
+ animation_values: RawGeckoServoAnimationValueListBorrowedMut,
+ );
+}
+extern "C" {
+ pub fn Servo_AnimationValues_Interpolate(
+ from: RawServoAnimationValueBorrowed,
+ to: RawServoAnimationValueBorrowed,
+ progress: f64,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValues_IsInterpolable(
+ from: RawServoAnimationValueBorrowed,
+ to: RawServoAnimationValueBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_AnimationValues_Add(
+ a: RawServoAnimationValueBorrowed,
+ b: RawServoAnimationValueBorrowed,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValues_Accumulate(
+ a: RawServoAnimationValueBorrowed,
+ b: RawServoAnimationValueBorrowed,
+ count: u64,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValues_GetZeroValue(
+ value_to_match: RawServoAnimationValueBorrowed,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValues_ComputeDistance(
+ from: RawServoAnimationValueBorrowed,
+ to: RawServoAnimationValueBorrowed,
+ ) -> f64;
+}
+extern "C" {
+ pub fn Servo_AnimationValue_Serialize(
+ value: RawServoAnimationValueBorrowed,
+ property: nsCSSPropertyID,
+ buffer: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_Shorthand_AnimationValues_Serialize(
+ shorthand_property: nsCSSPropertyID,
+ values: RawGeckoServoAnimationValueListBorrowed,
+ buffer: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_AnimationValue_GetOpacity(value: RawServoAnimationValueBorrowed) -> f32;
+}
+extern "C" {
+ pub fn Servo_AnimationValue_Opacity(arg1: f32) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValue_GetTransform(
+ value: RawServoAnimationValueBorrowed,
+ list: *mut RefPtr<nsCSSValueSharedList>,
+ );
+}
+extern "C" {
+ pub fn Servo_AnimationValue_Transform(
+ list: *const nsCSSValueSharedList,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValue_DeepEqual(
+ arg1: RawServoAnimationValueBorrowed,
+ arg2: RawServoAnimationValueBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_AnimationValue_Uncompute(
+ value: RawServoAnimationValueBorrowed,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_AnimationValue_Compute(
+ element: RawGeckoElementBorrowed,
+ declarations: RawServoDeclarationBlockBorrowed,
+ style: ServoStyleContextBorrowed,
+ raw_data: RawServoStyleSetBorrowed,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_ParseStyleAttribute(
+ data: *const nsACString,
+ extra_data: *mut RawGeckoURLExtraData,
+ quirks_mode: nsCompatibility,
+ loader: *mut Loader,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_CreateEmpty() -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_Clone(
+ declarations: RawServoDeclarationBlockBorrowed,
+ ) -> RawServoDeclarationBlockStrong;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_Equals(
+ a: RawServoDeclarationBlockBorrowed,
+ b: RawServoDeclarationBlockBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_GetCssText(
+ declarations: RawServoDeclarationBlockBorrowed,
+ result: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SerializeOneValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ buffer: *mut nsAString,
+ computed_values: ServoStyleContextBorrowedOrNull,
+ custom_properties: RawServoDeclarationBlockBorrowedOrNull,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_Count(declarations: RawServoDeclarationBlockBorrowed) -> u32;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_GetNthProperty(
+ declarations: RawServoDeclarationBlockBorrowed,
+ index: u32,
+ result: *mut nsAString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_GetPropertyValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: *const nsACString,
+ value: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_GetPropertyValueById(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_GetPropertyIsImportant(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: *const nsACString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetProperty(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: *const nsACString,
+ value: *const nsACString,
+ is_important: bool,
+ data: *mut RawGeckoURLExtraData,
+ parsing_mode: ParsingMode,
+ quirks_mode: nsCompatibility,
+ loader: *mut Loader,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetPropertyById(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: *const nsACString,
+ is_important: bool,
+ data: *mut RawGeckoURLExtraData,
+ parsing_mode: ParsingMode,
+ quirks_mode: nsCompatibility,
+ loader: *mut Loader,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_RemoveProperty(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: *const nsACString,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_RemovePropertyById(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_HasCSSWideKeyword(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_AnimationCompose(
+ animation_values: RawServoAnimationValueMapBorrowedMut,
+ base_values: RawServoAnimationValueTableBorrowed,
+ property: nsCSSPropertyID,
+ animation_segment: RawGeckoAnimationPropertySegmentBorrowed,
+ last_segment: RawGeckoAnimationPropertySegmentBorrowed,
+ computed_timing: RawGeckoComputedTimingBorrowed,
+ iter_composite: IterationCompositeOperation,
+ );
+}
+extern "C" {
+ pub fn Servo_ComposeAnimationSegment(
+ animation_segment: RawGeckoAnimationPropertySegmentBorrowed,
+ underlying_value: RawServoAnimationValueBorrowedOrNull,
+ last_value: RawServoAnimationValueBorrowedOrNull,
+ iter_composite: IterationCompositeOperation,
+ progress: f64,
+ current_iteration: u64,
+ ) -> RawServoAnimationValueStrong;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_PropertyIsSet(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetIdentStringValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: *mut nsAtom,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetKeywordValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: i32,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetIntValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: i32,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetPixelValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: f32,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetLengthValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: f32,
+ unit: nsCSSUnit,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetNumberValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: f32,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetPercentValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: f32,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetAutoValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetCurrentColor(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetColorValue(
+ declarations: RawServoDeclarationBlockBorrowed,
+ property: nsCSSPropertyID,
+ value: nscolor,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetFontFamily(
+ declarations: RawServoDeclarationBlockBorrowed,
+ value: *const nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetTextDecorationColorOverride(
+ declarations: RawServoDeclarationBlockBorrowed,
+ );
+}
+extern "C" {
+ pub fn Servo_DeclarationBlock_SetBackgroundImage(
+ declarations: RawServoDeclarationBlockBorrowed,
+ value: *const nsAString,
+ extra_data: *mut RawGeckoURLExtraData,
+ );
+}
+extern "C" {
+ pub fn Servo_MediaList_Create() -> RawServoMediaListStrong;
+}
+extern "C" {
+ pub fn Servo_MediaList_DeepClone(list: RawServoMediaListBorrowed) -> RawServoMediaListStrong;
+}
+extern "C" {
+ pub fn Servo_MediaList_Matches(
+ list: RawServoMediaListBorrowed,
+ set: RawServoStyleSetBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_MediaList_GetText(list: RawServoMediaListBorrowed, result: *mut nsAString);
+}
+extern "C" {
+ pub fn Servo_MediaList_SetText(
+ list: RawServoMediaListBorrowed,
+ text: *const nsACString,
+ aCallerType: CallerType,
+ );
+}
+extern "C" {
+ pub fn Servo_MediaList_GetLength(list: RawServoMediaListBorrowed) -> u32;
+}
+extern "C" {
+ pub fn Servo_MediaList_GetMediumAt(
+ list: RawServoMediaListBorrowed,
+ index: u32,
+ result: *mut nsAString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_MediaList_AppendMedium(
+ list: RawServoMediaListBorrowed,
+ new_medium: *const nsACString,
+ );
+}
+extern "C" {
+ pub fn Servo_MediaList_DeleteMedium(
+ list: RawServoMediaListBorrowed,
+ old_medium: *const nsACString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_CSSSupports2(name: *const nsACString, value: *const nsACString) -> bool;
+}
+extern "C" {
+ pub fn Servo_CSSSupports(cond: *const nsACString) -> bool;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_GetForAnonymousBox(
+ parent_style_or_null: ServoStyleContextBorrowedOrNull,
+ pseudo_tag: *mut nsAtom,
+ set: RawServoStyleSetBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_Inherit(
+ set: RawServoStyleSetBorrowed,
+ pseudo_tag: *mut nsAtom,
+ parent_style: ServoStyleContextBorrowedOrNull,
+ target: InheritTarget,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_GetStyleBits(values: ServoStyleContextBorrowed) -> u64;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_EqualCustomProperties(
+ first: ServoComputedDataBorrowed,
+ second: ServoComputedDataBorrowed,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_GetStyleRuleList(
+ values: ServoStyleContextBorrowed,
+ rules: RawGeckoServoStyleRuleListBorrowedMut,
+ );
+}
+extern "C" {
+ pub fn Servo_Initialize(dummy_url_data: *mut RawGeckoURLExtraData);
+}
+extern "C" {
+ pub fn Servo_InitializeCooperativeThread();
+}
+extern "C" {
+ pub fn Servo_Shutdown();
+}
+extern "C" {
+ pub fn Servo_NoteExplicitHints(
+ element: RawGeckoElementBorrowed,
+ restyle_hint: nsRestyleHint,
+ change_hint: nsChangeHint,
+ );
+}
+extern "C" {
+ pub fn Servo_TakeChangeHint(element: RawGeckoElementBorrowed, was_restyled: *mut bool) -> u32;
+}
+extern "C" {
+ pub fn Servo_ResolveStyle(
+ element: RawGeckoElementBorrowed,
+ set: RawServoStyleSetBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_ResolvePseudoStyle(
+ element: RawGeckoElementBorrowed,
+ pseudo_type: CSSPseudoElementType,
+ is_probe: bool,
+ inherited_style: ServoStyleContextBorrowedOrNull,
+ set: RawServoStyleSetBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_ComputedValues_ResolveXULTreePseudoStyle(
+ element: RawGeckoElementBorrowed,
+ pseudo_tag: *mut nsAtom,
+ inherited_style: ServoStyleContextBorrowed,
+ input_word: *const AtomArray,
+ set: RawServoStyleSetBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_SetExplicitStyle(
+ element: RawGeckoElementBorrowed,
+ primary_style: ServoStyleContextBorrowed,
+ );
+}
+extern "C" {
+ pub fn Servo_HasAuthorSpecifiedRules(
+ style: ServoStyleContextBorrowed,
+ element: RawGeckoElementBorrowed,
+ pseudo_type: CSSPseudoElementType,
+ rule_type_mask: u32,
+ author_colors_allowed: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ResolveStyleLazily(
+ element: RawGeckoElementBorrowed,
+ pseudo_type: CSSPseudoElementType,
+ rule_inclusion: StyleRuleInclusion,
+ snapshots: *const ServoElementSnapshotTable,
+ set: RawServoStyleSetBorrowed,
+ ignore_existing_styles: bool,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_ReparentStyle(
+ style_to_reparent: ServoStyleContextBorrowed,
+ parent_style: ServoStyleContextBorrowed,
+ parent_style_ignoring_first_line: ServoStyleContextBorrowed,
+ layout_parent_style: ServoStyleContextBorrowed,
+ element: RawGeckoElementBorrowedOrNull,
+ set: RawServoStyleSetBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_TraverseSubtree(
+ root: RawGeckoElementBorrowed,
+ set: RawServoStyleSetBorrowed,
+ snapshots: *const ServoElementSnapshotTable,
+ flags: ServoTraversalFlags,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed);
+}
+extern "C" {
+ pub fn Servo_IsWorkerThread() -> bool;
+}
+extern "C" {
+ pub fn Servo_MaybeGCRuleTree(set: RawServoStyleSetBorrowed);
+}
+extern "C" {
+ pub fn Servo_StyleSet_GetBaseComputedValuesForElement(
+ set: RawServoStyleSetBorrowed,
+ element: RawGeckoElementBorrowed,
+ existing_style: ServoStyleContextBorrowed,
+ snapshots: *const ServoElementSnapshotTable,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_StyleSet_GetComputedValuesByAddingAnimation(
+ set: RawServoStyleSetBorrowed,
+ element: RawGeckoElementBorrowed,
+ existing_style: ServoStyleContextBorrowed,
+ snapshots: *const ServoElementSnapshotTable,
+ animation: RawServoAnimationValueBorrowed,
+ ) -> ServoStyleContextStrong;
+}
+extern "C" {
+ pub fn Servo_SerializeFontValueForCanvas(
+ declarations: RawServoDeclarationBlockBorrowed,
+ buffer: *mut nsAString,
+ );
+}
+extern "C" {
+ pub fn Servo_GetCustomPropertyValue(
+ computed_values: ServoStyleContextBorrowed,
+ name: *const nsAString,
+ value: *mut nsAString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_GetCustomPropertiesCount(computed_values: ServoStyleContextBorrowed) -> u32;
+}
+extern "C" {
+ pub fn Servo_GetCustomPropertyNameAt(
+ arg1: ServoStyleContextBorrowed,
+ index: u32,
+ name: *mut nsAString,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ProcessInvalidations(
+ set: RawServoStyleSetBorrowed,
+ element: RawGeckoElementBorrowed,
+ snapshots: *const ServoElementSnapshotTable,
+ );
+}
+extern "C" {
+ pub fn Servo_HasPendingRestyleAncestor(element: RawGeckoElementBorrowed) -> bool;
+}
+extern "C" {
+ pub fn Servo_GetArcStringData(arg1: *const RustString, chars: *mut *const u8, len: *mut u32);
+}
+extern "C" {
+ pub fn Servo_ReleaseArcStringData(string: *const ServoRawOffsetArc<RustString>);
+}
+extern "C" {
+ pub fn Servo_CloneArcStringData(
+ string: *const ServoRawOffsetArc<RustString>,
+ ) -> ServoRawOffsetArc<RustString>;
+}
+extern "C" {
+ pub fn Servo_IsValidCSSColor(value: *const nsAString) -> bool;
+}
+extern "C" {
+ pub fn Servo_ComputeColor(
+ set: RawServoStyleSetBorrowedOrNull,
+ current_color: nscolor,
+ value: *const nsAString,
+ result_color: *mut nscolor,
+ was_current_color: *mut bool,
+ loader: *mut Loader,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ParseIntersectionObserverRootMargin(
+ value: *const nsAString,
+ result: *mut nsCSSRect,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ParseTransformIntoMatrix(
+ value: *const nsAString,
+ contains_3d_transform: *mut bool,
+ result: *mut RawGeckoGfxMatrix4x4,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ParseCounterStyleName(value: *const nsACString) -> *mut nsAtom;
+}
+extern "C" {
+ pub fn Servo_ParseCounterStyleDescriptor(
+ aDescriptor: nsCSSCounterDesc,
+ aValue: *const nsACString,
+ aURLExtraData: *mut RawGeckoURLExtraData,
+ aResult: *mut nsCSSValue,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ParseFontDescriptor(
+ desc_id: nsCSSFontDesc,
+ value: *const nsAString,
+ data: *mut RawGeckoURLExtraData,
+ arg1: nsCSSValueBorrowedMut,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Servo_ParseFontShorthandForMatching(
+ value: *const nsAString,
+ data: *mut RawGeckoURLExtraData,
+ family: *mut RefPtr<SharedFontList>,
+ style: nsCSSValueBorrowedMut,
+ stretch: nsCSSValueBorrowedMut,
+ weight: nsCSSValueBorrowedMut,
+ ) -> bool;
+}
+extern "C" {
+ pub fn Gecko_CreateCSSErrorReporter(
+ sheet: *mut ServoStyleSheet,
+ loader: *mut Loader,
+ uri: *mut nsIURI,
+ ) -> *mut ErrorReporter;
+}
+extern "C" {
+ pub fn Gecko_DestroyCSSErrorReporter(reporter: *mut ErrorReporter);
+}
+extern "C" {
+ pub fn Gecko_ReportUnexpectedCSSError(
+ reporter: *mut ErrorReporter,
+ message: *const ::std::os::raw::c_char,
+ param: *const ::std::os::raw::c_char,
+ paramLen: u32,
+ prefix: *const ::std::os::raw::c_char,
+ prefixParam: *const ::std::os::raw::c_char,
+ prefixParamLen: u32,
+ suffix: *const ::std::os::raw::c_char,
+ source: *const ::std::os::raw::c_char,
+ sourceLen: u32,
+ lineNumber: u32,
+ colNumber: u32,
+ );
+}
+extern "C" {
+ pub fn Gecko_ContentList_AppendAll(
+ aContentList: *mut nsSimpleContentList,
+ aElements: *mut *const RawGeckoElement,
+ aLength: usize,
+ );
+}
+extern "C" {
+ pub fn Gecko_GetElementsWithId(
+ aDocument: *const nsIDocument,
+ aId: *mut nsAtom,
+ ) -> *const nsTArray<*mut Element>;
+}
+extern "C" {
+ pub fn Gecko_GetBoolPrefValue(pref_name: *const ::std::os::raw::c_char) -> bool;
+}
+extern "C" {
+ pub fn Gecko_IsInServoTraversal() -> bool;
+}
+extern "C" {
+ pub fn Gecko_IsMainThread() -> bool;
}
diff --git a/components/style/gecko/generated/pseudo_element_definition.rs b/components/style/gecko/generated/pseudo_element_definition.rs
index 4a18723ec85..c312161dde6 100644
--- a/components/style/gecko/generated/pseudo_element_definition.rs
+++ b/components/style/gecko/generated/pseudo_element_definition.rs
@@ -159,8 +159,6 @@ pub enum PseudoElement {
MozTreeCellText(Box<[Atom]>),
/// :-moz-tree-checkbox
MozTreeCheckbox(Box<[Atom]>),
- /// :-moz-tree-progressmeter
- MozTreeProgressmeter(Box<[Atom]>),
/// :-moz-tree-drop-feedback
MozTreeDropFeedback(Box<[Atom]>),
/// :-moz-svg-marker-anon-child
@@ -186,10 +184,10 @@ pub const EAGER_PSEUDO_COUNT: usize = 4;
pub const SIMPLE_PSEUDO_COUNT: usize = 71;
/// The number of tree pseudo-elements.
-pub const TREE_PSEUDO_COUNT: usize = 12;
+pub const TREE_PSEUDO_COUNT: usize = 11;
/// The number of all pseudo-elements.
-pub const PSEUDO_COUNT: usize = 83;
+pub const PSEUDO_COUNT: usize = 82;
/// The list of eager pseudos.
pub const EAGER_PSEUDOS: [PseudoElement; EAGER_PSEUDO_COUNT] = [
@@ -283,7 +281,6 @@ impl PseudoElement {
PseudoElement::MozTreeImage(..) => atom!(":-moz-tree-image"),
PseudoElement::MozTreeCellText(..) => atom!(":-moz-tree-cell-text"),
PseudoElement::MozTreeCheckbox(..) => atom!(":-moz-tree-checkbox"),
- PseudoElement::MozTreeProgressmeter(..) => atom!(":-moz-tree-progressmeter"),
PseudoElement::MozTreeDropFeedback(..) => atom!(":-moz-tree-drop-feedback"),
PseudoElement::MozSVGMarkerAnonChild => atom!(":-moz-svg-marker-anon-child"),
PseudoElement::MozSVGOuterSVGAnonChild => atom!(":-moz-svg-outer-svg-anon-child"),
@@ -373,12 +370,11 @@ impl PseudoElement {
PseudoElement::MozTreeImage(..) => 74,
PseudoElement::MozTreeCellText(..) => 75,
PseudoElement::MozTreeCheckbox(..) => 76,
- PseudoElement::MozTreeProgressmeter(..) => 77,
- PseudoElement::MozTreeDropFeedback(..) => 78,
- PseudoElement::MozSVGMarkerAnonChild => 79,
- PseudoElement::MozSVGOuterSVGAnonChild => 80,
- PseudoElement::MozSVGForeignContent => 81,
- PseudoElement::MozSVGText => 82,
+ PseudoElement::MozTreeDropFeedback(..) => 77,
+ PseudoElement::MozSVGMarkerAnonChild => 78,
+ PseudoElement::MozSVGOuterSVGAnonChild => 79,
+ PseudoElement::MozSVGForeignContent => 80,
+ PseudoElement::MozSVGText => 81,
}
}
@@ -468,7 +464,6 @@ impl PseudoElement {
None,
None,
None,
- None,
None
]
}
@@ -529,7 +524,6 @@ impl PseudoElement {
PseudoElement::MozTreeImage(..) => true,
PseudoElement::MozTreeCellText(..) => true,
PseudoElement::MozTreeCheckbox(..) => true,
- PseudoElement::MozTreeProgressmeter(..) => true,
PseudoElement::MozTreeDropFeedback(..) => true,
PseudoElement::MozSVGMarkerAnonChild => true,
PseudoElement::MozSVGOuterSVGAnonChild => true,
@@ -560,7 +554,6 @@ impl PseudoElement {
PseudoElement::MozTreeImage(..) => true,
PseudoElement::MozTreeCellText(..) => true,
PseudoElement::MozTreeCheckbox(..) => true,
- PseudoElement::MozTreeProgressmeter(..) => true,
PseudoElement::MozTreeDropFeedback(..) => true,
_ => false,
}
@@ -724,8 +717,6 @@ impl PseudoElement {
0,
PseudoElement::MozTreeCheckbox(..) =>
0,
- PseudoElement::MozTreeProgressmeter(..) =>
- 0,
PseudoElement::MozTreeDropFeedback(..) =>
0,
PseudoElement::MozSVGMarkerAnonChild =>
@@ -905,7 +896,6 @@ impl PseudoElement {
PseudoElement::MozTreeImage(..) => CSSPseudoElementType::XULTree,
PseudoElement::MozTreeCellText(..) => CSSPseudoElementType::XULTree,
PseudoElement::MozTreeCheckbox(..) => CSSPseudoElementType::XULTree,
- PseudoElement::MozTreeProgressmeter(..) => CSSPseudoElementType::XULTree,
PseudoElement::MozTreeDropFeedback(..) => CSSPseudoElementType::XULTree,
PseudoElement::MozSVGMarkerAnonChild => CSSPseudoElementType_InheritingAnonBox,
PseudoElement::MozSVGOuterSVGAnonChild => CSSPseudoElementType_InheritingAnonBox,
@@ -933,7 +923,6 @@ impl PseudoElement {
PseudoElement::MozTreeImage(ref args) => Some(args),
PseudoElement::MozTreeCellText(ref args) => Some(args),
PseudoElement::MozTreeCheckbox(ref args) => Some(args),
- PseudoElement::MozTreeProgressmeter(ref args) => Some(args),
PseudoElement::MozTreeDropFeedback(ref args) => Some(args),
_ => None,
}
@@ -1153,7 +1142,6 @@ impl PseudoElement {
// We cannot generate PseudoElement::MozTreeImage(..) from just an atom.
// We cannot generate PseudoElement::MozTreeCellText(..) from just an atom.
// We cannot generate PseudoElement::MozTreeCheckbox(..) from just an atom.
- // We cannot generate PseudoElement::MozTreeProgressmeter(..) from just an atom.
// We cannot generate PseudoElement::MozTreeDropFeedback(..) from just an atom.
if atom == &atom!(":-moz-svg-marker-anon-child") {
return Some(PseudoElement::MozSVGMarkerAnonChild);
@@ -1309,7 +1297,6 @@ impl PseudoElement {
// We cannot generate PseudoElement::MozTreeImage(..) from just an atom.
// We cannot generate PseudoElement::MozTreeCellText(..) from just an atom.
// We cannot generate PseudoElement::MozTreeCheckbox(..) from just an atom.
- // We cannot generate PseudoElement::MozTreeProgressmeter(..) from just an atom.
// We cannot generate PseudoElement::MozTreeDropFeedback(..) from just an atom.
if atom == &atom!(":-moz-svg-marker-anon-child") {
return Some(PseudoElement::MozSVGMarkerAnonChild);
@@ -1359,9 +1346,6 @@ impl PseudoElement {
if atom == &atom!(":-moz-tree-checkbox") {
return Some(PseudoElement::MozTreeCheckbox(args));
}
- if atom == &atom!(":-moz-tree-progressmeter") {
- return Some(PseudoElement::MozTreeProgressmeter(args));
- }
if atom == &atom!(":-moz-tree-drop-feedback") {
return Some(PseudoElement::MozTreeDropFeedback(args));
}
@@ -1780,9 +1764,6 @@ impl PseudoElement {
if tree_part.eq_ignore_ascii_case("checkbox") {
return Some(PseudoElement::MozTreeCheckbox(args));
}
- if tree_part.eq_ignore_ascii_case("progressmeter") {
- return Some(PseudoElement::MozTreeProgressmeter(args));
- }
if tree_part.eq_ignore_ascii_case("drop-feedback") {
return Some(PseudoElement::MozTreeDropFeedback(args));
}
@@ -1871,7 +1852,6 @@ impl ToCss for PseudoElement {
PseudoElement::MozTreeImage(..) => dest.write_str(":-moz-tree-image")?,
PseudoElement::MozTreeCellText(..) => dest.write_str(":-moz-tree-cell-text")?,
PseudoElement::MozTreeCheckbox(..) => dest.write_str(":-moz-tree-checkbox")?,
- PseudoElement::MozTreeProgressmeter(..) => dest.write_str(":-moz-tree-progressmeter")?,
PseudoElement::MozTreeDropFeedback(..) => dest.write_str(":-moz-tree-drop-feedback")?,
PseudoElement::MozSVGMarkerAnonChild => dest.write_str(":-moz-svg-marker-anon-child")?,
PseudoElement::MozSVGOuterSVGAnonChild => dest.write_str(":-moz-svg-outer-svg-anon-child")?,
diff --git a/components/style/gecko/generated/structs.rs b/components/style/gecko/generated/structs.rs
index 70038a99621..6a5048a44a0 100644
--- a/components/style/gecko/generated/structs.rs
+++ b/components/style/gecko/generated/structs.rs
@@ -17,14 +17,1101 @@ pub type ServoComputedValueFlags = ::properties::computed_value_flags::ComputedV
pub type ServoRawOffsetArc<T> = ::servo_arc::RawOffsetArc<T>;
pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::properties::ComputedValues>;
-# [ allow ( non_snake_case , non_camel_case_types , non_upper_case_globals ) ] pub mod root { # [ repr ( C ) ] pub struct __BindgenUnionField < T > ( :: std :: marker :: PhantomData < T > ) ; impl < T > __BindgenUnionField < T > { # [ inline ] pub fn new ( ) -> Self { __BindgenUnionField ( :: std :: marker :: PhantomData ) } # [ inline ] pub unsafe fn as_ref ( & self ) -> & T { :: std :: mem :: transmute ( self ) } # [ inline ] pub unsafe fn as_mut ( & mut self ) -> & mut T { :: std :: mem :: transmute ( self ) } } impl < T > :: std :: default :: Default for __BindgenUnionField < T > { # [ inline ] fn default ( ) -> Self { Self :: new ( ) } } impl < T > :: std :: clone :: Clone for __BindgenUnionField < T > { # [ inline ] fn clone ( & self ) -> Self { Self :: new ( ) } } impl < T > :: std :: marker :: Copy for __BindgenUnionField < T > { } impl < T > :: std :: fmt :: Debug for __BindgenUnionField < T > { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter ) -> :: std :: fmt :: Result { fmt . write_str ( "__BindgenUnionField" ) } } impl < T > :: std :: hash :: Hash for __BindgenUnionField < T > { fn hash < H : :: std :: hash :: Hasher > ( & self , _state : & mut H ) { } } impl < T > :: std :: cmp :: PartialEq for __BindgenUnionField < T > { fn eq ( & self , _other : & __BindgenUnionField < T > ) -> bool { true } } impl < T > :: std :: cmp :: Eq for __BindgenUnionField < T > { } # [ allow ( unused_imports ) ] use self :: super :: root ; pub const NS_FONT_STYLE_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_STYLE_ITALIC : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_STYLE_OBLIQUE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_WEIGHT_NORMAL : :: std :: os :: raw :: c_uint = 400 ; pub const NS_FONT_WEIGHT_BOLD : :: std :: os :: raw :: c_uint = 700 ; pub const NS_FONT_WEIGHT_THIN : :: std :: os :: raw :: c_uint = 100 ; pub const NS_FONT_STRETCH_ULTRA_CONDENSED : :: std :: os :: raw :: c_int = -4 ; pub const NS_FONT_STRETCH_EXTRA_CONDENSED : :: std :: os :: raw :: c_int = -3 ; pub const NS_FONT_STRETCH_CONDENSED : :: std :: os :: raw :: c_int = -2 ; pub const NS_FONT_STRETCH_SEMI_CONDENSED : :: std :: os :: raw :: c_int = -1 ; pub const NS_FONT_STRETCH_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_STRETCH_SEMI_EXPANDED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_STRETCH_EXPANDED : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_STRETCH_EXTRA_EXPANDED : :: std :: os :: raw :: c_uint = 3 ; pub const NS_FONT_STRETCH_ULTRA_EXPANDED : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_SMOOTHING_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_SMOOTHING_GRAYSCALE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_KERNING_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_KERNING_NONE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_KERNING_NORMAL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_SYNTHESIS_WEIGHT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_SYNTHESIS_STYLE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_DISPLAY_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_DISPLAY_BLOCK : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_DISPLAY_SWAP : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_DISPLAY_FALLBACK : :: std :: os :: raw :: c_uint = 3 ; pub const NS_FONT_DISPLAY_OPTIONAL : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_VARIANT_ALTERNATES_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_ALTERNATES_HISTORICAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_ALTERNATES_STYLISTIC : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_ALTERNATES_STYLESET : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_FONT_VARIANT_ALTERNATES_SWASH : :: std :: os :: raw :: c_uint = 16 ; pub const NS_FONT_VARIANT_ALTERNATES_ORNAMENTS : :: std :: os :: raw :: c_uint = 32 ; pub const NS_FONT_VARIANT_ALTERNATES_ANNOTATION : :: std :: os :: raw :: c_uint = 64 ; pub const NS_FONT_VARIANT_ALTERNATES_COUNT : :: std :: os :: raw :: c_uint = 7 ; pub const NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK : :: std :: os :: raw :: c_uint = 126 ; pub const NS_FONT_VARIANT_CAPS_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_CAPS_SMALLCAPS : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_CAPS_ALLSMALL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_CAPS_PETITECAPS : :: std :: os :: raw :: c_uint = 3 ; pub const NS_FONT_VARIANT_CAPS_ALLPETITE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_VARIANT_CAPS_TITLING : :: std :: os :: raw :: c_uint = 5 ; pub const NS_FONT_VARIANT_CAPS_UNICASE : :: std :: os :: raw :: c_uint = 6 ; pub const NS_FONT_VARIANT_EAST_ASIAN_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_EAST_ASIAN_JIS78 : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_EAST_ASIAN_JIS83 : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_EAST_ASIAN_JIS90 : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_VARIANT_EAST_ASIAN_JIS04 : :: std :: os :: raw :: c_uint = 8 ; pub const NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED : :: std :: os :: raw :: c_uint = 16 ; pub const NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL : :: std :: os :: raw :: c_uint = 32 ; pub const NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH : :: std :: os :: raw :: c_uint = 64 ; pub const NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH : :: std :: os :: raw :: c_uint = 128 ; pub const NS_FONT_VARIANT_EAST_ASIAN_RUBY : :: std :: os :: raw :: c_uint = 256 ; pub const NS_FONT_VARIANT_EAST_ASIAN_COUNT : :: std :: os :: raw :: c_uint = 9 ; pub const NS_FONT_VARIANT_EAST_ASIAN_VARIANT_MASK : :: std :: os :: raw :: c_uint = 63 ; pub const NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK : :: std :: os :: raw :: c_uint = 192 ; pub const NS_FONT_VARIANT_LIGATURES_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_LIGATURES_NONE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_LIGATURES_COMMON : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_LIGATURES_NO_COMMON : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_VARIANT_LIGATURES_DISCRETIONARY : :: std :: os :: raw :: c_uint = 8 ; pub const NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY : :: std :: os :: raw :: c_uint = 16 ; pub const NS_FONT_VARIANT_LIGATURES_HISTORICAL : :: std :: os :: raw :: c_uint = 32 ; pub const NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL : :: std :: os :: raw :: c_uint = 64 ; pub const NS_FONT_VARIANT_LIGATURES_CONTEXTUAL : :: std :: os :: raw :: c_uint = 128 ; pub const NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL : :: std :: os :: raw :: c_uint = 256 ; pub const NS_FONT_VARIANT_LIGATURES_COUNT : :: std :: os :: raw :: c_uint = 9 ; pub const NS_FONT_VARIANT_LIGATURES_COMMON_MASK : :: std :: os :: raw :: c_uint = 6 ; pub const NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK : :: std :: os :: raw :: c_uint = 24 ; pub const NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK : :: std :: os :: raw :: c_uint = 96 ; pub const NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK : :: std :: os :: raw :: c_uint = 384 ; pub const NS_FONT_VARIANT_NUMERIC_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_NUMERIC_LINING : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_NUMERIC_OLDSTYLE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_NUMERIC_PROPORTIONAL : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_VARIANT_NUMERIC_TABULAR : :: std :: os :: raw :: c_uint = 8 ; pub const NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS : :: std :: os :: raw :: c_uint = 16 ; pub const NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS : :: std :: os :: raw :: c_uint = 32 ; pub const NS_FONT_VARIANT_NUMERIC_SLASHZERO : :: std :: os :: raw :: c_uint = 64 ; pub const NS_FONT_VARIANT_NUMERIC_ORDINAL : :: std :: os :: raw :: c_uint = 128 ; pub const NS_FONT_VARIANT_NUMERIC_COUNT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_FONT_VARIANT_NUMERIC_FIGURE_MASK : :: std :: os :: raw :: c_uint = 3 ; pub const NS_FONT_VARIANT_NUMERIC_SPACING_MASK : :: std :: os :: raw :: c_uint = 12 ; pub const NS_FONT_VARIANT_NUMERIC_FRACTION_MASK : :: std :: os :: raw :: c_uint = 48 ; pub const NS_FONT_VARIANT_POSITION_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_POSITION_SUPER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_POSITION_SUB : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_WIDTH_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_WIDTH_FULL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_FONT_VARIANT_WIDTH_HALF : :: std :: os :: raw :: c_uint = 2 ; pub const NS_FONT_VARIANT_WIDTH_THIRD : :: std :: os :: raw :: c_uint = 3 ; pub const NS_FONT_VARIANT_WIDTH_QUARTER : :: std :: os :: raw :: c_uint = 4 ; pub const NS_FONT_SUBSCRIPT_OFFSET_RATIO : f64 = 0.2 ; pub const NS_FONT_SUPERSCRIPT_OFFSET_RATIO : f64 = 0.34 ; pub const NS_FONT_SUB_SUPER_SIZE_RATIO_SMALL : f64 = 0.82 ; pub const NS_FONT_SUB_SUPER_SIZE_RATIO_LARGE : f64 = 0.667 ; pub const NS_FONT_SUB_SUPER_SMALL_SIZE : f64 = 20. ; pub const NS_FONT_SUB_SUPER_LARGE_SIZE : f64 = 45. ; pub const NS_FONT_VARIANT_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_FONT_VARIANT_SMALL_CAPS : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COLOR_INHERIT_FROM_BODY : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_WILL_CHANGE_STACKING_CONTEXT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WILL_CHANGE_TRANSFORM : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_WILL_CHANGE_SCROLL : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_WILL_CHANGE_OPACITY : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_WILL_CHANGE_FIXPOS_CB : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_WILL_CHANGE_ABSPOS_CB : :: std :: os :: raw :: c_uint = 32 ; pub const NS_STYLE_ANIMATION_ITERATION_COUNT_INFINITE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_ANIMATION_PLAY_STATE_RUNNING : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_ANIMATION_PLAY_STATE_PAUSED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_IMAGELAYER_ATTACHMENT_SCROLL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_IMAGELAYER_ATTACHMENT_FIXED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_IMAGELAYER_ATTACHMENT_LOCAL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_IMAGELAYER_CLIP_MOZ_ALMOST_PADDING : :: std :: os :: raw :: c_uint = 127 ; pub const NS_STYLE_IMAGELAYER_POSITION_CENTER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_IMAGELAYER_POSITION_TOP : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_IMAGELAYER_POSITION_BOTTOM : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_IMAGELAYER_POSITION_LEFT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_IMAGELAYER_POSITION_RIGHT : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_IMAGELAYER_SIZE_CONTAIN : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_IMAGELAYER_SIZE_COVER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_MASK_MODE_ALPHA : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_MASK_MODE_LUMINANCE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_MASK_MODE_MATCH_SOURCE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_BG_INLINE_POLICY_EACH_BOX : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_BG_INLINE_POLICY_CONTINUOUS : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BG_INLINE_POLICY_BOUNDING_BOX : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_BORDER_COLLAPSE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_BORDER_SEPARATE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BORDER_WIDTH_THIN : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_BORDER_WIDTH_MEDIUM : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BORDER_WIDTH_THICK : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_BORDER_STYLE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_BORDER_STYLE_GROOVE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BORDER_STYLE_RIDGE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_BORDER_STYLE_DOTTED : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_BORDER_STYLE_DASHED : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_BORDER_STYLE_SOLID : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_BORDER_STYLE_DOUBLE : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_BORDER_STYLE_INSET : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_BORDER_STYLE_OUTSET : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_BORDER_STYLE_HIDDEN : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_BORDER_STYLE_AUTO : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_BORDER_IMAGE_SLICE_NOFILL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_BORDER_IMAGE_SLICE_FILL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CURSOR_AUTO : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CURSOR_CROSSHAIR : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_CURSOR_DEFAULT : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_CURSOR_POINTER : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_CURSOR_MOVE : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_CURSOR_E_RESIZE : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_CURSOR_NE_RESIZE : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_CURSOR_NW_RESIZE : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_CURSOR_N_RESIZE : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_CURSOR_SE_RESIZE : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_CURSOR_SW_RESIZE : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_CURSOR_S_RESIZE : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_CURSOR_W_RESIZE : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_CURSOR_TEXT : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_CURSOR_WAIT : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_CURSOR_HELP : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_CURSOR_COPY : :: std :: os :: raw :: c_uint = 17 ; pub const NS_STYLE_CURSOR_ALIAS : :: std :: os :: raw :: c_uint = 18 ; pub const NS_STYLE_CURSOR_CONTEXT_MENU : :: std :: os :: raw :: c_uint = 19 ; pub const NS_STYLE_CURSOR_CELL : :: std :: os :: raw :: c_uint = 20 ; pub const NS_STYLE_CURSOR_GRAB : :: std :: os :: raw :: c_uint = 21 ; pub const NS_STYLE_CURSOR_GRABBING : :: std :: os :: raw :: c_uint = 22 ; pub const NS_STYLE_CURSOR_SPINNING : :: std :: os :: raw :: c_uint = 23 ; pub const NS_STYLE_CURSOR_ZOOM_IN : :: std :: os :: raw :: c_uint = 24 ; pub const NS_STYLE_CURSOR_ZOOM_OUT : :: std :: os :: raw :: c_uint = 25 ; pub const NS_STYLE_CURSOR_NOT_ALLOWED : :: std :: os :: raw :: c_uint = 26 ; pub const NS_STYLE_CURSOR_COL_RESIZE : :: std :: os :: raw :: c_uint = 27 ; pub const NS_STYLE_CURSOR_ROW_RESIZE : :: std :: os :: raw :: c_uint = 28 ; pub const NS_STYLE_CURSOR_NO_DROP : :: std :: os :: raw :: c_uint = 29 ; pub const NS_STYLE_CURSOR_VERTICAL_TEXT : :: std :: os :: raw :: c_uint = 30 ; pub const NS_STYLE_CURSOR_ALL_SCROLL : :: std :: os :: raw :: c_uint = 31 ; pub const NS_STYLE_CURSOR_NESW_RESIZE : :: std :: os :: raw :: c_uint = 32 ; pub const NS_STYLE_CURSOR_NWSE_RESIZE : :: std :: os :: raw :: c_uint = 33 ; pub const NS_STYLE_CURSOR_NS_RESIZE : :: std :: os :: raw :: c_uint = 34 ; pub const NS_STYLE_CURSOR_EW_RESIZE : :: std :: os :: raw :: c_uint = 35 ; pub const NS_STYLE_CURSOR_NONE : :: std :: os :: raw :: c_uint = 36 ; pub const NS_STYLE_DIRECTION_LTR : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_DIRECTION_RTL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WRITING_MODE_HORIZONTAL_TB : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_WRITING_MODE_VERTICAL_RL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WRITING_MODE_VERTICAL_LR : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_WRITING_MODE_SIDEWAYS_MASK : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_WRITING_MODE_SIDEWAYS_RL : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_WRITING_MODE_SIDEWAYS_LR : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_CONTAIN_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_CONTAIN_STRICT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CONTAIN_LAYOUT : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_CONTAIN_STYLE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_CONTAIN_PAINT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_CONTAIN_ALL_BITS : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_ALIGN_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_ALIGN_NORMAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_ALIGN_START : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_ALIGN_END : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_ALIGN_FLEX_START : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_ALIGN_FLEX_END : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_ALIGN_CENTER : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_ALIGN_LEFT : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_ALIGN_RIGHT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_ALIGN_BASELINE : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_ALIGN_LAST_BASELINE : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_ALIGN_STRETCH : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_ALIGN_SELF_START : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_ALIGN_SELF_END : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_ALIGN_SPACE_BETWEEN : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_ALIGN_SPACE_AROUND : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_ALIGN_SPACE_EVENLY : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_ALIGN_LEGACY : :: std :: os :: raw :: c_uint = 32 ; pub const NS_STYLE_ALIGN_SAFE : :: std :: os :: raw :: c_uint = 64 ; pub const NS_STYLE_ALIGN_UNSAFE : :: std :: os :: raw :: c_uint = 128 ; pub const NS_STYLE_ALIGN_FLAG_BITS : :: std :: os :: raw :: c_uint = 224 ; pub const NS_STYLE_ALIGN_ALL_BITS : :: std :: os :: raw :: c_uint = 255 ; pub const NS_STYLE_ALIGN_ALL_SHIFT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_JUSTIFY_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_JUSTIFY_NORMAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_JUSTIFY_START : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_JUSTIFY_END : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_JUSTIFY_FLEX_START : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_JUSTIFY_FLEX_END : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_JUSTIFY_CENTER : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_JUSTIFY_LEFT : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_JUSTIFY_RIGHT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_JUSTIFY_BASELINE : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_JUSTIFY_LAST_BASELINE : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_JUSTIFY_STRETCH : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_JUSTIFY_SELF_START : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_JUSTIFY_SELF_END : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_JUSTIFY_SPACE_BETWEEN : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_JUSTIFY_SPACE_AROUND : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_JUSTIFY_SPACE_EVENLY : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_JUSTIFY_LEGACY : :: std :: os :: raw :: c_uint = 32 ; pub const NS_STYLE_JUSTIFY_SAFE : :: std :: os :: raw :: c_uint = 64 ; pub const NS_STYLE_JUSTIFY_UNSAFE : :: std :: os :: raw :: c_uint = 128 ; pub const NS_STYLE_JUSTIFY_FLAG_BITS : :: std :: os :: raw :: c_uint = 224 ; pub const NS_STYLE_JUSTIFY_ALL_BITS : :: std :: os :: raw :: c_uint = 255 ; pub const NS_STYLE_JUSTIFY_ALL_SHIFT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_FLEX_DIRECTION_ROW : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FLEX_DIRECTION_ROW_REVERSE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FLEX_DIRECTION_COLUMN : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FLEX_DIRECTION_COLUMN_REVERSE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_FLEX_WRAP_NOWRAP : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FLEX_WRAP_WRAP : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FLEX_WRAP_WRAP_REVERSE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_ORDER_INITIAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_JUSTIFY_CONTENT_FLEX_START : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_JUSTIFY_CONTENT_FLEX_END : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_JUSTIFY_CONTENT_CENTER : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_JUSTIFY_CONTENT_SPACE_BETWEEN : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_JUSTIFY_CONTENT_SPACE_AROUND : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_FILTER_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FILTER_URL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FILTER_BLUR : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FILTER_BRIGHTNESS : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_FILTER_CONTRAST : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_FILTER_GRAYSCALE : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_FILTER_INVERT : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_FILTER_OPACITY : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_FILTER_SATURATE : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_FILTER_SEPIA : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_FILTER_HUE_ROTATE : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_FILTER_DROP_SHADOW : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_FONT_STYLE_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FONT_STYLE_ITALIC : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FONT_STYLE_OBLIQUE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FONT_WEIGHT_NORMAL : :: std :: os :: raw :: c_uint = 400 ; pub const NS_STYLE_FONT_WEIGHT_BOLD : :: std :: os :: raw :: c_uint = 700 ; pub const NS_STYLE_FONT_WEIGHT_BOLDER : :: std :: os :: raw :: c_int = -1 ; pub const NS_STYLE_FONT_WEIGHT_LIGHTER : :: std :: os :: raw :: c_int = -2 ; pub const NS_STYLE_FONT_SIZE_XXSMALL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FONT_SIZE_XSMALL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FONT_SIZE_SMALL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FONT_SIZE_MEDIUM : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_FONT_SIZE_LARGE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_FONT_SIZE_XLARGE : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_FONT_SIZE_XXLARGE : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_FONT_SIZE_XXXLARGE : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_FONT_SIZE_LARGER : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_FONT_SIZE_SMALLER : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_FONT_SIZE_NO_KEYWORD : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_FONT_STRETCH_ULTRA_CONDENSED : :: std :: os :: raw :: c_int = -4 ; pub const NS_STYLE_FONT_STRETCH_EXTRA_CONDENSED : :: std :: os :: raw :: c_int = -3 ; pub const NS_STYLE_FONT_STRETCH_CONDENSED : :: std :: os :: raw :: c_int = -2 ; pub const NS_STYLE_FONT_STRETCH_SEMI_CONDENSED : :: std :: os :: raw :: c_int = -1 ; pub const NS_STYLE_FONT_STRETCH_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FONT_STRETCH_SEMI_EXPANDED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FONT_STRETCH_EXPANDED : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FONT_STRETCH_EXTRA_EXPANDED : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_FONT_STRETCH_ULTRA_EXPANDED : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_FONT_CAPTION : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FONT_ICON : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FONT_MENU : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_FONT_MESSAGE_BOX : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_FONT_SMALL_CAPTION : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_FONT_STATUS_BAR : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_FONT_WINDOW : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_FONT_DOCUMENT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_FONT_WORKSPACE : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_FONT_DESKTOP : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_FONT_INFO : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_FONT_DIALOG : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_FONT_BUTTON : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_FONT_PULL_DOWN_MENU : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_FONT_LIST : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_FONT_FIELD : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_GRID_AUTO_FLOW_ROW : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_GRID_AUTO_FLOW_COLUMN : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_GRID_AUTO_FLOW_DENSE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_GRID_TEMPLATE_SUBGRID : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_GRID_REPEAT_AUTO_FILL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_GRID_REPEAT_AUTO_FIT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_MATHML_DEFAULT_SCRIPT_SIZE_MULTIPLIER : f64 = 0.71 ; pub const NS_MATHML_DEFAULT_SCRIPT_MIN_SIZE_PT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_MATHML_MATHVARIANT_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_MATHML_MATHVARIANT_NORMAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_MATHML_MATHVARIANT_BOLD : :: std :: os :: raw :: c_uint = 2 ; pub const NS_MATHML_MATHVARIANT_ITALIC : :: std :: os :: raw :: c_uint = 3 ; pub const NS_MATHML_MATHVARIANT_BOLD_ITALIC : :: std :: os :: raw :: c_uint = 4 ; pub const NS_MATHML_MATHVARIANT_SCRIPT : :: std :: os :: raw :: c_uint = 5 ; pub const NS_MATHML_MATHVARIANT_BOLD_SCRIPT : :: std :: os :: raw :: c_uint = 6 ; pub const NS_MATHML_MATHVARIANT_FRAKTUR : :: std :: os :: raw :: c_uint = 7 ; pub const NS_MATHML_MATHVARIANT_DOUBLE_STRUCK : :: std :: os :: raw :: c_uint = 8 ; pub const NS_MATHML_MATHVARIANT_BOLD_FRAKTUR : :: std :: os :: raw :: c_uint = 9 ; pub const NS_MATHML_MATHVARIANT_SANS_SERIF : :: std :: os :: raw :: c_uint = 10 ; pub const NS_MATHML_MATHVARIANT_BOLD_SANS_SERIF : :: std :: os :: raw :: c_uint = 11 ; pub const NS_MATHML_MATHVARIANT_SANS_SERIF_ITALIC : :: std :: os :: raw :: c_uint = 12 ; pub const NS_MATHML_MATHVARIANT_SANS_SERIF_BOLD_ITALIC : :: std :: os :: raw :: c_uint = 13 ; pub const NS_MATHML_MATHVARIANT_MONOSPACE : :: std :: os :: raw :: c_uint = 14 ; pub const NS_MATHML_MATHVARIANT_INITIAL : :: std :: os :: raw :: c_uint = 15 ; pub const NS_MATHML_MATHVARIANT_TAILED : :: std :: os :: raw :: c_uint = 16 ; pub const NS_MATHML_MATHVARIANT_LOOPED : :: std :: os :: raw :: c_uint = 17 ; pub const NS_MATHML_MATHVARIANT_STRETCHED : :: std :: os :: raw :: c_uint = 18 ; pub const NS_MATHML_DISPLAYSTYLE_INLINE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_MATHML_DISPLAYSTYLE_BLOCK : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WIDTH_MAX_CONTENT : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_WIDTH_MIN_CONTENT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WIDTH_FIT_CONTENT : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_WIDTH_AVAILABLE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_POSITION_STATIC : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_POSITION_RELATIVE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_POSITION_ABSOLUTE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_POSITION_FIXED : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_POSITION_STICKY : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_CLIP_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_CLIP_RECT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CLIP_TYPE_MASK : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_CLIP_LEFT_AUTO : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_CLIP_TOP_AUTO : :: std :: os :: raw :: c_uint = 32 ; pub const NS_STYLE_CLIP_RIGHT_AUTO : :: std :: os :: raw :: c_uint = 64 ; pub const NS_STYLE_CLIP_BOTTOM_AUTO : :: std :: os :: raw :: c_uint = 128 ; pub const NS_STYLE_FRAME_YES : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_FRAME_NO : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_FRAME_0 : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_FRAME_1 : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_FRAME_ON : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_FRAME_OFF : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_FRAME_AUTO : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_FRAME_SCROLL : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_FRAME_NOSCROLL : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_OVERFLOW_VISIBLE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_OVERFLOW_HIDDEN : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_OVERFLOW_SCROLL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_OVERFLOW_AUTO : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_OVERFLOW_CLIP : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_OVERFLOW_SCROLLBARS_HORIZONTAL : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_OVERFLOW_SCROLLBARS_VERTICAL : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_LIST_STYLE_CUSTOM : :: std :: os :: raw :: c_int = -1 ; pub const NS_STYLE_LIST_STYLE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_LIST_STYLE_DECIMAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_LIST_STYLE_DISC : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_LIST_STYLE_CIRCLE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_LIST_STYLE_SQUARE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_LIST_STYLE_DISCLOSURE_CLOSED : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_LIST_STYLE_DISCLOSURE_OPEN : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_LIST_STYLE_HEBREW : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_LIST_STYLE_JAPANESE_INFORMAL : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_LIST_STYLE_JAPANESE_FORMAL : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_LIST_STYLE_KOREAN_HANGUL_FORMAL : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_LIST_STYLE_KOREAN_HANJA_INFORMAL : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_LIST_STYLE_KOREAN_HANJA_FORMAL : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_LIST_STYLE_SIMP_CHINESE_INFORMAL : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_LIST_STYLE_SIMP_CHINESE_FORMAL : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_LIST_STYLE_TRAD_CHINESE_INFORMAL : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_LIST_STYLE_TRAD_CHINESE_FORMAL : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_LIST_STYLE_ETHIOPIC_NUMERIC : :: std :: os :: raw :: c_uint = 17 ; pub const NS_STYLE_LIST_STYLE_LOWER_ROMAN : :: std :: os :: raw :: c_uint = 100 ; pub const NS_STYLE_LIST_STYLE_UPPER_ROMAN : :: std :: os :: raw :: c_uint = 101 ; pub const NS_STYLE_LIST_STYLE_LOWER_ALPHA : :: std :: os :: raw :: c_uint = 102 ; pub const NS_STYLE_LIST_STYLE_UPPER_ALPHA : :: std :: os :: raw :: c_uint = 103 ; pub const NS_STYLE_LIST_STYLE_POSITION_INSIDE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_LIST_STYLE_POSITION_OUTSIDE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_MARGIN_SIZE_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_POINTER_EVENTS_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_POINTER_EVENTS_VISIBLEPAINTED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_POINTER_EVENTS_VISIBLEFILL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_POINTER_EVENTS_VISIBLESTROKE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_POINTER_EVENTS_VISIBLE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_POINTER_EVENTS_PAINTED : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_POINTER_EVENTS_FILL : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_POINTER_EVENTS_STROKE : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_POINTER_EVENTS_ALL : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_POINTER_EVENTS_AUTO : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_IMAGE_ORIENTATION_FLIP : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_IMAGE_ORIENTATION_FROM_IMAGE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_ISOLATION_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_ISOLATION_ISOLATE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_OBJECT_FIT_FILL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_OBJECT_FIT_CONTAIN : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_OBJECT_FIT_COVER : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_OBJECT_FIT_NONE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_OBJECT_FIT_SCALE_DOWN : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_RESIZE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_RESIZE_BOTH : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_RESIZE_HORIZONTAL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_RESIZE_VERTICAL : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TEXT_ALIGN_START : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_ALIGN_LEFT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_ALIGN_RIGHT : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_ALIGN_CENTER : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TEXT_ALIGN_JUSTIFY : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TEXT_ALIGN_CHAR : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_TEXT_ALIGN_END : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_TEXT_ALIGN_AUTO : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_TEXT_ALIGN_MOZ_CENTER : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TEXT_ALIGN_MOZ_RIGHT : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_TEXT_ALIGN_MOZ_LEFT : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_TEXT_ALIGN_MOZ_CENTER_OR_INHERIT : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_TEXT_ALIGN_UNSAFE : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_TEXT_ALIGN_MATCH_PARENT : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_TEXT_DECORATION_LINE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_DECORATION_LINE_OVERLINE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TEXT_DECORATION_LINE_BLINK : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_TEXT_DECORATION_LINE_LINES_MASK : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_DOTTED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_DASHED : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_SOLID : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_WAVY : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_TEXT_DECORATION_STYLE_MAX : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_TEXT_OVERFLOW_CLIP : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_OVERFLOW_ELLIPSIS : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_OVERFLOW_STRING : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_TRANSFORM_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_TRANSFORM_CAPITALIZE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_TRANSFORM_LOWERCASE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_TRANSFORM_UPPERCASE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TEXT_TRANSFORM_FULL_WIDTH : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TOUCH_ACTION_NONE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TOUCH_ACTION_AUTO : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TOUCH_ACTION_PAN_X : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TOUCH_ACTION_PAN_Y : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TOUCH_ACTION_MANIPULATION : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_TOP_LAYER_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TOP_LAYER_TOP : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_LINEAR : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_OUT : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_START : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_END : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_VERTICAL_ALIGN_BASELINE : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_VERTICAL_ALIGN_SUB : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_VERTICAL_ALIGN_SUPER : :: std :: os :: raw :: c_uint = 16 ; pub const NS_STYLE_VERTICAL_ALIGN_TOP : :: std :: os :: raw :: c_uint = 17 ; pub const NS_STYLE_VERTICAL_ALIGN_TEXT_TOP : :: std :: os :: raw :: c_uint = 18 ; pub const NS_STYLE_VERTICAL_ALIGN_MIDDLE : :: std :: os :: raw :: c_uint = 19 ; pub const NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM : :: std :: os :: raw :: c_uint = 20 ; pub const NS_STYLE_VERTICAL_ALIGN_BOTTOM : :: std :: os :: raw :: c_uint = 21 ; pub const NS_STYLE_VERTICAL_ALIGN_MIDDLE_WITH_BASELINE : :: std :: os :: raw :: c_uint = 22 ; pub const NS_STYLE_VISIBILITY_HIDDEN : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_VISIBILITY_VISIBLE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_VISIBILITY_COLLAPSE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TABSIZE_INITIAL : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_WORDBREAK_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_WORDBREAK_BREAK_ALL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WORDBREAK_KEEP_ALL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_OVERFLOWWRAP_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_OVERFLOWWRAP_BREAK_WORD : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_RUBY_ALIGN_START : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_RUBY_ALIGN_CENTER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_RUBY_ALIGN_SPACE_BETWEEN : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_RUBY_ALIGN_SPACE_AROUND : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_RUBY_POSITION_OVER : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_RUBY_POSITION_UNDER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_RUBY_POSITION_INTER_CHARACTER : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_SIZE_ADJUST_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_SIZE_ADJUST_AUTO : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_ORIENTATION_MIXED : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_ORIENTATION_UPRIGHT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_ORIENTATION_SIDEWAYS : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_ALL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_2 : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_3 : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_4 : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_UNICODE_BIDI_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_UNICODE_BIDI_EMBED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_UNICODE_BIDI_ISOLATE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_UNICODE_BIDI_BIDI_OVERRIDE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_UNICODE_BIDI_ISOLATE_OVERRIDE : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_UNICODE_BIDI_PLAINTEXT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TABLE_LAYOUT_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TABLE_LAYOUT_FIXED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TABLE_EMPTY_CELLS_HIDE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TABLE_EMPTY_CELLS_SHOW : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CAPTION_SIDE_TOP : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_CAPTION_SIDE_RIGHT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CAPTION_SIDE_BOTTOM : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_CAPTION_SIDE_LEFT : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_CELL_SCOPE_ROW : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_CELL_SCOPE_COL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CELL_SCOPE_ROWGROUP : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_CELL_SCOPE_COLGROUP : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_PAGE_MARKS_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_PAGE_MARKS_CROP : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_PAGE_MARKS_REGISTER : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_PAGE_SIZE_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_PAGE_SIZE_PORTRAIT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_PAGE_SIZE_LANDSCAPE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_PAGE_BREAK_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_PAGE_BREAK_ALWAYS : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_PAGE_BREAK_AVOID : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_PAGE_BREAK_LEFT : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_PAGE_BREAK_RIGHT : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_COLUMN_COUNT_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COLUMN_COUNT_UNLIMITED : :: std :: os :: raw :: c_int = -1 ; pub const NS_STYLE_COLUMN_FILL_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COLUMN_FILL_BALANCE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COLUMN_SPAN_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COLUMN_SPAN_ALL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_IME_MODE_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_IME_MODE_NORMAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_IME_MODE_ACTIVE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_IME_MODE_DISABLED : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_IME_MODE_INACTIVE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_GRADIENT_SHAPE_LINEAR : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_GRADIENT_SHAPE_ELLIPTICAL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_GRADIENT_SHAPE_CIRCULAR : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_GRADIENT_SIZE_EXPLICIT_SIZE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_CONTEXT_PROPERTY_FILL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CONTEXT_PROPERTY_STROKE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_CONTEXT_PROPERTY_FILL_OPACITY : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_CONTEXT_PROPERTY_STROKE_OPACITY : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_WINDOW_SHADOW_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_WINDOW_SHADOW_DEFAULT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_WINDOW_SHADOW_MENU : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_WINDOW_SHADOW_TOOLTIP : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_WINDOW_SHADOW_SHEET : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_DOMINANT_BASELINE_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_DOMINANT_BASELINE_NO_CHANGE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_DOMINANT_BASELINE_RESET_SIZE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_DOMINANT_BASELINE_IDEOGRAPHIC : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_DOMINANT_BASELINE_ALPHABETIC : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_DOMINANT_BASELINE_HANGING : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_DOMINANT_BASELINE_MATHEMATICAL : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_DOMINANT_BASELINE_CENTRAL : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_DOMINANT_BASELINE_MIDDLE : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_DOMINANT_BASELINE_TEXT_AFTER_EDGE : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_DOMINANT_BASELINE_TEXT_BEFORE_EDGE : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_IMAGE_RENDERING_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_IMAGE_RENDERING_OPTIMIZESPEED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_IMAGE_RENDERING_OPTIMIZEQUALITY : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_IMAGE_RENDERING_CRISPEDGES : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_MASK_TYPE_LUMINANCE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_MASK_TYPE_ALPHA : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_PAINT_ORDER_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_PAINT_ORDER_FILL : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_PAINT_ORDER_STROKE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_PAINT_ORDER_MARKERS : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_PAINT_ORDER_LAST_VALUE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_PAINT_ORDER_BITWIDTH : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_SHAPE_RENDERING_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_SHAPE_RENDERING_OPTIMIZESPEED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_SHAPE_RENDERING_CRISPEDGES : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_SHAPE_RENDERING_GEOMETRICPRECISION : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_STROKE_LINECAP_BUTT : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_STROKE_LINECAP_ROUND : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_STROKE_LINECAP_SQUARE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_STROKE_LINEJOIN_MITER : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_STROKE_LINEJOIN_ROUND : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_STROKE_LINEJOIN_BEVEL : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_STROKE_PROP_CONTEXT_VALUE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_ANCHOR_START : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_ANCHOR_MIDDLE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_ANCHOR_END : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_EMPHASIS_POSITION_OVER : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_EMPHASIS_POSITION_UNDER : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_EMPHASIS_POSITION_LEFT : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TEXT_EMPHASIS_POSITION_RIGHT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TEXT_EMPHASIS_POSITION_DEFAULT : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_TEXT_EMPHASIS_POSITION_DEFAULT_ZH : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_FILL_MASK : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_FILLED : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_OPEN : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_SHAPE_MASK : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_DOT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_CIRCLE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_TRIANGLE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_SESAME : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_TEXT_EMPHASIS_STYLE_STRING : :: std :: os :: raw :: c_uint = 255 ; pub const NS_STYLE_TEXT_RENDERING_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TEXT_RENDERING_OPTIMIZESPEED : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_TEXT_RENDERING_OPTIMIZELEGIBILITY : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_TEXT_RENDERING_GEOMETRICPRECISION : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_COLOR_ADJUST_ECONOMY : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COLOR_ADJUST_EXACT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COLOR_INTERPOLATION_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COLOR_INTERPOLATION_SRGB : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COLOR_INTERPOLATION_LINEARRGB : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_VECTOR_EFFECT_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_VECTOR_EFFECT_NON_SCALING_STROKE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BACKFACE_VISIBILITY_VISIBLE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BACKFACE_VISIBILITY_HIDDEN : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TRANSFORM_STYLE_FLAT : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_CONTEXT_FILL_OPACITY : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_CONTEXT_STROKE_OPACITY : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BLEND_NORMAL : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_BLEND_MULTIPLY : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_BLEND_SCREEN : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_BLEND_OVERLAY : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_BLEND_DARKEN : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_BLEND_LIGHTEN : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_BLEND_COLOR_DODGE : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_BLEND_COLOR_BURN : :: std :: os :: raw :: c_uint = 7 ; pub const NS_STYLE_BLEND_HARD_LIGHT : :: std :: os :: raw :: c_uint = 8 ; pub const NS_STYLE_BLEND_SOFT_LIGHT : :: std :: os :: raw :: c_uint = 9 ; pub const NS_STYLE_BLEND_DIFFERENCE : :: std :: os :: raw :: c_uint = 10 ; pub const NS_STYLE_BLEND_EXCLUSION : :: std :: os :: raw :: c_uint = 11 ; pub const NS_STYLE_BLEND_HUE : :: std :: os :: raw :: c_uint = 12 ; pub const NS_STYLE_BLEND_SATURATION : :: std :: os :: raw :: c_uint = 13 ; pub const NS_STYLE_BLEND_COLOR : :: std :: os :: raw :: c_uint = 14 ; pub const NS_STYLE_BLEND_LUMINOSITY : :: std :: os :: raw :: c_uint = 15 ; pub const NS_STYLE_MASK_COMPOSITE_ADD : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_MASK_COMPOSITE_SUBTRACT : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_MASK_COMPOSITE_INTERSECT : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_MASK_COMPOSITE_EXCLUDE : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_CONTROL_CHARACTER_VISIBILITY_HIDDEN : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_CONTROL_CHARACTER_VISIBILITY_VISIBLE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COUNTER_SYSTEM_CYCLIC : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COUNTER_SYSTEM_NUMERIC : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COUNTER_SYSTEM_ALPHABETIC : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_COUNTER_SYSTEM_SYMBOLIC : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_COUNTER_SYSTEM_ADDITIVE : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_COUNTER_SYSTEM_FIXED : :: std :: os :: raw :: c_uint = 5 ; pub const NS_STYLE_COUNTER_SYSTEM_EXTENDS : :: std :: os :: raw :: c_uint = 6 ; pub const NS_STYLE_COUNTER_RANGE_INFINITE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COUNTER_SPEAKAS_BULLETS : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_COUNTER_SPEAKAS_NUMBERS : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_COUNTER_SPEAKAS_WORDS : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_COUNTER_SPEAKAS_SPELL_OUT : :: std :: os :: raw :: c_uint = 3 ; pub const NS_STYLE_COUNTER_SPEAKAS_OTHER : :: std :: os :: raw :: c_uint = 255 ; pub const NS_STYLE_SCROLL_BEHAVIOR_AUTO : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_SCROLL_BEHAVIOR_SMOOTH : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_SCROLL_SNAP_TYPE_NONE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_SCROLL_SNAP_TYPE_MANDATORY : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_SCROLL_SNAP_TYPE_PROXIMITY : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_ORIENTATION_PORTRAIT : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_ORIENTATION_LANDSCAPE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_SCAN_PROGRESSIVE : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_SCAN_INTERLACE : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_DISPLAY_MODE_BROWSER : :: std :: os :: raw :: c_uint = 0 ; pub const NS_STYLE_DISPLAY_MODE_MINIMAL_UI : :: std :: os :: raw :: c_uint = 1 ; pub const NS_STYLE_DISPLAY_MODE_STANDALONE : :: std :: os :: raw :: c_uint = 2 ; pub const NS_STYLE_DISPLAY_MODE_FULLSCREEN : :: std :: os :: raw :: c_uint = 3 ; pub const CSS_PSEUDO_ELEMENT_IS_CSS2 : :: std :: os :: raw :: c_uint = 1 ; pub const CSS_PSEUDO_ELEMENT_CONTAINS_ELEMENTS : :: std :: os :: raw :: c_uint = 2 ; pub const CSS_PSEUDO_ELEMENT_SUPPORTS_STYLE_ATTRIBUTE : :: std :: os :: raw :: c_uint = 4 ; pub const CSS_PSEUDO_ELEMENT_SUPPORTS_USER_ACTION_STATE : :: std :: os :: raw :: c_uint = 8 ; pub const CSS_PSEUDO_ELEMENT_UA_SHEET_ONLY : :: std :: os :: raw :: c_uint = 16 ; pub const CSS_PSEUDO_ELEMENT_IS_JS_CREATED_NAC : :: std :: os :: raw :: c_uint = 32 ; pub const CSS_PSEUDO_ELEMENT_IS_FLEX_OR_GRID_ITEM : :: std :: os :: raw :: c_uint = 64 ; pub const kNameSpaceID_Unknown : :: std :: os :: raw :: c_int = -1 ; pub const kNameSpaceID_XMLNS : :: std :: os :: raw :: c_uint = 1 ; pub const kNameSpaceID_XML : :: std :: os :: raw :: c_uint = 2 ; pub const kNameSpaceID_XHTML : :: std :: os :: raw :: c_uint = 3 ; pub const kNameSpaceID_XLink : :: std :: os :: raw :: c_uint = 4 ; pub const kNameSpaceID_XSLT : :: std :: os :: raw :: c_uint = 5 ; pub const kNameSpaceID_XBL : :: std :: os :: raw :: c_uint = 6 ; pub const kNameSpaceID_MathML : :: std :: os :: raw :: c_uint = 7 ; pub const kNameSpaceID_RDF : :: std :: os :: raw :: c_uint = 8 ; pub const kNameSpaceID_XUL : :: std :: os :: raw :: c_uint = 9 ; pub const kNameSpaceID_SVG : :: std :: os :: raw :: c_uint = 10 ; pub const kNameSpaceID_disabled_MathML : :: std :: os :: raw :: c_uint = 11 ; pub const kNameSpaceID_disabled_SVG : :: std :: os :: raw :: c_uint = 12 ; pub const kNameSpaceID_LastBuiltin : :: std :: os :: raw :: c_uint = 12 ; pub const kNameSpaceID_Wildcard : :: std :: os :: raw :: c_int = -2147483648 ; pub const NS_AUTHOR_SPECIFIED_BACKGROUND : :: std :: os :: raw :: c_uint = 1 ; pub const NS_AUTHOR_SPECIFIED_BORDER : :: std :: os :: raw :: c_uint = 2 ; pub const NS_AUTHOR_SPECIFIED_PADDING : :: std :: os :: raw :: c_uint = 4 ; pub const NS_STYLE_INHERIT_MASK : :: std :: os :: raw :: c_uint = 16777215 ; pub const NS_STYLE_HAS_TEXT_DECORATION_LINES : :: std :: os :: raw :: c_uint = 16777216 ; pub const NS_STYLE_HAS_PSEUDO_ELEMENT_DATA : :: std :: os :: raw :: c_uint = 33554432 ; pub const NS_STYLE_RELEVANT_LINK_VISITED : :: std :: os :: raw :: c_uint = 67108864 ; pub const NS_STYLE_IS_STYLE_IF_VISITED : :: std :: os :: raw :: c_uint = 134217728 ; pub const NS_STYLE_CHILD_USES_GRANDANCESTOR_STYLE : :: std :: os :: raw :: c_uint = 268435456 ; pub const NS_STYLE_IS_SHARED : :: std :: os :: raw :: c_uint = 536870912 ; pub const NS_STYLE_IS_GOING_AWAY : :: std :: os :: raw :: c_uint = 1073741824 ; pub const NS_STYLE_SUPPRESS_LINEBREAK : :: std :: os :: raw :: c_uint = 2147483648 ; pub const NS_STYLE_IN_DISPLAY_NONE_SUBTREE : :: std :: os :: raw :: c_ulonglong = 4294967296 ; pub const NS_STYLE_INELIGIBLE_FOR_SHARING : :: std :: os :: raw :: c_ulonglong = 8589934592 ; pub const NS_STYLE_HAS_CHILD_THAT_USES_RESET_STYLE : :: std :: os :: raw :: c_ulonglong = 17179869184 ; pub const NS_STYLE_IS_TEXT_COMBINED : :: std :: os :: raw :: c_ulonglong = 34359738368 ; pub const NS_STYLE_CONTEXT_IS_GECKO : :: std :: os :: raw :: c_ulonglong = 68719476736 ; pub const NS_STYLE_CONTEXT_TYPE_SHIFT : :: std :: os :: raw :: c_uint = 37 ; pub mod std { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nothrow_t { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nothrow_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nothrow_t > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( nothrow_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nothrow_t > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( nothrow_t ) ) ) ; } impl Clone for nothrow_t { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct pair < _T1 , _T2 > { pub first : _T1 , pub second : _T2 , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < _T1 > > , pub _phantom_1 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < _T2 > > , } pub type pair_first_type < _T1 > = _T1 ; pub type pair_second_type < _T2 > = _T2 ; pub type pair__PCCP = u8 ; pub type pair__PCCFP = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct input_iterator_tag { pub _address : u8 , } # [ test ] fn bindgen_test_layout_input_iterator_tag ( ) { assert_eq ! ( :: std :: mem :: size_of :: < input_iterator_tag > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( input_iterator_tag ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < input_iterator_tag > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( input_iterator_tag ) ) ) ; } impl Clone for input_iterator_tag { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct iterator { pub _address : u8 , } pub type iterator_iterator_category < _Category > = _Category ; pub type iterator_value_type < _Tp > = _Tp ; pub type iterator_difference_type < _Distance > = _Distance ; pub type iterator_pointer < _Pointer > = _Pointer ; pub type iterator_reference < _Reference > = _Reference ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct atomic { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct function { pub _address : u8 , } pub type _Base_bitset__WordT = :: std :: os :: raw :: c_ulong ; pub type bitset__Base = u8 ; pub type bitset__WordT = :: std :: os :: raw :: c_ulong ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct bitset_reference { pub _M_wp : * mut root :: std :: bitset__WordT , pub _M_bpos : usize , } } pub mod __gnu_cxx { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; } pub type __int8_t = :: std :: os :: raw :: c_schar ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __int16_t = :: std :: os :: raw :: c_short ; pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type __int32_t = :: std :: os :: raw :: c_int ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __int64_t = :: std :: os :: raw :: c_long ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; pub mod mozilla { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; pub type fallible_t = root :: std :: nothrow_t ; pub type IntegralConstant_ValueType < T > = T ; pub type IntegralConstant_Type = u8 ;
- /// Convenient aliases.
- pub type TrueType = u8 ; pub type FalseType = u8 ; pub mod detail { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; pub const StringDataFlags_TERMINATED : root :: mozilla :: detail :: StringDataFlags = 1 ; pub const StringDataFlags_VOIDED : root :: mozilla :: detail :: StringDataFlags = 2 ; pub const StringDataFlags_SHARED : root :: mozilla :: detail :: StringDataFlags = 4 ; pub const StringDataFlags_OWNED : root :: mozilla :: detail :: StringDataFlags = 8 ; pub const StringDataFlags_INLINE : root :: mozilla :: detail :: StringDataFlags = 16 ; pub const StringDataFlags_LITERAL : root :: mozilla :: detail :: StringDataFlags = 32 ; pub type StringDataFlags = u16 ; pub const StringClassFlags_INLINE : root :: mozilla :: detail :: StringClassFlags = 1 ; pub const StringClassFlags_NULL_TERMINATED : root :: mozilla :: detail :: StringClassFlags = 2 ; pub type StringClassFlags = u16 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTStringRepr < T > { pub mData : * mut root :: mozilla :: detail :: nsTStringRepr_char_type < T > , pub mLength : root :: mozilla :: detail :: nsTStringRepr_size_type , pub mDataFlags : root :: mozilla :: detail :: nsTStringRepr_DataFlags , pub mClassFlags : root :: mozilla :: detail :: nsTStringRepr_ClassFlags , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsTStringRepr_fallible_t = root :: mozilla :: fallible_t ; pub type nsTStringRepr_char_type < T > = T ; pub type nsTStringRepr_self_type < T > = root :: mozilla :: detail :: nsTStringRepr < T > ; pub type nsTStringRepr_base_string_type < T > = root :: mozilla :: detail :: nsTStringRepr_self_type < T > ; pub type nsTStringRepr_substring_type < T > = root :: nsTSubstring < T > ; pub type nsTStringRepr_substring_tuple_type < T > = root :: nsTSubstringTuple < T > ; pub type nsTStringRepr_literalstring_type < T > = root :: nsTLiteralString < T > ; pub type nsTStringRepr_const_iterator < T > = root :: nsReadingIterator < root :: mozilla :: detail :: nsTStringRepr_char_type < T > > ; pub type nsTStringRepr_iterator < T > = root :: nsWritingIterator < root :: mozilla :: detail :: nsTStringRepr_char_type < T > > ; pub type nsTStringRepr_comparator_type = root :: nsTStringComparator ; pub type nsTStringRepr_char_iterator < T > = * mut root :: mozilla :: detail :: nsTStringRepr_char_type < T > ; pub type nsTStringRepr_const_char_iterator < T > = * const root :: mozilla :: detail :: nsTStringRepr_char_type < T > ; pub type nsTStringRepr_index_type = u32 ; pub type nsTStringRepr_size_type = u32 ; pub use self :: super :: super :: super :: root :: mozilla :: detail :: StringDataFlags as nsTStringRepr_DataFlags ; pub use self :: super :: super :: super :: root :: mozilla :: detail :: StringClassFlags as nsTStringRepr_ClassFlags ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTStringRepr_raw_type { pub _address : u8 , } pub type nsTStringRepr_raw_type_type < U > = * mut U ;
- /// LinkedList supports refcounted elements using this adapter class. Clients
+#[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
+pub mod root {
+ #[repr(C)]
+ #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+ pub struct __BindgenBitfieldUnit<Storage, Align>
+ where
+ Storage: AsRef<[u8]> + AsMut<[u8]>,
+ {
+ storage: Storage,
+ align: [Align; 0],
+ }
+
+ impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
+ where
+ Storage: AsRef<[u8]> + AsMut<[u8]>,
+ {
+ #[inline]
+ pub fn new(storage: Storage) -> Self {
+ Self { storage, align: [] }
+ }
+
+ #[inline]
+ pub fn get_bit(&self, index: usize) -> bool {
+ debug_assert!(index / 8 < self.storage.as_ref().len());
+
+ let byte_index = index / 8;
+ let byte = self.storage.as_ref()[byte_index];
+
+ let bit_index = index % 8;
+ let mask = 1 << bit_index;
+
+ byte & mask == mask
+ }
+
+ #[inline]
+ pub fn set_bit(&mut self, index: usize, val: bool) {
+ debug_assert!(index / 8 < self.storage.as_ref().len());
+
+ let byte_index = index / 8;
+ let byte = &mut self.storage.as_mut()[byte_index];
+
+ let bit_index = index % 8;
+ let mask = 1 << bit_index;
+
+ if val {
+ *byte |= mask;
+ } else {
+ *byte &= !mask;
+ }
+ }
+
+ #[inline]
+ pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
+ debug_assert!(bit_width <= 64);
+ debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
+ debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
+
+ let mut val = 0;
+
+ for i in 0..(bit_width as usize) {
+ if self.get_bit(i + bit_offset) {
+ val |= 1 << i;
+ }
+ }
+
+ val
+ }
+
+ #[inline]
+ pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
+ debug_assert!(bit_width <= 64);
+ debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
+ debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
+
+ for i in 0..(bit_width as usize) {
+ let mask = 1 << i;
+ let val_bit_is_set = val & mask == mask;
+ self.set_bit(i + bit_offset, val_bit_is_set);
+ }
+ }
+ }
+ #[repr(C)]
+ pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
+ impl<T> __BindgenUnionField<T> {
+ #[inline]
+ pub fn new() -> Self {
+ __BindgenUnionField(::std::marker::PhantomData)
+ }
+ #[inline]
+ pub unsafe fn as_ref(&self) -> &T {
+ ::std::mem::transmute(self)
+ }
+ #[inline]
+ pub unsafe fn as_mut(&mut self) -> &mut T {
+ ::std::mem::transmute(self)
+ }
+ }
+ impl<T> ::std::default::Default for __BindgenUnionField<T> {
+ #[inline]
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+ impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
+ #[inline]
+ fn clone(&self) -> Self {
+ Self::new()
+ }
+ }
+ impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
+ impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
+ fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
+ fmt.write_str("__BindgenUnionField")
+ }
+ }
+ impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
+ fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
+ }
+ impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
+ fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+ true
+ }
+ }
+ impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
+ #[allow(unused_imports)]
+ use self::super::root;
+ pub const NS_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_WEIGHT_NORMAL: ::std::os::raw::c_uint = 400;
+ pub const NS_FONT_WEIGHT_BOLD: ::std::os::raw::c_uint = 700;
+ pub const NS_FONT_WEIGHT_THIN: ::std::os::raw::c_uint = 100;
+ pub const NS_FONT_STRETCH_ULTRA_CONDENSED: ::std::os::raw::c_int = -4;
+ pub const NS_FONT_STRETCH_EXTRA_CONDENSED: ::std::os::raw::c_int = -3;
+ pub const NS_FONT_STRETCH_CONDENSED: ::std::os::raw::c_int = -2;
+ pub const NS_FONT_STRETCH_SEMI_CONDENSED: ::std::os::raw::c_int = -1;
+ pub const NS_FONT_STRETCH_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_STRETCH_SEMI_EXPANDED: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_STRETCH_EXPANDED: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_STRETCH_EXTRA_EXPANDED: ::std::os::raw::c_uint = 3;
+ pub const NS_FONT_STRETCH_ULTRA_EXPANDED: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_SMOOTHING_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_SMOOTHING_GRAYSCALE: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_KERNING_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_KERNING_NONE: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_KERNING_NORMAL: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_SYNTHESIS_WEIGHT: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_SYNTHESIS_STYLE: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_DISPLAY_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_DISPLAY_BLOCK: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_DISPLAY_SWAP: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_DISPLAY_FALLBACK: ::std::os::raw::c_uint = 3;
+ pub const NS_FONT_DISPLAY_OPTIONAL: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_VARIANT_ALTERNATES_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_ALTERNATES_HISTORICAL: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_ALTERNATES_STYLISTIC: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_ALTERNATES_STYLESET: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT: ::std::os::raw::c_uint = 8;
+ pub const NS_FONT_VARIANT_ALTERNATES_SWASH: ::std::os::raw::c_uint = 16;
+ pub const NS_FONT_VARIANT_ALTERNATES_ORNAMENTS: ::std::os::raw::c_uint = 32;
+ pub const NS_FONT_VARIANT_ALTERNATES_ANNOTATION: ::std::os::raw::c_uint = 64;
+ pub const NS_FONT_VARIANT_ALTERNATES_COUNT: ::std::os::raw::c_uint = 7;
+ pub const NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK: ::std::os::raw::c_uint = 126;
+ pub const NS_FONT_VARIANT_CAPS_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_CAPS_SMALLCAPS: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_CAPS_ALLSMALL: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_CAPS_PETITECAPS: ::std::os::raw::c_uint = 3;
+ pub const NS_FONT_VARIANT_CAPS_ALLPETITE: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_VARIANT_CAPS_TITLING: ::std::os::raw::c_uint = 5;
+ pub const NS_FONT_VARIANT_CAPS_UNICASE: ::std::os::raw::c_uint = 6;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_JIS78: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_JIS83: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_JIS90: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_JIS04: ::std::os::raw::c_uint = 8;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED: ::std::os::raw::c_uint = 16;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL: ::std::os::raw::c_uint = 32;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH: ::std::os::raw::c_uint = 64;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH: ::std::os::raw::c_uint = 128;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_RUBY: ::std::os::raw::c_uint = 256;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_COUNT: ::std::os::raw::c_uint = 9;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_VARIANT_MASK: ::std::os::raw::c_uint = 63;
+ pub const NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK: ::std::os::raw::c_uint = 192;
+ pub const NS_FONT_VARIANT_LIGATURES_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_LIGATURES_NONE: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_LIGATURES_COMMON: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_LIGATURES_NO_COMMON: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_VARIANT_LIGATURES_DISCRETIONARY: ::std::os::raw::c_uint = 8;
+ pub const NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY: ::std::os::raw::c_uint = 16;
+ pub const NS_FONT_VARIANT_LIGATURES_HISTORICAL: ::std::os::raw::c_uint = 32;
+ pub const NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL: ::std::os::raw::c_uint = 64;
+ pub const NS_FONT_VARIANT_LIGATURES_CONTEXTUAL: ::std::os::raw::c_uint = 128;
+ pub const NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL: ::std::os::raw::c_uint = 256;
+ pub const NS_FONT_VARIANT_LIGATURES_COUNT: ::std::os::raw::c_uint = 9;
+ pub const NS_FONT_VARIANT_LIGATURES_COMMON_MASK: ::std::os::raw::c_uint = 6;
+ pub const NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK: ::std::os::raw::c_uint = 24;
+ pub const NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK: ::std::os::raw::c_uint = 96;
+ pub const NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK: ::std::os::raw::c_uint = 384;
+ pub const NS_FONT_VARIANT_NUMERIC_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_NUMERIC_LINING: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_NUMERIC_OLDSTYLE: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_NUMERIC_PROPORTIONAL: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_VARIANT_NUMERIC_TABULAR: ::std::os::raw::c_uint = 8;
+ pub const NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS: ::std::os::raw::c_uint = 16;
+ pub const NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS: ::std::os::raw::c_uint = 32;
+ pub const NS_FONT_VARIANT_NUMERIC_SLASHZERO: ::std::os::raw::c_uint = 64;
+ pub const NS_FONT_VARIANT_NUMERIC_ORDINAL: ::std::os::raw::c_uint = 128;
+ pub const NS_FONT_VARIANT_NUMERIC_COUNT: ::std::os::raw::c_uint = 8;
+ pub const NS_FONT_VARIANT_NUMERIC_FIGURE_MASK: ::std::os::raw::c_uint = 3;
+ pub const NS_FONT_VARIANT_NUMERIC_SPACING_MASK: ::std::os::raw::c_uint = 12;
+ pub const NS_FONT_VARIANT_NUMERIC_FRACTION_MASK: ::std::os::raw::c_uint = 48;
+ pub const NS_FONT_VARIANT_POSITION_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_POSITION_SUPER: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_POSITION_SUB: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_WIDTH_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_WIDTH_FULL: ::std::os::raw::c_uint = 1;
+ pub const NS_FONT_VARIANT_WIDTH_HALF: ::std::os::raw::c_uint = 2;
+ pub const NS_FONT_VARIANT_WIDTH_THIRD: ::std::os::raw::c_uint = 3;
+ pub const NS_FONT_VARIANT_WIDTH_QUARTER: ::std::os::raw::c_uint = 4;
+ pub const NS_FONT_SUBSCRIPT_OFFSET_RATIO: f64 = 0.2;
+ pub const NS_FONT_SUPERSCRIPT_OFFSET_RATIO: f64 = 0.34;
+ pub const NS_FONT_SUB_SUPER_SIZE_RATIO_SMALL: f64 = 0.82;
+ pub const NS_FONT_SUB_SUPER_SIZE_RATIO_LARGE: f64 = 0.667;
+ pub const NS_FONT_SUB_SUPER_SMALL_SIZE: f64 = 20.;
+ pub const NS_FONT_SUB_SUPER_LARGE_SIZE: f64 = 45.;
+ pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_FONT_VARIANT_SMALL_CAPS: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COLOR_INHERIT_FROM_BODY: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_WILL_CHANGE_STACKING_CONTEXT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WILL_CHANGE_TRANSFORM: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_WILL_CHANGE_SCROLL: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_WILL_CHANGE_OPACITY: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_WILL_CHANGE_FIXPOS_CB: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_WILL_CHANGE_ABSPOS_CB: ::std::os::raw::c_uint = 32;
+ pub const NS_STYLE_ANIMATION_ITERATION_COUNT_INFINITE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_ANIMATION_PLAY_STATE_RUNNING: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_ANIMATION_PLAY_STATE_PAUSED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_IMAGELAYER_ATTACHMENT_SCROLL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_IMAGELAYER_ATTACHMENT_FIXED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_IMAGELAYER_ATTACHMENT_LOCAL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_IMAGELAYER_CLIP_MOZ_ALMOST_PADDING: ::std::os::raw::c_uint = 127;
+ pub const NS_STYLE_IMAGELAYER_POSITION_CENTER: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_IMAGELAYER_POSITION_TOP: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_IMAGELAYER_POSITION_BOTTOM: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_IMAGELAYER_POSITION_LEFT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_IMAGELAYER_POSITION_RIGHT: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_IMAGELAYER_SIZE_CONTAIN: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_IMAGELAYER_SIZE_COVER: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_MASK_MODE_ALPHA: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_MASK_MODE_LUMINANCE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_MASK_MODE_MATCH_SOURCE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_BG_INLINE_POLICY_EACH_BOX: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_BG_INLINE_POLICY_CONTINUOUS: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BG_INLINE_POLICY_BOUNDING_BOX: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_BORDER_COLLAPSE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_BORDER_SEPARATE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BORDER_WIDTH_THIN: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_BORDER_WIDTH_MEDIUM: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BORDER_WIDTH_THICK: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_BORDER_STYLE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_BORDER_STYLE_GROOVE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BORDER_STYLE_RIDGE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_BORDER_STYLE_DOTTED: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_BORDER_STYLE_DASHED: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_BORDER_STYLE_SOLID: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_BORDER_STYLE_DOUBLE: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_BORDER_STYLE_INSET: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_BORDER_STYLE_OUTSET: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_BORDER_STYLE_HIDDEN: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_BORDER_STYLE_AUTO: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_BORDER_IMAGE_SLICE_NOFILL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_BORDER_IMAGE_SLICE_FILL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CURSOR_AUTO: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CURSOR_CROSSHAIR: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_CURSOR_DEFAULT: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_CURSOR_POINTER: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_CURSOR_MOVE: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_CURSOR_E_RESIZE: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_CURSOR_NE_RESIZE: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_CURSOR_NW_RESIZE: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_CURSOR_N_RESIZE: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_CURSOR_SE_RESIZE: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_CURSOR_SW_RESIZE: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_CURSOR_S_RESIZE: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_CURSOR_W_RESIZE: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_CURSOR_TEXT: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_CURSOR_WAIT: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_CURSOR_HELP: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_CURSOR_COPY: ::std::os::raw::c_uint = 17;
+ pub const NS_STYLE_CURSOR_ALIAS: ::std::os::raw::c_uint = 18;
+ pub const NS_STYLE_CURSOR_CONTEXT_MENU: ::std::os::raw::c_uint = 19;
+ pub const NS_STYLE_CURSOR_CELL: ::std::os::raw::c_uint = 20;
+ pub const NS_STYLE_CURSOR_GRAB: ::std::os::raw::c_uint = 21;
+ pub const NS_STYLE_CURSOR_GRABBING: ::std::os::raw::c_uint = 22;
+ pub const NS_STYLE_CURSOR_SPINNING: ::std::os::raw::c_uint = 23;
+ pub const NS_STYLE_CURSOR_ZOOM_IN: ::std::os::raw::c_uint = 24;
+ pub const NS_STYLE_CURSOR_ZOOM_OUT: ::std::os::raw::c_uint = 25;
+ pub const NS_STYLE_CURSOR_NOT_ALLOWED: ::std::os::raw::c_uint = 26;
+ pub const NS_STYLE_CURSOR_COL_RESIZE: ::std::os::raw::c_uint = 27;
+ pub const NS_STYLE_CURSOR_ROW_RESIZE: ::std::os::raw::c_uint = 28;
+ pub const NS_STYLE_CURSOR_NO_DROP: ::std::os::raw::c_uint = 29;
+ pub const NS_STYLE_CURSOR_VERTICAL_TEXT: ::std::os::raw::c_uint = 30;
+ pub const NS_STYLE_CURSOR_ALL_SCROLL: ::std::os::raw::c_uint = 31;
+ pub const NS_STYLE_CURSOR_NESW_RESIZE: ::std::os::raw::c_uint = 32;
+ pub const NS_STYLE_CURSOR_NWSE_RESIZE: ::std::os::raw::c_uint = 33;
+ pub const NS_STYLE_CURSOR_NS_RESIZE: ::std::os::raw::c_uint = 34;
+ pub const NS_STYLE_CURSOR_EW_RESIZE: ::std::os::raw::c_uint = 35;
+ pub const NS_STYLE_CURSOR_NONE: ::std::os::raw::c_uint = 36;
+ pub const NS_STYLE_DIRECTION_LTR: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_DIRECTION_RTL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WRITING_MODE_HORIZONTAL_TB: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_WRITING_MODE_VERTICAL_RL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WRITING_MODE_VERTICAL_LR: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_WRITING_MODE_SIDEWAYS_MASK: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_WRITING_MODE_SIDEWAYS_RL: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_WRITING_MODE_SIDEWAYS_LR: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_CONTAIN_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_CONTAIN_STRICT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CONTAIN_LAYOUT: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_CONTAIN_STYLE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_CONTAIN_PAINT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_CONTAIN_ALL_BITS: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_ALIGN_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_ALIGN_NORMAL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_ALIGN_START: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_ALIGN_END: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_ALIGN_FLEX_START: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_ALIGN_FLEX_END: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_ALIGN_CENTER: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_ALIGN_LEFT: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_ALIGN_RIGHT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_ALIGN_BASELINE: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_ALIGN_LAST_BASELINE: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_ALIGN_STRETCH: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_ALIGN_SELF_START: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_ALIGN_SELF_END: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_ALIGN_SPACE_BETWEEN: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_ALIGN_SPACE_AROUND: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_ALIGN_SPACE_EVENLY: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_ALIGN_LEGACY: ::std::os::raw::c_uint = 32;
+ pub const NS_STYLE_ALIGN_SAFE: ::std::os::raw::c_uint = 64;
+ pub const NS_STYLE_ALIGN_UNSAFE: ::std::os::raw::c_uint = 128;
+ pub const NS_STYLE_ALIGN_FLAG_BITS: ::std::os::raw::c_uint = 224;
+ pub const NS_STYLE_ALIGN_ALL_BITS: ::std::os::raw::c_uint = 255;
+ pub const NS_STYLE_ALIGN_ALL_SHIFT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_JUSTIFY_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_JUSTIFY_NORMAL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_JUSTIFY_START: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_JUSTIFY_END: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_JUSTIFY_FLEX_START: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_JUSTIFY_FLEX_END: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_JUSTIFY_CENTER: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_JUSTIFY_LEFT: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_JUSTIFY_RIGHT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_JUSTIFY_BASELINE: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_JUSTIFY_LAST_BASELINE: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_JUSTIFY_STRETCH: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_JUSTIFY_SELF_START: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_JUSTIFY_SELF_END: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_JUSTIFY_SPACE_BETWEEN: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_JUSTIFY_SPACE_AROUND: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_JUSTIFY_SPACE_EVENLY: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_JUSTIFY_LEGACY: ::std::os::raw::c_uint = 32;
+ pub const NS_STYLE_JUSTIFY_SAFE: ::std::os::raw::c_uint = 64;
+ pub const NS_STYLE_JUSTIFY_UNSAFE: ::std::os::raw::c_uint = 128;
+ pub const NS_STYLE_JUSTIFY_FLAG_BITS: ::std::os::raw::c_uint = 224;
+ pub const NS_STYLE_JUSTIFY_ALL_BITS: ::std::os::raw::c_uint = 255;
+ pub const NS_STYLE_JUSTIFY_ALL_SHIFT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_FLEX_DIRECTION_ROW: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FLEX_DIRECTION_ROW_REVERSE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FLEX_DIRECTION_COLUMN: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FLEX_DIRECTION_COLUMN_REVERSE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_FLEX_WRAP_NOWRAP: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FLEX_WRAP_WRAP: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FLEX_WRAP_WRAP_REVERSE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_ORDER_INITIAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_JUSTIFY_CONTENT_FLEX_START: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_JUSTIFY_CONTENT_FLEX_END: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_JUSTIFY_CONTENT_CENTER: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_JUSTIFY_CONTENT_SPACE_BETWEEN: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_JUSTIFY_CONTENT_SPACE_AROUND: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_FILTER_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FILTER_URL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FILTER_BLUR: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FILTER_BRIGHTNESS: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_FILTER_CONTRAST: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_FILTER_GRAYSCALE: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_FILTER_INVERT: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_FILTER_OPACITY: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_FILTER_SATURATE: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_FILTER_SEPIA: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_FILTER_HUE_ROTATE: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_FILTER_DROP_SHADOW: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FONT_WEIGHT_NORMAL: ::std::os::raw::c_uint = 400;
+ pub const NS_STYLE_FONT_WEIGHT_BOLD: ::std::os::raw::c_uint = 700;
+ pub const NS_STYLE_FONT_WEIGHT_BOLDER: ::std::os::raw::c_int = -1;
+ pub const NS_STYLE_FONT_WEIGHT_LIGHTER: ::std::os::raw::c_int = -2;
+ pub const NS_STYLE_FONT_SIZE_XXSMALL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FONT_SIZE_XSMALL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FONT_SIZE_SMALL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FONT_SIZE_MEDIUM: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_FONT_SIZE_LARGE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_FONT_SIZE_XLARGE: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_FONT_SIZE_XXLARGE: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_FONT_SIZE_XXXLARGE: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_FONT_SIZE_LARGER: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_FONT_SIZE_SMALLER: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_FONT_SIZE_NO_KEYWORD: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_FONT_STRETCH_ULTRA_CONDENSED: ::std::os::raw::c_int = -4;
+ pub const NS_STYLE_FONT_STRETCH_EXTRA_CONDENSED: ::std::os::raw::c_int = -3;
+ pub const NS_STYLE_FONT_STRETCH_CONDENSED: ::std::os::raw::c_int = -2;
+ pub const NS_STYLE_FONT_STRETCH_SEMI_CONDENSED: ::std::os::raw::c_int = -1;
+ pub const NS_STYLE_FONT_STRETCH_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FONT_STRETCH_SEMI_EXPANDED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FONT_STRETCH_EXPANDED: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FONT_STRETCH_EXTRA_EXPANDED: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_FONT_STRETCH_ULTRA_EXPANDED: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_FONT_CAPTION: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FONT_ICON: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FONT_MENU: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_FONT_MESSAGE_BOX: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_FONT_SMALL_CAPTION: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_FONT_STATUS_BAR: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_FONT_WINDOW: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_FONT_DOCUMENT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_FONT_WORKSPACE: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_FONT_DESKTOP: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_FONT_INFO: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_FONT_DIALOG: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_FONT_BUTTON: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_FONT_PULL_DOWN_MENU: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_FONT_LIST: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_FONT_FIELD: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_GRID_AUTO_FLOW_ROW: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_GRID_AUTO_FLOW_COLUMN: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_GRID_AUTO_FLOW_DENSE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_GRID_TEMPLATE_SUBGRID: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_GRID_REPEAT_AUTO_FILL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_GRID_REPEAT_AUTO_FIT: ::std::os::raw::c_uint = 1;
+ pub const NS_MATHML_DEFAULT_SCRIPT_SIZE_MULTIPLIER: f64 = 0.71;
+ pub const NS_MATHML_DEFAULT_SCRIPT_MIN_SIZE_PT: ::std::os::raw::c_uint = 8;
+ pub const NS_MATHML_MATHVARIANT_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_MATHML_MATHVARIANT_NORMAL: ::std::os::raw::c_uint = 1;
+ pub const NS_MATHML_MATHVARIANT_BOLD: ::std::os::raw::c_uint = 2;
+ pub const NS_MATHML_MATHVARIANT_ITALIC: ::std::os::raw::c_uint = 3;
+ pub const NS_MATHML_MATHVARIANT_BOLD_ITALIC: ::std::os::raw::c_uint = 4;
+ pub const NS_MATHML_MATHVARIANT_SCRIPT: ::std::os::raw::c_uint = 5;
+ pub const NS_MATHML_MATHVARIANT_BOLD_SCRIPT: ::std::os::raw::c_uint = 6;
+ pub const NS_MATHML_MATHVARIANT_FRAKTUR: ::std::os::raw::c_uint = 7;
+ pub const NS_MATHML_MATHVARIANT_DOUBLE_STRUCK: ::std::os::raw::c_uint = 8;
+ pub const NS_MATHML_MATHVARIANT_BOLD_FRAKTUR: ::std::os::raw::c_uint = 9;
+ pub const NS_MATHML_MATHVARIANT_SANS_SERIF: ::std::os::raw::c_uint = 10;
+ pub const NS_MATHML_MATHVARIANT_BOLD_SANS_SERIF: ::std::os::raw::c_uint = 11;
+ pub const NS_MATHML_MATHVARIANT_SANS_SERIF_ITALIC: ::std::os::raw::c_uint = 12;
+ pub const NS_MATHML_MATHVARIANT_SANS_SERIF_BOLD_ITALIC: ::std::os::raw::c_uint = 13;
+ pub const NS_MATHML_MATHVARIANT_MONOSPACE: ::std::os::raw::c_uint = 14;
+ pub const NS_MATHML_MATHVARIANT_INITIAL: ::std::os::raw::c_uint = 15;
+ pub const NS_MATHML_MATHVARIANT_TAILED: ::std::os::raw::c_uint = 16;
+ pub const NS_MATHML_MATHVARIANT_LOOPED: ::std::os::raw::c_uint = 17;
+ pub const NS_MATHML_MATHVARIANT_STRETCHED: ::std::os::raw::c_uint = 18;
+ pub const NS_MATHML_DISPLAYSTYLE_INLINE: ::std::os::raw::c_uint = 0;
+ pub const NS_MATHML_DISPLAYSTYLE_BLOCK: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WIDTH_MAX_CONTENT: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_WIDTH_MIN_CONTENT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WIDTH_FIT_CONTENT: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_WIDTH_AVAILABLE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_POSITION_STATIC: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_POSITION_RELATIVE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_POSITION_ABSOLUTE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_POSITION_FIXED: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_POSITION_STICKY: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_CLIP_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_CLIP_RECT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CLIP_TYPE_MASK: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_CLIP_LEFT_AUTO: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_CLIP_TOP_AUTO: ::std::os::raw::c_uint = 32;
+ pub const NS_STYLE_CLIP_RIGHT_AUTO: ::std::os::raw::c_uint = 64;
+ pub const NS_STYLE_CLIP_BOTTOM_AUTO: ::std::os::raw::c_uint = 128;
+ pub const NS_STYLE_FRAME_YES: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_FRAME_NO: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_FRAME_0: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_FRAME_1: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_FRAME_ON: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_FRAME_OFF: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_FRAME_AUTO: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_FRAME_SCROLL: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_FRAME_NOSCROLL: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_OVERFLOW_VISIBLE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_OVERFLOW_HIDDEN: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_OVERFLOW_SCROLL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_OVERFLOW_AUTO: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_OVERFLOW_CLIP: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_OVERFLOW_SCROLLBARS_HORIZONTAL: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_OVERFLOW_SCROLLBARS_VERTICAL: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_LIST_STYLE_CUSTOM: ::std::os::raw::c_int = -1;
+ pub const NS_STYLE_LIST_STYLE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_LIST_STYLE_DECIMAL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_LIST_STYLE_DISC: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_LIST_STYLE_CIRCLE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_LIST_STYLE_SQUARE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_LIST_STYLE_DISCLOSURE_CLOSED: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_LIST_STYLE_DISCLOSURE_OPEN: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_LIST_STYLE_HEBREW: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_LIST_STYLE_JAPANESE_INFORMAL: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_LIST_STYLE_JAPANESE_FORMAL: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_LIST_STYLE_KOREAN_HANGUL_FORMAL: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_LIST_STYLE_KOREAN_HANJA_INFORMAL: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_LIST_STYLE_KOREAN_HANJA_FORMAL: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_LIST_STYLE_SIMP_CHINESE_INFORMAL: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_LIST_STYLE_SIMP_CHINESE_FORMAL: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_LIST_STYLE_TRAD_CHINESE_INFORMAL: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_LIST_STYLE_TRAD_CHINESE_FORMAL: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_LIST_STYLE_ETHIOPIC_NUMERIC: ::std::os::raw::c_uint = 17;
+ pub const NS_STYLE_LIST_STYLE_LOWER_ROMAN: ::std::os::raw::c_uint = 100;
+ pub const NS_STYLE_LIST_STYLE_UPPER_ROMAN: ::std::os::raw::c_uint = 101;
+ pub const NS_STYLE_LIST_STYLE_LOWER_ALPHA: ::std::os::raw::c_uint = 102;
+ pub const NS_STYLE_LIST_STYLE_UPPER_ALPHA: ::std::os::raw::c_uint = 103;
+ pub const NS_STYLE_LIST_STYLE_POSITION_INSIDE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_LIST_STYLE_POSITION_OUTSIDE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_MARGIN_SIZE_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_POINTER_EVENTS_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_POINTER_EVENTS_VISIBLEPAINTED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_POINTER_EVENTS_VISIBLEFILL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_POINTER_EVENTS_VISIBLESTROKE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_POINTER_EVENTS_VISIBLE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_POINTER_EVENTS_PAINTED: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_POINTER_EVENTS_FILL: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_POINTER_EVENTS_STROKE: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_POINTER_EVENTS_ALL: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_POINTER_EVENTS_AUTO: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_IMAGE_ORIENTATION_FLIP: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_IMAGE_ORIENTATION_FROM_IMAGE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_ISOLATION_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_ISOLATION_ISOLATE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_OBJECT_FIT_FILL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_OBJECT_FIT_CONTAIN: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_OBJECT_FIT_COVER: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_OBJECT_FIT_NONE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_OBJECT_FIT_SCALE_DOWN: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_RESIZE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_RESIZE_BOTH: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_RESIZE_HORIZONTAL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_RESIZE_VERTICAL: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TEXT_ALIGN_START: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_ALIGN_LEFT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_ALIGN_RIGHT: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_ALIGN_CENTER: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TEXT_ALIGN_JUSTIFY: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TEXT_ALIGN_CHAR: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_TEXT_ALIGN_END: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_TEXT_ALIGN_AUTO: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_TEXT_ALIGN_MOZ_CENTER: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TEXT_ALIGN_MOZ_RIGHT: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_TEXT_ALIGN_MOZ_LEFT: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_TEXT_ALIGN_MOZ_CENTER_OR_INHERIT: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_TEXT_ALIGN_UNSAFE: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_TEXT_ALIGN_MATCH_PARENT: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_OVERLINE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_BLINK: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_TEXT_DECORATION_LINE_LINES_MASK: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_DOTTED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_DASHED: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_SOLID: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_WAVY: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_TEXT_DECORATION_STYLE_MAX: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_TEXT_OVERFLOW_CLIP: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_OVERFLOW_ELLIPSIS: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_OVERFLOW_STRING: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_TRANSFORM_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_TRANSFORM_CAPITALIZE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_TRANSFORM_LOWERCASE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_TRANSFORM_UPPERCASE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TEXT_TRANSFORM_FULL_WIDTH: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TOUCH_ACTION_NONE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TOUCH_ACTION_AUTO: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TOUCH_ACTION_PAN_X: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TOUCH_ACTION_PAN_Y: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TOUCH_ACTION_MANIPULATION: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_TOP_LAYER_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TOP_LAYER_TOP: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_LINEAR: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_OUT: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_START: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_END: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_VERTICAL_ALIGN_BASELINE: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_VERTICAL_ALIGN_SUB: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_VERTICAL_ALIGN_SUPER: ::std::os::raw::c_uint = 16;
+ pub const NS_STYLE_VERTICAL_ALIGN_TOP: ::std::os::raw::c_uint = 17;
+ pub const NS_STYLE_VERTICAL_ALIGN_TEXT_TOP: ::std::os::raw::c_uint = 18;
+ pub const NS_STYLE_VERTICAL_ALIGN_MIDDLE: ::std::os::raw::c_uint = 19;
+ pub const NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM: ::std::os::raw::c_uint = 20;
+ pub const NS_STYLE_VERTICAL_ALIGN_BOTTOM: ::std::os::raw::c_uint = 21;
+ pub const NS_STYLE_VERTICAL_ALIGN_MIDDLE_WITH_BASELINE: ::std::os::raw::c_uint = 22;
+ pub const NS_STYLE_VISIBILITY_HIDDEN: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_VISIBILITY_VISIBLE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_VISIBILITY_COLLAPSE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TABSIZE_INITIAL: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_WORDBREAK_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_WORDBREAK_BREAK_ALL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WORDBREAK_KEEP_ALL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_OVERFLOWWRAP_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_OVERFLOWWRAP_BREAK_WORD: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_RUBY_ALIGN_START: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_RUBY_ALIGN_CENTER: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_RUBY_ALIGN_SPACE_BETWEEN: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_RUBY_ALIGN_SPACE_AROUND: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_RUBY_POSITION_OVER: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_RUBY_POSITION_UNDER: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_RUBY_POSITION_INTER_CHARACTER: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_SIZE_ADJUST_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_SIZE_ADJUST_AUTO: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_ORIENTATION_MIXED: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_ORIENTATION_UPRIGHT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_ORIENTATION_SIDEWAYS: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_ALL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_2: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_3: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_4: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_UNICODE_BIDI_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_UNICODE_BIDI_EMBED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_UNICODE_BIDI_ISOLATE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_UNICODE_BIDI_BIDI_OVERRIDE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_UNICODE_BIDI_ISOLATE_OVERRIDE: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_UNICODE_BIDI_PLAINTEXT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TABLE_LAYOUT_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TABLE_LAYOUT_FIXED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TABLE_EMPTY_CELLS_HIDE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TABLE_EMPTY_CELLS_SHOW: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CAPTION_SIDE_TOP: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_CAPTION_SIDE_RIGHT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CAPTION_SIDE_BOTTOM: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_CAPTION_SIDE_LEFT: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_CELL_SCOPE_ROW: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_CELL_SCOPE_COL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CELL_SCOPE_ROWGROUP: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_CELL_SCOPE_COLGROUP: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_PAGE_MARKS_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_PAGE_MARKS_CROP: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_PAGE_MARKS_REGISTER: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_PAGE_SIZE_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_PAGE_SIZE_PORTRAIT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_PAGE_SIZE_LANDSCAPE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_PAGE_BREAK_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_PAGE_BREAK_ALWAYS: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_PAGE_BREAK_AVOID: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_PAGE_BREAK_LEFT: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_PAGE_BREAK_RIGHT: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_COLUMN_COUNT_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COLUMN_COUNT_UNLIMITED: ::std::os::raw::c_int = -1;
+ pub const NS_STYLE_COLUMN_FILL_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COLUMN_FILL_BALANCE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COLUMN_SPAN_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COLUMN_SPAN_ALL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_IME_MODE_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_IME_MODE_NORMAL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_IME_MODE_ACTIVE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_IME_MODE_DISABLED: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_IME_MODE_INACTIVE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_GRADIENT_SHAPE_LINEAR: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_GRADIENT_SHAPE_ELLIPTICAL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_GRADIENT_SHAPE_CIRCULAR: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_GRADIENT_SIZE_EXPLICIT_SIZE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_CONTEXT_PROPERTY_FILL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CONTEXT_PROPERTY_STROKE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_CONTEXT_PROPERTY_FILL_OPACITY: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_CONTEXT_PROPERTY_STROKE_OPACITY: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_WINDOW_SHADOW_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_WINDOW_SHADOW_DEFAULT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_WINDOW_SHADOW_MENU: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_WINDOW_SHADOW_TOOLTIP: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_WINDOW_SHADOW_SHEET: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_DOMINANT_BASELINE_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_DOMINANT_BASELINE_NO_CHANGE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_DOMINANT_BASELINE_RESET_SIZE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_DOMINANT_BASELINE_IDEOGRAPHIC: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_DOMINANT_BASELINE_ALPHABETIC: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_DOMINANT_BASELINE_HANGING: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_DOMINANT_BASELINE_MATHEMATICAL: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_DOMINANT_BASELINE_CENTRAL: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_DOMINANT_BASELINE_MIDDLE: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_DOMINANT_BASELINE_TEXT_AFTER_EDGE: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_DOMINANT_BASELINE_TEXT_BEFORE_EDGE: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_IMAGE_RENDERING_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_IMAGE_RENDERING_OPTIMIZESPEED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_IMAGE_RENDERING_OPTIMIZEQUALITY: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_IMAGE_RENDERING_CRISPEDGES: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_MASK_TYPE_LUMINANCE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_MASK_TYPE_ALPHA: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_PAINT_ORDER_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_PAINT_ORDER_FILL: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_PAINT_ORDER_STROKE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_PAINT_ORDER_MARKERS: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_PAINT_ORDER_LAST_VALUE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_PAINT_ORDER_BITWIDTH: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_SHAPE_RENDERING_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_SHAPE_RENDERING_OPTIMIZESPEED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_SHAPE_RENDERING_CRISPEDGES: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_SHAPE_RENDERING_GEOMETRICPRECISION: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_STROKE_LINECAP_BUTT: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_STROKE_LINECAP_ROUND: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_STROKE_LINECAP_SQUARE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_STROKE_LINEJOIN_MITER: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_STROKE_LINEJOIN_ROUND: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_STROKE_LINEJOIN_BEVEL: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_STROKE_PROP_CONTEXT_VALUE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_ANCHOR_START: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_ANCHOR_MIDDLE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_ANCHOR_END: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_EMPHASIS_POSITION_OVER: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_EMPHASIS_POSITION_UNDER: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_EMPHASIS_POSITION_LEFT: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TEXT_EMPHASIS_POSITION_RIGHT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TEXT_EMPHASIS_POSITION_DEFAULT: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_TEXT_EMPHASIS_POSITION_DEFAULT_ZH: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_FILL_MASK: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_FILLED: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_OPEN: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_SHAPE_MASK: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_DOT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_CIRCLE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_TRIANGLE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_SESAME: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_TEXT_EMPHASIS_STYLE_STRING: ::std::os::raw::c_uint = 255;
+ pub const NS_STYLE_TEXT_RENDERING_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TEXT_RENDERING_OPTIMIZESPEED: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_TEXT_RENDERING_OPTIMIZELEGIBILITY: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_TEXT_RENDERING_GEOMETRICPRECISION: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_COLOR_ADJUST_ECONOMY: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COLOR_ADJUST_EXACT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COLOR_INTERPOLATION_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COLOR_INTERPOLATION_SRGB: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COLOR_INTERPOLATION_LINEARRGB: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_VECTOR_EFFECT_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_VECTOR_EFFECT_NON_SCALING_STROKE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BACKFACE_VISIBILITY_VISIBLE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BACKFACE_VISIBILITY_HIDDEN: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TRANSFORM_STYLE_FLAT: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_CONTEXT_FILL_OPACITY: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_CONTEXT_STROKE_OPACITY: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BLEND_NORMAL: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_BLEND_MULTIPLY: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_BLEND_SCREEN: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_BLEND_OVERLAY: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_BLEND_DARKEN: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_BLEND_LIGHTEN: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_BLEND_COLOR_DODGE: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_BLEND_COLOR_BURN: ::std::os::raw::c_uint = 7;
+ pub const NS_STYLE_BLEND_HARD_LIGHT: ::std::os::raw::c_uint = 8;
+ pub const NS_STYLE_BLEND_SOFT_LIGHT: ::std::os::raw::c_uint = 9;
+ pub const NS_STYLE_BLEND_DIFFERENCE: ::std::os::raw::c_uint = 10;
+ pub const NS_STYLE_BLEND_EXCLUSION: ::std::os::raw::c_uint = 11;
+ pub const NS_STYLE_BLEND_HUE: ::std::os::raw::c_uint = 12;
+ pub const NS_STYLE_BLEND_SATURATION: ::std::os::raw::c_uint = 13;
+ pub const NS_STYLE_BLEND_COLOR: ::std::os::raw::c_uint = 14;
+ pub const NS_STYLE_BLEND_LUMINOSITY: ::std::os::raw::c_uint = 15;
+ pub const NS_STYLE_MASK_COMPOSITE_ADD: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_MASK_COMPOSITE_SUBTRACT: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_MASK_COMPOSITE_INTERSECT: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_MASK_COMPOSITE_EXCLUDE: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_CONTROL_CHARACTER_VISIBILITY_HIDDEN: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_CONTROL_CHARACTER_VISIBILITY_VISIBLE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COUNTER_SYSTEM_CYCLIC: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COUNTER_SYSTEM_NUMERIC: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COUNTER_SYSTEM_ALPHABETIC: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_COUNTER_SYSTEM_SYMBOLIC: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_COUNTER_SYSTEM_ADDITIVE: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_COUNTER_SYSTEM_FIXED: ::std::os::raw::c_uint = 5;
+ pub const NS_STYLE_COUNTER_SYSTEM_EXTENDS: ::std::os::raw::c_uint = 6;
+ pub const NS_STYLE_COUNTER_RANGE_INFINITE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COUNTER_SPEAKAS_BULLETS: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_COUNTER_SPEAKAS_NUMBERS: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_COUNTER_SPEAKAS_WORDS: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_COUNTER_SPEAKAS_SPELL_OUT: ::std::os::raw::c_uint = 3;
+ pub const NS_STYLE_COUNTER_SPEAKAS_OTHER: ::std::os::raw::c_uint = 255;
+ pub const NS_STYLE_SCROLL_BEHAVIOR_AUTO: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_SCROLL_BEHAVIOR_SMOOTH: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_SCROLL_SNAP_TYPE_NONE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_SCROLL_SNAP_TYPE_MANDATORY: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_SCROLL_SNAP_TYPE_PROXIMITY: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_ORIENTATION_PORTRAIT: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_ORIENTATION_LANDSCAPE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_SCAN_PROGRESSIVE: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_SCAN_INTERLACE: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_DISPLAY_MODE_BROWSER: ::std::os::raw::c_uint = 0;
+ pub const NS_STYLE_DISPLAY_MODE_MINIMAL_UI: ::std::os::raw::c_uint = 1;
+ pub const NS_STYLE_DISPLAY_MODE_STANDALONE: ::std::os::raw::c_uint = 2;
+ pub const NS_STYLE_DISPLAY_MODE_FULLSCREEN: ::std::os::raw::c_uint = 3;
+ pub const CSS_PSEUDO_ELEMENT_IS_CSS2: ::std::os::raw::c_uint = 1;
+ pub const CSS_PSEUDO_ELEMENT_CONTAINS_ELEMENTS: ::std::os::raw::c_uint = 2;
+ pub const CSS_PSEUDO_ELEMENT_SUPPORTS_STYLE_ATTRIBUTE: ::std::os::raw::c_uint = 4;
+ pub const CSS_PSEUDO_ELEMENT_SUPPORTS_USER_ACTION_STATE: ::std::os::raw::c_uint = 8;
+ pub const CSS_PSEUDO_ELEMENT_UA_SHEET_ONLY: ::std::os::raw::c_uint = 16;
+ pub const CSS_PSEUDO_ELEMENT_IS_JS_CREATED_NAC: ::std::os::raw::c_uint = 32;
+ pub const CSS_PSEUDO_ELEMENT_IS_FLEX_OR_GRID_ITEM: ::std::os::raw::c_uint = 64;
+ pub const kNameSpaceID_Unknown: ::std::os::raw::c_int = -1;
+ pub const kNameSpaceID_XMLNS: ::std::os::raw::c_uint = 1;
+ pub const kNameSpaceID_XML: ::std::os::raw::c_uint = 2;
+ pub const kNameSpaceID_XHTML: ::std::os::raw::c_uint = 3;
+ pub const kNameSpaceID_XLink: ::std::os::raw::c_uint = 4;
+ pub const kNameSpaceID_XSLT: ::std::os::raw::c_uint = 5;
+ pub const kNameSpaceID_XBL: ::std::os::raw::c_uint = 6;
+ pub const kNameSpaceID_MathML: ::std::os::raw::c_uint = 7;
+ pub const kNameSpaceID_RDF: ::std::os::raw::c_uint = 8;
+ pub const kNameSpaceID_XUL: ::std::os::raw::c_uint = 9;
+ pub const kNameSpaceID_SVG: ::std::os::raw::c_uint = 10;
+ pub const kNameSpaceID_disabled_MathML: ::std::os::raw::c_uint = 11;
+ pub const kNameSpaceID_disabled_SVG: ::std::os::raw::c_uint = 12;
+ pub const kNameSpaceID_LastBuiltin: ::std::os::raw::c_uint = 12;
+ pub const kNameSpaceID_Wildcard: ::std::os::raw::c_int = -2147483648;
+ pub const NS_AUTHOR_SPECIFIED_BACKGROUND: ::std::os::raw::c_uint = 1;
+ pub const NS_AUTHOR_SPECIFIED_BORDER: ::std::os::raw::c_uint = 2;
+ pub const NS_AUTHOR_SPECIFIED_PADDING: ::std::os::raw::c_uint = 4;
+ pub const NS_STYLE_INHERIT_MASK: ::std::os::raw::c_uint = 16777215;
+ pub const NS_STYLE_HAS_TEXT_DECORATION_LINES: ::std::os::raw::c_uint = 16777216;
+ pub const NS_STYLE_HAS_PSEUDO_ELEMENT_DATA: ::std::os::raw::c_uint = 33554432;
+ pub const NS_STYLE_RELEVANT_LINK_VISITED: ::std::os::raw::c_uint = 67108864;
+ pub const NS_STYLE_IS_STYLE_IF_VISITED: ::std::os::raw::c_uint = 134217728;
+ pub const NS_STYLE_CHILD_USES_GRANDANCESTOR_STYLE: ::std::os::raw::c_uint = 268435456;
+ pub const NS_STYLE_IS_SHARED: ::std::os::raw::c_uint = 536870912;
+ pub const NS_STYLE_IS_GOING_AWAY: ::std::os::raw::c_uint = 1073741824;
+ pub const NS_STYLE_SUPPRESS_LINEBREAK: ::std::os::raw::c_uint = 2147483648;
+ pub const NS_STYLE_IN_DISPLAY_NONE_SUBTREE: ::std::os::raw::c_ulonglong = 4294967296;
+ pub const NS_STYLE_INELIGIBLE_FOR_SHARING: ::std::os::raw::c_ulonglong = 8589934592;
+ pub const NS_STYLE_HAS_CHILD_THAT_USES_RESET_STYLE: ::std::os::raw::c_ulonglong = 17179869184;
+ pub const NS_STYLE_IS_TEXT_COMBINED: ::std::os::raw::c_ulonglong = 34359738368;
+ pub const NS_STYLE_CONTEXT_IS_GECKO: ::std::os::raw::c_ulonglong = 68719476736;
+ pub const NS_STYLE_CONTEXT_TYPE_SHIFT: ::std::os::raw::c_uint = 37;
+ pub mod std {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nothrow_t {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nothrow_t() {
+ assert_eq!(
+ ::std::mem::size_of::<nothrow_t>(),
+ 1usize,
+ concat!("Size of: ", stringify!(nothrow_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nothrow_t>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(nothrow_t))
+ );
+ }
+ impl Clone for nothrow_t {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct pair<_T1, _T2> {
+ pub first: _T1,
+ pub second: _T2,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_T1>>,
+ pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<_T2>>,
+ }
+ pub type pair_first_type<_T1> = _T1;
+ pub type pair_second_type<_T2> = _T2;
+ pub type pair__PCCP = u8;
+ pub type pair__PCCFP = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct input_iterator_tag {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_input_iterator_tag() {
+ assert_eq!(
+ ::std::mem::size_of::<input_iterator_tag>(),
+ 1usize,
+ concat!("Size of: ", stringify!(input_iterator_tag))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<input_iterator_tag>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(input_iterator_tag))
+ );
+ }
+ impl Clone for input_iterator_tag {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct iterator {
+ pub _address: u8,
+ }
+ pub type iterator_iterator_category<_Category> = _Category;
+ pub type iterator_value_type<_Tp> = _Tp;
+ pub type iterator_difference_type<_Distance> = _Distance;
+ pub type iterator_pointer<_Pointer> = _Pointer;
+ pub type iterator_reference<_Reference> = _Reference;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct atomic {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct function {
+ pub _address: u8,
+ }
+ pub type _Base_bitset__WordT = ::std::os::raw::c_ulong;
+ pub type bitset__Base = u8;
+ pub type bitset__WordT = ::std::os::raw::c_ulong;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct bitset_reference {
+ pub _M_wp: *mut root::std::bitset__WordT,
+ pub _M_bpos: usize,
+ }
+ }
+ pub mod __gnu_cxx {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ }
+ pub type __int8_t = ::std::os::raw::c_schar;
+ pub type __uint8_t = ::std::os::raw::c_uchar;
+ pub type __int16_t = ::std::os::raw::c_short;
+ pub type __uint16_t = ::std::os::raw::c_ushort;
+ pub type __int32_t = ::std::os::raw::c_int;
+ pub type __uint32_t = ::std::os::raw::c_uint;
+ pub type __int64_t = ::std::os::raw::c_long;
+ pub type __uint64_t = ::std::os::raw::c_ulong;
+ pub mod mozilla {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ pub type fallible_t = root::std::nothrow_t;
+ pub type IntegralConstant_ValueType<T> = T;
+ pub type IntegralConstant_Type = u8;
+ /// Convenient aliases.
+ pub type TrueType = u8;
+ pub type FalseType = u8;
+ pub mod detail {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ pub const StringDataFlags_TERMINATED: root::mozilla::detail::StringDataFlags = 1;
+ pub const StringDataFlags_VOIDED: root::mozilla::detail::StringDataFlags = 2;
+ pub const StringDataFlags_SHARED: root::mozilla::detail::StringDataFlags = 4;
+ pub const StringDataFlags_OWNED: root::mozilla::detail::StringDataFlags = 8;
+ pub const StringDataFlags_INLINE: root::mozilla::detail::StringDataFlags = 16;
+ pub const StringDataFlags_LITERAL: root::mozilla::detail::StringDataFlags = 32;
+ pub type StringDataFlags = u16;
+ pub const StringClassFlags_INLINE: root::mozilla::detail::StringClassFlags = 1;
+ pub const StringClassFlags_NULL_TERMINATED: root::mozilla::detail::StringClassFlags = 2;
+ pub type StringClassFlags = u16;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTStringRepr<T> {
+ pub mData: *mut root::mozilla::detail::nsTStringRepr_char_type<T>,
+ pub mLength: root::mozilla::detail::nsTStringRepr_size_type,
+ pub mDataFlags: root::mozilla::detail::nsTStringRepr_DataFlags,
+ pub mClassFlags: root::mozilla::detail::nsTStringRepr_ClassFlags,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsTStringRepr_fallible_t = root::mozilla::fallible_t;
+ pub type nsTStringRepr_char_type<T> = T;
+ pub type nsTStringRepr_self_type<T> = root::mozilla::detail::nsTStringRepr<T>;
+ pub type nsTStringRepr_base_string_type<T> =
+ root::mozilla::detail::nsTStringRepr_self_type<T>;
+ pub type nsTStringRepr_substring_type<T> = root::nsTSubstring<T>;
+ pub type nsTStringRepr_substring_tuple_type<T> = root::nsTSubstringTuple<T>;
+ pub type nsTStringRepr_literalstring_type<T> = root::nsTLiteralString<T>;
+ pub type nsTStringRepr_const_iterator<T> =
+ root::nsReadingIterator<root::mozilla::detail::nsTStringRepr_char_type<T>>;
+ pub type nsTStringRepr_iterator<T> =
+ root::nsWritingIterator<root::mozilla::detail::nsTStringRepr_char_type<T>>;
+ pub type nsTStringRepr_comparator_type = root::nsTStringComparator;
+ pub type nsTStringRepr_char_iterator<T> =
+ *mut root::mozilla::detail::nsTStringRepr_char_type<T>;
+ pub type nsTStringRepr_const_char_iterator<T> =
+ *const root::mozilla::detail::nsTStringRepr_char_type<T>;
+ pub type nsTStringRepr_index_type = u32;
+ pub type nsTStringRepr_size_type = u32;
+ pub use self :: super :: super :: super :: root :: mozilla :: detail :: StringDataFlags as nsTStringRepr_DataFlags;
+ pub use self :: super :: super :: super :: root :: mozilla :: detail :: StringClassFlags as nsTStringRepr_ClassFlags;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTStringRepr_raw_type {
+ pub _address: u8,
+ }
+ pub type nsTStringRepr_raw_type_type<U> = *mut U;
+ /// LinkedList supports refcounted elements using this adapter class. Clients
/// using LinkedList<RefPtr<T>> will get a data structure that holds a strong
- /// reference to T as long as T is in the list.
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct LinkedListElementTraits { pub _address : u8 , } pub type LinkedListElementTraits_RawType < T > = * mut T ; pub type LinkedListElementTraits_ConstRawType < T > = * mut T ; pub type LinkedListElementTraits_ClientType < T > = * mut T ; pub type LinkedListElementTraits_ConstClientType < T > = * mut T ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct WeakReference { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct FreePolicy { pub _address : u8 , } } pub type Conditional_Type < A > = A ; pub const ArenaObjectID_eArenaObjectID_DummyBeforeFirstObjectID : root :: mozilla :: ArenaObjectID = 171 ; pub const ArenaObjectID_eArenaObjectID_GeckoStyleContext : root :: mozilla :: ArenaObjectID = 172 ; pub const ArenaObjectID_eArenaObjectID_nsLineBox : root :: mozilla :: ArenaObjectID = 173 ; pub const ArenaObjectID_eArenaObjectID_nsRuleNode : root :: mozilla :: ArenaObjectID = 174 ; pub const ArenaObjectID_eArenaObjectID_DisplayItemData : root :: mozilla :: ArenaObjectID = 175 ; pub const ArenaObjectID_eArenaObjectID_nsInheritedStyleData : root :: mozilla :: ArenaObjectID = 176 ; pub const ArenaObjectID_eArenaObjectID_nsResetStyleData : root :: mozilla :: ArenaObjectID = 177 ; pub const ArenaObjectID_eArenaObjectID_nsConditionalResetStyleData : root :: mozilla :: ArenaObjectID = 178 ; pub const ArenaObjectID_eArenaObjectID_nsConditionalResetStyleDataEntry : root :: mozilla :: ArenaObjectID = 179 ; pub const ArenaObjectID_eArenaObjectID_nsFrameList : root :: mozilla :: ArenaObjectID = 180 ; pub const ArenaObjectID_eArenaObjectID_CustomCounterStyle : root :: mozilla :: ArenaObjectID = 181 ; pub const ArenaObjectID_eArenaObjectID_DependentBuiltinCounterStyle : root :: mozilla :: ArenaObjectID = 182 ; pub const ArenaObjectID_eArenaObjectID_nsCallbackEventRequest : root :: mozilla :: ArenaObjectID = 183 ; pub const ArenaObjectID_eArenaObjectID_nsIntervalSet_Interval : root :: mozilla :: ArenaObjectID = 184 ; pub const ArenaObjectID_eArenaObjectID_CellData : root :: mozilla :: ArenaObjectID = 185 ; pub const ArenaObjectID_eArenaObjectID_BCCellData : root :: mozilla :: ArenaObjectID = 186 ; pub const ArenaObjectID_eArenaObjectID_nsStyleFont : root :: mozilla :: ArenaObjectID = 187 ; pub const ArenaObjectID_eArenaObjectID_nsStyleColor : root :: mozilla :: ArenaObjectID = 188 ; pub const ArenaObjectID_eArenaObjectID_nsStyleList : root :: mozilla :: ArenaObjectID = 189 ; pub const ArenaObjectID_eArenaObjectID_nsStyleText : root :: mozilla :: ArenaObjectID = 190 ; pub const ArenaObjectID_eArenaObjectID_nsStyleVisibility : root :: mozilla :: ArenaObjectID = 191 ; pub const ArenaObjectID_eArenaObjectID_nsStyleUserInterface : root :: mozilla :: ArenaObjectID = 192 ; pub const ArenaObjectID_eArenaObjectID_nsStyleTableBorder : root :: mozilla :: ArenaObjectID = 193 ; pub const ArenaObjectID_eArenaObjectID_nsStyleSVG : root :: mozilla :: ArenaObjectID = 194 ; pub const ArenaObjectID_eArenaObjectID_nsStyleVariables : root :: mozilla :: ArenaObjectID = 195 ; pub const ArenaObjectID_eArenaObjectID_nsStyleBackground : root :: mozilla :: ArenaObjectID = 196 ; pub const ArenaObjectID_eArenaObjectID_nsStylePosition : root :: mozilla :: ArenaObjectID = 197 ; pub const ArenaObjectID_eArenaObjectID_nsStyleTextReset : root :: mozilla :: ArenaObjectID = 198 ; pub const ArenaObjectID_eArenaObjectID_nsStyleDisplay : root :: mozilla :: ArenaObjectID = 199 ; pub const ArenaObjectID_eArenaObjectID_nsStyleContent : root :: mozilla :: ArenaObjectID = 200 ; pub const ArenaObjectID_eArenaObjectID_nsStyleUIReset : root :: mozilla :: ArenaObjectID = 201 ; pub const ArenaObjectID_eArenaObjectID_nsStyleTable : root :: mozilla :: ArenaObjectID = 202 ; pub const ArenaObjectID_eArenaObjectID_nsStyleMargin : root :: mozilla :: ArenaObjectID = 203 ; pub const ArenaObjectID_eArenaObjectID_nsStylePadding : root :: mozilla :: ArenaObjectID = 204 ; pub const ArenaObjectID_eArenaObjectID_nsStyleBorder : root :: mozilla :: ArenaObjectID = 205 ; pub const ArenaObjectID_eArenaObjectID_nsStyleOutline : root :: mozilla :: ArenaObjectID = 206 ; pub const ArenaObjectID_eArenaObjectID_nsStyleXUL : root :: mozilla :: ArenaObjectID = 207 ; pub const ArenaObjectID_eArenaObjectID_nsStyleSVGReset : root :: mozilla :: ArenaObjectID = 208 ; pub const ArenaObjectID_eArenaObjectID_nsStyleColumn : root :: mozilla :: ArenaObjectID = 209 ; pub const ArenaObjectID_eArenaObjectID_nsStyleEffects : root :: mozilla :: ArenaObjectID = 210 ; pub const ArenaObjectID_eArenaObjectID_COUNT : root :: mozilla :: ArenaObjectID = 211 ; pub type ArenaObjectID = :: std :: os :: raw :: c_uint ;
- /// A default deletion policy using plain old operator delete.
+ /// reference to T as long as T is in the list.
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct LinkedListElementTraits {
+ pub _address: u8,
+ }
+ pub type LinkedListElementTraits_RawType<T> = *mut T;
+ pub type LinkedListElementTraits_ConstRawType<T> = *mut T;
+ pub type LinkedListElementTraits_ClientType<T> = *mut T;
+ pub type LinkedListElementTraits_ConstClientType<T> = *mut T;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct WeakReference {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct FreePolicy {
+ pub _address: u8,
+ }
+ }
+ pub type Conditional_Type<A> = A;
+ pub const ArenaObjectID_eArenaObjectID_DummyBeforeFirstObjectID:
+ root::mozilla::ArenaObjectID = 171;
+ pub const ArenaObjectID_eArenaObjectID_GeckoStyleContext: root::mozilla::ArenaObjectID =
+ 172;
+ pub const ArenaObjectID_eArenaObjectID_nsLineBox: root::mozilla::ArenaObjectID = 173;
+ pub const ArenaObjectID_eArenaObjectID_nsRuleNode: root::mozilla::ArenaObjectID = 174;
+ pub const ArenaObjectID_eArenaObjectID_DisplayItemData: root::mozilla::ArenaObjectID = 175;
+ pub const ArenaObjectID_eArenaObjectID_nsInheritedStyleData: root::mozilla::ArenaObjectID =
+ 176;
+ pub const ArenaObjectID_eArenaObjectID_nsResetStyleData: root::mozilla::ArenaObjectID = 177;
+ pub const ArenaObjectID_eArenaObjectID_nsConditionalResetStyleData:
+ root::mozilla::ArenaObjectID = 178;
+ pub const ArenaObjectID_eArenaObjectID_nsConditionalResetStyleDataEntry:
+ root::mozilla::ArenaObjectID = 179;
+ pub const ArenaObjectID_eArenaObjectID_nsFrameList: root::mozilla::ArenaObjectID = 180;
+ pub const ArenaObjectID_eArenaObjectID_CustomCounterStyle: root::mozilla::ArenaObjectID =
+ 181;
+ pub const ArenaObjectID_eArenaObjectID_DependentBuiltinCounterStyle:
+ root::mozilla::ArenaObjectID = 182;
+ pub const ArenaObjectID_eArenaObjectID_nsCallbackEventRequest:
+ root::mozilla::ArenaObjectID = 183;
+ pub const ArenaObjectID_eArenaObjectID_nsIntervalSet_Interval:
+ root::mozilla::ArenaObjectID = 184;
+ pub const ArenaObjectID_eArenaObjectID_CellData: root::mozilla::ArenaObjectID = 185;
+ pub const ArenaObjectID_eArenaObjectID_BCCellData: root::mozilla::ArenaObjectID = 186;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleFont: root::mozilla::ArenaObjectID = 187;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleColor: root::mozilla::ArenaObjectID = 188;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleList: root::mozilla::ArenaObjectID = 189;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleText: root::mozilla::ArenaObjectID = 190;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleVisibility: root::mozilla::ArenaObjectID =
+ 191;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleUserInterface: root::mozilla::ArenaObjectID =
+ 192;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleTableBorder: root::mozilla::ArenaObjectID =
+ 193;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleSVG: root::mozilla::ArenaObjectID = 194;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleVariables: root::mozilla::ArenaObjectID = 195;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleBackground: root::mozilla::ArenaObjectID =
+ 196;
+ pub const ArenaObjectID_eArenaObjectID_nsStylePosition: root::mozilla::ArenaObjectID = 197;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleTextReset: root::mozilla::ArenaObjectID = 198;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleDisplay: root::mozilla::ArenaObjectID = 199;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleContent: root::mozilla::ArenaObjectID = 200;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleUIReset: root::mozilla::ArenaObjectID = 201;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleTable: root::mozilla::ArenaObjectID = 202;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleMargin: root::mozilla::ArenaObjectID = 203;
+ pub const ArenaObjectID_eArenaObjectID_nsStylePadding: root::mozilla::ArenaObjectID = 204;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleBorder: root::mozilla::ArenaObjectID = 205;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleOutline: root::mozilla::ArenaObjectID = 206;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleXUL: root::mozilla::ArenaObjectID = 207;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleSVGReset: root::mozilla::ArenaObjectID = 208;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleColumn: root::mozilla::ArenaObjectID = 209;
+ pub const ArenaObjectID_eArenaObjectID_nsStyleEffects: root::mozilla::ArenaObjectID = 210;
+ pub const ArenaObjectID_eArenaObjectID_COUNT: root::mozilla::ArenaObjectID = 211;
+ pub type ArenaObjectID = u32;
+ /// A default deletion policy using plain old operator delete.
///
/// Note that this type can be specialized, but authors should beware of the risk
/// that the specialization may at some point cease to match (either because it
@@ -34,9 +1121,29 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// This is a non-issue for types which are always incomplete (i.e. opaque handle
/// types), since |delete|-ing such a type will always trigger a compilation
- /// error.
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DefaultDelete { pub _address : u8 , } pub type MallocSizeOf = :: std :: option :: Option < unsafe extern "C" fn ( p : * const :: std :: os :: raw :: c_void ) -> usize > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ReverseIterator < IteratorT > { pub mCurrent : IteratorT , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < IteratorT > > , } pub type Array_iterator < T > = * mut T ; pub type Array_const_iterator < T > = * mut T ; pub type Array_reverse_iterator < T > = root :: mozilla :: ReverseIterator < T > ; pub type Array_const_reverse_iterator < T > = root :: mozilla :: ReverseIterator < T > ; pub mod css { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( u8 ) ]
- /// Enum defining the mode in which a sheet is to be parsed. This is
+ /// error.
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DefaultDelete {
+ pub _address: u8,
+ }
+ pub type MallocSizeOf =
+ ::std::option::Option<unsafe extern "C" fn(p: *const ::std::os::raw::c_void) -> usize>;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ReverseIterator<IteratorT> {
+ pub mCurrent: IteratorT,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<IteratorT>>,
+ }
+ pub type Array_iterator<T> = *mut T;
+ pub type Array_const_iterator<T> = *mut T;
+ pub type Array_reverse_iterator<T> = root::mozilla::ReverseIterator<T>;
+ pub type Array_const_reverse_iterator<T> = root::mozilla::ReverseIterator<T>;
+ pub mod css {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(u8)]
+ /// Enum defining the mode in which a sheet is to be parsed. This is
/// usually, but not always, the same as the cascade level at which the
/// sheet will apply (see nsStyleSet.h). Most of the Loader APIs only
/// support loading of author sheets.
@@ -63,91 +1170,2730 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// Agent sheets that do not use any unsafe rules could use
/// eSafeAgentSheetFeatures when creating the sheet. This enum value allows
/// Servo backend to recognize the sheets as the agent level, but Gecko
- /// backend will parse it under _author_ level.
- # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum SheetParsingMode { eAuthorSheetFeatures = 0 , eUserSheetFeatures = 1 , eAgentSheetFeatures = 2 , eSafeAgentSheetFeatures = 3 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct GroupRule { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ImageLoader { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct URLValueData__bindgen_vtable ( :: std :: os :: raw :: c_void ) ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct URLValueData { pub vtable_ : * const URLValueData__bindgen_vtable , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mURI : root :: nsMainThreadPtrHandle < root :: nsIURI > , pub mExtraData : root :: RefPtr < root :: mozilla :: URLExtraData > , pub mURIResolved : bool , pub mIsLocalRef : [ u8 ; 2usize ] , pub mMightHaveRef : [ u8 ; 2usize ] , pub mStrings : root :: mozilla :: css :: URLValueData_RustOrGeckoString , pub mUsingRustString : bool , pub mLoadedImage : bool , } pub type URLValueData_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct URLValueData_RustOrGeckoString { pub mString : root :: __BindgenUnionField < ::nsstring::nsStringRepr > , pub mRustString : root :: __BindgenUnionField < ::gecko_bindings::structs::ServoRawOffsetArc < root :: RustString > > , pub bindgen_union_field : [ u64 ; 2usize ] , } # [ test ] fn bindgen_test_layout_URLValueData_RustOrGeckoString ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLValueData_RustOrGeckoString > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( URLValueData_RustOrGeckoString ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLValueData_RustOrGeckoString > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLValueData_RustOrGeckoString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData_RustOrGeckoString ) ) . mString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData_RustOrGeckoString ) , "::" , stringify ! ( mString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData_RustOrGeckoString ) ) . mRustString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData_RustOrGeckoString ) , "::" , stringify ! ( mRustString ) ) ) ; } # [ test ] fn bindgen_test_layout_URLValueData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLValueData > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( URLValueData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLValueData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLValueData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mRefCnt as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mURI as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mExtraData as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mExtraData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mURIResolved as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mURIResolved ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mIsLocalRef as * const _ as usize } , 33usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mIsLocalRef ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mMightHaveRef as * const _ as usize } , 35usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mMightHaveRef ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mStrings as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mStrings ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mUsingRustString as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mUsingRustString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLValueData ) ) . mLoadedImage as * const _ as usize } , 57usize , concat ! ( "Alignment of field: " , stringify ! ( URLValueData ) , "::" , stringify ! ( mLoadedImage ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct URLValue { pub _base : root :: mozilla :: css :: URLValueData , } # [ test ] fn bindgen_test_layout_URLValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLValue > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( URLValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLValue ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ImageValue { pub _base : root :: mozilla :: css :: URLValueData , pub mRequests : [ u64 ; 4usize ] , } # [ test ] fn bindgen_test_layout_ImageValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ImageValue > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( ImageValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ImageValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ImageValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ImageValue ) ) . mRequests as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( ImageValue ) , "::" , stringify ! ( mRequests ) ) ) ; } # [ repr ( C ) ] pub struct GridNamedArea { pub mName : ::nsstring::nsStringRepr , pub mColumnStart : u32 , pub mColumnEnd : u32 , pub mRowStart : u32 , pub mRowEnd : u32 , } # [ test ] fn bindgen_test_layout_GridNamedArea ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GridNamedArea > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( GridNamedArea ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GridNamedArea > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GridNamedArea ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridNamedArea ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GridNamedArea ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridNamedArea ) ) . mColumnStart as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( GridNamedArea ) , "::" , stringify ! ( mColumnStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridNamedArea ) ) . mColumnEnd as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( GridNamedArea ) , "::" , stringify ! ( mColumnEnd ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridNamedArea ) ) . mRowStart as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( GridNamedArea ) , "::" , stringify ! ( mRowStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridNamedArea ) ) . mRowEnd as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( GridNamedArea ) , "::" , stringify ! ( mRowEnd ) ) ) ; } # [ repr ( C ) ] pub struct GridTemplateAreasValue { pub mNamedAreas : root :: nsTArray < root :: mozilla :: css :: GridNamedArea > , pub mTemplates : root :: nsTArray < ::nsstring::nsStringRepr > , pub mNColumns : u32 , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , } pub type GridTemplateAreasValue_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_GridTemplateAreasValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GridTemplateAreasValue > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( GridTemplateAreasValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GridTemplateAreasValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GridTemplateAreasValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridTemplateAreasValue ) ) . mNamedAreas as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GridTemplateAreasValue ) , "::" , stringify ! ( mNamedAreas ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridTemplateAreasValue ) ) . mTemplates as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( GridTemplateAreasValue ) , "::" , stringify ! ( mTemplates ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridTemplateAreasValue ) ) . mNColumns as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( GridTemplateAreasValue ) , "::" , stringify ! ( mNColumns ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GridTemplateAreasValue ) ) . mRefCnt as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( GridTemplateAreasValue ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct RGBAColorData { pub mR : f32 , pub mG : f32 , pub mB : f32 , pub mA : f32 , } # [ test ] fn bindgen_test_layout_RGBAColorData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < RGBAColorData > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( RGBAColorData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < RGBAColorData > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( RGBAColorData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const RGBAColorData ) ) . mR as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( RGBAColorData ) , "::" , stringify ! ( mR ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const RGBAColorData ) ) . mG as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( RGBAColorData ) , "::" , stringify ! ( mG ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const RGBAColorData ) ) . mB as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( RGBAColorData ) , "::" , stringify ! ( mB ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const RGBAColorData ) ) . mA as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( RGBAColorData ) , "::" , stringify ! ( mA ) ) ) ; } impl Clone for RGBAColorData { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ComplexColorData { pub mColor : root :: mozilla :: css :: RGBAColorData , pub mForegroundRatio : f32 , } # [ test ] fn bindgen_test_layout_ComplexColorData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ComplexColorData > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( ComplexColorData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ComplexColorData > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ComplexColorData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComplexColorData ) ) . mColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ComplexColorData ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComplexColorData ) ) . mForegroundRatio as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ComplexColorData ) , "::" , stringify ! ( mForegroundRatio ) ) ) ; } impl Clone for ComplexColorData { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ComplexColorValue { pub _base : root :: mozilla :: css :: ComplexColorData , pub mRefCnt : root :: nsAutoRefCnt , } pub type ComplexColorValue_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_ComplexColorValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ComplexColorValue > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ComplexColorValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ComplexColorValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ComplexColorValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComplexColorValue ) ) . mRefCnt as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ComplexColorValue ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SheetLoadData { _unused : [ u8 ; 0 ] }
- /// Style sheet reuse *
- # [ repr ( C ) ] pub struct LoaderReusableStyleSheets { pub mReusableSheets : root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > , } # [ test ] fn bindgen_test_layout_LoaderReusableStyleSheets ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LoaderReusableStyleSheets > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( LoaderReusableStyleSheets ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LoaderReusableStyleSheets > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( LoaderReusableStyleSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LoaderReusableStyleSheets ) ) . mReusableSheets as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( LoaderReusableStyleSheets ) , "::" , stringify ! ( mReusableSheets ) ) ) ; } # [ repr ( C ) ] pub struct Loader { pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mSheets : root :: nsAutoPtr < root :: mozilla :: css :: Loader_Sheets > , pub mParsingDatas : [ u64 ; 10usize ] , pub mPostedEvents : root :: mozilla :: css :: Loader_LoadDataArray , pub mObservers : [ u64 ; 2usize ] , pub mDocument : * mut root :: nsIDocument , pub mDocGroup : root :: RefPtr < root :: mozilla :: dom :: DocGroup > , pub mDatasToNotifyOn : u32 , pub mCompatMode : root :: nsCompatibility , pub mPreferredSheet : ::nsstring::nsStringRepr , pub mStyleBackendType : [ u8 ; 2usize ] , pub mEnabled : bool , pub mReporter : root :: nsCOMPtr , } pub use self :: super :: super :: super :: root :: mozilla :: net :: ReferrerPolicy as Loader_ReferrerPolicy ; pub type Loader_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Loader_cycleCollection { pub _base : root :: nsCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_Loader_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Loader_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( Loader_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Loader_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Loader_cycleCollection ) ) ) ; } impl Clone for Loader_cycleCollection { fn clone ( & self ) -> Self { * self } } pub type Loader_LoadDataArray = root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct Loader_Sheets { pub mCompleteSheets : [ u64 ; 4usize ] , pub mLoadingDatas : [ u64 ; 4usize ] , pub mPendingDatas : [ u64 ; 4usize ] , } # [ test ] fn bindgen_test_layout_Loader_Sheets ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Loader_Sheets > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( Loader_Sheets ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Loader_Sheets > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Loader_Sheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader_Sheets ) ) . mCompleteSheets as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Loader_Sheets ) , "::" , stringify ! ( mCompleteSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader_Sheets ) ) . mLoadingDatas as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( Loader_Sheets ) , "::" , stringify ! ( mLoadingDatas ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader_Sheets ) ) . mPendingDatas as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( Loader_Sheets ) , "::" , stringify ! ( mPendingDatas ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3css6Loader21_cycleCollectorGlobalE" ]
- pub static mut Loader__cycleCollectorGlobal : root :: mozilla :: css :: Loader_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_Loader ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Loader > ( ) , 176usize , concat ! ( "Size of: " , stringify ! ( Loader ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Loader > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Loader ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mSheets as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mParsingDatas as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mParsingDatas ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mPostedEvents as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mPostedEvents ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mObservers as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mObservers ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mDocument as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mDocument ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mDocGroup as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mDocGroup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mDatasToNotifyOn as * const _ as usize } , 136usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mDatasToNotifyOn ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mCompatMode as * const _ as usize } , 140usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mCompatMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mPreferredSheet as * const _ as usize } , 144usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mPreferredSheet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mStyleBackendType as * const _ as usize } , 160usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mStyleBackendType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mEnabled as * const _ as usize } , 162usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Loader ) ) . mReporter as * const _ as usize } , 168usize , concat ! ( "Alignment of field: " , stringify ! ( Loader ) , "::" , stringify ! ( mReporter ) ) ) ; } # [ repr ( C ) ] pub struct ErrorReporter { pub mError : root :: nsAutoString , pub mErrorLine : ::nsstring::nsStringRepr , pub mFileName : ::nsstring::nsStringRepr , pub mScanner : * const root :: nsCSSScanner , pub mSheet : * const root :: mozilla :: StyleSheet , pub mLoader : * const root :: mozilla :: css :: Loader , pub mURI : * mut root :: nsIURI , pub mInnerWindowID : u64 , pub mErrorLineNumber : u32 , pub mPrevErrorLineNumber : u32 , pub mErrorColNumber : u32 , } # [ test ] fn bindgen_test_layout_ErrorReporter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ErrorReporter > ( ) , 240usize , concat ! ( "Size of: " , stringify ! ( ErrorReporter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ErrorReporter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ErrorReporter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mError as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mError ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mErrorLine as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mErrorLine ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mFileName as * const _ as usize } , 168usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mFileName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mScanner as * const _ as usize } , 184usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mScanner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mSheet as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mSheet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mLoader as * const _ as usize } , 200usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mLoader ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mURI as * const _ as usize } , 208usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mInnerWindowID as * const _ as usize } , 216usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mInnerWindowID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mErrorLineNumber as * const _ as usize } , 224usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mErrorLineNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mPrevErrorLineNumber as * const _ as usize } , 228usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mPrevErrorLineNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ErrorReporter ) ) . mErrorColNumber as * const _ as usize } , 232usize , concat ! ( "Alignment of field: " , stringify ! ( ErrorReporter ) , "::" , stringify ! ( mErrorColNumber ) ) ) ; } # [ repr ( i32 ) ]
- /// Enum defining the type of URL matching function for a @-moz-document rule
- /// condition.
- # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum URLMatchingFunction { eURL = 0 , eURLPrefix = 1 , eDomain = 2 , eRegExp = 3 , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct Rule { pub _base : root :: nsIDOMCSSRule , pub _base_1 : root :: nsWrapperCache , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mSheet : * mut root :: mozilla :: StyleSheet , pub mParentRule : * mut root :: mozilla :: css :: GroupRule , pub mLineNumber : u32 , pub mColumnNumber : u32 , } pub type Rule_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Rule_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_Rule_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Rule_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( Rule_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Rule_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Rule_cycleCollection ) ) ) ; } impl Clone for Rule_cycleCollection { fn clone ( & self ) -> Self { * self } } pub const Rule_UNKNOWN_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 0 ; pub const Rule_CHARSET_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 1 ; pub const Rule_IMPORT_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 2 ; pub const Rule_NAMESPACE_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 3 ; pub const Rule_STYLE_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 4 ; pub const Rule_MEDIA_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 5 ; pub const Rule_FONT_FACE_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 6 ; pub const Rule_PAGE_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 7 ; pub const Rule_KEYFRAME_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 8 ; pub const Rule_KEYFRAMES_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 9 ; pub const Rule_DOCUMENT_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 10 ; pub const Rule_SUPPORTS_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 11 ; pub const Rule_FONT_FEATURE_VALUES_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 12 ; pub const Rule_COUNTER_STYLE_RULE : root :: mozilla :: css :: Rule__bindgen_ty_1 = 13 ; pub type Rule__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3css4Rule21_cycleCollectorGlobalE" ]
- pub static mut Rule__cycleCollectorGlobal : root :: mozilla :: css :: Rule_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_Rule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Rule > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( Rule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Rule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Rule ) ) ) ; } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ThreadSafeAutoRefCnt { pub mValue : u64 , } pub const ThreadSafeAutoRefCnt_isThreadSafe : bool = true ; # [ test ] fn bindgen_test_layout_ThreadSafeAutoRefCnt ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ThreadSafeAutoRefCnt > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ThreadSafeAutoRefCnt ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ThreadSafeAutoRefCnt > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ThreadSafeAutoRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ThreadSafeAutoRefCnt ) ) . mValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ThreadSafeAutoRefCnt ) , "::" , stringify ! ( mValue ) ) ) ; } pub type EnumeratedArray_ArrayType = u8 ; pub type EnumeratedArray_iterator = root :: mozilla :: EnumeratedArray_ArrayType ; pub type EnumeratedArray_const_iterator = root :: mozilla :: EnumeratedArray_ArrayType ; pub type EnumeratedArray_reverse_iterator = root :: mozilla :: EnumeratedArray_ArrayType ; pub type EnumeratedArray_const_reverse_iterator = root :: mozilla :: EnumeratedArray_ArrayType ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct LinkedListElement { pub mNext : * mut root :: mozilla :: LinkedListElement , pub mPrev : * mut root :: mozilla :: LinkedListElement , pub mIsSentinel : bool , } pub type LinkedListElement_Traits = root :: mozilla :: detail :: LinkedListElementTraits ; pub type LinkedListElement_RawType = root :: mozilla :: LinkedListElement_Traits ; pub type LinkedListElement_ConstRawType = root :: mozilla :: LinkedListElement_Traits ; pub type LinkedListElement_ClientType = root :: mozilla :: LinkedListElement_Traits ; pub type LinkedListElement_ConstClientType = root :: mozilla :: LinkedListElement_Traits ; pub const LinkedListElement_NodeKind_Normal : root :: mozilla :: LinkedListElement_NodeKind = 0 ; pub const LinkedListElement_NodeKind_Sentinel : root :: mozilla :: LinkedListElement_NodeKind = 0 ; pub type LinkedListElement_NodeKind = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct LinkedList { pub sentinel : root :: mozilla :: LinkedListElement , } pub type LinkedList_Traits = root :: mozilla :: detail :: LinkedListElementTraits ; pub type LinkedList_RawType = root :: mozilla :: LinkedList_Traits ; pub type LinkedList_ConstRawType = root :: mozilla :: LinkedList_Traits ; pub type LinkedList_ClientType = root :: mozilla :: LinkedList_Traits ; pub type LinkedList_ConstClientType = root :: mozilla :: LinkedList_Traits ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct LinkedList_Iterator { pub mCurrent : root :: mozilla :: LinkedList_RawType , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Maybe { pub _address : u8 , } pub type Maybe_ValueType < T > = T ; pub mod gfx { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; pub type Float = f32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct IntPointTyped { pub _address : u8 , } pub type IntPointTyped_ToInt = u32 ; pub type IntPointTyped_Coord = u8 ; pub type IntPointTyped_Super = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct FontVariation { pub mTag : u32 , pub mValue : f32 , } # [ test ] fn bindgen_test_layout_FontVariation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FontVariation > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( FontVariation ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FontVariation > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( FontVariation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontVariation ) ) . mTag as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( FontVariation ) , "::" , stringify ! ( mTag ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontVariation ) ) . mValue as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( FontVariation ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for FontVariation { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SourceSurface { _unused : [ u8 ; 0 ] } } pub mod layers { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct LayerManager { _unused : [ u8 ; 0 ] } } pub mod dom { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct AllOwningUnionBase { pub _address : u8 , } # [ test ] fn bindgen_test_layout_AllOwningUnionBase ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AllOwningUnionBase > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( AllOwningUnionBase ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AllOwningUnionBase > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( AllOwningUnionBase ) ) ) ; } impl Clone for AllOwningUnionBase { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GlobalObject { pub mGlobalJSObject : [ u64 ; 3usize ] , pub mCx : * mut root :: JSContext , pub mGlobalObject : * mut root :: nsISupports , } # [ test ] fn bindgen_test_layout_GlobalObject ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GlobalObject > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( GlobalObject ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GlobalObject > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GlobalObject ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GlobalObject ) ) . mGlobalJSObject as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GlobalObject ) , "::" , stringify ! ( mGlobalJSObject ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GlobalObject ) ) . mCx as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( GlobalObject ) , "::" , stringify ! ( mCx ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GlobalObject ) ) . mGlobalObject as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( GlobalObject ) , "::" , stringify ! ( mGlobalObject ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Sequence { pub _address : u8 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum CallerType { System = 0 , NonSystem = 1 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Nullable { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ClientSource { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct CSSImportRule { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ShadowRoot { _unused : [ u8 ; 0 ] }
- /// Struct that stores info on an attribute. The name and value must either both
+ /// backend will parse it under _author_ level.
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum SheetParsingMode {
+ eAuthorSheetFeatures = 0,
+ eUserSheetFeatures = 1,
+ eAgentSheetFeatures = 2,
+ eSafeAgentSheetFeatures = 3,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct GroupRule {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ImageLoader {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct URLValueData__bindgen_vtable(::std::os::raw::c_void);
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct URLValueData {
+ pub vtable_: *const URLValueData__bindgen_vtable,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mURI: root::nsMainThreadPtrHandle<root::nsIURI>,
+ pub mExtraData: root::RefPtr<root::mozilla::URLExtraData>,
+ pub mURIResolved: bool,
+ pub mIsLocalRef: [u8; 2usize],
+ pub mMightHaveRef: [u8; 2usize],
+ pub mStrings: root::mozilla::css::URLValueData_RustOrGeckoString,
+ pub mUsingRustString: bool,
+ pub mLoadedImage: bool,
+ }
+ pub type URLValueData_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct URLValueData_RustOrGeckoString {
+ pub mString: root::__BindgenUnionField<::nsstring::nsStringRepr>,
+ pub mRustString:
+ root::__BindgenUnionField<::gecko_bindings::structs::ServoRawOffsetArc<root::RustString>>,
+ pub bindgen_union_field: [u64; 2usize],
+ }
+ #[test]
+ fn bindgen_test_layout_URLValueData_RustOrGeckoString() {
+ assert_eq!(
+ ::std::mem::size_of::<URLValueData_RustOrGeckoString>(),
+ 16usize,
+ concat!("Size of: ", stringify!(URLValueData_RustOrGeckoString))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLValueData_RustOrGeckoString>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLValueData_RustOrGeckoString))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData_RustOrGeckoString>())).mString
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData_RustOrGeckoString),
+ "::",
+ stringify!(mString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData_RustOrGeckoString>())).mRustString
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData_RustOrGeckoString),
+ "::",
+ stringify!(mRustString)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_URLValueData() {
+ assert_eq!(
+ ::std::mem::size_of::<URLValueData>(),
+ 64usize,
+ concat!("Size of: ", stringify!(URLValueData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLValueData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLValueData))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mRefCnt as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLValueData>())).mURI as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mExtraData as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mExtraData)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mURIResolved as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mURIResolved)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mIsLocalRef as *const _ as usize
+ },
+ 33usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mIsLocalRef)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mMightHaveRef as *const _ as usize
+ },
+ 35usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mMightHaveRef)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mStrings as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mStrings)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mUsingRustString as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mUsingRustString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLValueData>())).mLoadedImage as *const _ as usize
+ },
+ 57usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLValueData),
+ "::",
+ stringify!(mLoadedImage)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct URLValue {
+ pub _base: root::mozilla::css::URLValueData,
+ }
+ #[test]
+ fn bindgen_test_layout_URLValue() {
+ assert_eq!(
+ ::std::mem::size_of::<URLValue>(),
+ 64usize,
+ concat!("Size of: ", stringify!(URLValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLValue))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ImageValue {
+ pub _base: root::mozilla::css::URLValueData,
+ pub mRequests: [u64; 4usize],
+ }
+ #[test]
+ fn bindgen_test_layout_ImageValue() {
+ assert_eq!(
+ ::std::mem::size_of::<ImageValue>(),
+ 96usize,
+ concat!("Size of: ", stringify!(ImageValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ImageValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ImageValue))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ImageValue>())).mRequests as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ImageValue),
+ "::",
+ stringify!(mRequests)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GridNamedArea {
+ pub mName: ::nsstring::nsStringRepr,
+ pub mColumnStart: u32,
+ pub mColumnEnd: u32,
+ pub mRowStart: u32,
+ pub mRowEnd: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_GridNamedArea() {
+ assert_eq!(
+ ::std::mem::size_of::<GridNamedArea>(),
+ 32usize,
+ concat!("Size of: ", stringify!(GridNamedArea))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GridNamedArea>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GridNamedArea))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GridNamedArea>())).mName as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridNamedArea),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridNamedArea>())).mColumnStart as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridNamedArea),
+ "::",
+ stringify!(mColumnStart)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridNamedArea>())).mColumnEnd as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridNamedArea),
+ "::",
+ stringify!(mColumnEnd)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridNamedArea>())).mRowStart as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridNamedArea),
+ "::",
+ stringify!(mRowStart)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridNamedArea>())).mRowEnd as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridNamedArea),
+ "::",
+ stringify!(mRowEnd)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GridTemplateAreasValue {
+ pub mNamedAreas: root::nsTArray<root::mozilla::css::GridNamedArea>,
+ pub mTemplates: root::nsTArray<::nsstring::nsStringRepr>,
+ pub mNColumns: u32,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ }
+ pub type GridTemplateAreasValue_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_GridTemplateAreasValue() {
+ assert_eq!(
+ ::std::mem::size_of::<GridTemplateAreasValue>(),
+ 32usize,
+ concat!("Size of: ", stringify!(GridTemplateAreasValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GridTemplateAreasValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GridTemplateAreasValue))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridTemplateAreasValue>())).mNamedAreas as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridTemplateAreasValue),
+ "::",
+ stringify!(mNamedAreas)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridTemplateAreasValue>())).mTemplates as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridTemplateAreasValue),
+ "::",
+ stringify!(mTemplates)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridTemplateAreasValue>())).mNColumns as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridTemplateAreasValue),
+ "::",
+ stringify!(mNColumns)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GridTemplateAreasValue>())).mRefCnt as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GridTemplateAreasValue),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct RGBAColorData {
+ pub mR: f32,
+ pub mG: f32,
+ pub mB: f32,
+ pub mA: f32,
+ }
+ #[test]
+ fn bindgen_test_layout_RGBAColorData() {
+ assert_eq!(
+ ::std::mem::size_of::<RGBAColorData>(),
+ 16usize,
+ concat!("Size of: ", stringify!(RGBAColorData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<RGBAColorData>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(RGBAColorData))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<RGBAColorData>())).mR as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(RGBAColorData),
+ "::",
+ stringify!(mR)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<RGBAColorData>())).mG as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(RGBAColorData),
+ "::",
+ stringify!(mG)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<RGBAColorData>())).mB as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(RGBAColorData),
+ "::",
+ stringify!(mB)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<RGBAColorData>())).mA as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(RGBAColorData),
+ "::",
+ stringify!(mA)
+ )
+ );
+ }
+ impl Clone for RGBAColorData {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ComplexColorData {
+ pub mColor: root::mozilla::css::RGBAColorData,
+ pub mForegroundRatio: f32,
+ }
+ #[test]
+ fn bindgen_test_layout_ComplexColorData() {
+ assert_eq!(
+ ::std::mem::size_of::<ComplexColorData>(),
+ 20usize,
+ concat!("Size of: ", stringify!(ComplexColorData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ComplexColorData>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(ComplexColorData))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComplexColorData>())).mColor as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComplexColorData),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComplexColorData>())).mForegroundRatio as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComplexColorData),
+ "::",
+ stringify!(mForegroundRatio)
+ )
+ );
+ }
+ impl Clone for ComplexColorData {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ComplexColorValue {
+ pub _base: root::mozilla::css::ComplexColorData,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type ComplexColorValue_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_ComplexColorValue() {
+ assert_eq!(
+ ::std::mem::size_of::<ComplexColorValue>(),
+ 32usize,
+ concat!("Size of: ", stringify!(ComplexColorValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ComplexColorValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ComplexColorValue))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComplexColorValue>())).mRefCnt as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComplexColorValue),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct SheetLoadData {
+ _unused: [u8; 0],
+ }
+ /// Style sheet reuse *
+ #[repr(C)]
+ pub struct LoaderReusableStyleSheets {
+ pub mReusableSheets: root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>,
+ }
+ #[test]
+ fn bindgen_test_layout_LoaderReusableStyleSheets() {
+ assert_eq!(
+ ::std::mem::size_of::<LoaderReusableStyleSheets>(),
+ 8usize,
+ concat!("Size of: ", stringify!(LoaderReusableStyleSheets))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LoaderReusableStyleSheets>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(LoaderReusableStyleSheets))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LoaderReusableStyleSheets>())).mReusableSheets
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LoaderReusableStyleSheets),
+ "::",
+ stringify!(mReusableSheets)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct Loader {
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mSheets: root::nsAutoPtr<root::mozilla::css::Loader_Sheets>,
+ pub mParsingDatas: [u64; 10usize],
+ pub mPostedEvents: root::mozilla::css::Loader_LoadDataArray,
+ pub mObservers: [u64; 2usize],
+ pub mDocument: *mut root::nsIDocument,
+ pub mDocGroup: root::RefPtr<root::mozilla::dom::DocGroup>,
+ pub mDatasToNotifyOn: u32,
+ pub mCompatMode: root::nsCompatibility,
+ pub mPreferredSheet: ::nsstring::nsStringRepr,
+ pub mStyleBackendType: [u8; 2usize],
+ pub mEnabled: bool,
+ pub mReporter: root::nsCOMPtr,
+ }
+ pub use self :: super :: super :: super :: root :: mozilla :: net :: ReferrerPolicy as Loader_ReferrerPolicy;
+ pub type Loader_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Loader_cycleCollection {
+ pub _base: root::nsCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_Loader_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<Loader_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(Loader_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Loader_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Loader_cycleCollection))
+ );
+ }
+ impl Clone for Loader_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type Loader_LoadDataArray =
+ root::nsTArray<root::RefPtr<root::mozilla::css::SheetLoadData>>;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct Loader_Sheets {
+ pub mCompleteSheets: [u64; 4usize],
+ pub mLoadingDatas: [u64; 4usize],
+ pub mPendingDatas: [u64; 4usize],
+ }
+ #[test]
+ fn bindgen_test_layout_Loader_Sheets() {
+ assert_eq!(
+ ::std::mem::size_of::<Loader_Sheets>(),
+ 96usize,
+ concat!("Size of: ", stringify!(Loader_Sheets))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Loader_Sheets>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Loader_Sheets))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader_Sheets>())).mCompleteSheets as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader_Sheets),
+ "::",
+ stringify!(mCompleteSheets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader_Sheets>())).mLoadingDatas as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader_Sheets),
+ "::",
+ stringify!(mLoadingDatas)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader_Sheets>())).mPendingDatas as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader_Sheets),
+ "::",
+ stringify!(mPendingDatas)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3css6Loader21_cycleCollectorGlobalE"]
+ pub static mut Loader__cycleCollectorGlobal:
+ root::mozilla::css::Loader_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_Loader() {
+ assert_eq!(
+ ::std::mem::size_of::<Loader>(),
+ 176usize,
+ concat!("Size of: ", stringify!(Loader))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Loader>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Loader))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mSheets as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mSheets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader>())).mParsingDatas as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mParsingDatas)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader>())).mPostedEvents as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mPostedEvents)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mObservers as *const _ as usize },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mObservers)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mDocument as *const _ as usize },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mDocGroup as *const _ as usize },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mDocGroup)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader>())).mDatasToNotifyOn as *const _ as usize
+ },
+ 136usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mDatasToNotifyOn)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mCompatMode as *const _ as usize },
+ 140usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mCompatMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader>())).mPreferredSheet as *const _ as usize
+ },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mPreferredSheet)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Loader>())).mStyleBackendType as *const _ as usize
+ },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mStyleBackendType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mEnabled as *const _ as usize },
+ 162usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Loader>())).mReporter as *const _ as usize },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Loader),
+ "::",
+ stringify!(mReporter)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct ErrorReporter {
+ pub mError: root::nsAutoString,
+ pub mErrorLine: ::nsstring::nsStringRepr,
+ pub mFileName: ::nsstring::nsStringRepr,
+ pub mScanner: *const root::nsCSSScanner,
+ pub mSheet: *const root::mozilla::StyleSheet,
+ pub mLoader: *const root::mozilla::css::Loader,
+ pub mURI: *mut root::nsIURI,
+ pub mInnerWindowID: u64,
+ pub mErrorLineNumber: u32,
+ pub mPrevErrorLineNumber: u32,
+ pub mErrorColNumber: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_ErrorReporter() {
+ assert_eq!(
+ ::std::mem::size_of::<ErrorReporter>(),
+ 240usize,
+ concat!("Size of: ", stringify!(ErrorReporter))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ErrorReporter>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ErrorReporter))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mError as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mError)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mErrorLine as *const _ as usize
+ },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mErrorLine)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mFileName as *const _ as usize
+ },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mFileName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mScanner as *const _ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mScanner)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mSheet as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mSheet)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mLoader as *const _ as usize
+ },
+ 200usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mLoader)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ErrorReporter>())).mURI as *const _ as usize },
+ 208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mInnerWindowID as *const _
+ as usize
+ },
+ 216usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mInnerWindowID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mErrorLineNumber as *const _
+ as usize
+ },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mErrorLineNumber)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mPrevErrorLineNumber as *const _
+ as usize
+ },
+ 228usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mPrevErrorLineNumber)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ErrorReporter>())).mErrorColNumber as *const _
+ as usize
+ },
+ 232usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ErrorReporter),
+ "::",
+ stringify!(mErrorColNumber)
+ )
+ );
+ }
+ #[repr(i32)]
+ /// Enum defining the type of URL matching function for a @-moz-document rule
+ /// condition.
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum URLMatchingFunction {
+ eURL = 0,
+ eURLPrefix = 1,
+ eDomain = 2,
+ eRegExp = 3,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct Rule {
+ pub _base: root::nsISupports,
+ pub _base_1: root::nsWrapperCache,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mSheet: *mut root::mozilla::StyleSheet,
+ pub mParentRule: *mut root::mozilla::css::GroupRule,
+ pub mLineNumber: u32,
+ pub mColumnNumber: u32,
+ }
+ pub type Rule_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Rule_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_Rule_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<Rule_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(Rule_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Rule_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Rule_cycleCollection))
+ );
+ }
+ impl Clone for Rule_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const Rule_UNKNOWN_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 0;
+ pub const Rule_CHARSET_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 1;
+ pub const Rule_IMPORT_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 2;
+ pub const Rule_NAMESPACE_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 3;
+ pub const Rule_STYLE_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 4;
+ pub const Rule_MEDIA_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 5;
+ pub const Rule_FONT_FACE_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 6;
+ pub const Rule_PAGE_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 7;
+ pub const Rule_KEYFRAME_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 8;
+ pub const Rule_KEYFRAMES_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 9;
+ pub const Rule_DOCUMENT_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 10;
+ pub const Rule_SUPPORTS_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 11;
+ pub const Rule_FONT_FEATURE_VALUES_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 12;
+ pub const Rule_COUNTER_STYLE_RULE: root::mozilla::css::Rule__bindgen_ty_1 = 13;
+ pub type Rule__bindgen_ty_1 = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3css4Rule21_cycleCollectorGlobalE"]
+ pub static mut Rule__cycleCollectorGlobal: root::mozilla::css::Rule_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_Rule() {
+ assert_eq!(
+ ::std::mem::size_of::<Rule>(),
+ 64usize,
+ concat!("Size of: ", stringify!(Rule))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Rule>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Rule))
+ );
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ThreadSafeAutoRefCnt {
+ pub mValue: u64,
+ }
+ pub const ThreadSafeAutoRefCnt_isThreadSafe: bool = true;
+ #[test]
+ fn bindgen_test_layout_ThreadSafeAutoRefCnt() {
+ assert_eq!(
+ ::std::mem::size_of::<ThreadSafeAutoRefCnt>(),
+ 8usize,
+ concat!("Size of: ", stringify!(ThreadSafeAutoRefCnt))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ThreadSafeAutoRefCnt>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ThreadSafeAutoRefCnt))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ThreadSafeAutoRefCnt>())).mValue as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ThreadSafeAutoRefCnt),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ pub type EnumeratedArray_ArrayType = u8;
+ pub type EnumeratedArray_iterator = root::mozilla::EnumeratedArray_ArrayType;
+ pub type EnumeratedArray_const_iterator = root::mozilla::EnumeratedArray_ArrayType;
+ pub type EnumeratedArray_reverse_iterator = root::mozilla::EnumeratedArray_ArrayType;
+ pub type EnumeratedArray_const_reverse_iterator = root::mozilla::EnumeratedArray_ArrayType;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct LinkedListElement {
+ pub mNext: *mut root::mozilla::LinkedListElement,
+ pub mPrev: *mut root::mozilla::LinkedListElement,
+ pub mIsSentinel: bool,
+ }
+ pub type LinkedListElement_Traits = root::mozilla::detail::LinkedListElementTraits;
+ pub type LinkedListElement_RawType = root::mozilla::LinkedListElement_Traits;
+ pub type LinkedListElement_ConstRawType = root::mozilla::LinkedListElement_Traits;
+ pub type LinkedListElement_ClientType = root::mozilla::LinkedListElement_Traits;
+ pub type LinkedListElement_ConstClientType = root::mozilla::LinkedListElement_Traits;
+ pub const LinkedListElement_NodeKind_Normal: root::mozilla::LinkedListElement_NodeKind = 0;
+ pub const LinkedListElement_NodeKind_Sentinel: root::mozilla::LinkedListElement_NodeKind =
+ 0;
+ pub type LinkedListElement_NodeKind = i32;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct LinkedList {
+ pub sentinel: root::mozilla::LinkedListElement,
+ }
+ pub type LinkedList_Traits = root::mozilla::detail::LinkedListElementTraits;
+ pub type LinkedList_RawType = root::mozilla::LinkedList_Traits;
+ pub type LinkedList_ConstRawType = root::mozilla::LinkedList_Traits;
+ pub type LinkedList_ClientType = root::mozilla::LinkedList_Traits;
+ pub type LinkedList_ConstClientType = root::mozilla::LinkedList_Traits;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct LinkedList_Iterator {
+ pub mCurrent: root::mozilla::LinkedList_RawType,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Maybe {
+ pub _address: u8,
+ }
+ pub type Maybe_ValueType<T> = T;
+ pub mod gfx {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ pub type Float = f32;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct IntPointTyped {
+ pub _address: u8,
+ }
+ pub type IntPointTyped_ToInt = u32;
+ pub type IntPointTyped_Coord = u8;
+ pub type IntPointTyped_Super = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct FontVariation {
+ pub mTag: u32,
+ pub mValue: f32,
+ }
+ #[test]
+ fn bindgen_test_layout_FontVariation() {
+ assert_eq!(
+ ::std::mem::size_of::<FontVariation>(),
+ 8usize,
+ concat!("Size of: ", stringify!(FontVariation))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FontVariation>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(FontVariation))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<FontVariation>())).mTag as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontVariation),
+ "::",
+ stringify!(mTag)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontVariation>())).mValue as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontVariation),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for FontVariation {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct SourceSurface {
+ _unused: [u8; 0],
+ }
+ }
+ pub mod layers {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct LayerManager {
+ _unused: [u8; 0],
+ }
+ }
+ pub mod dom {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct AllOwningUnionBase {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_AllOwningUnionBase() {
+ assert_eq!(
+ ::std::mem::size_of::<AllOwningUnionBase>(),
+ 1usize,
+ concat!("Size of: ", stringify!(AllOwningUnionBase))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<AllOwningUnionBase>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(AllOwningUnionBase))
+ );
+ }
+ impl Clone for AllOwningUnionBase {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GlobalObject {
+ pub mGlobalJSObject: [u64; 3usize],
+ pub mCx: *mut root::JSContext,
+ pub mGlobalObject: *mut root::nsISupports,
+ }
+ #[test]
+ fn bindgen_test_layout_GlobalObject() {
+ assert_eq!(
+ ::std::mem::size_of::<GlobalObject>(),
+ 40usize,
+ concat!("Size of: ", stringify!(GlobalObject))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GlobalObject>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GlobalObject))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GlobalObject>())).mGlobalJSObject as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GlobalObject),
+ "::",
+ stringify!(mGlobalJSObject)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GlobalObject>())).mCx as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GlobalObject),
+ "::",
+ stringify!(mCx)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GlobalObject>())).mGlobalObject as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GlobalObject),
+ "::",
+ stringify!(mGlobalObject)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Sequence {
+ pub _address: u8,
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum CallerType {
+ System = 0,
+ NonSystem = 1,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Nullable {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ClientSource {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct CSSImportRule {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ShadowRoot {
+ _unused: [u8; 0],
+ }
+ /// Struct that stores info on an attribute. The name and value must either both
/// be null or both be non-null.
///
/// Note that, just as the pointers returned by GetAttrNameAt, the pointers that
/// this struct hold are only valid until the element or its attributes are
- /// mutated (directly or via script).
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct BorrowedAttrInfo { pub mName : * const root :: nsAttrName , pub mValue : * const root :: nsAttrValue , } # [ test ] fn bindgen_test_layout_BorrowedAttrInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < BorrowedAttrInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( BorrowedAttrInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < BorrowedAttrInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( BorrowedAttrInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const BorrowedAttrInfo ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( BorrowedAttrInfo ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const BorrowedAttrInfo ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( BorrowedAttrInfo ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for BorrowedAttrInfo { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct NodeInfo { pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mDocument : * mut root :: nsIDocument , pub mInner : root :: mozilla :: dom :: NodeInfo_NodeInfoInner , pub mOwnerManager : root :: RefPtr < root :: nsNodeInfoManager > , pub mQualifiedName : ::nsstring::nsStringRepr , pub mNodeName : ::nsstring::nsStringRepr , pub mLocalName : ::nsstring::nsStringRepr , } pub type NodeInfo_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct NodeInfo_cycleCollection { pub _base : root :: nsCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_NodeInfo_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < NodeInfo_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( NodeInfo_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < NodeInfo_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( NodeInfo_cycleCollection ) ) ) ; } impl Clone for NodeInfo_cycleCollection { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct NodeInfo_NodeInfoInner { pub mName : * const root :: nsAtom , pub mPrefix : * mut root :: nsAtom , pub mNamespaceID : i32 , pub mNodeType : u16 , pub mNameString : * const root :: nsAString , pub mExtraName : * mut root :: nsAtom , pub mHash : root :: PLHashNumber , pub mHashInitialized : bool , } # [ test ] fn bindgen_test_layout_NodeInfo_NodeInfoInner ( ) { assert_eq ! ( :: std :: mem :: size_of :: < NodeInfo_NodeInfoInner > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( NodeInfo_NodeInfoInner ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < NodeInfo_NodeInfoInner > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( NodeInfo_NodeInfoInner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mPrefix as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mPrefix ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mNamespaceID as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mNamespaceID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mNodeType as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mNodeType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mNameString as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mNameString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mExtraName as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mExtraName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mHash as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mHash ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) . mHashInitialized as * const _ as usize } , 44usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo_NodeInfoInner ) , "::" , stringify ! ( mHashInitialized ) ) ) ; } impl Clone for NodeInfo_NodeInfoInner { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom8NodeInfo21_cycleCollectorGlobalE" ]
- pub static mut NodeInfo__cycleCollectorGlobal : root :: mozilla :: dom :: NodeInfo_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_NodeInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < NodeInfo > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( NodeInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < NodeInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( NodeInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mDocument as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mDocument ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mInner as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mInner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mOwnerManager as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mOwnerManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mQualifiedName as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mQualifiedName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mNodeName as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mNodeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NodeInfo ) ) . mLocalName as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( NodeInfo ) , "::" , stringify ! ( mLocalName ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct EventTarget { pub _base : root :: nsIDOMEventTarget , pub _base_1 : root :: nsWrapperCache , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct EventTarget_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_EventTarget ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EventTarget > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( EventTarget ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EventTarget > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EventTarget ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct BoxQuadOptions { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ConvertCoordinateOptions { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DocGroup { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DOMPoint { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DOMQuad { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TextOrElementOrDocument { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DOMPointInit { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TabGroup { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct DispatcherTrait__bindgen_vtable ( :: std :: os :: raw :: c_void ) ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct DispatcherTrait { pub vtable_ : * const DispatcherTrait__bindgen_vtable , } # [ test ] fn bindgen_test_layout_DispatcherTrait ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DispatcherTrait > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( DispatcherTrait ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DispatcherTrait > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DispatcherTrait ) ) ) ; } impl Clone for DispatcherTrait { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AudioContext { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Performance { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ServiceWorkerRegistration { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TimeoutManager { _unused : [ u8 ; 0 ] } pub const LargeAllocStatus_NONE : root :: mozilla :: dom :: LargeAllocStatus = 0 ; pub const LargeAllocStatus_SUCCESS : root :: mozilla :: dom :: LargeAllocStatus = 1 ; pub const LargeAllocStatus_NON_GET : root :: mozilla :: dom :: LargeAllocStatus = 2 ; pub const LargeAllocStatus_NON_E10S : root :: mozilla :: dom :: LargeAllocStatus = 3 ; pub const LargeAllocStatus_NOT_ONLY_TOPLEVEL_IN_TABGROUP : root :: mozilla :: dom :: LargeAllocStatus = 4 ; pub const LargeAllocStatus_NON_WIN32 : root :: mozilla :: dom :: LargeAllocStatus = 5 ; pub type LargeAllocStatus = u8 ; pub mod prototypes { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: super :: root ; } pub mod constructors { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: super :: root ; } pub mod namedpropertiesobjects { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: super :: root ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct StyleSheetList { _unused : [ u8 ; 0 ] }
- /// A class meant to be shared by ShadowRoot and Document, that holds a list of
+ /// mutated (directly or via script).
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct BorrowedAttrInfo {
+ pub mName: *const root::nsAttrName,
+ pub mValue: *const root::nsAttrValue,
+ }
+ #[test]
+ fn bindgen_test_layout_BorrowedAttrInfo() {
+ assert_eq!(
+ ::std::mem::size_of::<BorrowedAttrInfo>(),
+ 16usize,
+ concat!("Size of: ", stringify!(BorrowedAttrInfo))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<BorrowedAttrInfo>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(BorrowedAttrInfo))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<BorrowedAttrInfo>())).mName as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(BorrowedAttrInfo),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<BorrowedAttrInfo>())).mValue as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(BorrowedAttrInfo),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for BorrowedAttrInfo {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct NodeInfo {
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mDocument: *mut root::nsIDocument,
+ pub mInner: root::mozilla::dom::NodeInfo_NodeInfoInner,
+ pub mOwnerManager: root::RefPtr<root::nsNodeInfoManager>,
+ pub mQualifiedName: ::nsstring::nsStringRepr,
+ pub mNodeName: ::nsstring::nsStringRepr,
+ pub mLocalName: ::nsstring::nsStringRepr,
+ }
+ pub type NodeInfo_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct NodeInfo_cycleCollection {
+ pub _base: root::nsCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_NodeInfo_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<NodeInfo_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(NodeInfo_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<NodeInfo_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(NodeInfo_cycleCollection))
+ );
+ }
+ impl Clone for NodeInfo_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct NodeInfo_NodeInfoInner {
+ pub mName: *const root::nsAtom,
+ pub mPrefix: *mut root::nsAtom,
+ pub mNamespaceID: i32,
+ pub mNodeType: u16,
+ pub mNameString: *const root::nsAString,
+ pub mExtraName: *mut root::nsAtom,
+ pub mHash: root::PLHashNumber,
+ pub mHashInitialized: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_NodeInfo_NodeInfoInner() {
+ assert_eq!(
+ ::std::mem::size_of::<NodeInfo_NodeInfoInner>(),
+ 48usize,
+ concat!("Size of: ", stringify!(NodeInfo_NodeInfoInner))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<NodeInfo_NodeInfoInner>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(NodeInfo_NodeInfoInner))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mName as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mPrefix as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mPrefix)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mNamespaceID as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mNamespaceID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mNodeType as *const _
+ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mNodeType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mNameString as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mNameString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mExtraName as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mExtraName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mHash as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mHash)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo_NodeInfoInner>())).mHashInitialized
+ as *const _ as usize
+ },
+ 44usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo_NodeInfoInner),
+ "::",
+ stringify!(mHashInitialized)
+ )
+ );
+ }
+ impl Clone for NodeInfo_NodeInfoInner {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom8NodeInfo21_cycleCollectorGlobalE"]
+ pub static mut NodeInfo__cycleCollectorGlobal:
+ root::mozilla::dom::NodeInfo_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_NodeInfo() {
+ assert_eq!(
+ ::std::mem::size_of::<NodeInfo>(),
+ 120usize,
+ concat!("Size of: ", stringify!(NodeInfo))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<NodeInfo>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(NodeInfo))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<NodeInfo>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<NodeInfo>())).mDocument as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<NodeInfo>())).mInner as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mInner)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo>())).mOwnerManager as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mOwnerManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NodeInfo>())).mQualifiedName as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mQualifiedName)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<NodeInfo>())).mNodeName as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mNodeName)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<NodeInfo>())).mLocalName as *const _ as usize },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NodeInfo),
+ "::",
+ stringify!(mLocalName)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct EventTarget {
+ pub _base: root::nsIDOMEventTarget,
+ pub _base_1: root::nsWrapperCache,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct EventTarget_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_EventTarget() {
+ assert_eq!(
+ ::std::mem::size_of::<EventTarget>(),
+ 32usize,
+ concat!("Size of: ", stringify!(EventTarget))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<EventTarget>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(EventTarget))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct BoxQuadOptions {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ConvertCoordinateOptions {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DocGroup {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DOMPoint {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DOMQuad {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct TextOrElementOrDocument {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DOMPointInit {
+ _unused: [u8; 0],
+ }
+ pub const VisibilityState_Hidden: root::mozilla::dom::VisibilityState = 0;
+ pub const VisibilityState_Visible: root::mozilla::dom::VisibilityState = 1;
+ pub const VisibilityState_EndGuard_: root::mozilla::dom::VisibilityState = 2;
+ pub type VisibilityState = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct IPCClientInfo {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct TabGroup {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct DispatcherTrait__bindgen_vtable(::std::os::raw::c_void);
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct DispatcherTrait {
+ pub vtable_: *const DispatcherTrait__bindgen_vtable,
+ }
+ #[test]
+ fn bindgen_test_layout_DispatcherTrait() {
+ assert_eq!(
+ ::std::mem::size_of::<DispatcherTrait>(),
+ 8usize,
+ concat!("Size of: ", stringify!(DispatcherTrait))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<DispatcherTrait>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(DispatcherTrait))
+ );
+ }
+ impl Clone for DispatcherTrait {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct IPCServiceWorkerDescriptor {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct AudioContext {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Performance {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ServiceWorkerRegistration {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct TimeoutManager {
+ _unused: [u8; 0],
+ }
+ pub const LargeAllocStatus_NONE: root::mozilla::dom::LargeAllocStatus = 0;
+ pub const LargeAllocStatus_SUCCESS: root::mozilla::dom::LargeAllocStatus = 1;
+ pub const LargeAllocStatus_NON_GET: root::mozilla::dom::LargeAllocStatus = 2;
+ pub const LargeAllocStatus_NON_E10S: root::mozilla::dom::LargeAllocStatus = 3;
+ pub const LargeAllocStatus_NOT_ONLY_TOPLEVEL_IN_TABGROUP:
+ root::mozilla::dom::LargeAllocStatus = 4;
+ pub const LargeAllocStatus_NON_WIN32: root::mozilla::dom::LargeAllocStatus = 5;
+ pub type LargeAllocStatus = u8;
+ pub mod prototypes {
+ #[allow(unused_imports)]
+ use self::super::super::super::super::root;
+ }
+ pub mod constructors {
+ #[allow(unused_imports)]
+ use self::super::super::super::super::root;
+ }
+ pub mod namedpropertiesobjects {
+ #[allow(unused_imports)]
+ use self::super::super::super::super::root;
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct StyleSheetList {
+ _unused: [u8; 0],
+ }
+ /// A class meant to be shared by ShadowRoot and Document, that holds a list of
/// stylesheets.
///
/// TODO(emilio, bug 1418159): In the future this should hold most of the
- /// relevant style state, this should allow us to fix bug 548397.
- # [ repr ( C ) ] pub struct DocumentOrShadowRoot { pub mStyleSheets : root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > , pub mDOMStyleSheets : root :: RefPtr < root :: mozilla :: dom :: StyleSheetList > , pub mIdentifierMap : [ u64 ; 4usize ] , pub mAsNode : * mut root :: nsINode , pub mKind : root :: mozilla :: dom :: DocumentOrShadowRoot_Kind , } pub const DocumentOrShadowRoot_Kind_Document : root :: mozilla :: dom :: DocumentOrShadowRoot_Kind = 0 ; pub const DocumentOrShadowRoot_Kind_ShadowRoot : root :: mozilla :: dom :: DocumentOrShadowRoot_Kind = 1 ; pub type DocumentOrShadowRoot_Kind = :: std :: os :: raw :: c_int ; # [ test ] fn bindgen_test_layout_DocumentOrShadowRoot ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DocumentOrShadowRoot > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( DocumentOrShadowRoot ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DocumentOrShadowRoot > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DocumentOrShadowRoot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DocumentOrShadowRoot ) ) . mStyleSheets as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( DocumentOrShadowRoot ) , "::" , stringify ! ( mStyleSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DocumentOrShadowRoot ) ) . mDOMStyleSheets as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( DocumentOrShadowRoot ) , "::" , stringify ! ( mDOMStyleSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DocumentOrShadowRoot ) ) . mIdentifierMap as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( DocumentOrShadowRoot ) , "::" , stringify ! ( mIdentifierMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DocumentOrShadowRoot ) ) . mAsNode as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( DocumentOrShadowRoot ) , "::" , stringify ! ( mAsNode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DocumentOrShadowRoot ) ) . mKind as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( DocumentOrShadowRoot ) , "::" , stringify ! ( mKind ) ) ) ; } pub const VisibilityState_Hidden : root :: mozilla :: dom :: VisibilityState = 0 ; pub const VisibilityState_Visible : root :: mozilla :: dom :: VisibilityState = 1 ; pub const VisibilityState_Prerender : root :: mozilla :: dom :: VisibilityState = 2 ; pub const VisibilityState_EndGuard_ : root :: mozilla :: dom :: VisibilityState = 3 ; pub type VisibilityState = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AnonymousContent { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct FontFaceSet { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct FullscreenRequest { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ImageTracker { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Link { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct MediaQueryList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct XPathEvaluator { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct FrameRequestCallback { pub _bindgen_opaque_blob : [ u64 ; 6usize ] , } # [ test ] fn bindgen_test_layout_FrameRequestCallback ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FrameRequestCallback > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( FrameRequestCallback ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FrameRequestCallback > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FrameRequestCallback ) ) ) ; } impl Clone for FrameRequestCallback { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct URLParams { pub mParams : root :: nsTArray < root :: mozilla :: dom :: URLParams_Param > , } # [ repr ( C ) ] pub struct URLParams_ForEachIterator__bindgen_vtable ( :: std :: os :: raw :: c_void ) ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct URLParams_ForEachIterator { pub vtable_ : * const URLParams_ForEachIterator__bindgen_vtable , } # [ test ] fn bindgen_test_layout_URLParams_ForEachIterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLParams_ForEachIterator > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( URLParams_ForEachIterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLParams_ForEachIterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLParams_ForEachIterator ) ) ) ; } impl Clone for URLParams_ForEachIterator { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct URLParams_Param { pub mKey : ::nsstring::nsStringRepr , pub mValue : ::nsstring::nsStringRepr , } # [ test ] fn bindgen_test_layout_URLParams_Param ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLParams_Param > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( URLParams_Param ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLParams_Param > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLParams_Param ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLParams_Param ) ) . mKey as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( URLParams_Param ) , "::" , stringify ! ( mKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLParams_Param ) ) . mValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( URLParams_Param ) , "::" , stringify ! ( mValue ) ) ) ; } # [ test ] fn bindgen_test_layout_URLParams ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLParams > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( URLParams ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLParams > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLParams ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLParams ) ) . mParams as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( URLParams ) , "::" , stringify ! ( mParams ) ) ) ; } # [ repr ( C ) ] pub struct SRIMetadata { pub mHashes : root :: nsTArray < root :: nsCString > , pub mIntegrityString : ::nsstring::nsStringRepr , pub mAlgorithm : root :: nsCString , pub mAlgorithmType : i8 , pub mEmpty : bool , } pub const SRIMetadata_MAX_ALTERNATE_HASHES : u32 = 256 ; pub const SRIMetadata_UNKNOWN_ALGORITHM : i8 = -1 ; # [ test ] fn bindgen_test_layout_SRIMetadata ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SRIMetadata > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( SRIMetadata ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SRIMetadata > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SRIMetadata ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SRIMetadata ) ) . mHashes as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( SRIMetadata ) , "::" , stringify ! ( mHashes ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SRIMetadata ) ) . mIntegrityString as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( SRIMetadata ) , "::" , stringify ! ( mIntegrityString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SRIMetadata ) ) . mAlgorithm as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( SRIMetadata ) , "::" , stringify ! ( mAlgorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SRIMetadata ) ) . mAlgorithmType as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( SRIMetadata ) , "::" , stringify ! ( mAlgorithmType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SRIMetadata ) ) . mEmpty as * const _ as usize } , 41usize , concat ! ( "Alignment of field: " , stringify ! ( SRIMetadata ) , "::" , stringify ! ( mEmpty ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct OwningNodeOrString { pub mType : root :: mozilla :: dom :: OwningNodeOrString_Type , pub mValue : root :: mozilla :: dom :: OwningNodeOrString_Value , } pub const OwningNodeOrString_Type_eUninitialized : root :: mozilla :: dom :: OwningNodeOrString_Type = 0 ; pub const OwningNodeOrString_Type_eNode : root :: mozilla :: dom :: OwningNodeOrString_Type = 1 ; pub const OwningNodeOrString_Type_eString : root :: mozilla :: dom :: OwningNodeOrString_Type = 2 ; pub type OwningNodeOrString_Type = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct OwningNodeOrString_Value { pub _bindgen_opaque_blob : [ u64 ; 2usize ] , } # [ test ] fn bindgen_test_layout_OwningNodeOrString_Value ( ) { assert_eq ! ( :: std :: mem :: size_of :: < OwningNodeOrString_Value > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( OwningNodeOrString_Value ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < OwningNodeOrString_Value > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( OwningNodeOrString_Value ) ) ) ; } impl Clone for OwningNodeOrString_Value { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_OwningNodeOrString ( ) { assert_eq ! ( :: std :: mem :: size_of :: < OwningNodeOrString > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( OwningNodeOrString ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < OwningNodeOrString > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( OwningNodeOrString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const OwningNodeOrString ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( OwningNodeOrString ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const OwningNodeOrString ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( OwningNodeOrString ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum FillMode { None = 0 , Forwards = 1 , Backwards = 2 , Both = 3 , Auto = 4 , EndGuard_ = 5 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum PlaybackDirection { Normal = 0 , Reverse = 1 , Alternate = 2 , Alternate_reverse = 3 , EndGuard_ = 4 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct XBLChildrenElement { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct CustomElementData { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct FragmentOrElement { pub _base : root :: nsIContent , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt ,
- /// Array containing all attributes and children for this element
- pub mAttrsAndChildren : root :: nsAttrAndChildArray , } pub type FragmentOrElement_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct FragmentOrElement_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_FragmentOrElement_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FragmentOrElement_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( FragmentOrElement_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FragmentOrElement_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FragmentOrElement_cycleCollection ) ) ) ; } impl Clone for FragmentOrElement_cycleCollection { fn clone ( & self ) -> Self { * self } }
- /// There are a set of DOM- and scripting-specific instance variables
+ /// relevant style state, this should allow us to fix bug 548397.
+ #[repr(C)]
+ pub struct DocumentOrShadowRoot {
+ pub mStyleSheets: root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>,
+ pub mDOMStyleSheets: root::RefPtr<root::mozilla::dom::StyleSheetList>,
+ pub mIdentifierMap: [u64; 4usize],
+ pub mAsNode: *mut root::nsINode,
+ pub mKind: root::mozilla::dom::DocumentOrShadowRoot_Kind,
+ }
+ pub const DocumentOrShadowRoot_Kind_Document:
+ root::mozilla::dom::DocumentOrShadowRoot_Kind = 0;
+ pub const DocumentOrShadowRoot_Kind_ShadowRoot:
+ root::mozilla::dom::DocumentOrShadowRoot_Kind = 1;
+ pub type DocumentOrShadowRoot_Kind = i32;
+ #[test]
+ fn bindgen_test_layout_DocumentOrShadowRoot() {
+ assert_eq!(
+ ::std::mem::size_of::<DocumentOrShadowRoot>(),
+ 64usize,
+ concat!("Size of: ", stringify!(DocumentOrShadowRoot))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<DocumentOrShadowRoot>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(DocumentOrShadowRoot))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DocumentOrShadowRoot>())).mStyleSheets as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DocumentOrShadowRoot),
+ "::",
+ stringify!(mStyleSheets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DocumentOrShadowRoot>())).mDOMStyleSheets as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DocumentOrShadowRoot),
+ "::",
+ stringify!(mDOMStyleSheets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DocumentOrShadowRoot>())).mIdentifierMap as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DocumentOrShadowRoot),
+ "::",
+ stringify!(mIdentifierMap)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DocumentOrShadowRoot>())).mAsNode as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DocumentOrShadowRoot),
+ "::",
+ stringify!(mAsNode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DocumentOrShadowRoot>())).mKind as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DocumentOrShadowRoot),
+ "::",
+ stringify!(mKind)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct AnonymousContent {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct FontFaceSet {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct FullscreenRequest {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ImageTracker {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Link {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct MediaQueryList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct XPathEvaluator {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct FrameRequestCallback {
+ pub _bindgen_opaque_blob: [u64; 6usize],
+ }
+ #[test]
+ fn bindgen_test_layout_FrameRequestCallback() {
+ assert_eq!(
+ ::std::mem::size_of::<FrameRequestCallback>(),
+ 48usize,
+ concat!("Size of: ", stringify!(FrameRequestCallback))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FrameRequestCallback>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(FrameRequestCallback))
+ );
+ }
+ impl Clone for FrameRequestCallback {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct URLParams {
+ pub mParams: root::nsTArray<root::mozilla::dom::URLParams_Param>,
+ }
+ #[repr(C)]
+ pub struct URLParams_ForEachIterator__bindgen_vtable(::std::os::raw::c_void);
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct URLParams_ForEachIterator {
+ pub vtable_: *const URLParams_ForEachIterator__bindgen_vtable,
+ }
+ #[test]
+ fn bindgen_test_layout_URLParams_ForEachIterator() {
+ assert_eq!(
+ ::std::mem::size_of::<URLParams_ForEachIterator>(),
+ 8usize,
+ concat!("Size of: ", stringify!(URLParams_ForEachIterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLParams_ForEachIterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLParams_ForEachIterator))
+ );
+ }
+ impl Clone for URLParams_ForEachIterator {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct URLParams_Param {
+ pub mKey: ::nsstring::nsStringRepr,
+ pub mValue: ::nsstring::nsStringRepr,
+ }
+ #[test]
+ fn bindgen_test_layout_URLParams_Param() {
+ assert_eq!(
+ ::std::mem::size_of::<URLParams_Param>(),
+ 32usize,
+ concat!("Size of: ", stringify!(URLParams_Param))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLParams_Param>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLParams_Param))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLParams_Param>())).mKey as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLParams_Param),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URLParams_Param>())).mValue as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLParams_Param),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_URLParams() {
+ assert_eq!(
+ ::std::mem::size_of::<URLParams>(),
+ 8usize,
+ concat!("Size of: ", stringify!(URLParams))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLParams>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLParams))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLParams>())).mParams as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLParams),
+ "::",
+ stringify!(mParams)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct SRIMetadata {
+ pub mHashes: root::nsTArray<root::nsCString>,
+ pub mIntegrityString: ::nsstring::nsStringRepr,
+ pub mAlgorithm: root::nsCString,
+ pub mAlgorithmType: i8,
+ pub mEmpty: bool,
+ }
+ pub const SRIMetadata_MAX_ALTERNATE_HASHES: u32 = 256;
+ pub const SRIMetadata_UNKNOWN_ALGORITHM: i8 = -1;
+ #[test]
+ fn bindgen_test_layout_SRIMetadata() {
+ assert_eq!(
+ ::std::mem::size_of::<SRIMetadata>(),
+ 48usize,
+ concat!("Size of: ", stringify!(SRIMetadata))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<SRIMetadata>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(SRIMetadata))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<SRIMetadata>())).mHashes as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SRIMetadata),
+ "::",
+ stringify!(mHashes)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<SRIMetadata>())).mIntegrityString as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SRIMetadata),
+ "::",
+ stringify!(mIntegrityString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<SRIMetadata>())).mAlgorithm as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SRIMetadata),
+ "::",
+ stringify!(mAlgorithm)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<SRIMetadata>())).mAlgorithmType as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SRIMetadata),
+ "::",
+ stringify!(mAlgorithmType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<SRIMetadata>())).mEmpty as *const _ as usize },
+ 41usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SRIMetadata),
+ "::",
+ stringify!(mEmpty)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct OwningNodeOrString {
+ pub mType: root::mozilla::dom::OwningNodeOrString_Type,
+ pub mValue: root::mozilla::dom::OwningNodeOrString_Value,
+ }
+ pub const OwningNodeOrString_Type_eUninitialized:
+ root::mozilla::dom::OwningNodeOrString_Type = 0;
+ pub const OwningNodeOrString_Type_eNode: root::mozilla::dom::OwningNodeOrString_Type =
+ 1;
+ pub const OwningNodeOrString_Type_eString: root::mozilla::dom::OwningNodeOrString_Type =
+ 2;
+ pub type OwningNodeOrString_Type = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct OwningNodeOrString_Value {
+ pub _bindgen_opaque_blob: [u64; 2usize],
+ }
+ #[test]
+ fn bindgen_test_layout_OwningNodeOrString_Value() {
+ assert_eq!(
+ ::std::mem::size_of::<OwningNodeOrString_Value>(),
+ 16usize,
+ concat!("Size of: ", stringify!(OwningNodeOrString_Value))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<OwningNodeOrString_Value>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(OwningNodeOrString_Value))
+ );
+ }
+ impl Clone for OwningNodeOrString_Value {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_OwningNodeOrString() {
+ assert_eq!(
+ ::std::mem::size_of::<OwningNodeOrString>(),
+ 24usize,
+ concat!("Size of: ", stringify!(OwningNodeOrString))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<OwningNodeOrString>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(OwningNodeOrString))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<OwningNodeOrString>())).mType as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(OwningNodeOrString),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<OwningNodeOrString>())).mValue as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(OwningNodeOrString),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum FillMode {
+ None = 0,
+ Forwards = 1,
+ Backwards = 2,
+ Both = 3,
+ Auto = 4,
+ EndGuard_ = 5,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum PlaybackDirection {
+ Normal = 0,
+ Reverse = 1,
+ Alternate = 2,
+ Alternate_reverse = 3,
+ EndGuard_ = 4,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct XBLChildrenElement {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct CustomElementData {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct FragmentOrElement {
+ pub _base: root::nsIContent,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ /// Array containing all attributes and children for this element
+ pub mAttrsAndChildren: root::nsAttrAndChildArray,
+ }
+ pub type FragmentOrElement_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct FragmentOrElement_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_FragmentOrElement_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<FragmentOrElement_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(FragmentOrElement_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FragmentOrElement_cycleCollection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(FragmentOrElement_cycleCollection)
+ )
+ );
+ }
+ impl Clone for FragmentOrElement_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// There are a set of DOM- and scripting-specific instance variables
/// that may only be instantiated when a content object is accessed
/// through the DOM. Rather than burn actual slots in the content
/// objects for each of these instance variables, we put them off
/// in a side structure that's only allocated when the content is
- /// accessed through the DOM.
- # [ repr ( C ) ] pub struct FragmentOrElement_nsExtendedDOMSlots { pub _base : root :: nsIContent_nsExtendedContentSlots ,
- /// SMIL Overridde style rules (for SMIL animation of CSS properties)
- /// @see Element::GetSMILOverrideStyle
- pub mSMILOverrideStyle : root :: nsCOMPtr ,
- /// Holds any SMIL override style declaration for this element.
- pub mSMILOverrideStyleDeclaration : root :: RefPtr < root :: mozilla :: DeclarationBlock > ,
- /// The controllers of the XUL Element.
- pub mControllers : root :: nsCOMPtr ,
- /// An object implementing the .labels property for this element.
- pub mLabelsList : root :: RefPtr < root :: nsLabelsNodeList > ,
- /// ShadowRoot bound to the element.
- pub mShadowRoot : root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > ,
- /// XBL binding installed on the element.
- pub mXBLBinding : root :: RefPtr < root :: nsXBLBinding > ,
- /// Web components custom element data.
- pub mCustomElementData : root :: RefPtr < root :: mozilla :: dom :: CustomElementData > ,
- /// For XUL to hold either frameloader or opener.
- pub mFrameLoaderOrOpener : root :: nsCOMPtr , } # [ test ] fn bindgen_test_layout_FragmentOrElement_nsExtendedDOMSlots ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FragmentOrElement_nsExtendedDOMSlots > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FragmentOrElement_nsExtendedDOMSlots > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mSMILOverrideStyle as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mSMILOverrideStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mSMILOverrideStyleDeclaration as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mSMILOverrideStyleDeclaration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mControllers as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mControllers ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mLabelsList as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mLabelsList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mShadowRoot as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mShadowRoot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mXBLBinding as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mXBLBinding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mCustomElementData as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mCustomElementData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsExtendedDOMSlots ) ) . mFrameLoaderOrOpener as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsExtendedDOMSlots ) , "::" , stringify ! ( mFrameLoaderOrOpener ) ) ) ; } # [ repr ( C ) ] pub struct FragmentOrElement_nsDOMSlots { pub _base : root :: nsIContent_nsContentSlots ,
- /// The .style attribute (an interface that forwards to the actual
+ /// accessed through the DOM.
+ #[repr(C)]
+ pub struct FragmentOrElement_nsExtendedDOMSlots {
+ pub _base: root::nsIContent_nsExtendedContentSlots,
+ /// SMIL Overridde style rules (for SMIL animation of CSS properties)
+ /// @see Element::GetSMILOverrideStyle
+ pub mSMILOverrideStyle: root::nsCOMPtr,
+ /// Holds any SMIL override style declaration for this element.
+ pub mSMILOverrideStyleDeclaration: root::RefPtr<root::mozilla::DeclarationBlock>,
+ /// The controllers of the XUL Element.
+ pub mControllers: root::nsCOMPtr,
+ /// An object implementing the .labels property for this element.
+ pub mLabelsList: root::RefPtr<root::nsLabelsNodeList>,
+ /// ShadowRoot bound to the element.
+ pub mShadowRoot: root::RefPtr<root::mozilla::dom::ShadowRoot>,
+ /// XBL binding installed on the element.
+ pub mXBLBinding: root::RefPtr<root::nsXBLBinding>,
+ /// Web components custom element data.
+ pub mCustomElementData: root::RefPtr<root::mozilla::dom::CustomElementData>,
+ /// For XUL to hold either frameloader or opener.
+ pub mFrameLoaderOrOpener: root::nsCOMPtr,
+ }
+ #[test]
+ fn bindgen_test_layout_FragmentOrElement_nsExtendedDOMSlots() {
+ assert_eq!(
+ ::std::mem::size_of::<FragmentOrElement_nsExtendedDOMSlots>(),
+ 104usize,
+ concat!(
+ "Size of: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FragmentOrElement_nsExtendedDOMSlots>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>()))
+ .mSMILOverrideStyle as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mSMILOverrideStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>()))
+ .mSMILOverrideStyleDeclaration as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mSMILOverrideStyleDeclaration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>()))
+ .mControllers as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mControllers)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>())).mLabelsList
+ as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mLabelsList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>())).mShadowRoot
+ as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mShadowRoot)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>())).mXBLBinding
+ as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mXBLBinding)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>()))
+ .mCustomElementData as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mCustomElementData)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsExtendedDOMSlots>()))
+ .mFrameLoaderOrOpener as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsExtendedDOMSlots),
+ "::",
+ stringify!(mFrameLoaderOrOpener)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct FragmentOrElement_nsDOMSlots {
+ pub _base: root::nsIContent_nsContentSlots,
+ /// The .style attribute (an interface that forwards to the actual
/// style rules)
- /// @see nsGenericHTMLElement::GetStyle
- pub mStyle : root :: nsCOMPtr ,
- /// The .dataset attribute.
- /// @see nsGenericHTMLElement::GetDataset
- pub mDataset : * mut root :: nsDOMStringMap ,
- /// An object implementing nsIDOMMozNamedAttrMap for this content (attributes)
- /// @see FragmentOrElement::GetAttributes
- pub mAttributeMap : root :: RefPtr < root :: nsDOMAttributeMap > ,
- /// An object implementing the .children property for this element.
- pub mChildrenList : root :: RefPtr < root :: nsContentList > ,
- /// An object implementing the .classList property for this element.
- pub mClassList : root :: RefPtr < root :: nsDOMTokenList > , } # [ test ] fn bindgen_test_layout_FragmentOrElement_nsDOMSlots ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FragmentOrElement_nsDOMSlots > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( FragmentOrElement_nsDOMSlots ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FragmentOrElement_nsDOMSlots > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FragmentOrElement_nsDOMSlots ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsDOMSlots ) ) . mStyle as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsDOMSlots ) , "::" , stringify ! ( mStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsDOMSlots ) ) . mDataset as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsDOMSlots ) , "::" , stringify ! ( mDataset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsDOMSlots ) ) . mAttributeMap as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsDOMSlots ) , "::" , stringify ! ( mAttributeMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsDOMSlots ) ) . mChildrenList as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsDOMSlots ) , "::" , stringify ! ( mChildrenList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement_nsDOMSlots ) ) . mClassList as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement_nsDOMSlots ) , "::" , stringify ! ( mClassList ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE" ]
- pub static mut FragmentOrElement__cycleCollectorGlobal : root :: mozilla :: dom :: FragmentOrElement_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_FragmentOrElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FragmentOrElement > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( FragmentOrElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FragmentOrElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FragmentOrElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement ) ) . mRefCnt as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FragmentOrElement ) ) . mAttrsAndChildren as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( FragmentOrElement ) , "::" , stringify ! ( mAttrsAndChildren ) ) ) ; } # [ repr ( C ) ] pub struct Attr { pub _base : root :: nsIAttribute , pub _base_1 : root :: nsIDOMAttr , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mValue : ::nsstring::nsStringRepr , } pub type Attr_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Attr_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_Attr_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Attr_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( Attr_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Attr_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Attr_cycleCollection ) ) ) ; } impl Clone for Attr_cycleCollection { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom4Attr21_cycleCollectorGlobalE" ]
- pub static mut Attr__cycleCollectorGlobal : root :: mozilla :: dom :: Attr_cycleCollection ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom4Attr12sInitializedE" ]
- pub static mut Attr_sInitialized : bool ;
-} # [ test ] fn bindgen_test_layout_Attr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Attr > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( Attr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Attr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Attr ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct DOMRectReadOnly { pub _base : root :: nsISupports , pub _base_1 : root :: nsWrapperCache , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mParent : root :: nsCOMPtr , } pub type DOMRectReadOnly_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct DOMRectReadOnly_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_DOMRectReadOnly_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DOMRectReadOnly_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( DOMRectReadOnly_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DOMRectReadOnly_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DOMRectReadOnly_cycleCollection ) ) ) ; } impl Clone for DOMRectReadOnly_cycleCollection { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom15DOMRectReadOnly21_cycleCollectorGlobalE" ]
- pub static mut DOMRectReadOnly__cycleCollectorGlobal : root :: mozilla :: dom :: DOMRectReadOnly_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_DOMRectReadOnly ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DOMRectReadOnly > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( DOMRectReadOnly ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DOMRectReadOnly > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DOMRectReadOnly ) ) ) ; } # [ repr ( C ) ] pub struct Element { pub _base : root :: mozilla :: dom :: FragmentOrElement , pub mState : root :: mozilla :: EventStates , pub mServoData : ::gecko_bindings::structs::ServoCell < * mut ::gecko_bindings::structs::ServoNodeData > , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Element_COMTypeInfo { pub _address : u8 , }
- /// StyleStateLocks is used to specify which event states should be locked,
- /// and whether they should be locked to on or off.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Element_StyleStateLocks { pub mLocks : root :: mozilla :: EventStates , pub mValues : root :: mozilla :: EventStates , } # [ test ] fn bindgen_test_layout_Element_StyleStateLocks ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Element_StyleStateLocks > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( Element_StyleStateLocks ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Element_StyleStateLocks > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Element_StyleStateLocks ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Element_StyleStateLocks ) ) . mLocks as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Element_StyleStateLocks ) , "::" , stringify ! ( mLocks ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Element_StyleStateLocks ) ) . mValues as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( Element_StyleStateLocks ) , "::" , stringify ! ( mValues ) ) ) ; } impl Clone for Element_StyleStateLocks { fn clone ( & self ) -> Self { * self } } pub const Element_ATTR_MISSING : root :: mozilla :: dom :: Element__bindgen_ty_1 = -1 ; pub const Element_ATTR_VALUE_NO_MATCH : root :: mozilla :: dom :: Element__bindgen_ty_1 = -2 ; pub type Element__bindgen_ty_1 = :: std :: os :: raw :: c_int ;
- /// Check whether this Element's given attribute has one of a given list of
+ /// @see nsGenericHTMLElement::GetStyle
+ pub mStyle: root::nsCOMPtr,
+ /// The .dataset attribute.
+ /// @see nsGenericHTMLElement::GetDataset
+ pub mDataset: *mut root::nsDOMStringMap,
+ /// @see Element::Attributes
+ pub mAttributeMap: root::RefPtr<root::nsDOMAttributeMap>,
+ /// An object implementing the .children property for this element.
+ pub mChildrenList: root::RefPtr<root::nsContentList>,
+ /// An object implementing the .classList property for this element.
+ pub mClassList: root::RefPtr<root::nsDOMTokenList>,
+ }
+ #[test]
+ fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
+ assert_eq!(
+ ::std::mem::size_of::<FragmentOrElement_nsDOMSlots>(),
+ 120usize,
+ concat!("Size of: ", stringify!(FragmentOrElement_nsDOMSlots))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FragmentOrElement_nsDOMSlots>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(FragmentOrElement_nsDOMSlots))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsDOMSlots>())).mStyle as *const _
+ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsDOMSlots),
+ "::",
+ stringify!(mStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsDOMSlots>())).mDataset
+ as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsDOMSlots),
+ "::",
+ stringify!(mDataset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsDOMSlots>())).mAttributeMap
+ as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsDOMSlots),
+ "::",
+ stringify!(mAttributeMap)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsDOMSlots>())).mChildrenList
+ as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsDOMSlots),
+ "::",
+ stringify!(mChildrenList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement_nsDOMSlots>())).mClassList
+ as *const _ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement_nsDOMSlots),
+ "::",
+ stringify!(mClassList)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"]
+ pub static mut FragmentOrElement__cycleCollectorGlobal:
+ root::mozilla::dom::FragmentOrElement_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_FragmentOrElement() {
+ assert_eq!(
+ ::std::mem::size_of::<FragmentOrElement>(),
+ 104usize,
+ concat!("Size of: ", stringify!(FragmentOrElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FragmentOrElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(FragmentOrElement))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement>())).mRefCnt as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FragmentOrElement>())).mAttrsAndChildren as *const _
+ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FragmentOrElement),
+ "::",
+ stringify!(mAttrsAndChildren)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct Attr {
+ pub _base: root::nsIAttribute,
+ pub _base_1: root::nsIDOMNode,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mValue: ::nsstring::nsStringRepr,
+ }
+ pub type Attr_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Attr_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_Attr_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<Attr_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(Attr_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Attr_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Attr_cycleCollection))
+ );
+ }
+ impl Clone for Attr_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom4Attr21_cycleCollectorGlobalE"]
+ pub static mut Attr__cycleCollectorGlobal: root::mozilla::dom::Attr_cycleCollection;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom4Attr12sInitializedE"]
+ pub static mut Attr_sInitialized: bool;
+ }
+ #[test]
+ fn bindgen_test_layout_Attr() {
+ assert_eq!(
+ ::std::mem::size_of::<Attr>(),
+ 128usize,
+ concat!("Size of: ", stringify!(Attr))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Attr>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Attr))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct DOMRectReadOnly {
+ pub _base: root::nsISupports,
+ pub _base_1: root::nsWrapperCache,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mParent: root::nsCOMPtr,
+ }
+ pub type DOMRectReadOnly_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct DOMRectReadOnly_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_DOMRectReadOnly_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<DOMRectReadOnly_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(DOMRectReadOnly_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<DOMRectReadOnly_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(DOMRectReadOnly_cycleCollection))
+ );
+ }
+ impl Clone for DOMRectReadOnly_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom15DOMRectReadOnly21_cycleCollectorGlobalE"]
+ pub static mut DOMRectReadOnly__cycleCollectorGlobal:
+ root::mozilla::dom::DOMRectReadOnly_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_DOMRectReadOnly() {
+ assert_eq!(
+ ::std::mem::size_of::<DOMRectReadOnly>(),
+ 48usize,
+ concat!("Size of: ", stringify!(DOMRectReadOnly))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<DOMRectReadOnly>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(DOMRectReadOnly))
+ );
+ }
+ #[repr(C)]
+ pub struct Element {
+ pub _base: root::mozilla::dom::FragmentOrElement,
+ pub mState: root::mozilla::EventStates,
+ pub mServoData: ::gecko_bindings::structs::ServoCell<*mut ::gecko_bindings::structs::ServoNodeData>,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Element_COMTypeInfo {
+ pub _address: u8,
+ }
+ /// StyleStateLocks is used to specify which event states should be locked,
+ /// and whether they should be locked to on or off.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Element_StyleStateLocks {
+ pub mLocks: root::mozilla::EventStates,
+ pub mValues: root::mozilla::EventStates,
+ }
+ #[test]
+ fn bindgen_test_layout_Element_StyleStateLocks() {
+ assert_eq!(
+ ::std::mem::size_of::<Element_StyleStateLocks>(),
+ 16usize,
+ concat!("Size of: ", stringify!(Element_StyleStateLocks))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Element_StyleStateLocks>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Element_StyleStateLocks))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Element_StyleStateLocks>())).mLocks as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Element_StyleStateLocks),
+ "::",
+ stringify!(mLocks)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Element_StyleStateLocks>())).mValues as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Element_StyleStateLocks),
+ "::",
+ stringify!(mValues)
+ )
+ );
+ }
+ impl Clone for Element_StyleStateLocks {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const Element_ATTR_MISSING: root::mozilla::dom::Element__bindgen_ty_1 = -1;
+ pub const Element_ATTR_VALUE_NO_MATCH: root::mozilla::dom::Element__bindgen_ty_1 = -2;
+ pub type Element__bindgen_ty_1 = i32;
+ /// Check whether this Element's given attribute has one of a given list of
/// values. If there is a match, we return the index in the list of the first
/// matching value. If there was no attribute at all, then we return
/// ATTR_MISSING. If there was an attribute but it didn't match, we return
@@ -160,24 +3906,414 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// against.
/// @param aCaseSensitive Whether to do a case-sensitive compare on the values.
/// @return ATTR_MISSING, ATTR_VALUE_NO_MATCH or the non-negative index
- /// indicating the first value of aValues that matched
- pub type Element_AttrValuesArray = * const * const root :: nsStaticAtom ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Element_MappedAttributeEntry { pub attribute : * mut * mut root :: nsStaticAtom , } # [ test ] fn bindgen_test_layout_Element_MappedAttributeEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Element_MappedAttributeEntry > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( Element_MappedAttributeEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Element_MappedAttributeEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Element_MappedAttributeEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Element_MappedAttributeEntry ) ) . attribute as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Element_MappedAttributeEntry ) , "::" , stringify ! ( attribute ) ) ) ; } impl Clone for Element_MappedAttributeEntry { fn clone ( & self ) -> Self { * self } }
- /// Define a general matching function that can be passed to
+ /// indicating the first value of aValues that matched
+ pub type Element_AttrValuesArray = *const *const root::nsStaticAtom;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Element_MappedAttributeEntry {
+ pub attribute: *mut *mut root::nsStaticAtom,
+ }
+ #[test]
+ fn bindgen_test_layout_Element_MappedAttributeEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<Element_MappedAttributeEntry>(),
+ 8usize,
+ concat!("Size of: ", stringify!(Element_MappedAttributeEntry))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Element_MappedAttributeEntry>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Element_MappedAttributeEntry))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Element_MappedAttributeEntry>())).attribute
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Element_MappedAttributeEntry),
+ "::",
+ stringify!(attribute)
+ )
+ );
+ }
+ impl Clone for Element_MappedAttributeEntry {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Define a general matching function that can be passed to
/// GetElementsByMatching(). Each Element being considered is
- /// passed in.
- pub type Element_nsElementMatchFunc = :: std :: option :: Option < unsafe extern "C" fn ( aElement : * mut root :: mozilla :: dom :: Element ) -> bool > ; pub const Element_kAllServoDescendantBits : u32 = 25296896 ; pub const Element_kFireMutationEvent : bool = true ; pub const Element_kDontFireMutationEvent : bool = false ; pub const Element_kNotifyDocumentObservers : bool = true ; pub const Element_kDontNotifyDocumentObservers : bool = false ; pub const Element_kCallAfterSetAttr : bool = true ; pub const Element_kDontCallAfterSetAttr : bool = false ; # [ test ] fn bindgen_test_layout_Element ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Element > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( Element ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Element > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Element ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Element ) ) . mState as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( Element ) , "::" , stringify ! ( mState ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Element ) ) . mServoData as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( Element ) , "::" , stringify ! ( mServoData ) ) ) ; } # [ repr ( C ) ] pub struct HTMLSlotElement { pub _base : root :: nsGenericHTMLElement , pub mAssignedNodes : root :: nsTArray < root :: RefPtr < root :: nsINode > > , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct HTMLSlotElement_cycleCollection { pub _base : root :: mozilla :: dom :: FragmentOrElement_cycleCollection , } # [ test ] fn bindgen_test_layout_HTMLSlotElement_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < HTMLSlotElement_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( HTMLSlotElement_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < HTMLSlotElement_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( HTMLSlotElement_cycleCollection ) ) ) ; } impl Clone for HTMLSlotElement_cycleCollection { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom15HTMLSlotElement21_cycleCollectorGlobalE" ]
- pub static mut HTMLSlotElement__cycleCollectorGlobal : root :: mozilla :: dom :: HTMLSlotElement_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_HTMLSlotElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < HTMLSlotElement > ( ) , 136usize , concat ! ( "Size of: " , stringify ! ( HTMLSlotElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < HTMLSlotElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( HTMLSlotElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const HTMLSlotElement ) ) . mAssignedNodes as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( HTMLSlotElement ) , "::" , stringify ! ( mAssignedNodes ) ) ) ; } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum CompositeOperation { Replace = 0 , Add = 1 , Accumulate = 2 , EndGuard_ = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum IterationCompositeOperation { Replace = 0 , Accumulate = 1 , EndGuard_ = 2 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ExplicitChildIterator { pub mParent : * const root :: nsIContent , pub mParentAsSlot : * const root :: mozilla :: dom :: HTMLSlotElement , pub mChild : * mut root :: nsIContent , pub mDefaultChild : * mut root :: nsIContent , pub mIsFirst : bool , pub mIndexInInserted : u32 , } # [ test ] fn bindgen_test_layout_ExplicitChildIterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ExplicitChildIterator > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( ExplicitChildIterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ExplicitChildIterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ExplicitChildIterator ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ExplicitChildIterator ) ) . mParent as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ExplicitChildIterator ) , "::" , stringify ! ( mParent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ExplicitChildIterator ) ) . mParentAsSlot as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ExplicitChildIterator ) , "::" , stringify ! ( mParentAsSlot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ExplicitChildIterator ) ) . mChild as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ExplicitChildIterator ) , "::" , stringify ! ( mChild ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ExplicitChildIterator ) ) . mDefaultChild as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ExplicitChildIterator ) , "::" , stringify ! ( mDefaultChild ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ExplicitChildIterator ) ) . mIsFirst as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( ExplicitChildIterator ) , "::" , stringify ! ( mIsFirst ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ExplicitChildIterator ) ) . mIndexInInserted as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( ExplicitChildIterator ) , "::" , stringify ! ( mIndexInInserted ) ) ) ; } impl Clone for ExplicitChildIterator { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct FlattenedChildIterator { pub _base : root :: mozilla :: dom :: ExplicitChildIterator , pub mXBLInvolved : bool , pub mOriginalContent : * const root :: nsIContent , } # [ test ] fn bindgen_test_layout_FlattenedChildIterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FlattenedChildIterator > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( FlattenedChildIterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FlattenedChildIterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FlattenedChildIterator ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FlattenedChildIterator ) ) . mXBLInvolved as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( FlattenedChildIterator ) , "::" , stringify ! ( mXBLInvolved ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FlattenedChildIterator ) ) . mOriginalContent as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( FlattenedChildIterator ) , "::" , stringify ! ( mOriginalContent ) ) ) ; } impl Clone for FlattenedChildIterator { fn clone ( & self ) -> Self { * self } }
- /// AllChildrenIterator traverses the children of an element including before /
+ /// passed in.
+ pub type Element_nsElementMatchFunc = ::std::option::Option<
+ unsafe extern "C" fn(aElement: *mut root::mozilla::dom::Element) -> bool,
+ >;
+ pub const Element_kAllServoDescendantBits: u32 = 25296896;
+ pub const Element_kFireMutationEvent: bool = true;
+ pub const Element_kDontFireMutationEvent: bool = false;
+ pub const Element_kNotifyDocumentObservers: bool = true;
+ pub const Element_kDontNotifyDocumentObservers: bool = false;
+ pub const Element_kCallAfterSetAttr: bool = true;
+ pub const Element_kDontCallAfterSetAttr: bool = false;
+ #[test]
+ fn bindgen_test_layout_Element() {
+ assert_eq!(
+ ::std::mem::size_of::<Element>(),
+ 120usize,
+ concat!("Size of: ", stringify!(Element))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Element>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Element))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Element>())).mState as *const _ as usize },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Element),
+ "::",
+ stringify!(mState)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Element>())).mServoData as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Element),
+ "::",
+ stringify!(mServoData)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct HTMLSlotElement {
+ pub _base: root::nsGenericHTMLElement,
+ pub mAssignedNodes: root::nsTArray<root::RefPtr<root::nsINode>>,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct HTMLSlotElement_cycleCollection {
+ pub _base: root::mozilla::dom::FragmentOrElement_cycleCollection,
+ }
+ #[test]
+ fn bindgen_test_layout_HTMLSlotElement_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<HTMLSlotElement_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(HTMLSlotElement_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<HTMLSlotElement_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(HTMLSlotElement_cycleCollection))
+ );
+ }
+ impl Clone for HTMLSlotElement_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom15HTMLSlotElement21_cycleCollectorGlobalE"]
+ pub static mut HTMLSlotElement__cycleCollectorGlobal:
+ root::mozilla::dom::HTMLSlotElement_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_HTMLSlotElement() {
+ assert_eq!(
+ ::std::mem::size_of::<HTMLSlotElement>(),
+ 136usize,
+ concat!("Size of: ", stringify!(HTMLSlotElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<HTMLSlotElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(HTMLSlotElement))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<HTMLSlotElement>())).mAssignedNodes as *const _
+ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(HTMLSlotElement),
+ "::",
+ stringify!(mAssignedNodes)
+ )
+ );
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum CompositeOperation {
+ Replace = 0,
+ Add = 1,
+ Accumulate = 2,
+ EndGuard_ = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum IterationCompositeOperation {
+ Replace = 0,
+ Accumulate = 1,
+ EndGuard_ = 2,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ExplicitChildIterator {
+ pub mParent: *const root::nsIContent,
+ pub mParentAsSlot: *const root::mozilla::dom::HTMLSlotElement,
+ pub mChild: *mut root::nsIContent,
+ pub mDefaultChild: *mut root::nsIContent,
+ pub mIsFirst: bool,
+ pub mIndexInInserted: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_ExplicitChildIterator() {
+ assert_eq!(
+ ::std::mem::size_of::<ExplicitChildIterator>(),
+ 40usize,
+ concat!("Size of: ", stringify!(ExplicitChildIterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ExplicitChildIterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ExplicitChildIterator))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ExplicitChildIterator>())).mParent as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ExplicitChildIterator),
+ "::",
+ stringify!(mParent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ExplicitChildIterator>())).mParentAsSlot as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ExplicitChildIterator),
+ "::",
+ stringify!(mParentAsSlot)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ExplicitChildIterator>())).mChild as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ExplicitChildIterator),
+ "::",
+ stringify!(mChild)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ExplicitChildIterator>())).mDefaultChild as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ExplicitChildIterator),
+ "::",
+ stringify!(mDefaultChild)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ExplicitChildIterator>())).mIsFirst as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ExplicitChildIterator),
+ "::",
+ stringify!(mIsFirst)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ExplicitChildIterator>())).mIndexInInserted
+ as *const _ as usize
+ },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ExplicitChildIterator),
+ "::",
+ stringify!(mIndexInInserted)
+ )
+ );
+ }
+ impl Clone for ExplicitChildIterator {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct FlattenedChildIterator {
+ pub _base: root::mozilla::dom::ExplicitChildIterator,
+ pub mXBLInvolved: bool,
+ pub mOriginalContent: *const root::nsIContent,
+ }
+ #[test]
+ fn bindgen_test_layout_FlattenedChildIterator() {
+ assert_eq!(
+ ::std::mem::size_of::<FlattenedChildIterator>(),
+ 56usize,
+ concat!("Size of: ", stringify!(FlattenedChildIterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FlattenedChildIterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(FlattenedChildIterator))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FlattenedChildIterator>())).mXBLInvolved as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FlattenedChildIterator),
+ "::",
+ stringify!(mXBLInvolved)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FlattenedChildIterator>())).mOriginalContent
+ as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FlattenedChildIterator),
+ "::",
+ stringify!(mOriginalContent)
+ )
+ );
+ }
+ impl Clone for FlattenedChildIterator {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// AllChildrenIterator traverses the children of an element including before /
/// after content and optionally XBL children. The iterator can be initialized
/// to start at the end by providing false for aStartAtBeginning in order to
/// start iterating in reverse from the last child.
///
/// Note: it assumes that no mutation of the DOM or frame tree takes place during
- /// iteration, and will break horribly if that is not true.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct AllChildrenIterator { pub _base : root :: mozilla :: dom :: FlattenedChildIterator , pub mAnonKids : root :: nsTArray < * mut root :: nsIContent > , pub mAnonKidsIdx : u32 , pub mFlags : u32 , pub mPhase : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase , } pub const AllChildrenIterator_IteratorPhase_eAtBegin : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase = 0 ; pub const AllChildrenIterator_IteratorPhase_eAtBeforeKid : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase = 1 ; pub const AllChildrenIterator_IteratorPhase_eAtExplicitKids : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase = 2 ; pub const AllChildrenIterator_IteratorPhase_eAtAnonKids : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase = 3 ; pub const AllChildrenIterator_IteratorPhase_eAtAfterKid : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase = 4 ; pub const AllChildrenIterator_IteratorPhase_eAtEnd : root :: mozilla :: dom :: AllChildrenIterator_IteratorPhase = 5 ; pub type AllChildrenIterator_IteratorPhase = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_AllChildrenIterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AllChildrenIterator > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( AllChildrenIterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AllChildrenIterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AllChildrenIterator ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AllChildrenIterator ) ) . mAnonKids as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( AllChildrenIterator ) , "::" , stringify ! ( mAnonKids ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AllChildrenIterator ) ) . mAnonKidsIdx as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( AllChildrenIterator ) , "::" , stringify ! ( mAnonKidsIdx ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AllChildrenIterator ) ) . mFlags as * const _ as usize } , 68usize , concat ! ( "Alignment of field: " , stringify ! ( AllChildrenIterator ) , "::" , stringify ! ( mFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AllChildrenIterator ) ) . mPhase as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( AllChildrenIterator ) , "::" , stringify ! ( mPhase ) ) ) ; }
- /// StyleChildrenIterator traverses the children of the element from the
+ /// iteration, and will break horribly if that is not true.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct AllChildrenIterator {
+ pub _base: root::mozilla::dom::FlattenedChildIterator,
+ pub mAnonKids: root::nsTArray<*mut root::nsIContent>,
+ pub mAnonKidsIdx: u32,
+ pub mFlags: u32,
+ pub mPhase: root::mozilla::dom::AllChildrenIterator_IteratorPhase,
+ }
+ pub const AllChildrenIterator_IteratorPhase_eAtBegin:
+ root::mozilla::dom::AllChildrenIterator_IteratorPhase = 0;
+ pub const AllChildrenIterator_IteratorPhase_eAtBeforeKid:
+ root::mozilla::dom::AllChildrenIterator_IteratorPhase = 1;
+ pub const AllChildrenIterator_IteratorPhase_eAtExplicitKids:
+ root::mozilla::dom::AllChildrenIterator_IteratorPhase = 2;
+ pub const AllChildrenIterator_IteratorPhase_eAtAnonKids:
+ root::mozilla::dom::AllChildrenIterator_IteratorPhase = 3;
+ pub const AllChildrenIterator_IteratorPhase_eAtAfterKid:
+ root::mozilla::dom::AllChildrenIterator_IteratorPhase = 4;
+ pub const AllChildrenIterator_IteratorPhase_eAtEnd:
+ root::mozilla::dom::AllChildrenIterator_IteratorPhase = 5;
+ pub type AllChildrenIterator_IteratorPhase = u32;
+ #[test]
+ fn bindgen_test_layout_AllChildrenIterator() {
+ assert_eq!(
+ ::std::mem::size_of::<AllChildrenIterator>(),
+ 80usize,
+ concat!("Size of: ", stringify!(AllChildrenIterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<AllChildrenIterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(AllChildrenIterator))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AllChildrenIterator>())).mAnonKids as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AllChildrenIterator),
+ "::",
+ stringify!(mAnonKids)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AllChildrenIterator>())).mAnonKidsIdx as *const _
+ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AllChildrenIterator),
+ "::",
+ stringify!(mAnonKidsIdx)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AllChildrenIterator>())).mFlags as *const _ as usize
+ },
+ 68usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AllChildrenIterator),
+ "::",
+ stringify!(mFlags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AllChildrenIterator>())).mPhase as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AllChildrenIterator),
+ "::",
+ stringify!(mPhase)
+ )
+ );
+ }
+ /// StyleChildrenIterator traverses the children of the element from the
/// perspective of the style system, particularly the children we need to
/// traverse during restyle.
///
@@ -191,51 +4327,1236 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// iteration, and will break horribly if that is not true.
///
/// We require this to be memmovable since Rust code can create and move
- /// StyleChildrenIterators.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct StyleChildrenIterator { pub _base : root :: mozilla :: dom :: AllChildrenIterator , } # [ test ] fn bindgen_test_layout_StyleChildrenIterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleChildrenIterator > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( StyleChildrenIterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleChildrenIterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleChildrenIterator ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct MediaList { pub _base : root :: nsIDOMMediaList , pub _base_1 : root :: nsWrapperCache , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mStyleSheet : * mut root :: mozilla :: StyleSheet , } pub type MediaList_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct MediaList_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_MediaList_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < MediaList_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( MediaList_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < MediaList_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( MediaList_cycleCollection ) ) ) ; } impl Clone for MediaList_cycleCollection { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla3dom9MediaList21_cycleCollectorGlobalE" ]
- pub static mut MediaList__cycleCollectorGlobal : root :: mozilla :: dom :: MediaList_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_MediaList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < MediaList > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( MediaList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < MediaList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( MediaList ) ) ) ; } } # [ repr ( C ) ] pub struct CSSVariableValues {
- /// Map of variable names to IDs. Variable IDs are indexes into
- /// mVariables.
- pub mVariableIDs : [ u64 ; 4usize ] ,
- /// Array of variables, indexed by variable ID.
- pub mVariables : root :: nsTArray < root :: mozilla :: CSSVariableValues_Variable > , } # [ repr ( C ) ] pub struct CSSVariableValues_Variable { pub mVariableName : ::nsstring::nsStringRepr , pub mValue : ::nsstring::nsStringRepr , pub mFirstToken : root :: nsCSSTokenSerializationType , pub mLastToken : root :: nsCSSTokenSerializationType , } # [ test ] fn bindgen_test_layout_CSSVariableValues_Variable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CSSVariableValues_Variable > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( CSSVariableValues_Variable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CSSVariableValues_Variable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CSSVariableValues_Variable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSVariableValues_Variable ) ) . mVariableName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CSSVariableValues_Variable ) , "::" , stringify ! ( mVariableName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSVariableValues_Variable ) ) . mValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( CSSVariableValues_Variable ) , "::" , stringify ! ( mValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSVariableValues_Variable ) ) . mFirstToken as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( CSSVariableValues_Variable ) , "::" , stringify ! ( mFirstToken ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSVariableValues_Variable ) ) . mLastToken as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( CSSVariableValues_Variable ) , "::" , stringify ! ( mLastToken ) ) ) ; } # [ test ] fn bindgen_test_layout_CSSVariableValues ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CSSVariableValues > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( CSSVariableValues ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CSSVariableValues > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CSSVariableValues ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSVariableValues ) ) . mVariableIDs as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CSSVariableValues ) , "::" , stringify ! ( mVariableIDs ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSVariableValues ) ) . mVariables as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( CSSVariableValues ) , "::" , stringify ! ( mVariables ) ) ) ; } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum SheetType { Agent = 0 , User = 1 , PresHint = 2 , Doc = 3 , ScopedDoc = 4 , StyleAttr = 5 , Override = 6 , Animation = 7 , Transition = 8 , Count = 9 , Unknown = 255 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct StaticRefPtr < T > { pub mRawPtr : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , }
- /// This struct represents a combined color from a numeric color and
+ /// StyleChildrenIterators.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct StyleChildrenIterator {
+ pub _base: root::mozilla::dom::AllChildrenIterator,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleChildrenIterator() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleChildrenIterator>(),
+ 80usize,
+ concat!("Size of: ", stringify!(StyleChildrenIterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleChildrenIterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleChildrenIterator))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct MediaList {
+ pub _base: root::nsISupports,
+ pub _base_1: root::nsWrapperCache,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mStyleSheet: *mut root::mozilla::StyleSheet,
+ }
+ pub type MediaList_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct MediaList_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_MediaList_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<MediaList_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(MediaList_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<MediaList_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(MediaList_cycleCollection))
+ );
+ }
+ impl Clone for MediaList_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla3dom9MediaList21_cycleCollectorGlobalE"]
+ pub static mut MediaList__cycleCollectorGlobal:
+ root::mozilla::dom::MediaList_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_MediaList() {
+ assert_eq!(
+ ::std::mem::size_of::<MediaList>(),
+ 48usize,
+ concat!("Size of: ", stringify!(MediaList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<MediaList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(MediaList))
+ );
+ }
+ }
+ #[repr(C)]
+ pub struct CSSVariableValues {
+ /// Map of variable names to IDs. Variable IDs are indexes into
+ /// mVariables.
+ pub mVariableIDs: [u64; 4usize],
+ /// Array of variables, indexed by variable ID.
+ pub mVariables: root::nsTArray<root::mozilla::CSSVariableValues_Variable>,
+ }
+ #[repr(C)]
+ pub struct CSSVariableValues_Variable {
+ pub mVariableName: ::nsstring::nsStringRepr,
+ pub mValue: ::nsstring::nsStringRepr,
+ pub mFirstToken: root::nsCSSTokenSerializationType,
+ pub mLastToken: root::nsCSSTokenSerializationType,
+ }
+ #[test]
+ fn bindgen_test_layout_CSSVariableValues_Variable() {
+ assert_eq!(
+ ::std::mem::size_of::<CSSVariableValues_Variable>(),
+ 40usize,
+ concat!("Size of: ", stringify!(CSSVariableValues_Variable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CSSVariableValues_Variable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CSSVariableValues_Variable))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSVariableValues_Variable>())).mVariableName as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSVariableValues_Variable),
+ "::",
+ stringify!(mVariableName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSVariableValues_Variable>())).mValue as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSVariableValues_Variable),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSVariableValues_Variable>())).mFirstToken as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSVariableValues_Variable),
+ "::",
+ stringify!(mFirstToken)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSVariableValues_Variable>())).mLastToken as *const _
+ as usize
+ },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSVariableValues_Variable),
+ "::",
+ stringify!(mLastToken)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_CSSVariableValues() {
+ assert_eq!(
+ ::std::mem::size_of::<CSSVariableValues>(),
+ 40usize,
+ concat!("Size of: ", stringify!(CSSVariableValues))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CSSVariableValues>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CSSVariableValues))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSVariableValues>())).mVariableIDs as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSVariableValues),
+ "::",
+ stringify!(mVariableIDs)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSVariableValues>())).mVariables as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSVariableValues),
+ "::",
+ stringify!(mVariables)
+ )
+ );
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum SheetType {
+ Agent = 0,
+ User = 1,
+ PresHint = 2,
+ Doc = 3,
+ ScopedDoc = 4,
+ StyleAttr = 5,
+ Override = 6,
+ Animation = 7,
+ Transition = 8,
+ Count = 9,
+ Unknown = 255,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct StaticRefPtr<T> {
+ pub mRawPtr: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ /// This struct represents a combined color from a numeric color and
/// the current foreground color (currentcolor keyword).
/// Conceptually, the formula is "color * (1 - p) + currentcolor * p"
/// where p is mForegroundRatio. See mozilla::LinearBlendColors for
- /// the actual algorithm.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleComplexColor { pub mColor : root :: nscolor , pub mForegroundRatio : u8 , pub mIsAuto : bool , } # [ test ] fn bindgen_test_layout_StyleComplexColor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleComplexColor > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( StyleComplexColor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleComplexColor > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( StyleComplexColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleComplexColor ) ) . mColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleComplexColor ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleComplexColor ) ) . mForegroundRatio as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( StyleComplexColor ) , "::" , stringify ! ( mForegroundRatio ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleComplexColor ) ) . mIsAuto as * const _ as usize } , 5usize , concat ! ( "Alignment of field: " , stringify ! ( StyleComplexColor ) , "::" , stringify ! ( mIsAuto ) ) ) ; } impl Clone for StyleComplexColor { fn clone ( & self ) -> Self { * self } } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum Side { eSideTop = 0 , eSideRight = 1 , eSideBottom = 2 , eSideLeft = 3 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum HalfCorner { eCornerTopLeftX = 0 , eCornerTopLeftY = 1 , eCornerTopRightX = 2 , eCornerTopRightY = 3 , eCornerBottomRightX = 4 , eCornerBottomRightY = 5 , eCornerBottomLeftX = 6 , eCornerBottomLeftY = 7 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct NotNull < T > { pub mBasePtr : T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub const FontFamilyType_eFamily_generic_first : root :: mozilla :: FontFamilyType = FontFamilyType :: eFamily_serif ; pub const FontFamilyType_eFamily_generic_last : root :: mozilla :: FontFamilyType = FontFamilyType :: eFamily_fantasy ; pub const FontFamilyType_eFamily_generic_count : root :: mozilla :: FontFamilyType = FontFamilyType :: eFamily_monospace ; # [ repr ( u32 ) ]
- /// type of font family name, either a name (e.g. Helvetica) or a
+ /// the actual algorithm.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleComplexColor {
+ pub mColor: root::nscolor,
+ pub mForegroundRatio: u8,
+ pub mIsAuto: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleComplexColor() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleComplexColor>(),
+ 8usize,
+ concat!("Size of: ", stringify!(StyleComplexColor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleComplexColor>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(StyleComplexColor))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleComplexColor>())).mColor as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleComplexColor),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleComplexColor>())).mForegroundRatio as *const _
+ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleComplexColor),
+ "::",
+ stringify!(mForegroundRatio)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleComplexColor>())).mIsAuto as *const _ as usize
+ },
+ 5usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleComplexColor),
+ "::",
+ stringify!(mIsAuto)
+ )
+ );
+ }
+ impl Clone for StyleComplexColor {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum Side {
+ eSideTop = 0,
+ eSideRight = 1,
+ eSideBottom = 2,
+ eSideLeft = 3,
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum HalfCorner {
+ eCornerTopLeftX = 0,
+ eCornerTopLeftY = 1,
+ eCornerTopRightX = 2,
+ eCornerTopRightY = 3,
+ eCornerBottomRightX = 4,
+ eCornerBottomRightY = 5,
+ eCornerBottomLeftX = 6,
+ eCornerBottomLeftY = 7,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct NotNull<T> {
+ pub mBasePtr: T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub const FontFamilyType_eFamily_generic_first: root::mozilla::FontFamilyType =
+ FontFamilyType::eFamily_serif;
+ pub const FontFamilyType_eFamily_generic_last: root::mozilla::FontFamilyType =
+ FontFamilyType::eFamily_fantasy;
+ pub const FontFamilyType_eFamily_generic_count: root::mozilla::FontFamilyType =
+ FontFamilyType::eFamily_monospace;
+ #[repr(u32)]
+ /// type of font family name, either a name (e.g. Helvetica) or a
/// generic (e.g. serif, sans-serif), with the ability to distinguish
- /// between unquoted and quoted names for serializaiton
- # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum FontFamilyType { eFamily_none = 0 , eFamily_named = 1 , eFamily_named_quoted = 2 , eFamily_serif = 3 , eFamily_sans_serif = 4 , eFamily_monospace = 5 , eFamily_cursive = 6 , eFamily_fantasy = 7 , eFamily_moz_variable = 8 , eFamily_moz_fixed = 9 , eFamily_moz_emoji = 10 , }
- /// font family name, a string for the name if not a generic and
- /// a font type indicated named family or which generic family
- # [ repr ( C ) ] pub struct FontFamilyName { pub mType : root :: mozilla :: FontFamilyType , pub mName : ::nsstring::nsStringRepr , } # [ test ] fn bindgen_test_layout_FontFamilyName ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FontFamilyName > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( FontFamilyName ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FontFamilyName > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FontFamilyName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontFamilyName ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( FontFamilyName ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontFamilyName ) ) . mName as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( FontFamilyName ) , "::" , stringify ! ( mName ) ) ) ; }
- /// A refcounted array of FontFamilyNames. We use this to store the specified
+ /// between unquoted and quoted names for serializaiton
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum FontFamilyType {
+ eFamily_none = 0,
+ eFamily_named = 1,
+ eFamily_named_quoted = 2,
+ eFamily_serif = 3,
+ eFamily_sans_serif = 4,
+ eFamily_monospace = 5,
+ eFamily_cursive = 6,
+ eFamily_fantasy = 7,
+ eFamily_moz_variable = 8,
+ eFamily_moz_fixed = 9,
+ eFamily_moz_emoji = 10,
+ }
+ /// font family name, a string for the name if not a generic and
+ /// a font type indicated named family or which generic family
+ #[repr(C)]
+ pub struct FontFamilyName {
+ pub mType: root::mozilla::FontFamilyType,
+ pub mName: ::nsstring::nsStringRepr,
+ }
+ #[test]
+ fn bindgen_test_layout_FontFamilyName() {
+ assert_eq!(
+ ::std::mem::size_of::<FontFamilyName>(),
+ 24usize,
+ concat!("Size of: ", stringify!(FontFamilyName))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FontFamilyName>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(FontFamilyName))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<FontFamilyName>())).mType as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontFamilyName),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<FontFamilyName>())).mName as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontFamilyName),
+ "::",
+ stringify!(mName)
+ )
+ );
+ }
+ /// A refcounted array of FontFamilyNames. We use this to store the specified
/// value (in Servo) and the computed value (in both Gecko and Servo) of the
- /// font-family property.
- # [ repr ( C ) ] pub struct SharedFontList { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mNames : root :: nsTArray < root :: mozilla :: FontFamilyName > , } pub type SharedFontList_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla14SharedFontList6sEmptyE" ]
- pub static mut SharedFontList_sEmpty : root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > ;
-} # [ test ] fn bindgen_test_layout_SharedFontList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SharedFontList > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( SharedFontList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SharedFontList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SharedFontList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SharedFontList ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( SharedFontList ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const SharedFontList ) ) . mNames as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( SharedFontList ) , "::" , stringify ! ( mNames ) ) ) ; } # [ test ] fn __bindgen_test_layout_StaticRefPtr_open0_SharedFontList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > ) ) ) ; }
- /// font family list, array of font families and a default font type.
+ /// font-family property.
+ #[repr(C)]
+ pub struct SharedFontList {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mNames: root::nsTArray<root::mozilla::FontFamilyName>,
+ }
+ pub type SharedFontList_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla14SharedFontList6sEmptyE"]
+ pub static mut SharedFontList_sEmpty:
+ root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>;
+ }
+ #[test]
+ fn bindgen_test_layout_SharedFontList() {
+ assert_eq!(
+ ::std::mem::size_of::<SharedFontList>(),
+ 16usize,
+ concat!("Size of: ", stringify!(SharedFontList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<SharedFontList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(SharedFontList))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<SharedFontList>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SharedFontList),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<SharedFontList>())).mNames as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(SharedFontList),
+ "::",
+ stringify!(mNames)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_StaticRefPtr_open0_SharedFontList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>)
+ )
+ );
+ assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: mozilla :: SharedFontList > ) ) );
+ }
+ /// font family list, array of font families and a default font type.
/// font family names are either named strings or generics. the default
- /// font type is used to preserve the variable font fallback behavior
- # [ repr ( C ) ] pub struct FontFamilyList { pub mFontlist : root :: mozilla :: NotNull < root :: RefPtr < root :: mozilla :: SharedFontList > > , pub mDefaultFontType : root :: mozilla :: FontFamilyType , } # [ test ] fn bindgen_test_layout_FontFamilyList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FontFamilyList > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( FontFamilyList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FontFamilyList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( FontFamilyList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontFamilyList ) ) . mFontlist as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( FontFamilyList ) , "::" , stringify ! ( mFontlist ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontFamilyList ) ) . mDefaultFontType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( FontFamilyList ) , "::" , stringify ! ( mDefaultFontType ) ) ) ; } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBasicShapeType { Polygon = 0 , Circle = 1 , Ellipse = 2 , Inset = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBoxAlign { Stretch = 0 , Start = 1 , Center = 2 , Baseline = 3 , End = 4 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBoxDecorationBreak { Slice = 0 , Clone = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBoxDirection { Normal = 0 , Reverse = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBoxOrient { Horizontal = 0 , Vertical = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBoxPack { Start = 0 , Center = 1 , End = 2 , Justify = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBoxSizing { Content = 0 , Border = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleClear { None = 0 , Left = 1 , Right = 2 , InlineStart = 3 , InlineEnd = 4 , Both = 5 , Line = 8 , Max = 13 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleGeometryBox { ContentBox = 0 , PaddingBox = 1 , BorderBox = 2 , MarginBox = 3 , FillBox = 4 , StrokeBox = 5 , ViewBox = 6 , NoClip = 7 , Text = 8 , NoBox = 9 , MozAlmostPadding = 127 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleFillRule { Nonzero = 0 , Evenodd = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleFloat { None = 0 , Left = 1 , Right = 2 , InlineStart = 3 , InlineEnd = 4 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleFloatEdge { ContentBox = 0 , MarginBox = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleHyphens { None = 0 , Manual = 1 , Auto = 2 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleShapeRadius { ClosestSide = 0 , FarthestSide = 1 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleShapeSourceType { None = 0 , URL = 1 , Image = 2 , Shape = 3 , Box = 4 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleStackSizing { Ignore = 0 , StretchToFit = 1 , IgnoreHorizontal = 2 , IgnoreVertical = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleTextJustify { None = 0 , Auto = 1 , InterWord = 2 , InterCharacter = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleUserFocus { None = 0 , Ignore = 1 , Normal = 2 , SelectAll = 3 , SelectBefore = 4 , SelectAfter = 5 , SelectSame = 6 , SelectMenu = 7 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleUserSelect { None = 0 , Text = 1 , Element = 2 , Elements = 3 , All = 4 , Toggle = 5 , TriState = 6 , Auto = 7 , MozAll = 8 , MozText = 9 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleUserInput { None = 0 , Enabled = 1 , Disabled = 2 , Auto = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleUserModify { ReadOnly = 0 , ReadWrite = 1 , WriteOnly = 2 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleWindowDragging { Default = 0 , Drag = 1 , NoDrag = 2 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleOrient { Inline = 0 , Block = 1 , Horizontal = 2 , Vertical = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleImageLayerRepeat { NoRepeat = 0 , RepeatX = 1 , RepeatY = 2 , Repeat = 3 , Space = 4 , Round = 5 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleBorderImageRepeat { Stretch = 0 , Repeat = 1 , Round = 2 , Space = 3 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleDisplay { None = 0 , Block = 1 , FlowRoot = 2 , Inline = 3 , InlineBlock = 4 , ListItem = 5 , Table = 6 , InlineTable = 7 , TableRowGroup = 8 , TableColumn = 9 , TableColumnGroup = 10 , TableHeaderGroup = 11 , TableFooterGroup = 12 , TableRow = 13 , TableCell = 14 , TableCaption = 15 , Flex = 16 , InlineFlex = 17 , Grid = 18 , InlineGrid = 19 , Ruby = 20 , RubyBase = 21 , RubyBaseContainer = 22 , RubyText = 23 , RubyTextContainer = 24 , Contents = 25 , WebkitBox = 26 , WebkitInlineBox = 27 , MozBox = 28 , MozInlineBox = 29 , MozGrid = 30 , MozInlineGrid = 31 , MozGridGroup = 32 , MozGridLine = 33 , MozStack = 34 , MozInlineStack = 35 , MozDeck = 36 , MozGroupbox = 37 , MozPopup = 38 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleGridTrackBreadth { MaxContent = 1 , MinContent = 2 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleWhiteSpace { Normal = 0 , Pre = 1 , Nowrap = 2 , PreWrap = 3 , PreLine = 4 , PreSpace = 5 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleOverscrollBehavior { Auto = 0 , Contain = 1 , None = 2 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SupportsWeakPtr { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct WeakPtr { pub _address : u8 , } pub type WeakPtr_WeakReference = u8 ;
- /// Event messages
- pub type EventMessageType = u16 ; pub const EventMessage_eVoidEvent : root :: mozilla :: EventMessage = 0 ; pub const EventMessage_eAllEvents : root :: mozilla :: EventMessage = 1 ; pub const EventMessage_eWindowClose : root :: mozilla :: EventMessage = 2 ; pub const EventMessage_eKeyPress : root :: mozilla :: EventMessage = 3 ; pub const EventMessage_eKeyUp : root :: mozilla :: EventMessage = 4 ; pub const EventMessage_eKeyDown : root :: mozilla :: EventMessage = 5 ; pub const EventMessage_eKeyDownOnPlugin : root :: mozilla :: EventMessage = 6 ; pub const EventMessage_eKeyUpOnPlugin : root :: mozilla :: EventMessage = 7 ; pub const EventMessage_eAccessKeyNotFound : root :: mozilla :: EventMessage = 8 ; pub const EventMessage_eResize : root :: mozilla :: EventMessage = 9 ; pub const EventMessage_eScroll : root :: mozilla :: EventMessage = 10 ; pub const EventMessage_eInstall : root :: mozilla :: EventMessage = 11 ; pub const EventMessage_eAppInstalled : root :: mozilla :: EventMessage = 12 ; pub const EventMessage_ePluginActivate : root :: mozilla :: EventMessage = 13 ; pub const EventMessage_ePluginFocus : root :: mozilla :: EventMessage = 14 ; pub const EventMessage_eOffline : root :: mozilla :: EventMessage = 15 ; pub const EventMessage_eOnline : root :: mozilla :: EventMessage = 16 ; pub const EventMessage_eLanguageChange : root :: mozilla :: EventMessage = 17 ; pub const EventMessage_eMouseMove : root :: mozilla :: EventMessage = 18 ; pub const EventMessage_eMouseUp : root :: mozilla :: EventMessage = 19 ; pub const EventMessage_eMouseDown : root :: mozilla :: EventMessage = 20 ; pub const EventMessage_eMouseEnterIntoWidget : root :: mozilla :: EventMessage = 21 ; pub const EventMessage_eMouseExitFromWidget : root :: mozilla :: EventMessage = 22 ; pub const EventMessage_eMouseDoubleClick : root :: mozilla :: EventMessage = 23 ; pub const EventMessage_eMouseClick : root :: mozilla :: EventMessage = 24 ; pub const EventMessage_eMouseAuxClick : root :: mozilla :: EventMessage = 25 ; pub const EventMessage_eMouseActivate : root :: mozilla :: EventMessage = 26 ; pub const EventMessage_eMouseOver : root :: mozilla :: EventMessage = 27 ; pub const EventMessage_eMouseOut : root :: mozilla :: EventMessage = 28 ; pub const EventMessage_eMouseHitTest : root :: mozilla :: EventMessage = 29 ; pub const EventMessage_eMouseEnter : root :: mozilla :: EventMessage = 30 ; pub const EventMessage_eMouseLeave : root :: mozilla :: EventMessage = 31 ; pub const EventMessage_eMouseTouchDrag : root :: mozilla :: EventMessage = 32 ; pub const EventMessage_eMouseLongTap : root :: mozilla :: EventMessage = 33 ; pub const EventMessage_eMouseEventFirst : root :: mozilla :: EventMessage = 18 ; pub const EventMessage_eMouseEventLast : root :: mozilla :: EventMessage = 33 ; pub const EventMessage_ePointerMove : root :: mozilla :: EventMessage = 34 ; pub const EventMessage_ePointerUp : root :: mozilla :: EventMessage = 35 ; pub const EventMessage_ePointerDown : root :: mozilla :: EventMessage = 36 ; pub const EventMessage_ePointerOver : root :: mozilla :: EventMessage = 37 ; pub const EventMessage_ePointerOut : root :: mozilla :: EventMessage = 38 ; pub const EventMessage_ePointerEnter : root :: mozilla :: EventMessage = 39 ; pub const EventMessage_ePointerLeave : root :: mozilla :: EventMessage = 40 ; pub const EventMessage_ePointerCancel : root :: mozilla :: EventMessage = 41 ; pub const EventMessage_ePointerGotCapture : root :: mozilla :: EventMessage = 42 ; pub const EventMessage_ePointerLostCapture : root :: mozilla :: EventMessage = 43 ; pub const EventMessage_ePointerEventFirst : root :: mozilla :: EventMessage = 34 ; pub const EventMessage_ePointerEventLast : root :: mozilla :: EventMessage = 43 ; pub const EventMessage_eContextMenu : root :: mozilla :: EventMessage = 44 ; pub const EventMessage_eLoad : root :: mozilla :: EventMessage = 45 ; pub const EventMessage_eUnload : root :: mozilla :: EventMessage = 46 ; pub const EventMessage_eHashChange : root :: mozilla :: EventMessage = 47 ; pub const EventMessage_eImageAbort : root :: mozilla :: EventMessage = 48 ; pub const EventMessage_eLoadError : root :: mozilla :: EventMessage = 49 ; pub const EventMessage_eLoadEnd : root :: mozilla :: EventMessage = 50 ; pub const EventMessage_ePopState : root :: mozilla :: EventMessage = 51 ; pub const EventMessage_eStorage : root :: mozilla :: EventMessage = 52 ; pub const EventMessage_eBeforeUnload : root :: mozilla :: EventMessage = 53 ; pub const EventMessage_eReadyStateChange : root :: mozilla :: EventMessage = 54 ; pub const EventMessage_eFormSubmit : root :: mozilla :: EventMessage = 55 ; pub const EventMessage_eFormReset : root :: mozilla :: EventMessage = 56 ; pub const EventMessage_eFormChange : root :: mozilla :: EventMessage = 57 ; pub const EventMessage_eFormSelect : root :: mozilla :: EventMessage = 58 ; pub const EventMessage_eFormInvalid : root :: mozilla :: EventMessage = 59 ; pub const EventMessage_eFormCheckboxStateChange : root :: mozilla :: EventMessage = 60 ; pub const EventMessage_eFormRadioStateChange : root :: mozilla :: EventMessage = 61 ; pub const EventMessage_eFocus : root :: mozilla :: EventMessage = 62 ; pub const EventMessage_eBlur : root :: mozilla :: EventMessage = 63 ; pub const EventMessage_eFocusIn : root :: mozilla :: EventMessage = 64 ; pub const EventMessage_eFocusOut : root :: mozilla :: EventMessage = 65 ; pub const EventMessage_eDragEnter : root :: mozilla :: EventMessage = 66 ; pub const EventMessage_eDragOver : root :: mozilla :: EventMessage = 67 ; pub const EventMessage_eDragExit : root :: mozilla :: EventMessage = 68 ; pub const EventMessage_eDrag : root :: mozilla :: EventMessage = 69 ; pub const EventMessage_eDragEnd : root :: mozilla :: EventMessage = 70 ; pub const EventMessage_eDragStart : root :: mozilla :: EventMessage = 71 ; pub const EventMessage_eDrop : root :: mozilla :: EventMessage = 72 ; pub const EventMessage_eDragLeave : root :: mozilla :: EventMessage = 73 ; pub const EventMessage_eDragDropEventFirst : root :: mozilla :: EventMessage = 66 ; pub const EventMessage_eDragDropEventLast : root :: mozilla :: EventMessage = 73 ; pub const EventMessage_eXULPopupShowing : root :: mozilla :: EventMessage = 74 ; pub const EventMessage_eXULPopupShown : root :: mozilla :: EventMessage = 75 ; pub const EventMessage_eXULPopupPositioned : root :: mozilla :: EventMessage = 76 ; pub const EventMessage_eXULPopupHiding : root :: mozilla :: EventMessage = 77 ; pub const EventMessage_eXULPopupHidden : root :: mozilla :: EventMessage = 78 ; pub const EventMessage_eXULBroadcast : root :: mozilla :: EventMessage = 79 ; pub const EventMessage_eXULCommandUpdate : root :: mozilla :: EventMessage = 80 ; pub const EventMessage_eLegacyMouseLineOrPageScroll : root :: mozilla :: EventMessage = 81 ; pub const EventMessage_eLegacyMousePixelScroll : root :: mozilla :: EventMessage = 82 ; pub const EventMessage_eScrollPortUnderflow : root :: mozilla :: EventMessage = 83 ; pub const EventMessage_eScrollPortOverflow : root :: mozilla :: EventMessage = 84 ; pub const EventMessage_eLegacySubtreeModified : root :: mozilla :: EventMessage = 85 ; pub const EventMessage_eLegacyNodeInserted : root :: mozilla :: EventMessage = 86 ; pub const EventMessage_eLegacyNodeRemoved : root :: mozilla :: EventMessage = 87 ; pub const EventMessage_eLegacyNodeRemovedFromDocument : root :: mozilla :: EventMessage = 88 ; pub const EventMessage_eLegacyNodeInsertedIntoDocument : root :: mozilla :: EventMessage = 89 ; pub const EventMessage_eLegacyAttrModified : root :: mozilla :: EventMessage = 90 ; pub const EventMessage_eLegacyCharacterDataModified : root :: mozilla :: EventMessage = 91 ; pub const EventMessage_eLegacyMutationEventFirst : root :: mozilla :: EventMessage = 85 ; pub const EventMessage_eLegacyMutationEventLast : root :: mozilla :: EventMessage = 91 ; pub const EventMessage_eUnidentifiedEvent : root :: mozilla :: EventMessage = 92 ; pub const EventMessage_eCompositionStart : root :: mozilla :: EventMessage = 93 ; pub const EventMessage_eCompositionEnd : root :: mozilla :: EventMessage = 94 ; pub const EventMessage_eCompositionUpdate : root :: mozilla :: EventMessage = 95 ; pub const EventMessage_eCompositionChange : root :: mozilla :: EventMessage = 96 ; pub const EventMessage_eCompositionCommitAsIs : root :: mozilla :: EventMessage = 97 ; pub const EventMessage_eCompositionCommit : root :: mozilla :: EventMessage = 98 ; pub const EventMessage_eCompositionCommitRequestHandled : root :: mozilla :: EventMessage = 99 ; pub const EventMessage_eLegacyDOMActivate : root :: mozilla :: EventMessage = 100 ; pub const EventMessage_eLegacyDOMFocusIn : root :: mozilla :: EventMessage = 101 ; pub const EventMessage_eLegacyDOMFocusOut : root :: mozilla :: EventMessage = 102 ; pub const EventMessage_ePageShow : root :: mozilla :: EventMessage = 103 ; pub const EventMessage_ePageHide : root :: mozilla :: EventMessage = 104 ; pub const EventMessage_eSVGLoad : root :: mozilla :: EventMessage = 105 ; pub const EventMessage_eSVGUnload : root :: mozilla :: EventMessage = 106 ; pub const EventMessage_eSVGResize : root :: mozilla :: EventMessage = 107 ; pub const EventMessage_eSVGScroll : root :: mozilla :: EventMessage = 108 ; pub const EventMessage_eSVGZoom : root :: mozilla :: EventMessage = 109 ; pub const EventMessage_eXULCommand : root :: mozilla :: EventMessage = 110 ; pub const EventMessage_eCopy : root :: mozilla :: EventMessage = 111 ; pub const EventMessage_eCut : root :: mozilla :: EventMessage = 112 ; pub const EventMessage_ePaste : root :: mozilla :: EventMessage = 113 ; pub const EventMessage_ePasteNoFormatting : root :: mozilla :: EventMessage = 114 ; pub const EventMessage_eQuerySelectedText : root :: mozilla :: EventMessage = 115 ; pub const EventMessage_eQueryTextContent : root :: mozilla :: EventMessage = 116 ; pub const EventMessage_eQueryCaretRect : root :: mozilla :: EventMessage = 117 ; pub const EventMessage_eQueryTextRect : root :: mozilla :: EventMessage = 118 ; pub const EventMessage_eQueryTextRectArray : root :: mozilla :: EventMessage = 119 ; pub const EventMessage_eQueryEditorRect : root :: mozilla :: EventMessage = 120 ; pub const EventMessage_eQueryContentState : root :: mozilla :: EventMessage = 121 ; pub const EventMessage_eQuerySelectionAsTransferable : root :: mozilla :: EventMessage = 122 ; pub const EventMessage_eQueryCharacterAtPoint : root :: mozilla :: EventMessage = 123 ; pub const EventMessage_eQueryDOMWidgetHittest : root :: mozilla :: EventMessage = 124 ; pub const EventMessage_eLoadStart : root :: mozilla :: EventMessage = 125 ; pub const EventMessage_eProgress : root :: mozilla :: EventMessage = 126 ; pub const EventMessage_eSuspend : root :: mozilla :: EventMessage = 127 ; pub const EventMessage_eEmptied : root :: mozilla :: EventMessage = 128 ; pub const EventMessage_eStalled : root :: mozilla :: EventMessage = 129 ; pub const EventMessage_ePlay : root :: mozilla :: EventMessage = 130 ; pub const EventMessage_ePause : root :: mozilla :: EventMessage = 131 ; pub const EventMessage_eLoadedMetaData : root :: mozilla :: EventMessage = 132 ; pub const EventMessage_eLoadedData : root :: mozilla :: EventMessage = 133 ; pub const EventMessage_eWaiting : root :: mozilla :: EventMessage = 134 ; pub const EventMessage_ePlaying : root :: mozilla :: EventMessage = 135 ; pub const EventMessage_eCanPlay : root :: mozilla :: EventMessage = 136 ; pub const EventMessage_eCanPlayThrough : root :: mozilla :: EventMessage = 137 ; pub const EventMessage_eSeeking : root :: mozilla :: EventMessage = 138 ; pub const EventMessage_eSeeked : root :: mozilla :: EventMessage = 139 ; pub const EventMessage_eTimeUpdate : root :: mozilla :: EventMessage = 140 ; pub const EventMessage_eEnded : root :: mozilla :: EventMessage = 141 ; pub const EventMessage_eRateChange : root :: mozilla :: EventMessage = 142 ; pub const EventMessage_eDurationChange : root :: mozilla :: EventMessage = 143 ; pub const EventMessage_eVolumeChange : root :: mozilla :: EventMessage = 144 ; pub const EventMessage_eAfterPaint : root :: mozilla :: EventMessage = 145 ; pub const EventMessage_eSwipeGestureMayStart : root :: mozilla :: EventMessage = 146 ; pub const EventMessage_eSwipeGestureStart : root :: mozilla :: EventMessage = 147 ; pub const EventMessage_eSwipeGestureUpdate : root :: mozilla :: EventMessage = 148 ; pub const EventMessage_eSwipeGestureEnd : root :: mozilla :: EventMessage = 149 ; pub const EventMessage_eSwipeGesture : root :: mozilla :: EventMessage = 150 ; pub const EventMessage_eMagnifyGestureStart : root :: mozilla :: EventMessage = 151 ; pub const EventMessage_eMagnifyGestureUpdate : root :: mozilla :: EventMessage = 152 ; pub const EventMessage_eMagnifyGesture : root :: mozilla :: EventMessage = 153 ; pub const EventMessage_eRotateGestureStart : root :: mozilla :: EventMessage = 154 ; pub const EventMessage_eRotateGestureUpdate : root :: mozilla :: EventMessage = 155 ; pub const EventMessage_eRotateGesture : root :: mozilla :: EventMessage = 156 ; pub const EventMessage_eTapGesture : root :: mozilla :: EventMessage = 157 ; pub const EventMessage_ePressTapGesture : root :: mozilla :: EventMessage = 158 ; pub const EventMessage_eEdgeUIStarted : root :: mozilla :: EventMessage = 159 ; pub const EventMessage_eEdgeUICanceled : root :: mozilla :: EventMessage = 160 ; pub const EventMessage_eEdgeUICompleted : root :: mozilla :: EventMessage = 161 ; pub const EventMessage_ePluginInputEvent : root :: mozilla :: EventMessage = 162 ; pub const EventMessage_eSetSelection : root :: mozilla :: EventMessage = 163 ; pub const EventMessage_eContentCommandCut : root :: mozilla :: EventMessage = 164 ; pub const EventMessage_eContentCommandCopy : root :: mozilla :: EventMessage = 165 ; pub const EventMessage_eContentCommandPaste : root :: mozilla :: EventMessage = 166 ; pub const EventMessage_eContentCommandDelete : root :: mozilla :: EventMessage = 167 ; pub const EventMessage_eContentCommandUndo : root :: mozilla :: EventMessage = 168 ; pub const EventMessage_eContentCommandRedo : root :: mozilla :: EventMessage = 169 ; pub const EventMessage_eContentCommandPasteTransferable : root :: mozilla :: EventMessage = 170 ; pub const EventMessage_eContentCommandLookUpDictionary : root :: mozilla :: EventMessage = 171 ; pub const EventMessage_eContentCommandScroll : root :: mozilla :: EventMessage = 172 ; pub const EventMessage_eGestureNotify : root :: mozilla :: EventMessage = 173 ; pub const EventMessage_eScrolledAreaChanged : root :: mozilla :: EventMessage = 174 ; pub const EventMessage_eTransitionStart : root :: mozilla :: EventMessage = 175 ; pub const EventMessage_eTransitionRun : root :: mozilla :: EventMessage = 176 ; pub const EventMessage_eTransitionEnd : root :: mozilla :: EventMessage = 177 ; pub const EventMessage_eTransitionCancel : root :: mozilla :: EventMessage = 178 ; pub const EventMessage_eAnimationStart : root :: mozilla :: EventMessage = 179 ; pub const EventMessage_eAnimationEnd : root :: mozilla :: EventMessage = 180 ; pub const EventMessage_eAnimationIteration : root :: mozilla :: EventMessage = 181 ; pub const EventMessage_eAnimationCancel : root :: mozilla :: EventMessage = 182 ; pub const EventMessage_eWebkitTransitionEnd : root :: mozilla :: EventMessage = 183 ; pub const EventMessage_eWebkitAnimationStart : root :: mozilla :: EventMessage = 184 ; pub const EventMessage_eWebkitAnimationEnd : root :: mozilla :: EventMessage = 185 ; pub const EventMessage_eWebkitAnimationIteration : root :: mozilla :: EventMessage = 186 ; pub const EventMessage_eSMILBeginEvent : root :: mozilla :: EventMessage = 187 ; pub const EventMessage_eSMILEndEvent : root :: mozilla :: EventMessage = 188 ; pub const EventMessage_eSMILRepeatEvent : root :: mozilla :: EventMessage = 189 ; pub const EventMessage_eAudioProcess : root :: mozilla :: EventMessage = 190 ; pub const EventMessage_eAudioComplete : root :: mozilla :: EventMessage = 191 ; pub const EventMessage_eBeforeScriptExecute : root :: mozilla :: EventMessage = 192 ; pub const EventMessage_eAfterScriptExecute : root :: mozilla :: EventMessage = 193 ; pub const EventMessage_eBeforePrint : root :: mozilla :: EventMessage = 194 ; pub const EventMessage_eAfterPrint : root :: mozilla :: EventMessage = 195 ; pub const EventMessage_eMessage : root :: mozilla :: EventMessage = 196 ; pub const EventMessage_eMessageError : root :: mozilla :: EventMessage = 197 ; pub const EventMessage_eOpen : root :: mozilla :: EventMessage = 198 ; pub const EventMessage_eDeviceOrientation : root :: mozilla :: EventMessage = 199 ; pub const EventMessage_eAbsoluteDeviceOrientation : root :: mozilla :: EventMessage = 200 ; pub const EventMessage_eDeviceMotion : root :: mozilla :: EventMessage = 201 ; pub const EventMessage_eDeviceProximity : root :: mozilla :: EventMessage = 202 ; pub const EventMessage_eUserProximity : root :: mozilla :: EventMessage = 203 ; pub const EventMessage_eDeviceLight : root :: mozilla :: EventMessage = 204 ; pub const EventMessage_eVRDisplayActivate : root :: mozilla :: EventMessage = 205 ; pub const EventMessage_eVRDisplayDeactivate : root :: mozilla :: EventMessage = 206 ; pub const EventMessage_eVRDisplayConnect : root :: mozilla :: EventMessage = 207 ; pub const EventMessage_eVRDisplayDisconnect : root :: mozilla :: EventMessage = 208 ; pub const EventMessage_eVRDisplayPresentChange : root :: mozilla :: EventMessage = 209 ; pub const EventMessage_eShow : root :: mozilla :: EventMessage = 210 ; pub const EventMessage_eFullscreenChange : root :: mozilla :: EventMessage = 211 ; pub const EventMessage_eFullscreenError : root :: mozilla :: EventMessage = 212 ; pub const EventMessage_eMozFullscreenChange : root :: mozilla :: EventMessage = 213 ; pub const EventMessage_eMozFullscreenError : root :: mozilla :: EventMessage = 214 ; pub const EventMessage_eTouchStart : root :: mozilla :: EventMessage = 215 ; pub const EventMessage_eTouchMove : root :: mozilla :: EventMessage = 216 ; pub const EventMessage_eTouchEnd : root :: mozilla :: EventMessage = 217 ; pub const EventMessage_eTouchCancel : root :: mozilla :: EventMessage = 218 ; pub const EventMessage_eTouchPointerCancel : root :: mozilla :: EventMessage = 219 ; pub const EventMessage_ePointerLockChange : root :: mozilla :: EventMessage = 220 ; pub const EventMessage_ePointerLockError : root :: mozilla :: EventMessage = 221 ; pub const EventMessage_eMozPointerLockChange : root :: mozilla :: EventMessage = 222 ; pub const EventMessage_eMozPointerLockError : root :: mozilla :: EventMessage = 223 ; pub const EventMessage_eWheel : root :: mozilla :: EventMessage = 224 ; pub const EventMessage_eWheelOperationStart : root :: mozilla :: EventMessage = 225 ; pub const EventMessage_eWheelOperationEnd : root :: mozilla :: EventMessage = 226 ; pub const EventMessage_eTimeChange : root :: mozilla :: EventMessage = 227 ; pub const EventMessage_eNetworkUpload : root :: mozilla :: EventMessage = 228 ; pub const EventMessage_eNetworkDownload : root :: mozilla :: EventMessage = 229 ; pub const EventMessage_eMediaRecorderDataAvailable : root :: mozilla :: EventMessage = 230 ; pub const EventMessage_eMediaRecorderWarning : root :: mozilla :: EventMessage = 231 ; pub const EventMessage_eMediaRecorderStop : root :: mozilla :: EventMessage = 232 ; pub const EventMessage_eGamepadButtonDown : root :: mozilla :: EventMessage = 233 ; pub const EventMessage_eGamepadButtonUp : root :: mozilla :: EventMessage = 234 ; pub const EventMessage_eGamepadAxisMove : root :: mozilla :: EventMessage = 235 ; pub const EventMessage_eGamepadConnected : root :: mozilla :: EventMessage = 236 ; pub const EventMessage_eGamepadDisconnected : root :: mozilla :: EventMessage = 237 ; pub const EventMessage_eGamepadEventFirst : root :: mozilla :: EventMessage = 233 ; pub const EventMessage_eGamepadEventLast : root :: mozilla :: EventMessage = 237 ; pub const EventMessage_eEditorInput : root :: mozilla :: EventMessage = 238 ; pub const EventMessage_eSelectStart : root :: mozilla :: EventMessage = 239 ; pub const EventMessage_eSelectionChange : root :: mozilla :: EventMessage = 240 ; pub const EventMessage_eVisibilityChange : root :: mozilla :: EventMessage = 241 ; pub const EventMessage_eToggle : root :: mozilla :: EventMessage = 242 ; pub const EventMessage_eClose : root :: mozilla :: EventMessage = 243 ; pub const EventMessage_eEventMessage_MaxValue : root :: mozilla :: EventMessage = 244 ; pub type EventMessage = root :: mozilla :: EventMessageType ;
- /// Event class IDs
- pub type EventClassIDType = u8 ; pub const EventClassID_eBasicEventClass : root :: mozilla :: EventClassID = 0 ; pub const EventClassID_eGUIEventClass : root :: mozilla :: EventClassID = 1 ; pub const EventClassID_eInputEventClass : root :: mozilla :: EventClassID = 2 ; pub const EventClassID_eUIEventClass : root :: mozilla :: EventClassID = 3 ; pub const EventClassID_eKeyboardEventClass : root :: mozilla :: EventClassID = 4 ; pub const EventClassID_eCompositionEventClass : root :: mozilla :: EventClassID = 5 ; pub const EventClassID_eQueryContentEventClass : root :: mozilla :: EventClassID = 6 ; pub const EventClassID_eSelectionEventClass : root :: mozilla :: EventClassID = 7 ; pub const EventClassID_eEditorInputEventClass : root :: mozilla :: EventClassID = 8 ; pub const EventClassID_eMouseEventBaseClass : root :: mozilla :: EventClassID = 9 ; pub const EventClassID_eMouseEventClass : root :: mozilla :: EventClassID = 10 ; pub const EventClassID_eDragEventClass : root :: mozilla :: EventClassID = 11 ; pub const EventClassID_eMouseScrollEventClass : root :: mozilla :: EventClassID = 12 ; pub const EventClassID_eWheelEventClass : root :: mozilla :: EventClassID = 13 ; pub const EventClassID_ePointerEventClass : root :: mozilla :: EventClassID = 14 ; pub const EventClassID_eGestureNotifyEventClass : root :: mozilla :: EventClassID = 15 ; pub const EventClassID_eSimpleGestureEventClass : root :: mozilla :: EventClassID = 16 ; pub const EventClassID_eTouchEventClass : root :: mozilla :: EventClassID = 17 ; pub const EventClassID_eScrollPortEventClass : root :: mozilla :: EventClassID = 18 ; pub const EventClassID_eScrollAreaEventClass : root :: mozilla :: EventClassID = 19 ; pub const EventClassID_eFormEventClass : root :: mozilla :: EventClassID = 20 ; pub const EventClassID_eClipboardEventClass : root :: mozilla :: EventClassID = 21 ; pub const EventClassID_eFocusEventClass : root :: mozilla :: EventClassID = 22 ; pub const EventClassID_eTransitionEventClass : root :: mozilla :: EventClassID = 23 ; pub const EventClassID_eAnimationEventClass : root :: mozilla :: EventClassID = 24 ; pub const EventClassID_eSMILTimeEventClass : root :: mozilla :: EventClassID = 25 ; pub const EventClassID_eCommandEventClass : root :: mozilla :: EventClassID = 26 ; pub const EventClassID_eContentCommandEventClass : root :: mozilla :: EventClassID = 27 ; pub const EventClassID_ePluginEventClass : root :: mozilla :: EventClassID = 28 ; pub const EventClassID_eMutationEventClass : root :: mozilla :: EventClassID = 29 ; pub type EventClassID = root :: mozilla :: EventClassIDType ; pub type AtomArray = root :: nsTArray < root :: RefPtr < root :: nsAtom > > ;
- /// EventStates is the class used to represent the event states of nsIContent
+ /// font type is used to preserve the variable font fallback behavior
+ #[repr(C)]
+ pub struct FontFamilyList {
+ pub mFontlist: root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>,
+ pub mDefaultFontType: root::mozilla::FontFamilyType,
+ }
+ #[test]
+ fn bindgen_test_layout_FontFamilyList() {
+ assert_eq!(
+ ::std::mem::size_of::<FontFamilyList>(),
+ 16usize,
+ concat!("Size of: ", stringify!(FontFamilyList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FontFamilyList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(FontFamilyList))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontFamilyList>())).mFontlist as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontFamilyList),
+ "::",
+ stringify!(mFontlist)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontFamilyList>())).mDefaultFontType as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontFamilyList),
+ "::",
+ stringify!(mDefaultFontType)
+ )
+ );
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBasicShapeType {
+ Polygon = 0,
+ Circle = 1,
+ Ellipse = 2,
+ Inset = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBoxAlign {
+ Stretch = 0,
+ Start = 1,
+ Center = 2,
+ Baseline = 3,
+ End = 4,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBoxDecorationBreak {
+ Slice = 0,
+ Clone = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBoxDirection {
+ Normal = 0,
+ Reverse = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBoxOrient {
+ Horizontal = 0,
+ Vertical = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBoxPack {
+ Start = 0,
+ Center = 1,
+ End = 2,
+ Justify = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBoxSizing {
+ Content = 0,
+ Border = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleClear {
+ None = 0,
+ Left = 1,
+ Right = 2,
+ InlineStart = 3,
+ InlineEnd = 4,
+ Both = 5,
+ Line = 8,
+ Max = 13,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleGeometryBox {
+ ContentBox = 0,
+ PaddingBox = 1,
+ BorderBox = 2,
+ MarginBox = 3,
+ FillBox = 4,
+ StrokeBox = 5,
+ ViewBox = 6,
+ NoClip = 7,
+ Text = 8,
+ NoBox = 9,
+ MozAlmostPadding = 127,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleFillRule {
+ Nonzero = 0,
+ Evenodd = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleFloat {
+ None = 0,
+ Left = 1,
+ Right = 2,
+ InlineStart = 3,
+ InlineEnd = 4,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleFloatEdge {
+ ContentBox = 0,
+ MarginBox = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleHyphens {
+ None = 0,
+ Manual = 1,
+ Auto = 2,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleShapeRadius {
+ ClosestSide = 0,
+ FarthestSide = 1,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleShapeSourceType {
+ None = 0,
+ URL = 1,
+ Image = 2,
+ Shape = 3,
+ Box = 4,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleStackSizing {
+ Ignore = 0,
+ StretchToFit = 1,
+ IgnoreHorizontal = 2,
+ IgnoreVertical = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleTextJustify {
+ None = 0,
+ Auto = 1,
+ InterWord = 2,
+ InterCharacter = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleUserFocus {
+ None = 0,
+ Ignore = 1,
+ Normal = 2,
+ SelectAll = 3,
+ SelectBefore = 4,
+ SelectAfter = 5,
+ SelectSame = 6,
+ SelectMenu = 7,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleUserSelect {
+ None = 0,
+ Text = 1,
+ Element = 2,
+ Elements = 3,
+ All = 4,
+ Toggle = 5,
+ TriState = 6,
+ Auto = 7,
+ MozAll = 8,
+ MozText = 9,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleUserInput {
+ None = 0,
+ Enabled = 1,
+ Disabled = 2,
+ Auto = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleUserModify {
+ ReadOnly = 0,
+ ReadWrite = 1,
+ WriteOnly = 2,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleWindowDragging {
+ Default = 0,
+ Drag = 1,
+ NoDrag = 2,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleOrient {
+ Inline = 0,
+ Block = 1,
+ Horizontal = 2,
+ Vertical = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleImageLayerRepeat {
+ NoRepeat = 0,
+ RepeatX = 1,
+ RepeatY = 2,
+ Repeat = 3,
+ Space = 4,
+ Round = 5,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleBorderImageRepeat {
+ Stretch = 0,
+ Repeat = 1,
+ Round = 2,
+ Space = 3,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleDisplay {
+ None = 0,
+ Block = 1,
+ FlowRoot = 2,
+ Inline = 3,
+ InlineBlock = 4,
+ ListItem = 5,
+ Table = 6,
+ InlineTable = 7,
+ TableRowGroup = 8,
+ TableColumn = 9,
+ TableColumnGroup = 10,
+ TableHeaderGroup = 11,
+ TableFooterGroup = 12,
+ TableRow = 13,
+ TableCell = 14,
+ TableCaption = 15,
+ Flex = 16,
+ InlineFlex = 17,
+ Grid = 18,
+ InlineGrid = 19,
+ Ruby = 20,
+ RubyBase = 21,
+ RubyBaseContainer = 22,
+ RubyText = 23,
+ RubyTextContainer = 24,
+ Contents = 25,
+ WebkitBox = 26,
+ WebkitInlineBox = 27,
+ MozBox = 28,
+ MozInlineBox = 29,
+ MozGrid = 30,
+ MozInlineGrid = 31,
+ MozGridGroup = 32,
+ MozGridLine = 33,
+ MozStack = 34,
+ MozInlineStack = 35,
+ MozDeck = 36,
+ MozGroupbox = 37,
+ MozPopup = 38,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleGridTrackBreadth {
+ MaxContent = 1,
+ MinContent = 2,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleWhiteSpace {
+ Normal = 0,
+ Pre = 1,
+ Nowrap = 2,
+ PreWrap = 3,
+ PreLine = 4,
+ PreSpace = 5,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleOverscrollBehavior {
+ Auto = 0,
+ Contain = 1,
+ None = 2,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct SupportsWeakPtr {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct WeakPtr {
+ pub _address: u8,
+ }
+ pub type WeakPtr_WeakReference = u8;
+ /// Event messages
+ pub type EventMessageType = u16;
+ pub const EventMessage_eVoidEvent: root::mozilla::EventMessage = 0;
+ pub const EventMessage_eAllEvents: root::mozilla::EventMessage = 1;
+ pub const EventMessage_eWindowClose: root::mozilla::EventMessage = 2;
+ pub const EventMessage_eKeyPress: root::mozilla::EventMessage = 3;
+ pub const EventMessage_eKeyUp: root::mozilla::EventMessage = 4;
+ pub const EventMessage_eKeyDown: root::mozilla::EventMessage = 5;
+ pub const EventMessage_eKeyDownOnPlugin: root::mozilla::EventMessage = 6;
+ pub const EventMessage_eKeyUpOnPlugin: root::mozilla::EventMessage = 7;
+ pub const EventMessage_eAccessKeyNotFound: root::mozilla::EventMessage = 8;
+ pub const EventMessage_eResize: root::mozilla::EventMessage = 9;
+ pub const EventMessage_eScroll: root::mozilla::EventMessage = 10;
+ pub const EventMessage_eInstall: root::mozilla::EventMessage = 11;
+ pub const EventMessage_eAppInstalled: root::mozilla::EventMessage = 12;
+ pub const EventMessage_ePluginActivate: root::mozilla::EventMessage = 13;
+ pub const EventMessage_ePluginFocus: root::mozilla::EventMessage = 14;
+ pub const EventMessage_eOffline: root::mozilla::EventMessage = 15;
+ pub const EventMessage_eOnline: root::mozilla::EventMessage = 16;
+ pub const EventMessage_eLanguageChange: root::mozilla::EventMessage = 17;
+ pub const EventMessage_eMouseMove: root::mozilla::EventMessage = 18;
+ pub const EventMessage_eMouseUp: root::mozilla::EventMessage = 19;
+ pub const EventMessage_eMouseDown: root::mozilla::EventMessage = 20;
+ pub const EventMessage_eMouseEnterIntoWidget: root::mozilla::EventMessage = 21;
+ pub const EventMessage_eMouseExitFromWidget: root::mozilla::EventMessage = 22;
+ pub const EventMessage_eMouseDoubleClick: root::mozilla::EventMessage = 23;
+ pub const EventMessage_eMouseClick: root::mozilla::EventMessage = 24;
+ pub const EventMessage_eMouseAuxClick: root::mozilla::EventMessage = 25;
+ pub const EventMessage_eMouseActivate: root::mozilla::EventMessage = 26;
+ pub const EventMessage_eMouseOver: root::mozilla::EventMessage = 27;
+ pub const EventMessage_eMouseOut: root::mozilla::EventMessage = 28;
+ pub const EventMessage_eMouseHitTest: root::mozilla::EventMessage = 29;
+ pub const EventMessage_eMouseEnter: root::mozilla::EventMessage = 30;
+ pub const EventMessage_eMouseLeave: root::mozilla::EventMessage = 31;
+ pub const EventMessage_eMouseTouchDrag: root::mozilla::EventMessage = 32;
+ pub const EventMessage_eMouseLongTap: root::mozilla::EventMessage = 33;
+ pub const EventMessage_eMouseEventFirst: root::mozilla::EventMessage = 18;
+ pub const EventMessage_eMouseEventLast: root::mozilla::EventMessage = 33;
+ pub const EventMessage_ePointerMove: root::mozilla::EventMessage = 34;
+ pub const EventMessage_ePointerUp: root::mozilla::EventMessage = 35;
+ pub const EventMessage_ePointerDown: root::mozilla::EventMessage = 36;
+ pub const EventMessage_ePointerOver: root::mozilla::EventMessage = 37;
+ pub const EventMessage_ePointerOut: root::mozilla::EventMessage = 38;
+ pub const EventMessage_ePointerEnter: root::mozilla::EventMessage = 39;
+ pub const EventMessage_ePointerLeave: root::mozilla::EventMessage = 40;
+ pub const EventMessage_ePointerCancel: root::mozilla::EventMessage = 41;
+ pub const EventMessage_ePointerGotCapture: root::mozilla::EventMessage = 42;
+ pub const EventMessage_ePointerLostCapture: root::mozilla::EventMessage = 43;
+ pub const EventMessage_ePointerEventFirst: root::mozilla::EventMessage = 34;
+ pub const EventMessage_ePointerEventLast: root::mozilla::EventMessage = 43;
+ pub const EventMessage_eContextMenu: root::mozilla::EventMessage = 44;
+ pub const EventMessage_eLoad: root::mozilla::EventMessage = 45;
+ pub const EventMessage_eUnload: root::mozilla::EventMessage = 46;
+ pub const EventMessage_eHashChange: root::mozilla::EventMessage = 47;
+ pub const EventMessage_eImageAbort: root::mozilla::EventMessage = 48;
+ pub const EventMessage_eLoadError: root::mozilla::EventMessage = 49;
+ pub const EventMessage_eLoadEnd: root::mozilla::EventMessage = 50;
+ pub const EventMessage_ePopState: root::mozilla::EventMessage = 51;
+ pub const EventMessage_eStorage: root::mozilla::EventMessage = 52;
+ pub const EventMessage_eBeforeUnload: root::mozilla::EventMessage = 53;
+ pub const EventMessage_eReadyStateChange: root::mozilla::EventMessage = 54;
+ pub const EventMessage_eFormSubmit: root::mozilla::EventMessage = 55;
+ pub const EventMessage_eFormReset: root::mozilla::EventMessage = 56;
+ pub const EventMessage_eFormChange: root::mozilla::EventMessage = 57;
+ pub const EventMessage_eFormSelect: root::mozilla::EventMessage = 58;
+ pub const EventMessage_eFormInvalid: root::mozilla::EventMessage = 59;
+ pub const EventMessage_eFormCheckboxStateChange: root::mozilla::EventMessage = 60;
+ pub const EventMessage_eFormRadioStateChange: root::mozilla::EventMessage = 61;
+ pub const EventMessage_eFocus: root::mozilla::EventMessage = 62;
+ pub const EventMessage_eBlur: root::mozilla::EventMessage = 63;
+ pub const EventMessage_eFocusIn: root::mozilla::EventMessage = 64;
+ pub const EventMessage_eFocusOut: root::mozilla::EventMessage = 65;
+ pub const EventMessage_eDragEnter: root::mozilla::EventMessage = 66;
+ pub const EventMessage_eDragOver: root::mozilla::EventMessage = 67;
+ pub const EventMessage_eDragExit: root::mozilla::EventMessage = 68;
+ pub const EventMessage_eDrag: root::mozilla::EventMessage = 69;
+ pub const EventMessage_eDragEnd: root::mozilla::EventMessage = 70;
+ pub const EventMessage_eDragStart: root::mozilla::EventMessage = 71;
+ pub const EventMessage_eDrop: root::mozilla::EventMessage = 72;
+ pub const EventMessage_eDragLeave: root::mozilla::EventMessage = 73;
+ pub const EventMessage_eDragDropEventFirst: root::mozilla::EventMessage = 66;
+ pub const EventMessage_eDragDropEventLast: root::mozilla::EventMessage = 73;
+ pub const EventMessage_eXULPopupShowing: root::mozilla::EventMessage = 74;
+ pub const EventMessage_eXULPopupShown: root::mozilla::EventMessage = 75;
+ pub const EventMessage_eXULPopupPositioned: root::mozilla::EventMessage = 76;
+ pub const EventMessage_eXULPopupHiding: root::mozilla::EventMessage = 77;
+ pub const EventMessage_eXULPopupHidden: root::mozilla::EventMessage = 78;
+ pub const EventMessage_eXULBroadcast: root::mozilla::EventMessage = 79;
+ pub const EventMessage_eXULCommandUpdate: root::mozilla::EventMessage = 80;
+ pub const EventMessage_eLegacyMouseLineOrPageScroll: root::mozilla::EventMessage = 81;
+ pub const EventMessage_eLegacyMousePixelScroll: root::mozilla::EventMessage = 82;
+ pub const EventMessage_eScrollPortUnderflow: root::mozilla::EventMessage = 83;
+ pub const EventMessage_eScrollPortOverflow: root::mozilla::EventMessage = 84;
+ pub const EventMessage_eLegacySubtreeModified: root::mozilla::EventMessage = 85;
+ pub const EventMessage_eLegacyNodeInserted: root::mozilla::EventMessage = 86;
+ pub const EventMessage_eLegacyNodeRemoved: root::mozilla::EventMessage = 87;
+ pub const EventMessage_eLegacyNodeRemovedFromDocument: root::mozilla::EventMessage = 88;
+ pub const EventMessage_eLegacyNodeInsertedIntoDocument: root::mozilla::EventMessage = 89;
+ pub const EventMessage_eLegacyAttrModified: root::mozilla::EventMessage = 90;
+ pub const EventMessage_eLegacyCharacterDataModified: root::mozilla::EventMessage = 91;
+ pub const EventMessage_eLegacyMutationEventFirst: root::mozilla::EventMessage = 85;
+ pub const EventMessage_eLegacyMutationEventLast: root::mozilla::EventMessage = 91;
+ pub const EventMessage_eUnidentifiedEvent: root::mozilla::EventMessage = 92;
+ pub const EventMessage_eCompositionStart: root::mozilla::EventMessage = 93;
+ pub const EventMessage_eCompositionEnd: root::mozilla::EventMessage = 94;
+ pub const EventMessage_eCompositionUpdate: root::mozilla::EventMessage = 95;
+ pub const EventMessage_eCompositionChange: root::mozilla::EventMessage = 96;
+ pub const EventMessage_eCompositionCommitAsIs: root::mozilla::EventMessage = 97;
+ pub const EventMessage_eCompositionCommit: root::mozilla::EventMessage = 98;
+ pub const EventMessage_eCompositionCommitRequestHandled: root::mozilla::EventMessage = 99;
+ pub const EventMessage_eLegacyDOMActivate: root::mozilla::EventMessage = 100;
+ pub const EventMessage_eLegacyDOMFocusIn: root::mozilla::EventMessage = 101;
+ pub const EventMessage_eLegacyDOMFocusOut: root::mozilla::EventMessage = 102;
+ pub const EventMessage_ePageShow: root::mozilla::EventMessage = 103;
+ pub const EventMessage_ePageHide: root::mozilla::EventMessage = 104;
+ pub const EventMessage_eSVGLoad: root::mozilla::EventMessage = 105;
+ pub const EventMessage_eSVGUnload: root::mozilla::EventMessage = 106;
+ pub const EventMessage_eSVGResize: root::mozilla::EventMessage = 107;
+ pub const EventMessage_eSVGScroll: root::mozilla::EventMessage = 108;
+ pub const EventMessage_eSVGZoom: root::mozilla::EventMessage = 109;
+ pub const EventMessage_eXULCommand: root::mozilla::EventMessage = 110;
+ pub const EventMessage_eCopy: root::mozilla::EventMessage = 111;
+ pub const EventMessage_eCut: root::mozilla::EventMessage = 112;
+ pub const EventMessage_ePaste: root::mozilla::EventMessage = 113;
+ pub const EventMessage_ePasteNoFormatting: root::mozilla::EventMessage = 114;
+ pub const EventMessage_eQuerySelectedText: root::mozilla::EventMessage = 115;
+ pub const EventMessage_eQueryTextContent: root::mozilla::EventMessage = 116;
+ pub const EventMessage_eQueryCaretRect: root::mozilla::EventMessage = 117;
+ pub const EventMessage_eQueryTextRect: root::mozilla::EventMessage = 118;
+ pub const EventMessage_eQueryTextRectArray: root::mozilla::EventMessage = 119;
+ pub const EventMessage_eQueryEditorRect: root::mozilla::EventMessage = 120;
+ pub const EventMessage_eQueryContentState: root::mozilla::EventMessage = 121;
+ pub const EventMessage_eQuerySelectionAsTransferable: root::mozilla::EventMessage = 122;
+ pub const EventMessage_eQueryCharacterAtPoint: root::mozilla::EventMessage = 123;
+ pub const EventMessage_eQueryDOMWidgetHittest: root::mozilla::EventMessage = 124;
+ pub const EventMessage_eLoadStart: root::mozilla::EventMessage = 125;
+ pub const EventMessage_eProgress: root::mozilla::EventMessage = 126;
+ pub const EventMessage_eSuspend: root::mozilla::EventMessage = 127;
+ pub const EventMessage_eEmptied: root::mozilla::EventMessage = 128;
+ pub const EventMessage_eStalled: root::mozilla::EventMessage = 129;
+ pub const EventMessage_ePlay: root::mozilla::EventMessage = 130;
+ pub const EventMessage_ePause: root::mozilla::EventMessage = 131;
+ pub const EventMessage_eLoadedMetaData: root::mozilla::EventMessage = 132;
+ pub const EventMessage_eLoadedData: root::mozilla::EventMessage = 133;
+ pub const EventMessage_eWaiting: root::mozilla::EventMessage = 134;
+ pub const EventMessage_ePlaying: root::mozilla::EventMessage = 135;
+ pub const EventMessage_eCanPlay: root::mozilla::EventMessage = 136;
+ pub const EventMessage_eCanPlayThrough: root::mozilla::EventMessage = 137;
+ pub const EventMessage_eSeeking: root::mozilla::EventMessage = 138;
+ pub const EventMessage_eSeeked: root::mozilla::EventMessage = 139;
+ pub const EventMessage_eTimeUpdate: root::mozilla::EventMessage = 140;
+ pub const EventMessage_eEnded: root::mozilla::EventMessage = 141;
+ pub const EventMessage_eRateChange: root::mozilla::EventMessage = 142;
+ pub const EventMessage_eDurationChange: root::mozilla::EventMessage = 143;
+ pub const EventMessage_eVolumeChange: root::mozilla::EventMessage = 144;
+ pub const EventMessage_eAfterPaint: root::mozilla::EventMessage = 145;
+ pub const EventMessage_eSwipeGestureMayStart: root::mozilla::EventMessage = 146;
+ pub const EventMessage_eSwipeGestureStart: root::mozilla::EventMessage = 147;
+ pub const EventMessage_eSwipeGestureUpdate: root::mozilla::EventMessage = 148;
+ pub const EventMessage_eSwipeGestureEnd: root::mozilla::EventMessage = 149;
+ pub const EventMessage_eSwipeGesture: root::mozilla::EventMessage = 150;
+ pub const EventMessage_eMagnifyGestureStart: root::mozilla::EventMessage = 151;
+ pub const EventMessage_eMagnifyGestureUpdate: root::mozilla::EventMessage = 152;
+ pub const EventMessage_eMagnifyGesture: root::mozilla::EventMessage = 153;
+ pub const EventMessage_eRotateGestureStart: root::mozilla::EventMessage = 154;
+ pub const EventMessage_eRotateGestureUpdate: root::mozilla::EventMessage = 155;
+ pub const EventMessage_eRotateGesture: root::mozilla::EventMessage = 156;
+ pub const EventMessage_eTapGesture: root::mozilla::EventMessage = 157;
+ pub const EventMessage_ePressTapGesture: root::mozilla::EventMessage = 158;
+ pub const EventMessage_eEdgeUIStarted: root::mozilla::EventMessage = 159;
+ pub const EventMessage_eEdgeUICanceled: root::mozilla::EventMessage = 160;
+ pub const EventMessage_eEdgeUICompleted: root::mozilla::EventMessage = 161;
+ pub const EventMessage_ePluginInputEvent: root::mozilla::EventMessage = 162;
+ pub const EventMessage_eSetSelection: root::mozilla::EventMessage = 163;
+ pub const EventMessage_eContentCommandCut: root::mozilla::EventMessage = 164;
+ pub const EventMessage_eContentCommandCopy: root::mozilla::EventMessage = 165;
+ pub const EventMessage_eContentCommandPaste: root::mozilla::EventMessage = 166;
+ pub const EventMessage_eContentCommandDelete: root::mozilla::EventMessage = 167;
+ pub const EventMessage_eContentCommandUndo: root::mozilla::EventMessage = 168;
+ pub const EventMessage_eContentCommandRedo: root::mozilla::EventMessage = 169;
+ pub const EventMessage_eContentCommandPasteTransferable: root::mozilla::EventMessage = 170;
+ pub const EventMessage_eContentCommandLookUpDictionary: root::mozilla::EventMessage = 171;
+ pub const EventMessage_eContentCommandScroll: root::mozilla::EventMessage = 172;
+ pub const EventMessage_eGestureNotify: root::mozilla::EventMessage = 173;
+ pub const EventMessage_eScrolledAreaChanged: root::mozilla::EventMessage = 174;
+ pub const EventMessage_eTransitionStart: root::mozilla::EventMessage = 175;
+ pub const EventMessage_eTransitionRun: root::mozilla::EventMessage = 176;
+ pub const EventMessage_eTransitionEnd: root::mozilla::EventMessage = 177;
+ pub const EventMessage_eTransitionCancel: root::mozilla::EventMessage = 178;
+ pub const EventMessage_eAnimationStart: root::mozilla::EventMessage = 179;
+ pub const EventMessage_eAnimationEnd: root::mozilla::EventMessage = 180;
+ pub const EventMessage_eAnimationIteration: root::mozilla::EventMessage = 181;
+ pub const EventMessage_eAnimationCancel: root::mozilla::EventMessage = 182;
+ pub const EventMessage_eWebkitTransitionEnd: root::mozilla::EventMessage = 183;
+ pub const EventMessage_eWebkitAnimationStart: root::mozilla::EventMessage = 184;
+ pub const EventMessage_eWebkitAnimationEnd: root::mozilla::EventMessage = 185;
+ pub const EventMessage_eWebkitAnimationIteration: root::mozilla::EventMessage = 186;
+ pub const EventMessage_eSMILBeginEvent: root::mozilla::EventMessage = 187;
+ pub const EventMessage_eSMILEndEvent: root::mozilla::EventMessage = 188;
+ pub const EventMessage_eSMILRepeatEvent: root::mozilla::EventMessage = 189;
+ pub const EventMessage_eAudioProcess: root::mozilla::EventMessage = 190;
+ pub const EventMessage_eAudioComplete: root::mozilla::EventMessage = 191;
+ pub const EventMessage_eBeforeScriptExecute: root::mozilla::EventMessage = 192;
+ pub const EventMessage_eAfterScriptExecute: root::mozilla::EventMessage = 193;
+ pub const EventMessage_eBeforePrint: root::mozilla::EventMessage = 194;
+ pub const EventMessage_eAfterPrint: root::mozilla::EventMessage = 195;
+ pub const EventMessage_eMessage: root::mozilla::EventMessage = 196;
+ pub const EventMessage_eMessageError: root::mozilla::EventMessage = 197;
+ pub const EventMessage_eOpen: root::mozilla::EventMessage = 198;
+ pub const EventMessage_eDeviceOrientation: root::mozilla::EventMessage = 199;
+ pub const EventMessage_eAbsoluteDeviceOrientation: root::mozilla::EventMessage = 200;
+ pub const EventMessage_eDeviceMotion: root::mozilla::EventMessage = 201;
+ pub const EventMessage_eDeviceProximity: root::mozilla::EventMessage = 202;
+ pub const EventMessage_eUserProximity: root::mozilla::EventMessage = 203;
+ pub const EventMessage_eDeviceLight: root::mozilla::EventMessage = 204;
+ pub const EventMessage_eVRDisplayActivate: root::mozilla::EventMessage = 205;
+ pub const EventMessage_eVRDisplayDeactivate: root::mozilla::EventMessage = 206;
+ pub const EventMessage_eVRDisplayConnect: root::mozilla::EventMessage = 207;
+ pub const EventMessage_eVRDisplayDisconnect: root::mozilla::EventMessage = 208;
+ pub const EventMessage_eVRDisplayPresentChange: root::mozilla::EventMessage = 209;
+ pub const EventMessage_eShow: root::mozilla::EventMessage = 210;
+ pub const EventMessage_eFullscreenChange: root::mozilla::EventMessage = 211;
+ pub const EventMessage_eFullscreenError: root::mozilla::EventMessage = 212;
+ pub const EventMessage_eMozFullscreenChange: root::mozilla::EventMessage = 213;
+ pub const EventMessage_eMozFullscreenError: root::mozilla::EventMessage = 214;
+ pub const EventMessage_eTouchStart: root::mozilla::EventMessage = 215;
+ pub const EventMessage_eTouchMove: root::mozilla::EventMessage = 216;
+ pub const EventMessage_eTouchEnd: root::mozilla::EventMessage = 217;
+ pub const EventMessage_eTouchCancel: root::mozilla::EventMessage = 218;
+ pub const EventMessage_eTouchPointerCancel: root::mozilla::EventMessage = 219;
+ pub const EventMessage_ePointerLockChange: root::mozilla::EventMessage = 220;
+ pub const EventMessage_ePointerLockError: root::mozilla::EventMessage = 221;
+ pub const EventMessage_eMozPointerLockChange: root::mozilla::EventMessage = 222;
+ pub const EventMessage_eMozPointerLockError: root::mozilla::EventMessage = 223;
+ pub const EventMessage_eWheel: root::mozilla::EventMessage = 224;
+ pub const EventMessage_eWheelOperationStart: root::mozilla::EventMessage = 225;
+ pub const EventMessage_eWheelOperationEnd: root::mozilla::EventMessage = 226;
+ pub const EventMessage_eTimeChange: root::mozilla::EventMessage = 227;
+ pub const EventMessage_eNetworkUpload: root::mozilla::EventMessage = 228;
+ pub const EventMessage_eNetworkDownload: root::mozilla::EventMessage = 229;
+ pub const EventMessage_eMediaRecorderDataAvailable: root::mozilla::EventMessage = 230;
+ pub const EventMessage_eMediaRecorderWarning: root::mozilla::EventMessage = 231;
+ pub const EventMessage_eMediaRecorderStop: root::mozilla::EventMessage = 232;
+ pub const EventMessage_eGamepadButtonDown: root::mozilla::EventMessage = 233;
+ pub const EventMessage_eGamepadButtonUp: root::mozilla::EventMessage = 234;
+ pub const EventMessage_eGamepadAxisMove: root::mozilla::EventMessage = 235;
+ pub const EventMessage_eGamepadConnected: root::mozilla::EventMessage = 236;
+ pub const EventMessage_eGamepadDisconnected: root::mozilla::EventMessage = 237;
+ pub const EventMessage_eGamepadEventFirst: root::mozilla::EventMessage = 233;
+ pub const EventMessage_eGamepadEventLast: root::mozilla::EventMessage = 237;
+ pub const EventMessage_eEditorInput: root::mozilla::EventMessage = 238;
+ pub const EventMessage_eSelectStart: root::mozilla::EventMessage = 239;
+ pub const EventMessage_eSelectionChange: root::mozilla::EventMessage = 240;
+ pub const EventMessage_eVisibilityChange: root::mozilla::EventMessage = 241;
+ pub const EventMessage_eToggle: root::mozilla::EventMessage = 242;
+ pub const EventMessage_eClose: root::mozilla::EventMessage = 243;
+ pub const EventMessage_eEventMessage_MaxValue: root::mozilla::EventMessage = 244;
+ pub type EventMessage = u16;
+ /// Event class IDs
+ pub type EventClassIDType = u8;
+ pub const EventClassID_eBasicEventClass: root::mozilla::EventClassID = 0;
+ pub const EventClassID_eGUIEventClass: root::mozilla::EventClassID = 1;
+ pub const EventClassID_eInputEventClass: root::mozilla::EventClassID = 2;
+ pub const EventClassID_eUIEventClass: root::mozilla::EventClassID = 3;
+ pub const EventClassID_eKeyboardEventClass: root::mozilla::EventClassID = 4;
+ pub const EventClassID_eCompositionEventClass: root::mozilla::EventClassID = 5;
+ pub const EventClassID_eQueryContentEventClass: root::mozilla::EventClassID = 6;
+ pub const EventClassID_eSelectionEventClass: root::mozilla::EventClassID = 7;
+ pub const EventClassID_eEditorInputEventClass: root::mozilla::EventClassID = 8;
+ pub const EventClassID_eMouseEventBaseClass: root::mozilla::EventClassID = 9;
+ pub const EventClassID_eMouseEventClass: root::mozilla::EventClassID = 10;
+ pub const EventClassID_eDragEventClass: root::mozilla::EventClassID = 11;
+ pub const EventClassID_eMouseScrollEventClass: root::mozilla::EventClassID = 12;
+ pub const EventClassID_eWheelEventClass: root::mozilla::EventClassID = 13;
+ pub const EventClassID_ePointerEventClass: root::mozilla::EventClassID = 14;
+ pub const EventClassID_eGestureNotifyEventClass: root::mozilla::EventClassID = 15;
+ pub const EventClassID_eSimpleGestureEventClass: root::mozilla::EventClassID = 16;
+ pub const EventClassID_eTouchEventClass: root::mozilla::EventClassID = 17;
+ pub const EventClassID_eScrollPortEventClass: root::mozilla::EventClassID = 18;
+ pub const EventClassID_eScrollAreaEventClass: root::mozilla::EventClassID = 19;
+ pub const EventClassID_eFormEventClass: root::mozilla::EventClassID = 20;
+ pub const EventClassID_eClipboardEventClass: root::mozilla::EventClassID = 21;
+ pub const EventClassID_eFocusEventClass: root::mozilla::EventClassID = 22;
+ pub const EventClassID_eTransitionEventClass: root::mozilla::EventClassID = 23;
+ pub const EventClassID_eAnimationEventClass: root::mozilla::EventClassID = 24;
+ pub const EventClassID_eSMILTimeEventClass: root::mozilla::EventClassID = 25;
+ pub const EventClassID_eCommandEventClass: root::mozilla::EventClassID = 26;
+ pub const EventClassID_eContentCommandEventClass: root::mozilla::EventClassID = 27;
+ pub const EventClassID_ePluginEventClass: root::mozilla::EventClassID = 28;
+ pub const EventClassID_eMutationEventClass: root::mozilla::EventClassID = 29;
+ pub type EventClassID = u8;
+ pub type AtomArray = root::nsTArray<root::RefPtr<root::nsAtom>>;
+ /// EventStates is the class used to represent the event states of nsIContent
/// instances. These states are calculated by IntrinsicState() and
/// ContentStatesChanged() has to be called when one of them changes thus
/// informing the layout/style engine of the change.
- /// Event states are associated with pseudo-classes.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct EventStates { pub mStates : root :: mozilla :: EventStates_InternalType , } pub type EventStates_InternalType = u64 ; pub type EventStates_ServoType = u64 ; # [ test ] fn bindgen_test_layout_EventStates ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EventStates > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( EventStates ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EventStates > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EventStates ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EventStates ) ) . mStates as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( EventStates ) , "::" , stringify ! ( mStates ) ) ) ; } impl Clone for EventStates { fn clone ( & self ) -> Self { * self } } pub const ServoTraversalFlags_Empty : root :: mozilla :: ServoTraversalFlags = 0 ; pub const ServoTraversalFlags_AnimationOnly : root :: mozilla :: ServoTraversalFlags = 1 ; pub const ServoTraversalFlags_ForCSSRuleChanges : root :: mozilla :: ServoTraversalFlags = 2 ; pub const ServoTraversalFlags_Forgetful : root :: mozilla :: ServoTraversalFlags = 8 ; pub const ServoTraversalFlags_ClearDirtyBits : root :: mozilla :: ServoTraversalFlags = 32 ; pub const ServoTraversalFlags_ClearAnimationOnlyDirtyDescendants : root :: mozilla :: ServoTraversalFlags = 64 ; pub const ServoTraversalFlags_ParallelTraversal : root :: mozilla :: ServoTraversalFlags = 128 ; pub const ServoTraversalFlags_FlushThrottledAnimations : root :: mozilla :: ServoTraversalFlags = 256 ; pub type ServoTraversalFlags = u32 ; # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum StyleRuleInclusion { All = 0 , DefaultOnly = 1 , } pub const UpdateAnimationsTasks_CSSAnimations : root :: mozilla :: UpdateAnimationsTasks = 1 ; pub const UpdateAnimationsTasks_CSSTransitions : root :: mozilla :: UpdateAnimationsTasks = 2 ; pub const UpdateAnimationsTasks_EffectProperties : root :: mozilla :: UpdateAnimationsTasks = 4 ; pub const UpdateAnimationsTasks_CascadeResults : root :: mozilla :: UpdateAnimationsTasks = 8 ; pub type UpdateAnimationsTasks = u8 ; pub const ParsingMode_Default : root :: mozilla :: ParsingMode = 0 ; pub const ParsingMode_AllowUnitlessLength : root :: mozilla :: ParsingMode = 1 ; pub const ParsingMode_AllowAllNumericValues : root :: mozilla :: ParsingMode = 2 ; pub type ParsingMode = u8 ; # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum InheritTarget { Text = 0 , FirstLetterContinuation = 1 , PlaceholderFrame = 2 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ServoStyleSetSizes { pub mRuleTree : usize , pub mPrecomputedPseudos : usize , pub mElementAndPseudosMaps : usize , pub mInvalidationMap : usize , pub mRevalidationSelectors : usize , pub mOther : usize , } # [ test ] fn bindgen_test_layout_ServoStyleSetSizes ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoStyleSetSizes > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( ServoStyleSetSizes ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoStyleSetSizes > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoStyleSetSizes ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSetSizes ) ) . mRuleTree as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSetSizes ) , "::" , stringify ! ( mRuleTree ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSetSizes ) ) . mPrecomputedPseudos as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSetSizes ) , "::" , stringify ! ( mPrecomputedPseudos ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSetSizes ) ) . mElementAndPseudosMaps as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSetSizes ) , "::" , stringify ! ( mElementAndPseudosMaps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSetSizes ) ) . mInvalidationMap as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSetSizes ) , "::" , stringify ! ( mInvalidationMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSetSizes ) ) . mRevalidationSelectors as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSetSizes ) , "::" , stringify ! ( mRevalidationSelectors ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSetSizes ) ) . mOther as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSetSizes ) , "::" , stringify ! ( mOther ) ) ) ; } impl Clone for ServoStyleSetSizes { fn clone ( & self ) -> Self { * self } } pub const StyleBackendType_None : root :: mozilla :: StyleBackendType = 0 ; pub const StyleBackendType_Gecko : root :: mozilla :: StyleBackendType = 1 ; pub const StyleBackendType_Servo : root :: mozilla :: StyleBackendType = 2 ; pub type StyleBackendType = u8 ; pub type TimeStampValue = u64 ;
- /// Instances of this class represent the length of an interval of time.
+ /// Event states are associated with pseudo-classes.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct EventStates {
+ pub mStates: root::mozilla::EventStates_InternalType,
+ }
+ pub type EventStates_InternalType = u64;
+ pub type EventStates_ServoType = u64;
+ #[test]
+ fn bindgen_test_layout_EventStates() {
+ assert_eq!(
+ ::std::mem::size_of::<EventStates>(),
+ 8usize,
+ concat!("Size of: ", stringify!(EventStates))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<EventStates>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(EventStates))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<EventStates>())).mStates as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EventStates),
+ "::",
+ stringify!(mStates)
+ )
+ );
+ }
+ impl Clone for EventStates {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const ServoTraversalFlags_Empty: root::mozilla::ServoTraversalFlags = 0;
+ pub const ServoTraversalFlags_AnimationOnly: root::mozilla::ServoTraversalFlags = 1;
+ pub const ServoTraversalFlags_ForCSSRuleChanges: root::mozilla::ServoTraversalFlags = 2;
+ pub const ServoTraversalFlags_Forgetful: root::mozilla::ServoTraversalFlags = 8;
+ pub const ServoTraversalFlags_ClearDirtyBits: root::mozilla::ServoTraversalFlags = 32;
+ pub const ServoTraversalFlags_ClearAnimationOnlyDirtyDescendants:
+ root::mozilla::ServoTraversalFlags = 64;
+ pub const ServoTraversalFlags_ParallelTraversal: root::mozilla::ServoTraversalFlags = 128;
+ pub const ServoTraversalFlags_FlushThrottledAnimations: root::mozilla::ServoTraversalFlags =
+ 256;
+ pub type ServoTraversalFlags = u32;
+ #[repr(i32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum StyleRuleInclusion {
+ All = 0,
+ DefaultOnly = 1,
+ }
+ pub const UpdateAnimationsTasks_CSSAnimations: root::mozilla::UpdateAnimationsTasks = 1;
+ pub const UpdateAnimationsTasks_CSSTransitions: root::mozilla::UpdateAnimationsTasks = 2;
+ pub const UpdateAnimationsTasks_EffectProperties: root::mozilla::UpdateAnimationsTasks = 4;
+ pub const UpdateAnimationsTasks_CascadeResults: root::mozilla::UpdateAnimationsTasks = 8;
+ pub type UpdateAnimationsTasks = u8;
+ pub const ParsingMode_Default: root::mozilla::ParsingMode = 0;
+ pub const ParsingMode_AllowUnitlessLength: root::mozilla::ParsingMode = 1;
+ pub const ParsingMode_AllowAllNumericValues: root::mozilla::ParsingMode = 2;
+ pub type ParsingMode = u8;
+ #[repr(i32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum InheritTarget {
+ Text = 0,
+ FirstLetterContinuation = 1,
+ PlaceholderFrame = 2,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ServoStyleSetSizes {
+ pub mRuleTree: usize,
+ pub mPrecomputedPseudos: usize,
+ pub mElementAndPseudosMaps: usize,
+ pub mInvalidationMap: usize,
+ pub mRevalidationSelectors: usize,
+ pub mOther: usize,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoStyleSetSizes() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoStyleSetSizes>(),
+ 48usize,
+ concat!("Size of: ", stringify!(ServoStyleSetSizes))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoStyleSetSizes>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoStyleSetSizes))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSetSizes>())).mRuleTree as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSetSizes),
+ "::",
+ stringify!(mRuleTree)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSetSizes>())).mPrecomputedPseudos as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSetSizes),
+ "::",
+ stringify!(mPrecomputedPseudos)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSetSizes>())).mElementAndPseudosMaps
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSetSizes),
+ "::",
+ stringify!(mElementAndPseudosMaps)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSetSizes>())).mInvalidationMap as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSetSizes),
+ "::",
+ stringify!(mInvalidationMap)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSetSizes>())).mRevalidationSelectors
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSetSizes),
+ "::",
+ stringify!(mRevalidationSelectors)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSetSizes>())).mOther as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSetSizes),
+ "::",
+ stringify!(mOther)
+ )
+ );
+ }
+ impl Clone for ServoStyleSetSizes {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const StyleBackendType_None: root::mozilla::StyleBackendType = 0;
+ pub const StyleBackendType_Gecko: root::mozilla::StyleBackendType = 1;
+ pub const StyleBackendType_Servo: root::mozilla::StyleBackendType = 2;
+ pub type StyleBackendType = u8;
+ pub type TimeStampValue = u64;
+ /// Instances of this class represent the length of an interval of time.
/// Negative durations are allowed, meaning the end is before the start.
///
/// Internally the duration is stored as a int64_t in units of
@@ -245,19 +5566,50 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// this class would be broken.
///
/// The ValueCalculator template parameter determines how arithmetic
- /// operations are performed on the integer count of ticks (mValue).
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct BaseTimeDuration { pub mValue : i64 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct BaseTimeDuration__SomethingVeryRandomHere { pub _address : u8 , }
- /// Perform arithmetic operations on the value of a BaseTimeDuration without
- /// doing strict checks on the range of values.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct TimeDurationValueCalculator { pub _address : u8 , } # [ test ] fn bindgen_test_layout_TimeDurationValueCalculator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TimeDurationValueCalculator > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( TimeDurationValueCalculator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TimeDurationValueCalculator > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TimeDurationValueCalculator ) ) ) ; } impl Clone for TimeDurationValueCalculator { fn clone ( & self ) -> Self { * self } }
- /// Specialization of BaseTimeDuration that uses TimeDurationValueCalculator for
+ /// operations are performed on the integer count of ticks (mValue).
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct BaseTimeDuration {
+ pub mValue: i64,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct BaseTimeDuration__SomethingVeryRandomHere {
+ pub _address: u8,
+ }
+ /// Perform arithmetic operations on the value of a BaseTimeDuration without
+ /// doing strict checks on the range of values.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct TimeDurationValueCalculator {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_TimeDurationValueCalculator() {
+ assert_eq!(
+ ::std::mem::size_of::<TimeDurationValueCalculator>(),
+ 1usize,
+ concat!("Size of: ", stringify!(TimeDurationValueCalculator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<TimeDurationValueCalculator>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(TimeDurationValueCalculator))
+ );
+ }
+ impl Clone for TimeDurationValueCalculator {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Specialization of BaseTimeDuration that uses TimeDurationValueCalculator for
/// arithmetic on the mValue member.
///
/// Use this class for time durations that are *not* expected to hold values of
/// Forever (or the negative equivalent) or when such time duration are *not*
- /// expected to be used in arithmetic operations.
- pub type TimeDuration = root :: mozilla :: BaseTimeDuration ;
- /// Instances of this class represent moments in time, or a special
+ /// expected to be used in arithmetic operations.
+ pub type TimeDuration = root::mozilla::BaseTimeDuration;
+ /// Instances of this class represent moments in time, or a special
/// "null" moment. We do not use the non-monotonic system clock or
/// local time, since they can be reset, causing apparent backward
/// travel in time, which can confuse algorithms. Instead we measure
@@ -284,9 +5636,11 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// explicitly nullable and provides an IsNull() method. time_point
/// is initialized to the clock's epoch and provides a
/// time_since_epoch() method that functions similiarly. i.e.
- /// t.IsNull() is equivalent to t.time_since_epoch() == decltype(t)::duration::zero();
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct TimeStamp {
- /// When built with PRIntervalTime, a value of 0 means this instance
+ /// t.IsNull() is equivalent to t.time_since_epoch() == decltype(t)::duration::zero();
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct TimeStamp {
+ /// When built with PRIntervalTime, a value of 0 means this instance
/// is "null". Otherwise, the low 32 bits represent a PRIntervalTime,
/// and the high 32 bits represent a counter of the number of
/// rollovers of PRIntervalTime that we've seen. This counter starts
@@ -296,20 +5650,472 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// time to wrap around is about 2^64/100000 seconds, i.e. about
/// 5,849,424 years.
///
- /// When using a system clock, a value is system dependent.
- pub mValue : root :: mozilla :: TimeStampValue , } # [ test ] fn bindgen_test_layout_TimeStamp ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TimeStamp > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( TimeStamp ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TimeStamp > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( TimeStamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const TimeStamp ) ) . mValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( TimeStamp ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for TimeStamp { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct MallocAllocPolicy { pub _address : u8 , } # [ test ] fn bindgen_test_layout_MallocAllocPolicy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < MallocAllocPolicy > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( MallocAllocPolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < MallocAllocPolicy > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( MallocAllocPolicy ) ) ) ; } impl Clone for MallocAllocPolicy { fn clone ( & self ) -> Self { * self } } pub type Vector_Impl = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Vector_CapacityAndReserved { pub mCapacity : usize , } pub type Vector_ElementType < T > = T ; pub const Vector_InlineLength : root :: mozilla :: Vector__bindgen_ty_1 = 0 ; pub type Vector__bindgen_ty_1 = i32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Vector_Range < T > { pub mCur : * mut T , pub mEnd : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Vector_ConstRange < T > { pub mCur : * mut T , pub mEnd : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub mod binding_danger { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct AssertAndSuppressCleanupPolicy { pub _address : u8 , } pub const AssertAndSuppressCleanupPolicy_assertHandled : bool = true ; pub const AssertAndSuppressCleanupPolicy_suppress : bool = true ; # [ test ] fn bindgen_test_layout_AssertAndSuppressCleanupPolicy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AssertAndSuppressCleanupPolicy > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( AssertAndSuppressCleanupPolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AssertAndSuppressCleanupPolicy > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( AssertAndSuppressCleanupPolicy ) ) ) ; } impl Clone for AssertAndSuppressCleanupPolicy { fn clone ( & self ) -> Self { * self } } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct OwningNonNull < T > { pub mPtr : root :: RefPtr < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub mod net { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; pub const ReferrerPolicy_RP_No_Referrer : root :: mozilla :: net :: ReferrerPolicy = 2 ; pub const ReferrerPolicy_RP_Origin : root :: mozilla :: net :: ReferrerPolicy = 3 ; pub const ReferrerPolicy_RP_No_Referrer_When_Downgrade : root :: mozilla :: net :: ReferrerPolicy = 1 ; pub const ReferrerPolicy_RP_Origin_When_Crossorigin : root :: mozilla :: net :: ReferrerPolicy = 4 ; pub const ReferrerPolicy_RP_Unsafe_URL : root :: mozilla :: net :: ReferrerPolicy = 5 ; pub const ReferrerPolicy_RP_Same_Origin : root :: mozilla :: net :: ReferrerPolicy = 6 ; pub const ReferrerPolicy_RP_Strict_Origin : root :: mozilla :: net :: ReferrerPolicy = 7 ; pub const ReferrerPolicy_RP_Strict_Origin_When_Cross_Origin : root :: mozilla :: net :: ReferrerPolicy = 8 ; pub const ReferrerPolicy_RP_Unset : root :: mozilla :: net :: ReferrerPolicy = 0 ; pub type ReferrerPolicy = :: std :: os :: raw :: c_uint ; } pub const CORSMode_CORS_NONE : root :: mozilla :: CORSMode = 0 ; pub const CORSMode_CORS_ANONYMOUS : root :: mozilla :: CORSMode = 1 ; pub const CORSMode_CORS_USE_CREDENTIALS : root :: mozilla :: CORSMode = 2 ; pub type CORSMode = u8 ;
- /// Superclass for data common to CSSStyleSheet and ServoStyleSheet.
- # [ repr ( C ) ] pub struct StyleSheet { pub _base : root :: nsIDOMCSSStyleSheet , pub _base_1 : root :: nsICSSLoaderObserver , pub _base_2 : root :: nsWrapperCache , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mParent : * mut root :: mozilla :: StyleSheet , pub mTitle : ::nsstring::nsStringRepr , pub mDocument : * mut root :: nsIDocument , pub mOwningNode : * mut root :: nsINode , pub mOwnerRule : * mut root :: mozilla :: dom :: CSSImportRule , pub mMedia : root :: RefPtr < root :: mozilla :: dom :: MediaList > , pub mNext : root :: RefPtr < root :: mozilla :: StyleSheet > , pub mParsingMode : root :: mozilla :: css :: SheetParsingMode , pub mType : root :: mozilla :: StyleBackendType , pub mDisabled : bool , pub mDirty : bool , pub mDocumentAssociationMode : root :: mozilla :: StyleSheet_DocumentAssociationMode , pub mInner : * mut root :: mozilla :: StyleSheetInfo , pub mStyleSets : root :: nsTArray < root :: mozilla :: StyleSetHandle > , } pub type StyleSheet_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleSheet_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_StyleSheet_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleSheet_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( StyleSheet_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleSheet_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSheet_cycleCollection ) ) ) ; } impl Clone for StyleSheet_cycleCollection { fn clone ( & self ) -> Self { * self } } pub const StyleSheet_ChangeType_Added : root :: mozilla :: StyleSheet_ChangeType = 0 ; pub const StyleSheet_ChangeType_Removed : root :: mozilla :: StyleSheet_ChangeType = 1 ; pub const StyleSheet_ChangeType_ApplicableStateChanged : root :: mozilla :: StyleSheet_ChangeType = 2 ; pub const StyleSheet_ChangeType_RuleAdded : root :: mozilla :: StyleSheet_ChangeType = 3 ; pub const StyleSheet_ChangeType_RuleRemoved : root :: mozilla :: StyleSheet_ChangeType = 4 ; pub const StyleSheet_ChangeType_RuleChanged : root :: mozilla :: StyleSheet_ChangeType = 5 ; pub type StyleSheet_ChangeType = :: std :: os :: raw :: c_int ; pub const StyleSheet_DocumentAssociationMode_OwnedByDocument : root :: mozilla :: StyleSheet_DocumentAssociationMode = 0 ; pub const StyleSheet_DocumentAssociationMode_NotOwnedByDocument : root :: mozilla :: StyleSheet_DocumentAssociationMode = 1 ; pub type StyleSheet_DocumentAssociationMode = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleSheet_ChildSheetListBuilder { pub sheetSlot : * mut root :: RefPtr < root :: mozilla :: StyleSheet > , pub parent : * mut root :: mozilla :: StyleSheet , } # [ test ] fn bindgen_test_layout_StyleSheet_ChildSheetListBuilder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleSheet_ChildSheetListBuilder > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( StyleSheet_ChildSheetListBuilder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleSheet_ChildSheetListBuilder > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSheet_ChildSheetListBuilder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheet_ChildSheetListBuilder ) ) . sheetSlot as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheet_ChildSheetListBuilder ) , "::" , stringify ! ( sheetSlot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheet_ChildSheetListBuilder ) ) . parent as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheet_ChildSheetListBuilder ) , "::" , stringify ! ( parent ) ) ) ; } impl Clone for StyleSheet_ChildSheetListBuilder { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StyleSheet21_cycleCollectorGlobalE" ]
- pub static mut StyleSheet__cycleCollectorGlobal : root :: mozilla :: StyleSheet_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_StyleSheet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleSheet > ( ) , 136usize , concat ! ( "Size of: " , stringify ! ( StyleSheet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleSheet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSheet ) ) ) ; } pub const CSSEnabledState_eForAllContent : root :: mozilla :: CSSEnabledState = 0 ; pub const CSSEnabledState_eInUASheets : root :: mozilla :: CSSEnabledState = 1 ; pub const CSSEnabledState_eInChrome : root :: mozilla :: CSSEnabledState = 2 ; pub const CSSEnabledState_eIgnoreEnabledState : root :: mozilla :: CSSEnabledState = 255 ; pub type CSSEnabledState = :: std :: os :: raw :: c_int ; pub type CSSPseudoElementTypeBase = u8 ; pub const CSSPseudoElementType_InheritingAnonBox : root :: mozilla :: CSSPseudoElementType = CSSPseudoElementType :: Count ; # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum CSSPseudoElementType { after = 0 , before = 1 , backdrop = 2 , cue = 3 , firstLetter = 4 , firstLine = 5 , mozSelection = 6 , mozFocusInner = 7 , mozFocusOuter = 8 , mozListBullet = 9 , mozListNumber = 10 , mozMathAnonymous = 11 , mozNumberWrapper = 12 , mozNumberText = 13 , mozNumberSpinBox = 14 , mozNumberSpinUp = 15 , mozNumberSpinDown = 16 , mozProgressBar = 17 , mozRangeTrack = 18 , mozRangeProgress = 19 , mozRangeThumb = 20 , mozMeterBar = 21 , mozPlaceholder = 22 , placeholder = 23 , mozColorSwatch = 24 , Count = 25 , NonInheritingAnonBox = 26 , XULTree = 27 , NotPseudo = 28 , MAX = 29 , }
- /// Smart pointer class that can hold a pointer to either an nsStyleSet
- /// or a ServoStyleSet.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleSetHandle { pub mPtr : root :: mozilla :: StyleSetHandle_Ptr , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleSetHandle_Ptr { pub mValue : usize , } # [ test ] fn bindgen_test_layout_StyleSetHandle_Ptr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleSetHandle_Ptr > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( StyleSetHandle_Ptr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleSetHandle_Ptr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSetHandle_Ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSetHandle_Ptr ) ) . mValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSetHandle_Ptr ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for StyleSetHandle_Ptr { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_StyleSetHandle ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleSetHandle > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( StyleSetHandle ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleSetHandle > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSetHandle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSetHandle ) ) . mPtr as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSetHandle ) , "::" , stringify ! ( mPtr ) ) ) ; } impl Clone for StyleSetHandle { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct SeenPtrs { pub _bindgen_opaque_blob : [ u64 ; 4usize ] , } # [ test ] fn bindgen_test_layout_SeenPtrs ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SeenPtrs > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( SeenPtrs ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SeenPtrs > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SeenPtrs ) ) ) ; } impl Clone for SeenPtrs { fn clone ( & self ) -> Self { * self } } pub mod widget { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ;
- /// Contains IMEStatus plus information about the current
- /// input context that the IME can use as hints if desired.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct IMEState { pub mEnabled : root :: mozilla :: widget :: IMEState_Enabled , pub mOpen : root :: mozilla :: widget :: IMEState_Open , } pub const IMEState_Enabled_DISABLED : root :: mozilla :: widget :: IMEState_Enabled = 0 ; pub const IMEState_Enabled_ENABLED : root :: mozilla :: widget :: IMEState_Enabled = 1 ; pub const IMEState_Enabled_PASSWORD : root :: mozilla :: widget :: IMEState_Enabled = 2 ; pub const IMEState_Enabled_PLUGIN : root :: mozilla :: widget :: IMEState_Enabled = 3 ; pub const IMEState_Enabled_UNKNOWN : root :: mozilla :: widget :: IMEState_Enabled = 4 ; pub type IMEState_Enabled = :: std :: os :: raw :: c_uint ; pub const IMEState_Open_OPEN_STATE_NOT_SUPPORTED : root :: mozilla :: widget :: IMEState_Open = 0 ; pub const IMEState_Open_DONT_CHANGE_OPEN_STATE : root :: mozilla :: widget :: IMEState_Open = 0 ; pub const IMEState_Open_OPEN : root :: mozilla :: widget :: IMEState_Open = 1 ; pub const IMEState_Open_CLOSED : root :: mozilla :: widget :: IMEState_Open = 2 ; pub type IMEState_Open = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_IMEState ( ) { assert_eq ! ( :: std :: mem :: size_of :: < IMEState > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( IMEState ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < IMEState > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( IMEState ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const IMEState ) ) . mEnabled as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( IMEState ) , "::" , stringify ! ( mEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const IMEState ) ) . mOpen as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( IMEState ) , "::" , stringify ! ( mOpen ) ) ) ; } impl Clone for IMEState { fn clone ( & self ) -> Self { * self } } }
- /// This class is designed to cause crashes when various kinds of memory
+ /// When using a system clock, a value is system dependent.
+ pub mValue: root::mozilla::TimeStampValue,
+ }
+ #[test]
+ fn bindgen_test_layout_TimeStamp() {
+ assert_eq!(
+ ::std::mem::size_of::<TimeStamp>(),
+ 8usize,
+ concat!("Size of: ", stringify!(TimeStamp))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<TimeStamp>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(TimeStamp))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<TimeStamp>())).mValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(TimeStamp),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for TimeStamp {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct MallocAllocPolicy {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_MallocAllocPolicy() {
+ assert_eq!(
+ ::std::mem::size_of::<MallocAllocPolicy>(),
+ 1usize,
+ concat!("Size of: ", stringify!(MallocAllocPolicy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<MallocAllocPolicy>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(MallocAllocPolicy))
+ );
+ }
+ impl Clone for MallocAllocPolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type Vector_Impl = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Vector_CapacityAndReserved {
+ pub mCapacity: usize,
+ }
+ pub type Vector_ElementType<T> = T;
+ pub const Vector_InlineLength: root::mozilla::Vector__bindgen_ty_1 = 0;
+ pub type Vector__bindgen_ty_1 = i32;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Vector_Range<T> {
+ pub mCur: *mut T,
+ pub mEnd: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Vector_ConstRange<T> {
+ pub mCur: *mut T,
+ pub mEnd: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub mod binding_danger {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct AssertAndSuppressCleanupPolicy {
+ pub _address: u8,
+ }
+ pub const AssertAndSuppressCleanupPolicy_assertHandled: bool = true;
+ pub const AssertAndSuppressCleanupPolicy_suppress: bool = true;
+ #[test]
+ fn bindgen_test_layout_AssertAndSuppressCleanupPolicy() {
+ assert_eq!(
+ ::std::mem::size_of::<AssertAndSuppressCleanupPolicy>(),
+ 1usize,
+ concat!("Size of: ", stringify!(AssertAndSuppressCleanupPolicy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<AssertAndSuppressCleanupPolicy>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(AssertAndSuppressCleanupPolicy))
+ );
+ }
+ impl Clone for AssertAndSuppressCleanupPolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct OwningNonNull<T> {
+ pub mPtr: root::RefPtr<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub mod net {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ pub const ReferrerPolicy_RP_No_Referrer: root::mozilla::net::ReferrerPolicy = 2;
+ pub const ReferrerPolicy_RP_Origin: root::mozilla::net::ReferrerPolicy = 3;
+ pub const ReferrerPolicy_RP_No_Referrer_When_Downgrade:
+ root::mozilla::net::ReferrerPolicy = 1;
+ pub const ReferrerPolicy_RP_Origin_When_Crossorigin:
+ root::mozilla::net::ReferrerPolicy = 4;
+ pub const ReferrerPolicy_RP_Unsafe_URL: root::mozilla::net::ReferrerPolicy = 5;
+ pub const ReferrerPolicy_RP_Same_Origin: root::mozilla::net::ReferrerPolicy = 6;
+ pub const ReferrerPolicy_RP_Strict_Origin: root::mozilla::net::ReferrerPolicy = 7;
+ pub const ReferrerPolicy_RP_Strict_Origin_When_Cross_Origin:
+ root::mozilla::net::ReferrerPolicy = 8;
+ pub const ReferrerPolicy_RP_Unset: root::mozilla::net::ReferrerPolicy = 0;
+ pub type ReferrerPolicy = u32;
+ }
+ pub const CORSMode_CORS_NONE: root::mozilla::CORSMode = 0;
+ pub const CORSMode_CORS_ANONYMOUS: root::mozilla::CORSMode = 1;
+ pub const CORSMode_CORS_USE_CREDENTIALS: root::mozilla::CORSMode = 2;
+ pub type CORSMode = u8;
+ /// Superclass for data common to CSSStyleSheet and ServoStyleSheet.
+ #[repr(C)]
+ pub struct StyleSheet {
+ pub _base: root::nsICSSLoaderObserver,
+ pub _base_1: root::nsWrapperCache,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mParent: *mut root::mozilla::StyleSheet,
+ pub mTitle: ::nsstring::nsStringRepr,
+ pub mDocument: *mut root::nsIDocument,
+ pub mOwningNode: *mut root::nsINode,
+ pub mOwnerRule: *mut root::mozilla::dom::CSSImportRule,
+ pub mMedia: root::RefPtr<root::mozilla::dom::MediaList>,
+ pub mNext: root::RefPtr<root::mozilla::StyleSheet>,
+ pub mParsingMode: root::mozilla::css::SheetParsingMode,
+ pub mType: root::mozilla::StyleBackendType,
+ pub mDisabled: bool,
+ pub mDirtyFlags: u8,
+ pub mDocumentAssociationMode: root::mozilla::StyleSheet_DocumentAssociationMode,
+ pub mInner: *mut root::mozilla::StyleSheetInfo,
+ pub mStyleSets: root::nsTArray<root::mozilla::StyleSetHandle>,
+ }
+ pub type StyleSheet_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleSheet_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleSheet_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleSheet_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(StyleSheet_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleSheet_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleSheet_cycleCollection))
+ );
+ }
+ impl Clone for StyleSheet_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const StyleSheet_ChangeType_Added: root::mozilla::StyleSheet_ChangeType = 0;
+ pub const StyleSheet_ChangeType_Removed: root::mozilla::StyleSheet_ChangeType = 1;
+ pub const StyleSheet_ChangeType_ApplicableStateChanged:
+ root::mozilla::StyleSheet_ChangeType = 2;
+ pub const StyleSheet_ChangeType_RuleAdded: root::mozilla::StyleSheet_ChangeType = 3;
+ pub const StyleSheet_ChangeType_RuleRemoved: root::mozilla::StyleSheet_ChangeType = 4;
+ pub const StyleSheet_ChangeType_RuleChanged: root::mozilla::StyleSheet_ChangeType = 5;
+ pub type StyleSheet_ChangeType = i32;
+ pub const StyleSheet_DocumentAssociationMode_OwnedByDocument:
+ root::mozilla::StyleSheet_DocumentAssociationMode = 0;
+ pub const StyleSheet_DocumentAssociationMode_NotOwnedByDocument:
+ root::mozilla::StyleSheet_DocumentAssociationMode = 1;
+ pub type StyleSheet_DocumentAssociationMode = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleSheet_ChildSheetListBuilder {
+ pub sheetSlot: *mut root::RefPtr<root::mozilla::StyleSheet>,
+ pub parent: *mut root::mozilla::StyleSheet,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleSheet_ChildSheetListBuilder() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleSheet_ChildSheetListBuilder>(),
+ 16usize,
+ concat!("Size of: ", stringify!(StyleSheet_ChildSheetListBuilder))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleSheet_ChildSheetListBuilder>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(StyleSheet_ChildSheetListBuilder)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheet_ChildSheetListBuilder>())).sheetSlot
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheet_ChildSheetListBuilder),
+ "::",
+ stringify!(sheetSlot)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheet_ChildSheetListBuilder>())).parent as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheet_ChildSheetListBuilder),
+ "::",
+ stringify!(parent)
+ )
+ );
+ }
+ impl Clone for StyleSheet_ChildSheetListBuilder {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const StyleSheet_dirtyFlagAttributes_FORCED_UNIQUE_INNER:
+ root::mozilla::StyleSheet_dirtyFlagAttributes = 1;
+ pub const StyleSheet_dirtyFlagAttributes_MODIFIED_RULES:
+ root::mozilla::StyleSheet_dirtyFlagAttributes = 2;
+ pub type StyleSheet_dirtyFlagAttributes = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StyleSheet21_cycleCollectorGlobalE"]
+ pub static mut StyleSheet__cycleCollectorGlobal:
+ root::mozilla::StyleSheet_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_StyleSheet() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleSheet>(),
+ 128usize,
+ concat!("Size of: ", stringify!(StyleSheet))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleSheet>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleSheet))
+ );
+ }
+ pub const CSSEnabledState_eForAllContent: root::mozilla::CSSEnabledState = 0;
+ pub const CSSEnabledState_eInUASheets: root::mozilla::CSSEnabledState = 1;
+ pub const CSSEnabledState_eInChrome: root::mozilla::CSSEnabledState = 2;
+ pub const CSSEnabledState_eIgnoreEnabledState: root::mozilla::CSSEnabledState = 255;
+ pub type CSSEnabledState = i32;
+ pub type CSSPseudoElementTypeBase = u8;
+ pub const CSSPseudoElementType_InheritingAnonBox: root::mozilla::CSSPseudoElementType =
+ CSSPseudoElementType::Count;
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum CSSPseudoElementType {
+ after = 0,
+ before = 1,
+ backdrop = 2,
+ cue = 3,
+ firstLetter = 4,
+ firstLine = 5,
+ mozSelection = 6,
+ mozFocusInner = 7,
+ mozFocusOuter = 8,
+ mozListBullet = 9,
+ mozListNumber = 10,
+ mozMathAnonymous = 11,
+ mozNumberWrapper = 12,
+ mozNumberText = 13,
+ mozNumberSpinBox = 14,
+ mozNumberSpinUp = 15,
+ mozNumberSpinDown = 16,
+ mozProgressBar = 17,
+ mozRangeTrack = 18,
+ mozRangeProgress = 19,
+ mozRangeThumb = 20,
+ mozMeterBar = 21,
+ mozPlaceholder = 22,
+ placeholder = 23,
+ mozColorSwatch = 24,
+ Count = 25,
+ NonInheritingAnonBox = 26,
+ XULTree = 27,
+ NotPseudo = 28,
+ MAX = 29,
+ }
+ /// Smart pointer class that can hold a pointer to either an nsStyleSet
+ /// or a ServoStyleSet.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleSetHandle {
+ pub mPtr: root::mozilla::StyleSetHandle_Ptr,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleSetHandle_Ptr {
+ pub mValue: usize,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleSetHandle_Ptr() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleSetHandle_Ptr>(),
+ 8usize,
+ concat!("Size of: ", stringify!(StyleSetHandle_Ptr))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleSetHandle_Ptr>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleSetHandle_Ptr))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSetHandle_Ptr>())).mValue as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSetHandle_Ptr),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for StyleSetHandle_Ptr {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_StyleSetHandle() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleSetHandle>(),
+ 8usize,
+ concat!("Size of: ", stringify!(StyleSetHandle))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleSetHandle>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleSetHandle))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleSetHandle>())).mPtr as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSetHandle),
+ "::",
+ stringify!(mPtr)
+ )
+ );
+ }
+ impl Clone for StyleSetHandle {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct SeenPtrs {
+ pub _bindgen_opaque_blob: [u64; 4usize],
+ }
+ #[test]
+ fn bindgen_test_layout_SeenPtrs() {
+ assert_eq!(
+ ::std::mem::size_of::<SeenPtrs>(),
+ 32usize,
+ concat!("Size of: ", stringify!(SeenPtrs))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<SeenPtrs>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(SeenPtrs))
+ );
+ }
+ impl Clone for SeenPtrs {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub mod widget {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ /// Contains IMEStatus plus information about the current
+ /// input context that the IME can use as hints if desired.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct IMEState {
+ pub mEnabled: root::mozilla::widget::IMEState_Enabled,
+ pub mOpen: root::mozilla::widget::IMEState_Open,
+ }
+ pub const IMEState_Enabled_DISABLED: root::mozilla::widget::IMEState_Enabled = 0;
+ pub const IMEState_Enabled_ENABLED: root::mozilla::widget::IMEState_Enabled = 1;
+ pub const IMEState_Enabled_PASSWORD: root::mozilla::widget::IMEState_Enabled = 2;
+ pub const IMEState_Enabled_PLUGIN: root::mozilla::widget::IMEState_Enabled = 3;
+ pub const IMEState_Enabled_UNKNOWN: root::mozilla::widget::IMEState_Enabled = 4;
+ pub type IMEState_Enabled = u32;
+ pub const IMEState_Open_OPEN_STATE_NOT_SUPPORTED: root::mozilla::widget::IMEState_Open =
+ 0;
+ pub const IMEState_Open_DONT_CHANGE_OPEN_STATE: root::mozilla::widget::IMEState_Open =
+ 0;
+ pub const IMEState_Open_OPEN: root::mozilla::widget::IMEState_Open = 1;
+ pub const IMEState_Open_CLOSED: root::mozilla::widget::IMEState_Open = 2;
+ pub type IMEState_Open = u32;
+ #[test]
+ fn bindgen_test_layout_IMEState() {
+ assert_eq!(
+ ::std::mem::size_of::<IMEState>(),
+ 8usize,
+ concat!("Size of: ", stringify!(IMEState))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<IMEState>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(IMEState))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<IMEState>())).mEnabled as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(IMEState),
+ "::",
+ stringify!(mEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<IMEState>())).mOpen as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(IMEState),
+ "::",
+ stringify!(mOpen)
+ )
+ );
+ }
+ impl Clone for IMEState {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ }
+ /// This class is designed to cause crashes when various kinds of memory
/// corruption are observed. For instance, let's say we have a class C where we
/// suspect out-of-bounds writes to some members. We can insert a member of type
/// Poison near the members we suspect are being corrupted by out-of-bounds
@@ -322,13 +6128,304 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// A pleasant side-effect of these additional Check() calls is that crash
/// signatures may become more regular, as crashes will ideally occur
/// consolidated at the point of a Check(), rather than scattered about at
- /// various uses of the corrupted memory.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct CorruptionCanary { pub mValue : usize , } pub const CorruptionCanary_kCanarySet : usize = 252382987 ; # [ test ] fn bindgen_test_layout_CorruptionCanary ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CorruptionCanary > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( CorruptionCanary ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CorruptionCanary > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CorruptionCanary ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CorruptionCanary ) ) . mValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CorruptionCanary ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ArenaAllocator_ArenaHeader {
- /// The location in memory of the data portion of the arena.
- pub offset : usize ,
- /// The location in memory of the end of the data portion of the arena.
- pub tail : usize , } impl Clone for ArenaAllocator_ArenaHeader { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ArenaAllocator_ArenaChunk { pub canary : root :: mozilla :: CorruptionCanary , pub header : root :: mozilla :: ArenaAllocator_ArenaHeader , pub next : * mut root :: mozilla :: ArenaAllocator_ArenaChunk , } pub type LayoutDeviceIntPoint = [ u32 ; 2usize ] ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct LayoutDevicePixel { pub _address : u8 , } # [ test ] fn bindgen_test_layout_LayoutDevicePixel ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LayoutDevicePixel > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( LayoutDevicePixel ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LayoutDevicePixel > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( LayoutDevicePixel ) ) ) ; } impl Clone for LayoutDevicePixel { fn clone ( & self ) -> Self { * self } } pub mod a11y { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DocAccessible { _unused : [ u8 ; 0 ] } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Encoding { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct Runnable { pub _base : root :: nsIRunnable , pub _base_1 : root :: nsINamed , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mName : * const :: std :: os :: raw :: c_char , } pub type Runnable_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_Runnable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Runnable > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( Runnable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Runnable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Runnable ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SegmentedVector_SegmentImpl_Storage { pub mBuf : root :: __BindgenUnionField < * mut :: std :: os :: raw :: c_char > , pub mAlign : root :: __BindgenUnionField < u8 > , pub bindgen_union_field : u64 , } pub type SegmentedVector_Segment = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SegmentedVector_IterImpl { pub mSegment : * mut root :: mozilla :: SegmentedVector_Segment , pub mIndex : usize , } pub const UseCounter_eUseCounter_UNKNOWN : root :: mozilla :: UseCounter = -1 ; pub const UseCounter_eUseCounter_SVGSVGElement_getElementById : root :: mozilla :: UseCounter = 0 ; pub const UseCounter_eUseCounter_SVGSVGElement_currentScale_getter : root :: mozilla :: UseCounter = 1 ; pub const UseCounter_eUseCounter_SVGSVGElement_currentScale_setter : root :: mozilla :: UseCounter = 2 ; pub const UseCounter_eUseCounter_property_Fill : root :: mozilla :: UseCounter = 3 ; pub const UseCounter_eUseCounter_property_FillOpacity : root :: mozilla :: UseCounter = 4 ; pub const UseCounter_eUseCounter_XMLDocument_async_getter : root :: mozilla :: UseCounter = 5 ; pub const UseCounter_eUseCounter_XMLDocument_async_setter : root :: mozilla :: UseCounter = 6 ; pub const UseCounter_eUseCounter_DOMError_name_getter : root :: mozilla :: UseCounter = 7 ; pub const UseCounter_eUseCounter_DOMError_name_setter : root :: mozilla :: UseCounter = 8 ; pub const UseCounter_eUseCounter_DOMError_message_getter : root :: mozilla :: UseCounter = 9 ; pub const UseCounter_eUseCounter_DOMError_message_setter : root :: mozilla :: UseCounter = 10 ; pub const UseCounter_eUseCounter_custom_DOMErrorConstructor : root :: mozilla :: UseCounter = 11 ; pub const UseCounter_eUseCounter_PushManager_subscribe : root :: mozilla :: UseCounter = 12 ; pub const UseCounter_eUseCounter_PushSubscription_unsubscribe : root :: mozilla :: UseCounter = 13 ; pub const UseCounter_eUseCounter_Window_sidebar_getter : root :: mozilla :: UseCounter = 14 ; pub const UseCounter_eUseCounter_Window_sidebar_setter : root :: mozilla :: UseCounter = 15 ; pub const UseCounter_eUseCounter_OfflineResourceList_swapCache : root :: mozilla :: UseCounter = 16 ; pub const UseCounter_eUseCounter_OfflineResourceList_update : root :: mozilla :: UseCounter = 17 ; pub const UseCounter_eUseCounter_OfflineResourceList_status_getter : root :: mozilla :: UseCounter = 18 ; pub const UseCounter_eUseCounter_OfflineResourceList_status_setter : root :: mozilla :: UseCounter = 19 ; pub const UseCounter_eUseCounter_OfflineResourceList_onchecking_getter : root :: mozilla :: UseCounter = 20 ; pub const UseCounter_eUseCounter_OfflineResourceList_onchecking_setter : root :: mozilla :: UseCounter = 21 ; pub const UseCounter_eUseCounter_OfflineResourceList_onerror_getter : root :: mozilla :: UseCounter = 22 ; pub const UseCounter_eUseCounter_OfflineResourceList_onerror_setter : root :: mozilla :: UseCounter = 23 ; pub const UseCounter_eUseCounter_OfflineResourceList_onnoupdate_getter : root :: mozilla :: UseCounter = 24 ; pub const UseCounter_eUseCounter_OfflineResourceList_onnoupdate_setter : root :: mozilla :: UseCounter = 25 ; pub const UseCounter_eUseCounter_OfflineResourceList_ondownloading_getter : root :: mozilla :: UseCounter = 26 ; pub const UseCounter_eUseCounter_OfflineResourceList_ondownloading_setter : root :: mozilla :: UseCounter = 27 ; pub const UseCounter_eUseCounter_OfflineResourceList_onprogress_getter : root :: mozilla :: UseCounter = 28 ; pub const UseCounter_eUseCounter_OfflineResourceList_onprogress_setter : root :: mozilla :: UseCounter = 29 ; pub const UseCounter_eUseCounter_OfflineResourceList_onupdateready_getter : root :: mozilla :: UseCounter = 30 ; pub const UseCounter_eUseCounter_OfflineResourceList_onupdateready_setter : root :: mozilla :: UseCounter = 31 ; pub const UseCounter_eUseCounter_OfflineResourceList_oncached_getter : root :: mozilla :: UseCounter = 32 ; pub const UseCounter_eUseCounter_OfflineResourceList_oncached_setter : root :: mozilla :: UseCounter = 33 ; pub const UseCounter_eUseCounter_OfflineResourceList_onobsolete_getter : root :: mozilla :: UseCounter = 34 ; pub const UseCounter_eUseCounter_OfflineResourceList_onobsolete_setter : root :: mozilla :: UseCounter = 35 ; pub const UseCounter_eUseCounter_IDBDatabase_createMutableFile : root :: mozilla :: UseCounter = 36 ; pub const UseCounter_eUseCounter_IDBDatabase_mozCreateFileHandle : root :: mozilla :: UseCounter = 37 ; pub const UseCounter_eUseCounter_IDBMutableFile_open : root :: mozilla :: UseCounter = 38 ; pub const UseCounter_eUseCounter_IDBMutableFile_getFile : root :: mozilla :: UseCounter = 39 ; pub const UseCounter_eUseCounter_DataTransfer_addElement : root :: mozilla :: UseCounter = 40 ; pub const UseCounter_eUseCounter_DataTransfer_mozItemCount_getter : root :: mozilla :: UseCounter = 41 ; pub const UseCounter_eUseCounter_DataTransfer_mozItemCount_setter : root :: mozilla :: UseCounter = 42 ; pub const UseCounter_eUseCounter_DataTransfer_mozCursor_getter : root :: mozilla :: UseCounter = 43 ; pub const UseCounter_eUseCounter_DataTransfer_mozCursor_setter : root :: mozilla :: UseCounter = 44 ; pub const UseCounter_eUseCounter_DataTransfer_mozTypesAt : root :: mozilla :: UseCounter = 45 ; pub const UseCounter_eUseCounter_DataTransfer_mozClearDataAt : root :: mozilla :: UseCounter = 46 ; pub const UseCounter_eUseCounter_DataTransfer_mozSetDataAt : root :: mozilla :: UseCounter = 47 ; pub const UseCounter_eUseCounter_DataTransfer_mozGetDataAt : root :: mozilla :: UseCounter = 48 ; pub const UseCounter_eUseCounter_DataTransfer_mozUserCancelled_getter : root :: mozilla :: UseCounter = 49 ; pub const UseCounter_eUseCounter_DataTransfer_mozUserCancelled_setter : root :: mozilla :: UseCounter = 50 ; pub const UseCounter_eUseCounter_DataTransfer_mozSourceNode_getter : root :: mozilla :: UseCounter = 51 ; pub const UseCounter_eUseCounter_DataTransfer_mozSourceNode_setter : root :: mozilla :: UseCounter = 52 ; pub const UseCounter_eUseCounter_custom_JS_asmjs : root :: mozilla :: UseCounter = 53 ; pub const UseCounter_eUseCounter_custom_JS_wasm : root :: mozilla :: UseCounter = 54 ; pub const UseCounter_eUseCounter_EnablePrivilege : root :: mozilla :: UseCounter = 55 ; pub const UseCounter_eUseCounter_DOMExceptionCode : root :: mozilla :: UseCounter = 56 ; pub const UseCounter_eUseCounter_MutationEvent : root :: mozilla :: UseCounter = 57 ; pub const UseCounter_eUseCounter_Components : root :: mozilla :: UseCounter = 58 ; pub const UseCounter_eUseCounter_PrefixedVisibilityAPI : root :: mozilla :: UseCounter = 59 ; pub const UseCounter_eUseCounter_NodeIteratorDetach : root :: mozilla :: UseCounter = 60 ; pub const UseCounter_eUseCounter_LenientThis : root :: mozilla :: UseCounter = 61 ; pub const UseCounter_eUseCounter_GetPreventDefault : root :: mozilla :: UseCounter = 62 ; pub const UseCounter_eUseCounter_GetSetUserData : root :: mozilla :: UseCounter = 63 ; pub const UseCounter_eUseCounter_MozGetAsFile : root :: mozilla :: UseCounter = 64 ; pub const UseCounter_eUseCounter_UseOfCaptureEvents : root :: mozilla :: UseCounter = 65 ; pub const UseCounter_eUseCounter_UseOfReleaseEvents : root :: mozilla :: UseCounter = 66 ; pub const UseCounter_eUseCounter_UseOfDOM3LoadMethod : root :: mozilla :: UseCounter = 67 ; pub const UseCounter_eUseCounter_ChromeUseOfDOM3LoadMethod : root :: mozilla :: UseCounter = 68 ; pub const UseCounter_eUseCounter_ShowModalDialog : root :: mozilla :: UseCounter = 69 ; pub const UseCounter_eUseCounter_SyncXMLHttpRequest : root :: mozilla :: UseCounter = 70 ; pub const UseCounter_eUseCounter_Window_Cc_ontrollers : root :: mozilla :: UseCounter = 71 ; pub const UseCounter_eUseCounter_ImportXULIntoContent : root :: mozilla :: UseCounter = 72 ; pub const UseCounter_eUseCounter_PannerNodeDoppler : root :: mozilla :: UseCounter = 73 ; pub const UseCounter_eUseCounter_NavigatorGetUserMedia : root :: mozilla :: UseCounter = 74 ; pub const UseCounter_eUseCounter_WebrtcDeprecatedPrefix : root :: mozilla :: UseCounter = 75 ; pub const UseCounter_eUseCounter_RTCPeerConnectionGetStreams : root :: mozilla :: UseCounter = 76 ; pub const UseCounter_eUseCounter_AppCache : root :: mozilla :: UseCounter = 77 ; pub const UseCounter_eUseCounter_PrefixedImageSmoothingEnabled : root :: mozilla :: UseCounter = 78 ; pub const UseCounter_eUseCounter_PrefixedFullscreenAPI : root :: mozilla :: UseCounter = 79 ; pub const UseCounter_eUseCounter_LenientSetter : root :: mozilla :: UseCounter = 80 ; pub const UseCounter_eUseCounter_FileLastModifiedDate : root :: mozilla :: UseCounter = 81 ; pub const UseCounter_eUseCounter_ImageBitmapRenderingContext_TransferImageBitmap : root :: mozilla :: UseCounter = 82 ; pub const UseCounter_eUseCounter_URLCreateObjectURL_MediaStream : root :: mozilla :: UseCounter = 83 ; pub const UseCounter_eUseCounter_XMLBaseAttribute : root :: mozilla :: UseCounter = 84 ; pub const UseCounter_eUseCounter_WindowContentUntrusted : root :: mozilla :: UseCounter = 85 ; pub const UseCounter_eUseCounter_Count : root :: mozilla :: UseCounter = 86 ; pub type UseCounter = i16 ; pub const LogLevel_Disabled : root :: mozilla :: LogLevel = 0 ; pub const LogLevel_Error : root :: mozilla :: LogLevel = 1 ; pub const LogLevel_Warning : root :: mozilla :: LogLevel = 2 ; pub const LogLevel_Info : root :: mozilla :: LogLevel = 3 ; pub const LogLevel_Debug : root :: mozilla :: LogLevel = 4 ; pub const LogLevel_Verbose : root :: mozilla :: LogLevel = 5 ; pub type LogLevel = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct LogModule { pub mName : * mut :: std :: os :: raw :: c_char , pub mLevel : u32 , } # [ test ] fn bindgen_test_layout_LogModule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LogModule > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( LogModule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LogModule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( LogModule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LogModule ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( LogModule ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LogModule ) ) . mLevel as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( LogModule ) , "::" , stringify ! ( mLevel ) ) ) ; }
- /// Helper class that lazy loads the given log module. This is safe to use for
+ /// various uses of the corrupted memory.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct CorruptionCanary {
+ pub mValue: usize,
+ }
+ pub const CorruptionCanary_kCanarySet: usize = 252382987;
+ #[test]
+ fn bindgen_test_layout_CorruptionCanary() {
+ assert_eq!(
+ ::std::mem::size_of::<CorruptionCanary>(),
+ 8usize,
+ concat!("Size of: ", stringify!(CorruptionCanary))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CorruptionCanary>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CorruptionCanary))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<CorruptionCanary>())).mValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CorruptionCanary),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ArenaAllocator_ArenaHeader {
+ /// The location in memory of the data portion of the arena.
+ pub offset: usize,
+ /// The location in memory of the end of the data portion of the arena.
+ pub tail: usize,
+ }
+ impl Clone for ArenaAllocator_ArenaHeader {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ArenaAllocator_ArenaChunk {
+ pub canary: root::mozilla::CorruptionCanary,
+ pub header: root::mozilla::ArenaAllocator_ArenaHeader,
+ pub next: *mut root::mozilla::ArenaAllocator_ArenaChunk,
+ }
+ pub type LayoutDeviceIntPoint = [u32; 2usize];
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct LayoutDevicePixel {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_LayoutDevicePixel() {
+ assert_eq!(
+ ::std::mem::size_of::<LayoutDevicePixel>(),
+ 1usize,
+ concat!("Size of: ", stringify!(LayoutDevicePixel))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LayoutDevicePixel>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(LayoutDevicePixel))
+ );
+ }
+ impl Clone for LayoutDevicePixel {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub mod a11y {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DocAccessible {
+ _unused: [u8; 0],
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Encoding {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct Runnable {
+ pub _base: root::nsIRunnable,
+ pub _base_1: root::nsINamed,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mName: *const ::std::os::raw::c_char,
+ }
+ pub type Runnable_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_Runnable() {
+ assert_eq!(
+ ::std::mem::size_of::<Runnable>(),
+ 32usize,
+ concat!("Size of: ", stringify!(Runnable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Runnable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Runnable))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct SegmentedVector_SegmentImpl_Storage {
+ pub mBuf: root::__BindgenUnionField<*mut ::std::os::raw::c_char>,
+ pub mAlign: root::__BindgenUnionField<u8>,
+ pub bindgen_union_field: u64,
+ }
+ pub type SegmentedVector_Segment = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct SegmentedVector_IterImpl {
+ pub mSegment: *mut root::mozilla::SegmentedVector_Segment,
+ pub mIndex: usize,
+ }
+ pub const UseCounter_eUseCounter_UNKNOWN: root::mozilla::UseCounter = -1;
+ pub const UseCounter_eUseCounter_SVGSVGElement_getElementById: root::mozilla::UseCounter =
+ 0;
+ pub const UseCounter_eUseCounter_SVGSVGElement_currentScale_getter:
+ root::mozilla::UseCounter = 1;
+ pub const UseCounter_eUseCounter_SVGSVGElement_currentScale_setter:
+ root::mozilla::UseCounter = 2;
+ pub const UseCounter_eUseCounter_property_Fill: root::mozilla::UseCounter = 3;
+ pub const UseCounter_eUseCounter_property_FillOpacity: root::mozilla::UseCounter = 4;
+ pub const UseCounter_eUseCounter_XMLDocument_async_getter: root::mozilla::UseCounter = 5;
+ pub const UseCounter_eUseCounter_XMLDocument_async_setter: root::mozilla::UseCounter = 6;
+ pub const UseCounter_eUseCounter_DOMError_name_getter: root::mozilla::UseCounter = 7;
+ pub const UseCounter_eUseCounter_DOMError_name_setter: root::mozilla::UseCounter = 8;
+ pub const UseCounter_eUseCounter_DOMError_message_getter: root::mozilla::UseCounter = 9;
+ pub const UseCounter_eUseCounter_DOMError_message_setter: root::mozilla::UseCounter = 10;
+ pub const UseCounter_eUseCounter_custom_DOMErrorConstructor: root::mozilla::UseCounter = 11;
+ pub const UseCounter_eUseCounter_PushManager_subscribe: root::mozilla::UseCounter = 12;
+ pub const UseCounter_eUseCounter_PushSubscription_unsubscribe: root::mozilla::UseCounter =
+ 13;
+ pub const UseCounter_eUseCounter_Window_sidebar_getter: root::mozilla::UseCounter = 14;
+ pub const UseCounter_eUseCounter_Window_sidebar_setter: root::mozilla::UseCounter = 15;
+ pub const UseCounter_eUseCounter_OfflineResourceList_swapCache: root::mozilla::UseCounter =
+ 16;
+ pub const UseCounter_eUseCounter_OfflineResourceList_update: root::mozilla::UseCounter = 17;
+ pub const UseCounter_eUseCounter_OfflineResourceList_status_getter:
+ root::mozilla::UseCounter = 18;
+ pub const UseCounter_eUseCounter_OfflineResourceList_status_setter:
+ root::mozilla::UseCounter = 19;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onchecking_getter:
+ root::mozilla::UseCounter = 20;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onchecking_setter:
+ root::mozilla::UseCounter = 21;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onerror_getter:
+ root::mozilla::UseCounter = 22;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onerror_setter:
+ root::mozilla::UseCounter = 23;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onnoupdate_getter:
+ root::mozilla::UseCounter = 24;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onnoupdate_setter:
+ root::mozilla::UseCounter = 25;
+ pub const UseCounter_eUseCounter_OfflineResourceList_ondownloading_getter:
+ root::mozilla::UseCounter = 26;
+ pub const UseCounter_eUseCounter_OfflineResourceList_ondownloading_setter:
+ root::mozilla::UseCounter = 27;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onprogress_getter:
+ root::mozilla::UseCounter = 28;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onprogress_setter:
+ root::mozilla::UseCounter = 29;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onupdateready_getter:
+ root::mozilla::UseCounter = 30;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onupdateready_setter:
+ root::mozilla::UseCounter = 31;
+ pub const UseCounter_eUseCounter_OfflineResourceList_oncached_getter:
+ root::mozilla::UseCounter = 32;
+ pub const UseCounter_eUseCounter_OfflineResourceList_oncached_setter:
+ root::mozilla::UseCounter = 33;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onobsolete_getter:
+ root::mozilla::UseCounter = 34;
+ pub const UseCounter_eUseCounter_OfflineResourceList_onobsolete_setter:
+ root::mozilla::UseCounter = 35;
+ pub const UseCounter_eUseCounter_IDBDatabase_createMutableFile: root::mozilla::UseCounter =
+ 36;
+ pub const UseCounter_eUseCounter_IDBDatabase_mozCreateFileHandle:
+ root::mozilla::UseCounter = 37;
+ pub const UseCounter_eUseCounter_IDBMutableFile_open: root::mozilla::UseCounter = 38;
+ pub const UseCounter_eUseCounter_IDBMutableFile_getFile: root::mozilla::UseCounter = 39;
+ pub const UseCounter_eUseCounter_DataTransfer_addElement: root::mozilla::UseCounter = 40;
+ pub const UseCounter_eUseCounter_DataTransfer_mozItemCount_getter:
+ root::mozilla::UseCounter = 41;
+ pub const UseCounter_eUseCounter_DataTransfer_mozItemCount_setter:
+ root::mozilla::UseCounter = 42;
+ pub const UseCounter_eUseCounter_DataTransfer_mozCursor_getter: root::mozilla::UseCounter =
+ 43;
+ pub const UseCounter_eUseCounter_DataTransfer_mozCursor_setter: root::mozilla::UseCounter =
+ 44;
+ pub const UseCounter_eUseCounter_DataTransfer_mozTypesAt: root::mozilla::UseCounter = 45;
+ pub const UseCounter_eUseCounter_DataTransfer_mozClearDataAt: root::mozilla::UseCounter =
+ 46;
+ pub const UseCounter_eUseCounter_DataTransfer_mozSetDataAt: root::mozilla::UseCounter = 47;
+ pub const UseCounter_eUseCounter_DataTransfer_mozGetDataAt: root::mozilla::UseCounter = 48;
+ pub const UseCounter_eUseCounter_DataTransfer_mozUserCancelled_getter:
+ root::mozilla::UseCounter = 49;
+ pub const UseCounter_eUseCounter_DataTransfer_mozUserCancelled_setter:
+ root::mozilla::UseCounter = 50;
+ pub const UseCounter_eUseCounter_DataTransfer_mozSourceNode_getter:
+ root::mozilla::UseCounter = 51;
+ pub const UseCounter_eUseCounter_DataTransfer_mozSourceNode_setter:
+ root::mozilla::UseCounter = 52;
+ pub const UseCounter_eUseCounter_custom_JS_asmjs: root::mozilla::UseCounter = 53;
+ pub const UseCounter_eUseCounter_custom_JS_wasm: root::mozilla::UseCounter = 54;
+ pub const UseCounter_eUseCounter_EnablePrivilege: root::mozilla::UseCounter = 55;
+ pub const UseCounter_eUseCounter_DOMExceptionCode: root::mozilla::UseCounter = 56;
+ pub const UseCounter_eUseCounter_MutationEvent: root::mozilla::UseCounter = 57;
+ pub const UseCounter_eUseCounter_Components: root::mozilla::UseCounter = 58;
+ pub const UseCounter_eUseCounter_PrefixedVisibilityAPI: root::mozilla::UseCounter = 59;
+ pub const UseCounter_eUseCounter_NodeIteratorDetach: root::mozilla::UseCounter = 60;
+ pub const UseCounter_eUseCounter_LenientThis: root::mozilla::UseCounter = 61;
+ pub const UseCounter_eUseCounter_GetPreventDefault: root::mozilla::UseCounter = 62;
+ pub const UseCounter_eUseCounter_GetSetUserData: root::mozilla::UseCounter = 63;
+ pub const UseCounter_eUseCounter_MozGetAsFile: root::mozilla::UseCounter = 64;
+ pub const UseCounter_eUseCounter_UseOfCaptureEvents: root::mozilla::UseCounter = 65;
+ pub const UseCounter_eUseCounter_UseOfReleaseEvents: root::mozilla::UseCounter = 66;
+ pub const UseCounter_eUseCounter_UseOfDOM3LoadMethod: root::mozilla::UseCounter = 67;
+ pub const UseCounter_eUseCounter_ChromeUseOfDOM3LoadMethod: root::mozilla::UseCounter = 68;
+ pub const UseCounter_eUseCounter_ShowModalDialog: root::mozilla::UseCounter = 69;
+ pub const UseCounter_eUseCounter_SyncXMLHttpRequest: root::mozilla::UseCounter = 70;
+ pub const UseCounter_eUseCounter_Window_Cc_ontrollers: root::mozilla::UseCounter = 71;
+ pub const UseCounter_eUseCounter_ImportXULIntoContent: root::mozilla::UseCounter = 72;
+ pub const UseCounter_eUseCounter_PannerNodeDoppler: root::mozilla::UseCounter = 73;
+ pub const UseCounter_eUseCounter_NavigatorGetUserMedia: root::mozilla::UseCounter = 74;
+ pub const UseCounter_eUseCounter_WebrtcDeprecatedPrefix: root::mozilla::UseCounter = 75;
+ pub const UseCounter_eUseCounter_RTCPeerConnectionGetStreams: root::mozilla::UseCounter =
+ 76;
+ pub const UseCounter_eUseCounter_AppCache: root::mozilla::UseCounter = 77;
+ pub const UseCounter_eUseCounter_PrefixedImageSmoothingEnabled: root::mozilla::UseCounter =
+ 78;
+ pub const UseCounter_eUseCounter_PrefixedFullscreenAPI: root::mozilla::UseCounter = 79;
+ pub const UseCounter_eUseCounter_LenientSetter: root::mozilla::UseCounter = 80;
+ pub const UseCounter_eUseCounter_FileLastModifiedDate: root::mozilla::UseCounter = 81;
+ pub const UseCounter_eUseCounter_ImageBitmapRenderingContext_TransferImageBitmap:
+ root::mozilla::UseCounter = 82;
+ pub const UseCounter_eUseCounter_URLCreateObjectURL_MediaStream: root::mozilla::UseCounter =
+ 83;
+ pub const UseCounter_eUseCounter_XMLBaseAttribute: root::mozilla::UseCounter = 84;
+ pub const UseCounter_eUseCounter_WindowContentUntrusted: root::mozilla::UseCounter = 85;
+ pub const UseCounter_eUseCounter_Count: root::mozilla::UseCounter = 86;
+ pub type UseCounter = i16;
+ pub const LogLevel_Disabled: root::mozilla::LogLevel = 0;
+ pub const LogLevel_Error: root::mozilla::LogLevel = 1;
+ pub const LogLevel_Warning: root::mozilla::LogLevel = 2;
+ pub const LogLevel_Info: root::mozilla::LogLevel = 3;
+ pub const LogLevel_Debug: root::mozilla::LogLevel = 4;
+ pub const LogLevel_Verbose: root::mozilla::LogLevel = 5;
+ pub type LogLevel = i32;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct LogModule {
+ pub mName: *mut ::std::os::raw::c_char,
+ pub mLevel: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_LogModule() {
+ assert_eq!(
+ ::std::mem::size_of::<LogModule>(),
+ 16usize,
+ concat!("Size of: ", stringify!(LogModule))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LogModule>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(LogModule))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<LogModule>())).mName as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LogModule),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<LogModule>())).mLevel as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LogModule),
+ "::",
+ stringify!(mLevel)
+ )
+ );
+ }
+ /// Helper class that lazy loads the given log module. This is safe to use for
/// declaring static references to log modules and can be used as a replacement
/// for accessing a LogModule directly.
///
@@ -337,17 +6434,621 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// void Foo() {
/// MOZ_LOG(sLayoutLog, LogLevel::Verbose, ("Entering foo"));
- /// }
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct LazyLogModule { pub mLogName : * const :: std :: os :: raw :: c_char , pub mLog : u64 , } # [ test ] fn bindgen_test_layout_LazyLogModule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LazyLogModule > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( LazyLogModule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LazyLogModule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( LazyLogModule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LazyLogModule ) ) . mLogName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( LazyLogModule ) , "::" , stringify ! ( mLogName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LazyLogModule ) ) . mLog as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( LazyLogModule ) , "::" , stringify ! ( mLog ) ) ) ; } impl Clone for LazyLogModule { fn clone ( & self ) -> Self { * self } } pub type ComputedKeyframeValues = root :: nsTArray < root :: mozilla :: PropertyStyleAnimationValuePair > ; # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_RawServoStyleSet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_RawServoSourceSizeList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ScrollbarStyles { pub mHorizontal : u8 , pub mVertical : u8 , pub mScrollBehavior : u8 , pub mOverscrollBehaviorX : root :: mozilla :: StyleOverscrollBehavior , pub mOverscrollBehaviorY : root :: mozilla :: StyleOverscrollBehavior , pub mScrollSnapTypeX : u8 , pub mScrollSnapTypeY : u8 , pub mScrollSnapPointsX : root :: nsStyleCoord , pub mScrollSnapPointsY : root :: nsStyleCoord , pub mScrollSnapDestinationX : root :: nsStyleCoord_CalcValue , pub mScrollSnapDestinationY : root :: nsStyleCoord_CalcValue , } # [ test ] fn bindgen_test_layout_ScrollbarStyles ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ScrollbarStyles > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( ScrollbarStyles ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ScrollbarStyles > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ScrollbarStyles ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mHorizontal as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mHorizontal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mVertical as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mVertical ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollBehavior as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollBehavior ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mOverscrollBehaviorX as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mOverscrollBehaviorX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mOverscrollBehaviorY as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mOverscrollBehaviorY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollSnapTypeX as * const _ as usize } , 5usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollSnapTypeX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollSnapTypeY as * const _ as usize } , 6usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollSnapTypeY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollSnapPointsX as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollSnapPointsX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollSnapPointsY as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollSnapPointsY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollSnapDestinationX as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollSnapDestinationX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ScrollbarStyles ) ) . mScrollSnapDestinationY as * const _ as usize } , 52usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollbarStyles ) , "::" , stringify ! ( mScrollSnapDestinationY ) ) ) ; } # [ repr ( C ) ] pub struct LangGroupFontPrefs { pub mLangGroup : root :: RefPtr < root :: nsAtom > , pub mMinimumFontSize : root :: nscoord , pub mDefaultVariableFont : root :: nsFont , pub mDefaultFixedFont : root :: nsFont , pub mDefaultSerifFont : root :: nsFont , pub mDefaultSansSerifFont : root :: nsFont , pub mDefaultMonospaceFont : root :: nsFont , pub mDefaultCursiveFont : root :: nsFont , pub mDefaultFantasyFont : root :: nsFont , pub mNext : root :: nsAutoPtr < root :: mozilla :: LangGroupFontPrefs > , } # [ test ] fn bindgen_test_layout_LangGroupFontPrefs ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LangGroupFontPrefs > ( ) , 696usize , concat ! ( "Size of: " , stringify ! ( LangGroupFontPrefs ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LangGroupFontPrefs > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( LangGroupFontPrefs ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mLangGroup as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mLangGroup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mMinimumFontSize as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mMinimumFontSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultVariableFont as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultVariableFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultFixedFont as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultFixedFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultSerifFont as * const _ as usize } , 208usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultSerifFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultSansSerifFont as * const _ as usize } , 304usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultSansSerifFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultMonospaceFont as * const _ as usize } , 400usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultMonospaceFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultCursiveFont as * const _ as usize } , 496usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultCursiveFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mDefaultFantasyFont as * const _ as usize } , 592usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mDefaultFantasyFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LangGroupFontPrefs ) ) . mNext as * const _ as usize } , 688usize , concat ! ( "Alignment of field: " , stringify ! ( LangGroupFontPrefs ) , "::" , stringify ! ( mNext ) ) ) ; }
- /// Some functionality that has historically lived on nsPresContext does not
+ /// }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct LazyLogModule {
+ pub mLogName: *const ::std::os::raw::c_char,
+ pub mLog: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_LazyLogModule() {
+ assert_eq!(
+ ::std::mem::size_of::<LazyLogModule>(),
+ 16usize,
+ concat!("Size of: ", stringify!(LazyLogModule))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LazyLogModule>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(LazyLogModule))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<LazyLogModule>())).mLogName as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LazyLogModule),
+ "::",
+ stringify!(mLogName)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<LazyLogModule>())).mLog as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LazyLogModule),
+ "::",
+ stringify!(mLog)
+ )
+ );
+ }
+ impl Clone for LazyLogModule {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type ComputedKeyframeValues =
+ root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>;
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_RawServoStyleSet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_RawServoSourceSizeList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ScrollbarStyles {
+ pub mHorizontal: u8,
+ pub mVertical: u8,
+ pub mScrollBehavior: u8,
+ pub mOverscrollBehaviorX: root::mozilla::StyleOverscrollBehavior,
+ pub mOverscrollBehaviorY: root::mozilla::StyleOverscrollBehavior,
+ pub mScrollSnapTypeX: u8,
+ pub mScrollSnapTypeY: u8,
+ pub mScrollSnapPointsX: root::nsStyleCoord,
+ pub mScrollSnapPointsY: root::nsStyleCoord,
+ pub mScrollSnapDestinationX: root::nsStyleCoord_CalcValue,
+ pub mScrollSnapDestinationY: root::nsStyleCoord_CalcValue,
+ }
+ #[test]
+ fn bindgen_test_layout_ScrollbarStyles() {
+ assert_eq!(
+ ::std::mem::size_of::<ScrollbarStyles>(),
+ 64usize,
+ concat!("Size of: ", stringify!(ScrollbarStyles))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ScrollbarStyles>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ScrollbarStyles))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mHorizontal as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mHorizontal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mVertical as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mVertical)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollBehavior as *const _ as usize
+ },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollBehavior)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mOverscrollBehaviorX as *const _
+ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mOverscrollBehaviorX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mOverscrollBehaviorY as *const _
+ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mOverscrollBehaviorY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollSnapTypeX as *const _
+ as usize
+ },
+ 5usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollSnapTypeX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollSnapTypeY as *const _
+ as usize
+ },
+ 6usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollSnapTypeY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollSnapPointsX as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollSnapPointsX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollSnapPointsY as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollSnapPointsY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollSnapDestinationX as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollSnapDestinationX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ScrollbarStyles>())).mScrollSnapDestinationY as *const _
+ as usize
+ },
+ 52usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ScrollbarStyles),
+ "::",
+ stringify!(mScrollSnapDestinationY)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct LangGroupFontPrefs {
+ pub mLangGroup: root::RefPtr<root::nsAtom>,
+ pub mMinimumFontSize: root::nscoord,
+ pub mDefaultVariableFont: root::nsFont,
+ pub mDefaultFixedFont: root::nsFont,
+ pub mDefaultSerifFont: root::nsFont,
+ pub mDefaultSansSerifFont: root::nsFont,
+ pub mDefaultMonospaceFont: root::nsFont,
+ pub mDefaultCursiveFont: root::nsFont,
+ pub mDefaultFantasyFont: root::nsFont,
+ pub mNext: root::nsAutoPtr<root::mozilla::LangGroupFontPrefs>,
+ }
+ #[test]
+ fn bindgen_test_layout_LangGroupFontPrefs() {
+ assert_eq!(
+ ::std::mem::size_of::<LangGroupFontPrefs>(),
+ 696usize,
+ concat!("Size of: ", stringify!(LangGroupFontPrefs))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LangGroupFontPrefs>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(LangGroupFontPrefs))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mLangGroup as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mLangGroup)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mMinimumFontSize as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mMinimumFontSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultVariableFont as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultVariableFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultFixedFont as *const _
+ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultFixedFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultSerifFont as *const _
+ as usize
+ },
+ 208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultSerifFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultSansSerifFont as *const _
+ as usize
+ },
+ 304usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultSansSerifFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultMonospaceFont as *const _
+ as usize
+ },
+ 400usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultMonospaceFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultCursiveFont as *const _
+ as usize
+ },
+ 496usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultCursiveFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mDefaultFantasyFont as *const _
+ as usize
+ },
+ 592usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mDefaultFantasyFont)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<LangGroupFontPrefs>())).mNext as *const _ as usize
+ },
+ 688usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LangGroupFontPrefs),
+ "::",
+ stringify!(mNext)
+ )
+ );
+ }
+ /// Some functionality that has historically lived on nsPresContext does not
/// actually need to be per-document. This singleton class serves as a host
/// for that functionality. We delegate to it from nsPresContext where
- /// appropriate, and use it standalone in some cases as well.
- # [ repr ( C ) ] pub struct StaticPresData { pub mLangService : * mut root :: nsLanguageAtomService , pub mBorderWidthTable : [ root :: nscoord ; 3usize ] , pub mStaticLangGroupFontPrefs : root :: mozilla :: LangGroupFontPrefs , } # [ test ] fn bindgen_test_layout_StaticPresData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StaticPresData > ( ) , 720usize , concat ! ( "Size of: " , stringify ! ( StaticPresData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StaticPresData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StaticPresData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StaticPresData ) ) . mLangService as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StaticPresData ) , "::" , stringify ! ( mLangService ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StaticPresData ) ) . mBorderWidthTable as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( StaticPresData ) , "::" , stringify ! ( mBorderWidthTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StaticPresData ) ) . mStaticLangGroupFontPrefs as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( StaticPresData ) , "::" , stringify ! ( mStaticLangGroupFontPrefs ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct EventStateManager { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RestyleManager { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct URLExtraData { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mBaseURI : root :: nsCOMPtr , pub mReferrer : root :: nsCOMPtr , pub mPrincipal : root :: nsCOMPtr , pub mIsChrome : bool , } pub type URLExtraData_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla12URLExtraData6sDummyE" ]
- pub static mut URLExtraData_sDummy : root :: mozilla :: StaticRefPtr < root :: mozilla :: URLExtraData > ;
-} # [ test ] fn bindgen_test_layout_URLExtraData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URLExtraData > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( URLExtraData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URLExtraData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URLExtraData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLExtraData ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( URLExtraData ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLExtraData ) ) . mBaseURI as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( URLExtraData ) , "::" , stringify ! ( mBaseURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLExtraData ) ) . mReferrer as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( URLExtraData ) , "::" , stringify ! ( mReferrer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLExtraData ) ) . mPrincipal as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( URLExtraData ) , "::" , stringify ! ( mPrincipal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URLExtraData ) ) . mIsChrome as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( URLExtraData ) , "::" , stringify ! ( mIsChrome ) ) ) ; } # [ test ] fn __bindgen_test_layout_StaticRefPtr_open0_URLExtraData_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: StaticRefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: mozilla :: URLExtraData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: StaticRefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: mozilla :: URLExtraData > ) ) ) ; } pub mod image { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ImageURL { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Image { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ProgressTracker { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct IProgressObserver__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// An interface for observing changes to image state, as reported by
+ /// appropriate, and use it standalone in some cases as well.
+ #[repr(C)]
+ pub struct StaticPresData {
+ pub mLangService: *mut root::nsLanguageAtomService,
+ pub mBorderWidthTable: [root::nscoord; 3usize],
+ pub mStaticLangGroupFontPrefs: root::mozilla::LangGroupFontPrefs,
+ }
+ #[test]
+ fn bindgen_test_layout_StaticPresData() {
+ assert_eq!(
+ ::std::mem::size_of::<StaticPresData>(),
+ 720usize,
+ concat!("Size of: ", stringify!(StaticPresData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StaticPresData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StaticPresData))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StaticPresData>())).mLangService as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StaticPresData),
+ "::",
+ stringify!(mLangService)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StaticPresData>())).mBorderWidthTable as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StaticPresData),
+ "::",
+ stringify!(mBorderWidthTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StaticPresData>())).mStaticLangGroupFontPrefs as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StaticPresData),
+ "::",
+ stringify!(mStaticLangGroupFontPrefs)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct EventStateManager {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RestyleManager {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct URLExtraData {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mBaseURI: root::nsCOMPtr,
+ pub mReferrer: root::nsCOMPtr,
+ pub mPrincipal: root::nsCOMPtr,
+ pub mIsChrome: bool,
+ }
+ pub type URLExtraData_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla12URLExtraData6sDummyE"]
+ pub static mut URLExtraData_sDummy:
+ root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>;
+ }
+ #[test]
+ fn bindgen_test_layout_URLExtraData() {
+ assert_eq!(
+ ::std::mem::size_of::<URLExtraData>(),
+ 40usize,
+ concat!("Size of: ", stringify!(URLExtraData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URLExtraData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(URLExtraData))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLExtraData>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLExtraData),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLExtraData>())).mBaseURI as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLExtraData),
+ "::",
+ stringify!(mBaseURI)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLExtraData>())).mReferrer as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLExtraData),
+ "::",
+ stringify!(mReferrer)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLExtraData>())).mPrincipal as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLExtraData),
+ "::",
+ stringify!(mPrincipal)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<URLExtraData>())).mIsChrome as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URLExtraData),
+ "::",
+ stringify!(mIsChrome)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_StaticRefPtr_open0_URLExtraData_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ }
+ pub mod image {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ImageURL {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Image {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ProgressTracker {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct IProgressObserver__bindgen_vtable(::std::os::raw::c_void);
+ /// An interface for observing changes to image state, as reported by
/// ProgressTracker.
///
/// This is the ImageLib-internal version of imgINotificationObserver,
@@ -356,21 +7057,2059 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// XXX(seth): It's preferable to avoid adding anything to this interface if
/// possible. In the long term, it would be ideal to get to a place where we can
- /// just use the imgINotificationObserver interface internally as well.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct IProgressObserver { pub vtable_ : * const IProgressObserver__bindgen_vtable , pub _base : u64 , } # [ test ] fn bindgen_test_layout_IProgressObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < IProgressObserver > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( IProgressObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < IProgressObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( IProgressObserver ) ) ) ; } } # [ repr ( C ) ] pub struct CounterStyle__bindgen_vtable ( :: std :: os :: raw :: c_void ) ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct CounterStyle { pub vtable_ : * const CounterStyle__bindgen_vtable , pub mStyle : i32 , } # [ test ] fn bindgen_test_layout_CounterStyle ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CounterStyle > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( CounterStyle ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CounterStyle > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CounterStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CounterStyle ) ) . mStyle as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( CounterStyle ) , "::" , stringify ! ( mStyle ) ) ) ; } impl Clone for CounterStyle { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct AnonymousCounterStyle { pub _base : root :: mozilla :: CounterStyle , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mSingleString : bool , pub mSystem : u8 , pub mSymbols : root :: nsTArray < ::nsstring::nsStringRepr > , } pub type AnonymousCounterStyle_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_AnonymousCounterStyle ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AnonymousCounterStyle > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AnonymousCounterStyle ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AnonymousCounterStyle > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AnonymousCounterStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnonymousCounterStyle ) ) . mRefCnt as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( AnonymousCounterStyle ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnonymousCounterStyle ) ) . mSingleString as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( AnonymousCounterStyle ) , "::" , stringify ! ( mSingleString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnonymousCounterStyle ) ) . mSystem as * const _ as usize } , 25usize , concat ! ( "Alignment of field: " , stringify ! ( AnonymousCounterStyle ) , "::" , stringify ! ( mSystem ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnonymousCounterStyle ) ) . mSymbols as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( AnonymousCounterStyle ) , "::" , stringify ! ( mSymbols ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct CounterStylePtr { pub mRaw : usize , } pub const CounterStylePtr_Type_eCounterStyle : root :: mozilla :: CounterStylePtr_Type = 0 ; pub const CounterStylePtr_Type_eAnonymousCounterStyle : root :: mozilla :: CounterStylePtr_Type = 1 ; pub const CounterStylePtr_Type_eUnresolvedAtom : root :: mozilla :: CounterStylePtr_Type = 2 ; pub const CounterStylePtr_Type_eMask : root :: mozilla :: CounterStylePtr_Type = 3 ; pub type CounterStylePtr_Type = usize ; # [ test ] fn bindgen_test_layout_CounterStylePtr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CounterStylePtr > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( CounterStylePtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CounterStylePtr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CounterStylePtr ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CounterStylePtr ) ) . mRaw as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CounterStylePtr ) , "::" , stringify ! ( mRaw ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct CounterStyleManager { pub mRefCnt : root :: nsAutoRefCnt , pub mPresContext : * mut root :: nsPresContext , pub mStyles : [ u64 ; 4usize ] , pub mRetiredStyles : root :: nsTArray < * mut root :: mozilla :: CounterStyle > , } pub type CounterStyleManager_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_CounterStyleManager ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CounterStyleManager > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( CounterStyleManager ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CounterStyleManager > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CounterStyleManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CounterStyleManager ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CounterStyleManager ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CounterStyleManager ) ) . mPresContext as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( CounterStyleManager ) , "::" , stringify ! ( mPresContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CounterStyleManager ) ) . mStyles as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( CounterStyleManager ) , "::" , stringify ! ( mStyles ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CounterStyleManager ) ) . mRetiredStyles as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( CounterStyleManager ) , "::" , stringify ! ( mRetiredStyles ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Position { pub mXPosition : root :: mozilla :: Position_Coord , pub mYPosition : root :: mozilla :: Position_Coord , } pub type Position_Coord = root :: nsStyleCoord_CalcValue ; # [ test ] fn bindgen_test_layout_Position ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Position > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( Position ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Position > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( Position ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Position ) ) . mXPosition as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Position ) , "::" , stringify ! ( mXPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Position ) ) . mYPosition as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( Position ) , "::" , stringify ! ( mYPosition ) ) ) ; } impl Clone for Position { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct StyleTransition { pub mTimingFunction : root :: nsTimingFunction , pub mDuration : f32 , pub mDelay : f32 , pub mProperty : root :: nsCSSPropertyID , pub mUnknownProperty : root :: RefPtr < root :: nsAtom > , } # [ test ] fn bindgen_test_layout_StyleTransition ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleTransition > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( StyleTransition ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleTransition > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleTransition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleTransition ) ) . mTimingFunction as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleTransition ) , "::" , stringify ! ( mTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleTransition ) ) . mDuration as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( StyleTransition ) , "::" , stringify ! ( mDuration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleTransition ) ) . mDelay as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( StyleTransition ) , "::" , stringify ! ( mDelay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleTransition ) ) . mProperty as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( StyleTransition ) , "::" , stringify ! ( mProperty ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleTransition ) ) . mUnknownProperty as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( StyleTransition ) , "::" , stringify ! ( mUnknownProperty ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct StyleAnimation { pub mTimingFunction : root :: nsTimingFunction , pub mDuration : f32 , pub mDelay : f32 , pub mName : root :: RefPtr < root :: nsAtom > , pub mDirection : root :: mozilla :: dom :: PlaybackDirection , pub mFillMode : root :: mozilla :: dom :: FillMode , pub mPlayState : u8 , pub mIterationCount : f32 , } # [ test ] fn bindgen_test_layout_StyleAnimation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleAnimation > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( StyleAnimation ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleAnimation > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleAnimation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mTimingFunction as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mDuration as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mDuration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mDelay as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mDelay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mName as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mDirection as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mDirection ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mFillMode as * const _ as usize } , 41usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mFillMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mPlayState as * const _ as usize } , 42usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mPlayState ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimation ) ) . mIterationCount as * const _ as usize } , 44usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimation ) , "::" , stringify ! ( mIterationCount ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct StyleBasicShape { pub mType : root :: mozilla :: StyleBasicShapeType , pub mFillRule : root :: mozilla :: StyleFillRule , pub mCoordinates : root :: nsTArray < root :: nsStyleCoord > , pub mPosition : root :: mozilla :: Position , pub mRadius : root :: nsStyleCorners , } # [ test ] fn bindgen_test_layout_StyleBasicShape ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleBasicShape > ( ) , 112usize , concat ! ( "Size of: " , stringify ! ( StyleBasicShape ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleBasicShape > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleBasicShape ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleBasicShape ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleBasicShape ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleBasicShape ) ) . mFillRule as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( StyleBasicShape ) , "::" , stringify ! ( mFillRule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleBasicShape ) ) . mCoordinates as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( StyleBasicShape ) , "::" , stringify ! ( mCoordinates ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleBasicShape ) ) . mPosition as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( StyleBasicShape ) , "::" , stringify ! ( mPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleBasicShape ) ) . mRadius as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( StyleBasicShape ) , "::" , stringify ! ( mRadius ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct StyleShapeSource { pub mBasicShape : root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > , pub mShapeImage : root :: mozilla :: UniquePtr < root :: nsStyleImage > , pub mType : root :: mozilla :: StyleShapeSourceType , pub mReferenceBox : root :: mozilla :: StyleGeometryBox , } # [ test ] fn bindgen_test_layout_StyleShapeSource ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleShapeSource > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( StyleShapeSource ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleShapeSource > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleShapeSource ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleShapeSource ) ) . mBasicShape as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleShapeSource ) , "::" , stringify ! ( mBasicShape ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleShapeSource ) ) . mShapeImage as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( StyleShapeSource ) , "::" , stringify ! ( mShapeImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleShapeSource ) ) . mType as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( StyleShapeSource ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleShapeSource ) ) . mReferenceBox as * const _ as usize } , 17usize , concat ! ( "Alignment of field: " , stringify ! ( StyleShapeSource ) , "::" , stringify ! ( mReferenceBox ) ) ) ; }
- /// <div rustbindgen="true" replaces="mozilla::UniquePtr">
+ /// just use the imgINotificationObserver interface internally as well.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct IProgressObserver {
+ pub vtable_: *const IProgressObserver__bindgen_vtable,
+ pub _base: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_IProgressObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<IProgressObserver>(),
+ 16usize,
+ concat!("Size of: ", stringify!(IProgressObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<IProgressObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(IProgressObserver))
+ );
+ }
+ }
+ #[repr(C)]
+ pub struct CounterStyle__bindgen_vtable(::std::os::raw::c_void);
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct CounterStyle {
+ pub vtable_: *const CounterStyle__bindgen_vtable,
+ pub mStyle: i32,
+ }
+ #[test]
+ fn bindgen_test_layout_CounterStyle() {
+ assert_eq!(
+ ::std::mem::size_of::<CounterStyle>(),
+ 16usize,
+ concat!("Size of: ", stringify!(CounterStyle))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CounterStyle>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CounterStyle))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<CounterStyle>())).mStyle as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CounterStyle),
+ "::",
+ stringify!(mStyle)
+ )
+ );
+ }
+ impl Clone for CounterStyle {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct AnonymousCounterStyle {
+ pub _base: root::mozilla::CounterStyle,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mSingleString: bool,
+ pub mSystem: u8,
+ pub mSymbols: root::nsTArray<::nsstring::nsStringRepr>,
+ }
+ pub type AnonymousCounterStyle_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_AnonymousCounterStyle() {
+ assert_eq!(
+ ::std::mem::size_of::<AnonymousCounterStyle>(),
+ 40usize,
+ concat!("Size of: ", stringify!(AnonymousCounterStyle))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<AnonymousCounterStyle>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(AnonymousCounterStyle))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnonymousCounterStyle>())).mRefCnt as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnonymousCounterStyle),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnonymousCounterStyle>())).mSingleString as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnonymousCounterStyle),
+ "::",
+ stringify!(mSingleString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnonymousCounterStyle>())).mSystem as *const _ as usize
+ },
+ 25usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnonymousCounterStyle),
+ "::",
+ stringify!(mSystem)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnonymousCounterStyle>())).mSymbols as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnonymousCounterStyle),
+ "::",
+ stringify!(mSymbols)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct CounterStylePtr {
+ pub mRaw: usize,
+ }
+ pub const CounterStylePtr_Type_eCounterStyle: root::mozilla::CounterStylePtr_Type = 0;
+ pub const CounterStylePtr_Type_eAnonymousCounterStyle: root::mozilla::CounterStylePtr_Type =
+ 1;
+ pub const CounterStylePtr_Type_eUnresolvedAtom: root::mozilla::CounterStylePtr_Type = 2;
+ pub const CounterStylePtr_Type_eMask: root::mozilla::CounterStylePtr_Type = 3;
+ pub type CounterStylePtr_Type = u64;
+ #[test]
+ fn bindgen_test_layout_CounterStylePtr() {
+ assert_eq!(
+ ::std::mem::size_of::<CounterStylePtr>(),
+ 8usize,
+ concat!("Size of: ", stringify!(CounterStylePtr))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CounterStylePtr>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CounterStylePtr))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<CounterStylePtr>())).mRaw as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CounterStylePtr),
+ "::",
+ stringify!(mRaw)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct CounterStyleManager {
+ pub mRefCnt: root::nsAutoRefCnt,
+ pub mPresContext: *mut root::nsPresContext,
+ pub mStyles: [u64; 4usize],
+ pub mRetiredStyles: root::nsTArray<*mut root::mozilla::CounterStyle>,
+ }
+ pub type CounterStyleManager_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_CounterStyleManager() {
+ assert_eq!(
+ ::std::mem::size_of::<CounterStyleManager>(),
+ 56usize,
+ concat!("Size of: ", stringify!(CounterStyleManager))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CounterStyleManager>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CounterStyleManager))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CounterStyleManager>())).mRefCnt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CounterStyleManager),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CounterStyleManager>())).mPresContext as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CounterStyleManager),
+ "::",
+ stringify!(mPresContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CounterStyleManager>())).mStyles as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CounterStyleManager),
+ "::",
+ stringify!(mStyles)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CounterStyleManager>())).mRetiredStyles as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CounterStyleManager),
+ "::",
+ stringify!(mRetiredStyles)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Position {
+ pub mXPosition: root::mozilla::Position_Coord,
+ pub mYPosition: root::mozilla::Position_Coord,
+ }
+ pub type Position_Coord = root::nsStyleCoord_CalcValue;
+ #[test]
+ fn bindgen_test_layout_Position() {
+ assert_eq!(
+ ::std::mem::size_of::<Position>(),
+ 24usize,
+ concat!("Size of: ", stringify!(Position))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Position>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(Position))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Position>())).mXPosition as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Position),
+ "::",
+ stringify!(mXPosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Position>())).mYPosition as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Position),
+ "::",
+ stringify!(mYPosition)
+ )
+ );
+ }
+ impl Clone for Position {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct StyleTransition {
+ pub mTimingFunction: root::nsTimingFunction,
+ pub mDuration: f32,
+ pub mDelay: f32,
+ pub mProperty: root::nsCSSPropertyID,
+ pub mUnknownProperty: root::RefPtr<root::nsAtom>,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleTransition() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleTransition>(),
+ 40usize,
+ concat!("Size of: ", stringify!(StyleTransition))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleTransition>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleTransition))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleTransition>())).mTimingFunction as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleTransition),
+ "::",
+ stringify!(mTimingFunction)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleTransition>())).mDuration as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleTransition),
+ "::",
+ stringify!(mDuration)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleTransition>())).mDelay as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleTransition),
+ "::",
+ stringify!(mDelay)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleTransition>())).mProperty as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleTransition),
+ "::",
+ stringify!(mProperty)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleTransition>())).mUnknownProperty as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleTransition),
+ "::",
+ stringify!(mUnknownProperty)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct StyleAnimation {
+ pub mTimingFunction: root::nsTimingFunction,
+ pub mDuration: f32,
+ pub mDelay: f32,
+ pub mName: root::RefPtr<root::nsAtom>,
+ pub mDirection: root::mozilla::dom::PlaybackDirection,
+ pub mFillMode: root::mozilla::dom::FillMode,
+ pub mPlayState: u8,
+ pub mIterationCount: f32,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleAnimation() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleAnimation>(),
+ 48usize,
+ concat!("Size of: ", stringify!(StyleAnimation))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleAnimation>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleAnimation))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimation>())).mTimingFunction as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mTimingFunction)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimation>())).mDuration as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mDuration)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleAnimation>())).mDelay as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mDelay)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleAnimation>())).mName as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimation>())).mDirection as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mDirection)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimation>())).mFillMode as *const _ as usize
+ },
+ 41usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mFillMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimation>())).mPlayState as *const _ as usize
+ },
+ 42usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mPlayState)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimation>())).mIterationCount as *const _ as usize
+ },
+ 44usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimation),
+ "::",
+ stringify!(mIterationCount)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct StyleBasicShape {
+ pub mType: root::mozilla::StyleBasicShapeType,
+ pub mFillRule: root::mozilla::StyleFillRule,
+ pub mCoordinates: root::nsTArray<root::nsStyleCoord>,
+ pub mPosition: root::mozilla::Position,
+ pub mRadius: root::nsStyleCorners,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleBasicShape() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleBasicShape>(),
+ 112usize,
+ concat!("Size of: ", stringify!(StyleBasicShape))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleBasicShape>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleBasicShape))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleBasicShape>())).mType as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleBasicShape),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleBasicShape>())).mFillRule as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleBasicShape),
+ "::",
+ stringify!(mFillRule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleBasicShape>())).mCoordinates as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleBasicShape),
+ "::",
+ stringify!(mCoordinates)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleBasicShape>())).mPosition as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleBasicShape),
+ "::",
+ stringify!(mPosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleBasicShape>())).mRadius as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleBasicShape),
+ "::",
+ stringify!(mRadius)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct StyleShapeSource {
+ pub mBasicShape: root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>,
+ pub mShapeImage: root::mozilla::UniquePtr<root::nsStyleImage>,
+ pub mType: root::mozilla::StyleShapeSourceType,
+ pub mReferenceBox: root::mozilla::StyleGeometryBox,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleShapeSource() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleShapeSource>(),
+ 24usize,
+ concat!("Size of: ", stringify!(StyleShapeSource))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleShapeSource>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleShapeSource))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleShapeSource>())).mBasicShape as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleShapeSource),
+ "::",
+ stringify!(mBasicShape)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleShapeSource>())).mShapeImage as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleShapeSource),
+ "::",
+ stringify!(mShapeImage)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleShapeSource>())).mType as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleShapeSource),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleShapeSource>())).mReferenceBox as *const _ as usize
+ },
+ 17usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleShapeSource),
+ "::",
+ stringify!(mReferenceBox)
+ )
+ );
+ }
+ /// <div rustbindgen="true" replaces="mozilla::UniquePtr">
///
/// TODO(Emilio): This is a workaround and we should be able to get rid of this
- /// one.
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct UniquePtr < T > { pub mPtr : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub const SERVO_PREF_ENABLED_align_content : bool = false ; pub const SERVO_PREF_ENABLED_align_items : bool = false ; pub const SERVO_PREF_ENABLED_align_self : bool = false ; pub const SERVO_PREF_ENABLED_all : bool = true ; pub const SERVO_PREF_ENABLED_animation : bool = false ; pub const SERVO_PREF_ENABLED_animation_delay : bool = false ; pub const SERVO_PREF_ENABLED_animation_direction : bool = false ; pub const SERVO_PREF_ENABLED_animation_duration : bool = false ; pub const SERVO_PREF_ENABLED_animation_fill_mode : bool = false ; pub const SERVO_PREF_ENABLED_animation_iteration_count : bool = false ; pub const SERVO_PREF_ENABLED_animation_name : bool = false ; pub const SERVO_PREF_ENABLED_animation_play_state : bool = false ; pub const SERVO_PREF_ENABLED_animation_timing_function : bool = false ; pub const SERVO_PREF_ENABLED__moz_appearance : bool = false ; pub const SERVO_PREF_ENABLED_backface_visibility : bool = false ; pub const SERVO_PREF_ENABLED_background : bool = false ; pub const SERVO_PREF_ENABLED_background_attachment : bool = false ; pub const SERVO_PREF_ENABLED_background_blend_mode : bool = true ; pub const SERVO_PREF_ENABLED_background_clip : bool = false ; pub const SERVO_PREF_ENABLED_background_color : bool = false ; pub const SERVO_PREF_ENABLED_background_image : bool = false ; pub const SERVO_PREF_ENABLED_background_origin : bool = false ; pub const SERVO_PREF_ENABLED_background_position : bool = false ; pub const SERVO_PREF_ENABLED_background_position_x : bool = false ; pub const SERVO_PREF_ENABLED_background_position_y : bool = false ; pub const SERVO_PREF_ENABLED_background_repeat : bool = false ; pub const SERVO_PREF_ENABLED_background_size : bool = false ; pub const SERVO_PREF_ENABLED__moz_binding : bool = false ; pub const SERVO_PREF_ENABLED_block_size : bool = false ; pub const SERVO_PREF_ENABLED_border : bool = false ; pub const SERVO_PREF_ENABLED_border_block_end : bool = false ; pub const SERVO_PREF_ENABLED_border_block_end_color : bool = false ; pub const SERVO_PREF_ENABLED_border_block_end_style : bool = false ; pub const SERVO_PREF_ENABLED_border_block_end_width : bool = false ; pub const SERVO_PREF_ENABLED_border_block_start : bool = false ; pub const SERVO_PREF_ENABLED_border_block_start_color : bool = false ; pub const SERVO_PREF_ENABLED_border_block_start_style : bool = false ; pub const SERVO_PREF_ENABLED_border_block_start_width : bool = false ; pub const SERVO_PREF_ENABLED_border_bottom : bool = false ; pub const SERVO_PREF_ENABLED_border_bottom_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_bottom_colors : bool = false ; pub const SERVO_PREF_ENABLED_border_bottom_left_radius : bool = false ; pub const SERVO_PREF_ENABLED_border_bottom_right_radius : bool = false ; pub const SERVO_PREF_ENABLED_border_bottom_style : bool = false ; pub const SERVO_PREF_ENABLED_border_bottom_width : bool = false ; pub const SERVO_PREF_ENABLED_border_collapse : bool = false ; pub const SERVO_PREF_ENABLED_border_color : bool = false ; pub const SERVO_PREF_ENABLED_border_image : bool = false ; pub const SERVO_PREF_ENABLED_border_image_outset : bool = false ; pub const SERVO_PREF_ENABLED_border_image_repeat : bool = false ; pub const SERVO_PREF_ENABLED_border_image_slice : bool = false ; pub const SERVO_PREF_ENABLED_border_image_source : bool = false ; pub const SERVO_PREF_ENABLED_border_image_width : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_end : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_end_color : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_end_style : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_end_width : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_start : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_start_color : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_start_style : bool = false ; pub const SERVO_PREF_ENABLED_border_inline_start_width : bool = false ; pub const SERVO_PREF_ENABLED_border_left : bool = false ; pub const SERVO_PREF_ENABLED_border_left_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_left_colors : bool = false ; pub const SERVO_PREF_ENABLED_border_left_style : bool = false ; pub const SERVO_PREF_ENABLED_border_left_width : bool = false ; pub const SERVO_PREF_ENABLED_border_radius : bool = false ; pub const SERVO_PREF_ENABLED_border_right : bool = false ; pub const SERVO_PREF_ENABLED_border_right_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_right_colors : bool = false ; pub const SERVO_PREF_ENABLED_border_right_style : bool = false ; pub const SERVO_PREF_ENABLED_border_right_width : bool = false ; pub const SERVO_PREF_ENABLED_border_spacing : bool = false ; pub const SERVO_PREF_ENABLED_border_style : bool = false ; pub const SERVO_PREF_ENABLED_border_top : bool = false ; pub const SERVO_PREF_ENABLED_border_top_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_top_colors : bool = false ; pub const SERVO_PREF_ENABLED_border_top_left_radius : bool = false ; pub const SERVO_PREF_ENABLED_border_top_right_radius : bool = false ; pub const SERVO_PREF_ENABLED_border_top_style : bool = false ; pub const SERVO_PREF_ENABLED_border_top_width : bool = false ; pub const SERVO_PREF_ENABLED_border_width : bool = false ; pub const SERVO_PREF_ENABLED_bottom : bool = false ; pub const SERVO_PREF_ENABLED__moz_box_align : bool = false ; pub const SERVO_PREF_ENABLED_box_decoration_break : bool = true ; pub const SERVO_PREF_ENABLED__moz_box_direction : bool = false ; pub const SERVO_PREF_ENABLED__moz_box_flex : bool = false ; pub const SERVO_PREF_ENABLED__moz_box_ordinal_group : bool = false ; pub const SERVO_PREF_ENABLED__moz_box_orient : bool = false ; pub const SERVO_PREF_ENABLED__moz_box_pack : bool = false ; pub const SERVO_PREF_ENABLED_box_shadow : bool = false ; pub const SERVO_PREF_ENABLED_box_sizing : bool = false ; pub const SERVO_PREF_ENABLED_caption_side : bool = false ; pub const SERVO_PREF_ENABLED_caret_color : bool = false ; pub const SERVO_PREF_ENABLED_clear : bool = false ; pub const SERVO_PREF_ENABLED_clip : bool = false ; pub const SERVO_PREF_ENABLED_clip_path : bool = false ; pub const SERVO_PREF_ENABLED_clip_rule : bool = false ; pub const SERVO_PREF_ENABLED_color : bool = false ; pub const SERVO_PREF_ENABLED_color_adjust : bool = true ; pub const SERVO_PREF_ENABLED_color_interpolation : bool = false ; pub const SERVO_PREF_ENABLED_color_interpolation_filters : bool = false ; pub const SERVO_PREF_ENABLED_column_count : bool = false ; pub const SERVO_PREF_ENABLED_column_fill : bool = false ; pub const SERVO_PREF_ENABLED_column_gap : bool = false ; pub const SERVO_PREF_ENABLED_column_rule : bool = false ; pub const SERVO_PREF_ENABLED_column_rule_color : bool = false ; pub const SERVO_PREF_ENABLED_column_rule_style : bool = false ; pub const SERVO_PREF_ENABLED_column_rule_width : bool = false ; pub const SERVO_PREF_ENABLED_column_span : bool = true ; pub const SERVO_PREF_ENABLED_column_width : bool = false ; pub const SERVO_PREF_ENABLED_columns : bool = false ; pub const SERVO_PREF_ENABLED_contain : bool = true ; pub const SERVO_PREF_ENABLED_content : bool = false ; pub const SERVO_PREF_ENABLED__moz_context_properties : bool = false ; pub const SERVO_PREF_ENABLED__moz_control_character_visibility : bool = false ; pub const SERVO_PREF_ENABLED_counter_increment : bool = false ; pub const SERVO_PREF_ENABLED_counter_reset : bool = false ; pub const SERVO_PREF_ENABLED_cursor : bool = false ; pub const SERVO_PREF_ENABLED_direction : bool = false ; pub const SERVO_PREF_ENABLED_display : bool = false ; pub const SERVO_PREF_ENABLED_dominant_baseline : bool = false ; pub const SERVO_PREF_ENABLED_empty_cells : bool = false ; pub const SERVO_PREF_ENABLED_fill : bool = false ; pub const SERVO_PREF_ENABLED_fill_opacity : bool = false ; pub const SERVO_PREF_ENABLED_fill_rule : bool = false ; pub const SERVO_PREF_ENABLED_filter : bool = false ; pub const SERVO_PREF_ENABLED_flex : bool = false ; pub const SERVO_PREF_ENABLED_flex_basis : bool = false ; pub const SERVO_PREF_ENABLED_flex_direction : bool = false ; pub const SERVO_PREF_ENABLED_flex_flow : bool = false ; pub const SERVO_PREF_ENABLED_flex_grow : bool = false ; pub const SERVO_PREF_ENABLED_flex_shrink : bool = false ; pub const SERVO_PREF_ENABLED_flex_wrap : bool = false ; pub const SERVO_PREF_ENABLED_float_ : bool = false ; pub const SERVO_PREF_ENABLED__moz_float_edge : bool = false ; pub const SERVO_PREF_ENABLED_flood_color : bool = false ; pub const SERVO_PREF_ENABLED_flood_opacity : bool = false ; pub const SERVO_PREF_ENABLED_font : bool = false ; pub const SERVO_PREF_ENABLED_font_family : bool = false ; pub const SERVO_PREF_ENABLED_font_feature_settings : bool = false ; pub const SERVO_PREF_ENABLED_font_kerning : bool = false ; pub const SERVO_PREF_ENABLED_font_language_override : bool = false ; pub const SERVO_PREF_ENABLED_font_size : bool = false ; pub const SERVO_PREF_ENABLED_font_size_adjust : bool = false ; pub const SERVO_PREF_ENABLED__moz_font_smoothing_background_color : bool = false ; pub const SERVO_PREF_ENABLED_font_stretch : bool = false ; pub const SERVO_PREF_ENABLED_font_style : bool = false ; pub const SERVO_PREF_ENABLED_font_synthesis : bool = false ; pub const SERVO_PREF_ENABLED_font_variant : bool = false ; pub const SERVO_PREF_ENABLED_font_variant_alternates : bool = false ; pub const SERVO_PREF_ENABLED_font_variant_caps : bool = false ; pub const SERVO_PREF_ENABLED_font_variant_east_asian : bool = false ; pub const SERVO_PREF_ENABLED_font_variant_ligatures : bool = false ; pub const SERVO_PREF_ENABLED_font_variant_numeric : bool = false ; pub const SERVO_PREF_ENABLED_font_variant_position : bool = false ; pub const SERVO_PREF_ENABLED_font_variation_settings : bool = true ; pub const SERVO_PREF_ENABLED_font_weight : bool = false ; pub const SERVO_PREF_ENABLED__moz_force_broken_image_icon : bool = false ; pub const SERVO_PREF_ENABLED_grid : bool = false ; pub const SERVO_PREF_ENABLED_grid_area : bool = false ; pub const SERVO_PREF_ENABLED_grid_auto_columns : bool = false ; pub const SERVO_PREF_ENABLED_grid_auto_flow : bool = false ; pub const SERVO_PREF_ENABLED_grid_auto_rows : bool = false ; pub const SERVO_PREF_ENABLED_grid_column : bool = false ; pub const SERVO_PREF_ENABLED_grid_column_end : bool = false ; pub const SERVO_PREF_ENABLED_grid_column_gap : bool = false ; pub const SERVO_PREF_ENABLED_grid_column_start : bool = false ; pub const SERVO_PREF_ENABLED_grid_gap : bool = false ; pub const SERVO_PREF_ENABLED_grid_row : bool = false ; pub const SERVO_PREF_ENABLED_grid_row_end : bool = false ; pub const SERVO_PREF_ENABLED_grid_row_gap : bool = false ; pub const SERVO_PREF_ENABLED_grid_row_start : bool = false ; pub const SERVO_PREF_ENABLED_grid_template : bool = false ; pub const SERVO_PREF_ENABLED_grid_template_areas : bool = false ; pub const SERVO_PREF_ENABLED_grid_template_columns : bool = false ; pub const SERVO_PREF_ENABLED_grid_template_rows : bool = false ; pub const SERVO_PREF_ENABLED_height : bool = false ; pub const SERVO_PREF_ENABLED_hyphens : bool = false ; pub const SERVO_PREF_ENABLED_initial_letter : bool = true ; pub const SERVO_PREF_ENABLED_image_orientation : bool = true ; pub const SERVO_PREF_ENABLED__moz_image_region : bool = false ; pub const SERVO_PREF_ENABLED_image_rendering : bool = false ; pub const SERVO_PREF_ENABLED_ime_mode : bool = false ; pub const SERVO_PREF_ENABLED_inline_size : bool = false ; pub const SERVO_PREF_ENABLED_isolation : bool = true ; pub const SERVO_PREF_ENABLED_justify_content : bool = false ; pub const SERVO_PREF_ENABLED_justify_items : bool = false ; pub const SERVO_PREF_ENABLED_justify_self : bool = false ; pub const SERVO_PREF_ENABLED__x_lang : bool = false ; pub const SERVO_PREF_ENABLED_left : bool = false ; pub const SERVO_PREF_ENABLED_letter_spacing : bool = false ; pub const SERVO_PREF_ENABLED_lighting_color : bool = false ; pub const SERVO_PREF_ENABLED_line_height : bool = false ; pub const SERVO_PREF_ENABLED_list_style : bool = false ; pub const SERVO_PREF_ENABLED_list_style_image : bool = false ; pub const SERVO_PREF_ENABLED_list_style_position : bool = false ; pub const SERVO_PREF_ENABLED_list_style_type : bool = false ; pub const SERVO_PREF_ENABLED_margin : bool = false ; pub const SERVO_PREF_ENABLED_margin_block_end : bool = false ; pub const SERVO_PREF_ENABLED_margin_block_start : bool = false ; pub const SERVO_PREF_ENABLED_margin_bottom : bool = false ; pub const SERVO_PREF_ENABLED_margin_inline_end : bool = false ; pub const SERVO_PREF_ENABLED_margin_inline_start : bool = false ; pub const SERVO_PREF_ENABLED_margin_left : bool = false ; pub const SERVO_PREF_ENABLED_margin_right : bool = false ; pub const SERVO_PREF_ENABLED_margin_top : bool = false ; pub const SERVO_PREF_ENABLED_marker : bool = false ; pub const SERVO_PREF_ENABLED_marker_end : bool = false ; pub const SERVO_PREF_ENABLED_marker_mid : bool = false ; pub const SERVO_PREF_ENABLED_marker_start : bool = false ; pub const SERVO_PREF_ENABLED_mask : bool = false ; pub const SERVO_PREF_ENABLED_mask_clip : bool = false ; pub const SERVO_PREF_ENABLED_mask_composite : bool = false ; pub const SERVO_PREF_ENABLED_mask_image : bool = false ; pub const SERVO_PREF_ENABLED_mask_mode : bool = false ; pub const SERVO_PREF_ENABLED_mask_origin : bool = false ; pub const SERVO_PREF_ENABLED_mask_position : bool = false ; pub const SERVO_PREF_ENABLED_mask_position_x : bool = false ; pub const SERVO_PREF_ENABLED_mask_position_y : bool = false ; pub const SERVO_PREF_ENABLED_mask_repeat : bool = false ; pub const SERVO_PREF_ENABLED_mask_size : bool = false ; pub const SERVO_PREF_ENABLED_mask_type : bool = false ; pub const SERVO_PREF_ENABLED__moz_math_display : bool = false ; pub const SERVO_PREF_ENABLED__moz_math_variant : bool = false ; pub const SERVO_PREF_ENABLED_max_block_size : bool = false ; pub const SERVO_PREF_ENABLED_max_height : bool = false ; pub const SERVO_PREF_ENABLED_max_inline_size : bool = false ; pub const SERVO_PREF_ENABLED_max_width : bool = false ; pub const SERVO_PREF_ENABLED_min_block_size : bool = false ; pub const SERVO_PREF_ENABLED__moz_min_font_size_ratio : bool = false ; pub const SERVO_PREF_ENABLED_min_height : bool = false ; pub const SERVO_PREF_ENABLED_min_inline_size : bool = false ; pub const SERVO_PREF_ENABLED_min_width : bool = false ; pub const SERVO_PREF_ENABLED_mix_blend_mode : bool = true ; pub const SERVO_PREF_ENABLED_object_fit : bool = false ; pub const SERVO_PREF_ENABLED_object_position : bool = false ; pub const SERVO_PREF_ENABLED_offset_block_end : bool = false ; pub const SERVO_PREF_ENABLED_offset_block_start : bool = false ; pub const SERVO_PREF_ENABLED_offset_inline_end : bool = false ; pub const SERVO_PREF_ENABLED_offset_inline_start : bool = false ; pub const SERVO_PREF_ENABLED_opacity : bool = false ; pub const SERVO_PREF_ENABLED_order : bool = false ; pub const SERVO_PREF_ENABLED__moz_orient : bool = false ; pub const SERVO_PREF_ENABLED__moz_osx_font_smoothing : bool = true ; pub const SERVO_PREF_ENABLED_outline : bool = false ; pub const SERVO_PREF_ENABLED_outline_color : bool = false ; pub const SERVO_PREF_ENABLED_outline_offset : bool = false ; pub const SERVO_PREF_ENABLED__moz_outline_radius : bool = false ; pub const SERVO_PREF_ENABLED__moz_outline_radius_bottomleft : bool = false ; pub const SERVO_PREF_ENABLED__moz_outline_radius_bottomright : bool = false ; pub const SERVO_PREF_ENABLED__moz_outline_radius_topleft : bool = false ; pub const SERVO_PREF_ENABLED__moz_outline_radius_topright : bool = false ; pub const SERVO_PREF_ENABLED_outline_style : bool = false ; pub const SERVO_PREF_ENABLED_outline_width : bool = false ; pub const SERVO_PREF_ENABLED_overflow : bool = false ; pub const SERVO_PREF_ENABLED_overflow_clip_box : bool = true ; pub const SERVO_PREF_ENABLED_overflow_clip_box_block : bool = true ; pub const SERVO_PREF_ENABLED_overflow_clip_box_inline : bool = true ; pub const SERVO_PREF_ENABLED_overflow_x : bool = false ; pub const SERVO_PREF_ENABLED_overflow_y : bool = false ; pub const SERVO_PREF_ENABLED_padding : bool = false ; pub const SERVO_PREF_ENABLED_padding_block_end : bool = false ; pub const SERVO_PREF_ENABLED_padding_block_start : bool = false ; pub const SERVO_PREF_ENABLED_padding_bottom : bool = false ; pub const SERVO_PREF_ENABLED_padding_inline_end : bool = false ; pub const SERVO_PREF_ENABLED_padding_inline_start : bool = false ; pub const SERVO_PREF_ENABLED_padding_left : bool = false ; pub const SERVO_PREF_ENABLED_padding_right : bool = false ; pub const SERVO_PREF_ENABLED_padding_top : bool = false ; pub const SERVO_PREF_ENABLED_page_break_after : bool = false ; pub const SERVO_PREF_ENABLED_page_break_before : bool = false ; pub const SERVO_PREF_ENABLED_page_break_inside : bool = false ; pub const SERVO_PREF_ENABLED_paint_order : bool = true ; pub const SERVO_PREF_ENABLED_perspective : bool = false ; pub const SERVO_PREF_ENABLED_perspective_origin : bool = false ; pub const SERVO_PREF_ENABLED_place_content : bool = false ; pub const SERVO_PREF_ENABLED_place_items : bool = false ; pub const SERVO_PREF_ENABLED_place_self : bool = false ; pub const SERVO_PREF_ENABLED_pointer_events : bool = false ; pub const SERVO_PREF_ENABLED_position : bool = false ; pub const SERVO_PREF_ENABLED_quotes : bool = false ; pub const SERVO_PREF_ENABLED_resize : bool = false ; pub const SERVO_PREF_ENABLED_right : bool = false ; pub const SERVO_PREF_ENABLED_ruby_align : bool = false ; pub const SERVO_PREF_ENABLED_ruby_position : bool = false ; pub const SERVO_PREF_ENABLED__moz_script_level : bool = false ; pub const SERVO_PREF_ENABLED__moz_script_min_size : bool = false ; pub const SERVO_PREF_ENABLED__moz_script_size_multiplier : bool = false ; pub const SERVO_PREF_ENABLED_scroll_behavior : bool = true ; pub const SERVO_PREF_ENABLED_overscroll_behavior : bool = true ; pub const SERVO_PREF_ENABLED_overscroll_behavior_x : bool = true ; pub const SERVO_PREF_ENABLED_overscroll_behavior_y : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_coordinate : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_destination : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_points_x : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_points_y : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_type : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_type_x : bool = true ; pub const SERVO_PREF_ENABLED_scroll_snap_type_y : bool = true ; pub const SERVO_PREF_ENABLED_shape_image_threshold : bool = true ; pub const SERVO_PREF_ENABLED_shape_outside : bool = true ; pub const SERVO_PREF_ENABLED_shape_rendering : bool = false ; pub const SERVO_PREF_ENABLED__x_span : bool = false ; pub const SERVO_PREF_ENABLED__moz_stack_sizing : bool = false ; pub const SERVO_PREF_ENABLED_stop_color : bool = false ; pub const SERVO_PREF_ENABLED_stop_opacity : bool = false ; pub const SERVO_PREF_ENABLED_stroke : bool = false ; pub const SERVO_PREF_ENABLED_stroke_dasharray : bool = false ; pub const SERVO_PREF_ENABLED_stroke_dashoffset : bool = false ; pub const SERVO_PREF_ENABLED_stroke_linecap : bool = false ; pub const SERVO_PREF_ENABLED_stroke_linejoin : bool = false ; pub const SERVO_PREF_ENABLED_stroke_miterlimit : bool = false ; pub const SERVO_PREF_ENABLED_stroke_opacity : bool = false ; pub const SERVO_PREF_ENABLED_stroke_width : bool = false ; pub const SERVO_PREF_ENABLED__x_system_font : bool = false ; pub const SERVO_PREF_ENABLED__moz_tab_size : bool = false ; pub const SERVO_PREF_ENABLED_table_layout : bool = false ; pub const SERVO_PREF_ENABLED_text_align : bool = false ; pub const SERVO_PREF_ENABLED_text_align_last : bool = false ; pub const SERVO_PREF_ENABLED_text_anchor : bool = false ; pub const SERVO_PREF_ENABLED_text_combine_upright : bool = true ; pub const SERVO_PREF_ENABLED_text_decoration : bool = false ; pub const SERVO_PREF_ENABLED_text_decoration_color : bool = false ; pub const SERVO_PREF_ENABLED_text_decoration_line : bool = false ; pub const SERVO_PREF_ENABLED_text_decoration_style : bool = false ; pub const SERVO_PREF_ENABLED_text_emphasis : bool = false ; pub const SERVO_PREF_ENABLED_text_emphasis_color : bool = false ; pub const SERVO_PREF_ENABLED_text_emphasis_position : bool = false ; pub const SERVO_PREF_ENABLED_text_emphasis_style : bool = false ; pub const SERVO_PREF_ENABLED__webkit_text_fill_color : bool = true ; pub const SERVO_PREF_ENABLED_text_indent : bool = false ; pub const SERVO_PREF_ENABLED_text_justify : bool = true ; pub const SERVO_PREF_ENABLED_text_orientation : bool = false ; pub const SERVO_PREF_ENABLED_text_overflow : bool = false ; pub const SERVO_PREF_ENABLED_text_rendering : bool = false ; pub const SERVO_PREF_ENABLED_text_shadow : bool = false ; pub const SERVO_PREF_ENABLED__moz_text_size_adjust : bool = false ; pub const SERVO_PREF_ENABLED__webkit_text_stroke : bool = true ; pub const SERVO_PREF_ENABLED__webkit_text_stroke_color : bool = true ; pub const SERVO_PREF_ENABLED__webkit_text_stroke_width : bool = true ; pub const SERVO_PREF_ENABLED_text_transform : bool = false ; pub const SERVO_PREF_ENABLED__x_text_zoom : bool = false ; pub const SERVO_PREF_ENABLED_top : bool = false ; pub const SERVO_PREF_ENABLED__moz_top_layer : bool = false ; pub const SERVO_PREF_ENABLED_touch_action : bool = true ; pub const SERVO_PREF_ENABLED_transform : bool = false ; pub const SERVO_PREF_ENABLED__moz_transform : bool = true ; pub const SERVO_PREF_ENABLED_transform_box : bool = true ; pub const SERVO_PREF_ENABLED_transform_origin : bool = false ; pub const SERVO_PREF_ENABLED_transform_style : bool = false ; pub const SERVO_PREF_ENABLED_transition : bool = false ; pub const SERVO_PREF_ENABLED_transition_delay : bool = false ; pub const SERVO_PREF_ENABLED_transition_duration : bool = false ; pub const SERVO_PREF_ENABLED_transition_property : bool = false ; pub const SERVO_PREF_ENABLED_transition_timing_function : bool = false ; pub const SERVO_PREF_ENABLED_unicode_bidi : bool = false ; pub const SERVO_PREF_ENABLED__moz_user_focus : bool = false ; pub const SERVO_PREF_ENABLED__moz_user_input : bool = false ; pub const SERVO_PREF_ENABLED__moz_user_modify : bool = false ; pub const SERVO_PREF_ENABLED__moz_user_select : bool = false ; pub const SERVO_PREF_ENABLED_vector_effect : bool = false ; pub const SERVO_PREF_ENABLED_vertical_align : bool = false ; pub const SERVO_PREF_ENABLED_visibility : bool = false ; pub const SERVO_PREF_ENABLED_white_space : bool = false ; pub const SERVO_PREF_ENABLED_width : bool = false ; pub const SERVO_PREF_ENABLED_will_change : bool = false ; pub const SERVO_PREF_ENABLED__moz_window_dragging : bool = false ; pub const SERVO_PREF_ENABLED__moz_window_shadow : bool = false ; pub const SERVO_PREF_ENABLED__moz_window_opacity : bool = false ; pub const SERVO_PREF_ENABLED__moz_window_transform : bool = false ; pub const SERVO_PREF_ENABLED__moz_window_transform_origin : bool = false ; pub const SERVO_PREF_ENABLED_word_break : bool = false ; pub const SERVO_PREF_ENABLED_word_spacing : bool = false ; pub const SERVO_PREF_ENABLED_overflow_wrap : bool = false ; pub const SERVO_PREF_ENABLED_writing_mode : bool = false ; pub const SERVO_PREF_ENABLED_z_index : bool = false ; pub const SERVO_PREF_ENABLED_word_wrap : bool = false ; pub const SERVO_PREF_ENABLED__moz_transform_origin : bool = true ; pub const SERVO_PREF_ENABLED__moz_perspective_origin : bool = true ; pub const SERVO_PREF_ENABLED__moz_perspective : bool = true ; pub const SERVO_PREF_ENABLED__moz_transform_style : bool = true ; pub const SERVO_PREF_ENABLED__moz_backface_visibility : bool = true ; pub const SERVO_PREF_ENABLED__moz_border_image : bool = true ; pub const SERVO_PREF_ENABLED__moz_transition : bool = true ; pub const SERVO_PREF_ENABLED__moz_transition_delay : bool = true ; pub const SERVO_PREF_ENABLED__moz_transition_duration : bool = true ; pub const SERVO_PREF_ENABLED__moz_transition_property : bool = true ; pub const SERVO_PREF_ENABLED__moz_transition_timing_function : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_delay : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_direction : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_duration : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_fill_mode : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_iteration_count : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_name : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_play_state : bool = true ; pub const SERVO_PREF_ENABLED__moz_animation_timing_function : bool = true ; pub const SERVO_PREF_ENABLED__moz_box_sizing : bool = true ; pub const SERVO_PREF_ENABLED__moz_font_feature_settings : bool = true ; pub const SERVO_PREF_ENABLED__moz_font_language_override : bool = true ; pub const SERVO_PREF_ENABLED__moz_padding_end : bool = false ; pub const SERVO_PREF_ENABLED__moz_padding_start : bool = false ; pub const SERVO_PREF_ENABLED__moz_margin_end : bool = false ; pub const SERVO_PREF_ENABLED__moz_margin_start : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_end : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_end_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_end_style : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_end_width : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_start : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_start_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_start_style : bool = false ; pub const SERVO_PREF_ENABLED__moz_border_start_width : bool = false ; pub const SERVO_PREF_ENABLED__moz_hyphens : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_count : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_fill : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_gap : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_rule : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_rule_color : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_rule_style : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_rule_width : bool = false ; pub const SERVO_PREF_ENABLED__moz_column_span : bool = true ; pub const SERVO_PREF_ENABLED__moz_column_width : bool = false ; pub const SERVO_PREF_ENABLED__moz_columns : bool = false ; pub const SERVO_PREF_ENABLED__webkit_animation : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_delay : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_direction : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_duration : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_fill_mode : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_iteration_count : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_name : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_play_state : bool = true ; pub const SERVO_PREF_ENABLED__webkit_animation_timing_function : bool = true ; pub const SERVO_PREF_ENABLED__webkit_filter : bool = true ; pub const SERVO_PREF_ENABLED__webkit_text_size_adjust : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transform : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transform_origin : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transform_style : bool = true ; pub const SERVO_PREF_ENABLED__webkit_backface_visibility : bool = true ; pub const SERVO_PREF_ENABLED__webkit_perspective : bool = true ; pub const SERVO_PREF_ENABLED__webkit_perspective_origin : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transition : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transition_delay : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transition_duration : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transition_property : bool = true ; pub const SERVO_PREF_ENABLED__webkit_transition_timing_function : bool = true ; pub const SERVO_PREF_ENABLED__webkit_border_radius : bool = true ; pub const SERVO_PREF_ENABLED__webkit_border_top_left_radius : bool = true ; pub const SERVO_PREF_ENABLED__webkit_border_top_right_radius : bool = true ; pub const SERVO_PREF_ENABLED__webkit_border_bottom_left_radius : bool = true ; pub const SERVO_PREF_ENABLED__webkit_border_bottom_right_radius : bool = true ; pub const SERVO_PREF_ENABLED__webkit_background_clip : bool = true ; pub const SERVO_PREF_ENABLED__webkit_background_origin : bool = true ; pub const SERVO_PREF_ENABLED__webkit_background_size : bool = true ; pub const SERVO_PREF_ENABLED__webkit_border_image : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_shadow : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_sizing : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_flex : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_ordinal_group : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_orient : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_direction : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_align : bool = true ; pub const SERVO_PREF_ENABLED__webkit_box_pack : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex_direction : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex_wrap : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex_flow : bool = true ; pub const SERVO_PREF_ENABLED__webkit_order : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex_grow : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex_shrink : bool = true ; pub const SERVO_PREF_ENABLED__webkit_flex_basis : bool = true ; pub const SERVO_PREF_ENABLED__webkit_justify_content : bool = true ; pub const SERVO_PREF_ENABLED__webkit_align_items : bool = true ; pub const SERVO_PREF_ENABLED__webkit_align_self : bool = true ; pub const SERVO_PREF_ENABLED__webkit_align_content : bool = true ; pub const SERVO_PREF_ENABLED__webkit_user_select : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_clip : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_composite : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_image : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_origin : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_position : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_position_x : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_position_y : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_repeat : bool = true ; pub const SERVO_PREF_ENABLED__webkit_mask_size : bool = true ;
- /// Utility class to handle animated style values
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleAnimationValue { pub _bindgen_opaque_blob : [ u64 ; 2usize ] , } pub const StyleAnimationValue_Unit_eUnit_Null : root :: mozilla :: StyleAnimationValue_Unit = 0 ; pub const StyleAnimationValue_Unit_eUnit_Normal : root :: mozilla :: StyleAnimationValue_Unit = 1 ; pub const StyleAnimationValue_Unit_eUnit_Auto : root :: mozilla :: StyleAnimationValue_Unit = 2 ; pub const StyleAnimationValue_Unit_eUnit_None : root :: mozilla :: StyleAnimationValue_Unit = 3 ; pub const StyleAnimationValue_Unit_eUnit_Enumerated : root :: mozilla :: StyleAnimationValue_Unit = 4 ; pub const StyleAnimationValue_Unit_eUnit_Visibility : root :: mozilla :: StyleAnimationValue_Unit = 5 ; pub const StyleAnimationValue_Unit_eUnit_Integer : root :: mozilla :: StyleAnimationValue_Unit = 6 ; pub const StyleAnimationValue_Unit_eUnit_Coord : root :: mozilla :: StyleAnimationValue_Unit = 7 ; pub const StyleAnimationValue_Unit_eUnit_Percent : root :: mozilla :: StyleAnimationValue_Unit = 8 ; pub const StyleAnimationValue_Unit_eUnit_Float : root :: mozilla :: StyleAnimationValue_Unit = 9 ; pub const StyleAnimationValue_Unit_eUnit_Color : root :: mozilla :: StyleAnimationValue_Unit = 10 ; pub const StyleAnimationValue_Unit_eUnit_CurrentColor : root :: mozilla :: StyleAnimationValue_Unit = 11 ; pub const StyleAnimationValue_Unit_eUnit_ComplexColor : root :: mozilla :: StyleAnimationValue_Unit = 12 ; pub const StyleAnimationValue_Unit_eUnit_Calc : root :: mozilla :: StyleAnimationValue_Unit = 13 ; pub const StyleAnimationValue_Unit_eUnit_ObjectPosition : root :: mozilla :: StyleAnimationValue_Unit = 14 ; pub const StyleAnimationValue_Unit_eUnit_URL : root :: mozilla :: StyleAnimationValue_Unit = 15 ; pub const StyleAnimationValue_Unit_eUnit_DiscreteCSSValue : root :: mozilla :: StyleAnimationValue_Unit = 16 ; pub const StyleAnimationValue_Unit_eUnit_CSSValuePair : root :: mozilla :: StyleAnimationValue_Unit = 17 ; pub const StyleAnimationValue_Unit_eUnit_CSSValueTriplet : root :: mozilla :: StyleAnimationValue_Unit = 18 ; pub const StyleAnimationValue_Unit_eUnit_CSSRect : root :: mozilla :: StyleAnimationValue_Unit = 19 ; pub const StyleAnimationValue_Unit_eUnit_Dasharray : root :: mozilla :: StyleAnimationValue_Unit = 20 ; pub const StyleAnimationValue_Unit_eUnit_Shadow : root :: mozilla :: StyleAnimationValue_Unit = 21 ; pub const StyleAnimationValue_Unit_eUnit_Shape : root :: mozilla :: StyleAnimationValue_Unit = 22 ; pub const StyleAnimationValue_Unit_eUnit_Filter : root :: mozilla :: StyleAnimationValue_Unit = 23 ; pub const StyleAnimationValue_Unit_eUnit_Transform : root :: mozilla :: StyleAnimationValue_Unit = 24 ; pub const StyleAnimationValue_Unit_eUnit_BackgroundPositionCoord : root :: mozilla :: StyleAnimationValue_Unit = 25 ; pub const StyleAnimationValue_Unit_eUnit_CSSValuePairList : root :: mozilla :: StyleAnimationValue_Unit = 26 ; pub const StyleAnimationValue_Unit_eUnit_UnparsedString : root :: mozilla :: StyleAnimationValue_Unit = 27 ; pub type StyleAnimationValue_Unit = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StyleAnimationValue__bindgen_ty_1 { pub mInt : root :: __BindgenUnionField < i32 > , pub mCoord : root :: __BindgenUnionField < root :: nscoord > , pub mFloat : root :: __BindgenUnionField < f32 > , pub mCSSValue : root :: __BindgenUnionField < * mut root :: nsCSSValue > , pub mCSSValuePair : root :: __BindgenUnionField < * mut root :: nsCSSValuePair > , pub mCSSValueTriplet : root :: __BindgenUnionField < * mut root :: nsCSSValueTriplet > , pub mCSSRect : root :: __BindgenUnionField < * mut root :: nsCSSRect > , pub mCSSValueArray : root :: __BindgenUnionField < * mut root :: nsCSSValue_Array > , pub mCSSValueList : root :: __BindgenUnionField < * mut root :: nsCSSValueList > , pub mCSSValueSharedList : root :: __BindgenUnionField < * mut root :: nsCSSValueSharedList > , pub mCSSValuePairList : root :: __BindgenUnionField < * mut root :: nsCSSValuePairList > , pub mString : root :: __BindgenUnionField < * mut root :: nsStringBuffer > , pub mComplexColor : root :: __BindgenUnionField < * mut root :: mozilla :: css :: ComplexColorValue > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_StyleAnimationValue__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleAnimationValue__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleAnimationValue__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mInt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mInt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCoord as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCoord ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mFloat as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mFloat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValuePair as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValuePair ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValueTriplet as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValueTriplet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSRect as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSRect ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValueArray as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValueArray ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValueList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValueList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValueSharedList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValueSharedList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mCSSValuePairList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mCSSValuePairList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleAnimationValue__bindgen_ty_1 ) ) . mComplexColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( StyleAnimationValue__bindgen_ty_1 ) , "::" , stringify ! ( mComplexColor ) ) ) ; } impl Clone for StyleAnimationValue__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } pub const StyleAnimationValue_IntegerConstructorType_IntegerConstructor : root :: mozilla :: StyleAnimationValue_IntegerConstructorType = 0 ; pub type StyleAnimationValue_IntegerConstructorType = :: std :: os :: raw :: c_uint ; pub const StyleAnimationValue_CoordConstructorType_CoordConstructor : root :: mozilla :: StyleAnimationValue_CoordConstructorType = 0 ; pub type StyleAnimationValue_CoordConstructorType = :: std :: os :: raw :: c_uint ; pub const StyleAnimationValue_PercentConstructorType_PercentConstructor : root :: mozilla :: StyleAnimationValue_PercentConstructorType = 0 ; pub type StyleAnimationValue_PercentConstructorType = :: std :: os :: raw :: c_uint ; pub const StyleAnimationValue_FloatConstructorType_FloatConstructor : root :: mozilla :: StyleAnimationValue_FloatConstructorType = 0 ; pub type StyleAnimationValue_FloatConstructorType = :: std :: os :: raw :: c_uint ; pub const StyleAnimationValue_ColorConstructorType_ColorConstructor : root :: mozilla :: StyleAnimationValue_ColorConstructorType = 0 ; pub type StyleAnimationValue_ColorConstructorType = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_StyleAnimationValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleAnimationValue > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( StyleAnimationValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleAnimationValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleAnimationValue ) ) ) ; } impl Clone for StyleAnimationValue { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct AnimationValue { pub mGecko : root :: mozilla :: StyleAnimationValue , pub mServo : root :: RefPtr < root :: RawServoAnimationValue > , } # [ test ] fn bindgen_test_layout_AnimationValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AnimationValue > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( AnimationValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AnimationValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AnimationValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationValue ) ) . mGecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationValue ) , "::" , stringify ! ( mGecko ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationValue ) ) . mServo as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationValue ) , "::" , stringify ! ( mServo ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct PropertyStyleAnimationValuePair { pub mProperty : root :: nsCSSPropertyID , pub mValue : root :: mozilla :: AnimationValue , } # [ test ] fn bindgen_test_layout_PropertyStyleAnimationValuePair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PropertyStyleAnimationValuePair > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( PropertyStyleAnimationValuePair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PropertyStyleAnimationValuePair > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PropertyStyleAnimationValuePair ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PropertyStyleAnimationValuePair ) ) . mProperty as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PropertyStyleAnimationValuePair ) , "::" , stringify ! ( mProperty ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PropertyStyleAnimationValuePair ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PropertyStyleAnimationValuePair ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( C ) ] pub struct StyleSheetInfo__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// Struct for data common to CSSStyleSheetInner and ServoStyleSheet.
- # [ repr ( C ) ] pub struct StyleSheetInfo { pub vtable_ : * const StyleSheetInfo__bindgen_vtable , pub mSheetURI : root :: nsCOMPtr , pub mOriginalSheetURI : root :: nsCOMPtr , pub mBaseURI : root :: nsCOMPtr , pub mPrincipal : root :: nsCOMPtr , pub mCORSMode : root :: mozilla :: CORSMode , pub mReferrerPolicy : root :: mozilla :: StyleSheetInfo_ReferrerPolicy , pub mIntegrity : root :: mozilla :: dom :: SRIMetadata , pub mComplete : bool , pub mFirstChild : root :: RefPtr < root :: mozilla :: StyleSheet > , pub mSheets : [ u64 ; 10usize ] , pub mSourceMapURL : ::nsstring::nsStringRepr , pub mSourceMapURLFromComment : ::nsstring::nsStringRepr , pub mSourceURL : ::nsstring::nsStringRepr , } pub use self :: super :: super :: root :: mozilla :: net :: ReferrerPolicy as StyleSheetInfo_ReferrerPolicy ; # [ test ] fn bindgen_test_layout_StyleSheetInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StyleSheetInfo > ( ) , 240usize , concat ! ( "Size of: " , stringify ! ( StyleSheetInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StyleSheetInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSheetInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mSheetURI as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mSheetURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mOriginalSheetURI as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mOriginalSheetURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mBaseURI as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mBaseURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mPrincipal as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mPrincipal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mCORSMode as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mCORSMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mReferrerPolicy as * const _ as usize } , 44usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mReferrerPolicy ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mIntegrity as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mIntegrity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mComplete as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mComplete ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mFirstChild as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mFirstChild ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mSheets as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mSourceMapURL as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mSourceMapURL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mSourceMapURLFromComment as * const _ as usize } , 208usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mSourceMapURLFromComment ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const StyleSheetInfo ) ) . mSourceURL as * const _ as usize } , 224usize , concat ! ( "Alignment of field: " , stringify ! ( StyleSheetInfo ) , "::" , stringify ! ( mSourceURL ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ServoCSSRuleList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct ServoStyleSheetInner { pub _base : root :: mozilla :: StyleSheetInfo , pub mContents : root :: RefPtr < root :: RawServoStyleSheetContents > , pub mURLData : root :: RefPtr < root :: mozilla :: URLExtraData > , } # [ test ] fn bindgen_test_layout_ServoStyleSheetInner ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoStyleSheetInner > ( ) , 256usize , concat ! ( "Size of: " , stringify ! ( ServoStyleSheetInner ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoStyleSheetInner > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoStyleSheetInner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSheetInner ) ) . mContents as * const _ as usize } , 240usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSheetInner ) , "::" , stringify ! ( mContents ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSheetInner ) ) . mURLData as * const _ as usize } , 248usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSheetInner ) , "::" , stringify ! ( mURLData ) ) ) ; } # [ repr ( C ) ] pub struct ServoStyleSheet { pub _base : root :: mozilla :: StyleSheet , pub mRuleList : root :: RefPtr < root :: mozilla :: ServoCSSRuleList > , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ServoStyleSheet_cycleCollection { pub _base : root :: mozilla :: StyleSheet_cycleCollection , } # [ test ] fn bindgen_test_layout_ServoStyleSheet_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoStyleSheet_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ServoStyleSheet_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoStyleSheet_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoStyleSheet_cycleCollection ) ) ) ; } impl Clone for ServoStyleSheet_cycleCollection { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ServoStyleSheet_COMTypeInfo { pub _address : u8 , } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla15ServoStyleSheet21_cycleCollectorGlobalE" ]
- pub static mut ServoStyleSheet__cycleCollectorGlobal : root :: mozilla :: ServoStyleSheet_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_ServoStyleSheet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoStyleSheet > ( ) , 144usize , concat ! ( "Size of: " , stringify ! ( ServoStyleSheet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoStyleSheet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoStyleSheet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSheet ) ) . mRuleList as * const _ as usize } , 136usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSheet ) , "::" , stringify ! ( mRuleList ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct URIPrincipalReferrerPolicyAndCORSModeHashKey { pub _base : root :: nsURIHashKey , pub mPrincipal : root :: nsCOMPtr , pub mCORSMode : root :: mozilla :: CORSMode , pub mReferrerPolicy : root :: mozilla :: URIPrincipalReferrerPolicyAndCORSModeHashKey_ReferrerPolicy , } pub type URIPrincipalReferrerPolicyAndCORSModeHashKey_KeyType = * mut root :: mozilla :: URIPrincipalReferrerPolicyAndCORSModeHashKey ; pub type URIPrincipalReferrerPolicyAndCORSModeHashKey_KeyTypePointer = * const root :: mozilla :: URIPrincipalReferrerPolicyAndCORSModeHashKey ; pub use self :: super :: super :: root :: mozilla :: net :: ReferrerPolicy as URIPrincipalReferrerPolicyAndCORSModeHashKey_ReferrerPolicy ; pub const URIPrincipalReferrerPolicyAndCORSModeHashKey_ALLOW_MEMMOVE : root :: mozilla :: URIPrincipalReferrerPolicyAndCORSModeHashKey__bindgen_ty_1 = 1 ; pub type URIPrincipalReferrerPolicyAndCORSModeHashKey__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_URIPrincipalReferrerPolicyAndCORSModeHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < URIPrincipalReferrerPolicyAndCORSModeHashKey > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( URIPrincipalReferrerPolicyAndCORSModeHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < URIPrincipalReferrerPolicyAndCORSModeHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( URIPrincipalReferrerPolicyAndCORSModeHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URIPrincipalReferrerPolicyAndCORSModeHashKey ) ) . mPrincipal as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( URIPrincipalReferrerPolicyAndCORSModeHashKey ) , "::" , stringify ! ( mPrincipal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URIPrincipalReferrerPolicyAndCORSModeHashKey ) ) . mCORSMode as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( URIPrincipalReferrerPolicyAndCORSModeHashKey ) , "::" , stringify ! ( mCORSMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const URIPrincipalReferrerPolicyAndCORSModeHashKey ) ) . mReferrerPolicy as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( URIPrincipalReferrerPolicyAndCORSModeHashKey ) , "::" , stringify ! ( mReferrerPolicy ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ComputedTimingFunction { pub mType : root :: nsTimingFunction_Type , pub mTimingFunction : root :: nsSMILKeySpline , pub mStepsOrFrames : u32 , } pub const ComputedTimingFunction_BeforeFlag_Unset : root :: mozilla :: ComputedTimingFunction_BeforeFlag = 0 ; pub const ComputedTimingFunction_BeforeFlag_Set : root :: mozilla :: ComputedTimingFunction_BeforeFlag = 1 ; pub type ComputedTimingFunction_BeforeFlag = :: std :: os :: raw :: c_int ; # [ test ] fn bindgen_test_layout_ComputedTimingFunction ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ComputedTimingFunction > ( ) , 136usize , concat ! ( "Size of: " , stringify ! ( ComputedTimingFunction ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ComputedTimingFunction > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ComputedTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTimingFunction ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTimingFunction ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTimingFunction ) ) . mTimingFunction as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTimingFunction ) , "::" , stringify ! ( mTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTimingFunction ) ) . mStepsOrFrames as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTimingFunction ) , "::" , stringify ! ( mStepsOrFrames ) ) ) ; } impl Clone for ComputedTimingFunction { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct AnimationPropertySegment { pub mFromKey : f32 , pub mToKey : f32 , pub mFromValue : root :: mozilla :: AnimationValue , pub mToValue : root :: mozilla :: AnimationValue , pub mTimingFunction : [ u64 ; 18usize ] , pub mFromComposite : root :: mozilla :: dom :: CompositeOperation , pub mToComposite : root :: mozilla :: dom :: CompositeOperation , } # [ test ] fn bindgen_test_layout_AnimationPropertySegment ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AnimationPropertySegment > ( ) , 208usize , concat ! ( "Size of: " , stringify ! ( AnimationPropertySegment ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AnimationPropertySegment > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AnimationPropertySegment ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mFromKey as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mFromKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mToKey as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mToKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mFromValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mFromValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mToValue as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mToValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mTimingFunction as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mFromComposite as * const _ as usize } , 200usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mFromComposite ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const AnimationPropertySegment ) ) . mToComposite as * const _ as usize } , 201usize , concat ! ( "Alignment of field: " , stringify ! ( AnimationPropertySegment ) , "::" , stringify ! ( mToComposite ) ) ) ; }
- /// A ValueCalculator class that performs additional checks before performing
+ /// one.
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct UniquePtr<T> {
+ pub mPtr: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub const SERVO_PREF_ENABLED_align_content: bool = false;
+ pub const SERVO_PREF_ENABLED_align_items: bool = false;
+ pub const SERVO_PREF_ENABLED_align_self: bool = false;
+ pub const SERVO_PREF_ENABLED_all: bool = true;
+ pub const SERVO_PREF_ENABLED_animation: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_delay: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_direction: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_duration: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_fill_mode: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_iteration_count: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_name: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_play_state: bool = false;
+ pub const SERVO_PREF_ENABLED_animation_timing_function: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_appearance: bool = false;
+ pub const SERVO_PREF_ENABLED_backface_visibility: bool = false;
+ pub const SERVO_PREF_ENABLED_background: bool = false;
+ pub const SERVO_PREF_ENABLED_background_attachment: bool = false;
+ pub const SERVO_PREF_ENABLED_background_blend_mode: bool = true;
+ pub const SERVO_PREF_ENABLED_background_clip: bool = false;
+ pub const SERVO_PREF_ENABLED_background_color: bool = false;
+ pub const SERVO_PREF_ENABLED_background_image: bool = false;
+ pub const SERVO_PREF_ENABLED_background_origin: bool = false;
+ pub const SERVO_PREF_ENABLED_background_position: bool = false;
+ pub const SERVO_PREF_ENABLED_background_position_x: bool = false;
+ pub const SERVO_PREF_ENABLED_background_position_y: bool = false;
+ pub const SERVO_PREF_ENABLED_background_repeat: bool = false;
+ pub const SERVO_PREF_ENABLED_background_size: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_binding: bool = false;
+ pub const SERVO_PREF_ENABLED_block_size: bool = false;
+ pub const SERVO_PREF_ENABLED_border: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_end: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_end_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_end_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_end_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_start: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_start_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_start_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_block_start_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_bottom: bool = false;
+ pub const SERVO_PREF_ENABLED_border_bottom_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_bottom_left_radius: bool = false;
+ pub const SERVO_PREF_ENABLED_border_bottom_right_radius: bool = false;
+ pub const SERVO_PREF_ENABLED_border_bottom_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_bottom_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_collapse: bool = false;
+ pub const SERVO_PREF_ENABLED_border_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_image: bool = false;
+ pub const SERVO_PREF_ENABLED_border_image_outset: bool = false;
+ pub const SERVO_PREF_ENABLED_border_image_repeat: bool = false;
+ pub const SERVO_PREF_ENABLED_border_image_slice: bool = false;
+ pub const SERVO_PREF_ENABLED_border_image_source: bool = false;
+ pub const SERVO_PREF_ENABLED_border_image_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_end: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_end_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_end_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_end_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_start: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_start_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_start_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_inline_start_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_left: bool = false;
+ pub const SERVO_PREF_ENABLED_border_left_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_left_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_left_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_radius: bool = false;
+ pub const SERVO_PREF_ENABLED_border_right: bool = false;
+ pub const SERVO_PREF_ENABLED_border_right_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_right_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_right_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_spacing: bool = false;
+ pub const SERVO_PREF_ENABLED_border_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_top: bool = false;
+ pub const SERVO_PREF_ENABLED_border_top_color: bool = false;
+ pub const SERVO_PREF_ENABLED_border_top_left_radius: bool = false;
+ pub const SERVO_PREF_ENABLED_border_top_right_radius: bool = false;
+ pub const SERVO_PREF_ENABLED_border_top_style: bool = false;
+ pub const SERVO_PREF_ENABLED_border_top_width: bool = false;
+ pub const SERVO_PREF_ENABLED_border_width: bool = false;
+ pub const SERVO_PREF_ENABLED_bottom: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_box_align: bool = false;
+ pub const SERVO_PREF_ENABLED_box_decoration_break: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_box_direction: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_box_flex: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_box_ordinal_group: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_box_orient: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_box_pack: bool = false;
+ pub const SERVO_PREF_ENABLED_box_shadow: bool = false;
+ pub const SERVO_PREF_ENABLED_box_sizing: bool = false;
+ pub const SERVO_PREF_ENABLED_caption_side: bool = false;
+ pub const SERVO_PREF_ENABLED_caret_color: bool = false;
+ pub const SERVO_PREF_ENABLED_clear: bool = false;
+ pub const SERVO_PREF_ENABLED_clip: bool = false;
+ pub const SERVO_PREF_ENABLED_clip_path: bool = false;
+ pub const SERVO_PREF_ENABLED_clip_rule: bool = false;
+ pub const SERVO_PREF_ENABLED_color: bool = false;
+ pub const SERVO_PREF_ENABLED_color_adjust: bool = true;
+ pub const SERVO_PREF_ENABLED_color_interpolation: bool = false;
+ pub const SERVO_PREF_ENABLED_color_interpolation_filters: bool = false;
+ pub const SERVO_PREF_ENABLED_column_count: bool = false;
+ pub const SERVO_PREF_ENABLED_column_fill: bool = false;
+ pub const SERVO_PREF_ENABLED_column_gap: bool = false;
+ pub const SERVO_PREF_ENABLED_column_rule: bool = false;
+ pub const SERVO_PREF_ENABLED_column_rule_color: bool = false;
+ pub const SERVO_PREF_ENABLED_column_rule_style: bool = false;
+ pub const SERVO_PREF_ENABLED_column_rule_width: bool = false;
+ pub const SERVO_PREF_ENABLED_column_span: bool = true;
+ pub const SERVO_PREF_ENABLED_column_width: bool = false;
+ pub const SERVO_PREF_ENABLED_columns: bool = false;
+ pub const SERVO_PREF_ENABLED_contain: bool = true;
+ pub const SERVO_PREF_ENABLED_content: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_context_properties: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_control_character_visibility: bool = false;
+ pub const SERVO_PREF_ENABLED_counter_increment: bool = false;
+ pub const SERVO_PREF_ENABLED_counter_reset: bool = false;
+ pub const SERVO_PREF_ENABLED_cursor: bool = false;
+ pub const SERVO_PREF_ENABLED_direction: bool = false;
+ pub const SERVO_PREF_ENABLED_display: bool = false;
+ pub const SERVO_PREF_ENABLED_dominant_baseline: bool = false;
+ pub const SERVO_PREF_ENABLED_empty_cells: bool = false;
+ pub const SERVO_PREF_ENABLED_fill: bool = false;
+ pub const SERVO_PREF_ENABLED_fill_opacity: bool = false;
+ pub const SERVO_PREF_ENABLED_fill_rule: bool = false;
+ pub const SERVO_PREF_ENABLED_filter: bool = false;
+ pub const SERVO_PREF_ENABLED_flex: bool = false;
+ pub const SERVO_PREF_ENABLED_flex_basis: bool = false;
+ pub const SERVO_PREF_ENABLED_flex_direction: bool = false;
+ pub const SERVO_PREF_ENABLED_flex_flow: bool = false;
+ pub const SERVO_PREF_ENABLED_flex_grow: bool = false;
+ pub const SERVO_PREF_ENABLED_flex_shrink: bool = false;
+ pub const SERVO_PREF_ENABLED_flex_wrap: bool = false;
+ pub const SERVO_PREF_ENABLED_float_: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_float_edge: bool = false;
+ pub const SERVO_PREF_ENABLED_flood_color: bool = false;
+ pub const SERVO_PREF_ENABLED_flood_opacity: bool = false;
+ pub const SERVO_PREF_ENABLED_font: bool = false;
+ pub const SERVO_PREF_ENABLED_font_family: bool = false;
+ pub const SERVO_PREF_ENABLED_font_feature_settings: bool = false;
+ pub const SERVO_PREF_ENABLED_font_kerning: bool = false;
+ pub const SERVO_PREF_ENABLED_font_language_override: bool = false;
+ pub const SERVO_PREF_ENABLED_font_size: bool = false;
+ pub const SERVO_PREF_ENABLED_font_size_adjust: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_font_smoothing_background_color: bool = false;
+ pub const SERVO_PREF_ENABLED_font_stretch: bool = false;
+ pub const SERVO_PREF_ENABLED_font_style: bool = false;
+ pub const SERVO_PREF_ENABLED_font_synthesis: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant_alternates: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant_caps: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant_east_asian: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant_ligatures: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant_numeric: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variant_position: bool = false;
+ pub const SERVO_PREF_ENABLED_font_variation_settings: bool = true;
+ pub const SERVO_PREF_ENABLED_font_weight: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_force_broken_image_icon: bool = false;
+ pub const SERVO_PREF_ENABLED_grid: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_area: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_auto_columns: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_auto_flow: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_auto_rows: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_column: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_column_end: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_column_gap: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_column_start: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_gap: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_row: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_row_end: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_row_gap: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_row_start: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_template: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_template_areas: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_template_columns: bool = false;
+ pub const SERVO_PREF_ENABLED_grid_template_rows: bool = false;
+ pub const SERVO_PREF_ENABLED_height: bool = false;
+ pub const SERVO_PREF_ENABLED_hyphens: bool = false;
+ pub const SERVO_PREF_ENABLED_initial_letter: bool = true;
+ pub const SERVO_PREF_ENABLED_image_orientation: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_image_region: bool = false;
+ pub const SERVO_PREF_ENABLED_image_rendering: bool = false;
+ pub const SERVO_PREF_ENABLED_ime_mode: bool = false;
+ pub const SERVO_PREF_ENABLED_inline_size: bool = false;
+ pub const SERVO_PREF_ENABLED_isolation: bool = true;
+ pub const SERVO_PREF_ENABLED_justify_content: bool = false;
+ pub const SERVO_PREF_ENABLED_justify_items: bool = false;
+ pub const SERVO_PREF_ENABLED_justify_self: bool = false;
+ pub const SERVO_PREF_ENABLED__x_lang: bool = false;
+ pub const SERVO_PREF_ENABLED_left: bool = false;
+ pub const SERVO_PREF_ENABLED_letter_spacing: bool = false;
+ pub const SERVO_PREF_ENABLED_lighting_color: bool = false;
+ pub const SERVO_PREF_ENABLED_line_height: bool = false;
+ pub const SERVO_PREF_ENABLED_list_style: bool = false;
+ pub const SERVO_PREF_ENABLED_list_style_image: bool = false;
+ pub const SERVO_PREF_ENABLED_list_style_position: bool = false;
+ pub const SERVO_PREF_ENABLED_list_style_type: bool = false;
+ pub const SERVO_PREF_ENABLED_margin: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_block_end: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_block_start: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_bottom: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_inline_end: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_inline_start: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_left: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_right: bool = false;
+ pub const SERVO_PREF_ENABLED_margin_top: bool = false;
+ pub const SERVO_PREF_ENABLED_marker: bool = false;
+ pub const SERVO_PREF_ENABLED_marker_end: bool = false;
+ pub const SERVO_PREF_ENABLED_marker_mid: bool = false;
+ pub const SERVO_PREF_ENABLED_marker_start: bool = false;
+ pub const SERVO_PREF_ENABLED_mask: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_clip: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_composite: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_image: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_mode: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_origin: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_position: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_position_x: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_position_y: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_repeat: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_size: bool = false;
+ pub const SERVO_PREF_ENABLED_mask_type: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_math_display: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_math_variant: bool = false;
+ pub const SERVO_PREF_ENABLED_max_block_size: bool = false;
+ pub const SERVO_PREF_ENABLED_max_height: bool = false;
+ pub const SERVO_PREF_ENABLED_max_inline_size: bool = false;
+ pub const SERVO_PREF_ENABLED_max_width: bool = false;
+ pub const SERVO_PREF_ENABLED_min_block_size: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_min_font_size_ratio: bool = false;
+ pub const SERVO_PREF_ENABLED_min_height: bool = false;
+ pub const SERVO_PREF_ENABLED_min_inline_size: bool = false;
+ pub const SERVO_PREF_ENABLED_min_width: bool = false;
+ pub const SERVO_PREF_ENABLED_mix_blend_mode: bool = true;
+ pub const SERVO_PREF_ENABLED_object_fit: bool = false;
+ pub const SERVO_PREF_ENABLED_object_position: bool = false;
+ pub const SERVO_PREF_ENABLED_offset_block_end: bool = false;
+ pub const SERVO_PREF_ENABLED_offset_block_start: bool = false;
+ pub const SERVO_PREF_ENABLED_offset_inline_end: bool = false;
+ pub const SERVO_PREF_ENABLED_offset_inline_start: bool = false;
+ pub const SERVO_PREF_ENABLED_opacity: bool = false;
+ pub const SERVO_PREF_ENABLED_order: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_orient: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_osx_font_smoothing: bool = true;
+ pub const SERVO_PREF_ENABLED_outline: bool = false;
+ pub const SERVO_PREF_ENABLED_outline_color: bool = false;
+ pub const SERVO_PREF_ENABLED_outline_offset: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_outline_radius: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_outline_radius_bottomleft: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_outline_radius_bottomright: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_outline_radius_topleft: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_outline_radius_topright: bool = false;
+ pub const SERVO_PREF_ENABLED_outline_style: bool = false;
+ pub const SERVO_PREF_ENABLED_outline_width: bool = false;
+ pub const SERVO_PREF_ENABLED_overflow: bool = false;
+ pub const SERVO_PREF_ENABLED_overflow_clip_box: bool = true;
+ pub const SERVO_PREF_ENABLED_overflow_clip_box_block: bool = true;
+ pub const SERVO_PREF_ENABLED_overflow_clip_box_inline: bool = true;
+ pub const SERVO_PREF_ENABLED_overflow_x: bool = false;
+ pub const SERVO_PREF_ENABLED_overflow_y: bool = false;
+ pub const SERVO_PREF_ENABLED_padding: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_block_end: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_block_start: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_bottom: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_inline_end: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_inline_start: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_left: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_right: bool = false;
+ pub const SERVO_PREF_ENABLED_padding_top: bool = false;
+ pub const SERVO_PREF_ENABLED_page_break_after: bool = false;
+ pub const SERVO_PREF_ENABLED_page_break_before: bool = false;
+ pub const SERVO_PREF_ENABLED_page_break_inside: bool = false;
+ pub const SERVO_PREF_ENABLED_paint_order: bool = true;
+ pub const SERVO_PREF_ENABLED_perspective: bool = false;
+ pub const SERVO_PREF_ENABLED_perspective_origin: bool = false;
+ pub const SERVO_PREF_ENABLED_place_content: bool = false;
+ pub const SERVO_PREF_ENABLED_place_items: bool = false;
+ pub const SERVO_PREF_ENABLED_place_self: bool = false;
+ pub const SERVO_PREF_ENABLED_pointer_events: bool = false;
+ pub const SERVO_PREF_ENABLED_position: bool = false;
+ pub const SERVO_PREF_ENABLED_quotes: bool = false;
+ pub const SERVO_PREF_ENABLED_resize: bool = false;
+ pub const SERVO_PREF_ENABLED_right: bool = false;
+ pub const SERVO_PREF_ENABLED_ruby_align: bool = false;
+ pub const SERVO_PREF_ENABLED_ruby_position: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_script_level: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_script_min_size: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_script_size_multiplier: bool = false;
+ pub const SERVO_PREF_ENABLED_scroll_behavior: bool = true;
+ pub const SERVO_PREF_ENABLED_overscroll_behavior: bool = true;
+ pub const SERVO_PREF_ENABLED_overscroll_behavior_x: bool = true;
+ pub const SERVO_PREF_ENABLED_overscroll_behavior_y: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_coordinate: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_destination: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_points_x: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_points_y: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_type: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_type_x: bool = true;
+ pub const SERVO_PREF_ENABLED_scroll_snap_type_y: bool = true;
+ pub const SERVO_PREF_ENABLED_shape_image_threshold: bool = true;
+ pub const SERVO_PREF_ENABLED_shape_outside: bool = true;
+ pub const SERVO_PREF_ENABLED_shape_rendering: bool = false;
+ pub const SERVO_PREF_ENABLED__x_span: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_stack_sizing: bool = false;
+ pub const SERVO_PREF_ENABLED_stop_color: bool = false;
+ pub const SERVO_PREF_ENABLED_stop_opacity: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_dasharray: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_dashoffset: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_linecap: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_linejoin: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_miterlimit: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_opacity: bool = false;
+ pub const SERVO_PREF_ENABLED_stroke_width: bool = false;
+ pub const SERVO_PREF_ENABLED__x_system_font: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_tab_size: bool = false;
+ pub const SERVO_PREF_ENABLED_table_layout: bool = false;
+ pub const SERVO_PREF_ENABLED_text_align: bool = false;
+ pub const SERVO_PREF_ENABLED_text_align_last: bool = false;
+ pub const SERVO_PREF_ENABLED_text_anchor: bool = false;
+ pub const SERVO_PREF_ENABLED_text_combine_upright: bool = true;
+ pub const SERVO_PREF_ENABLED_text_decoration: bool = false;
+ pub const SERVO_PREF_ENABLED_text_decoration_color: bool = false;
+ pub const SERVO_PREF_ENABLED_text_decoration_line: bool = false;
+ pub const SERVO_PREF_ENABLED_text_decoration_style: bool = false;
+ pub const SERVO_PREF_ENABLED_text_emphasis: bool = false;
+ pub const SERVO_PREF_ENABLED_text_emphasis_color: bool = false;
+ pub const SERVO_PREF_ENABLED_text_emphasis_position: bool = false;
+ pub const SERVO_PREF_ENABLED_text_emphasis_style: bool = false;
+ pub const SERVO_PREF_ENABLED__webkit_text_fill_color: bool = true;
+ pub const SERVO_PREF_ENABLED_text_indent: bool = false;
+ pub const SERVO_PREF_ENABLED_text_justify: bool = true;
+ pub const SERVO_PREF_ENABLED_text_orientation: bool = false;
+ pub const SERVO_PREF_ENABLED_text_overflow: bool = false;
+ pub const SERVO_PREF_ENABLED_text_rendering: bool = false;
+ pub const SERVO_PREF_ENABLED_text_shadow: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_text_size_adjust: bool = false;
+ pub const SERVO_PREF_ENABLED__webkit_text_stroke: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_text_stroke_color: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_text_stroke_width: bool = true;
+ pub const SERVO_PREF_ENABLED_text_transform: bool = false;
+ pub const SERVO_PREF_ENABLED__x_text_zoom: bool = false;
+ pub const SERVO_PREF_ENABLED_top: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_top_layer: bool = false;
+ pub const SERVO_PREF_ENABLED_touch_action: bool = true;
+ pub const SERVO_PREF_ENABLED_transform: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_transform: bool = true;
+ pub const SERVO_PREF_ENABLED_transform_box: bool = true;
+ pub const SERVO_PREF_ENABLED_transform_origin: bool = false;
+ pub const SERVO_PREF_ENABLED_transform_style: bool = false;
+ pub const SERVO_PREF_ENABLED_transition: bool = false;
+ pub const SERVO_PREF_ENABLED_transition_delay: bool = false;
+ pub const SERVO_PREF_ENABLED_transition_duration: bool = false;
+ pub const SERVO_PREF_ENABLED_transition_property: bool = false;
+ pub const SERVO_PREF_ENABLED_transition_timing_function: bool = false;
+ pub const SERVO_PREF_ENABLED_unicode_bidi: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_user_focus: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_user_input: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_user_modify: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_user_select: bool = false;
+ pub const SERVO_PREF_ENABLED_vector_effect: bool = false;
+ pub const SERVO_PREF_ENABLED_vertical_align: bool = false;
+ pub const SERVO_PREF_ENABLED_visibility: bool = false;
+ pub const SERVO_PREF_ENABLED_white_space: bool = false;
+ pub const SERVO_PREF_ENABLED_width: bool = false;
+ pub const SERVO_PREF_ENABLED_will_change: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_window_dragging: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_window_shadow: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_window_opacity: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_window_transform: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_window_transform_origin: bool = false;
+ pub const SERVO_PREF_ENABLED_word_break: bool = false;
+ pub const SERVO_PREF_ENABLED_word_spacing: bool = false;
+ pub const SERVO_PREF_ENABLED_overflow_wrap: bool = false;
+ pub const SERVO_PREF_ENABLED_writing_mode: bool = false;
+ pub const SERVO_PREF_ENABLED_z_index: bool = false;
+ pub const SERVO_PREF_ENABLED_word_wrap: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_transform_origin: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_perspective_origin: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_perspective: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_transform_style: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_backface_visibility: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_border_image: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_transition: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_transition_delay: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_transition_duration: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_transition_property: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_transition_timing_function: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_delay: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_direction: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_duration: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_fill_mode: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_iteration_count: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_name: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_play_state: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_animation_timing_function: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_box_sizing: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_font_feature_settings: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_font_language_override: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_padding_end: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_padding_start: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_margin_end: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_margin_start: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_end: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_end_color: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_end_style: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_end_width: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_start: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_start_color: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_start_style: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_border_start_width: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_hyphens: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_count: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_fill: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_gap: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_rule: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_rule_color: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_rule_style: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_rule_width: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_column_span: bool = true;
+ pub const SERVO_PREF_ENABLED__moz_column_width: bool = false;
+ pub const SERVO_PREF_ENABLED__moz_columns: bool = false;
+ pub const SERVO_PREF_ENABLED__webkit_animation: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_delay: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_direction: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_duration: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_fill_mode: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_iteration_count: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_name: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_play_state: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_animation_timing_function: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_filter: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_text_size_adjust: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transform: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transform_origin: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transform_style: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_backface_visibility: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_perspective: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_perspective_origin: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transition: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transition_delay: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transition_duration: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transition_property: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_transition_timing_function: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_border_radius: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_border_top_left_radius: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_border_top_right_radius: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_border_bottom_left_radius: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_border_bottom_right_radius: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_background_clip: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_background_origin: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_background_size: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_border_image: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_shadow: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_sizing: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_flex: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_ordinal_group: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_orient: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_direction: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_align: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_box_pack: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex_direction: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex_wrap: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex_flow: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_order: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex_grow: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex_shrink: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_flex_basis: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_justify_content: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_align_items: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_align_self: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_align_content: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_user_select: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_clip: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_composite: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_image: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_origin: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_position: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_position_x: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_position_y: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_repeat: bool = true;
+ pub const SERVO_PREF_ENABLED__webkit_mask_size: bool = true;
+ /// Utility class to handle animated style values
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleAnimationValue {
+ pub _bindgen_opaque_blob: [u64; 2usize],
+ }
+ pub const StyleAnimationValue_Unit_eUnit_Null: root::mozilla::StyleAnimationValue_Unit = 0;
+ pub const StyleAnimationValue_Unit_eUnit_Normal: root::mozilla::StyleAnimationValue_Unit =
+ 1;
+ pub const StyleAnimationValue_Unit_eUnit_Auto: root::mozilla::StyleAnimationValue_Unit = 2;
+ pub const StyleAnimationValue_Unit_eUnit_None: root::mozilla::StyleAnimationValue_Unit = 3;
+ pub const StyleAnimationValue_Unit_eUnit_Enumerated:
+ root::mozilla::StyleAnimationValue_Unit = 4;
+ pub const StyleAnimationValue_Unit_eUnit_Visibility:
+ root::mozilla::StyleAnimationValue_Unit = 5;
+ pub const StyleAnimationValue_Unit_eUnit_Integer: root::mozilla::StyleAnimationValue_Unit =
+ 6;
+ pub const StyleAnimationValue_Unit_eUnit_Coord: root::mozilla::StyleAnimationValue_Unit = 7;
+ pub const StyleAnimationValue_Unit_eUnit_Percent: root::mozilla::StyleAnimationValue_Unit =
+ 8;
+ pub const StyleAnimationValue_Unit_eUnit_Float: root::mozilla::StyleAnimationValue_Unit = 9;
+ pub const StyleAnimationValue_Unit_eUnit_Color: root::mozilla::StyleAnimationValue_Unit =
+ 10;
+ pub const StyleAnimationValue_Unit_eUnit_CurrentColor:
+ root::mozilla::StyleAnimationValue_Unit = 11;
+ pub const StyleAnimationValue_Unit_eUnit_ComplexColor:
+ root::mozilla::StyleAnimationValue_Unit = 12;
+ pub const StyleAnimationValue_Unit_eUnit_Calc: root::mozilla::StyleAnimationValue_Unit = 13;
+ pub const StyleAnimationValue_Unit_eUnit_ObjectPosition:
+ root::mozilla::StyleAnimationValue_Unit = 14;
+ pub const StyleAnimationValue_Unit_eUnit_URL: root::mozilla::StyleAnimationValue_Unit = 15;
+ pub const StyleAnimationValue_Unit_eUnit_DiscreteCSSValue:
+ root::mozilla::StyleAnimationValue_Unit = 16;
+ pub const StyleAnimationValue_Unit_eUnit_CSSValuePair:
+ root::mozilla::StyleAnimationValue_Unit = 17;
+ pub const StyleAnimationValue_Unit_eUnit_CSSValueTriplet:
+ root::mozilla::StyleAnimationValue_Unit = 18;
+ pub const StyleAnimationValue_Unit_eUnit_CSSRect: root::mozilla::StyleAnimationValue_Unit =
+ 19;
+ pub const StyleAnimationValue_Unit_eUnit_Dasharray:
+ root::mozilla::StyleAnimationValue_Unit = 20;
+ pub const StyleAnimationValue_Unit_eUnit_Shadow: root::mozilla::StyleAnimationValue_Unit =
+ 21;
+ pub const StyleAnimationValue_Unit_eUnit_Shape: root::mozilla::StyleAnimationValue_Unit =
+ 22;
+ pub const StyleAnimationValue_Unit_eUnit_Filter: root::mozilla::StyleAnimationValue_Unit =
+ 23;
+ pub const StyleAnimationValue_Unit_eUnit_Transform:
+ root::mozilla::StyleAnimationValue_Unit = 24;
+ pub const StyleAnimationValue_Unit_eUnit_BackgroundPositionCoord:
+ root::mozilla::StyleAnimationValue_Unit = 25;
+ pub const StyleAnimationValue_Unit_eUnit_CSSValuePairList:
+ root::mozilla::StyleAnimationValue_Unit = 26;
+ pub const StyleAnimationValue_Unit_eUnit_UnparsedString:
+ root::mozilla::StyleAnimationValue_Unit = 27;
+ pub type StyleAnimationValue_Unit = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StyleAnimationValue__bindgen_ty_1 {
+ pub mInt: root::__BindgenUnionField<i32>,
+ pub mCoord: root::__BindgenUnionField<root::nscoord>,
+ pub mFloat: root::__BindgenUnionField<f32>,
+ pub mCSSValue: root::__BindgenUnionField<*mut root::nsCSSValue>,
+ pub mCSSValuePair: root::__BindgenUnionField<*mut root::nsCSSValuePair>,
+ pub mCSSValueTriplet: root::__BindgenUnionField<*mut root::nsCSSValueTriplet>,
+ pub mCSSRect: root::__BindgenUnionField<*mut root::nsCSSRect>,
+ pub mCSSValueArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
+ pub mCSSValueList: root::__BindgenUnionField<*mut root::nsCSSValueList>,
+ pub mCSSValueSharedList: root::__BindgenUnionField<*mut root::nsCSSValueSharedList>,
+ pub mCSSValuePairList: root::__BindgenUnionField<*mut root::nsCSSValuePairList>,
+ pub mString: root::__BindgenUnionField<*mut root::nsStringBuffer>,
+ pub mComplexColor:
+ root::__BindgenUnionField<*mut root::mozilla::css::ComplexColorValue>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_StyleAnimationValue__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleAnimationValue__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(StyleAnimationValue__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleAnimationValue__bindgen_ty_1>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(StyleAnimationValue__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mInt as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mInt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCoord as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCoord)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mFloat as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mFloat)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSValue
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSValuePair
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValuePair)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSValueTriplet
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValueTriplet)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSRect
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSRect)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSValueArray
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValueArray)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSValueList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValueList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>()))
+ .mCSSValueSharedList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValueSharedList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mCSSValuePairList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mCSSValuePairList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mString
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleAnimationValue__bindgen_ty_1>())).mComplexColor
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleAnimationValue__bindgen_ty_1),
+ "::",
+ stringify!(mComplexColor)
+ )
+ );
+ }
+ impl Clone for StyleAnimationValue__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const StyleAnimationValue_IntegerConstructorType_IntegerConstructor:
+ root::mozilla::StyleAnimationValue_IntegerConstructorType = 0;
+ pub type StyleAnimationValue_IntegerConstructorType = u32;
+ pub const StyleAnimationValue_CoordConstructorType_CoordConstructor:
+ root::mozilla::StyleAnimationValue_CoordConstructorType = 0;
+ pub type StyleAnimationValue_CoordConstructorType = u32;
+ pub const StyleAnimationValue_PercentConstructorType_PercentConstructor:
+ root::mozilla::StyleAnimationValue_PercentConstructorType = 0;
+ pub type StyleAnimationValue_PercentConstructorType = u32;
+ pub const StyleAnimationValue_FloatConstructorType_FloatConstructor:
+ root::mozilla::StyleAnimationValue_FloatConstructorType = 0;
+ pub type StyleAnimationValue_FloatConstructorType = u32;
+ pub const StyleAnimationValue_ColorConstructorType_ColorConstructor:
+ root::mozilla::StyleAnimationValue_ColorConstructorType = 0;
+ pub type StyleAnimationValue_ColorConstructorType = u32;
+ #[test]
+ fn bindgen_test_layout_StyleAnimationValue() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleAnimationValue>(),
+ 16usize,
+ concat!("Size of: ", stringify!(StyleAnimationValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleAnimationValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleAnimationValue))
+ );
+ }
+ impl Clone for StyleAnimationValue {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct AnimationValue {
+ pub mGecko: root::mozilla::StyleAnimationValue,
+ pub mServo: root::RefPtr<root::RawServoAnimationValue>,
+ }
+ #[test]
+ fn bindgen_test_layout_AnimationValue() {
+ assert_eq!(
+ ::std::mem::size_of::<AnimationValue>(),
+ 24usize,
+ concat!("Size of: ", stringify!(AnimationValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<AnimationValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(AnimationValue))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<AnimationValue>())).mGecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationValue),
+ "::",
+ stringify!(mGecko)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<AnimationValue>())).mServo as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationValue),
+ "::",
+ stringify!(mServo)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct PropertyStyleAnimationValuePair {
+ pub mProperty: root::nsCSSPropertyID,
+ pub mValue: root::mozilla::AnimationValue,
+ }
+ #[test]
+ fn bindgen_test_layout_PropertyStyleAnimationValuePair() {
+ assert_eq!(
+ ::std::mem::size_of::<PropertyStyleAnimationValuePair>(),
+ 32usize,
+ concat!("Size of: ", stringify!(PropertyStyleAnimationValuePair))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PropertyStyleAnimationValuePair>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PropertyStyleAnimationValuePair))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PropertyStyleAnimationValuePair>())).mProperty
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PropertyStyleAnimationValuePair),
+ "::",
+ stringify!(mProperty)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PropertyStyleAnimationValuePair>())).mValue as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PropertyStyleAnimationValuePair),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct StyleSheetInfo__bindgen_vtable(::std::os::raw::c_void);
+ /// Struct for data common to CSSStyleSheetInner and ServoStyleSheet.
+ #[repr(C)]
+ pub struct StyleSheetInfo {
+ pub vtable_: *const StyleSheetInfo__bindgen_vtable,
+ pub mSheetURI: root::nsCOMPtr,
+ pub mOriginalSheetURI: root::nsCOMPtr,
+ pub mBaseURI: root::nsCOMPtr,
+ pub mPrincipal: root::nsCOMPtr,
+ pub mCORSMode: root::mozilla::CORSMode,
+ pub mReferrerPolicy: root::mozilla::StyleSheetInfo_ReferrerPolicy,
+ pub mIntegrity: root::mozilla::dom::SRIMetadata,
+ pub mComplete: bool,
+ pub mFirstChild: root::RefPtr<root::mozilla::StyleSheet>,
+ pub mSheets: [u64; 10usize],
+ pub mSourceMapURL: ::nsstring::nsStringRepr,
+ pub mSourceMapURLFromComment: ::nsstring::nsStringRepr,
+ pub mSourceURL: ::nsstring::nsStringRepr,
+ }
+ pub use self :: super :: super :: root :: mozilla :: net :: ReferrerPolicy as StyleSheetInfo_ReferrerPolicy;
+ #[test]
+ fn bindgen_test_layout_StyleSheetInfo() {
+ assert_eq!(
+ ::std::mem::size_of::<StyleSheetInfo>(),
+ 240usize,
+ concat!("Size of: ", stringify!(StyleSheetInfo))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StyleSheetInfo>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(StyleSheetInfo))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mSheetURI as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mSheetURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mOriginalSheetURI as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mOriginalSheetURI)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleSheetInfo>())).mBaseURI as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mBaseURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mPrincipal as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mPrincipal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mCORSMode as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mCORSMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mReferrerPolicy as *const _ as usize
+ },
+ 44usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mReferrerPolicy)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mIntegrity as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mIntegrity)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mComplete as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mComplete)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mFirstChild as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mFirstChild)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<StyleSheetInfo>())).mSheets as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mSheets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mSourceMapURL as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mSourceMapURL)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mSourceMapURLFromComment as *const _
+ as usize
+ },
+ 208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mSourceMapURLFromComment)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<StyleSheetInfo>())).mSourceURL as *const _ as usize
+ },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(StyleSheetInfo),
+ "::",
+ stringify!(mSourceURL)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ServoCSSRuleList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct ServoStyleSheetInner {
+ pub _base: root::mozilla::StyleSheetInfo,
+ pub mContents: root::RefPtr<root::RawServoStyleSheetContents>,
+ pub mURLData: root::RefPtr<root::mozilla::URLExtraData>,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoStyleSheetInner() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoStyleSheetInner>(),
+ 256usize,
+ concat!("Size of: ", stringify!(ServoStyleSheetInner))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoStyleSheetInner>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoStyleSheetInner))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSheetInner>())).mContents as *const _ as usize
+ },
+ 240usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSheetInner),
+ "::",
+ stringify!(mContents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSheetInner>())).mURLData as *const _ as usize
+ },
+ 248usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSheetInner),
+ "::",
+ stringify!(mURLData)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct ServoStyleSheet {
+ pub _base: root::mozilla::StyleSheet,
+ pub mRuleList: root::RefPtr<root::mozilla::ServoCSSRuleList>,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ServoStyleSheet_cycleCollection {
+ pub _base: root::mozilla::StyleSheet_cycleCollection,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoStyleSheet_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoStyleSheet_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(ServoStyleSheet_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoStyleSheet_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoStyleSheet_cycleCollection))
+ );
+ }
+ impl Clone for ServoStyleSheet_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ServoStyleSheet_COMTypeInfo {
+ pub _address: u8,
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla15ServoStyleSheet21_cycleCollectorGlobalE"]
+ pub static mut ServoStyleSheet__cycleCollectorGlobal:
+ root::mozilla::ServoStyleSheet_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_ServoStyleSheet() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoStyleSheet>(),
+ 136usize,
+ concat!("Size of: ", stringify!(ServoStyleSheet))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoStyleSheet>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoStyleSheet))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSheet>())).mRuleList as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSheet),
+ "::",
+ stringify!(mRuleList)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct URIPrincipalReferrerPolicyAndCORSModeHashKey {
+ pub _base: root::nsURIHashKey,
+ pub mPrincipal: root::nsCOMPtr,
+ pub mCORSMode: root::mozilla::CORSMode,
+ pub mReferrerPolicy:
+ root::mozilla::URIPrincipalReferrerPolicyAndCORSModeHashKey_ReferrerPolicy,
+ }
+ pub type URIPrincipalReferrerPolicyAndCORSModeHashKey_KeyType =
+ *mut root::mozilla::URIPrincipalReferrerPolicyAndCORSModeHashKey;
+ pub type URIPrincipalReferrerPolicyAndCORSModeHashKey_KeyTypePointer =
+ *const root::mozilla::URIPrincipalReferrerPolicyAndCORSModeHashKey;
+ pub use self :: super :: super :: root :: mozilla :: net :: ReferrerPolicy as URIPrincipalReferrerPolicyAndCORSModeHashKey_ReferrerPolicy;
+ pub const URIPrincipalReferrerPolicyAndCORSModeHashKey_ALLOW_MEMMOVE:
+ root::mozilla::URIPrincipalReferrerPolicyAndCORSModeHashKey__bindgen_ty_1 = 1;
+ pub type URIPrincipalReferrerPolicyAndCORSModeHashKey__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_URIPrincipalReferrerPolicyAndCORSModeHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<URIPrincipalReferrerPolicyAndCORSModeHashKey>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(URIPrincipalReferrerPolicyAndCORSModeHashKey)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<URIPrincipalReferrerPolicyAndCORSModeHashKey>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(URIPrincipalReferrerPolicyAndCORSModeHashKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URIPrincipalReferrerPolicyAndCORSModeHashKey>()))
+ .mPrincipal as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URIPrincipalReferrerPolicyAndCORSModeHashKey),
+ "::",
+ stringify!(mPrincipal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URIPrincipalReferrerPolicyAndCORSModeHashKey>()))
+ .mCORSMode as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URIPrincipalReferrerPolicyAndCORSModeHashKey),
+ "::",
+ stringify!(mCORSMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<URIPrincipalReferrerPolicyAndCORSModeHashKey>()))
+ .mReferrerPolicy as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(URIPrincipalReferrerPolicyAndCORSModeHashKey),
+ "::",
+ stringify!(mReferrerPolicy)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ComputedTimingFunction {
+ pub mType: root::nsTimingFunction_Type,
+ pub mTimingFunction: root::nsSMILKeySpline,
+ pub mStepsOrFrames: u32,
+ }
+ pub const ComputedTimingFunction_BeforeFlag_Unset:
+ root::mozilla::ComputedTimingFunction_BeforeFlag = 0;
+ pub const ComputedTimingFunction_BeforeFlag_Set:
+ root::mozilla::ComputedTimingFunction_BeforeFlag = 1;
+ pub type ComputedTimingFunction_BeforeFlag = i32;
+ #[test]
+ fn bindgen_test_layout_ComputedTimingFunction() {
+ assert_eq!(
+ ::std::mem::size_of::<ComputedTimingFunction>(),
+ 136usize,
+ concat!("Size of: ", stringify!(ComputedTimingFunction))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ComputedTimingFunction>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ComputedTimingFunction))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTimingFunction>())).mType as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTimingFunction),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTimingFunction>())).mTimingFunction as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTimingFunction),
+ "::",
+ stringify!(mTimingFunction)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTimingFunction>())).mStepsOrFrames as *const _
+ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTimingFunction),
+ "::",
+ stringify!(mStepsOrFrames)
+ )
+ );
+ }
+ impl Clone for ComputedTimingFunction {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct AnimationPropertySegment {
+ pub mFromKey: f32,
+ pub mToKey: f32,
+ pub mFromValue: root::mozilla::AnimationValue,
+ pub mToValue: root::mozilla::AnimationValue,
+ pub mTimingFunction: [u64; 18usize],
+ pub mFromComposite: root::mozilla::dom::CompositeOperation,
+ pub mToComposite: root::mozilla::dom::CompositeOperation,
+ }
+ #[test]
+ fn bindgen_test_layout_AnimationPropertySegment() {
+ assert_eq!(
+ ::std::mem::size_of::<AnimationPropertySegment>(),
+ 208usize,
+ concat!("Size of: ", stringify!(AnimationPropertySegment))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<AnimationPropertySegment>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(AnimationPropertySegment))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mFromKey as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mFromKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mToKey as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mToKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mFromValue as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mFromValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mToValue as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mToValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mTimingFunction as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mTimingFunction)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mFromComposite as *const _
+ as usize
+ },
+ 200usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mFromComposite)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<AnimationPropertySegment>())).mToComposite as *const _
+ as usize
+ },
+ 201usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(AnimationPropertySegment),
+ "::",
+ stringify!(mToComposite)
+ )
+ );
+ }
+ /// A ValueCalculator class that performs additional checks before performing
/// arithmetic operations such that if either operand is Forever (or the
/// negative equivalent) the result remains Forever (or the negative equivalent
/// as appropriate).
@@ -381,22 +9120,271 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// We currently don't check for that case since we don't expect that to
/// happen often except under test conditions in which case the wrapping
- /// behavior is probably acceptable.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StickyTimeDurationValueCalculator { pub _address : u8 , } # [ test ] fn bindgen_test_layout_StickyTimeDurationValueCalculator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StickyTimeDurationValueCalculator > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( StickyTimeDurationValueCalculator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StickyTimeDurationValueCalculator > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( StickyTimeDurationValueCalculator ) ) ) ; } impl Clone for StickyTimeDurationValueCalculator { fn clone ( & self ) -> Self { * self } }
- /// Specialization of BaseTimeDuration that uses
+ /// behavior is probably acceptable.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StickyTimeDurationValueCalculator {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_StickyTimeDurationValueCalculator() {
+ assert_eq!(
+ ::std::mem::size_of::<StickyTimeDurationValueCalculator>(),
+ 1usize,
+ concat!("Size of: ", stringify!(StickyTimeDurationValueCalculator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StickyTimeDurationValueCalculator>(),
+ 1usize,
+ concat!(
+ "Alignment of ",
+ stringify!(StickyTimeDurationValueCalculator)
+ )
+ );
+ }
+ impl Clone for StickyTimeDurationValueCalculator {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Specialization of BaseTimeDuration that uses
/// StickyTimeDurationValueCalculator for arithmetic on the mValue member.
///
/// Use this class when you need a time duration that is expected to hold values
/// of Forever (or the negative equivalent) *and* when you expect that
/// time duration to be used in arithmetic operations (and not just value
- /// comparisons).
- pub type StickyTimeDuration = root :: mozilla :: BaseTimeDuration ;
- /// Stores the results of calculating the timing properties of an animation
- /// at a given sample time.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ComputedTiming { pub mActiveDuration : root :: mozilla :: StickyTimeDuration , pub mActiveTime : root :: mozilla :: StickyTimeDuration , pub mEndTime : root :: mozilla :: StickyTimeDuration , pub mProgress : [ u64 ; 2usize ] , pub mCurrentIteration : u64 , pub mIterations : f64 , pub mIterationStart : f64 , pub mDuration : root :: mozilla :: StickyTimeDuration , pub mFill : root :: mozilla :: dom :: FillMode , pub mPhase : root :: mozilla :: ComputedTiming_AnimationPhase , pub mBeforeFlag : root :: mozilla :: ComputedTimingFunction_BeforeFlag , } pub const ComputedTiming_AnimationPhase_Idle : root :: mozilla :: ComputedTiming_AnimationPhase = 0 ; pub const ComputedTiming_AnimationPhase_Before : root :: mozilla :: ComputedTiming_AnimationPhase = 1 ; pub const ComputedTiming_AnimationPhase_Active : root :: mozilla :: ComputedTiming_AnimationPhase = 2 ; pub const ComputedTiming_AnimationPhase_After : root :: mozilla :: ComputedTiming_AnimationPhase = 3 ; pub type ComputedTiming_AnimationPhase = :: std :: os :: raw :: c_int ; # [ test ] fn bindgen_test_layout_ComputedTiming ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ComputedTiming > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( ComputedTiming ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ComputedTiming > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ComputedTiming ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mActiveDuration as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mActiveDuration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mActiveTime as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mActiveTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mEndTime as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mEndTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mProgress as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mProgress ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mCurrentIteration as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mCurrentIteration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mIterations as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mIterations ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mIterationStart as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mIterationStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mDuration as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mDuration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mFill as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mFill ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mPhase as * const _ as usize } , 76usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mPhase ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ComputedTiming ) ) . mBeforeFlag as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( ComputedTiming ) , "::" , stringify ! ( mBeforeFlag ) ) ) ; } impl Clone for ComputedTiming { fn clone ( & self ) -> Self { * self } }
- /// A property-value pair specified on a keyframe.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct PropertyValuePair { pub mProperty : root :: nsCSSPropertyID , pub mValue : root :: nsCSSValue , pub mServoDeclarationBlock : root :: RefPtr < root :: RawServoDeclarationBlock > , } # [ test ] fn bindgen_test_layout_PropertyValuePair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PropertyValuePair > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( PropertyValuePair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PropertyValuePair > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PropertyValuePair ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PropertyValuePair ) ) . mProperty as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PropertyValuePair ) , "::" , stringify ! ( mProperty ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PropertyValuePair ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PropertyValuePair ) , "::" , stringify ! ( mValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PropertyValuePair ) ) . mServoDeclarationBlock as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PropertyValuePair ) , "::" , stringify ! ( mServoDeclarationBlock ) ) ) ; }
- /// A single keyframe.
+ /// comparisons).
+ pub type StickyTimeDuration = root::mozilla::BaseTimeDuration;
+ /// Stores the results of calculating the timing properties of an animation
+ /// at a given sample time.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ComputedTiming {
+ pub mActiveDuration: root::mozilla::StickyTimeDuration,
+ pub mActiveTime: root::mozilla::StickyTimeDuration,
+ pub mEndTime: root::mozilla::StickyTimeDuration,
+ pub mProgress: [u64; 2usize],
+ pub mCurrentIteration: u64,
+ pub mIterations: f64,
+ pub mIterationStart: f64,
+ pub mDuration: root::mozilla::StickyTimeDuration,
+ pub mFill: root::mozilla::dom::FillMode,
+ pub mPhase: root::mozilla::ComputedTiming_AnimationPhase,
+ pub mBeforeFlag: root::mozilla::ComputedTimingFunction_BeforeFlag,
+ }
+ pub const ComputedTiming_AnimationPhase_Idle: root::mozilla::ComputedTiming_AnimationPhase =
+ 0;
+ pub const ComputedTiming_AnimationPhase_Before:
+ root::mozilla::ComputedTiming_AnimationPhase = 1;
+ pub const ComputedTiming_AnimationPhase_Active:
+ root::mozilla::ComputedTiming_AnimationPhase = 2;
+ pub const ComputedTiming_AnimationPhase_After:
+ root::mozilla::ComputedTiming_AnimationPhase = 3;
+ pub type ComputedTiming_AnimationPhase = i32;
+ #[test]
+ fn bindgen_test_layout_ComputedTiming() {
+ assert_eq!(
+ ::std::mem::size_of::<ComputedTiming>(),
+ 88usize,
+ concat!("Size of: ", stringify!(ComputedTiming))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ComputedTiming>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ComputedTiming))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mActiveDuration as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mActiveDuration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mActiveTime as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mActiveTime)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ComputedTiming>())).mEndTime as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mEndTime)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mProgress as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mProgress)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mCurrentIteration as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mCurrentIteration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mIterations as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mIterations)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mIterationStart as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mIterationStart)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mDuration as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mDuration)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ComputedTiming>())).mFill as *const _ as usize },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mFill)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ComputedTiming>())).mPhase as *const _ as usize },
+ 76usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mPhase)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ComputedTiming>())).mBeforeFlag as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ComputedTiming),
+ "::",
+ stringify!(mBeforeFlag)
+ )
+ );
+ }
+ impl Clone for ComputedTiming {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// A property-value pair specified on a keyframe.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct PropertyValuePair {
+ pub mProperty: root::nsCSSPropertyID,
+ pub mValue: root::nsCSSValue,
+ pub mServoDeclarationBlock: root::RefPtr<root::RawServoDeclarationBlock>,
+ }
+ #[test]
+ fn bindgen_test_layout_PropertyValuePair() {
+ assert_eq!(
+ ::std::mem::size_of::<PropertyValuePair>(),
+ 32usize,
+ concat!("Size of: ", stringify!(PropertyValuePair))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PropertyValuePair>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PropertyValuePair))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PropertyValuePair>())).mProperty as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PropertyValuePair),
+ "::",
+ stringify!(mProperty)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PropertyValuePair>())).mValue as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PropertyValuePair),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PropertyValuePair>())).mServoDeclarationBlock as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PropertyValuePair),
+ "::",
+ stringify!(mServoDeclarationBlock)
+ )
+ );
+ }
+ /// A single keyframe.
///
/// This is the canonical form in which keyframe effects are stored and
/// corresponds closely to the type of objects returned via the getKeyframes()
@@ -409,90 +9397,3205 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// When the target element or style context changes, however, we rebuild these
/// per-property arrays from the original list of keyframes objects. As a result,
- /// these objects represent the master definition of the effect's values.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct Keyframe { pub mOffset : [ u64 ; 2usize ] , pub mComputedOffset : f64 , pub mTimingFunction : [ u64 ; 18usize ] , pub mComposite : [ u8 ; 2usize ] , pub mPropertyValues : root :: nsTArray < root :: mozilla :: PropertyValuePair > , } pub const Keyframe_kComputedOffsetNotSet : f64 = -1. ; # [ test ] fn bindgen_test_layout_Keyframe ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Keyframe > ( ) , 184usize , concat ! ( "Size of: " , stringify ! ( Keyframe ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Keyframe > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Keyframe ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Keyframe ) ) . mOffset as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Keyframe ) ) . mComputedOffset as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mComputedOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Keyframe ) ) . mTimingFunction as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Keyframe ) ) . mComposite as * const _ as usize } , 168usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mComposite ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Keyframe ) ) . mPropertyValues as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mPropertyValues ) ) ) ; }
- /// A structure representing a single attribute name and value.
+ /// these objects represent the master definition of the effect's values.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct Keyframe {
+ pub mOffset: [u64; 2usize],
+ pub mComputedOffset: f64,
+ pub mTimingFunction: [u64; 18usize],
+ pub mComposite: [u8; 2usize],
+ pub mPropertyValues: root::nsTArray<root::mozilla::PropertyValuePair>,
+ }
+ pub const Keyframe_kComputedOffsetNotSet: f64 = -1.;
+ #[test]
+ fn bindgen_test_layout_Keyframe() {
+ assert_eq!(
+ ::std::mem::size_of::<Keyframe>(),
+ 184usize,
+ concat!("Size of: ", stringify!(Keyframe))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Keyframe>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Keyframe))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Keyframe>())).mOffset as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Keyframe),
+ "::",
+ stringify!(mOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Keyframe>())).mComputedOffset as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Keyframe),
+ "::",
+ stringify!(mComputedOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Keyframe>())).mTimingFunction as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Keyframe),
+ "::",
+ stringify!(mTimingFunction)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Keyframe>())).mComposite as *const _ as usize },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Keyframe),
+ "::",
+ stringify!(mComposite)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Keyframe>())).mPropertyValues as *const _ as usize
+ },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Keyframe),
+ "::",
+ stringify!(mPropertyValues)
+ )
+ );
+ }
+ /// A structure representing a single attribute name and value.
///
- /// This is pretty similar to the private nsAttrAndChildArray::InternalAttr.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ServoAttrSnapshot { pub mName : root :: nsAttrName , pub mValue : root :: nsAttrValue , } # [ test ] fn bindgen_test_layout_ServoAttrSnapshot ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoAttrSnapshot > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ServoAttrSnapshot ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoAttrSnapshot > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoAttrSnapshot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoAttrSnapshot ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ServoAttrSnapshot ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoAttrSnapshot ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ServoAttrSnapshot ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( u8 ) ]
- /// A bitflags enum class used to determine what data does a ServoElementSnapshot
- /// contains.
- # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum ServoElementSnapshotFlags { State = 1 , Attributes = 2 , Id = 4 , MaybeClass = 8 , OtherPseudoClassState = 16 , }
- /// This class holds all non-tree-structural state of an element that might be
+ /// This is pretty similar to the private nsAttrAndChildArray::InternalAttr.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ServoAttrSnapshot {
+ pub mName: root::nsAttrName,
+ pub mValue: root::nsAttrValue,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoAttrSnapshot() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoAttrSnapshot>(),
+ 16usize,
+ concat!("Size of: ", stringify!(ServoAttrSnapshot))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoAttrSnapshot>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoAttrSnapshot))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoAttrSnapshot>())).mName as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoAttrSnapshot),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoAttrSnapshot>())).mValue as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoAttrSnapshot),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(u8)]
+ /// A bitflags enum class used to determine what data does a ServoElementSnapshot
+ /// contains.
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum ServoElementSnapshotFlags {
+ State = 1,
+ Attributes = 2,
+ Id = 4,
+ MaybeClass = 8,
+ OtherPseudoClassState = 16,
+ }
+ /// This class holds all non-tree-structural state of an element that might be
/// used for selector matching eventually.
///
/// This means the attributes, and the element state, such as :hover, :active,
- /// etc...
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ServoElementSnapshot { pub mAttrs : root :: nsTArray < root :: mozilla :: ServoAttrSnapshot > , pub mClass : root :: nsAttrValue , pub mState : root :: mozilla :: ServoElementSnapshot_ServoStateType , pub mContains : root :: mozilla :: ServoElementSnapshot_Flags , pub _bitfield_1 : u8 , pub __bindgen_padding_0 : [ u16 ; 3usize ] , } pub type ServoElementSnapshot_BorrowedAttrInfo = root :: mozilla :: dom :: BorrowedAttrInfo ; pub type ServoElementSnapshot_Element = root :: mozilla :: dom :: Element ; pub type ServoElementSnapshot_ServoStateType = root :: mozilla :: EventStates_ServoType ; pub use self :: super :: super :: root :: mozilla :: ServoElementSnapshotFlags as ServoElementSnapshot_Flags ; # [ test ] fn bindgen_test_layout_ServoElementSnapshot ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoElementSnapshot > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ServoElementSnapshot ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoElementSnapshot > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoElementSnapshot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoElementSnapshot ) ) . mAttrs as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ServoElementSnapshot ) , "::" , stringify ! ( mAttrs ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoElementSnapshot ) ) . mClass as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ServoElementSnapshot ) , "::" , stringify ! ( mClass ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoElementSnapshot ) ) . mState as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoElementSnapshot ) , "::" , stringify ! ( mState ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoElementSnapshot ) ) . mContains as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ServoElementSnapshot ) , "::" , stringify ! ( mContains ) ) ) ; } impl ServoElementSnapshot { # [ inline ] pub fn mIsHTMLElementInHTMLDocument ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x1 as u8 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsHTMLElementInHTMLDocument ( & mut self , val : bool ) { let mask = 0x1 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mIsInChromeDocument ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x2 as u8 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsInChromeDocument ( & mut self , val : bool ) { let mask = 0x2 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mSupportsLangAttr ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x4 as u8 ; let val = ( unit_field_val & mask ) >> 2usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mSupportsLangAttr ( & mut self , val : bool ) { let mask = 0x4 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 2usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mIsTableBorderNonzero ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x8 as u8 ; let val = ( unit_field_val & mask ) >> 3usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsTableBorderNonzero ( & mut self , val : bool ) { let mask = 0x8 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 3usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mIsMozBrowserFrame ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x10 as u8 ; let val = ( unit_field_val & mask ) >> 4usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsMozBrowserFrame ( & mut self , val : bool ) { let mask = 0x10 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 4usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mClassAttributeChanged ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x20 as u8 ; let val = ( unit_field_val & mask ) >> 5usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mClassAttributeChanged ( & mut self , val : bool ) { let mask = 0x20 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 5usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mIdAttributeChanged ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x40 as u8 ; let val = ( unit_field_val & mask ) >> 6usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIdAttributeChanged ( & mut self , val : bool ) { let mask = 0x40 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 6usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mOtherAttributeChanged ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x80 as u8 ; let val = ( unit_field_val & mask ) >> 7usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mOtherAttributeChanged ( & mut self , val : bool ) { let mask = 0x80 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 7usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mIsHTMLElementInHTMLDocument : bool , mIsInChromeDocument : bool , mSupportsLangAttr : bool , mIsTableBorderNonzero : bool , mIsMozBrowserFrame : bool , mClassAttributeChanged : bool , mIdAttributeChanged : bool , mOtherAttributeChanged : bool ) -> u8 { ( ( ( ( ( ( ( ( 0 | ( ( mIsHTMLElementInHTMLDocument as u8 as u8 ) << 0usize ) & ( 0x1 as u8 ) ) | ( ( mIsInChromeDocument as u8 as u8 ) << 1usize ) & ( 0x2 as u8 ) ) | ( ( mSupportsLangAttr as u8 as u8 ) << 2usize ) & ( 0x4 as u8 ) ) | ( ( mIsTableBorderNonzero as u8 as u8 ) << 3usize ) & ( 0x8 as u8 ) ) | ( ( mIsMozBrowserFrame as u8 as u8 ) << 4usize ) & ( 0x10 as u8 ) ) | ( ( mClassAttributeChanged as u8 as u8 ) << 5usize ) & ( 0x20 as u8 ) ) | ( ( mIdAttributeChanged as u8 as u8 ) << 6usize ) & ( 0x40 as u8 ) ) | ( ( mOtherAttributeChanged as u8 as u8 ) << 7usize ) & ( 0x80 as u8 ) ) } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ServoElementSnapshotTable { pub _base : [ u64 ; 4usize ] , } # [ test ] fn bindgen_test_layout_ServoElementSnapshotTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoElementSnapshotTable > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ServoElementSnapshotTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoElementSnapshotTable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoElementSnapshotTable ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct LookAndFeel { pub _address : u8 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum LookAndFeel_ColorID { eColorID_WindowBackground = 0 , eColorID_WindowForeground = 1 , eColorID_WidgetBackground = 2 , eColorID_WidgetForeground = 3 , eColorID_WidgetSelectBackground = 4 , eColorID_WidgetSelectForeground = 5 , eColorID_Widget3DHighlight = 6 , eColorID_Widget3DShadow = 7 , eColorID_TextBackground = 8 , eColorID_TextForeground = 9 , eColorID_TextSelectBackground = 10 , eColorID_TextSelectForeground = 11 , eColorID_TextSelectForegroundCustom = 12 , eColorID_TextSelectBackgroundDisabled = 13 , eColorID_TextSelectBackgroundAttention = 14 , eColorID_TextHighlightBackground = 15 , eColorID_TextHighlightForeground = 16 , eColorID_IMERawInputBackground = 17 , eColorID_IMERawInputForeground = 18 , eColorID_IMERawInputUnderline = 19 , eColorID_IMESelectedRawTextBackground = 20 , eColorID_IMESelectedRawTextForeground = 21 , eColorID_IMESelectedRawTextUnderline = 22 , eColorID_IMEConvertedTextBackground = 23 , eColorID_IMEConvertedTextForeground = 24 , eColorID_IMEConvertedTextUnderline = 25 , eColorID_IMESelectedConvertedTextBackground = 26 , eColorID_IMESelectedConvertedTextForeground = 27 , eColorID_IMESelectedConvertedTextUnderline = 28 , eColorID_SpellCheckerUnderline = 29 , eColorID_activeborder = 30 , eColorID_activecaption = 31 , eColorID_appworkspace = 32 , eColorID_background = 33 , eColorID_buttonface = 34 , eColorID_buttonhighlight = 35 , eColorID_buttonshadow = 36 , eColorID_buttontext = 37 , eColorID_captiontext = 38 , eColorID_graytext = 39 , eColorID_highlight = 40 , eColorID_highlighttext = 41 , eColorID_inactiveborder = 42 , eColorID_inactivecaption = 43 , eColorID_inactivecaptiontext = 44 , eColorID_infobackground = 45 , eColorID_infotext = 46 , eColorID_menu = 47 , eColorID_menutext = 48 , eColorID_scrollbar = 49 , eColorID_threeddarkshadow = 50 , eColorID_threedface = 51 , eColorID_threedhighlight = 52 , eColorID_threedlightshadow = 53 , eColorID_threedshadow = 54 , eColorID_window = 55 , eColorID_windowframe = 56 , eColorID_windowtext = 57 , eColorID__moz_buttondefault = 58 , eColorID__moz_field = 59 , eColorID__moz_fieldtext = 60 , eColorID__moz_dialog = 61 , eColorID__moz_dialogtext = 62 , eColorID__moz_dragtargetzone = 63 , eColorID__moz_cellhighlight = 64 , eColorID__moz_cellhighlighttext = 65 , eColorID__moz_html_cellhighlight = 66 , eColorID__moz_html_cellhighlighttext = 67 , eColorID__moz_buttonhoverface = 68 , eColorID__moz_buttonhovertext = 69 , eColorID__moz_menuhover = 70 , eColorID__moz_menuhovertext = 71 , eColorID__moz_menubartext = 72 , eColorID__moz_menubarhovertext = 73 , eColorID__moz_eventreerow = 74 , eColorID__moz_oddtreerow = 75 , eColorID__moz_mac_buttonactivetext = 76 , eColorID__moz_mac_chrome_active = 77 , eColorID__moz_mac_chrome_inactive = 78 , eColorID__moz_mac_defaultbuttontext = 79 , eColorID__moz_mac_focusring = 80 , eColorID__moz_mac_menuselect = 81 , eColorID__moz_mac_menushadow = 82 , eColorID__moz_mac_menutextdisable = 83 , eColorID__moz_mac_menutextselect = 84 , eColorID__moz_mac_disabledtoolbartext = 85 , eColorID__moz_mac_secondaryhighlight = 86 , eColorID__moz_mac_vibrancy_light = 87 , eColorID__moz_mac_vibrancy_dark = 88 , eColorID__moz_mac_vibrant_titlebar_light = 89 , eColorID__moz_mac_vibrant_titlebar_dark = 90 , eColorID__moz_mac_menupopup = 91 , eColorID__moz_mac_menuitem = 92 , eColorID__moz_mac_active_menuitem = 93 , eColorID__moz_mac_source_list = 94 , eColorID__moz_mac_source_list_selection = 95 , eColorID__moz_mac_active_source_list_selection = 96 , eColorID__moz_mac_tooltip = 97 , eColorID__moz_win_accentcolor = 98 , eColorID__moz_win_accentcolortext = 99 , eColorID__moz_win_mediatext = 100 , eColorID__moz_win_communicationstext = 101 , eColorID__moz_nativehyperlinktext = 102 , eColorID__moz_comboboxtext = 103 , eColorID__moz_combobox = 104 , eColorID__moz_gtk_info_bar_text = 105 , eColorID_LAST_COLOR = 106 , } pub const LookAndFeel_IntID_eIntID_CaretBlinkTime : root :: mozilla :: LookAndFeel_IntID = 0 ; pub const LookAndFeel_IntID_eIntID_CaretWidth : root :: mozilla :: LookAndFeel_IntID = 1 ; pub const LookAndFeel_IntID_eIntID_ShowCaretDuringSelection : root :: mozilla :: LookAndFeel_IntID = 2 ; pub const LookAndFeel_IntID_eIntID_SelectTextfieldsOnKeyFocus : root :: mozilla :: LookAndFeel_IntID = 3 ; pub const LookAndFeel_IntID_eIntID_SubmenuDelay : root :: mozilla :: LookAndFeel_IntID = 4 ; pub const LookAndFeel_IntID_eIntID_MenusCanOverlapOSBar : root :: mozilla :: LookAndFeel_IntID = 5 ; pub const LookAndFeel_IntID_eIntID_UseOverlayScrollbars : root :: mozilla :: LookAndFeel_IntID = 6 ; pub const LookAndFeel_IntID_eIntID_AllowOverlayScrollbarsOverlap : root :: mozilla :: LookAndFeel_IntID = 7 ; pub const LookAndFeel_IntID_eIntID_ShowHideScrollbars : root :: mozilla :: LookAndFeel_IntID = 8 ; pub const LookAndFeel_IntID_eIntID_SkipNavigatingDisabledMenuItem : root :: mozilla :: LookAndFeel_IntID = 9 ; pub const LookAndFeel_IntID_eIntID_DragThresholdX : root :: mozilla :: LookAndFeel_IntID = 10 ; pub const LookAndFeel_IntID_eIntID_DragThresholdY : root :: mozilla :: LookAndFeel_IntID = 11 ; pub const LookAndFeel_IntID_eIntID_UseAccessibilityTheme : root :: mozilla :: LookAndFeel_IntID = 12 ; pub const LookAndFeel_IntID_eIntID_ScrollArrowStyle : root :: mozilla :: LookAndFeel_IntID = 13 ; pub const LookAndFeel_IntID_eIntID_ScrollSliderStyle : root :: mozilla :: LookAndFeel_IntID = 14 ; pub const LookAndFeel_IntID_eIntID_ScrollButtonLeftMouseButtonAction : root :: mozilla :: LookAndFeel_IntID = 15 ; pub const LookAndFeel_IntID_eIntID_ScrollButtonMiddleMouseButtonAction : root :: mozilla :: LookAndFeel_IntID = 16 ; pub const LookAndFeel_IntID_eIntID_ScrollButtonRightMouseButtonAction : root :: mozilla :: LookAndFeel_IntID = 17 ; pub const LookAndFeel_IntID_eIntID_TreeOpenDelay : root :: mozilla :: LookAndFeel_IntID = 18 ; pub const LookAndFeel_IntID_eIntID_TreeCloseDelay : root :: mozilla :: LookAndFeel_IntID = 19 ; pub const LookAndFeel_IntID_eIntID_TreeLazyScrollDelay : root :: mozilla :: LookAndFeel_IntID = 20 ; pub const LookAndFeel_IntID_eIntID_TreeScrollDelay : root :: mozilla :: LookAndFeel_IntID = 21 ; pub const LookAndFeel_IntID_eIntID_TreeScrollLinesMax : root :: mozilla :: LookAndFeel_IntID = 22 ; pub const LookAndFeel_IntID_eIntID_TabFocusModel : root :: mozilla :: LookAndFeel_IntID = 23 ; pub const LookAndFeel_IntID_eIntID_ChosenMenuItemsShouldBlink : root :: mozilla :: LookAndFeel_IntID = 24 ; pub const LookAndFeel_IntID_eIntID_WindowsAccentColorInTitlebar : root :: mozilla :: LookAndFeel_IntID = 25 ; pub const LookAndFeel_IntID_eIntID_WindowsDefaultTheme : root :: mozilla :: LookAndFeel_IntID = 26 ; pub const LookAndFeel_IntID_eIntID_DWMCompositor : root :: mozilla :: LookAndFeel_IntID = 27 ; pub const LookAndFeel_IntID_eIntID_WindowsClassic : root :: mozilla :: LookAndFeel_IntID = 28 ; pub const LookAndFeel_IntID_eIntID_WindowsGlass : root :: mozilla :: LookAndFeel_IntID = 29 ; pub const LookAndFeel_IntID_eIntID_TouchEnabled : root :: mozilla :: LookAndFeel_IntID = 30 ; pub const LookAndFeel_IntID_eIntID_MacGraphiteTheme : root :: mozilla :: LookAndFeel_IntID = 31 ; pub const LookAndFeel_IntID_eIntID_MacYosemiteTheme : root :: mozilla :: LookAndFeel_IntID = 32 ; pub const LookAndFeel_IntID_eIntID_AlertNotificationOrigin : root :: mozilla :: LookAndFeel_IntID = 33 ; pub const LookAndFeel_IntID_eIntID_ScrollToClick : root :: mozilla :: LookAndFeel_IntID = 34 ; pub const LookAndFeel_IntID_eIntID_IMERawInputUnderlineStyle : root :: mozilla :: LookAndFeel_IntID = 35 ; pub const LookAndFeel_IntID_eIntID_IMESelectedRawTextUnderlineStyle : root :: mozilla :: LookAndFeel_IntID = 36 ; pub const LookAndFeel_IntID_eIntID_IMEConvertedTextUnderlineStyle : root :: mozilla :: LookAndFeel_IntID = 37 ; pub const LookAndFeel_IntID_eIntID_IMESelectedConvertedTextUnderline : root :: mozilla :: LookAndFeel_IntID = 38 ; pub const LookAndFeel_IntID_eIntID_SpellCheckerUnderlineStyle : root :: mozilla :: LookAndFeel_IntID = 39 ; pub const LookAndFeel_IntID_eIntID_MenuBarDrag : root :: mozilla :: LookAndFeel_IntID = 40 ; pub const LookAndFeel_IntID_eIntID_WindowsThemeIdentifier : root :: mozilla :: LookAndFeel_IntID = 41 ; pub const LookAndFeel_IntID_eIntID_OperatingSystemVersionIdentifier : root :: mozilla :: LookAndFeel_IntID = 42 ; pub const LookAndFeel_IntID_eIntID_ScrollbarButtonAutoRepeatBehavior : root :: mozilla :: LookAndFeel_IntID = 43 ; pub const LookAndFeel_IntID_eIntID_TooltipDelay : root :: mozilla :: LookAndFeel_IntID = 44 ; pub const LookAndFeel_IntID_eIntID_SwipeAnimationEnabled : root :: mozilla :: LookAndFeel_IntID = 45 ; pub const LookAndFeel_IntID_eIntID_ScrollbarDisplayOnMouseMove : root :: mozilla :: LookAndFeel_IntID = 46 ; pub const LookAndFeel_IntID_eIntID_ScrollbarFadeBeginDelay : root :: mozilla :: LookAndFeel_IntID = 47 ; pub const LookAndFeel_IntID_eIntID_ScrollbarFadeDuration : root :: mozilla :: LookAndFeel_IntID = 48 ; pub const LookAndFeel_IntID_eIntID_ContextMenuOffsetVertical : root :: mozilla :: LookAndFeel_IntID = 49 ; pub const LookAndFeel_IntID_eIntID_ContextMenuOffsetHorizontal : root :: mozilla :: LookAndFeel_IntID = 50 ; pub const LookAndFeel_IntID_eIntID_GTKCSDAvailable : root :: mozilla :: LookAndFeel_IntID = 51 ; pub const LookAndFeel_IntID_eIntID_GTKCSDMinimizeButton : root :: mozilla :: LookAndFeel_IntID = 52 ; pub const LookAndFeel_IntID_eIntID_GTKCSDMaximizeButton : root :: mozilla :: LookAndFeel_IntID = 53 ; pub const LookAndFeel_IntID_eIntID_GTKCSDCloseButton : root :: mozilla :: LookAndFeel_IntID = 54 ; pub type LookAndFeel_IntID = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_Generic : root :: mozilla :: LookAndFeel_WindowsTheme = 0 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_Classic : root :: mozilla :: LookAndFeel_WindowsTheme = 1 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_Aero : root :: mozilla :: LookAndFeel_WindowsTheme = 2 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_LunaBlue : root :: mozilla :: LookAndFeel_WindowsTheme = 3 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_LunaOlive : root :: mozilla :: LookAndFeel_WindowsTheme = 4 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_LunaSilver : root :: mozilla :: LookAndFeel_WindowsTheme = 5 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_Royale : root :: mozilla :: LookAndFeel_WindowsTheme = 6 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_Zune : root :: mozilla :: LookAndFeel_WindowsTheme = 7 ; pub const LookAndFeel_WindowsTheme_eWindowsTheme_AeroLite : root :: mozilla :: LookAndFeel_WindowsTheme = 8 ; pub type LookAndFeel_WindowsTheme = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Windows7 : root :: mozilla :: LookAndFeel_OperatingSystemVersion = 2 ; pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Windows8 : root :: mozilla :: LookAndFeel_OperatingSystemVersion = 3 ; pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Windows10 : root :: mozilla :: LookAndFeel_OperatingSystemVersion = 4 ; pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Unknown : root :: mozilla :: LookAndFeel_OperatingSystemVersion = 5 ; pub type LookAndFeel_OperatingSystemVersion = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_eScrollArrow_None : root :: mozilla :: LookAndFeel__bindgen_ty_1 = 0 ; pub const LookAndFeel_eScrollArrow_StartBackward : root :: mozilla :: LookAndFeel__bindgen_ty_1 = 4096 ; pub const LookAndFeel_eScrollArrow_StartForward : root :: mozilla :: LookAndFeel__bindgen_ty_1 = 256 ; pub const LookAndFeel_eScrollArrow_EndBackward : root :: mozilla :: LookAndFeel__bindgen_ty_1 = 16 ; pub const LookAndFeel_eScrollArrow_EndForward : root :: mozilla :: LookAndFeel__bindgen_ty_1 = 1 ; pub type LookAndFeel__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_eScrollArrowStyle_Single : root :: mozilla :: LookAndFeel__bindgen_ty_2 = 4097 ; pub const LookAndFeel_eScrollArrowStyle_BothAtBottom : root :: mozilla :: LookAndFeel__bindgen_ty_2 = 17 ; pub const LookAndFeel_eScrollArrowStyle_BothAtEachEnd : root :: mozilla :: LookAndFeel__bindgen_ty_2 = 4369 ; pub const LookAndFeel_eScrollArrowStyle_BothAtTop : root :: mozilla :: LookAndFeel__bindgen_ty_2 = 4352 ; pub type LookAndFeel__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_eScrollThumbStyle_Normal : root :: mozilla :: LookAndFeel__bindgen_ty_3 = 0 ; pub const LookAndFeel_eScrollThumbStyle_Proportional : root :: mozilla :: LookAndFeel__bindgen_ty_3 = 1 ; pub type LookAndFeel__bindgen_ty_3 = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_FloatID_eFloatID_IMEUnderlineRelativeSize : root :: mozilla :: LookAndFeel_FloatID = 0 ; pub const LookAndFeel_FloatID_eFloatID_SpellCheckerUnderlineRelativeSize : root :: mozilla :: LookAndFeel_FloatID = 1 ; pub const LookAndFeel_FloatID_eFloatID_CaretAspectRatio : root :: mozilla :: LookAndFeel_FloatID = 2 ; pub type LookAndFeel_FloatID = :: std :: os :: raw :: c_uint ; pub const LookAndFeel_FontID_FontID_MINIMUM : root :: mozilla :: LookAndFeel_FontID = LookAndFeel_FontID :: eFont_Caption ; pub const LookAndFeel_FontID_FontID_MAXIMUM : root :: mozilla :: LookAndFeel_FontID = LookAndFeel_FontID :: eFont_Widget ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum LookAndFeel_FontID { eFont_Caption = 1 , eFont_Icon = 2 , eFont_Menu = 3 , eFont_MessageBox = 4 , eFont_SmallCaption = 5 , eFont_StatusBar = 6 , eFont_Window = 7 , eFont_Document = 8 , eFont_Workspace = 9 , eFont_Desktop = 10 , eFont_Info = 11 , eFont_Dialog = 12 , eFont_Button = 13 , eFont_PullDownMenu = 14 , eFont_List = 15 , eFont_Field = 16 , eFont_Tooltips = 17 , eFont_Widget = 18 , } # [ test ] fn bindgen_test_layout_LookAndFeel ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LookAndFeel > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( LookAndFeel ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LookAndFeel > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( LookAndFeel ) ) ) ; } impl Clone for LookAndFeel { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct StylePrefs { pub _address : u8 , } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs19sFontDisplayEnabledE" ]
- pub static mut StylePrefs_sFontDisplayEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs19sOpentypeSVGEnabledE" ]
- pub static mut StylePrefs_sOpentypeSVGEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs29sWebkitPrefixedAliasesEnabledE" ]
- pub static mut StylePrefs_sWebkitPrefixedAliasesEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs30sWebkitDevicePixelRatioEnabledE" ]
- pub static mut StylePrefs_sWebkitDevicePixelRatioEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs20sMozGradientsEnabledE" ]
- pub static mut StylePrefs_sMozGradientsEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs22sControlCharVisibilityE" ]
- pub static mut StylePrefs_sControlCharVisibility : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs28sFramesTimingFunctionEnabledE" ]
- pub static mut StylePrefs_sFramesTimingFunctionEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs31sUnprefixedFullscreenApiEnabledE" ]
- pub static mut StylePrefs_sUnprefixedFullscreenApiEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs20sVisitedLinksEnabledE" ]
- pub static mut StylePrefs_sVisitedLinksEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs28sMozDocumentEnabledInContentE" ]
- pub static mut StylePrefs_sMozDocumentEnabledInContent : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs32sGridTemplateSubgridValueEnabledE" ]
- pub static mut StylePrefs_sGridTemplateSubgridValueEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla10StylePrefs22sEmulateMozBoxWithFlexE" ]
- pub static mut StylePrefs_sEmulateMozBoxWithFlex : bool ;
-} # [ test ] fn bindgen_test_layout_StylePrefs ( ) { assert_eq ! ( :: std :: mem :: size_of :: < StylePrefs > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( StylePrefs ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < StylePrefs > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( StylePrefs ) ) ) ; } impl Clone for StylePrefs { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct NonOwningAnimationTarget { pub mElement : * mut root :: mozilla :: dom :: Element , pub mPseudoType : root :: mozilla :: CSSPseudoElementType , } # [ test ] fn bindgen_test_layout_NonOwningAnimationTarget ( ) { assert_eq ! ( :: std :: mem :: size_of :: < NonOwningAnimationTarget > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( NonOwningAnimationTarget ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < NonOwningAnimationTarget > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( NonOwningAnimationTarget ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NonOwningAnimationTarget ) ) . mElement as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( NonOwningAnimationTarget ) , "::" , stringify ! ( mElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const NonOwningAnimationTarget ) ) . mPseudoType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( NonOwningAnimationTarget ) , "::" , stringify ! ( mPseudoType ) ) ) ; } impl Clone for NonOwningAnimationTarget { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct PseudoElementHashEntry { pub _base : root :: PLDHashEntryHdr , pub mElement : root :: RefPtr < root :: mozilla :: dom :: Element > , pub mPseudoType : root :: mozilla :: CSSPseudoElementType , } pub type PseudoElementHashEntry_KeyType = root :: mozilla :: NonOwningAnimationTarget ; pub type PseudoElementHashEntry_KeyTypePointer = * const root :: mozilla :: NonOwningAnimationTarget ; pub const PseudoElementHashEntry_ALLOW_MEMMOVE : root :: mozilla :: PseudoElementHashEntry__bindgen_ty_1 = 1 ; pub type PseudoElementHashEntry__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_PseudoElementHashEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PseudoElementHashEntry > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( PseudoElementHashEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PseudoElementHashEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PseudoElementHashEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PseudoElementHashEntry ) ) . mElement as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PseudoElementHashEntry ) , "::" , stringify ! ( mElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PseudoElementHashEntry ) ) . mPseudoType as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PseudoElementHashEntry ) , "::" , stringify ! ( mPseudoType ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct EffectCompositor { pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mPresContext : * mut root :: nsPresContext , pub mElementsToRestyle : [ u64 ; 8usize ] , pub mIsInPreTraverse : bool , pub mRuleProcessors : [ u64 ; 2usize ] , } pub type EffectCompositor_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct EffectCompositor_cycleCollection { pub _base : root :: nsCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_EffectCompositor_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EffectCompositor_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( EffectCompositor_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EffectCompositor_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EffectCompositor_cycleCollection ) ) ) ; } impl Clone for EffectCompositor_cycleCollection { fn clone ( & self ) -> Self { * self } } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum EffectCompositor_CascadeLevel { Animations = 0 , Transitions = 1 , } pub const EffectCompositor_RestyleType_Throttled : root :: mozilla :: EffectCompositor_RestyleType = 0 ; pub const EffectCompositor_RestyleType_Standard : root :: mozilla :: EffectCompositor_RestyleType = 1 ; pub const EffectCompositor_RestyleType_Layer : root :: mozilla :: EffectCompositor_RestyleType = 2 ; pub type EffectCompositor_RestyleType = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct EffectCompositor_AnimationStyleRuleProcessor { pub _base : root :: nsIStyleRuleProcessor , pub mRefCnt : root :: nsAutoRefCnt , pub mCompositor : * mut root :: mozilla :: EffectCompositor , pub mCascadeLevel : root :: mozilla :: EffectCompositor_CascadeLevel , } pub type EffectCompositor_AnimationStyleRuleProcessor_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_EffectCompositor_AnimationStyleRuleProcessor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EffectCompositor_AnimationStyleRuleProcessor > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( EffectCompositor_AnimationStyleRuleProcessor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EffectCompositor_AnimationStyleRuleProcessor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EffectCompositor_AnimationStyleRuleProcessor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor_AnimationStyleRuleProcessor ) ) . mRefCnt as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor_AnimationStyleRuleProcessor ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor_AnimationStyleRuleProcessor ) ) . mCompositor as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor_AnimationStyleRuleProcessor ) , "::" , stringify ! ( mCompositor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor_AnimationStyleRuleProcessor ) ) . mCascadeLevel as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor_AnimationStyleRuleProcessor ) , "::" , stringify ! ( mCascadeLevel ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla16EffectCompositor21_cycleCollectorGlobalE" ]
- pub static mut EffectCompositor__cycleCollectorGlobal : root :: mozilla :: EffectCompositor_cycleCollection ;
-} pub const EffectCompositor_kCascadeLevelCount : usize = 2 ; # [ test ] fn bindgen_test_layout_EffectCompositor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EffectCompositor > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( EffectCompositor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EffectCompositor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EffectCompositor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor ) ) . mPresContext as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor ) , "::" , stringify ! ( mPresContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor ) ) . mElementsToRestyle as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor ) , "::" , stringify ! ( mElementsToRestyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor ) ) . mIsInPreTraverse as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor ) , "::" , stringify ! ( mIsInPreTraverse ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EffectCompositor ) ) . mRuleProcessors as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( EffectCompositor ) , "::" , stringify ! ( mRuleProcessors ) ) ) ; } pub type CSSPseudoClassTypeBase = u8 ; # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum CSSPseudoClassType { empty = 0 , mozOnlyWhitespace = 1 , lang = 2 , root = 3 , any = 4 , firstChild = 5 , firstNode = 6 , lastChild = 7 , lastNode = 8 , onlyChild = 9 , firstOfType = 10 , lastOfType = 11 , onlyOfType = 12 , nthChild = 13 , nthLastChild = 14 , nthOfType = 15 , nthLastOfType = 16 , mozIsHTML = 17 , unresolved = 18 , mozNativeAnonymous = 19 , mozUseShadowTreeRoot = 20 , mozLocaleDir = 21 , mozLWTheme = 22 , mozLWThemeBrightText = 23 , mozLWThemeDarkText = 24 , mozWindowInactive = 25 , mozTableBorderNonzero = 26 , mozBrowserFrame = 27 , scope = 28 , negation = 29 , dir = 30 , link = 31 , mozAnyLink = 32 , anyLink = 33 , visited = 34 , active = 35 , checked = 36 , disabled = 37 , enabled = 38 , focus = 39 , focusWithin = 40 , hover = 41 , mozDragOver = 42 , target = 43 , indeterminate = 44 , mozDevtoolsHighlighted = 45 , mozStyleeditorTransitioning = 46 , fullscreen = 47 , mozFullScreen = 48 , mozFocusRing = 49 , mozBroken = 50 , mozLoading = 51 , mozUserDisabled = 52 , mozSuppressed = 53 , mozHandlerClickToPlay = 54 , mozHandlerVulnerableUpdatable = 55 , mozHandlerVulnerableNoUpdate = 56 , mozHandlerDisabled = 57 , mozHandlerBlocked = 58 , mozHandlerCrashed = 59 , mozMathIncrementScriptLevel = 60 , mozHasDirAttr = 61 , mozDirAttrLTR = 62 , mozDirAttrRTL = 63 , mozDirAttrLikeAuto = 64 , mozAutofill = 65 , mozAutofillPreview = 66 , required = 67 , optional = 68 , valid = 69 , invalid = 70 , inRange = 71 , outOfRange = 72 , defaultPseudo = 73 , placeholderShown = 74 , mozReadOnly = 75 , mozReadWrite = 76 , mozSubmitInvalid = 77 , mozUIInvalid = 78 , mozUIValid = 79 , mozMeterOptimum = 80 , mozMeterSubOptimum = 81 , mozMeterSubSubOptimum = 82 , mozPlaceholder = 83 , Count = 84 , NotPseudo = 85 , MAX = 86 , } # [ repr ( C ) ] pub struct GeckoFont { pub gecko : root :: nsStyleFont , } # [ test ] fn bindgen_test_layout_GeckoFont ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoFont > ( ) , 136usize , concat ! ( "Size of: " , stringify ! ( GeckoFont ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoFont > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoFont ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoFont ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoColor { pub gecko : root :: nsStyleColor , } # [ test ] fn bindgen_test_layout_GeckoColor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoColor > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( GeckoColor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoColor > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( GeckoColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoColor ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoColor ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] pub struct GeckoList { pub gecko : root :: nsStyleList , } # [ test ] fn bindgen_test_layout_GeckoList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoList > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( GeckoList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoList ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoList ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] pub struct GeckoText { pub gecko : root :: nsStyleText , } # [ test ] fn bindgen_test_layout_GeckoText ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoText > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( GeckoText ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoText > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoText ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoText ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoText ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoVisibility { pub gecko : root :: nsStyleVisibility , } # [ test ] fn bindgen_test_layout_GeckoVisibility ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoVisibility > ( ) , 7usize , concat ! ( "Size of: " , stringify ! ( GeckoVisibility ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoVisibility > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( GeckoVisibility ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoVisibility ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoVisibility ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoUserInterface { pub gecko : root :: nsStyleUserInterface , } # [ test ] fn bindgen_test_layout_GeckoUserInterface ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoUserInterface > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( GeckoUserInterface ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoUserInterface > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoUserInterface ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoUserInterface ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoUserInterface ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoTableBorder { pub gecko : root :: nsStyleTableBorder , } # [ test ] fn bindgen_test_layout_GeckoTableBorder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoTableBorder > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( GeckoTableBorder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoTableBorder > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( GeckoTableBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoTableBorder ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoTableBorder ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoSVG { pub gecko : root :: nsStyleSVG , } # [ test ] fn bindgen_test_layout_GeckoSVG ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoSVG > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( GeckoSVG ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoSVG > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoSVG ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoSVG ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoSVG ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoBackground { pub gecko : root :: nsStyleBackground , } # [ test ] fn bindgen_test_layout_GeckoBackground ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoBackground > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( GeckoBackground ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoBackground > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoBackground ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoBackground ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoBackground ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] pub struct GeckoPosition { pub gecko : root :: nsStylePosition , } # [ test ] fn bindgen_test_layout_GeckoPosition ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoPosition > ( ) , 440usize , concat ! ( "Size of: " , stringify ! ( GeckoPosition ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoPosition > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoPosition ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoPosition ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] pub struct GeckoTextReset { pub gecko : root :: nsStyleTextReset , } # [ test ] fn bindgen_test_layout_GeckoTextReset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoTextReset > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( GeckoTextReset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoTextReset > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoTextReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoTextReset ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoTextReset ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoDisplay { pub gecko : root :: nsStyleDisplay , } # [ test ] fn bindgen_test_layout_GeckoDisplay ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoDisplay > ( ) , 424usize , concat ! ( "Size of: " , stringify ! ( GeckoDisplay ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoDisplay > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoDisplay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoDisplay ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoDisplay ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] pub struct GeckoContent { pub gecko : root :: nsStyleContent , } # [ test ] fn bindgen_test_layout_GeckoContent ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoContent > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( GeckoContent ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoContent > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoContent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoContent ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoContent ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoUIReset { pub gecko : root :: nsStyleUIReset , } # [ test ] fn bindgen_test_layout_GeckoUIReset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoUIReset > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( GeckoUIReset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoUIReset > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoUIReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoUIReset ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoUIReset ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoTable { pub gecko : root :: nsStyleTable , } # [ test ] fn bindgen_test_layout_GeckoTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoTable > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( GeckoTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoTable > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( GeckoTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoTable ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoTable ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoMargin { pub gecko : root :: nsStyleMargin , } # [ test ] fn bindgen_test_layout_GeckoMargin ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoMargin > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( GeckoMargin ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoMargin > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoMargin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoMargin ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoMargin ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoPadding { pub gecko : root :: nsStylePadding , } # [ test ] fn bindgen_test_layout_GeckoPadding ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoPadding > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( GeckoPadding ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoPadding > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoPadding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoPadding ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoPadding ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoBorder { pub gecko : root :: nsStyleBorder , } # [ test ] fn bindgen_test_layout_GeckoBorder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoBorder > ( ) , 312usize , concat ! ( "Size of: " , stringify ! ( GeckoBorder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoBorder > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoBorder ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoBorder ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoOutline { pub gecko : root :: nsStyleOutline , } # [ test ] fn bindgen_test_layout_GeckoOutline ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoOutline > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( GeckoOutline ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoOutline > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoOutline ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoOutline ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoOutline ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoXUL { pub gecko : root :: nsStyleXUL , } # [ test ] fn bindgen_test_layout_GeckoXUL ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoXUL > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( GeckoXUL ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoXUL > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( GeckoXUL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoXUL ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoXUL ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoSVGReset { pub gecko : root :: nsStyleSVGReset , } # [ test ] fn bindgen_test_layout_GeckoSVGReset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoSVGReset > ( ) , 200usize , concat ! ( "Size of: " , stringify ! ( GeckoSVGReset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoSVGReset > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoSVGReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoSVGReset ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoSVGReset ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoColumn { pub gecko : root :: nsStyleColumn , } # [ test ] fn bindgen_test_layout_GeckoColumn ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoColumn > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( GeckoColumn ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoColumn > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoColumn ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoColumn ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoColumn ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GeckoEffects { pub gecko : root :: nsStyleEffects , } # [ test ] fn bindgen_test_layout_GeckoEffects ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoEffects > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( GeckoEffects ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoEffects > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GeckoEffects ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoEffects ) ) . gecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoEffects ) , "::" , stringify ! ( gecko ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ServoMediaList { pub _base : root :: mozilla :: dom :: MediaList , pub mRawList : root :: RefPtr < root :: RawServoMediaList > , } # [ test ] fn bindgen_test_layout_ServoMediaList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoMediaList > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ServoMediaList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoMediaList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoMediaList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoMediaList ) ) . mRawList as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( ServoMediaList ) , "::" , stringify ! ( mRawList ) ) ) ; }
- /// A PostTraversalTask is a task to be performed immediately after a Servo
+ /// etc...
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ServoElementSnapshot {
+ pub mAttrs: root::nsTArray<root::mozilla::ServoAttrSnapshot>,
+ pub mClass: root::nsAttrValue,
+ pub mState: root::mozilla::ServoElementSnapshot_ServoStateType,
+ pub mContains: root::mozilla::ServoElementSnapshot_Flags,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 1usize], u8>,
+ pub __bindgen_padding_0: [u16; 3usize],
+ }
+ pub type ServoElementSnapshot_BorrowedAttrInfo = root::mozilla::dom::BorrowedAttrInfo;
+ pub type ServoElementSnapshot_Element = root::mozilla::dom::Element;
+ pub type ServoElementSnapshot_ServoStateType = root::mozilla::EventStates_ServoType;
+ pub use self :: super :: super :: root :: mozilla :: ServoElementSnapshotFlags as ServoElementSnapshot_Flags;
+ #[test]
+ fn bindgen_test_layout_ServoElementSnapshot() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoElementSnapshot>(),
+ 32usize,
+ concat!("Size of: ", stringify!(ServoElementSnapshot))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoElementSnapshot>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoElementSnapshot))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoElementSnapshot>())).mAttrs as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoElementSnapshot),
+ "::",
+ stringify!(mAttrs)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoElementSnapshot>())).mClass as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoElementSnapshot),
+ "::",
+ stringify!(mClass)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoElementSnapshot>())).mState as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoElementSnapshot),
+ "::",
+ stringify!(mState)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoElementSnapshot>())).mContains as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoElementSnapshot),
+ "::",
+ stringify!(mContains)
+ )
+ );
+ }
+ impl ServoElementSnapshot {
+ #[inline]
+ pub fn mIsHTMLElementInHTMLDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsHTMLElementInHTMLDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsInChromeDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsInChromeDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mSupportsLangAttr(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mSupportsLangAttr(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(2usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsTableBorderNonzero(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsTableBorderNonzero(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(3usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsMozBrowserFrame(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsMozBrowserFrame(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(4usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mClassAttributeChanged(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mClassAttributeChanged(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(5usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIdAttributeChanged(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIdAttributeChanged(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(6usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mOtherAttributeChanged(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mOtherAttributeChanged(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(7usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mIsHTMLElementInHTMLDocument: bool,
+ mIsInChromeDocument: bool,
+ mSupportsLangAttr: bool,
+ mIsTableBorderNonzero: bool,
+ mIsMozBrowserFrame: bool,
+ mClassAttributeChanged: bool,
+ mIdAttributeChanged: bool,
+ mOtherAttributeChanged: bool,
+ ) -> root::__BindgenBitfieldUnit<[u8; 1usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 1usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mIsHTMLElementInHTMLDocument: u8 =
+ unsafe { ::std::mem::transmute(mIsHTMLElementInHTMLDocument) };
+ mIsHTMLElementInHTMLDocument as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mIsInChromeDocument: u8 =
+ unsafe { ::std::mem::transmute(mIsInChromeDocument) };
+ mIsInChromeDocument as u64
+ });
+ __bindgen_bitfield_unit.set(2usize, 1u8, {
+ let mSupportsLangAttr: u8 = unsafe { ::std::mem::transmute(mSupportsLangAttr) };
+ mSupportsLangAttr as u64
+ });
+ __bindgen_bitfield_unit.set(3usize, 1u8, {
+ let mIsTableBorderNonzero: u8 =
+ unsafe { ::std::mem::transmute(mIsTableBorderNonzero) };
+ mIsTableBorderNonzero as u64
+ });
+ __bindgen_bitfield_unit.set(4usize, 1u8, {
+ let mIsMozBrowserFrame: u8 =
+ unsafe { ::std::mem::transmute(mIsMozBrowserFrame) };
+ mIsMozBrowserFrame as u64
+ });
+ __bindgen_bitfield_unit.set(5usize, 1u8, {
+ let mClassAttributeChanged: u8 =
+ unsafe { ::std::mem::transmute(mClassAttributeChanged) };
+ mClassAttributeChanged as u64
+ });
+ __bindgen_bitfield_unit.set(6usize, 1u8, {
+ let mIdAttributeChanged: u8 =
+ unsafe { ::std::mem::transmute(mIdAttributeChanged) };
+ mIdAttributeChanged as u64
+ });
+ __bindgen_bitfield_unit.set(7usize, 1u8, {
+ let mOtherAttributeChanged: u8 =
+ unsafe { ::std::mem::transmute(mOtherAttributeChanged) };
+ mOtherAttributeChanged as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ServoElementSnapshotTable {
+ pub _base: [u64; 4usize],
+ }
+ #[test]
+ fn bindgen_test_layout_ServoElementSnapshotTable() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoElementSnapshotTable>(),
+ 32usize,
+ concat!("Size of: ", stringify!(ServoElementSnapshotTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoElementSnapshotTable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoElementSnapshotTable))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct LookAndFeel {
+ pub _address: u8,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum LookAndFeel_ColorID {
+ eColorID_WindowBackground = 0,
+ eColorID_WindowForeground = 1,
+ eColorID_WidgetBackground = 2,
+ eColorID_WidgetForeground = 3,
+ eColorID_WidgetSelectBackground = 4,
+ eColorID_WidgetSelectForeground = 5,
+ eColorID_Widget3DHighlight = 6,
+ eColorID_Widget3DShadow = 7,
+ eColorID_TextBackground = 8,
+ eColorID_TextForeground = 9,
+ eColorID_TextSelectBackground = 10,
+ eColorID_TextSelectForeground = 11,
+ eColorID_TextSelectForegroundCustom = 12,
+ eColorID_TextSelectBackgroundDisabled = 13,
+ eColorID_TextSelectBackgroundAttention = 14,
+ eColorID_TextHighlightBackground = 15,
+ eColorID_TextHighlightForeground = 16,
+ eColorID_IMERawInputBackground = 17,
+ eColorID_IMERawInputForeground = 18,
+ eColorID_IMERawInputUnderline = 19,
+ eColorID_IMESelectedRawTextBackground = 20,
+ eColorID_IMESelectedRawTextForeground = 21,
+ eColorID_IMESelectedRawTextUnderline = 22,
+ eColorID_IMEConvertedTextBackground = 23,
+ eColorID_IMEConvertedTextForeground = 24,
+ eColorID_IMEConvertedTextUnderline = 25,
+ eColorID_IMESelectedConvertedTextBackground = 26,
+ eColorID_IMESelectedConvertedTextForeground = 27,
+ eColorID_IMESelectedConvertedTextUnderline = 28,
+ eColorID_SpellCheckerUnderline = 29,
+ eColorID_activeborder = 30,
+ eColorID_activecaption = 31,
+ eColorID_appworkspace = 32,
+ eColorID_background = 33,
+ eColorID_buttonface = 34,
+ eColorID_buttonhighlight = 35,
+ eColorID_buttonshadow = 36,
+ eColorID_buttontext = 37,
+ eColorID_captiontext = 38,
+ eColorID_graytext = 39,
+ eColorID_highlight = 40,
+ eColorID_highlighttext = 41,
+ eColorID_inactiveborder = 42,
+ eColorID_inactivecaption = 43,
+ eColorID_inactivecaptiontext = 44,
+ eColorID_infobackground = 45,
+ eColorID_infotext = 46,
+ eColorID_menu = 47,
+ eColorID_menutext = 48,
+ eColorID_scrollbar = 49,
+ eColorID_threeddarkshadow = 50,
+ eColorID_threedface = 51,
+ eColorID_threedhighlight = 52,
+ eColorID_threedlightshadow = 53,
+ eColorID_threedshadow = 54,
+ eColorID_window = 55,
+ eColorID_windowframe = 56,
+ eColorID_windowtext = 57,
+ eColorID__moz_buttondefault = 58,
+ eColorID__moz_field = 59,
+ eColorID__moz_fieldtext = 60,
+ eColorID__moz_dialog = 61,
+ eColorID__moz_dialogtext = 62,
+ eColorID__moz_dragtargetzone = 63,
+ eColorID__moz_cellhighlight = 64,
+ eColorID__moz_cellhighlighttext = 65,
+ eColorID__moz_html_cellhighlight = 66,
+ eColorID__moz_html_cellhighlighttext = 67,
+ eColorID__moz_buttonhoverface = 68,
+ eColorID__moz_buttonhovertext = 69,
+ eColorID__moz_menuhover = 70,
+ eColorID__moz_menuhovertext = 71,
+ eColorID__moz_menubartext = 72,
+ eColorID__moz_menubarhovertext = 73,
+ eColorID__moz_eventreerow = 74,
+ eColorID__moz_oddtreerow = 75,
+ eColorID__moz_mac_buttonactivetext = 76,
+ eColorID__moz_mac_chrome_active = 77,
+ eColorID__moz_mac_chrome_inactive = 78,
+ eColorID__moz_mac_defaultbuttontext = 79,
+ eColorID__moz_mac_focusring = 80,
+ eColorID__moz_mac_menuselect = 81,
+ eColorID__moz_mac_menushadow = 82,
+ eColorID__moz_mac_menutextdisable = 83,
+ eColorID__moz_mac_menutextselect = 84,
+ eColorID__moz_mac_disabledtoolbartext = 85,
+ eColorID__moz_mac_secondaryhighlight = 86,
+ eColorID__moz_mac_vibrancy_light = 87,
+ eColorID__moz_mac_vibrancy_dark = 88,
+ eColorID__moz_mac_vibrant_titlebar_light = 89,
+ eColorID__moz_mac_vibrant_titlebar_dark = 90,
+ eColorID__moz_mac_menupopup = 91,
+ eColorID__moz_mac_menuitem = 92,
+ eColorID__moz_mac_active_menuitem = 93,
+ eColorID__moz_mac_source_list = 94,
+ eColorID__moz_mac_source_list_selection = 95,
+ eColorID__moz_mac_active_source_list_selection = 96,
+ eColorID__moz_mac_tooltip = 97,
+ eColorID__moz_win_accentcolor = 98,
+ eColorID__moz_win_accentcolortext = 99,
+ eColorID__moz_win_mediatext = 100,
+ eColorID__moz_win_communicationstext = 101,
+ eColorID__moz_nativehyperlinktext = 102,
+ eColorID__moz_comboboxtext = 103,
+ eColorID__moz_combobox = 104,
+ eColorID__moz_gtk_info_bar_text = 105,
+ eColorID_LAST_COLOR = 106,
+ }
+ pub const LookAndFeel_IntID_eIntID_CaretBlinkTime: root::mozilla::LookAndFeel_IntID = 0;
+ pub const LookAndFeel_IntID_eIntID_CaretWidth: root::mozilla::LookAndFeel_IntID = 1;
+ pub const LookAndFeel_IntID_eIntID_ShowCaretDuringSelection:
+ root::mozilla::LookAndFeel_IntID = 2;
+ pub const LookAndFeel_IntID_eIntID_SelectTextfieldsOnKeyFocus:
+ root::mozilla::LookAndFeel_IntID = 3;
+ pub const LookAndFeel_IntID_eIntID_SubmenuDelay: root::mozilla::LookAndFeel_IntID = 4;
+ pub const LookAndFeel_IntID_eIntID_MenusCanOverlapOSBar: root::mozilla::LookAndFeel_IntID =
+ 5;
+ pub const LookAndFeel_IntID_eIntID_UseOverlayScrollbars: root::mozilla::LookAndFeel_IntID =
+ 6;
+ pub const LookAndFeel_IntID_eIntID_AllowOverlayScrollbarsOverlap:
+ root::mozilla::LookAndFeel_IntID = 7;
+ pub const LookAndFeel_IntID_eIntID_ShowHideScrollbars: root::mozilla::LookAndFeel_IntID = 8;
+ pub const LookAndFeel_IntID_eIntID_SkipNavigatingDisabledMenuItem:
+ root::mozilla::LookAndFeel_IntID = 9;
+ pub const LookAndFeel_IntID_eIntID_DragThresholdX: root::mozilla::LookAndFeel_IntID = 10;
+ pub const LookAndFeel_IntID_eIntID_DragThresholdY: root::mozilla::LookAndFeel_IntID = 11;
+ pub const LookAndFeel_IntID_eIntID_UseAccessibilityTheme: root::mozilla::LookAndFeel_IntID =
+ 12;
+ pub const LookAndFeel_IntID_eIntID_ScrollArrowStyle: root::mozilla::LookAndFeel_IntID = 13;
+ pub const LookAndFeel_IntID_eIntID_ScrollSliderStyle: root::mozilla::LookAndFeel_IntID = 14;
+ pub const LookAndFeel_IntID_eIntID_ScrollButtonLeftMouseButtonAction:
+ root::mozilla::LookAndFeel_IntID = 15;
+ pub const LookAndFeel_IntID_eIntID_ScrollButtonMiddleMouseButtonAction:
+ root::mozilla::LookAndFeel_IntID = 16;
+ pub const LookAndFeel_IntID_eIntID_ScrollButtonRightMouseButtonAction:
+ root::mozilla::LookAndFeel_IntID = 17;
+ pub const LookAndFeel_IntID_eIntID_TreeOpenDelay: root::mozilla::LookAndFeel_IntID = 18;
+ pub const LookAndFeel_IntID_eIntID_TreeCloseDelay: root::mozilla::LookAndFeel_IntID = 19;
+ pub const LookAndFeel_IntID_eIntID_TreeLazyScrollDelay: root::mozilla::LookAndFeel_IntID =
+ 20;
+ pub const LookAndFeel_IntID_eIntID_TreeScrollDelay: root::mozilla::LookAndFeel_IntID = 21;
+ pub const LookAndFeel_IntID_eIntID_TreeScrollLinesMax: root::mozilla::LookAndFeel_IntID =
+ 22;
+ pub const LookAndFeel_IntID_eIntID_TabFocusModel: root::mozilla::LookAndFeel_IntID = 23;
+ pub const LookAndFeel_IntID_eIntID_ChosenMenuItemsShouldBlink:
+ root::mozilla::LookAndFeel_IntID = 24;
+ pub const LookAndFeel_IntID_eIntID_WindowsAccentColorInTitlebar:
+ root::mozilla::LookAndFeel_IntID = 25;
+ pub const LookAndFeel_IntID_eIntID_WindowsDefaultTheme: root::mozilla::LookAndFeel_IntID =
+ 26;
+ pub const LookAndFeel_IntID_eIntID_DWMCompositor: root::mozilla::LookAndFeel_IntID = 27;
+ pub const LookAndFeel_IntID_eIntID_WindowsClassic: root::mozilla::LookAndFeel_IntID = 28;
+ pub const LookAndFeel_IntID_eIntID_WindowsGlass: root::mozilla::LookAndFeel_IntID = 29;
+ pub const LookAndFeel_IntID_eIntID_TouchEnabled: root::mozilla::LookAndFeel_IntID = 30;
+ pub const LookAndFeel_IntID_eIntID_MacGraphiteTheme: root::mozilla::LookAndFeel_IntID = 31;
+ pub const LookAndFeel_IntID_eIntID_MacYosemiteTheme: root::mozilla::LookAndFeel_IntID = 32;
+ pub const LookAndFeel_IntID_eIntID_AlertNotificationOrigin:
+ root::mozilla::LookAndFeel_IntID = 33;
+ pub const LookAndFeel_IntID_eIntID_ScrollToClick: root::mozilla::LookAndFeel_IntID = 34;
+ pub const LookAndFeel_IntID_eIntID_IMERawInputUnderlineStyle:
+ root::mozilla::LookAndFeel_IntID = 35;
+ pub const LookAndFeel_IntID_eIntID_IMESelectedRawTextUnderlineStyle:
+ root::mozilla::LookAndFeel_IntID = 36;
+ pub const LookAndFeel_IntID_eIntID_IMEConvertedTextUnderlineStyle:
+ root::mozilla::LookAndFeel_IntID = 37;
+ pub const LookAndFeel_IntID_eIntID_IMESelectedConvertedTextUnderline:
+ root::mozilla::LookAndFeel_IntID = 38;
+ pub const LookAndFeel_IntID_eIntID_SpellCheckerUnderlineStyle:
+ root::mozilla::LookAndFeel_IntID = 39;
+ pub const LookAndFeel_IntID_eIntID_MenuBarDrag: root::mozilla::LookAndFeel_IntID = 40;
+ pub const LookAndFeel_IntID_eIntID_WindowsThemeIdentifier:
+ root::mozilla::LookAndFeel_IntID = 41;
+ pub const LookAndFeel_IntID_eIntID_OperatingSystemVersionIdentifier:
+ root::mozilla::LookAndFeel_IntID = 42;
+ pub const LookAndFeel_IntID_eIntID_ScrollbarButtonAutoRepeatBehavior:
+ root::mozilla::LookAndFeel_IntID = 43;
+ pub const LookAndFeel_IntID_eIntID_TooltipDelay: root::mozilla::LookAndFeel_IntID = 44;
+ pub const LookAndFeel_IntID_eIntID_SwipeAnimationEnabled: root::mozilla::LookAndFeel_IntID =
+ 45;
+ pub const LookAndFeel_IntID_eIntID_ScrollbarDisplayOnMouseMove:
+ root::mozilla::LookAndFeel_IntID = 46;
+ pub const LookAndFeel_IntID_eIntID_ScrollbarFadeBeginDelay:
+ root::mozilla::LookAndFeel_IntID = 47;
+ pub const LookAndFeel_IntID_eIntID_ScrollbarFadeDuration: root::mozilla::LookAndFeel_IntID =
+ 48;
+ pub const LookAndFeel_IntID_eIntID_ContextMenuOffsetVertical:
+ root::mozilla::LookAndFeel_IntID = 49;
+ pub const LookAndFeel_IntID_eIntID_ContextMenuOffsetHorizontal:
+ root::mozilla::LookAndFeel_IntID = 50;
+ pub const LookAndFeel_IntID_eIntID_GTKCSDAvailable: root::mozilla::LookAndFeel_IntID = 51;
+ pub const LookAndFeel_IntID_eIntID_GTKCSDMinimizeButton: root::mozilla::LookAndFeel_IntID =
+ 52;
+ pub const LookAndFeel_IntID_eIntID_GTKCSDMaximizeButton: root::mozilla::LookAndFeel_IntID =
+ 53;
+ pub const LookAndFeel_IntID_eIntID_GTKCSDCloseButton: root::mozilla::LookAndFeel_IntID = 54;
+ pub type LookAndFeel_IntID = u32;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_Generic:
+ root::mozilla::LookAndFeel_WindowsTheme = 0;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_Classic:
+ root::mozilla::LookAndFeel_WindowsTheme = 1;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_Aero:
+ root::mozilla::LookAndFeel_WindowsTheme = 2;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_LunaBlue:
+ root::mozilla::LookAndFeel_WindowsTheme = 3;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_LunaOlive:
+ root::mozilla::LookAndFeel_WindowsTheme = 4;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_LunaSilver:
+ root::mozilla::LookAndFeel_WindowsTheme = 5;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_Royale:
+ root::mozilla::LookAndFeel_WindowsTheme = 6;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_Zune:
+ root::mozilla::LookAndFeel_WindowsTheme = 7;
+ pub const LookAndFeel_WindowsTheme_eWindowsTheme_AeroLite:
+ root::mozilla::LookAndFeel_WindowsTheme = 8;
+ pub type LookAndFeel_WindowsTheme = u32;
+ pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Windows7:
+ root::mozilla::LookAndFeel_OperatingSystemVersion = 2;
+ pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Windows8:
+ root::mozilla::LookAndFeel_OperatingSystemVersion = 3;
+ pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Windows10:
+ root::mozilla::LookAndFeel_OperatingSystemVersion = 4;
+ pub const LookAndFeel_OperatingSystemVersion_eOperatingSystemVersion_Unknown:
+ root::mozilla::LookAndFeel_OperatingSystemVersion = 5;
+ pub type LookAndFeel_OperatingSystemVersion = u32;
+ pub const LookAndFeel_eScrollArrow_None: root::mozilla::LookAndFeel__bindgen_ty_1 = 0;
+ pub const LookAndFeel_eScrollArrow_StartBackward: root::mozilla::LookAndFeel__bindgen_ty_1 =
+ 4096;
+ pub const LookAndFeel_eScrollArrow_StartForward: root::mozilla::LookAndFeel__bindgen_ty_1 =
+ 256;
+ pub const LookAndFeel_eScrollArrow_EndBackward: root::mozilla::LookAndFeel__bindgen_ty_1 =
+ 16;
+ pub const LookAndFeel_eScrollArrow_EndForward: root::mozilla::LookAndFeel__bindgen_ty_1 = 1;
+ pub type LookAndFeel__bindgen_ty_1 = u32;
+ pub const LookAndFeel_eScrollArrowStyle_Single: root::mozilla::LookAndFeel__bindgen_ty_2 =
+ 4097;
+ pub const LookAndFeel_eScrollArrowStyle_BothAtBottom:
+ root::mozilla::LookAndFeel__bindgen_ty_2 = 17;
+ pub const LookAndFeel_eScrollArrowStyle_BothAtEachEnd:
+ root::mozilla::LookAndFeel__bindgen_ty_2 = 4369;
+ pub const LookAndFeel_eScrollArrowStyle_BothAtTop:
+ root::mozilla::LookAndFeel__bindgen_ty_2 = 4352;
+ pub type LookAndFeel__bindgen_ty_2 = u32;
+ pub const LookAndFeel_eScrollThumbStyle_Normal: root::mozilla::LookAndFeel__bindgen_ty_3 =
+ 0;
+ pub const LookAndFeel_eScrollThumbStyle_Proportional:
+ root::mozilla::LookAndFeel__bindgen_ty_3 = 1;
+ pub type LookAndFeel__bindgen_ty_3 = u32;
+ pub const LookAndFeel_FloatID_eFloatID_IMEUnderlineRelativeSize:
+ root::mozilla::LookAndFeel_FloatID = 0;
+ pub const LookAndFeel_FloatID_eFloatID_SpellCheckerUnderlineRelativeSize:
+ root::mozilla::LookAndFeel_FloatID = 1;
+ pub const LookAndFeel_FloatID_eFloatID_CaretAspectRatio:
+ root::mozilla::LookAndFeel_FloatID = 2;
+ pub type LookAndFeel_FloatID = u32;
+ pub const LookAndFeel_FontID_FontID_MINIMUM: root::mozilla::LookAndFeel_FontID =
+ LookAndFeel_FontID::eFont_Caption;
+ pub const LookAndFeel_FontID_FontID_MAXIMUM: root::mozilla::LookAndFeel_FontID =
+ LookAndFeel_FontID::eFont_Widget;
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum LookAndFeel_FontID {
+ eFont_Caption = 1,
+ eFont_Icon = 2,
+ eFont_Menu = 3,
+ eFont_MessageBox = 4,
+ eFont_SmallCaption = 5,
+ eFont_StatusBar = 6,
+ eFont_Window = 7,
+ eFont_Document = 8,
+ eFont_Workspace = 9,
+ eFont_Desktop = 10,
+ eFont_Info = 11,
+ eFont_Dialog = 12,
+ eFont_Button = 13,
+ eFont_PullDownMenu = 14,
+ eFont_List = 15,
+ eFont_Field = 16,
+ eFont_Tooltips = 17,
+ eFont_Widget = 18,
+ }
+ #[test]
+ fn bindgen_test_layout_LookAndFeel() {
+ assert_eq!(
+ ::std::mem::size_of::<LookAndFeel>(),
+ 1usize,
+ concat!("Size of: ", stringify!(LookAndFeel))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LookAndFeel>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(LookAndFeel))
+ );
+ }
+ impl Clone for LookAndFeel {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct StylePrefs {
+ pub _address: u8,
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs19sFontDisplayEnabledE"]
+ pub static mut StylePrefs_sFontDisplayEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs19sOpentypeSVGEnabledE"]
+ pub static mut StylePrefs_sOpentypeSVGEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs29sWebkitPrefixedAliasesEnabledE"]
+ pub static mut StylePrefs_sWebkitPrefixedAliasesEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs30sWebkitDevicePixelRatioEnabledE"]
+ pub static mut StylePrefs_sWebkitDevicePixelRatioEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs20sMozGradientsEnabledE"]
+ pub static mut StylePrefs_sMozGradientsEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs22sControlCharVisibilityE"]
+ pub static mut StylePrefs_sControlCharVisibility: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs28sFramesTimingFunctionEnabledE"]
+ pub static mut StylePrefs_sFramesTimingFunctionEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs31sUnprefixedFullscreenApiEnabledE"]
+ pub static mut StylePrefs_sUnprefixedFullscreenApiEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs20sVisitedLinksEnabledE"]
+ pub static mut StylePrefs_sVisitedLinksEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs28sMozDocumentEnabledInContentE"]
+ pub static mut StylePrefs_sMozDocumentEnabledInContent: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs32sGridTemplateSubgridValueEnabledE"]
+ pub static mut StylePrefs_sGridTemplateSubgridValueEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla10StylePrefs22sEmulateMozBoxWithFlexE"]
+ pub static mut StylePrefs_sEmulateMozBoxWithFlex: bool;
+ }
+ #[test]
+ fn bindgen_test_layout_StylePrefs() {
+ assert_eq!(
+ ::std::mem::size_of::<StylePrefs>(),
+ 1usize,
+ concat!("Size of: ", stringify!(StylePrefs))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<StylePrefs>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(StylePrefs))
+ );
+ }
+ impl Clone for StylePrefs {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct NonOwningAnimationTarget {
+ pub mElement: *mut root::mozilla::dom::Element,
+ pub mPseudoType: root::mozilla::CSSPseudoElementType,
+ }
+ #[test]
+ fn bindgen_test_layout_NonOwningAnimationTarget() {
+ assert_eq!(
+ ::std::mem::size_of::<NonOwningAnimationTarget>(),
+ 16usize,
+ concat!("Size of: ", stringify!(NonOwningAnimationTarget))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<NonOwningAnimationTarget>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(NonOwningAnimationTarget))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NonOwningAnimationTarget>())).mElement as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NonOwningAnimationTarget),
+ "::",
+ stringify!(mElement)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<NonOwningAnimationTarget>())).mPseudoType as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(NonOwningAnimationTarget),
+ "::",
+ stringify!(mPseudoType)
+ )
+ );
+ }
+ impl Clone for NonOwningAnimationTarget {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct PseudoElementHashEntry {
+ pub _base: root::PLDHashEntryHdr,
+ pub mElement: root::RefPtr<root::mozilla::dom::Element>,
+ pub mPseudoType: root::mozilla::CSSPseudoElementType,
+ }
+ pub type PseudoElementHashEntry_KeyType = root::mozilla::NonOwningAnimationTarget;
+ pub type PseudoElementHashEntry_KeyTypePointer =
+ *const root::mozilla::NonOwningAnimationTarget;
+ pub const PseudoElementHashEntry_ALLOW_MEMMOVE:
+ root::mozilla::PseudoElementHashEntry__bindgen_ty_1 = 1;
+ pub type PseudoElementHashEntry__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_PseudoElementHashEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<PseudoElementHashEntry>(),
+ 24usize,
+ concat!("Size of: ", stringify!(PseudoElementHashEntry))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PseudoElementHashEntry>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PseudoElementHashEntry))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PseudoElementHashEntry>())).mElement as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PseudoElementHashEntry),
+ "::",
+ stringify!(mElement)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PseudoElementHashEntry>())).mPseudoType as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PseudoElementHashEntry),
+ "::",
+ stringify!(mPseudoType)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct EffectCompositor {
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mPresContext: *mut root::nsPresContext,
+ pub mElementsToRestyle: [u64; 8usize],
+ pub mIsInPreTraverse: bool,
+ pub mRuleProcessors: [u64; 2usize],
+ }
+ pub type EffectCompositor_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct EffectCompositor_cycleCollection {
+ pub _base: root::nsCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_EffectCompositor_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<EffectCompositor_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(EffectCompositor_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<EffectCompositor_cycleCollection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(EffectCompositor_cycleCollection)
+ )
+ );
+ }
+ impl Clone for EffectCompositor_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum EffectCompositor_CascadeLevel {
+ Animations = 0,
+ Transitions = 1,
+ }
+ pub const EffectCompositor_RestyleType_Throttled:
+ root::mozilla::EffectCompositor_RestyleType = 0;
+ pub const EffectCompositor_RestyleType_Standard:
+ root::mozilla::EffectCompositor_RestyleType = 1;
+ pub const EffectCompositor_RestyleType_Layer: root::mozilla::EffectCompositor_RestyleType =
+ 2;
+ pub type EffectCompositor_RestyleType = i32;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct EffectCompositor_AnimationStyleRuleProcessor {
+ pub _base: root::nsIStyleRuleProcessor,
+ pub mRefCnt: root::nsAutoRefCnt,
+ pub mCompositor: *mut root::mozilla::EffectCompositor,
+ pub mCascadeLevel: root::mozilla::EffectCompositor_CascadeLevel,
+ }
+ pub type EffectCompositor_AnimationStyleRuleProcessor_HasThreadSafeRefCnt =
+ root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_EffectCompositor_AnimationStyleRuleProcessor() {
+ assert_eq!(
+ ::std::mem::size_of::<EffectCompositor_AnimationStyleRuleProcessor>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(EffectCompositor_AnimationStyleRuleProcessor)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<EffectCompositor_AnimationStyleRuleProcessor>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(EffectCompositor_AnimationStyleRuleProcessor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor_AnimationStyleRuleProcessor>())).mRefCnt
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor_AnimationStyleRuleProcessor),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor_AnimationStyleRuleProcessor>()))
+ .mCompositor as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor_AnimationStyleRuleProcessor),
+ "::",
+ stringify!(mCompositor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor_AnimationStyleRuleProcessor>()))
+ .mCascadeLevel as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor_AnimationStyleRuleProcessor),
+ "::",
+ stringify!(mCascadeLevel)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla16EffectCompositor21_cycleCollectorGlobalE"]
+ pub static mut EffectCompositor__cycleCollectorGlobal:
+ root::mozilla::EffectCompositor_cycleCollection;
+ }
+ pub const EffectCompositor_kCascadeLevelCount: usize = 2;
+ #[test]
+ fn bindgen_test_layout_EffectCompositor() {
+ assert_eq!(
+ ::std::mem::size_of::<EffectCompositor>(),
+ 104usize,
+ concat!("Size of: ", stringify!(EffectCompositor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<EffectCompositor>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(EffectCompositor))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor>())).mRefCnt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor>())).mPresContext as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor),
+ "::",
+ stringify!(mPresContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor>())).mElementsToRestyle as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor),
+ "::",
+ stringify!(mElementsToRestyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor>())).mIsInPreTraverse as *const _
+ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor),
+ "::",
+ stringify!(mIsInPreTraverse)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EffectCompositor>())).mRuleProcessors as *const _
+ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EffectCompositor),
+ "::",
+ stringify!(mRuleProcessors)
+ )
+ );
+ }
+ pub type CSSPseudoClassTypeBase = u8;
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum CSSPseudoClassType {
+ empty = 0,
+ mozOnlyWhitespace = 1,
+ lang = 2,
+ root = 3,
+ any = 4,
+ firstChild = 5,
+ firstNode = 6,
+ lastChild = 7,
+ lastNode = 8,
+ onlyChild = 9,
+ firstOfType = 10,
+ lastOfType = 11,
+ onlyOfType = 12,
+ nthChild = 13,
+ nthLastChild = 14,
+ nthOfType = 15,
+ nthLastOfType = 16,
+ mozIsHTML = 17,
+ mozNativeAnonymous = 18,
+ mozUseShadowTreeRoot = 19,
+ mozLocaleDir = 20,
+ mozLWTheme = 21,
+ mozLWThemeBrightText = 22,
+ mozLWThemeDarkText = 23,
+ mozWindowInactive = 24,
+ mozTableBorderNonzero = 25,
+ mozBrowserFrame = 26,
+ scope = 27,
+ negation = 28,
+ dir = 29,
+ link = 30,
+ mozAnyLink = 31,
+ anyLink = 32,
+ visited = 33,
+ active = 34,
+ checked = 35,
+ disabled = 36,
+ enabled = 37,
+ focus = 38,
+ focusWithin = 39,
+ hover = 40,
+ mozDragOver = 41,
+ target = 42,
+ indeterminate = 43,
+ mozDevtoolsHighlighted = 44,
+ mozStyleeditorTransitioning = 45,
+ fullscreen = 46,
+ mozFullScreen = 47,
+ mozFocusRing = 48,
+ mozBroken = 49,
+ mozLoading = 50,
+ mozUserDisabled = 51,
+ mozSuppressed = 52,
+ mozHandlerClickToPlay = 53,
+ mozHandlerVulnerableUpdatable = 54,
+ mozHandlerVulnerableNoUpdate = 55,
+ mozHandlerDisabled = 56,
+ mozHandlerBlocked = 57,
+ mozHandlerCrashed = 58,
+ mozMathIncrementScriptLevel = 59,
+ mozHasDirAttr = 60,
+ mozDirAttrLTR = 61,
+ mozDirAttrRTL = 62,
+ mozDirAttrLikeAuto = 63,
+ mozAutofill = 64,
+ mozAutofillPreview = 65,
+ required = 66,
+ optional = 67,
+ valid = 68,
+ invalid = 69,
+ inRange = 70,
+ outOfRange = 71,
+ defaultPseudo = 72,
+ placeholderShown = 73,
+ mozReadOnly = 74,
+ mozReadWrite = 75,
+ mozSubmitInvalid = 76,
+ mozUIInvalid = 77,
+ mozUIValid = 78,
+ mozMeterOptimum = 79,
+ mozMeterSubOptimum = 80,
+ mozMeterSubSubOptimum = 81,
+ mozPlaceholder = 82,
+ Count = 83,
+ NotPseudo = 84,
+ MAX = 85,
+ }
+ #[repr(C)]
+ pub struct GeckoFont {
+ pub gecko: root::nsStyleFont,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoFont() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoFont>(),
+ 136usize,
+ concat!("Size of: ", stringify!(GeckoFont))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoFont>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoFont))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoFont>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoFont),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoColor {
+ pub gecko: root::nsStyleColor,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoColor() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoColor>(),
+ 4usize,
+ concat!("Size of: ", stringify!(GeckoColor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoColor>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(GeckoColor))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoColor>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoColor),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GeckoList {
+ pub gecko: root::nsStyleList,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoList() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoList>(),
+ 48usize,
+ concat!("Size of: ", stringify!(GeckoList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoList))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoList>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoList),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GeckoText {
+ pub gecko: root::nsStyleText,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoText() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoText>(),
+ 160usize,
+ concat!("Size of: ", stringify!(GeckoText))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoText>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoText))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoText>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoText),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoVisibility {
+ pub gecko: root::nsStyleVisibility,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoVisibility() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoVisibility>(),
+ 7usize,
+ concat!("Size of: ", stringify!(GeckoVisibility))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoVisibility>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(GeckoVisibility))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoVisibility>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoVisibility),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoUserInterface {
+ pub gecko: root::nsStyleUserInterface,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoUserInterface() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoUserInterface>(),
+ 24usize,
+ concat!("Size of: ", stringify!(GeckoUserInterface))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoUserInterface>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoUserInterface))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GeckoUserInterface>())).gecko as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoUserInterface),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoTableBorder {
+ pub gecko: root::nsStyleTableBorder,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoTableBorder() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoTableBorder>(),
+ 12usize,
+ concat!("Size of: ", stringify!(GeckoTableBorder))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoTableBorder>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(GeckoTableBorder))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoTableBorder>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoTableBorder),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoSVG {
+ pub gecko: root::nsStyleSVG,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoSVG() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoSVG>(),
+ 128usize,
+ concat!("Size of: ", stringify!(GeckoSVG))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoSVG>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoSVG))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoSVG>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoSVG),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoBackground {
+ pub gecko: root::nsStyleBackground,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoBackground() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoBackground>(),
+ 160usize,
+ concat!("Size of: ", stringify!(GeckoBackground))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoBackground>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoBackground))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoBackground>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoBackground),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GeckoPosition {
+ pub gecko: root::nsStylePosition,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoPosition() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoPosition>(),
+ 440usize,
+ concat!("Size of: ", stringify!(GeckoPosition))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoPosition>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoPosition))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoPosition>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoPosition),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GeckoTextReset {
+ pub gecko: root::nsStyleTextReset,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoTextReset() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoTextReset>(),
+ 80usize,
+ concat!("Size of: ", stringify!(GeckoTextReset))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoTextReset>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoTextReset))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoTextReset>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoTextReset),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoDisplay {
+ pub gecko: root::nsStyleDisplay,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoDisplay() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoDisplay>(),
+ 424usize,
+ concat!("Size of: ", stringify!(GeckoDisplay))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoDisplay>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoDisplay))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoDisplay>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoDisplay),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct GeckoContent {
+ pub gecko: root::nsStyleContent,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoContent() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoContent>(),
+ 24usize,
+ concat!("Size of: ", stringify!(GeckoContent))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoContent>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoContent))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoContent>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoContent),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoUIReset {
+ pub gecko: root::nsStyleUIReset,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoUIReset() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoUIReset>(),
+ 56usize,
+ concat!("Size of: ", stringify!(GeckoUIReset))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoUIReset>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoUIReset))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoUIReset>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoUIReset),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoTable {
+ pub gecko: root::nsStyleTable,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoTable() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoTable>(),
+ 8usize,
+ concat!("Size of: ", stringify!(GeckoTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoTable>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(GeckoTable))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoTable>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoTable),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoMargin {
+ pub gecko: root::nsStyleMargin,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoMargin() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoMargin>(),
+ 40usize,
+ concat!("Size of: ", stringify!(GeckoMargin))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoMargin>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoMargin))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoMargin>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoMargin),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoPadding {
+ pub gecko: root::nsStylePadding,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoPadding() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoPadding>(),
+ 40usize,
+ concat!("Size of: ", stringify!(GeckoPadding))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoPadding>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoPadding))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoPadding>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoPadding),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoBorder {
+ pub gecko: root::nsStyleBorder,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoBorder() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoBorder>(),
+ 304usize,
+ concat!("Size of: ", stringify!(GeckoBorder))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoBorder>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoBorder))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoBorder>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoBorder),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoOutline {
+ pub gecko: root::nsStyleOutline,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoOutline() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoOutline>(),
+ 104usize,
+ concat!("Size of: ", stringify!(GeckoOutline))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoOutline>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoOutline))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoOutline>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoOutline),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoXUL {
+ pub gecko: root::nsStyleXUL,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoXUL() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoXUL>(),
+ 16usize,
+ concat!("Size of: ", stringify!(GeckoXUL))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoXUL>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(GeckoXUL))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoXUL>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoXUL),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoSVGReset {
+ pub gecko: root::nsStyleSVGReset,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoSVGReset() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoSVGReset>(),
+ 200usize,
+ concat!("Size of: ", stringify!(GeckoSVGReset))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoSVGReset>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoSVGReset))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoSVGReset>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoSVGReset),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoColumn {
+ pub gecko: root::nsStyleColumn,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoColumn() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoColumn>(),
+ 64usize,
+ concat!("Size of: ", stringify!(GeckoColumn))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoColumn>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoColumn))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoColumn>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoColumn),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GeckoEffects {
+ pub gecko: root::nsStyleEffects,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoEffects() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoEffects>(),
+ 40usize,
+ concat!("Size of: ", stringify!(GeckoEffects))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoEffects>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GeckoEffects))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoEffects>())).gecko as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoEffects),
+ "::",
+ stringify!(gecko)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ServoMediaList {
+ pub _base: root::mozilla::dom::MediaList,
+ pub mRawList: root::RefPtr<root::RawServoMediaList>,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoMediaList() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoMediaList>(),
+ 56usize,
+ concat!("Size of: ", stringify!(ServoMediaList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoMediaList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoMediaList))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoMediaList>())).mRawList as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoMediaList),
+ "::",
+ stringify!(mRawList)
+ )
+ );
+ }
+ /// A PostTraversalTask is a task to be performed immediately after a Servo
/// traversal. There are just a few tasks we need to perform, so we use this
/// class rather than Runnables, to avoid virtual calls and some allocations.
///
/// A PostTraversalTask is only safe to run immediately after the Servo
- /// traversal, since it can hold raw pointers to DOM objects.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct PostTraversalTask { pub mType : root :: mozilla :: PostTraversalTask_Type , pub mTarget : * mut :: std :: os :: raw :: c_void , pub mResult : root :: nsresult , } pub const PostTraversalTask_Type_ResolveFontFaceLoadedPromise : root :: mozilla :: PostTraversalTask_Type = 0 ; pub const PostTraversalTask_Type_RejectFontFaceLoadedPromise : root :: mozilla :: PostTraversalTask_Type = 1 ; pub const PostTraversalTask_Type_DispatchLoadingEventAndReplaceReadyPromise : root :: mozilla :: PostTraversalTask_Type = 2 ; pub const PostTraversalTask_Type_DispatchFontFaceSetCheckLoadingFinishedAfterDelay : root :: mozilla :: PostTraversalTask_Type = 3 ; pub const PostTraversalTask_Type_LoadFontEntry : root :: mozilla :: PostTraversalTask_Type = 4 ; pub type PostTraversalTask_Type = :: std :: os :: raw :: c_int ; # [ test ] fn bindgen_test_layout_PostTraversalTask ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PostTraversalTask > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( PostTraversalTask ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PostTraversalTask > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PostTraversalTask ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PostTraversalTask ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PostTraversalTask ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PostTraversalTask ) ) . mTarget as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PostTraversalTask ) , "::" , stringify ! ( mTarget ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PostTraversalTask ) ) . mResult as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PostTraversalTask ) , "::" , stringify ! ( mResult ) ) ) ; } impl Clone for PostTraversalTask { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ServoStyleRuleMap { _unused : [ u8 ; 0 ] } pub const StylistState_NotDirty : root :: mozilla :: StylistState = 0 ; pub const StylistState_StyleSheetsDirty : root :: mozilla :: StylistState = 1 ; pub const StylistState_XBLStyleSheetsDirty : root :: mozilla :: StylistState = 2 ; pub type StylistState = u8 ; pub const OriginFlags_UserAgent : root :: mozilla :: OriginFlags = root :: mozilla :: OriginFlags ( 1 ) ; pub const OriginFlags_User : root :: mozilla :: OriginFlags = root :: mozilla :: OriginFlags ( 2 ) ; pub const OriginFlags_Author : root :: mozilla :: OriginFlags = root :: mozilla :: OriginFlags ( 4 ) ; pub const OriginFlags_All : root :: mozilla :: OriginFlags = root :: mozilla :: OriginFlags ( 7 ) ; impl :: std :: ops :: BitOr < root :: mozilla :: OriginFlags > for root :: mozilla :: OriginFlags { type Output = Self ; # [ inline ] fn bitor ( self , other : Self ) -> Self { OriginFlags ( self . 0 | other . 0 ) } } impl :: std :: ops :: BitOrAssign for root :: mozilla :: OriginFlags { # [ inline ] fn bitor_assign ( & mut self , rhs : root :: mozilla :: OriginFlags ) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < root :: mozilla :: OriginFlags > for root :: mozilla :: OriginFlags { type Output = Self ; # [ inline ] fn bitand ( self , other : Self ) -> Self { OriginFlags ( self . 0 & other . 0 ) } } impl :: std :: ops :: BitAndAssign for root :: mozilla :: OriginFlags { # [ inline ] fn bitand_assign ( & mut self , rhs : root :: mozilla :: OriginFlags ) { self . 0 &= rhs . 0 ; } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub struct OriginFlags ( pub u8 ) ;
- /// The set of style sheets that apply to a document, backed by a Servo
- /// Stylist. A ServoStyleSet contains ServoStyleSheets.
- # [ repr ( C ) ] pub struct ServoStyleSet { pub mKind : root :: mozilla :: ServoStyleSet_Kind , pub mPresContext : * mut root :: nsPresContext , pub mLastPresContextUsesXBLStyleSet : * mut :: std :: os :: raw :: c_void , pub mRawSet : root :: mozilla :: UniquePtr < root :: RawServoStyleSet > , pub mSheets : [ u64 ; 9usize ] , pub mAuthorStyleDisabled : bool , pub mStylistState : root :: mozilla :: StylistState , pub mUserFontSetUpdateGeneration : u64 , pub mUserFontCacheUpdateGeneration : u32 , pub mNeedsRestyleAfterEnsureUniqueInner : bool , pub mNonInheritingStyleContexts : [ u64 ; 7usize ] , pub mPostTraversalTasks : root :: nsTArray < root :: mozilla :: PostTraversalTask > , pub mStyleRuleMap : root :: mozilla :: UniquePtr < root :: mozilla :: ServoStyleRuleMap > , pub mBindingManager : root :: RefPtr < root :: nsBindingManager > , } pub type ServoStyleSet_SnapshotTable = root :: mozilla :: ServoElementSnapshotTable ; pub const ServoStyleSet_Kind_Master : root :: mozilla :: ServoStyleSet_Kind = 0 ; pub const ServoStyleSet_Kind_ForXBL : root :: mozilla :: ServoStyleSet_Kind = 1 ; pub type ServoStyleSet_Kind = u8 ; extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla13ServoStyleSet17sInServoTraversalE" ]
- pub static mut ServoStyleSet_sInServoTraversal : * mut root :: mozilla :: ServoStyleSet ;
-} # [ test ] fn bindgen_test_layout_ServoStyleSet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoStyleSet > ( ) , 208usize , concat ! ( "Size of: " , stringify ! ( ServoStyleSet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoStyleSet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoStyleSet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mKind as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mKind ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mPresContext as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mPresContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mLastPresContextUsesXBLStyleSet as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mLastPresContextUsesXBLStyleSet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mRawSet as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mRawSet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mSheets as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mSheets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mAuthorStyleDisabled as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mAuthorStyleDisabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mStylistState as * const _ as usize } , 105usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mStylistState ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mUserFontSetUpdateGeneration as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mUserFontSetUpdateGeneration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mUserFontCacheUpdateGeneration as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mUserFontCacheUpdateGeneration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mNeedsRestyleAfterEnsureUniqueInner as * const _ as usize } , 124usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mNeedsRestyleAfterEnsureUniqueInner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mNonInheritingStyleContexts as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mNonInheritingStyleContexts ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mPostTraversalTasks as * const _ as usize } , 184usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mPostTraversalTasks ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mStyleRuleMap as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mStyleRuleMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleSet ) ) . mBindingManager as * const _ as usize } , 200usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleSet ) , "::" , stringify ! ( mBindingManager ) ) ) ; } # [ repr ( C ) ] pub struct ServoStyleContext { pub _base : root :: nsStyleContext , pub mPresContext : * mut root :: nsPresContext , pub mSource : root :: ServoComputedData , pub mNextInheritingAnonBoxStyle : root :: RefPtr < root :: mozilla :: ServoStyleContext > , } # [ test ] fn bindgen_test_layout_ServoStyleContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoStyleContext > ( ) , 248usize , concat ! ( "Size of: " , stringify ! ( ServoStyleContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoStyleContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoStyleContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleContext ) ) . mPresContext as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleContext ) , "::" , stringify ! ( mPresContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleContext ) ) . mSource as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleContext ) , "::" , stringify ! ( mSource ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoStyleContext ) ) . mNextInheritingAnonBoxStyle as * const _ as usize } , 240usize , concat ! ( "Alignment of field: " , stringify ! ( ServoStyleContext ) , "::" , stringify ! ( mNextInheritingAnonBoxStyle ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct DeclarationBlock { pub mContainer : root :: mozilla :: DeclarationBlock__bindgen_ty_1 , pub mImmutable : bool , pub mType : root :: mozilla :: StyleBackendType , pub mIsDirty : u32 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct DeclarationBlock__bindgen_ty_1 { pub mRaw : root :: __BindgenUnionField < usize > , pub mOwningRule : root :: __BindgenUnionField < * mut root :: mozilla :: css :: Rule > , pub mHTMLCSSStyleSheet : root :: __BindgenUnionField < * mut root :: nsHTMLCSSStyleSheet > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_DeclarationBlock__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DeclarationBlock__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( DeclarationBlock__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DeclarationBlock__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DeclarationBlock__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock__bindgen_ty_1 ) ) . mRaw as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock__bindgen_ty_1 ) , "::" , stringify ! ( mRaw ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock__bindgen_ty_1 ) ) . mOwningRule as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock__bindgen_ty_1 ) , "::" , stringify ! ( mOwningRule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock__bindgen_ty_1 ) ) . mHTMLCSSStyleSheet as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock__bindgen_ty_1 ) , "::" , stringify ! ( mHTMLCSSStyleSheet ) ) ) ; } impl Clone for DeclarationBlock__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_DeclarationBlock ( ) { assert_eq ! ( :: std :: mem :: size_of :: < DeclarationBlock > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( DeclarationBlock ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < DeclarationBlock > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( DeclarationBlock ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock ) ) . mContainer as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock ) , "::" , stringify ! ( mContainer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock ) ) . mImmutable as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock ) , "::" , stringify ! ( mImmutable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock ) ) . mType as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const DeclarationBlock ) ) . mIsDirty as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( DeclarationBlock ) , "::" , stringify ! ( mIsDirty ) ) ) ; } impl Clone for DeclarationBlock { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct ServoDeclarationBlock { pub _base : root :: mozilla :: DeclarationBlock , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mRaw : root :: RefPtr < root :: RawServoDeclarationBlock > , } pub type ServoDeclarationBlock_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_ServoDeclarationBlock ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoDeclarationBlock > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ServoDeclarationBlock ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoDeclarationBlock > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoDeclarationBlock ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoDeclarationBlock ) ) . mRefCnt as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoDeclarationBlock ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoDeclarationBlock ) ) . mRaw as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ServoDeclarationBlock ) , "::" , stringify ! ( mRaw ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct CSSFontFaceDescriptors { pub mFamily : root :: nsCSSValue , pub mStyle : root :: nsCSSValue , pub mWeight : root :: nsCSSValue , pub mStretch : root :: nsCSSValue , pub mSrc : root :: nsCSSValue , pub mUnicodeRange : root :: nsCSSValue , pub mFontFeatureSettings : root :: nsCSSValue , pub mFontLanguageOverride : root :: nsCSSValue , pub mDisplay : root :: nsCSSValue , } extern "C" {
- # [ link_name = "\u{1}_ZN7mozilla22CSSFontFaceDescriptors6FieldsE" ]
- pub static mut CSSFontFaceDescriptors_Fields : [ * const root :: nsCSSValue ; 0usize ] ;
-} # [ test ] fn bindgen_test_layout_CSSFontFaceDescriptors ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CSSFontFaceDescriptors > ( ) , 144usize , concat ! ( "Size of: " , stringify ! ( CSSFontFaceDescriptors ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CSSFontFaceDescriptors > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CSSFontFaceDescriptors ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mFamily as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mFamily ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mStyle as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mWeight as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mWeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mStretch as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mStretch ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mSrc as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mSrc ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mUnicodeRange as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mUnicodeRange ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mFontFeatureSettings as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mFontFeatureSettings ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mFontLanguageOverride as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mFontLanguageOverride ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CSSFontFaceDescriptors ) ) . mDisplay as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( CSSFontFaceDescriptors ) , "::" , stringify ! ( mDisplay ) ) ) ; } pub mod intl { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct LineBreaker { pub mRefCnt : root :: nsAutoRefCnt , } pub type LineBreaker_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; pub const LineBreaker_kWordBreak_Normal : root :: mozilla :: intl :: LineBreaker__bindgen_ty_1 = 0 ; pub const LineBreaker_kWordBreak_BreakAll : root :: mozilla :: intl :: LineBreaker__bindgen_ty_1 = 1 ; pub const LineBreaker_kWordBreak_KeepAll : root :: mozilla :: intl :: LineBreaker__bindgen_ty_1 = 2 ; pub type LineBreaker__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_LineBreaker ( ) { assert_eq ! ( :: std :: mem :: size_of :: < LineBreaker > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( LineBreaker ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < LineBreaker > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( LineBreaker ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const LineBreaker ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( LineBreaker ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct WordBreaker { pub mRefCnt : root :: nsAutoRefCnt , } pub type WordBreaker_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_WordBreaker ( ) { assert_eq ! ( :: std :: mem :: size_of :: < WordBreaker > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( WordBreaker ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < WordBreaker > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( WordBreaker ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const WordBreaker ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( WordBreaker ) , "::" , stringify ! ( mRefCnt ) ) ) ; } } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct InfallibleAllocPolicy { pub _address : u8 , } # [ test ] fn bindgen_test_layout_InfallibleAllocPolicy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < InfallibleAllocPolicy > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( InfallibleAllocPolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < InfallibleAllocPolicy > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( InfallibleAllocPolicy ) ) ) ; } impl Clone for InfallibleAllocPolicy { fn clone ( & self ) -> Self { * self } }
- /// MozRefCountType is Mozilla's reference count type.
+ /// traversal, since it can hold raw pointers to DOM objects.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct PostTraversalTask {
+ pub mType: root::mozilla::PostTraversalTask_Type,
+ pub mTarget: *mut ::std::os::raw::c_void,
+ pub mResult: root::nsresult,
+ }
+ pub const PostTraversalTask_Type_ResolveFontFaceLoadedPromise:
+ root::mozilla::PostTraversalTask_Type = 0;
+ pub const PostTraversalTask_Type_RejectFontFaceLoadedPromise:
+ root::mozilla::PostTraversalTask_Type = 1;
+ pub const PostTraversalTask_Type_DispatchLoadingEventAndReplaceReadyPromise:
+ root::mozilla::PostTraversalTask_Type = 2;
+ pub const PostTraversalTask_Type_DispatchFontFaceSetCheckLoadingFinishedAfterDelay:
+ root::mozilla::PostTraversalTask_Type = 3;
+ pub const PostTraversalTask_Type_LoadFontEntry: root::mozilla::PostTraversalTask_Type = 4;
+ pub type PostTraversalTask_Type = i32;
+ #[test]
+ fn bindgen_test_layout_PostTraversalTask() {
+ assert_eq!(
+ ::std::mem::size_of::<PostTraversalTask>(),
+ 24usize,
+ concat!("Size of: ", stringify!(PostTraversalTask))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PostTraversalTask>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PostTraversalTask))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PostTraversalTask>())).mType as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PostTraversalTask),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PostTraversalTask>())).mTarget as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PostTraversalTask),
+ "::",
+ stringify!(mTarget)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PostTraversalTask>())).mResult as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PostTraversalTask),
+ "::",
+ stringify!(mResult)
+ )
+ );
+ }
+ impl Clone for PostTraversalTask {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ServoStyleRuleMap {
+ _unused: [u8; 0],
+ }
+ pub const StylistState_NotDirty: root::mozilla::StylistState = 0;
+ pub const StylistState_StyleSheetsDirty: root::mozilla::StylistState = 1;
+ pub const StylistState_XBLStyleSheetsDirty: root::mozilla::StylistState = 2;
+ pub type StylistState = u8;
+ pub const OriginFlags_UserAgent: root::mozilla::OriginFlags = root::mozilla::OriginFlags(1);
+ pub const OriginFlags_User: root::mozilla::OriginFlags = root::mozilla::OriginFlags(2);
+ pub const OriginFlags_Author: root::mozilla::OriginFlags = root::mozilla::OriginFlags(4);
+ pub const OriginFlags_All: root::mozilla::OriginFlags = root::mozilla::OriginFlags(7);
+ impl ::std::ops::BitOr<root::mozilla::OriginFlags> for root::mozilla::OriginFlags {
+ type Output = Self;
+ #[inline]
+ fn bitor(self, other: Self) -> Self {
+ OriginFlags(self.0 | other.0)
+ }
+ }
+ impl ::std::ops::BitOrAssign for root::mozilla::OriginFlags {
+ #[inline]
+ fn bitor_assign(&mut self, rhs: root::mozilla::OriginFlags) {
+ self.0 |= rhs.0;
+ }
+ }
+ impl ::std::ops::BitAnd<root::mozilla::OriginFlags> for root::mozilla::OriginFlags {
+ type Output = Self;
+ #[inline]
+ fn bitand(self, other: Self) -> Self {
+ OriginFlags(self.0 & other.0)
+ }
+ }
+ impl ::std::ops::BitAndAssign for root::mozilla::OriginFlags {
+ #[inline]
+ fn bitand_assign(&mut self, rhs: root::mozilla::OriginFlags) {
+ self.0 &= rhs.0;
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub struct OriginFlags(pub u8);
+ /// The set of style sheets that apply to a document, backed by a Servo
+ /// Stylist. A ServoStyleSet contains ServoStyleSheets.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ServoStyleSet {
+ pub mKind: root::mozilla::ServoStyleSet_Kind,
+ pub mDocument: *mut root::nsIDocument,
+ pub mLastPresContextUsesXBLStyleSet: *mut ::std::os::raw::c_void,
+ pub mRawSet: root::mozilla::UniquePtr<root::RawServoStyleSet>,
+ pub mSheets: [u64; 9usize],
+ pub mAuthorStyleDisabled: bool,
+ pub mStylistState: root::mozilla::StylistState,
+ pub mUserFontSetUpdateGeneration: u64,
+ pub mUserFontCacheUpdateGeneration: u32,
+ pub mNeedsRestyleAfterEnsureUniqueInner: bool,
+ pub mNonInheritingStyleContexts: [u64; 7usize],
+ pub mPostTraversalTasks: root::nsTArray<root::mozilla::PostTraversalTask>,
+ pub mStyleRuleMap: root::mozilla::UniquePtr<root::mozilla::ServoStyleRuleMap>,
+ }
+ pub type ServoStyleSet_SnapshotTable = root::mozilla::ServoElementSnapshotTable;
+ pub const ServoStyleSet_Kind_Master: root::mozilla::ServoStyleSet_Kind = 0;
+ pub const ServoStyleSet_Kind_ForXBL: root::mozilla::ServoStyleSet_Kind = 1;
+ pub type ServoStyleSet_Kind = u8;
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla13ServoStyleSet17sInServoTraversalE"]
+ pub static mut ServoStyleSet_sInServoTraversal: *mut root::mozilla::ServoStyleSet;
+ }
+ #[test]
+ fn bindgen_test_layout_ServoStyleSet() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoStyleSet>(),
+ 200usize,
+ concat!("Size of: ", stringify!(ServoStyleSet))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoStyleSet>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoStyleSet))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoStyleSet>())).mKind as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mKind)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoStyleSet>())).mDocument as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mLastPresContextUsesXBLStyleSet
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mLastPresContextUsesXBLStyleSet)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoStyleSet>())).mRawSet as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mRawSet)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoStyleSet>())).mSheets as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mSheets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mAuthorStyleDisabled as *const _
+ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mAuthorStyleDisabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mStylistState as *const _ as usize
+ },
+ 105usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mStylistState)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mUserFontSetUpdateGeneration
+ as *const _ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mUserFontSetUpdateGeneration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mUserFontCacheUpdateGeneration
+ as *const _ as usize
+ },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mUserFontCacheUpdateGeneration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mNeedsRestyleAfterEnsureUniqueInner
+ as *const _ as usize
+ },
+ 124usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mNeedsRestyleAfterEnsureUniqueInner)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mNonInheritingStyleContexts
+ as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mNonInheritingStyleContexts)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mPostTraversalTasks as *const _
+ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mPostTraversalTasks)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleSet>())).mStyleRuleMap as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleSet),
+ "::",
+ stringify!(mStyleRuleMap)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct CachedInheritingStyles {
+ pub mBits: usize,
+ }
+ pub type CachedInheritingStyles_IndirectCache = [u64; 6usize];
+ #[test]
+ fn bindgen_test_layout_CachedInheritingStyles() {
+ assert_eq!(
+ ::std::mem::size_of::<CachedInheritingStyles>(),
+ 8usize,
+ concat!("Size of: ", stringify!(CachedInheritingStyles))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CachedInheritingStyles>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CachedInheritingStyles))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CachedInheritingStyles>())).mBits as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CachedInheritingStyles),
+ "::",
+ stringify!(mBits)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct ServoStyleContext {
+ pub _base: root::nsStyleContext,
+ pub mPresContext: *mut root::nsPresContext,
+ pub mSource: root::ServoComputedData,
+ pub mCachedInheritingStyles: root::mozilla::CachedInheritingStyles,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoStyleContext() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoStyleContext>(),
+ 248usize,
+ concat!("Size of: ", stringify!(ServoStyleContext))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoStyleContext>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoStyleContext))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleContext>())).mPresContext as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleContext),
+ "::",
+ stringify!(mPresContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleContext>())).mSource as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleContext),
+ "::",
+ stringify!(mSource)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoStyleContext>())).mCachedInheritingStyles
+ as *const _ as usize
+ },
+ 240usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoStyleContext),
+ "::",
+ stringify!(mCachedInheritingStyles)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct DeclarationBlock {
+ pub mContainer: root::mozilla::DeclarationBlock__bindgen_ty_1,
+ pub mImmutable: bool,
+ pub mType: root::mozilla::StyleBackendType,
+ pub mIsDirty: u32,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct DeclarationBlock__bindgen_ty_1 {
+ pub mRaw: root::__BindgenUnionField<usize>,
+ pub mOwningRule: root::__BindgenUnionField<*mut root::mozilla::css::Rule>,
+ pub mHTMLCSSStyleSheet: root::__BindgenUnionField<*mut root::nsHTMLCSSStyleSheet>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_DeclarationBlock__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<DeclarationBlock__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(DeclarationBlock__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<DeclarationBlock__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(DeclarationBlock__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DeclarationBlock__bindgen_ty_1>())).mRaw as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock__bindgen_ty_1),
+ "::",
+ stringify!(mRaw)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DeclarationBlock__bindgen_ty_1>())).mOwningRule
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock__bindgen_ty_1),
+ "::",
+ stringify!(mOwningRule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DeclarationBlock__bindgen_ty_1>())).mHTMLCSSStyleSheet
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock__bindgen_ty_1),
+ "::",
+ stringify!(mHTMLCSSStyleSheet)
+ )
+ );
+ }
+ impl Clone for DeclarationBlock__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_DeclarationBlock() {
+ assert_eq!(
+ ::std::mem::size_of::<DeclarationBlock>(),
+ 16usize,
+ concat!("Size of: ", stringify!(DeclarationBlock))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<DeclarationBlock>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(DeclarationBlock))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DeclarationBlock>())).mContainer as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock),
+ "::",
+ stringify!(mContainer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DeclarationBlock>())).mImmutable as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock),
+ "::",
+ stringify!(mImmutable)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<DeclarationBlock>())).mType as *const _ as usize },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<DeclarationBlock>())).mIsDirty as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(DeclarationBlock),
+ "::",
+ stringify!(mIsDirty)
+ )
+ );
+ }
+ impl Clone for DeclarationBlock {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct ServoDeclarationBlock {
+ pub _base: root::mozilla::DeclarationBlock,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mRaw: root::RefPtr<root::RawServoDeclarationBlock>,
+ }
+ pub type ServoDeclarationBlock_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_ServoDeclarationBlock() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoDeclarationBlock>(),
+ 32usize,
+ concat!("Size of: ", stringify!(ServoDeclarationBlock))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoDeclarationBlock>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoDeclarationBlock))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoDeclarationBlock>())).mRefCnt as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoDeclarationBlock),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoDeclarationBlock>())).mRaw as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoDeclarationBlock),
+ "::",
+ stringify!(mRaw)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct CSSFontFaceDescriptors {
+ pub mFamily: root::nsCSSValue,
+ pub mStyle: root::nsCSSValue,
+ pub mWeight: root::nsCSSValue,
+ pub mStretch: root::nsCSSValue,
+ pub mSrc: root::nsCSSValue,
+ pub mUnicodeRange: root::nsCSSValue,
+ pub mFontFeatureSettings: root::nsCSSValue,
+ pub mFontLanguageOverride: root::nsCSSValue,
+ pub mDisplay: root::nsCSSValue,
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN7mozilla22CSSFontFaceDescriptors6FieldsE"]
+ pub static mut CSSFontFaceDescriptors_Fields: [*const root::nsCSSValue; 0usize];
+ }
+ #[test]
+ fn bindgen_test_layout_CSSFontFaceDescriptors() {
+ assert_eq!(
+ ::std::mem::size_of::<CSSFontFaceDescriptors>(),
+ 144usize,
+ concat!("Size of: ", stringify!(CSSFontFaceDescriptors))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CSSFontFaceDescriptors>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CSSFontFaceDescriptors))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mFamily as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mFamily)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mStyle as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mWeight as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mWeight)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mStretch as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mStretch)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mSrc as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mSrc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mUnicodeRange as *const _
+ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mUnicodeRange)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mFontFeatureSettings
+ as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mFontFeatureSettings)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mFontLanguageOverride
+ as *const _ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mFontLanguageOverride)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CSSFontFaceDescriptors>())).mDisplay as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CSSFontFaceDescriptors),
+ "::",
+ stringify!(mDisplay)
+ )
+ );
+ }
+ pub mod intl {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct LineBreaker {
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type LineBreaker_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ pub const LineBreaker_kWordBreak_Normal:
+ root::mozilla::intl::LineBreaker__bindgen_ty_1 = 0;
+ pub const LineBreaker_kWordBreak_BreakAll:
+ root::mozilla::intl::LineBreaker__bindgen_ty_1 = 1;
+ pub const LineBreaker_kWordBreak_KeepAll:
+ root::mozilla::intl::LineBreaker__bindgen_ty_1 = 2;
+ pub type LineBreaker__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_LineBreaker() {
+ assert_eq!(
+ ::std::mem::size_of::<LineBreaker>(),
+ 8usize,
+ concat!("Size of: ", stringify!(LineBreaker))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<LineBreaker>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(LineBreaker))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<LineBreaker>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(LineBreaker),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct WordBreaker {
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type WordBreaker_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_WordBreaker() {
+ assert_eq!(
+ ::std::mem::size_of::<WordBreaker>(),
+ 8usize,
+ concat!("Size of: ", stringify!(WordBreaker))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<WordBreaker>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(WordBreaker))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<WordBreaker>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(WordBreaker),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct InfallibleAllocPolicy {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_InfallibleAllocPolicy() {
+ assert_eq!(
+ ::std::mem::size_of::<InfallibleAllocPolicy>(),
+ 1usize,
+ concat!("Size of: ", stringify!(InfallibleAllocPolicy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<InfallibleAllocPolicy>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(InfallibleAllocPolicy))
+ );
+ }
+ impl Clone for InfallibleAllocPolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// MozRefCountType is Mozilla's reference count type.
///
/// We use the same type to represent the refcount of RefCounted objects
/// as well, in order to be able to use the leak detection facilities
/// that are implemented by XPCOM.
///
/// Note that this type is not in the mozilla namespace so that it is
- /// usable for both C and C++ code.
- pub type MozRefCountType = usize ; pub const nsresult_NS_ERROR_NO_INTERFACE : root :: nsresult = nsresult :: NS_NOINTERFACE ; pub const nsresult_NS_ERROR_INVALID_ARG : root :: nsresult = nsresult :: NS_ERROR_ILLEGAL_VALUE ; pub const nsresult_NS_ERROR_INVALID_POINTER : root :: nsresult = nsresult :: NS_ERROR_ILLEGAL_VALUE ; pub const nsresult_NS_ERROR_NULL_POINTER : root :: nsresult = nsresult :: NS_ERROR_ILLEGAL_VALUE ; pub const nsresult_NS_BINDING_SUCCEEDED : root :: nsresult = nsresult :: NS_OK ; pub const nsresult_NS_NET_STATUS_RESOLVING_HOST : root :: nsresult = nsresult :: NS_BINDING_REDIRECTED ; pub const nsresult_NS_NET_STATUS_RESOLVED_HOST : root :: nsresult = nsresult :: NS_ERROR_ALREADY_CONNECTED ; pub const nsresult_NS_NET_STATUS_CONNECTED_TO : root :: nsresult = nsresult :: NS_BINDING_RETARGETED ; pub const nsresult_NS_NET_STATUS_TLS_HANDSHAKE_STARTING : root :: nsresult = nsresult :: NS_ERROR_NOT_CONNECTED ; pub const nsresult_NS_NET_STATUS_TLS_HANDSHAKE_ENDED : root :: nsresult = nsresult :: NS_ERROR_CONNECTION_REFUSED ; pub const nsresult_NS_NET_STATUS_WAITING_FOR : root :: nsresult = nsresult :: NS_ERROR_MALFORMED_URI ; pub const nsresult_NS_STATE_PROPERTY_EXISTS : root :: nsresult = nsresult :: NS_OK ; pub const nsresult_NS_ERROR_HTMLPARSER_CONTINUE : root :: nsresult = nsresult :: NS_OK ; pub const nsresult_NS_RDF_ASSERTION_ACCEPTED : root :: nsresult = nsresult :: NS_OK ; pub const nsresult_NS_EXACT_LENGTH : root :: nsresult = nsresult :: NS_OK_UDEC_EXACTLENGTH ; pub const nsresult_NS_PARTIAL_MORE_INPUT : root :: nsresult = nsresult :: NS_OK_UDEC_MOREINPUT ; pub const nsresult_NS_PARTIAL_MORE_OUTPUT : root :: nsresult = nsresult :: NS_OK_UDEC_MOREOUTPUT ; pub const nsresult_NS_ERROR_ILLEGAL_INPUT : root :: nsresult = nsresult :: NS_ERROR_UDEC_ILLEGALINPUT ; pub const nsresult_NS_ERROR_XPATH_INVALID_ARG : root :: nsresult = nsresult :: NS_ERROR_ILLEGAL_VALUE ; pub const nsresult_NS_SUCCESS_RESTART_APP : root :: nsresult = nsresult :: NS_SUCCESS_DONT_FIXUP ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsresult { NS_OK = 0 , NS_ERROR_BASE = 3253927936 , NS_ERROR_NOT_INITIALIZED = 3253927937 , NS_ERROR_ALREADY_INITIALIZED = 3253927938 , NS_ERROR_NOT_IMPLEMENTED = 2147500033 , NS_NOINTERFACE = 2147500034 , NS_ERROR_ABORT = 2147500036 , NS_ERROR_FAILURE = 2147500037 , NS_ERROR_UNEXPECTED = 2147549183 , NS_ERROR_OUT_OF_MEMORY = 2147942414 , NS_ERROR_ILLEGAL_VALUE = 2147942487 , NS_ERROR_NO_AGGREGATION = 2147746064 , NS_ERROR_NOT_AVAILABLE = 2147746065 , NS_ERROR_FACTORY_NOT_REGISTERED = 2147746132 , NS_ERROR_FACTORY_REGISTER_AGAIN = 2147746133 , NS_ERROR_FACTORY_NOT_LOADED = 2147746296 , NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = 3253928193 , NS_ERROR_FACTORY_EXISTS = 3253928192 , NS_ERROR_CANNOT_CONVERT_DATA = 2152071169 , NS_ERROR_OBJECT_IS_IMMUTABLE = 2152071170 , NS_ERROR_LOSS_OF_SIGNIFICANT_DATA = 2152071171 , NS_ERROR_NOT_SAME_THREAD = 2152071172 , NS_ERROR_ILLEGAL_DURING_SHUTDOWN = 2152071198 , NS_ERROR_SERVICE_NOT_AVAILABLE = 2152071190 , NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA = 4587521 , NS_SUCCESS_INTERRUPTED_TRAVERSE = 4587522 , NS_ERROR_SERVICE_NOT_FOUND = 4587542 , NS_ERROR_SERVICE_IN_USE = 4587543 , NS_BASE_STREAM_CLOSED = 2152136706 , NS_BASE_STREAM_OSERROR = 2152136707 , NS_BASE_STREAM_ILLEGAL_ARGS = 2152136708 , NS_BASE_STREAM_NO_CONVERTER = 2152136709 , NS_BASE_STREAM_BAD_CONVERSION = 2152136710 , NS_BASE_STREAM_WOULD_BLOCK = 2152136711 , NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE = 2152202241 , NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND = 2152202242 , NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE = 2152202243 , NS_ERROR_GFX_PRINTER_STARTDOC = 2152202244 , NS_ERROR_GFX_PRINTER_ENDDOC = 2152202245 , NS_ERROR_GFX_PRINTER_STARTPAGE = 2152202246 , NS_ERROR_GFX_PRINTER_DOC_IS_BUSY = 2152202247 , NS_ERROR_GFX_CMAP_MALFORMED = 2152202291 , NS_SUCCESS_EVENT_CONSUMED = 4784129 , NS_SUCCESS_EVENT_HANDLED_ASYNCHRONOUSLY = 4784130 , NS_BINDING_FAILED = 2152398849 , NS_BINDING_ABORTED = 2152398850 , NS_BINDING_REDIRECTED = 2152398851 , NS_BINDING_RETARGETED = 2152398852 , NS_ERROR_MALFORMED_URI = 2152398858 , NS_ERROR_IN_PROGRESS = 2152398863 , NS_ERROR_NO_CONTENT = 2152398865 , NS_ERROR_UNKNOWN_PROTOCOL = 2152398866 , NS_ERROR_INVALID_CONTENT_ENCODING = 2152398875 , NS_ERROR_CORRUPTED_CONTENT = 2152398877 , NS_ERROR_INVALID_SIGNATURE = 2152398906 , NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY = 2152398882 , NS_ERROR_ALREADY_OPENED = 2152398921 , NS_ERROR_ALREADY_CONNECTED = 2152398859 , NS_ERROR_NOT_CONNECTED = 2152398860 , NS_ERROR_CONNECTION_REFUSED = 2152398861 , NS_ERROR_NET_TIMEOUT = 2152398862 , NS_ERROR_OFFLINE = 2152398864 , NS_ERROR_PORT_ACCESS_NOT_ALLOWED = 2152398867 , NS_ERROR_NET_RESET = 2152398868 , NS_ERROR_NET_INTERRUPT = 2152398919 , NS_ERROR_PROXY_CONNECTION_REFUSED = 2152398920 , NS_ERROR_NET_PARTIAL_TRANSFER = 2152398924 , NS_ERROR_NET_INADEQUATE_SECURITY = 2152398930 , NS_ERROR_NOT_RESUMABLE = 2152398873 , NS_ERROR_REDIRECT_LOOP = 2152398879 , NS_ERROR_ENTITY_CHANGED = 2152398880 , NS_ERROR_UNSAFE_CONTENT_TYPE = 2152398922 , NS_ERROR_REMOTE_XUL = 2152398923 , NS_ERROR_LOAD_SHOWED_ERRORPAGE = 2152398925 , NS_ERROR_DOCSHELL_DYING = 2152398926 , NS_ERROR_FTP_LOGIN = 2152398869 , NS_ERROR_FTP_CWD = 2152398870 , NS_ERROR_FTP_PASV = 2152398871 , NS_ERROR_FTP_PWD = 2152398872 , NS_ERROR_FTP_LIST = 2152398876 , NS_ERROR_UNKNOWN_HOST = 2152398878 , NS_ERROR_DNS_LOOKUP_QUEUE_FULL = 2152398881 , NS_ERROR_UNKNOWN_PROXY_HOST = 2152398890 , NS_ERROR_UNKNOWN_SOCKET_TYPE = 2152398899 , NS_ERROR_SOCKET_CREATE_FAILED = 2152398900 , NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED = 2152398901 , NS_ERROR_SOCKET_ADDRESS_IN_USE = 2152398902 , NS_ERROR_CACHE_KEY_NOT_FOUND = 2152398909 , NS_ERROR_CACHE_DATA_IS_STREAM = 2152398910 , NS_ERROR_CACHE_DATA_IS_NOT_STREAM = 2152398911 , NS_ERROR_CACHE_WAIT_FOR_VALIDATION = 2152398912 , NS_ERROR_CACHE_ENTRY_DOOMED = 2152398913 , NS_ERROR_CACHE_READ_ACCESS_DENIED = 2152398914 , NS_ERROR_CACHE_WRITE_ACCESS_DENIED = 2152398915 , NS_ERROR_CACHE_IN_USE = 2152398916 , NS_ERROR_DOCUMENT_NOT_CACHED = 2152398918 , NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS = 2152398928 , NS_ERROR_HOST_IS_IP_ADDRESS = 2152398929 , NS_SUCCESS_ADOPTED_DATA = 4915290 , NS_NET_STATUS_BEGIN_FTP_TRANSACTION = 4915227 , NS_NET_STATUS_END_FTP_TRANSACTION = 4915228 , NS_SUCCESS_AUTH_FINISHED = 4915240 , NS_NET_STATUS_READING = 2152398856 , NS_NET_STATUS_WRITING = 2152398857 , NS_NET_STATUS_CONNECTING_TO = 2152398855 , NS_NET_STATUS_SENDING_TO = 2152398853 , NS_NET_STATUS_RECEIVING_FROM = 2152398854 , NS_ERROR_INTERCEPTION_FAILED = 2152398948 , NS_ERROR_HSTS_PRIMING_TIMEOUT = 2152398958 , NS_ERROR_PLUGINS_PLUGINSNOTCHANGED = 2152465384 , NS_ERROR_PLUGIN_DISABLED = 2152465385 , NS_ERROR_PLUGIN_BLOCKLISTED = 2152465386 , NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED = 2152465387 , NS_ERROR_PLUGIN_CLICKTOPLAY = 2152465388 , NS_TABLELAYOUT_CELL_NOT_FOUND = 5046272 , NS_OK_PARSE_SHEET = 5046273 , NS_POSITION_BEFORE_TABLE = 5046275 , NS_STATE_PROPERTY_NOT_THERE = 5046277 , NS_ERROR_HTMLPARSER_EOF = 2152596456 , NS_ERROR_HTMLPARSER_UNKNOWN = 2152596457 , NS_ERROR_HTMLPARSER_CANTPROPAGATE = 2152596458 , NS_ERROR_HTMLPARSER_CONTEXTMISMATCH = 2152596459 , NS_ERROR_HTMLPARSER_BADFILENAME = 2152596460 , NS_ERROR_HTMLPARSER_BADURL = 2152596461 , NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT = 2152596462 , NS_ERROR_HTMLPARSER_INTERRUPTED = 2152596463 , NS_ERROR_HTMLPARSER_BLOCK = 2152596464 , NS_ERROR_HTMLPARSER_BADTOKENIZER = 2152596465 , NS_ERROR_HTMLPARSER_BADATTRIBUTE = 2152596466 , NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = 2152596467 , NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT = 2152596468 , NS_ERROR_HTMLPARSER_BADDTD = 2152596469 , NS_ERROR_HTMLPARSER_BADCONTEXT = 2152596470 , NS_ERROR_HTMLPARSER_STOPPARSING = 2152596471 , NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL = 2152596472 , NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP = 2152596473 , NS_ERROR_HTMLPARSER_FAKE_ENDTAG = 2152596474 , NS_ERROR_HTMLPARSER_INVALID_COMMENT = 2152596475 , NS_HTMLTOKENS_NOT_AN_ENTITY = 5113808 , NS_HTMLPARSER_VALID_META_CHARSET = 5114808 , NS_RDF_CURSOR_EMPTY = 5177345 , NS_RDF_NO_VALUE = 5177346 , NS_RDF_ASSERTION_REJECTED = 5177347 , NS_RDF_STOP_VISIT = 5177348 , NS_ERROR_UCONV_NOCONV = 2152726529 , NS_ERROR_UDEC_ILLEGALINPUT = 2152726542 , NS_OK_HAD_REPLACEMENTS = 5242883 , NS_SUCCESS_USING_FALLBACK_LOCALE = 5242882 , NS_OK_UDEC_EXACTLENGTH = 5242891 , NS_OK_UDEC_MOREINPUT = 5242892 , NS_OK_UDEC_MOREOUTPUT = 5242893 , NS_OK_UDEC_NOBOMFOUND = 5242894 , NS_OK_UENC_EXACTLENGTH = 5242913 , NS_OK_UENC_MOREOUTPUT = 5242914 , NS_ERROR_UENC_NOMAPPING = 5242915 , NS_OK_UENC_MOREINPUT = 5242916 , NS_ERROR_FILE_UNRECOGNIZED_PATH = 2152857601 , NS_ERROR_FILE_UNRESOLVABLE_SYMLINK = 2152857602 , NS_ERROR_FILE_EXECUTION_FAILED = 2152857603 , NS_ERROR_FILE_UNKNOWN_TYPE = 2152857604 , NS_ERROR_FILE_DESTINATION_NOT_DIR = 2152857605 , NS_ERROR_FILE_TARGET_DOES_NOT_EXIST = 2152857606 , NS_ERROR_FILE_COPY_OR_MOVE_FAILED = 2152857607 , NS_ERROR_FILE_ALREADY_EXISTS = 2152857608 , NS_ERROR_FILE_INVALID_PATH = 2152857609 , NS_ERROR_FILE_DISK_FULL = 2152857610 , NS_ERROR_FILE_CORRUPTED = 2152857611 , NS_ERROR_FILE_NOT_DIRECTORY = 2152857612 , NS_ERROR_FILE_IS_DIRECTORY = 2152857613 , NS_ERROR_FILE_IS_LOCKED = 2152857614 , NS_ERROR_FILE_TOO_BIG = 2152857615 , NS_ERROR_FILE_NO_DEVICE_SPACE = 2152857616 , NS_ERROR_FILE_NAME_TOO_LONG = 2152857617 , NS_ERROR_FILE_NOT_FOUND = 2152857618 , NS_ERROR_FILE_READ_ONLY = 2152857619 , NS_ERROR_FILE_DIR_NOT_EMPTY = 2152857620 , NS_ERROR_FILE_ACCESS_DENIED = 2152857621 , NS_SUCCESS_FILE_DIRECTORY_EMPTY = 5373953 , NS_SUCCESS_AGGREGATE_RESULT = 5373954 , NS_ERROR_DOM_INDEX_SIZE_ERR = 2152923137 , NS_ERROR_DOM_HIERARCHY_REQUEST_ERR = 2152923139 , NS_ERROR_DOM_WRONG_DOCUMENT_ERR = 2152923140 , NS_ERROR_DOM_INVALID_CHARACTER_ERR = 2152923141 , NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR = 2152923143 , NS_ERROR_DOM_NOT_FOUND_ERR = 2152923144 , NS_ERROR_DOM_NOT_SUPPORTED_ERR = 2152923145 , NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR = 2152923146 , NS_ERROR_DOM_INVALID_STATE_ERR = 2152923147 , NS_ERROR_DOM_SYNTAX_ERR = 2152923148 , NS_ERROR_DOM_INVALID_MODIFICATION_ERR = 2152923149 , NS_ERROR_DOM_NAMESPACE_ERR = 2152923150 , NS_ERROR_DOM_INVALID_ACCESS_ERR = 2152923151 , NS_ERROR_DOM_TYPE_MISMATCH_ERR = 2152923153 , NS_ERROR_DOM_SECURITY_ERR = 2152923154 , NS_ERROR_DOM_NETWORK_ERR = 2152923155 , NS_ERROR_DOM_ABORT_ERR = 2152923156 , NS_ERROR_DOM_URL_MISMATCH_ERR = 2152923157 , NS_ERROR_DOM_QUOTA_EXCEEDED_ERR = 2152923158 , NS_ERROR_DOM_TIMEOUT_ERR = 2152923159 , NS_ERROR_DOM_INVALID_NODE_TYPE_ERR = 2152923160 , NS_ERROR_DOM_DATA_CLONE_ERR = 2152923161 , NS_ERROR_TYPE_ERR = 2152923162 , NS_ERROR_RANGE_ERR = 2152923163 , NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR = 2152923164 , NS_ERROR_DOM_INVALID_POINTER_ERR = 2152923165 , NS_ERROR_DOM_UNKNOWN_ERR = 2152923166 , NS_ERROR_DOM_DATA_ERR = 2152923167 , NS_ERROR_DOM_OPERATION_ERR = 2152923168 , NS_ERROR_DOM_NOT_ALLOWED_ERR = 2152923169 , NS_ERROR_DOM_SECMAN_ERR = 2152924137 , NS_ERROR_DOM_WRONG_TYPE_ERR = 2152924138 , NS_ERROR_DOM_NOT_OBJECT_ERR = 2152924139 , NS_ERROR_DOM_NOT_XPC_OBJECT_ERR = 2152924140 , NS_ERROR_DOM_NOT_NUMBER_ERR = 2152924141 , NS_ERROR_DOM_NOT_BOOLEAN_ERR = 2152924142 , NS_ERROR_DOM_NOT_FUNCTION_ERR = 2152924143 , NS_ERROR_DOM_TOO_FEW_PARAMETERS_ERR = 2152924144 , NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN = 2152924145 , NS_ERROR_DOM_PROP_ACCESS_DENIED = 2152924146 , NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED = 2152924147 , NS_ERROR_DOM_BAD_URI = 2152924148 , NS_ERROR_DOM_RETVAL_UNDEFINED = 2152924149 , NS_ERROR_DOM_QUOTA_REACHED = 2152924150 , NS_ERROR_UNCATCHABLE_EXCEPTION = 2152924151 , NS_ERROR_DOM_MALFORMED_URI = 2152924152 , NS_ERROR_DOM_INVALID_HEADER_NAME = 2152924153 , NS_ERROR_DOM_INVALID_STATE_XHR_HAS_INVALID_CONTEXT = 2152924154 , NS_ERROR_DOM_INVALID_STATE_XHR_MUST_BE_OPENED = 2152924155 , NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_SENDING = 2152924156 , NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_LOADING_OR_DONE = 2152924157 , NS_ERROR_DOM_INVALID_STATE_XHR_HAS_WRONG_RESPONSETYPE_FOR_RESPONSEXML = 2152924158 , NS_ERROR_DOM_INVALID_STATE_XHR_HAS_WRONG_RESPONSETYPE_FOR_RESPONSETEXT = 2152924159 , NS_ERROR_DOM_INVALID_STATE_XHR_CHUNKED_RESPONSETYPES_UNSUPPORTED_FOR_SYNC = 2152924160 , NS_ERROR_DOM_INVALID_ACCESS_XHR_TIMEOUT_AND_RESPONSETYPE_UNSUPPORTED_FOR_SYNC = 2152924161 , NS_ERROR_DOM_JS_DECODING_ERROR = 2152924162 , NS_SUCCESS_DOM_NO_OPERATION = 5439489 , NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW = 5439490 , NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW_UNCATCHABLE = 5439491 , NS_IMAGELIB_SUCCESS_LOAD_FINISHED = 5505024 , NS_IMAGELIB_ERROR_FAILURE = 2152988677 , NS_IMAGELIB_ERROR_NO_DECODER = 2152988678 , NS_IMAGELIB_ERROR_NOT_FINISHED = 2152988679 , NS_IMAGELIB_ERROR_NO_ENCODER = 2152988681 , NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND = 5636097 , NS_SUCCESS_EDITOR_FOUND_TARGET = 5636098 , NS_ERROR_XPC_NOT_ENOUGH_ARGS = 2153185281 , NS_ERROR_XPC_NEED_OUT_OBJECT = 2153185282 , NS_ERROR_XPC_CANT_SET_OUT_VAL = 2153185283 , NS_ERROR_XPC_NATIVE_RETURNED_FAILURE = 2153185284 , NS_ERROR_XPC_CANT_GET_INTERFACE_INFO = 2153185285 , NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO = 2153185286 , NS_ERROR_XPC_CANT_GET_METHOD_INFO = 2153185287 , NS_ERROR_XPC_UNEXPECTED = 2153185288 , NS_ERROR_XPC_BAD_CONVERT_JS = 2153185289 , NS_ERROR_XPC_BAD_CONVERT_NATIVE = 2153185290 , NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF = 2153185291 , NS_ERROR_XPC_BAD_OP_ON_WN_PROTO = 2153185292 , NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN = 2153185293 , NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN = 2153185294 , NS_ERROR_XPC_CANT_WATCH_WN_STATIC = 2153185295 , NS_ERROR_XPC_CANT_EXPORT_WN_STATIC = 2153185296 , NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED = 2153185297 , NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED = 2153185298 , NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE = 2153185299 , NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE = 2153185300 , NS_ERROR_XPC_CI_RETURNED_FAILURE = 2153185301 , NS_ERROR_XPC_GS_RETURNED_FAILURE = 2153185302 , NS_ERROR_XPC_BAD_CID = 2153185303 , NS_ERROR_XPC_BAD_IID = 2153185304 , NS_ERROR_XPC_CANT_CREATE_WN = 2153185305 , NS_ERROR_XPC_JS_THREW_EXCEPTION = 2153185306 , NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT = 2153185307 , NS_ERROR_XPC_JS_THREW_JS_OBJECT = 2153185308 , NS_ERROR_XPC_JS_THREW_NULL = 2153185309 , NS_ERROR_XPC_JS_THREW_STRING = 2153185310 , NS_ERROR_XPC_JS_THREW_NUMBER = 2153185311 , NS_ERROR_XPC_JAVASCRIPT_ERROR = 2153185312 , NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS = 2153185313 , NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY = 2153185314 , NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY = 2153185315 , NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY = 2153185316 , NS_ERROR_XPC_CANT_GET_ARRAY_INFO = 2153185317 , NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING = 2153185318 , NS_ERROR_XPC_SECURITY_MANAGER_VETO = 2153185319 , NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE = 2153185320 , NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS = 2153185321 , NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT = 2153185322 , NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT = 2153185323 , NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE = 2153185324 , NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD = 2153185325 , NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE = 2153185326 , NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED = 2153185327 , NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED = 2153185328 , NS_ERROR_XPC_BAD_ID_STRING = 2153185329 , NS_ERROR_XPC_BAD_INITIALIZER_NAME = 2153185330 , NS_ERROR_XPC_HAS_BEEN_SHUTDOWN = 2153185331 , NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN = 2153185332 , NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL = 2153185333 , NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE = 2153185334 , NS_ERROR_LAUNCHED_CHILD_PROCESS = 2153251016 , NS_ERROR_CSP_FORM_ACTION_VIOLATION = 2153381986 , NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION = 2153381987 , NS_ERROR_SRI_CORRUPT = 2153382088 , NS_ERROR_SRI_DISABLED = 2153382089 , NS_ERROR_SRI_NOT_ELIGIBLE = 2153382090 , NS_ERROR_SRI_UNEXPECTED_HASH_TYPE = 2153382091 , NS_ERROR_SRI_IMPORT = 2153382092 , NS_ERROR_CMS_VERIFY_NOT_SIGNED = 2153382912 , NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO = 2153382913 , NS_ERROR_CMS_VERIFY_BAD_DIGEST = 2153382914 , NS_ERROR_CMS_VERIFY_NOCERT = 2153382916 , NS_ERROR_CMS_VERIFY_UNTRUSTED = 2153382917 , NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED = 2153382919 , NS_ERROR_CMS_VERIFY_ERROR_PROCESSING = 2153382920 , NS_ERROR_CMS_VERIFY_BAD_SIGNATURE = 2153382921 , NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH = 2153382922 , NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO = 2153382923 , NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO = 2153382924 , NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE = 2153382925 , NS_ERROR_CMS_VERIFY_HEADER_MISMATCH = 2153382926 , NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED = 2153382927 , NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS = 2153382928 , NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG = 2153382944 , NS_ERROR_CMS_ENCRYPT_INCOMPLETE = 2153382945 , NS_ERROR_DOM_INVALID_EXPRESSION_ERR = 2153447475 , NS_ERROR_DOM_TYPE_ERR = 2153447476 , NS_ERROR_WONT_HANDLE_CONTENT = 2153578497 , NS_ERROR_MALWARE_URI = 2153578526 , NS_ERROR_PHISHING_URI = 2153578527 , NS_ERROR_TRACKING_URI = 2153578530 , NS_ERROR_UNWANTED_URI = 2153578531 , NS_ERROR_BLOCKED_URI = 2153578533 , NS_ERROR_HARMFUL_URI = 2153578534 , NS_ERROR_SAVE_LINK_AS_TIMEOUT = 2153578528 , NS_ERROR_PARSED_DATA_CACHED = 2153578529 , NS_REFRESHURI_HEADER_FOUND = 6094850 , NS_ERROR_CONTENT_BLOCKED = 2153644038 , NS_ERROR_CONTENT_BLOCKED_SHOW_ALT = 2153644039 , NS_PROPTABLE_PROP_NOT_THERE = 2153644042 , NS_ERROR_XBL_BLOCKED = 2153644047 , NS_ERROR_CONTENT_CRASHED = 2153644048 , NS_HTML_STYLE_PROPERTY_NOT_THERE = 6160386 , NS_CONTENT_BLOCKED = 6160392 , NS_CONTENT_BLOCKED_SHOW_ALT = 6160393 , NS_PROPTABLE_PROP_OVERWRITTEN = 6160395 , NS_FINDBROADCASTER_NOT_FOUND = 6160396 , NS_FINDBROADCASTER_FOUND = 6160397 , NS_FINDBROADCASTER_AWAIT_OVERLAYS = 6160398 , NS_ERROR_XSLT_PARSE_FAILURE = 2153775105 , NS_ERROR_XPATH_PARSE_FAILURE = 2153775106 , NS_ERROR_XSLT_ALREADY_SET = 2153775107 , NS_ERROR_XSLT_EXECUTION_FAILURE = 2153775108 , NS_ERROR_XPATH_UNKNOWN_FUNCTION = 2153775109 , NS_ERROR_XSLT_BAD_RECURSION = 2153775110 , NS_ERROR_XSLT_BAD_VALUE = 2153775111 , NS_ERROR_XSLT_NODESET_EXPECTED = 2153775112 , NS_ERROR_XSLT_ABORTED = 2153775113 , NS_ERROR_XSLT_NETWORK_ERROR = 2153775114 , NS_ERROR_XSLT_WRONG_MIME_TYPE = 2153775115 , NS_ERROR_XSLT_LOAD_RECURSION = 2153775116 , NS_ERROR_XPATH_BAD_ARGUMENT_COUNT = 2153775117 , NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION = 2153775118 , NS_ERROR_XPATH_PAREN_EXPECTED = 2153775119 , NS_ERROR_XPATH_INVALID_AXIS = 2153775120 , NS_ERROR_XPATH_NO_NODE_TYPE_TEST = 2153775121 , NS_ERROR_XPATH_BRACKET_EXPECTED = 2153775122 , NS_ERROR_XPATH_INVALID_VAR_NAME = 2153775123 , NS_ERROR_XPATH_UNEXPECTED_END = 2153775124 , NS_ERROR_XPATH_OPERATOR_EXPECTED = 2153775125 , NS_ERROR_XPATH_UNCLOSED_LITERAL = 2153775126 , NS_ERROR_XPATH_BAD_COLON = 2153775127 , NS_ERROR_XPATH_BAD_BANG = 2153775128 , NS_ERROR_XPATH_ILLEGAL_CHAR = 2153775129 , NS_ERROR_XPATH_BINARY_EXPECTED = 2153775130 , NS_ERROR_XSLT_LOAD_BLOCKED_ERROR = 2153775131 , NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED = 2153775132 , NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE = 2153775133 , NS_ERROR_XSLT_BAD_NODE_NAME = 2153775134 , NS_ERROR_XSLT_VAR_ALREADY_SET = 2153775135 , NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED = 2153775136 , NS_XSLT_GET_NEW_HANDLER = 6291457 , NS_ERROR_TRANSPORT_INIT = 2153840641 , NS_ERROR_DUPLICATE_HANDLE = 2153840642 , NS_ERROR_BRIDGE_OPEN_PARENT = 2153840643 , NS_ERROR_BRIDGE_OPEN_CHILD = 2153840644 , NS_ERROR_DOM_SVG_WRONG_TYPE_ERR = 2153906176 , NS_ERROR_DOM_SVG_MATRIX_NOT_INVERTABLE = 2153906178 , NS_ERROR_STORAGE_BUSY = 2153971713 , NS_ERROR_STORAGE_IOERR = 2153971714 , NS_ERROR_STORAGE_CONSTRAINT = 2153971715 , NS_ERROR_DOM_FILE_NOT_FOUND_ERR = 2154102784 , NS_ERROR_DOM_FILE_NOT_READABLE_ERR = 2154102785 , NS_ERROR_DOM_FILE_ABORT_ERR = 2154102786 , NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR = 2154168321 , NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR = 2154168323 , NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR = 2154168324 , NS_ERROR_DOM_INDEXEDDB_DATA_ERR = 2154168325 , NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR = 2154168326 , NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR = 2154168327 , NS_ERROR_DOM_INDEXEDDB_ABORT_ERR = 2154168328 , NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR = 2154168329 , NS_ERROR_DOM_INDEXEDDB_TIMEOUT_ERR = 2154168330 , NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR = 2154168331 , NS_ERROR_DOM_INDEXEDDB_VERSION_ERR = 2154168332 , NS_ERROR_DOM_INDEXEDDB_RECOVERABLE_ERR = 2154169321 , NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR = 2154233857 , NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR = 2154233858 , NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR = 2154233859 , NS_ERROR_DOM_FILEHANDLE_ABORT_ERR = 2154233860 , NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR = 2154233861 , NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR = 2154233862 , NS_ERROR_SIGNED_JAR_NOT_SIGNED = 2154299393 , NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY = 2154299394 , NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY = 2154299395 , NS_ERROR_SIGNED_JAR_ENTRY_MISSING = 2154299396 , NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE = 2154299397 , NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE = 2154299398 , NS_ERROR_SIGNED_JAR_ENTRY_INVALID = 2154299399 , NS_ERROR_SIGNED_JAR_MANIFEST_INVALID = 2154299400 , NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR = 2154364929 , NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR = 2154364930 , NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR = 2154364931 , NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR = 2154364932 , NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR = 2154364933 , NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR = 2154364934 , NS_ERROR_SIGNED_APP_MANIFEST_INVALID = 2154496001 , NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR = 2154561537 , NS_ERROR_DOM_PUSH_INVALID_REGISTRATION_ERR = 2154627073 , NS_ERROR_DOM_PUSH_DENIED_ERR = 2154627074 , NS_ERROR_DOM_PUSH_ABORT_ERR = 2154627075 , NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE = 2154627076 , NS_ERROR_DOM_PUSH_INVALID_KEY_ERR = 2154627077 , NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR = 2154627078 , NS_ERROR_DOM_PUSH_GCM_DISABLED = 2154627079 , NS_ERROR_DOM_MEDIA_ABORT_ERR = 2154692609 , NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR = 2154692610 , NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR = 2154692611 , NS_ERROR_DOM_MEDIA_DECODE_ERR = 2154692612 , NS_ERROR_DOM_MEDIA_FATAL_ERR = 2154692613 , NS_ERROR_DOM_MEDIA_METADATA_ERR = 2154692614 , NS_ERROR_DOM_MEDIA_OVERFLOW_ERR = 2154692615 , NS_ERROR_DOM_MEDIA_END_OF_STREAM = 2154692616 , NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA = 2154692617 , NS_ERROR_DOM_MEDIA_CANCELED = 2154692618 , NS_ERROR_DOM_MEDIA_MEDIASINK_ERR = 2154692619 , NS_ERROR_DOM_MEDIA_DEMUXER_ERR = 2154692620 , NS_ERROR_DOM_MEDIA_CDM_ERR = 2154692621 , NS_ERROR_DOM_MEDIA_NEED_NEW_DECODER = 2154692622 , NS_ERROR_DOM_MEDIA_INITIALIZING_DECODER = 2154692623 , NS_ERROR_DOM_MEDIA_CUBEB_INITIALIZATION_ERR = 2154692709 , NS_ERROR_UC_UPDATE_UNKNOWN = 2154758145 , NS_ERROR_UC_UPDATE_DUPLICATE_PREFIX = 2154758146 , NS_ERROR_UC_UPDATE_INFINITE_LOOP = 2154758147 , NS_ERROR_UC_UPDATE_WRONG_REMOVAL_INDICES = 2154758148 , NS_ERROR_UC_UPDATE_CHECKSUM_MISMATCH = 2154758149 , NS_ERROR_UC_UPDATE_MISSING_CHECKSUM = 2154758150 , NS_ERROR_UC_UPDATE_SHUTDOWNING = 2154758151 , NS_ERROR_UC_UPDATE_TABLE_NOT_FOUND = 2154758152 , NS_ERROR_UC_UPDATE_BUILD_PREFIX_FAILURE = 2154758153 , NS_ERROR_UC_UPDATE_FAIL_TO_WRITE_DISK = 2154758154 , NS_ERROR_UC_UPDATE_PROTOCOL_PARSER_ERROR = 2154758155 , NS_ERROR_INTERNAL_ERRORRESULT_JS_EXCEPTION = 2154823681 , NS_ERROR_INTERNAL_ERRORRESULT_DOMEXCEPTION = 2154823682 , NS_ERROR_INTERNAL_ERRORRESULT_EXCEPTION_ON_JSCONTEXT = 2154823683 , NS_ERROR_INTERNAL_ERRORRESULT_TYPEERROR = 2154823684 , NS_ERROR_INTERNAL_ERRORRESULT_RANGEERROR = 2154823685 , NS_ERROR_DOWNLOAD_COMPLETE = 2155347969 , NS_ERROR_DOWNLOAD_NOT_PARTIAL = 2155347970 , NS_ERROR_UNORM_MOREOUTPUT = 2155348001 , NS_ERROR_DOCSHELL_REQUEST_REJECTED = 2155348969 , NS_ERROR_DOCUMENT_IS_PRINTMODE = 2155349969 , NS_SUCCESS_DONT_FIXUP = 7864321 , NS_SUCCESS_RESTART_APP_NOT_SAME_PROFILE = 7864323 , NS_SUCCESS_UNORM_NOTFOUND = 7864337 , NS_ERROR_NOT_IN_TREE = 2155348006 , NS_OK_NO_NAME_CLAUSE_HANDLED = 7864354 , } pub type nsrefcnt = root :: MozRefCountType ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIFrame { _unused : [ u8 ; 0 ] } pub type nsAString = root :: nsTSubstring < u16 > ; pub type nsAutoString = [ u64 ; 19usize ] ; pub type nsACString = root :: nsTSubstring < :: std :: os :: raw :: c_char > ; pub type nsCString = root :: nsTString < :: std :: os :: raw :: c_char > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsCharTraits { pub _address : u8 , }
- /// @see nsTAString
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsReadingIterator < CharT > { pub mStart : * mut CharT , pub mEnd : * mut CharT , pub mPosition : * mut CharT , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < CharT > > , } pub type nsReadingIterator_self_type < CharT > = root :: nsReadingIterator < CharT > ; pub type nsReadingIterator_difference_type = isize ; pub type nsReadingIterator_size_type = usize ; pub type nsReadingIterator_value_type < CharT > = CharT ; pub type nsReadingIterator_pointer < CharT > = * mut CharT ; pub type nsReadingIterator_reference = u8 ;
- /// @see nsTAString
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsWritingIterator < CharT > { pub mStart : * mut CharT , pub mEnd : * mut CharT , pub mPosition : * mut CharT , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < CharT > > , } pub type nsWritingIterator_self_type < CharT > = root :: nsWritingIterator < CharT > ; pub type nsWritingIterator_difference_type = isize ; pub type nsWritingIterator_size_type = usize ; pub type nsWritingIterator_value_type < CharT > = CharT ; pub type nsWritingIterator_pointer < CharT > = * mut CharT ; pub type nsWritingIterator_reference = u8 ; # [ repr ( C ) ] pub struct nsTStringComparator__bindgen_vtable ( :: std :: os :: raw :: c_void ) ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTStringComparator { pub vtable_ : * const nsTStringComparator__bindgen_vtable , } pub type nsTStringComparator_char_type < T > = T ;
- /// nsTSubstring is an abstract string class. From an API perspective, this
+ /// usable for both C and C++ code.
+ pub type MozRefCountType = usize;
+ pub const nsresult_NS_ERROR_NO_INTERFACE: root::nsresult = nsresult::NS_NOINTERFACE;
+ pub const nsresult_NS_ERROR_INVALID_ARG: root::nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE;
+ pub const nsresult_NS_ERROR_INVALID_POINTER: root::nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE;
+ pub const nsresult_NS_ERROR_NULL_POINTER: root::nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE;
+ pub const nsresult_NS_BINDING_SUCCEEDED: root::nsresult = nsresult::NS_OK;
+ pub const nsresult_NS_NET_STATUS_RESOLVING_HOST: root::nsresult =
+ nsresult::NS_BINDING_REDIRECTED;
+ pub const nsresult_NS_NET_STATUS_RESOLVED_HOST: root::nsresult =
+ nsresult::NS_ERROR_ALREADY_CONNECTED;
+ pub const nsresult_NS_NET_STATUS_CONNECTED_TO: root::nsresult = nsresult::NS_BINDING_RETARGETED;
+ pub const nsresult_NS_NET_STATUS_TLS_HANDSHAKE_STARTING: root::nsresult =
+ nsresult::NS_ERROR_NOT_CONNECTED;
+ pub const nsresult_NS_NET_STATUS_TLS_HANDSHAKE_ENDED: root::nsresult =
+ nsresult::NS_ERROR_CONNECTION_REFUSED;
+ pub const nsresult_NS_NET_STATUS_WAITING_FOR: root::nsresult = nsresult::NS_ERROR_MALFORMED_URI;
+ pub const nsresult_NS_STATE_PROPERTY_EXISTS: root::nsresult = nsresult::NS_OK;
+ pub const nsresult_NS_ERROR_HTMLPARSER_CONTINUE: root::nsresult = nsresult::NS_OK;
+ pub const nsresult_NS_RDF_ASSERTION_ACCEPTED: root::nsresult = nsresult::NS_OK;
+ pub const nsresult_NS_EXACT_LENGTH: root::nsresult = nsresult::NS_OK_UDEC_EXACTLENGTH;
+ pub const nsresult_NS_PARTIAL_MORE_INPUT: root::nsresult = nsresult::NS_OK_UDEC_MOREINPUT;
+ pub const nsresult_NS_PARTIAL_MORE_OUTPUT: root::nsresult = nsresult::NS_OK_UDEC_MOREOUTPUT;
+ pub const nsresult_NS_ERROR_ILLEGAL_INPUT: root::nsresult =
+ nsresult::NS_ERROR_UDEC_ILLEGALINPUT;
+ pub const nsresult_NS_ERROR_XPATH_INVALID_ARG: root::nsresult =
+ nsresult::NS_ERROR_ILLEGAL_VALUE;
+ pub const nsresult_NS_SUCCESS_RESTART_APP: root::nsresult = nsresult::NS_SUCCESS_DONT_FIXUP;
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsresult {
+ NS_OK = 0,
+ NS_ERROR_BASE = 3253927936,
+ NS_ERROR_NOT_INITIALIZED = 3253927937,
+ NS_ERROR_ALREADY_INITIALIZED = 3253927938,
+ NS_ERROR_NOT_IMPLEMENTED = 2147500033,
+ NS_NOINTERFACE = 2147500034,
+ NS_ERROR_ABORT = 2147500036,
+ NS_ERROR_FAILURE = 2147500037,
+ NS_ERROR_UNEXPECTED = 2147549183,
+ NS_ERROR_OUT_OF_MEMORY = 2147942414,
+ NS_ERROR_ILLEGAL_VALUE = 2147942487,
+ NS_ERROR_NO_AGGREGATION = 2147746064,
+ NS_ERROR_NOT_AVAILABLE = 2147746065,
+ NS_ERROR_FACTORY_NOT_REGISTERED = 2147746132,
+ NS_ERROR_FACTORY_REGISTER_AGAIN = 2147746133,
+ NS_ERROR_FACTORY_NOT_LOADED = 2147746296,
+ NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = 3253928193,
+ NS_ERROR_FACTORY_EXISTS = 3253928192,
+ NS_ERROR_CANNOT_CONVERT_DATA = 2152071169,
+ NS_ERROR_OBJECT_IS_IMMUTABLE = 2152071170,
+ NS_ERROR_LOSS_OF_SIGNIFICANT_DATA = 2152071171,
+ NS_ERROR_NOT_SAME_THREAD = 2152071172,
+ NS_ERROR_ILLEGAL_DURING_SHUTDOWN = 2152071198,
+ NS_ERROR_SERVICE_NOT_AVAILABLE = 2152071190,
+ NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA = 4587521,
+ NS_SUCCESS_INTERRUPTED_TRAVERSE = 4587522,
+ NS_ERROR_SERVICE_NOT_FOUND = 4587542,
+ NS_ERROR_SERVICE_IN_USE = 4587543,
+ NS_BASE_STREAM_CLOSED = 2152136706,
+ NS_BASE_STREAM_OSERROR = 2152136707,
+ NS_BASE_STREAM_ILLEGAL_ARGS = 2152136708,
+ NS_BASE_STREAM_NO_CONVERTER = 2152136709,
+ NS_BASE_STREAM_BAD_CONVERSION = 2152136710,
+ NS_BASE_STREAM_WOULD_BLOCK = 2152136711,
+ NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE = 2152202241,
+ NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND = 2152202242,
+ NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE = 2152202243,
+ NS_ERROR_GFX_PRINTER_STARTDOC = 2152202244,
+ NS_ERROR_GFX_PRINTER_ENDDOC = 2152202245,
+ NS_ERROR_GFX_PRINTER_STARTPAGE = 2152202246,
+ NS_ERROR_GFX_PRINTER_DOC_IS_BUSY = 2152202247,
+ NS_ERROR_GFX_CMAP_MALFORMED = 2152202291,
+ NS_SUCCESS_EVENT_CONSUMED = 4784129,
+ NS_SUCCESS_EVENT_HANDLED_ASYNCHRONOUSLY = 4784130,
+ NS_BINDING_FAILED = 2152398849,
+ NS_BINDING_ABORTED = 2152398850,
+ NS_BINDING_REDIRECTED = 2152398851,
+ NS_BINDING_RETARGETED = 2152398852,
+ NS_ERROR_MALFORMED_URI = 2152398858,
+ NS_ERROR_IN_PROGRESS = 2152398863,
+ NS_ERROR_NO_CONTENT = 2152398865,
+ NS_ERROR_UNKNOWN_PROTOCOL = 2152398866,
+ NS_ERROR_INVALID_CONTENT_ENCODING = 2152398875,
+ NS_ERROR_CORRUPTED_CONTENT = 2152398877,
+ NS_ERROR_INVALID_SIGNATURE = 2152398906,
+ NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY = 2152398882,
+ NS_ERROR_ALREADY_OPENED = 2152398921,
+ NS_ERROR_ALREADY_CONNECTED = 2152398859,
+ NS_ERROR_NOT_CONNECTED = 2152398860,
+ NS_ERROR_CONNECTION_REFUSED = 2152398861,
+ NS_ERROR_NET_TIMEOUT = 2152398862,
+ NS_ERROR_OFFLINE = 2152398864,
+ NS_ERROR_PORT_ACCESS_NOT_ALLOWED = 2152398867,
+ NS_ERROR_NET_RESET = 2152398868,
+ NS_ERROR_NET_INTERRUPT = 2152398919,
+ NS_ERROR_PROXY_CONNECTION_REFUSED = 2152398920,
+ NS_ERROR_NET_PARTIAL_TRANSFER = 2152398924,
+ NS_ERROR_NET_INADEQUATE_SECURITY = 2152398930,
+ NS_ERROR_NOT_RESUMABLE = 2152398873,
+ NS_ERROR_REDIRECT_LOOP = 2152398879,
+ NS_ERROR_ENTITY_CHANGED = 2152398880,
+ NS_ERROR_UNSAFE_CONTENT_TYPE = 2152398922,
+ NS_ERROR_REMOTE_XUL = 2152398923,
+ NS_ERROR_LOAD_SHOWED_ERRORPAGE = 2152398925,
+ NS_ERROR_DOCSHELL_DYING = 2152398926,
+ NS_ERROR_FTP_LOGIN = 2152398869,
+ NS_ERROR_FTP_CWD = 2152398870,
+ NS_ERROR_FTP_PASV = 2152398871,
+ NS_ERROR_FTP_PWD = 2152398872,
+ NS_ERROR_FTP_LIST = 2152398876,
+ NS_ERROR_UNKNOWN_HOST = 2152398878,
+ NS_ERROR_DNS_LOOKUP_QUEUE_FULL = 2152398881,
+ NS_ERROR_UNKNOWN_PROXY_HOST = 2152398890,
+ NS_ERROR_UNKNOWN_SOCKET_TYPE = 2152398899,
+ NS_ERROR_SOCKET_CREATE_FAILED = 2152398900,
+ NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED = 2152398901,
+ NS_ERROR_SOCKET_ADDRESS_IN_USE = 2152398902,
+ NS_ERROR_CACHE_KEY_NOT_FOUND = 2152398909,
+ NS_ERROR_CACHE_DATA_IS_STREAM = 2152398910,
+ NS_ERROR_CACHE_DATA_IS_NOT_STREAM = 2152398911,
+ NS_ERROR_CACHE_WAIT_FOR_VALIDATION = 2152398912,
+ NS_ERROR_CACHE_ENTRY_DOOMED = 2152398913,
+ NS_ERROR_CACHE_READ_ACCESS_DENIED = 2152398914,
+ NS_ERROR_CACHE_WRITE_ACCESS_DENIED = 2152398915,
+ NS_ERROR_CACHE_IN_USE = 2152398916,
+ NS_ERROR_DOCUMENT_NOT_CACHED = 2152398918,
+ NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS = 2152398928,
+ NS_ERROR_HOST_IS_IP_ADDRESS = 2152398929,
+ NS_SUCCESS_ADOPTED_DATA = 4915290,
+ NS_NET_STATUS_BEGIN_FTP_TRANSACTION = 4915227,
+ NS_NET_STATUS_END_FTP_TRANSACTION = 4915228,
+ NS_SUCCESS_AUTH_FINISHED = 4915240,
+ NS_NET_STATUS_READING = 2152398856,
+ NS_NET_STATUS_WRITING = 2152398857,
+ NS_NET_STATUS_CONNECTING_TO = 2152398855,
+ NS_NET_STATUS_SENDING_TO = 2152398853,
+ NS_NET_STATUS_RECEIVING_FROM = 2152398854,
+ NS_ERROR_INTERCEPTION_FAILED = 2152398948,
+ NS_ERROR_PLUGINS_PLUGINSNOTCHANGED = 2152465384,
+ NS_ERROR_PLUGIN_DISABLED = 2152465385,
+ NS_ERROR_PLUGIN_BLOCKLISTED = 2152465386,
+ NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED = 2152465387,
+ NS_ERROR_PLUGIN_CLICKTOPLAY = 2152465388,
+ NS_TABLELAYOUT_CELL_NOT_FOUND = 5046272,
+ NS_OK_PARSE_SHEET = 5046273,
+ NS_POSITION_BEFORE_TABLE = 5046275,
+ NS_STATE_PROPERTY_NOT_THERE = 5046277,
+ NS_ERROR_HTMLPARSER_EOF = 2152596456,
+ NS_ERROR_HTMLPARSER_UNKNOWN = 2152596457,
+ NS_ERROR_HTMLPARSER_CANTPROPAGATE = 2152596458,
+ NS_ERROR_HTMLPARSER_CONTEXTMISMATCH = 2152596459,
+ NS_ERROR_HTMLPARSER_BADFILENAME = 2152596460,
+ NS_ERROR_HTMLPARSER_BADURL = 2152596461,
+ NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT = 2152596462,
+ NS_ERROR_HTMLPARSER_INTERRUPTED = 2152596463,
+ NS_ERROR_HTMLPARSER_BLOCK = 2152596464,
+ NS_ERROR_HTMLPARSER_BADTOKENIZER = 2152596465,
+ NS_ERROR_HTMLPARSER_BADATTRIBUTE = 2152596466,
+ NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = 2152596467,
+ NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT = 2152596468,
+ NS_ERROR_HTMLPARSER_BADDTD = 2152596469,
+ NS_ERROR_HTMLPARSER_BADCONTEXT = 2152596470,
+ NS_ERROR_HTMLPARSER_STOPPARSING = 2152596471,
+ NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL = 2152596472,
+ NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP = 2152596473,
+ NS_ERROR_HTMLPARSER_FAKE_ENDTAG = 2152596474,
+ NS_ERROR_HTMLPARSER_INVALID_COMMENT = 2152596475,
+ NS_HTMLTOKENS_NOT_AN_ENTITY = 5113808,
+ NS_HTMLPARSER_VALID_META_CHARSET = 5114808,
+ NS_RDF_CURSOR_EMPTY = 5177345,
+ NS_RDF_NO_VALUE = 5177346,
+ NS_RDF_ASSERTION_REJECTED = 5177347,
+ NS_RDF_STOP_VISIT = 5177348,
+ NS_ERROR_UCONV_NOCONV = 2152726529,
+ NS_ERROR_UDEC_ILLEGALINPUT = 2152726542,
+ NS_OK_HAD_REPLACEMENTS = 5242883,
+ NS_SUCCESS_USING_FALLBACK_LOCALE = 5242882,
+ NS_OK_UDEC_EXACTLENGTH = 5242891,
+ NS_OK_UDEC_MOREINPUT = 5242892,
+ NS_OK_UDEC_MOREOUTPUT = 5242893,
+ NS_OK_UDEC_NOBOMFOUND = 5242894,
+ NS_OK_UENC_EXACTLENGTH = 5242913,
+ NS_OK_UENC_MOREOUTPUT = 5242914,
+ NS_ERROR_UENC_NOMAPPING = 5242915,
+ NS_OK_UENC_MOREINPUT = 5242916,
+ NS_ERROR_FILE_UNRECOGNIZED_PATH = 2152857601,
+ NS_ERROR_FILE_UNRESOLVABLE_SYMLINK = 2152857602,
+ NS_ERROR_FILE_EXECUTION_FAILED = 2152857603,
+ NS_ERROR_FILE_UNKNOWN_TYPE = 2152857604,
+ NS_ERROR_FILE_DESTINATION_NOT_DIR = 2152857605,
+ NS_ERROR_FILE_TARGET_DOES_NOT_EXIST = 2152857606,
+ NS_ERROR_FILE_COPY_OR_MOVE_FAILED = 2152857607,
+ NS_ERROR_FILE_ALREADY_EXISTS = 2152857608,
+ NS_ERROR_FILE_INVALID_PATH = 2152857609,
+ NS_ERROR_FILE_DISK_FULL = 2152857610,
+ NS_ERROR_FILE_CORRUPTED = 2152857611,
+ NS_ERROR_FILE_NOT_DIRECTORY = 2152857612,
+ NS_ERROR_FILE_IS_DIRECTORY = 2152857613,
+ NS_ERROR_FILE_IS_LOCKED = 2152857614,
+ NS_ERROR_FILE_TOO_BIG = 2152857615,
+ NS_ERROR_FILE_NO_DEVICE_SPACE = 2152857616,
+ NS_ERROR_FILE_NAME_TOO_LONG = 2152857617,
+ NS_ERROR_FILE_NOT_FOUND = 2152857618,
+ NS_ERROR_FILE_READ_ONLY = 2152857619,
+ NS_ERROR_FILE_DIR_NOT_EMPTY = 2152857620,
+ NS_ERROR_FILE_ACCESS_DENIED = 2152857621,
+ NS_SUCCESS_FILE_DIRECTORY_EMPTY = 5373953,
+ NS_SUCCESS_AGGREGATE_RESULT = 5373954,
+ NS_ERROR_DOM_INDEX_SIZE_ERR = 2152923137,
+ NS_ERROR_DOM_HIERARCHY_REQUEST_ERR = 2152923139,
+ NS_ERROR_DOM_WRONG_DOCUMENT_ERR = 2152923140,
+ NS_ERROR_DOM_INVALID_CHARACTER_ERR = 2152923141,
+ NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR = 2152923143,
+ NS_ERROR_DOM_NOT_FOUND_ERR = 2152923144,
+ NS_ERROR_DOM_NOT_SUPPORTED_ERR = 2152923145,
+ NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR = 2152923146,
+ NS_ERROR_DOM_INVALID_STATE_ERR = 2152923147,
+ NS_ERROR_DOM_SYNTAX_ERR = 2152923148,
+ NS_ERROR_DOM_INVALID_MODIFICATION_ERR = 2152923149,
+ NS_ERROR_DOM_NAMESPACE_ERR = 2152923150,
+ NS_ERROR_DOM_INVALID_ACCESS_ERR = 2152923151,
+ NS_ERROR_DOM_TYPE_MISMATCH_ERR = 2152923153,
+ NS_ERROR_DOM_SECURITY_ERR = 2152923154,
+ NS_ERROR_DOM_NETWORK_ERR = 2152923155,
+ NS_ERROR_DOM_ABORT_ERR = 2152923156,
+ NS_ERROR_DOM_URL_MISMATCH_ERR = 2152923157,
+ NS_ERROR_DOM_QUOTA_EXCEEDED_ERR = 2152923158,
+ NS_ERROR_DOM_TIMEOUT_ERR = 2152923159,
+ NS_ERROR_DOM_INVALID_NODE_TYPE_ERR = 2152923160,
+ NS_ERROR_DOM_DATA_CLONE_ERR = 2152923161,
+ NS_ERROR_TYPE_ERR = 2152923162,
+ NS_ERROR_RANGE_ERR = 2152923163,
+ NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR = 2152923164,
+ NS_ERROR_DOM_INVALID_POINTER_ERR = 2152923165,
+ NS_ERROR_DOM_UNKNOWN_ERR = 2152923166,
+ NS_ERROR_DOM_DATA_ERR = 2152923167,
+ NS_ERROR_DOM_OPERATION_ERR = 2152923168,
+ NS_ERROR_DOM_NOT_ALLOWED_ERR = 2152923169,
+ NS_ERROR_DOM_SECMAN_ERR = 2152924137,
+ NS_ERROR_DOM_WRONG_TYPE_ERR = 2152924138,
+ NS_ERROR_DOM_NOT_OBJECT_ERR = 2152924139,
+ NS_ERROR_DOM_NOT_XPC_OBJECT_ERR = 2152924140,
+ NS_ERROR_DOM_NOT_NUMBER_ERR = 2152924141,
+ NS_ERROR_DOM_NOT_BOOLEAN_ERR = 2152924142,
+ NS_ERROR_DOM_NOT_FUNCTION_ERR = 2152924143,
+ NS_ERROR_DOM_TOO_FEW_PARAMETERS_ERR = 2152924144,
+ NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN = 2152924145,
+ NS_ERROR_DOM_PROP_ACCESS_DENIED = 2152924146,
+ NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED = 2152924147,
+ NS_ERROR_DOM_BAD_URI = 2152924148,
+ NS_ERROR_DOM_RETVAL_UNDEFINED = 2152924149,
+ NS_ERROR_DOM_QUOTA_REACHED = 2152924150,
+ NS_ERROR_UNCATCHABLE_EXCEPTION = 2152924151,
+ NS_ERROR_DOM_MALFORMED_URI = 2152924152,
+ NS_ERROR_DOM_INVALID_HEADER_NAME = 2152924153,
+ NS_ERROR_DOM_INVALID_STATE_XHR_HAS_INVALID_CONTEXT = 2152924154,
+ NS_ERROR_DOM_INVALID_STATE_XHR_MUST_BE_OPENED = 2152924155,
+ NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_SENDING = 2152924156,
+ NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_LOADING_OR_DONE = 2152924157,
+ NS_ERROR_DOM_INVALID_STATE_XHR_HAS_WRONG_RESPONSETYPE_FOR_RESPONSEXML = 2152924158,
+ NS_ERROR_DOM_INVALID_STATE_XHR_HAS_WRONG_RESPONSETYPE_FOR_RESPONSETEXT = 2152924159,
+ NS_ERROR_DOM_INVALID_STATE_XHR_CHUNKED_RESPONSETYPES_UNSUPPORTED_FOR_SYNC = 2152924160,
+ NS_ERROR_DOM_INVALID_ACCESS_XHR_TIMEOUT_AND_RESPONSETYPE_UNSUPPORTED_FOR_SYNC = 2152924161,
+ NS_ERROR_DOM_JS_DECODING_ERROR = 2152924162,
+ NS_SUCCESS_DOM_NO_OPERATION = 5439489,
+ NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW = 5439490,
+ NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW_UNCATCHABLE = 5439491,
+ NS_IMAGELIB_SUCCESS_LOAD_FINISHED = 5505024,
+ NS_IMAGELIB_ERROR_FAILURE = 2152988677,
+ NS_IMAGELIB_ERROR_NO_DECODER = 2152988678,
+ NS_IMAGELIB_ERROR_NOT_FINISHED = 2152988679,
+ NS_IMAGELIB_ERROR_NO_ENCODER = 2152988681,
+ NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND = 5636097,
+ NS_SUCCESS_EDITOR_FOUND_TARGET = 5636098,
+ NS_ERROR_XPC_NOT_ENOUGH_ARGS = 2153185281,
+ NS_ERROR_XPC_NEED_OUT_OBJECT = 2153185282,
+ NS_ERROR_XPC_CANT_SET_OUT_VAL = 2153185283,
+ NS_ERROR_XPC_NATIVE_RETURNED_FAILURE = 2153185284,
+ NS_ERROR_XPC_CANT_GET_INTERFACE_INFO = 2153185285,
+ NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO = 2153185286,
+ NS_ERROR_XPC_CANT_GET_METHOD_INFO = 2153185287,
+ NS_ERROR_XPC_UNEXPECTED = 2153185288,
+ NS_ERROR_XPC_BAD_CONVERT_JS = 2153185289,
+ NS_ERROR_XPC_BAD_CONVERT_NATIVE = 2153185290,
+ NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF = 2153185291,
+ NS_ERROR_XPC_BAD_OP_ON_WN_PROTO = 2153185292,
+ NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN = 2153185293,
+ NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN = 2153185294,
+ NS_ERROR_XPC_CANT_WATCH_WN_STATIC = 2153185295,
+ NS_ERROR_XPC_CANT_EXPORT_WN_STATIC = 2153185296,
+ NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED = 2153185297,
+ NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED = 2153185298,
+ NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE = 2153185299,
+ NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE = 2153185300,
+ NS_ERROR_XPC_CI_RETURNED_FAILURE = 2153185301,
+ NS_ERROR_XPC_GS_RETURNED_FAILURE = 2153185302,
+ NS_ERROR_XPC_BAD_CID = 2153185303,
+ NS_ERROR_XPC_BAD_IID = 2153185304,
+ NS_ERROR_XPC_CANT_CREATE_WN = 2153185305,
+ NS_ERROR_XPC_JS_THREW_EXCEPTION = 2153185306,
+ NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT = 2153185307,
+ NS_ERROR_XPC_JS_THREW_JS_OBJECT = 2153185308,
+ NS_ERROR_XPC_JS_THREW_NULL = 2153185309,
+ NS_ERROR_XPC_JS_THREW_STRING = 2153185310,
+ NS_ERROR_XPC_JS_THREW_NUMBER = 2153185311,
+ NS_ERROR_XPC_JAVASCRIPT_ERROR = 2153185312,
+ NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS = 2153185313,
+ NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY = 2153185314,
+ NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY = 2153185315,
+ NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY = 2153185316,
+ NS_ERROR_XPC_CANT_GET_ARRAY_INFO = 2153185317,
+ NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING = 2153185318,
+ NS_ERROR_XPC_SECURITY_MANAGER_VETO = 2153185319,
+ NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE = 2153185320,
+ NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS = 2153185321,
+ NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT = 2153185322,
+ NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT = 2153185323,
+ NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE = 2153185324,
+ NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD = 2153185325,
+ NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE = 2153185326,
+ NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED = 2153185327,
+ NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED = 2153185328,
+ NS_ERROR_XPC_BAD_ID_STRING = 2153185329,
+ NS_ERROR_XPC_BAD_INITIALIZER_NAME = 2153185330,
+ NS_ERROR_XPC_HAS_BEEN_SHUTDOWN = 2153185331,
+ NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN = 2153185332,
+ NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL = 2153185333,
+ NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE = 2153185334,
+ NS_ERROR_LAUNCHED_CHILD_PROCESS = 2153251016,
+ NS_ERROR_CSP_FORM_ACTION_VIOLATION = 2153381986,
+ NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION = 2153381987,
+ NS_ERROR_SRI_CORRUPT = 2153382088,
+ NS_ERROR_SRI_DISABLED = 2153382089,
+ NS_ERROR_SRI_NOT_ELIGIBLE = 2153382090,
+ NS_ERROR_SRI_UNEXPECTED_HASH_TYPE = 2153382091,
+ NS_ERROR_SRI_IMPORT = 2153382092,
+ NS_ERROR_CMS_VERIFY_NOT_SIGNED = 2153382912,
+ NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO = 2153382913,
+ NS_ERROR_CMS_VERIFY_BAD_DIGEST = 2153382914,
+ NS_ERROR_CMS_VERIFY_NOCERT = 2153382916,
+ NS_ERROR_CMS_VERIFY_UNTRUSTED = 2153382917,
+ NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED = 2153382919,
+ NS_ERROR_CMS_VERIFY_ERROR_PROCESSING = 2153382920,
+ NS_ERROR_CMS_VERIFY_BAD_SIGNATURE = 2153382921,
+ NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH = 2153382922,
+ NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO = 2153382923,
+ NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO = 2153382924,
+ NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE = 2153382925,
+ NS_ERROR_CMS_VERIFY_HEADER_MISMATCH = 2153382926,
+ NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED = 2153382927,
+ NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS = 2153382928,
+ NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG = 2153382944,
+ NS_ERROR_CMS_ENCRYPT_INCOMPLETE = 2153382945,
+ NS_ERROR_DOM_INVALID_EXPRESSION_ERR = 2153447475,
+ NS_ERROR_DOM_TYPE_ERR = 2153447476,
+ NS_ERROR_WONT_HANDLE_CONTENT = 2153578497,
+ NS_ERROR_MALWARE_URI = 2153578526,
+ NS_ERROR_PHISHING_URI = 2153578527,
+ NS_ERROR_TRACKING_URI = 2153578530,
+ NS_ERROR_UNWANTED_URI = 2153578531,
+ NS_ERROR_BLOCKED_URI = 2153578533,
+ NS_ERROR_HARMFUL_URI = 2153578534,
+ NS_ERROR_SAVE_LINK_AS_TIMEOUT = 2153578528,
+ NS_ERROR_PARSED_DATA_CACHED = 2153578529,
+ NS_REFRESHURI_HEADER_FOUND = 6094850,
+ NS_ERROR_CONTENT_BLOCKED = 2153644038,
+ NS_ERROR_CONTENT_BLOCKED_SHOW_ALT = 2153644039,
+ NS_PROPTABLE_PROP_NOT_THERE = 2153644042,
+ NS_ERROR_XBL_BLOCKED = 2153644047,
+ NS_ERROR_CONTENT_CRASHED = 2153644048,
+ NS_HTML_STYLE_PROPERTY_NOT_THERE = 6160386,
+ NS_CONTENT_BLOCKED = 6160392,
+ NS_CONTENT_BLOCKED_SHOW_ALT = 6160393,
+ NS_PROPTABLE_PROP_OVERWRITTEN = 6160395,
+ NS_FINDBROADCASTER_NOT_FOUND = 6160396,
+ NS_FINDBROADCASTER_FOUND = 6160397,
+ NS_FINDBROADCASTER_AWAIT_OVERLAYS = 6160398,
+ NS_ERROR_XSLT_PARSE_FAILURE = 2153775105,
+ NS_ERROR_XPATH_PARSE_FAILURE = 2153775106,
+ NS_ERROR_XSLT_ALREADY_SET = 2153775107,
+ NS_ERROR_XSLT_EXECUTION_FAILURE = 2153775108,
+ NS_ERROR_XPATH_UNKNOWN_FUNCTION = 2153775109,
+ NS_ERROR_XSLT_BAD_RECURSION = 2153775110,
+ NS_ERROR_XSLT_BAD_VALUE = 2153775111,
+ NS_ERROR_XSLT_NODESET_EXPECTED = 2153775112,
+ NS_ERROR_XSLT_ABORTED = 2153775113,
+ NS_ERROR_XSLT_NETWORK_ERROR = 2153775114,
+ NS_ERROR_XSLT_WRONG_MIME_TYPE = 2153775115,
+ NS_ERROR_XSLT_LOAD_RECURSION = 2153775116,
+ NS_ERROR_XPATH_BAD_ARGUMENT_COUNT = 2153775117,
+ NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION = 2153775118,
+ NS_ERROR_XPATH_PAREN_EXPECTED = 2153775119,
+ NS_ERROR_XPATH_INVALID_AXIS = 2153775120,
+ NS_ERROR_XPATH_NO_NODE_TYPE_TEST = 2153775121,
+ NS_ERROR_XPATH_BRACKET_EXPECTED = 2153775122,
+ NS_ERROR_XPATH_INVALID_VAR_NAME = 2153775123,
+ NS_ERROR_XPATH_UNEXPECTED_END = 2153775124,
+ NS_ERROR_XPATH_OPERATOR_EXPECTED = 2153775125,
+ NS_ERROR_XPATH_UNCLOSED_LITERAL = 2153775126,
+ NS_ERROR_XPATH_BAD_COLON = 2153775127,
+ NS_ERROR_XPATH_BAD_BANG = 2153775128,
+ NS_ERROR_XPATH_ILLEGAL_CHAR = 2153775129,
+ NS_ERROR_XPATH_BINARY_EXPECTED = 2153775130,
+ NS_ERROR_XSLT_LOAD_BLOCKED_ERROR = 2153775131,
+ NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED = 2153775132,
+ NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE = 2153775133,
+ NS_ERROR_XSLT_BAD_NODE_NAME = 2153775134,
+ NS_ERROR_XSLT_VAR_ALREADY_SET = 2153775135,
+ NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED = 2153775136,
+ NS_XSLT_GET_NEW_HANDLER = 6291457,
+ NS_ERROR_TRANSPORT_INIT = 2153840641,
+ NS_ERROR_DUPLICATE_HANDLE = 2153840642,
+ NS_ERROR_BRIDGE_OPEN_PARENT = 2153840643,
+ NS_ERROR_BRIDGE_OPEN_CHILD = 2153840644,
+ NS_ERROR_DOM_SVG_WRONG_TYPE_ERR = 2153906176,
+ NS_ERROR_DOM_SVG_MATRIX_NOT_INVERTABLE = 2153906178,
+ NS_ERROR_STORAGE_BUSY = 2153971713,
+ NS_ERROR_STORAGE_IOERR = 2153971714,
+ NS_ERROR_STORAGE_CONSTRAINT = 2153971715,
+ NS_ERROR_DOM_FILE_NOT_FOUND_ERR = 2154102784,
+ NS_ERROR_DOM_FILE_NOT_READABLE_ERR = 2154102785,
+ NS_ERROR_DOM_FILE_ABORT_ERR = 2154102786,
+ NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR = 2154168321,
+ NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR = 2154168323,
+ NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR = 2154168324,
+ NS_ERROR_DOM_INDEXEDDB_DATA_ERR = 2154168325,
+ NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR = 2154168326,
+ NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR = 2154168327,
+ NS_ERROR_DOM_INDEXEDDB_ABORT_ERR = 2154168328,
+ NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR = 2154168329,
+ NS_ERROR_DOM_INDEXEDDB_TIMEOUT_ERR = 2154168330,
+ NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR = 2154168331,
+ NS_ERROR_DOM_INDEXEDDB_VERSION_ERR = 2154168332,
+ NS_ERROR_DOM_INDEXEDDB_RECOVERABLE_ERR = 2154169321,
+ NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR = 2154233857,
+ NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR = 2154233858,
+ NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR = 2154233859,
+ NS_ERROR_DOM_FILEHANDLE_ABORT_ERR = 2154233860,
+ NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR = 2154233861,
+ NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR = 2154233862,
+ NS_ERROR_SIGNED_JAR_NOT_SIGNED = 2154299393,
+ NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY = 2154299394,
+ NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY = 2154299395,
+ NS_ERROR_SIGNED_JAR_ENTRY_MISSING = 2154299396,
+ NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE = 2154299397,
+ NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE = 2154299398,
+ NS_ERROR_SIGNED_JAR_ENTRY_INVALID = 2154299399,
+ NS_ERROR_SIGNED_JAR_MANIFEST_INVALID = 2154299400,
+ NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR = 2154364929,
+ NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR = 2154364930,
+ NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR = 2154364931,
+ NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR = 2154364932,
+ NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR = 2154364933,
+ NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR = 2154364934,
+ NS_ERROR_SIGNED_APP_MANIFEST_INVALID = 2154496001,
+ NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR = 2154561537,
+ NS_ERROR_DOM_PUSH_INVALID_REGISTRATION_ERR = 2154627073,
+ NS_ERROR_DOM_PUSH_DENIED_ERR = 2154627074,
+ NS_ERROR_DOM_PUSH_ABORT_ERR = 2154627075,
+ NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE = 2154627076,
+ NS_ERROR_DOM_PUSH_INVALID_KEY_ERR = 2154627077,
+ NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR = 2154627078,
+ NS_ERROR_DOM_PUSH_GCM_DISABLED = 2154627079,
+ NS_ERROR_DOM_MEDIA_ABORT_ERR = 2154692609,
+ NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR = 2154692610,
+ NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR = 2154692611,
+ NS_ERROR_DOM_MEDIA_DECODE_ERR = 2154692612,
+ NS_ERROR_DOM_MEDIA_FATAL_ERR = 2154692613,
+ NS_ERROR_DOM_MEDIA_METADATA_ERR = 2154692614,
+ NS_ERROR_DOM_MEDIA_OVERFLOW_ERR = 2154692615,
+ NS_ERROR_DOM_MEDIA_END_OF_STREAM = 2154692616,
+ NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA = 2154692617,
+ NS_ERROR_DOM_MEDIA_CANCELED = 2154692618,
+ NS_ERROR_DOM_MEDIA_MEDIASINK_ERR = 2154692619,
+ NS_ERROR_DOM_MEDIA_DEMUXER_ERR = 2154692620,
+ NS_ERROR_DOM_MEDIA_CDM_ERR = 2154692621,
+ NS_ERROR_DOM_MEDIA_NEED_NEW_DECODER = 2154692622,
+ NS_ERROR_DOM_MEDIA_INITIALIZING_DECODER = 2154692623,
+ NS_ERROR_DOM_MEDIA_CUBEB_INITIALIZATION_ERR = 2154692709,
+ NS_ERROR_UC_UPDATE_UNKNOWN = 2154758145,
+ NS_ERROR_UC_UPDATE_DUPLICATE_PREFIX = 2154758146,
+ NS_ERROR_UC_UPDATE_INFINITE_LOOP = 2154758147,
+ NS_ERROR_UC_UPDATE_WRONG_REMOVAL_INDICES = 2154758148,
+ NS_ERROR_UC_UPDATE_CHECKSUM_MISMATCH = 2154758149,
+ NS_ERROR_UC_UPDATE_MISSING_CHECKSUM = 2154758150,
+ NS_ERROR_UC_UPDATE_SHUTDOWNING = 2154758151,
+ NS_ERROR_UC_UPDATE_TABLE_NOT_FOUND = 2154758152,
+ NS_ERROR_UC_UPDATE_BUILD_PREFIX_FAILURE = 2154758153,
+ NS_ERROR_UC_UPDATE_FAIL_TO_WRITE_DISK = 2154758154,
+ NS_ERROR_UC_UPDATE_PROTOCOL_PARSER_ERROR = 2154758155,
+ NS_ERROR_INTERNAL_ERRORRESULT_JS_EXCEPTION = 2154823681,
+ NS_ERROR_INTERNAL_ERRORRESULT_DOMEXCEPTION = 2154823682,
+ NS_ERROR_INTERNAL_ERRORRESULT_EXCEPTION_ON_JSCONTEXT = 2154823683,
+ NS_ERROR_INTERNAL_ERRORRESULT_TYPEERROR = 2154823684,
+ NS_ERROR_INTERNAL_ERRORRESULT_RANGEERROR = 2154823685,
+ NS_ERROR_DOWNLOAD_COMPLETE = 2155347969,
+ NS_ERROR_DOWNLOAD_NOT_PARTIAL = 2155347970,
+ NS_ERROR_UNORM_MOREOUTPUT = 2155348001,
+ NS_ERROR_DOCSHELL_REQUEST_REJECTED = 2155348969,
+ NS_ERROR_DOCUMENT_IS_PRINTMODE = 2155349969,
+ NS_SUCCESS_DONT_FIXUP = 7864321,
+ NS_SUCCESS_RESTART_APP_NOT_SAME_PROFILE = 7864323,
+ NS_SUCCESS_UNORM_NOTFOUND = 7864337,
+ NS_ERROR_NOT_IN_TREE = 2155348006,
+ NS_OK_NO_NAME_CLAUSE_HANDLED = 7864354,
+ }
+ pub type nsrefcnt = root::MozRefCountType;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIFrame {
+ _unused: [u8; 0],
+ }
+ pub type nsAString = root::nsTSubstring<u16>;
+ pub type nsAutoString = [u64; 19usize];
+ pub type nsACString = root::nsTSubstring<::std::os::raw::c_char>;
+ pub type nsCString = root::nsTString<::std::os::raw::c_char>;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsCharTraits {
+ pub _address: u8,
+ }
+ /// @see nsTAString
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsReadingIterator<CharT> {
+ pub mStart: *mut CharT,
+ pub mEnd: *mut CharT,
+ pub mPosition: *mut CharT,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<CharT>>,
+ }
+ pub type nsReadingIterator_self_type<CharT> = root::nsReadingIterator<CharT>;
+ pub type nsReadingIterator_difference_type = isize;
+ pub type nsReadingIterator_size_type = usize;
+ pub type nsReadingIterator_value_type<CharT> = CharT;
+ pub type nsReadingIterator_pointer<CharT> = *mut CharT;
+ pub type nsReadingIterator_reference = u8;
+ /// @see nsTAString
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsWritingIterator<CharT> {
+ pub mStart: *mut CharT,
+ pub mEnd: *mut CharT,
+ pub mPosition: *mut CharT,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<CharT>>,
+ }
+ pub type nsWritingIterator_self_type<CharT> = root::nsWritingIterator<CharT>;
+ pub type nsWritingIterator_difference_type = isize;
+ pub type nsWritingIterator_size_type = usize;
+ pub type nsWritingIterator_value_type<CharT> = CharT;
+ pub type nsWritingIterator_pointer<CharT> = *mut CharT;
+ pub type nsWritingIterator_reference = u8;
+ #[repr(C)]
+ pub struct nsTStringComparator__bindgen_vtable(::std::os::raw::c_void);
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTStringComparator {
+ pub vtable_: *const nsTStringComparator__bindgen_vtable,
+ }
+ pub type nsTStringComparator_char_type<T> = T;
+ /// nsTSubstring is an abstract string class. From an API perspective, this
/// class is the root of the string class hierarchy. It represents a single
/// contiguous array of characters, which may or may not be null-terminated.
/// This type is not instantiated directly. A sub-class is instantiated
@@ -501,17 +12604,51 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// NAMES:
/// nsAString for wide characters
/// nsACString for narrow characters
- ///
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsTSubstring < T > { pub _base : root :: mozilla :: detail :: nsTStringRepr < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsTSubstring_self_type < T > = root :: nsTSubstring < T > ; pub type nsTSubstring_string_type < T > = root :: nsTString < T > ; pub type nsTSubstring_base_string_type < T > = root :: mozilla :: detail :: nsTStringRepr < T > ; pub type nsTSubstring_substring_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_literalstring_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_fallible_t < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_char_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_substring_tuple_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_const_iterator < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_iterator < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_comparator_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_char_iterator < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_const_char_iterator < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_index_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_size_type < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_DataFlags < T > = root :: nsTSubstring_base_string_type < T > ; pub type nsTSubstring_ClassFlags < T > = root :: nsTSubstring_base_string_type < T > ;
- /// nsTSubstringTuple
+ ///
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsTSubstring<T> {
+ pub _base: root::mozilla::detail::nsTStringRepr<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsTSubstring_self_type<T> = root::nsTSubstring<T>;
+ pub type nsTSubstring_string_type<T> = root::nsTString<T>;
+ pub type nsTSubstring_base_string_type<T> = root::mozilla::detail::nsTStringRepr<T>;
+ pub type nsTSubstring_substring_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_literalstring_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_fallible_t<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_char_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_substring_tuple_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_const_iterator<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_iterator<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_comparator_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_char_iterator<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_const_char_iterator<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_index_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_size_type<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_DataFlags<T> = root::nsTSubstring_base_string_type<T>;
+ pub type nsTSubstring_ClassFlags<T> = root::nsTSubstring_base_string_type<T>;
+ /// nsTSubstringTuple
///
/// Represents a tuple of string fragments. Built as a recursive binary tree.
/// It is used to implement the concatenation of two or more string objects.
///
/// NOTE: This class is a private implementation detail and should never be
- /// referenced outside the string code.
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTSubstringTuple < T > { pub mHead : * const root :: nsTSubstringTuple_self_type < T > , pub mFragA : * const root :: nsTSubstringTuple_base_string_type < T > , pub mFragB : * const root :: nsTSubstringTuple_base_string_type < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsTSubstringTuple_char_type < T > = T ; pub type nsTSubstringTuple_self_type < T > = root :: nsTSubstringTuple < T > ; pub type nsTSubstringTuple_base_string_type < T > = root :: mozilla :: detail :: nsTStringRepr < root :: nsTSubstringTuple_char_type < T > > ; pub type nsTSubstringTuple_size_type = u32 ;
- /// nsTLiteralString_CharT
+ /// referenced outside the string code.
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTSubstringTuple<T> {
+ pub mHead: *const root::nsTSubstringTuple_self_type<T>,
+ pub mFragA: *const root::nsTSubstringTuple_base_string_type<T>,
+ pub mFragB: *const root::nsTSubstringTuple_base_string_type<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsTSubstringTuple_char_type<T> = T;
+ pub type nsTSubstringTuple_self_type<T> = root::nsTSubstringTuple<T>;
+ pub type nsTSubstringTuple_base_string_type<T> =
+ root::mozilla::detail::nsTStringRepr<root::nsTSubstringTuple_char_type<T>>;
+ pub type nsTSubstringTuple_size_type = u32;
+ /// nsTLiteralString_CharT
///
/// Stores a null-terminated, immutable sequence of characters.
///
@@ -519,9 +12656,25 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// sequence. Can be implicitly cast to const nsTString& (the const is
/// essential, since this class's data are not writable). The data are assumed
/// to be static (permanent) and therefore, as an optimization, this class
- /// does not have a destructor.
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTLiteralString < T > { pub _base : root :: mozilla :: detail :: nsTStringRepr < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsTLiteralString_self_type < T > = root :: nsTLiteralString < T > ; pub type nsTLiteralString_char_type = [ u8 ; 0usize ] ; pub type nsTLiteralString_size_type = [ u8 ; 0usize ] ; pub type nsTLiteralString_DataFlags = [ u8 ; 0usize ] ; pub type nsTLiteralString_ClassFlags = [ u8 ; 0usize ] ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTLiteralString_raw_type { pub _address : u8 , } pub type nsTLiteralString_raw_type_type < N > = * mut N ;
- /// This is the canonical null-terminated string class. All subclasses
+ /// does not have a destructor.
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTLiteralString<T> {
+ pub _base: root::mozilla::detail::nsTStringRepr<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsTLiteralString_self_type<T> = root::nsTLiteralString<T>;
+ pub type nsTLiteralString_char_type = [u8; 0usize];
+ pub type nsTLiteralString_size_type = [u8; 0usize];
+ pub type nsTLiteralString_DataFlags = [u8; 0usize];
+ pub type nsTLiteralString_ClassFlags = [u8; 0usize];
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTLiteralString_raw_type {
+ pub _address: u8,
+ }
+ pub type nsTLiteralString_raw_type_type<N> = *mut N;
+ /// This is the canonical null-terminated string class. All subclasses
/// promise null-terminated storage. Instances of this class allocate
/// strings on the heap.
///
@@ -530,27 +12683,986 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// nsCString for narrow characters
///
/// This class is also known as nsAFlat[C]String, where "flat" is used
- /// to denote a null-terminated string.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsTString < T > { pub _base : root :: nsTSubstring < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsTString_self_type < T > = root :: nsTString < T > ; pub type nsTString_literalstring_type = [ u8 ; 0usize ] ; pub type nsTString_fallible_t = [ u8 ; 0usize ] ; pub type nsTString_char_type = [ u8 ; 0usize ] ; pub type nsTString_substring_tuple_type = [ u8 ; 0usize ] ; pub type nsTString_const_iterator = [ u8 ; 0usize ] ; pub type nsTString_iterator = [ u8 ; 0usize ] ; pub type nsTString_comparator_type = [ u8 ; 0usize ] ; pub type nsTString_char_iterator = [ u8 ; 0usize ] ; pub type nsTString_const_char_iterator = [ u8 ; 0usize ] ; pub type nsTString_index_type = [ u8 ; 0usize ] ; pub type nsTString_size_type = [ u8 ; 0usize ] ; pub type nsTString_DataFlags = [ u8 ; 0usize ] ; pub type nsTString_ClassFlags = [ u8 ; 0usize ] ;
- /// returns the null-terminated string
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTString_raw_type { pub _address : u8 , } pub type nsTString_raw_type_type < U > = * mut U ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTString_Segment { pub mBegin : u32 , pub mLength : u32 , } pub type nsTAutoStringN_self_type = u8 ; pub type nsTAutoStringN_base_string_type < T > = root :: nsTString < T > ; pub type nsTAutoStringN_string_type < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_char_type < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_substring_type < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_size_type < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_substring_tuple_type < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_literalstring_type < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_DataFlags < T > = root :: nsTAutoStringN_base_string_type < T > ; pub type nsTAutoStringN_ClassFlags < T > = root :: nsTAutoStringN_base_string_type < T > ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Nothing : root :: nsCSSTokenSerializationType = 0 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Whitespace : root :: nsCSSTokenSerializationType = 1 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_AtKeyword_or_Hash : root :: nsCSSTokenSerializationType = 2 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Number : root :: nsCSSTokenSerializationType = 3 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Dimension : root :: nsCSSTokenSerializationType = 4 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Percentage : root :: nsCSSTokenSerializationType = 5 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_URange : root :: nsCSSTokenSerializationType = 6 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_URL_or_BadURL : root :: nsCSSTokenSerializationType = 7 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Function : root :: nsCSSTokenSerializationType = 8 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Ident : root :: nsCSSTokenSerializationType = 9 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_CDC : root :: nsCSSTokenSerializationType = 10 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_DashMatch : root :: nsCSSTokenSerializationType = 11 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_ContainsMatch : root :: nsCSSTokenSerializationType = 12 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Hash : root :: nsCSSTokenSerializationType = 13 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_At : root :: nsCSSTokenSerializationType = 14 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Dot_or_Plus : root :: nsCSSTokenSerializationType = 15 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Minus : root :: nsCSSTokenSerializationType = 16 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_OpenParen : root :: nsCSSTokenSerializationType = 17 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Question : root :: nsCSSTokenSerializationType = 18 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Assorted : root :: nsCSSTokenSerializationType = 19 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Equals : root :: nsCSSTokenSerializationType = 20 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Bar : root :: nsCSSTokenSerializationType = 21 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Slash : root :: nsCSSTokenSerializationType = 22 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Asterisk : root :: nsCSSTokenSerializationType = 23 ; pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Other : root :: nsCSSTokenSerializationType = 24 ; pub type nsCSSTokenSerializationType = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] pub struct nsCSSScanner { pub mBuffer : * const u16 , pub mOffset : u32 , pub mCount : u32 , pub mLineNumber : u32 , pub mLineOffset : u32 , pub mTokenLineNumber : u32 , pub mTokenLineOffset : u32 , pub mTokenOffset : u32 , pub mRecordStartOffset : u32 , pub mEOFCharacters : root :: nsCSSScanner_EOFCharacters , pub mReporter : * mut root :: mozilla :: css :: ErrorReporter , pub mRecording : bool , pub mSeenBadToken : bool , pub mSeenVariableReference : bool , pub mSourceMapURL : ::nsstring::nsStringRepr , pub mSourceURL : ::nsstring::nsStringRepr , } pub const nsCSSScanner_EOFCharacters_eEOFCharacters_None : root :: nsCSSScanner_EOFCharacters = 0 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_DropBackslash : root :: nsCSSScanner_EOFCharacters = 1 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_ReplacementChar : root :: nsCSSScanner_EOFCharacters = 2 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_Asterisk : root :: nsCSSScanner_EOFCharacters = 4 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_Slash : root :: nsCSSScanner_EOFCharacters = 8 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_DoubleQuote : root :: nsCSSScanner_EOFCharacters = 16 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_SingleQuote : root :: nsCSSScanner_EOFCharacters = 32 ; pub const nsCSSScanner_EOFCharacters_eEOFCharacters_CloseParen : root :: nsCSSScanner_EOFCharacters = 64 ; pub type nsCSSScanner_EOFCharacters = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsCSSScanner ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSScanner > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( nsCSSScanner ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSScanner > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSScanner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mBuffer as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mBuffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mOffset as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mCount as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mLineNumber as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mLineNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mLineOffset as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mLineOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mTokenLineNumber as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mTokenLineNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mTokenLineOffset as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mTokenLineOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mTokenOffset as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mTokenOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mRecordStartOffset as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mRecordStartOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mEOFCharacters as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mEOFCharacters ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mReporter as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mReporter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mRecording as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mRecording ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mSeenBadToken as * const _ as usize } , 57usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mSeenBadToken ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mSeenVariableReference as * const _ as usize } , 58usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mSeenVariableReference ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mSourceMapURL as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mSourceMapURL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSScanner ) ) . mSourceURL as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSScanner ) , "::" , stringify ! ( mSourceURL ) ) ) ; } # [ repr ( C ) ] pub struct nsISupports__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// Basic component object model interface. Objects which implement
+ /// to denote a null-terminated string.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsTString<T> {
+ pub _base: root::nsTSubstring<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsTString_self_type<T> = root::nsTString<T>;
+ pub type nsTString_literalstring_type = [u8; 0usize];
+ pub type nsTString_fallible_t = [u8; 0usize];
+ pub type nsTString_char_type = [u8; 0usize];
+ pub type nsTString_substring_tuple_type = [u8; 0usize];
+ pub type nsTString_const_iterator = [u8; 0usize];
+ pub type nsTString_iterator = [u8; 0usize];
+ pub type nsTString_comparator_type = [u8; 0usize];
+ pub type nsTString_char_iterator = [u8; 0usize];
+ pub type nsTString_const_char_iterator = [u8; 0usize];
+ pub type nsTString_index_type = [u8; 0usize];
+ pub type nsTString_size_type = [u8; 0usize];
+ pub type nsTString_DataFlags = [u8; 0usize];
+ pub type nsTString_ClassFlags = [u8; 0usize];
+ /// returns the null-terminated string
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTString_raw_type {
+ pub _address: u8,
+ }
+ pub type nsTString_raw_type_type<U> = *mut U;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTString_Segment {
+ pub mBegin: u32,
+ pub mLength: u32,
+ }
+ pub type nsTAutoStringN_self_type = u8;
+ pub type nsTAutoStringN_base_string_type<T> = root::nsTString<T>;
+ pub type nsTAutoStringN_string_type<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_char_type<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_substring_type<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_size_type<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_substring_tuple_type<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_literalstring_type<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_DataFlags<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub type nsTAutoStringN_ClassFlags<T> = root::nsTAutoStringN_base_string_type<T>;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Nothing:
+ root::nsCSSTokenSerializationType = 0;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Whitespace:
+ root::nsCSSTokenSerializationType = 1;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_AtKeyword_or_Hash:
+ root::nsCSSTokenSerializationType = 2;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Number:
+ root::nsCSSTokenSerializationType = 3;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Dimension:
+ root::nsCSSTokenSerializationType = 4;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Percentage:
+ root::nsCSSTokenSerializationType = 5;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_URange:
+ root::nsCSSTokenSerializationType = 6;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_URL_or_BadURL:
+ root::nsCSSTokenSerializationType = 7;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Function:
+ root::nsCSSTokenSerializationType = 8;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Ident:
+ root::nsCSSTokenSerializationType = 9;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_CDC:
+ root::nsCSSTokenSerializationType = 10;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_DashMatch:
+ root::nsCSSTokenSerializationType = 11;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_ContainsMatch:
+ root::nsCSSTokenSerializationType = 12;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Hash:
+ root::nsCSSTokenSerializationType = 13;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_At:
+ root::nsCSSTokenSerializationType = 14;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Dot_or_Plus:
+ root::nsCSSTokenSerializationType = 15;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Minus:
+ root::nsCSSTokenSerializationType = 16;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_OpenParen:
+ root::nsCSSTokenSerializationType = 17;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Question:
+ root::nsCSSTokenSerializationType = 18;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Assorted:
+ root::nsCSSTokenSerializationType = 19;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Equals:
+ root::nsCSSTokenSerializationType = 20;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Bar:
+ root::nsCSSTokenSerializationType = 21;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Slash:
+ root::nsCSSTokenSerializationType = 22;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Symbol_Asterisk:
+ root::nsCSSTokenSerializationType = 23;
+ pub const nsCSSTokenSerializationType_eCSSTokenSerialization_Other:
+ root::nsCSSTokenSerializationType = 24;
+ pub type nsCSSTokenSerializationType = u32;
+ #[repr(C)]
+ pub struct nsCSSScanner {
+ pub mBuffer: *const u16,
+ pub mOffset: u32,
+ pub mCount: u32,
+ pub mLineNumber: u32,
+ pub mLineOffset: u32,
+ pub mTokenLineNumber: u32,
+ pub mTokenLineOffset: u32,
+ pub mTokenOffset: u32,
+ pub mRecordStartOffset: u32,
+ pub mEOFCharacters: root::nsCSSScanner_EOFCharacters,
+ pub mReporter: *mut root::mozilla::css::ErrorReporter,
+ pub mRecording: bool,
+ pub mSeenBadToken: bool,
+ pub mSeenVariableReference: bool,
+ pub mSourceMapURL: ::nsstring::nsStringRepr,
+ pub mSourceURL: ::nsstring::nsStringRepr,
+ }
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_None: root::nsCSSScanner_EOFCharacters = 0;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_DropBackslash:
+ root::nsCSSScanner_EOFCharacters = 1;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_ReplacementChar:
+ root::nsCSSScanner_EOFCharacters = 2;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_Asterisk: root::nsCSSScanner_EOFCharacters =
+ 4;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_Slash: root::nsCSSScanner_EOFCharacters = 8;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_DoubleQuote:
+ root::nsCSSScanner_EOFCharacters = 16;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_SingleQuote:
+ root::nsCSSScanner_EOFCharacters = 32;
+ pub const nsCSSScanner_EOFCharacters_eEOFCharacters_CloseParen:
+ root::nsCSSScanner_EOFCharacters = 64;
+ pub type nsCSSScanner_EOFCharacters = u32;
+ #[test]
+ fn bindgen_test_layout_nsCSSScanner() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSScanner>(),
+ 96usize,
+ concat!("Size of: ", stringify!(nsCSSScanner))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSScanner>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSScanner))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mBuffer as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mBuffer)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mOffset as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mOffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mCount as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mLineNumber as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mLineNumber)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mLineOffset as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mLineOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSScanner>())).mTokenLineNumber as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mTokenLineNumber)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSScanner>())).mTokenLineOffset as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mTokenLineOffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mTokenOffset as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mTokenOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSScanner>())).mRecordStartOffset as *const _ as usize
+ },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mRecordStartOffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mEOFCharacters as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mEOFCharacters)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mReporter as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mReporter)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mRecording as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mRecording)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mSeenBadToken as *const _ as usize },
+ 57usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mSeenBadToken)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSScanner>())).mSeenVariableReference as *const _ as usize
+ },
+ 58usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mSeenVariableReference)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mSourceMapURL as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mSourceMapURL)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSScanner>())).mSourceURL as *const _ as usize },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSScanner),
+ "::",
+ stringify!(mSourceURL)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsISupports__bindgen_vtable(::std::os::raw::c_void);
+ /// Basic component object model interface. Objects which implement
/// this interface support runtime interface discovery (QueryInterface)
/// and a reference counted memory model (AddRef/Release). This is
- /// modelled after the win32 IUnknown API.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsISupports { pub vtable_ : * const nsISupports__bindgen_vtable , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsISupports_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsISupports ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsISupports > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsISupports ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsISupports > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsISupports ) ) ) ; } impl Clone for nsISupports { fn clone ( & self ) -> Self { * self } } pub type PRUint32 = :: std :: os :: raw :: c_uint ; pub type PRIntn = :: std :: os :: raw :: c_int ; pub type PRUintn = :: std :: os :: raw :: c_uint ;
- /// TYPES: PRSize
+ /// modelled after the win32 IUnknown API.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsISupports {
+ pub vtable_: *const nsISupports__bindgen_vtable,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsISupports_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsISupports() {
+ assert_eq!(
+ ::std::mem::size_of::<nsISupports>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsISupports))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsISupports>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsISupports))
+ );
+ }
+ impl Clone for nsISupports {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type PRUint32 = ::std::os::raw::c_uint;
+ pub type PRIntn = ::std::os::raw::c_int;
+ pub type PRUintn = ::std::os::raw::c_uint;
+ /// TYPES: PRSize
/// DESCRIPTION:
- /// A type for representing the size of objects.
- pub type PRSize = usize ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct PRThread { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsCycleCollectingAutoRefCnt { pub mRefCntAndFlags : usize , } pub type nsCycleCollectingAutoRefCnt_Suspect = :: std :: option :: Option < unsafe extern "C" fn ( aPtr : * mut :: std :: os :: raw :: c_void , aCp : * mut root :: nsCycleCollectionParticipant , aRefCnt : * mut root :: nsCycleCollectingAutoRefCnt , aShouldDelete : * mut bool ) > ; # [ test ] fn bindgen_test_layout_nsCycleCollectingAutoRefCnt ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCycleCollectingAutoRefCnt > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsCycleCollectingAutoRefCnt ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCycleCollectingAutoRefCnt > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCycleCollectingAutoRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCycleCollectingAutoRefCnt ) ) . mRefCntAndFlags as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCycleCollectingAutoRefCnt ) , "::" , stringify ! ( mRefCntAndFlags ) ) ) ; } impl Clone for nsCycleCollectingAutoRefCnt { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsAutoRefCnt { pub mValue : root :: nsrefcnt , } pub const nsAutoRefCnt_isThreadSafe : bool = false ; # [ test ] fn bindgen_test_layout_nsAutoRefCnt ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAutoRefCnt > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsAutoRefCnt ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAutoRefCnt > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAutoRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAutoRefCnt ) ) . mValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAutoRefCnt ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for nsAutoRefCnt { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct RefPtr < T > { pub mRawPtr : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type RefPtr_element_type < T > = T ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RefPtr_Proxy { pub _address : u8 , } pub type RefPtr_Proxy_member_function = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RefPtr_ConstRemovingRefPtrTraits { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct JSContext { _unused : [ u8 ; 0 ] } pub mod JS { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DeletePolicy { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct FreePolicy { pub _address : u8 , } # [ test ] fn bindgen_test_layout_FreePolicy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FreePolicy > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( FreePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FreePolicy > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( FreePolicy ) ) ) ; } impl Clone for FreePolicy { fn clone ( & self ) -> Self { * self } }
- /// Local variable of type T whose value is always rooted. This is typically
+ /// A type for representing the size of objects.
+ pub type PRSize = usize;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct PRThread {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsCycleCollectingAutoRefCnt {
+ pub mRefCntAndFlags: usize,
+ }
+ pub type nsCycleCollectingAutoRefCnt_Suspect = ::std::option::Option<
+ unsafe extern "C" fn(
+ aPtr: *mut ::std::os::raw::c_void,
+ aCp: *mut root::nsCycleCollectionParticipant,
+ aRefCnt: *mut root::nsCycleCollectingAutoRefCnt,
+ aShouldDelete: *mut bool,
+ ),
+ >;
+ #[test]
+ fn bindgen_test_layout_nsCycleCollectingAutoRefCnt() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCycleCollectingAutoRefCnt>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsCycleCollectingAutoRefCnt))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCycleCollectingAutoRefCnt>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCycleCollectingAutoRefCnt))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCycleCollectingAutoRefCnt>())).mRefCntAndFlags as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCycleCollectingAutoRefCnt),
+ "::",
+ stringify!(mRefCntAndFlags)
+ )
+ );
+ }
+ impl Clone for nsCycleCollectingAutoRefCnt {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsAutoRefCnt {
+ pub mValue: root::nsrefcnt,
+ }
+ pub const nsAutoRefCnt_isThreadSafe: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsAutoRefCnt() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAutoRefCnt>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsAutoRefCnt))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAutoRefCnt>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAutoRefCnt))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAutoRefCnt>())).mValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAutoRefCnt),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for nsAutoRefCnt {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct RefPtr<T> {
+ pub mRawPtr: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type RefPtr_element_type<T> = T;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RefPtr_Proxy {
+ pub _address: u8,
+ }
+ pub type RefPtr_Proxy_member_function = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RefPtr_ConstRemovingRefPtrTraits {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct JSContext {
+ _unused: [u8; 0],
+ }
+ pub mod JS {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct DeletePolicy {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct FreePolicy {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_FreePolicy() {
+ assert_eq!(
+ ::std::mem::size_of::<FreePolicy>(),
+ 1usize,
+ concat!("Size of: ", stringify!(FreePolicy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FreePolicy>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(FreePolicy))
+ );
+ }
+ impl Clone for FreePolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Local variable of type T whose value is always rooted. This is typically
/// used for local variables, or for non-rooted values being passed to a
/// function that requires a handle, e.g. Foo(Root<T>(cx, x)).
///
/// If you want to add additional methods to Rooted for a specific
- /// specialization, define a RootedBase<T> specialization containing them.
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct Rooted { pub _address : u8 , } pub type Rooted_ElementType < T > = T ; pub mod dbg { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct GarbageCollectionEvent { pub majorGCNumber_ : u64 , pub reason : * const :: std :: os :: raw :: c_char , pub nonincrementalReason : * const :: std :: os :: raw :: c_char , pub collections : [ u64 ; 3usize ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct GarbageCollectionEvent_Collection { pub startTimestamp : root :: mozilla :: TimeStamp , pub endTimestamp : root :: mozilla :: TimeStamp , } # [ test ] fn bindgen_test_layout_GarbageCollectionEvent_Collection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GarbageCollectionEvent_Collection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( GarbageCollectionEvent_Collection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GarbageCollectionEvent_Collection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GarbageCollectionEvent_Collection ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GarbageCollectionEvent_Collection ) ) . startTimestamp as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GarbageCollectionEvent_Collection ) , "::" , stringify ! ( startTimestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GarbageCollectionEvent_Collection ) ) . endTimestamp as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( GarbageCollectionEvent_Collection ) , "::" , stringify ! ( endTimestamp ) ) ) ; } impl Clone for GarbageCollectionEvent_Collection { fn clone ( & self ) -> Self { * self } } pub type GarbageCollectionEvent_Ptr = root :: mozilla :: UniquePtr < root :: JS :: dbg :: GarbageCollectionEvent > ; # [ test ] fn bindgen_test_layout_GarbageCollectionEvent ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GarbageCollectionEvent > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( GarbageCollectionEvent ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GarbageCollectionEvent > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( GarbageCollectionEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GarbageCollectionEvent ) ) . majorGCNumber_ as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GarbageCollectionEvent ) , "::" , stringify ! ( majorGCNumber_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GarbageCollectionEvent ) ) . reason as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( GarbageCollectionEvent ) , "::" , stringify ! ( reason ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GarbageCollectionEvent ) ) . nonincrementalReason as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( GarbageCollectionEvent ) , "::" , stringify ! ( nonincrementalReason ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GarbageCollectionEvent ) ) . collections as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( GarbageCollectionEvent ) , "::" , stringify ! ( collections ) ) ) ; } } pub type Value_PayloadType = u64 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Value_layout { pub asBits : root :: __BindgenUnionField < u64 > , pub debugView : root :: __BindgenUnionField < root :: JS :: Value_layout__bindgen_ty_1 > , pub s : root :: __BindgenUnionField < root :: JS :: Value_layout__bindgen_ty_2 > , pub asDouble : root :: __BindgenUnionField < f64 > , pub asPtr : root :: __BindgenUnionField < * mut :: std :: os :: raw :: c_void > , pub asWord : root :: __BindgenUnionField < usize > , pub asUIntPtr : root :: __BindgenUnionField < usize > , pub bindgen_union_field : u64 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Value_layout__bindgen_ty_1 { pub _bitfield_1 : u64 , pub __bindgen_align : [ u64 ; 0usize ] , } # [ test ] fn bindgen_test_layout_Value_layout__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Value_layout__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( Value_layout__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Value_layout__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Value_layout__bindgen_ty_1 ) ) ) ; } impl Clone for Value_layout__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } impl Value_layout__bindgen_ty_1 { # [ inline ] pub fn payload47 ( & self ) -> u64 { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x7fffffffffff as u64 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u64 ) } } # [ inline ] pub fn set_payload47 ( & mut self , val : u64 ) { let mask = 0x7fffffffffff as u64 ; let val = val as u64 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn tag ( & self ) -> root :: JSValueTag { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0xffff800000000000 as u64 ; let val = ( unit_field_val & mask ) >> 47usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_tag ( & mut self , val : root :: JSValueTag ) { let mask = 0xffff800000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 47usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( payload47 : u64 , tag : root :: JSValueTag ) -> u64 { ( ( 0 | ( ( payload47 as u64 as u64 ) << 0usize ) & ( 0x7fffffffffff as u64 ) ) | ( ( tag as u32 as u64 ) << 47usize ) & ( 0xffff800000000000 as u64 ) ) } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Value_layout__bindgen_ty_2 { pub payload : root :: JS :: Value_layout__bindgen_ty_2__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct Value_layout__bindgen_ty_2__bindgen_ty_1 { pub i32 : root :: __BindgenUnionField < i32 > , pub u32 : root :: __BindgenUnionField < u32 > , pub why : root :: __BindgenUnionField < root :: JSWhyMagic > , pub bindgen_union_field : u32 , } # [ test ] fn bindgen_test_layout_Value_layout__bindgen_ty_2__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Value_layout__bindgen_ty_2__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( Value_layout__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Value_layout__bindgen_ty_2__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( Value_layout__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout__bindgen_ty_2__bindgen_ty_1 ) ) . i32 as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( i32 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout__bindgen_ty_2__bindgen_ty_1 ) ) . u32 as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( u32 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout__bindgen_ty_2__bindgen_ty_1 ) ) . why as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( why ) ) ) ; } impl Clone for Value_layout__bindgen_ty_2__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_Value_layout__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Value_layout__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( Value_layout__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Value_layout__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( Value_layout__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout__bindgen_ty_2 ) ) . payload as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout__bindgen_ty_2 ) , "::" , stringify ! ( payload ) ) ) ; } impl Clone for Value_layout__bindgen_ty_2 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_Value_layout ( ) { assert_eq ! ( :: std :: mem :: size_of :: < Value_layout > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( Value_layout ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < Value_layout > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( Value_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . asBits as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( asBits ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . debugView as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( debugView ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . s as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( s ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . asDouble as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( asDouble ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . asPtr as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( asPtr ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . asWord as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( asWord ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const Value_layout ) ) . asUIntPtr as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( Value_layout ) , "::" , stringify ! ( asUIntPtr ) ) ) ; } impl Clone for Value_layout { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ConstUTF8CharsZ { pub data_ : * const :: std :: os :: raw :: c_char , } pub type ConstUTF8CharsZ_CharT = :: std :: os :: raw :: c_uchar ; # [ test ] fn bindgen_test_layout_ConstUTF8CharsZ ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ConstUTF8CharsZ > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ConstUTF8CharsZ ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ConstUTF8CharsZ > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ConstUTF8CharsZ ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ConstUTF8CharsZ ) ) . data_ as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ConstUTF8CharsZ ) , "::" , stringify ! ( data_ ) ) ) ; } impl Clone for ConstUTF8CharsZ { fn clone ( & self ) -> Self { * self } } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct JSObject { _unused : [ u8 ; 0 ] } pub mod js { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; pub mod gc { # [ allow ( unused_imports ) ] use self :: super :: super :: super :: root ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct SystemAllocPolicy { pub _address : u8 , } # [ test ] fn bindgen_test_layout_SystemAllocPolicy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SystemAllocPolicy > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( SystemAllocPolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SystemAllocPolicy > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( SystemAllocPolicy ) ) ) ; } impl Clone for SystemAllocPolicy { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct SourceHook__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// A class of objects that return source code on demand.
+ /// specialization, define a RootedBase<T> specialization containing them.
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct Rooted {
+ pub _address: u8,
+ }
+ pub type Rooted_ElementType<T> = T;
+ pub mod dbg {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct GarbageCollectionEvent {
+ pub majorGCNumber_: u64,
+ pub reason: *const ::std::os::raw::c_char,
+ pub nonincrementalReason: *const ::std::os::raw::c_char,
+ pub collections: [u64; 3usize],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct GarbageCollectionEvent_Collection {
+ pub startTimestamp: root::mozilla::TimeStamp,
+ pub endTimestamp: root::mozilla::TimeStamp,
+ }
+ #[test]
+ fn bindgen_test_layout_GarbageCollectionEvent_Collection() {
+ assert_eq!(
+ ::std::mem::size_of::<GarbageCollectionEvent_Collection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(GarbageCollectionEvent_Collection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GarbageCollectionEvent_Collection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(GarbageCollectionEvent_Collection)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GarbageCollectionEvent_Collection>())).startTimestamp
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GarbageCollectionEvent_Collection),
+ "::",
+ stringify!(startTimestamp)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GarbageCollectionEvent_Collection>())).endTimestamp
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GarbageCollectionEvent_Collection),
+ "::",
+ stringify!(endTimestamp)
+ )
+ );
+ }
+ impl Clone for GarbageCollectionEvent_Collection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type GarbageCollectionEvent_Ptr =
+ root::mozilla::UniquePtr<root::JS::dbg::GarbageCollectionEvent>;
+ #[test]
+ fn bindgen_test_layout_GarbageCollectionEvent() {
+ assert_eq!(
+ ::std::mem::size_of::<GarbageCollectionEvent>(),
+ 48usize,
+ concat!("Size of: ", stringify!(GarbageCollectionEvent))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GarbageCollectionEvent>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(GarbageCollectionEvent))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GarbageCollectionEvent>())).majorGCNumber_
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GarbageCollectionEvent),
+ "::",
+ stringify!(majorGCNumber_)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GarbageCollectionEvent>())).reason as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GarbageCollectionEvent),
+ "::",
+ stringify!(reason)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GarbageCollectionEvent>())).nonincrementalReason
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GarbageCollectionEvent),
+ "::",
+ stringify!(nonincrementalReason)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<GarbageCollectionEvent>())).collections as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GarbageCollectionEvent),
+ "::",
+ stringify!(collections)
+ )
+ );
+ }
+ }
+ pub type Value_PayloadType = u64;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Value_layout {
+ pub asBits: root::__BindgenUnionField<u64>,
+ pub debugView: root::__BindgenUnionField<root::JS::Value_layout__bindgen_ty_1>,
+ pub s: root::__BindgenUnionField<root::JS::Value_layout__bindgen_ty_2>,
+ pub asDouble: root::__BindgenUnionField<f64>,
+ pub asPtr: root::__BindgenUnionField<*mut ::std::os::raw::c_void>,
+ pub asWord: root::__BindgenUnionField<usize>,
+ pub asUIntPtr: root::__BindgenUnionField<usize>,
+ pub bindgen_union_field: u64,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Value_layout__bindgen_ty_1 {
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 8usize], u64>,
+ pub __bindgen_align: [u64; 0usize],
+ }
+ #[test]
+ fn bindgen_test_layout_Value_layout__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<Value_layout__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(Value_layout__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Value_layout__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Value_layout__bindgen_ty_1))
+ );
+ }
+ impl Clone for Value_layout__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ impl Value_layout__bindgen_ty_1 {
+ #[inline]
+ pub fn payload47(&self) -> u64 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 47u8) as u64) }
+ }
+ #[inline]
+ pub fn set_payload47(&mut self, val: u64) {
+ unsafe {
+ let val: u64 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 47u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn tag(&self) -> root::JSValueTag {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(47usize, 17u8) as u32) }
+ }
+ #[inline]
+ pub fn set_tag(&mut self, val: root::JSValueTag) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(47usize, 17u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ payload47: u64,
+ tag: root::JSValueTag,
+ ) -> root::__BindgenBitfieldUnit<[u8; 8usize], u64> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 8usize],
+ u64,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 47u8, {
+ let payload47: u64 = unsafe { ::std::mem::transmute(payload47) };
+ payload47 as u64
+ });
+ __bindgen_bitfield_unit.set(47usize, 17u8, {
+ let tag: u32 = unsafe { ::std::mem::transmute(tag) };
+ tag as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Value_layout__bindgen_ty_2 {
+ pub payload: root::JS::Value_layout__bindgen_ty_2__bindgen_ty_1,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct Value_layout__bindgen_ty_2__bindgen_ty_1 {
+ pub i32: root::__BindgenUnionField<i32>,
+ pub u32: root::__BindgenUnionField<u32>,
+ pub why: root::__BindgenUnionField<root::JSWhyMagic>,
+ pub bindgen_union_field: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_Value_layout__bindgen_ty_2__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<Value_layout__bindgen_ty_2__bindgen_ty_1>(),
+ 4usize,
+ concat!(
+ "Size of: ",
+ stringify!(Value_layout__bindgen_ty_2__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Value_layout__bindgen_ty_2__bindgen_ty_1>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(Value_layout__bindgen_ty_2__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Value_layout__bindgen_ty_2__bindgen_ty_1>())).i32
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout__bindgen_ty_2__bindgen_ty_1),
+ "::",
+ stringify!(i32)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Value_layout__bindgen_ty_2__bindgen_ty_1>())).u32
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout__bindgen_ty_2__bindgen_ty_1),
+ "::",
+ stringify!(u32)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Value_layout__bindgen_ty_2__bindgen_ty_1>())).why
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout__bindgen_ty_2__bindgen_ty_1),
+ "::",
+ stringify!(why)
+ )
+ );
+ }
+ impl Clone for Value_layout__bindgen_ty_2__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_Value_layout__bindgen_ty_2() {
+ assert_eq!(
+ ::std::mem::size_of::<Value_layout__bindgen_ty_2>(),
+ 4usize,
+ concat!("Size of: ", stringify!(Value_layout__bindgen_ty_2))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Value_layout__bindgen_ty_2>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(Value_layout__bindgen_ty_2))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<Value_layout__bindgen_ty_2>())).payload as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout__bindgen_ty_2),
+ "::",
+ stringify!(payload)
+ )
+ );
+ }
+ impl Clone for Value_layout__bindgen_ty_2 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_Value_layout() {
+ assert_eq!(
+ ::std::mem::size_of::<Value_layout>(),
+ 8usize,
+ concat!("Size of: ", stringify!(Value_layout))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<Value_layout>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(Value_layout))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).asBits as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(asBits)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).debugView as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(debugView)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).s as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(s)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).asDouble as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(asDouble)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).asPtr as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(asPtr)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).asWord as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(asWord)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<Value_layout>())).asUIntPtr as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(Value_layout),
+ "::",
+ stringify!(asUIntPtr)
+ )
+ );
+ }
+ impl Clone for Value_layout {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ConstUTF8CharsZ {
+ pub data_: *const ::std::os::raw::c_char,
+ }
+ pub type ConstUTF8CharsZ_CharT = ::std::os::raw::c_uchar;
+ #[test]
+ fn bindgen_test_layout_ConstUTF8CharsZ() {
+ assert_eq!(
+ ::std::mem::size_of::<ConstUTF8CharsZ>(),
+ 8usize,
+ concat!("Size of: ", stringify!(ConstUTF8CharsZ))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ConstUTF8CharsZ>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ConstUTF8CharsZ))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ConstUTF8CharsZ>())).data_ as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ConstUTF8CharsZ),
+ "::",
+ stringify!(data_)
+ )
+ );
+ }
+ impl Clone for ConstUTF8CharsZ {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct JSObject {
+ _unused: [u8; 0],
+ }
+ pub mod js {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ pub mod gc {
+ #[allow(unused_imports)]
+ use self::super::super::super::root;
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct SystemAllocPolicy {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_SystemAllocPolicy() {
+ assert_eq!(
+ ::std::mem::size_of::<SystemAllocPolicy>(),
+ 1usize,
+ concat!("Size of: ", stringify!(SystemAllocPolicy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<SystemAllocPolicy>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(SystemAllocPolicy))
+ );
+ }
+ impl Clone for SystemAllocPolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct SourceHook__bindgen_vtable(::std::os::raw::c_void);
+ /// A class of objects that return source code on demand.
///
/// When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't
/// retain the source code (and doesn't do lazy bytecode generation). If we ever
@@ -558,37 +13670,602 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// toSource or Debugger.Source.prototype.text, then we call the 'load' member
/// function of the instance of this class that has hopefully been registered
/// with the runtime, passing the code's URL, and hope that it will be able to
- /// find the source.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct SourceHook { pub vtable_ : * const SourceHook__bindgen_vtable , } # [ test ] fn bindgen_test_layout_SourceHook ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SourceHook > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( SourceHook ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SourceHook > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SourceHook ) ) ) ; } }
- /// Factors implementation for all template versions of nsCOMPtr.
+ /// find the source.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct SourceHook {
+ pub vtable_: *const SourceHook__bindgen_vtable,
+ }
+ #[test]
+ fn bindgen_test_layout_SourceHook() {
+ assert_eq!(
+ ::std::mem::size_of::<SourceHook>(),
+ 8usize,
+ concat!("Size of: ", stringify!(SourceHook))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<SourceHook>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(SourceHook))
+ );
+ }
+ }
+ /// Factors implementation for all template versions of nsCOMPtr.
///
/// Here's the way people normally do things like this:
///
/// template<class T> class Foo { ... };
/// template<> class Foo<void*> { ... };
- /// template<class T> class Foo<T*> : private Foo<void*> { ... };
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCOMPtr_base { pub mRawPtr : * mut root :: nsISupports , } # [ test ] fn bindgen_test_layout_nsCOMPtr_base ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCOMPtr_base > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsCOMPtr_base ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCOMPtr_base > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCOMPtr_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCOMPtr_base ) ) . mRawPtr as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCOMPtr_base ) , "::" , stringify ! ( mRawPtr ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCOMPtr { pub _base : root :: nsCOMPtr_base , } pub type nsCOMPtr_element_type < T > = T ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAutoPtr < T > { pub mRawPtr : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsAutoPtr_Ptr < T > { pub mPtr : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsAutoPtr_element_type < T > = T ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsAutoPtr_Proxy { pub _address : u8 , } pub type nsAutoPtr_Proxy_member_function = u8 ; pub type PLDHashNumber = u32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct PLDHashEntryHdr { pub mKeyHash : root :: PLDHashNumber , } # [ test ] fn bindgen_test_layout_PLDHashEntryHdr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLDHashEntryHdr > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( PLDHashEntryHdr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLDHashEntryHdr > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( PLDHashEntryHdr ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashEntryHdr ) ) . mKeyHash as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashEntryHdr ) , "::" , stringify ! ( mKeyHash ) ) ) ; } impl Clone for PLDHashEntryHdr { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct PLDHashTable { pub mOps : * const root :: PLDHashTableOps , pub mEntryStore : root :: PLDHashTable_EntryStore , pub mGeneration : u16 , pub mHashShift : u8 , pub mEntrySize : u8 , pub mEntryCount : u32 , pub mRemovedCount : u32 , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct PLDHashTable_EntryStore { pub mEntryStore : * mut :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_PLDHashTable_EntryStore ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLDHashTable_EntryStore > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( PLDHashTable_EntryStore ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLDHashTable_EntryStore > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLDHashTable_EntryStore ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_EntryStore ) ) . mEntryStore as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_EntryStore ) , "::" , stringify ! ( mEntryStore ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct PLDHashTable_Iterator { pub mTable : * mut root :: PLDHashTable , pub mStart : * mut :: std :: os :: raw :: c_char , pub mLimit : * mut :: std :: os :: raw :: c_char , pub mCurrent : * mut :: std :: os :: raw :: c_char , pub mNexts : u32 , pub mNextsLimit : u32 , pub mHaveRemoved : bool , } # [ test ] fn bindgen_test_layout_PLDHashTable_Iterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLDHashTable_Iterator > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( PLDHashTable_Iterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLDHashTable_Iterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLDHashTable_Iterator ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mTable as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mStart as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mLimit as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mLimit ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mCurrent as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mCurrent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mNexts as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mNexts ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mNextsLimit as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mNextsLimit ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable_Iterator ) ) . mHaveRemoved as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable_Iterator ) , "::" , stringify ! ( mHaveRemoved ) ) ) ; } pub const PLDHashTable_SearchReason_ForSearchOrRemove : root :: PLDHashTable_SearchReason = 0 ; pub const PLDHashTable_SearchReason_ForAdd : root :: PLDHashTable_SearchReason = 1 ; pub type PLDHashTable_SearchReason = :: std :: os :: raw :: c_uint ; pub const PLDHashTable_kMaxCapacity : u32 = 67108864 ; pub const PLDHashTable_kMinCapacity : u32 = 8 ; pub const PLDHashTable_kMaxInitialLength : u32 = 33554432 ; pub const PLDHashTable_kDefaultInitialLength : u32 = 4 ; pub const PLDHashTable_kHashBits : u32 = 32 ; pub const PLDHashTable_kGoldenRatio : u32 = 2654435769 ; pub const PLDHashTable_kCollisionFlag : root :: PLDHashNumber = 1 ; # [ test ] fn bindgen_test_layout_PLDHashTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLDHashTable > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( PLDHashTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLDHashTable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLDHashTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mOps as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mOps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mEntryStore as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mEntryStore ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mGeneration as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mGeneration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mHashShift as * const _ as usize } , 18usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mHashShift ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mEntrySize as * const _ as usize } , 19usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mEntrySize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mEntryCount as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mEntryCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTable ) ) . mRemovedCount as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTable ) , "::" , stringify ! ( mRemovedCount ) ) ) ; } pub type PLDHashHashKey = :: std :: option :: Option < unsafe extern "C" fn ( aKey : * const :: std :: os :: raw :: c_void ) -> root :: PLDHashNumber > ; pub type PLDHashMatchEntry = :: std :: option :: Option < unsafe extern "C" fn ( aEntry : * const root :: PLDHashEntryHdr , aKey : * const :: std :: os :: raw :: c_void ) -> bool > ; pub type PLDHashMoveEntry = :: std :: option :: Option < unsafe extern "C" fn ( aTable : * mut root :: PLDHashTable , aFrom : * const root :: PLDHashEntryHdr , aTo : * mut root :: PLDHashEntryHdr ) > ; pub type PLDHashClearEntry = :: std :: option :: Option < unsafe extern "C" fn ( aTable : * mut root :: PLDHashTable , aEntry : * mut root :: PLDHashEntryHdr ) > ; pub type PLDHashInitEntry = :: std :: option :: Option < unsafe extern "C" fn ( aEntry : * mut root :: PLDHashEntryHdr , aKey : * const :: std :: os :: raw :: c_void ) > ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct PLDHashTableOps { pub hashKey : root :: PLDHashHashKey , pub matchEntry : root :: PLDHashMatchEntry , pub moveEntry : root :: PLDHashMoveEntry , pub clearEntry : root :: PLDHashClearEntry , pub initEntry : root :: PLDHashInitEntry , } # [ test ] fn bindgen_test_layout_PLDHashTableOps ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLDHashTableOps > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( PLDHashTableOps ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLDHashTableOps > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLDHashTableOps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTableOps ) ) . hashKey as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTableOps ) , "::" , stringify ! ( hashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTableOps ) ) . matchEntry as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTableOps ) , "::" , stringify ! ( matchEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTableOps ) ) . moveEntry as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTableOps ) , "::" , stringify ! ( moveEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTableOps ) ) . clearEntry as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTableOps ) , "::" , stringify ! ( clearEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLDHashTableOps ) ) . initEntry as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( PLDHashTableOps ) , "::" , stringify ! ( initEntry ) ) ) ; } impl Clone for PLDHashTableOps { fn clone ( & self ) -> Self { * self } }
- /// hashkey wrapper using T* KeyType
+ /// template<class T> class Foo<T*> : private Foo<void*> { ... };
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCOMPtr_base {
+ pub mRawPtr: *mut root::nsISupports,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCOMPtr_base() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCOMPtr_base>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsCOMPtr_base))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCOMPtr_base>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCOMPtr_base))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCOMPtr_base>())).mRawPtr as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCOMPtr_base),
+ "::",
+ stringify!(mRawPtr)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCOMPtr {
+ pub _base: root::nsCOMPtr_base,
+ }
+ pub type nsCOMPtr_element_type<T> = T;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAutoPtr<T> {
+ pub mRawPtr: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsAutoPtr_Ptr<T> {
+ pub mPtr: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsAutoPtr_element_type<T> = T;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsAutoPtr_Proxy {
+ pub _address: u8,
+ }
+ pub type nsAutoPtr_Proxy_member_function = u8;
+ pub type PLDHashNumber = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct PLDHashEntryHdr {
+ pub mKeyHash: root::PLDHashNumber,
+ }
+ #[test]
+ fn bindgen_test_layout_PLDHashEntryHdr() {
+ assert_eq!(
+ ::std::mem::size_of::<PLDHashEntryHdr>(),
+ 4usize,
+ concat!("Size of: ", stringify!(PLDHashEntryHdr))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLDHashEntryHdr>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(PLDHashEntryHdr))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashEntryHdr>())).mKeyHash as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashEntryHdr),
+ "::",
+ stringify!(mKeyHash)
+ )
+ );
+ }
+ impl Clone for PLDHashEntryHdr {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct PLDHashTable {
+ pub mOps: *const root::PLDHashTableOps,
+ pub mEntryStore: root::PLDHashTable_EntryStore,
+ pub mGeneration: u16,
+ pub mHashShift: u8,
+ pub mEntrySize: u8,
+ pub mEntryCount: u32,
+ pub mRemovedCount: u32,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct PLDHashTable_EntryStore {
+ pub mEntryStore: *mut ::std::os::raw::c_char,
+ }
+ #[test]
+ fn bindgen_test_layout_PLDHashTable_EntryStore() {
+ assert_eq!(
+ ::std::mem::size_of::<PLDHashTable_EntryStore>(),
+ 8usize,
+ concat!("Size of: ", stringify!(PLDHashTable_EntryStore))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLDHashTable_EntryStore>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLDHashTable_EntryStore))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_EntryStore>())).mEntryStore as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_EntryStore),
+ "::",
+ stringify!(mEntryStore)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct PLDHashTable_Iterator {
+ pub mTable: *mut root::PLDHashTable,
+ pub mStart: *mut ::std::os::raw::c_char,
+ pub mLimit: *mut ::std::os::raw::c_char,
+ pub mCurrent: *mut ::std::os::raw::c_char,
+ pub mNexts: u32,
+ pub mNextsLimit: u32,
+ pub mHaveRemoved: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_PLDHashTable_Iterator() {
+ assert_eq!(
+ ::std::mem::size_of::<PLDHashTable_Iterator>(),
+ 48usize,
+ concat!("Size of: ", stringify!(PLDHashTable_Iterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLDHashTable_Iterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLDHashTable_Iterator))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mTable as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mStart as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mStart)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mLimit as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mLimit)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mCurrent as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mCurrent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mNexts as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mNexts)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mNextsLimit as *const _ as usize
+ },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mNextsLimit)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<PLDHashTable_Iterator>())).mHaveRemoved as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable_Iterator),
+ "::",
+ stringify!(mHaveRemoved)
+ )
+ );
+ }
+ pub const PLDHashTable_SearchReason_ForSearchOrRemove: root::PLDHashTable_SearchReason = 0;
+ pub const PLDHashTable_SearchReason_ForAdd: root::PLDHashTable_SearchReason = 1;
+ pub type PLDHashTable_SearchReason = u32;
+ pub const PLDHashTable_kMaxCapacity: u32 = 67108864;
+ pub const PLDHashTable_kMinCapacity: u32 = 8;
+ pub const PLDHashTable_kMaxInitialLength: u32 = 33554432;
+ pub const PLDHashTable_kDefaultInitialLength: u32 = 4;
+ pub const PLDHashTable_kHashBits: u32 = 32;
+ pub const PLDHashTable_kGoldenRatio: u32 = 2654435769;
+ pub const PLDHashTable_kCollisionFlag: root::PLDHashNumber = 1;
+ #[test]
+ fn bindgen_test_layout_PLDHashTable() {
+ assert_eq!(
+ ::std::mem::size_of::<PLDHashTable>(),
+ 32usize,
+ concat!("Size of: ", stringify!(PLDHashTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLDHashTable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLDHashTable))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mOps as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mOps)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mEntryStore as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mEntryStore)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mGeneration as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mGeneration)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mHashShift as *const _ as usize },
+ 18usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mHashShift)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mEntrySize as *const _ as usize },
+ 19usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mEntrySize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mEntryCount as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mEntryCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTable>())).mRemovedCount as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTable),
+ "::",
+ stringify!(mRemovedCount)
+ )
+ );
+ }
+ pub type PLDHashHashKey = ::std::option::Option<
+ unsafe extern "C" fn(aKey: *const ::std::os::raw::c_void) -> root::PLDHashNumber,
+ >;
+ pub type PLDHashMatchEntry = ::std::option::Option<
+ unsafe extern "C" fn(
+ aEntry: *const root::PLDHashEntryHdr,
+ aKey: *const ::std::os::raw::c_void,
+ ) -> bool,
+ >;
+ pub type PLDHashMoveEntry = ::std::option::Option<
+ unsafe extern "C" fn(
+ aTable: *mut root::PLDHashTable,
+ aFrom: *const root::PLDHashEntryHdr,
+ aTo: *mut root::PLDHashEntryHdr,
+ ),
+ >;
+ pub type PLDHashClearEntry = ::std::option::Option<
+ unsafe extern "C" fn(aTable: *mut root::PLDHashTable, aEntry: *mut root::PLDHashEntryHdr),
+ >;
+ pub type PLDHashInitEntry = ::std::option::Option<
+ unsafe extern "C" fn(
+ aEntry: *mut root::PLDHashEntryHdr,
+ aKey: *const ::std::os::raw::c_void,
+ ),
+ >;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct PLDHashTableOps {
+ pub hashKey: root::PLDHashHashKey,
+ pub matchEntry: root::PLDHashMatchEntry,
+ pub moveEntry: root::PLDHashMoveEntry,
+ pub clearEntry: root::PLDHashClearEntry,
+ pub initEntry: root::PLDHashInitEntry,
+ }
+ #[test]
+ fn bindgen_test_layout_PLDHashTableOps() {
+ assert_eq!(
+ ::std::mem::size_of::<PLDHashTableOps>(),
+ 40usize,
+ concat!("Size of: ", stringify!(PLDHashTableOps))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLDHashTableOps>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLDHashTableOps))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTableOps>())).hashKey as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTableOps),
+ "::",
+ stringify!(hashKey)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTableOps>())).matchEntry as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTableOps),
+ "::",
+ stringify!(matchEntry)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTableOps>())).moveEntry as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTableOps),
+ "::",
+ stringify!(moveEntry)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTableOps>())).clearEntry as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTableOps),
+ "::",
+ stringify!(clearEntry)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLDHashTableOps>())).initEntry as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLDHashTableOps),
+ "::",
+ stringify!(initEntry)
+ )
+ );
+ }
+ impl Clone for PLDHashTableOps {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// hashkey wrapper using T* KeyType
///
- /// @see nsTHashtable::EntryType for specification
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsPtrHashKey < T > { pub _base : root :: PLDHashEntryHdr , pub mKey : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsPtrHashKey_KeyType < T > = * mut T ; pub type nsPtrHashKey_KeyTypePointer < T > = * mut T ; pub const nsPtrHashKey_ALLOW_MEMMOVE : root :: nsPtrHashKey__bindgen_ty_1 = 0 ; pub type nsPtrHashKey__bindgen_ty_1 = i32 ;
- /// hashkey wrapper using nsAString KeyType
+ /// @see nsTHashtable::EntryType for specification
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsPtrHashKey<T> {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsPtrHashKey_KeyType<T> = *mut T;
+ pub type nsPtrHashKey_KeyTypePointer<T> = *mut T;
+ pub const nsPtrHashKey_ALLOW_MEMMOVE: root::nsPtrHashKey__bindgen_ty_1 = 0;
+ pub type nsPtrHashKey__bindgen_ty_1 = i32;
+ /// hashkey wrapper using nsAString KeyType
///
- /// @see nsTHashtable::EntryType for specification
- # [ repr ( C ) ] pub struct nsStringHashKey { pub _base : root :: PLDHashEntryHdr , pub mStr : ::nsstring::nsStringRepr , } pub type nsStringHashKey_KeyType = * const root :: nsAString ; pub type nsStringHashKey_KeyTypePointer = * const root :: nsAString ; pub const nsStringHashKey_ALLOW_MEMMOVE : root :: nsStringHashKey__bindgen_ty_1 = 1 ; pub type nsStringHashKey__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsStringHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStringHashKey > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStringHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStringHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStringHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStringHashKey ) ) . mStr as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStringHashKey ) , "::" , stringify ! ( mStr ) ) ) ; }
- /// hashkey wrapper using nsACString KeyType
+ /// @see nsTHashtable::EntryType for specification
+ #[repr(C)]
+ pub struct nsStringHashKey {
+ pub _base: root::PLDHashEntryHdr,
+ pub mStr: ::nsstring::nsStringRepr,
+ }
+ pub type nsStringHashKey_KeyType = *const root::nsAString;
+ pub type nsStringHashKey_KeyTypePointer = *const root::nsAString;
+ pub const nsStringHashKey_ALLOW_MEMMOVE: root::nsStringHashKey__bindgen_ty_1 = 1;
+ pub type nsStringHashKey__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsStringHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStringHashKey>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStringHashKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStringHashKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStringHashKey))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStringHashKey>())).mStr as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStringHashKey),
+ "::",
+ stringify!(mStr)
+ )
+ );
+ }
+ /// hashkey wrapper using nsACString KeyType
///
- /// @see nsTHashtable::EntryType for specification
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCStringHashKey { pub _base : root :: PLDHashEntryHdr , pub mStr : root :: nsCString , } pub type nsCStringHashKey_KeyType = * const root :: nsACString ; pub type nsCStringHashKey_KeyTypePointer = * const root :: nsACString ; pub const nsCStringHashKey_ALLOW_MEMMOVE : root :: nsCStringHashKey__bindgen_ty_1 = 1 ; pub type nsCStringHashKey__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsCStringHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCStringHashKey > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsCStringHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCStringHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCStringHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCStringHashKey ) ) . mStr as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCStringHashKey ) , "::" , stringify ! ( mStr ) ) ) ; }
- /// hashkey wrapper using nsISupports* KeyType
+ /// @see nsTHashtable::EntryType for specification
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCStringHashKey {
+ pub _base: root::PLDHashEntryHdr,
+ pub mStr: root::nsCString,
+ }
+ pub type nsCStringHashKey_KeyType = *const root::nsACString;
+ pub type nsCStringHashKey_KeyTypePointer = *const root::nsACString;
+ pub const nsCStringHashKey_ALLOW_MEMMOVE: root::nsCStringHashKey__bindgen_ty_1 = 1;
+ pub type nsCStringHashKey__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsCStringHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCStringHashKey>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsCStringHashKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCStringHashKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCStringHashKey))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCStringHashKey>())).mStr as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCStringHashKey),
+ "::",
+ stringify!(mStr)
+ )
+ );
+ }
+ /// hashkey wrapper using nsISupports* KeyType
///
- /// @see nsTHashtable::EntryType for specification
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsISupportsHashKey { pub _base : root :: PLDHashEntryHdr , pub mSupports : root :: nsCOMPtr , } pub type nsISupportsHashKey_KeyType = * mut root :: nsISupports ; pub type nsISupportsHashKey_KeyTypePointer = * const root :: nsISupports ; pub const nsISupportsHashKey_ALLOW_MEMMOVE : root :: nsISupportsHashKey__bindgen_ty_1 = 1 ; pub type nsISupportsHashKey__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsISupportsHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsISupportsHashKey > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsISupportsHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsISupportsHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsISupportsHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsISupportsHashKey ) ) . mSupports as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsISupportsHashKey ) , "::" , stringify ! ( mSupports ) ) ) ; }
- /// hashkey wrapper using refcounted * KeyType
+ /// @see nsTHashtable::EntryType for specification
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsISupportsHashKey {
+ pub _base: root::PLDHashEntryHdr,
+ pub mSupports: root::nsCOMPtr,
+ }
+ pub type nsISupportsHashKey_KeyType = *mut root::nsISupports;
+ pub type nsISupportsHashKey_KeyTypePointer = *const root::nsISupports;
+ pub const nsISupportsHashKey_ALLOW_MEMMOVE: root::nsISupportsHashKey__bindgen_ty_1 = 1;
+ pub type nsISupportsHashKey__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsISupportsHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsISupportsHashKey>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsISupportsHashKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsISupportsHashKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsISupportsHashKey))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsISupportsHashKey>())).mSupports as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsISupportsHashKey),
+ "::",
+ stringify!(mSupports)
+ )
+ );
+ }
+ /// hashkey wrapper using refcounted * KeyType
///
- /// @see nsTHashtable::EntryType for specification
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsRefPtrHashKey < T > { pub _base : root :: PLDHashEntryHdr , pub mKey : root :: RefPtr < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsRefPtrHashKey_KeyType < T > = * mut T ; pub type nsRefPtrHashKey_KeyTypePointer < T > = * mut T ; pub const nsRefPtrHashKey_ALLOW_MEMMOVE : root :: nsRefPtrHashKey__bindgen_ty_1 = 0 ; pub type nsRefPtrHashKey__bindgen_ty_1 = i32 ;
- /// a base class for templated hashtables.
+ /// @see nsTHashtable::EntryType for specification
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsRefPtrHashKey<T> {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: root::RefPtr<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsRefPtrHashKey_KeyType<T> = *mut T;
+ pub type nsRefPtrHashKey_KeyTypePointer<T> = *mut T;
+ pub const nsRefPtrHashKey_ALLOW_MEMMOVE: root::nsRefPtrHashKey__bindgen_ty_1 = 0;
+ pub type nsRefPtrHashKey__bindgen_ty_1 = i32;
+ /// a base class for templated hashtables.
///
/// Clients will rarely need to use this class directly. Check the derived
/// classes first, to see if they will meet your needs.
@@ -636,17 +14313,37 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// @see nsInterfaceHashtable
/// @see nsDataHashtable
/// @see nsClassHashtable
- /// @author "Benjamin Smedberg <bsmedberg@covad.net>"
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTHashtable { pub _address : u8 , } pub type nsTHashtable_fallible_t = root :: mozilla :: fallible_t ;
- /// KeyType is typedef'ed for ease of use.
- pub type nsTHashtable_KeyType = [ u8 ; 0usize ] ;
- /// KeyTypePointer is typedef'ed for ease of use.
- pub type nsTHashtable_KeyTypePointer = [ u8 ; 0usize ] ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsTHashtable_Iterator { pub _base : root :: PLDHashTable_Iterator , } pub type nsTHashtable_Iterator_Base = root :: PLDHashTable_Iterator ;
- /// the private nsTHashtable::EntryType class used by nsBaseHashtable
+ /// @author "Benjamin Smedberg <bsmedberg@covad.net>"
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTHashtable {
+ pub _address: u8,
+ }
+ pub type nsTHashtable_fallible_t = root::mozilla::fallible_t;
+ /// KeyType is typedef'ed for ease of use.
+ pub type nsTHashtable_KeyType = [u8; 0usize];
+ /// KeyTypePointer is typedef'ed for ease of use.
+ pub type nsTHashtable_KeyTypePointer = [u8; 0usize];
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsTHashtable_Iterator {
+ pub _base: root::PLDHashTable_Iterator,
+ }
+ pub type nsTHashtable_Iterator_Base = root::PLDHashTable_Iterator;
+ /// the private nsTHashtable::EntryType class used by nsBaseHashtable
/// @see nsTHashtable for the specification of this class
- /// @see nsBaseHashtable for template parameters
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsBaseHashtableET < KeyClass , DataType > { pub _base : KeyClass , pub mData : DataType , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < KeyClass > > , pub _phantom_1 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < DataType > > , } pub type nsBaseHashtableET_KeyType = [ u8 ; 0usize ] ; pub type nsBaseHashtableET_KeyTypePointer = [ u8 ; 0usize ] ;
- /// templated hashtable for simple data types
+ /// @see nsBaseHashtable for template parameters
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsBaseHashtableET<KeyClass, DataType> {
+ pub _base: KeyClass,
+ pub mData: DataType,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<KeyClass>>,
+ pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<DataType>>,
+ }
+ pub type nsBaseHashtableET_KeyType = [u8; 0usize];
+ pub type nsBaseHashtableET_KeyTypePointer = [u8; 0usize];
+ /// templated hashtable for simple data types
/// This class manages simple data types that do not need construction or
/// destruction.
///
@@ -655,43 +14352,1278 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// @param DataType the datatype stored in the hashtable,
/// for example, uint32_t or nsCOMPtr. If UserDataType is not the same,
/// DataType must implicitly cast to UserDataType
- /// @param UserDataType the user sees, for example uint32_t or nsISupports*
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsBaseHashtable { pub _address : u8 , } pub type nsBaseHashtable_fallible_t = root :: mozilla :: fallible_t ; pub type nsBaseHashtable_KeyType = [ u8 ; 0usize ] ; pub type nsBaseHashtable_EntryType < KeyClass , DataType > = root :: nsBaseHashtableET < KeyClass , DataType > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsBaseHashtable_LookupResult < KeyClass , DataType > { pub mEntry : * mut root :: nsBaseHashtable_EntryType < KeyClass , DataType > , pub mTable : * mut u8 , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < KeyClass > > , pub _phantom_1 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < DataType > > , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsBaseHashtable_EntryPtr < KeyClass , DataType > { pub mEntry : * mut root :: nsBaseHashtable_EntryType < KeyClass , DataType > , pub mExistingEntry : bool , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < KeyClass > > , pub _phantom_1 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < DataType > > , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsBaseHashtable_Iterator { pub _base : root :: PLDHashTable_Iterator , } pub type nsBaseHashtable_Iterator_Base = root :: PLDHashTable_Iterator ;
- /// templated hashtable class maps keys to simple datatypes.
+ /// @param UserDataType the user sees, for example uint32_t or nsISupports*
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsBaseHashtable {
+ pub _address: u8,
+ }
+ pub type nsBaseHashtable_fallible_t = root::mozilla::fallible_t;
+ pub type nsBaseHashtable_KeyType = [u8; 0usize];
+ pub type nsBaseHashtable_EntryType<KeyClass, DataType> =
+ root::nsBaseHashtableET<KeyClass, DataType>;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsBaseHashtable_LookupResult<KeyClass, DataType> {
+ pub mEntry: *mut root::nsBaseHashtable_EntryType<KeyClass, DataType>,
+ pub mTable: *mut u8,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<KeyClass>>,
+ pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<DataType>>,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsBaseHashtable_EntryPtr<KeyClass, DataType> {
+ pub mEntry: *mut root::nsBaseHashtable_EntryType<KeyClass, DataType>,
+ pub mExistingEntry: bool,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<KeyClass>>,
+ pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<DataType>>,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsBaseHashtable_Iterator {
+ pub _base: root::PLDHashTable_Iterator,
+ }
+ pub type nsBaseHashtable_Iterator_Base = root::PLDHashTable_Iterator;
+ /// templated hashtable class maps keys to simple datatypes.
/// See nsBaseHashtable for complete declaration
/// @param KeyClass a wrapper-class for the hashtable key, see nsHashKeys.h
/// for a complete specification.
/// @param DataType the simple datatype being wrapped
- /// @see nsInterfaceHashtable, nsClassHashtable
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsDataHashtable { pub _address : u8 , } pub type nsDataHashtable_BaseClass = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsTArrayHeader { pub mLength : u32 , pub _bitfield_1 : u32 , } extern "C" {
- # [ link_name = "\u{1}_ZN14nsTArrayHeader9sEmptyHdrE" ]
- pub static mut nsTArrayHeader_sEmptyHdr : root :: nsTArrayHeader ;
-} # [ test ] fn bindgen_test_layout_nsTArrayHeader ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsTArrayHeader > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsTArrayHeader ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsTArrayHeader > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsTArrayHeader ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTArrayHeader ) ) . mLength as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsTArrayHeader ) , "::" , stringify ! ( mLength ) ) ) ; } impl Clone for nsTArrayHeader { fn clone ( & self ) -> Self { * self } } impl nsTArrayHeader { # [ inline ] pub fn mCapacity ( & self ) -> u32 { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x7fffffff as u32 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mCapacity ( & mut self , val : u32 ) { let mask = 0x7fffffff as u32 ; let val = val as u32 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsAutoArray ( & self ) -> u32 { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x80000000 as u32 ; let val = ( unit_field_val & mask ) >> 31usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsAutoArray ( & mut self , val : u32 ) { let mask = 0x80000000 as u32 ; let val = val as u32 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 31usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mCapacity : u32 , mIsAutoArray : u32 ) -> u32 { ( ( 0 | ( ( mCapacity as u32 as u32 ) << 0usize ) & ( 0x7fffffff as u32 ) ) | ( ( mIsAutoArray as u32 as u32 ) << 31usize ) & ( 0x80000000 as u32 ) ) } } pub type AutoTArray_self_type = u8 ; pub type AutoTArray_base_type < E > = root :: nsTArray < E > ; pub type AutoTArray_Header < E > = root :: AutoTArray_base_type < E > ; pub type AutoTArray_elem_type < E > = root :: AutoTArray_base_type < E > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AutoTArray__bindgen_ty_1 { pub mAutoBuf : root :: __BindgenUnionField < * mut :: std :: os :: raw :: c_char > , pub mAlign : root :: __BindgenUnionField < u8 > , pub bindgen_union_field : u64 , } pub type nscoord = i32 ; pub type nscolor = u32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct gfxFontFeature { pub mTag : u32 , pub mValue : u32 , } # [ test ] fn bindgen_test_layout_gfxFontFeature ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxFontFeature > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( gfxFontFeature ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxFontFeature > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( gfxFontFeature ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeature ) ) . mTag as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeature ) , "::" , stringify ! ( mTag ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeature ) ) . mValue as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeature ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for gfxFontFeature { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct gfxAlternateValue { pub alternate : u32 , pub value : ::nsstring::nsStringRepr , } # [ test ] fn bindgen_test_layout_gfxAlternateValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxAlternateValue > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( gfxAlternateValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxAlternateValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( gfxAlternateValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxAlternateValue ) ) . alternate as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( gfxAlternateValue ) , "::" , stringify ! ( alternate ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxAlternateValue ) ) . value as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( gfxAlternateValue ) , "::" , stringify ! ( value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct gfxFontFeatureValueSet { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mFontFeatureValues : [ u64 ; 4usize ] , } pub type gfxFontFeatureValueSet_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ repr ( C ) ] pub struct gfxFontFeatureValueSet_ValueList { pub name : ::nsstring::nsStringRepr , pub featureSelectors : root :: nsTArray < u32 > , } # [ test ] fn bindgen_test_layout_gfxFontFeatureValueSet_ValueList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxFontFeatureValueSet_ValueList > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( gfxFontFeatureValueSet_ValueList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxFontFeatureValueSet_ValueList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( gfxFontFeatureValueSet_ValueList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_ValueList ) ) . name as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_ValueList ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_ValueList ) ) . featureSelectors as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_ValueList ) , "::" , stringify ! ( featureSelectors ) ) ) ; } # [ repr ( C ) ] pub struct gfxFontFeatureValueSet_FeatureValues { pub alternate : u32 , pub valuelist : root :: nsTArray < root :: gfxFontFeatureValueSet_ValueList > , } # [ test ] fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValues ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxFontFeatureValueSet_FeatureValues > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( gfxFontFeatureValueSet_FeatureValues ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxFontFeatureValueSet_FeatureValues > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( gfxFontFeatureValueSet_FeatureValues ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValues ) ) . alternate as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValues ) , "::" , stringify ! ( alternate ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValues ) ) . valuelist as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValues ) , "::" , stringify ! ( valuelist ) ) ) ; } # [ repr ( C ) ] pub struct gfxFontFeatureValueSet_FeatureValueHashKey { pub mFamily : ::nsstring::nsStringRepr , pub mPropVal : u32 , pub mName : ::nsstring::nsStringRepr , } # [ test ] fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxFontFeatureValueSet_FeatureValueHashKey > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxFontFeatureValueSet_FeatureValueHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValueHashKey ) ) . mFamily as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashKey ) , "::" , stringify ! ( mFamily ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValueHashKey ) ) . mPropVal as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashKey ) , "::" , stringify ! ( mPropVal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValueHashKey ) ) . mName as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashKey ) , "::" , stringify ! ( mName ) ) ) ; } # [ repr ( C ) ] pub struct gfxFontFeatureValueSet_FeatureValueHashEntry { pub _base : root :: PLDHashEntryHdr , pub mKey : root :: gfxFontFeatureValueSet_FeatureValueHashKey , pub mValues : root :: nsTArray < u32 > , } pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType = * const root :: gfxFontFeatureValueSet_FeatureValueHashKey ; pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer = * const root :: gfxFontFeatureValueSet_FeatureValueHashKey ; pub const gfxFontFeatureValueSet_FeatureValueHashEntry_ALLOW_MEMMOVE : root :: gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_1 = 1 ; pub type gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxFontFeatureValueSet_FeatureValueHashEntry > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxFontFeatureValueSet_FeatureValueHashEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValueHashEntry ) ) . mKey as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashEntry ) , "::" , stringify ! ( mKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet_FeatureValueHashEntry ) ) . mValues as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet_FeatureValueHashEntry ) , "::" , stringify ! ( mValues ) ) ) ; } # [ test ] fn bindgen_test_layout_gfxFontFeatureValueSet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < gfxFontFeatureValueSet > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( gfxFontFeatureValueSet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < gfxFontFeatureValueSet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( gfxFontFeatureValueSet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const gfxFontFeatureValueSet ) ) . mFontFeatureValues as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( gfxFontFeatureValueSet ) , "::" , stringify ! ( mFontFeatureValues ) ) ) ; } pub type gfxFontVariation = root :: mozilla :: gfx :: FontVariation ; pub const kGenericFont_NONE : u8 = 0 ; pub const kGenericFont_moz_variable : u8 = 0 ; pub const kGenericFont_moz_fixed : u8 = 1 ; pub const kGenericFont_serif : u8 = 2 ; pub const kGenericFont_sans_serif : u8 = 4 ; pub const kGenericFont_monospace : u8 = 8 ; pub const kGenericFont_cursive : u8 = 16 ; pub const kGenericFont_fantasy : u8 = 32 ; # [ repr ( C ) ] pub struct nsFont { pub fontlist : root :: mozilla :: FontFamilyList , pub style : u8 , pub systemFont : bool , pub variantCaps : u8 , pub variantNumeric : u8 , pub variantPosition : u8 , pub variantWidth : u8 , pub variantLigatures : u16 , pub variantEastAsian : u16 , pub variantAlternates : u16 , pub smoothing : u8 , pub fontSmoothingBackgroundColor : root :: nscolor , pub weight : u16 , pub stretch : i16 , pub kerning : u8 , pub synthesis : u8 , pub size : root :: nscoord , pub sizeAdjust : f32 , pub alternateValues : root :: nsTArray < root :: gfxAlternateValue > , pub featureValueLookup : root :: RefPtr < root :: gfxFontFeatureValueSet > , pub fontFeatureSettings : root :: nsTArray < root :: gfxFontFeature > , pub fontVariationSettings : root :: nsTArray < root :: gfxFontVariation > , pub languageOverride : u32 , } pub const nsFont_MaxDifference_eNone : root :: nsFont_MaxDifference = 0 ; pub const nsFont_MaxDifference_eVisual : root :: nsFont_MaxDifference = 1 ; pub const nsFont_MaxDifference_eLayoutAffecting : root :: nsFont_MaxDifference = 2 ; pub type nsFont_MaxDifference = u8 ; # [ test ] fn bindgen_test_layout_nsFont ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsFont > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( nsFont ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsFont > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . fontlist as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( fontlist ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . style as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( style ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . systemFont as * const _ as usize } , 17usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( systemFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantCaps as * const _ as usize } , 18usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantCaps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantNumeric as * const _ as usize } , 19usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantNumeric ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantPosition as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantWidth as * const _ as usize } , 21usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantLigatures as * const _ as usize } , 22usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantLigatures ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantEastAsian as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantEastAsian ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . variantAlternates as * const _ as usize } , 26usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( variantAlternates ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . smoothing as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( smoothing ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . fontSmoothingBackgroundColor as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( fontSmoothingBackgroundColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . weight as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( weight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . stretch as * const _ as usize } , 38usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( stretch ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . kerning as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( kerning ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . synthesis as * const _ as usize } , 41usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( synthesis ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . size as * const _ as usize } , 44usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . sizeAdjust as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( sizeAdjust ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . alternateValues as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( alternateValues ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . featureValueLookup as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( featureValueLookup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . fontFeatureSettings as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( fontFeatureSettings ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . fontVariationSettings as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( fontVariationSettings ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFont ) ) . languageOverride as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsFont ) , "::" , stringify ! ( languageOverride ) ) ) ; }
- /// An array of objects, similar to AutoTArray<T,1> but which is memmovable. It
- /// always has length >= 1.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleAutoArray < T > { pub mFirstElement : T , pub mOtherElements : root :: nsTArray < T > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub const nsStyleAutoArray_WithSingleInitialElement_WITH_SINGLE_INITIAL_ELEMENT : root :: nsStyleAutoArray_WithSingleInitialElement = 0 ; pub type nsStyleAutoArray_WithSingleInitialElement = i32 ; pub const nsStyleUnit_eStyleUnit_MAX : root :: nsStyleUnit = nsStyleUnit :: eStyleUnit_Calc ; # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleUnit { eStyleUnit_Null = 0 , eStyleUnit_Normal = 1 , eStyleUnit_Auto = 2 , eStyleUnit_None = 3 , eStyleUnit_Percent = 10 , eStyleUnit_Factor = 11 , eStyleUnit_Degree = 12 , eStyleUnit_Grad = 13 , eStyleUnit_Radian = 14 , eStyleUnit_Turn = 15 , eStyleUnit_FlexFraction = 16 , eStyleUnit_Coord = 20 , eStyleUnit_Integer = 30 , eStyleUnit_Enumerated = 32 , eStyleUnit_Calc = 40 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleUnion { pub mInt : root :: __BindgenUnionField < i32 > , pub mFloat : root :: __BindgenUnionField < f32 > , pub mPointer : root :: __BindgenUnionField < * mut :: std :: os :: raw :: c_void > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsStyleUnion ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleUnion > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStyleUnion ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleUnion > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleUnion ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUnion ) ) . mInt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUnion ) , "::" , stringify ! ( mInt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUnion ) ) . mFloat as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUnion ) , "::" , stringify ! ( mFloat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUnion ) ) . mPointer as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUnion ) , "::" , stringify ! ( mPointer ) ) ) ; } impl Clone for nsStyleUnion { fn clone ( & self ) -> Self { * self } }
- /// Class that hold a single size specification used by the style
+ /// @see nsInterfaceHashtable, nsClassHashtable
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsDataHashtable {
+ pub _address: u8,
+ }
+ pub type nsDataHashtable_BaseClass = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsTArrayHeader {
+ pub mLength: u32,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 4usize], u32>,
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsTArrayHeader9sEmptyHdrE"]
+ pub static mut nsTArrayHeader_sEmptyHdr: root::nsTArrayHeader;
+ }
+ #[test]
+ fn bindgen_test_layout_nsTArrayHeader() {
+ assert_eq!(
+ ::std::mem::size_of::<nsTArrayHeader>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsTArrayHeader))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsTArrayHeader>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsTArrayHeader))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsTArrayHeader>())).mLength as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTArrayHeader),
+ "::",
+ stringify!(mLength)
+ )
+ );
+ }
+ impl Clone for nsTArrayHeader {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ impl nsTArrayHeader {
+ #[inline]
+ pub fn mCapacity(&self) -> u32 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 31u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mCapacity(&mut self, val: u32) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 31u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsAutoArray(&self) -> u32 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsAutoArray(&mut self, val: u32) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(31usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mCapacity: u32,
+ mIsAutoArray: u32,
+ ) -> root::__BindgenBitfieldUnit<[u8; 4usize], u32> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 4usize],
+ u32,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 31u8, {
+ let mCapacity: u32 = unsafe { ::std::mem::transmute(mCapacity) };
+ mCapacity as u64
+ });
+ __bindgen_bitfield_unit.set(31usize, 1u8, {
+ let mIsAutoArray: u32 = unsafe { ::std::mem::transmute(mIsAutoArray) };
+ mIsAutoArray as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ pub type AutoTArray_self_type = u8;
+ pub type AutoTArray_base_type<E> = root::nsTArray<E>;
+ pub type AutoTArray_Header<E> = root::AutoTArray_base_type<E>;
+ pub type AutoTArray_elem_type<E> = root::AutoTArray_base_type<E>;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct AutoTArray__bindgen_ty_1 {
+ pub mAutoBuf: root::__BindgenUnionField<*mut ::std::os::raw::c_char>,
+ pub mAlign: root::__BindgenUnionField<u8>,
+ pub bindgen_union_field: u64,
+ }
+ pub type nscoord = i32;
+ pub type nscolor = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct gfxFontFeature {
+ pub mTag: u32,
+ pub mValue: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_gfxFontFeature() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxFontFeature>(),
+ 8usize,
+ concat!("Size of: ", stringify!(gfxFontFeature))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxFontFeature>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(gfxFontFeature))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<gfxFontFeature>())).mTag as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeature),
+ "::",
+ stringify!(mTag)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<gfxFontFeature>())).mValue as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeature),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for gfxFontFeature {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct gfxAlternateValue {
+ pub alternate: u32,
+ pub value: ::nsstring::nsStringRepr,
+ }
+ #[test]
+ fn bindgen_test_layout_gfxAlternateValue() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxAlternateValue>(),
+ 24usize,
+ concat!("Size of: ", stringify!(gfxAlternateValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxAlternateValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(gfxAlternateValue))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<gfxAlternateValue>())).alternate as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxAlternateValue),
+ "::",
+ stringify!(alternate)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<gfxAlternateValue>())).value as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxAlternateValue),
+ "::",
+ stringify!(value)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct gfxFontFeatureValueSet {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mFontFeatureValues: [u64; 4usize],
+ }
+ pub type gfxFontFeatureValueSet_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[repr(C)]
+ pub struct gfxFontFeatureValueSet_ValueList {
+ pub name: ::nsstring::nsStringRepr,
+ pub featureSelectors: root::nsTArray<u32>,
+ }
+ #[test]
+ fn bindgen_test_layout_gfxFontFeatureValueSet_ValueList() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxFontFeatureValueSet_ValueList>(),
+ 24usize,
+ concat!("Size of: ", stringify!(gfxFontFeatureValueSet_ValueList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxFontFeatureValueSet_ValueList>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(gfxFontFeatureValueSet_ValueList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_ValueList>())).name as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_ValueList),
+ "::",
+ stringify!(name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_ValueList>())).featureSelectors
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_ValueList),
+ "::",
+ stringify!(featureSelectors)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct gfxFontFeatureValueSet_FeatureValues {
+ pub alternate: u32,
+ pub valuelist: root::nsTArray<root::gfxFontFeatureValueSet_ValueList>,
+ }
+ #[test]
+ fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValues() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValues>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValues)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValues>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(gfxFontFeatureValueSet_FeatureValues)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValues>())).alternate
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValues),
+ "::",
+ stringify!(alternate)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValues>())).valuelist
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValues),
+ "::",
+ stringify!(valuelist)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct gfxFontFeatureValueSet_FeatureValueHashKey {
+ pub mFamily: ::nsstring::nsStringRepr,
+ pub mPropVal: u32,
+ pub mName: ::nsstring::nsStringRepr,
+ }
+ #[test]
+ fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashKey>(),
+ 40usize,
+ concat!(
+ "Size of: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashKey)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashKey>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValueHashKey>())).mFamily
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashKey),
+ "::",
+ stringify!(mFamily)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValueHashKey>())).mPropVal
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashKey),
+ "::",
+ stringify!(mPropVal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValueHashKey>())).mName
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashKey),
+ "::",
+ stringify!(mName)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct gfxFontFeatureValueSet_FeatureValueHashEntry {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: root::gfxFontFeatureValueSet_FeatureValueHashKey,
+ pub mValues: root::nsTArray<u32>,
+ }
+ pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType =
+ *const root::gfxFontFeatureValueSet_FeatureValueHashKey;
+ pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer =
+ *const root::gfxFontFeatureValueSet_FeatureValueHashKey;
+ pub const gfxFontFeatureValueSet_FeatureValueHashEntry_ALLOW_MEMMOVE:
+ root::gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_1 = 1;
+ pub type gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>(),
+ 56usize,
+ concat!(
+ "Size of: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashEntry)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashEntry)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValueHashEntry>())).mKey
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashEntry),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet_FeatureValueHashEntry>())).mValues
+ as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet_FeatureValueHashEntry),
+ "::",
+ stringify!(mValues)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_gfxFontFeatureValueSet() {
+ assert_eq!(
+ ::std::mem::size_of::<gfxFontFeatureValueSet>(),
+ 40usize,
+ concat!("Size of: ", stringify!(gfxFontFeatureValueSet))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<gfxFontFeatureValueSet>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(gfxFontFeatureValueSet))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet>())).mRefCnt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<gfxFontFeatureValueSet>())).mFontFeatureValues as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(gfxFontFeatureValueSet),
+ "::",
+ stringify!(mFontFeatureValues)
+ )
+ );
+ }
+ pub type gfxFontVariation = root::mozilla::gfx::FontVariation;
+ pub const kGenericFont_NONE: u8 = 0;
+ pub const kGenericFont_moz_variable: u8 = 0;
+ pub const kGenericFont_moz_fixed: u8 = 1;
+ pub const kGenericFont_serif: u8 = 2;
+ pub const kGenericFont_sans_serif: u8 = 4;
+ pub const kGenericFont_monospace: u8 = 8;
+ pub const kGenericFont_cursive: u8 = 16;
+ pub const kGenericFont_fantasy: u8 = 32;
+ #[repr(C)]
+ pub struct nsFont {
+ pub fontlist: root::mozilla::FontFamilyList,
+ pub style: u8,
+ pub systemFont: bool,
+ pub variantCaps: u8,
+ pub variantNumeric: u8,
+ pub variantPosition: u8,
+ pub variantWidth: u8,
+ pub variantLigatures: u16,
+ pub variantEastAsian: u16,
+ pub variantAlternates: u16,
+ pub smoothing: u8,
+ pub fontSmoothingBackgroundColor: root::nscolor,
+ pub weight: u16,
+ pub stretch: i16,
+ pub kerning: u8,
+ pub synthesis: u8,
+ pub size: root::nscoord,
+ pub sizeAdjust: f32,
+ pub alternateValues: root::nsTArray<root::gfxAlternateValue>,
+ pub featureValueLookup: root::RefPtr<root::gfxFontFeatureValueSet>,
+ pub fontFeatureSettings: root::nsTArray<root::gfxFontFeature>,
+ pub fontVariationSettings: root::nsTArray<root::gfxFontVariation>,
+ pub languageOverride: u32,
+ }
+ pub const nsFont_MaxDifference_eNone: root::nsFont_MaxDifference = 0;
+ pub const nsFont_MaxDifference_eVisual: root::nsFont_MaxDifference = 1;
+ pub const nsFont_MaxDifference_eLayoutAffecting: root::nsFont_MaxDifference = 2;
+ pub type nsFont_MaxDifference = u8;
+ #[test]
+ fn bindgen_test_layout_nsFont() {
+ assert_eq!(
+ ::std::mem::size_of::<nsFont>(),
+ 96usize,
+ concat!("Size of: ", stringify!(nsFont))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsFont>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsFont))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).fontlist as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(fontlist)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).style as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(style)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).systemFont as *const _ as usize },
+ 17usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(systemFont)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantCaps as *const _ as usize },
+ 18usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantCaps)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantNumeric as *const _ as usize },
+ 19usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantNumeric)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantPosition as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantPosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantWidth as *const _ as usize },
+ 21usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantLigatures as *const _ as usize },
+ 22usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantLigatures)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantEastAsian as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantEastAsian)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).variantAlternates as *const _ as usize },
+ 26usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(variantAlternates)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).smoothing as *const _ as usize },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(smoothing)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFont>())).fontSmoothingBackgroundColor as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(fontSmoothingBackgroundColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).weight as *const _ as usize },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(weight)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).stretch as *const _ as usize },
+ 38usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(stretch)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).kerning as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(kerning)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).synthesis as *const _ as usize },
+ 41usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(synthesis)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).size as *const _ as usize },
+ 44usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(size)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).sizeAdjust as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(sizeAdjust)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).alternateValues as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(alternateValues)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).featureValueLookup as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(featureValueLookup)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).fontFeatureSettings as *const _ as usize },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(fontFeatureSettings)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFont>())).fontVariationSettings as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(fontVariationSettings)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsFont>())).languageOverride as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFont),
+ "::",
+ stringify!(languageOverride)
+ )
+ );
+ }
+ /// An array of objects, similar to AutoTArray<T,1> but which is memmovable. It
+ /// always has length >= 1.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleAutoArray<T> {
+ pub mFirstElement: T,
+ pub mOtherElements: root::nsTArray<T>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub const nsStyleAutoArray_WithSingleInitialElement_WITH_SINGLE_INITIAL_ELEMENT:
+ root::nsStyleAutoArray_WithSingleInitialElement = 0;
+ pub type nsStyleAutoArray_WithSingleInitialElement = i32;
+ pub const nsStyleUnit_eStyleUnit_MAX: root::nsStyleUnit = nsStyleUnit::eStyleUnit_Calc;
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleUnit {
+ eStyleUnit_Null = 0,
+ eStyleUnit_Normal = 1,
+ eStyleUnit_Auto = 2,
+ eStyleUnit_None = 3,
+ eStyleUnit_Percent = 10,
+ eStyleUnit_Factor = 11,
+ eStyleUnit_Degree = 12,
+ eStyleUnit_Grad = 13,
+ eStyleUnit_Radian = 14,
+ eStyleUnit_Turn = 15,
+ eStyleUnit_FlexFraction = 16,
+ eStyleUnit_Coord = 20,
+ eStyleUnit_Integer = 30,
+ eStyleUnit_Enumerated = 32,
+ eStyleUnit_Calc = 40,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleUnion {
+ pub mInt: root::__BindgenUnionField<i32>,
+ pub mFloat: root::__BindgenUnionField<f32>,
+ pub mPointer: root::__BindgenUnionField<*mut ::std::os::raw::c_void>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleUnion() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleUnion>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStyleUnion))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleUnion>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleUnion))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleUnion>())).mInt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUnion),
+ "::",
+ stringify!(mInt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleUnion>())).mFloat as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUnion),
+ "::",
+ stringify!(mFloat)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleUnion>())).mPointer as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUnion),
+ "::",
+ stringify!(mPointer)
+ )
+ );
+ }
+ impl Clone for nsStyleUnion {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Class that hold a single size specification used by the style
/// system. The size specification consists of two parts -- a number
/// and a unit. The number is an integer, a floating point value, an
/// nscoord, or undefined, and the unit is an nsStyleUnit. Checking
/// the unit is a must before asking for the value in any particular
/// form.
/// /
- /// /** <div rustbindgen private accessor="unsafe"></div>
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleCoord { mUnit : root :: nsStyleUnit , mValue : root :: nsStyleUnion , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleCoord_CalcValue { pub mLength : root :: nscoord , pub mPercent : f32 , pub mHasPercent : bool , } # [ test ] fn bindgen_test_layout_nsStyleCoord_CalcValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleCoord_CalcValue > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( nsStyleCoord_CalcValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleCoord_CalcValue > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleCoord_CalcValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCoord_CalcValue ) ) . mLength as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCoord_CalcValue ) , "::" , stringify ! ( mLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCoord_CalcValue ) ) . mPercent as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCoord_CalcValue ) , "::" , stringify ! ( mPercent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCoord_CalcValue ) ) . mHasPercent as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCoord_CalcValue ) , "::" , stringify ! ( mHasPercent ) ) ) ; } impl Clone for nsStyleCoord_CalcValue { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleCoord_Calc { pub _base : root :: nsStyleCoord_CalcValue , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , } pub type nsStyleCoord_Calc_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsStyleCoord_Calc ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleCoord_Calc > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleCoord_Calc ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleCoord_Calc > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleCoord_Calc ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCoord_Calc ) ) . mRefCnt as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCoord_Calc ) , "::" , stringify ! ( mRefCnt ) ) ) ; } pub const nsStyleCoord_CoordConstructorType_CoordConstructor : root :: nsStyleCoord_CoordConstructorType = 0 ; pub type nsStyleCoord_CoordConstructorType = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsStyleCoord ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleCoord > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsStyleCoord ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleCoord > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleCoord ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCoord ) ) . mUnit as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCoord ) , "::" , stringify ! ( mUnit ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCoord ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCoord ) , "::" , stringify ! ( mValue ) ) ) ; } impl nsStyleCoord { # [ inline ] pub unsafe fn get_mUnit ( & self ) -> & root :: nsStyleUnit { & self . mUnit } # [ inline ] pub unsafe fn get_mUnit_mut ( & mut self ) -> & mut root :: nsStyleUnit { & mut self . mUnit } # [ inline ] pub unsafe fn get_mValue ( & self ) -> & root :: nsStyleUnion { & self . mValue } # [ inline ] pub unsafe fn get_mValue_mut ( & mut self ) -> & mut root :: nsStyleUnion { & mut self . mValue } }
- /// Class that represents a set of top/right/bottom/left nsStyleCoords.
+ /// /** <div rustbindgen private accessor="unsafe"></div>
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleCoord {
+ mUnit: root::nsStyleUnit,
+ mValue: root::nsStyleUnion,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleCoord_CalcValue {
+ pub mLength: root::nscoord,
+ pub mPercent: f32,
+ pub mHasPercent: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleCoord_CalcValue() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleCoord_CalcValue>(),
+ 12usize,
+ concat!("Size of: ", stringify!(nsStyleCoord_CalcValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleCoord_CalcValue>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleCoord_CalcValue))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleCoord_CalcValue>())).mLength as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCoord_CalcValue),
+ "::",
+ stringify!(mLength)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleCoord_CalcValue>())).mPercent as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCoord_CalcValue),
+ "::",
+ stringify!(mPercent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleCoord_CalcValue>())).mHasPercent as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCoord_CalcValue),
+ "::",
+ stringify!(mHasPercent)
+ )
+ );
+ }
+ impl Clone for nsStyleCoord_CalcValue {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleCoord_Calc {
+ pub _base: root::nsStyleCoord_CalcValue,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ }
+ pub type nsStyleCoord_Calc_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsStyleCoord_Calc() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleCoord_Calc>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleCoord_Calc))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleCoord_Calc>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleCoord_Calc))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCoord_Calc>())).mRefCnt as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCoord_Calc),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ pub const nsStyleCoord_CoordConstructorType_CoordConstructor:
+ root::nsStyleCoord_CoordConstructorType = 0;
+ pub type nsStyleCoord_CoordConstructorType = u32;
+ #[test]
+ fn bindgen_test_layout_nsStyleCoord() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleCoord>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsStyleCoord))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleCoord>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleCoord))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCoord>())).mUnit as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCoord),
+ "::",
+ stringify!(mUnit)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCoord>())).mValue as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCoord),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl nsStyleCoord {
+ #[inline]
+ pub unsafe fn get_mUnit(&self) -> &root::nsStyleUnit {
+ &self.mUnit
+ }
+ #[inline]
+ pub unsafe fn get_mUnit_mut(&mut self) -> &mut root::nsStyleUnit {
+ &mut self.mUnit
+ }
+ #[inline]
+ pub unsafe fn get_mValue(&self) -> &root::nsStyleUnion {
+ &self.mValue
+ }
+ #[inline]
+ pub unsafe fn get_mValue_mut(&mut self) -> &mut root::nsStyleUnion {
+ &mut self.mValue
+ }
+ }
+ /// Class that represents a set of top/right/bottom/left nsStyleCoords.
/// This is commonly used to hold the widths of the borders, margins,
/// or paddings of a box.
/// /
- /// /** <div rustbindgen private accessor="unsafe"></div>
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleSides { mUnits : [ root :: nsStyleUnit ; 4usize ] , mValues : [ root :: nsStyleUnion ; 4usize ] , } # [ test ] fn bindgen_test_layout_nsStyleSides ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleSides > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsStyleSides ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleSides > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleSides ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSides ) ) . mUnits as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSides ) , "::" , stringify ! ( mUnits ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSides ) ) . mValues as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSides ) , "::" , stringify ! ( mValues ) ) ) ; } impl nsStyleSides { # [ inline ] pub unsafe fn get_mUnits ( & self ) -> & [ root :: nsStyleUnit ; 4usize ] { & self . mUnits } # [ inline ] pub unsafe fn get_mUnits_mut ( & mut self ) -> & mut [ root :: nsStyleUnit ; 4usize ] { & mut self . mUnits } # [ inline ] pub unsafe fn get_mValues ( & self ) -> & [ root :: nsStyleUnion ; 4usize ] { & self . mValues } # [ inline ] pub unsafe fn get_mValues_mut ( & mut self ) -> & mut [ root :: nsStyleUnion ; 4usize ] { & mut self . mValues } }
- /// Class that represents a set of top-left/top-right/bottom-right/bottom-left
+ /// /** <div rustbindgen private accessor="unsafe"></div>
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleSides {
+ mUnits: [root::nsStyleUnit; 4usize],
+ mValues: [root::nsStyleUnion; 4usize],
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleSides() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleSides>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsStyleSides))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleSides>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleSides))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSides>())).mUnits as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSides),
+ "::",
+ stringify!(mUnits)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSides>())).mValues as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSides),
+ "::",
+ stringify!(mValues)
+ )
+ );
+ }
+ impl nsStyleSides {
+ #[inline]
+ pub unsafe fn get_mUnits(&self) -> &[root::nsStyleUnit; 4usize] {
+ &self.mUnits
+ }
+ #[inline]
+ pub unsafe fn get_mUnits_mut(&mut self) -> &mut [root::nsStyleUnit; 4usize] {
+ &mut self.mUnits
+ }
+ #[inline]
+ pub unsafe fn get_mValues(&self) -> &[root::nsStyleUnion; 4usize] {
+ &self.mValues
+ }
+ #[inline]
+ pub unsafe fn get_mValues_mut(&mut self) -> &mut [root::nsStyleUnion; 4usize] {
+ &mut self.mValues
+ }
+ }
+ /// Class that represents a set of top-left/top-right/bottom-right/bottom-left
/// nsStyleCoord pairs. This is used to hold the dimensions of the
/// corners of a box (for, e.g., border-radius and outline-radius).
/// /
- /// /** <div rustbindgen private accessor="unsafe"></div>
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleCorners { mUnits : [ root :: nsStyleUnit ; 8usize ] , mValues : [ root :: nsStyleUnion ; 8usize ] , } # [ test ] fn bindgen_test_layout_nsStyleCorners ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleCorners > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( nsStyleCorners ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleCorners > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleCorners ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCorners ) ) . mUnits as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCorners ) , "::" , stringify ! ( mUnits ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCorners ) ) . mValues as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCorners ) , "::" , stringify ! ( mValues ) ) ) ; } impl nsStyleCorners { # [ inline ] pub unsafe fn get_mUnits ( & self ) -> & [ root :: nsStyleUnit ; 8usize ] { & self . mUnits } # [ inline ] pub unsafe fn get_mUnits_mut ( & mut self ) -> & mut [ root :: nsStyleUnit ; 8usize ] { & mut self . mUnits } # [ inline ] pub unsafe fn get_mValues ( & self ) -> & [ root :: nsStyleUnion ; 8usize ] { & self . mValues } # [ inline ] pub unsafe fn get_mValues_mut ( & mut self ) -> & mut [ root :: nsStyleUnion ; 8usize ] { & mut self . mValues } } pub const nsChangeHint_nsChangeHint_Empty : root :: nsChangeHint = root :: nsChangeHint ( 0 ) ; pub const nsChangeHint_nsChangeHint_RepaintFrame : root :: nsChangeHint = root :: nsChangeHint ( 1 ) ; pub const nsChangeHint_nsChangeHint_NeedReflow : root :: nsChangeHint = root :: nsChangeHint ( 2 ) ; pub const nsChangeHint_nsChangeHint_ClearAncestorIntrinsics : root :: nsChangeHint = root :: nsChangeHint ( 4 ) ; pub const nsChangeHint_nsChangeHint_ClearDescendantIntrinsics : root :: nsChangeHint = root :: nsChangeHint ( 8 ) ; pub const nsChangeHint_nsChangeHint_NeedDirtyReflow : root :: nsChangeHint = root :: nsChangeHint ( 16 ) ; pub const nsChangeHint_nsChangeHint_SyncFrameView : root :: nsChangeHint = root :: nsChangeHint ( 32 ) ; pub const nsChangeHint_nsChangeHint_UpdateCursor : root :: nsChangeHint = root :: nsChangeHint ( 64 ) ; pub const nsChangeHint_nsChangeHint_UpdateEffects : root :: nsChangeHint = root :: nsChangeHint ( 128 ) ; pub const nsChangeHint_nsChangeHint_UpdateOpacityLayer : root :: nsChangeHint = root :: nsChangeHint ( 256 ) ; pub const nsChangeHint_nsChangeHint_UpdateTransformLayer : root :: nsChangeHint = root :: nsChangeHint ( 512 ) ; pub const nsChangeHint_nsChangeHint_ReconstructFrame : root :: nsChangeHint = root :: nsChangeHint ( 1024 ) ; pub const nsChangeHint_nsChangeHint_UpdateOverflow : root :: nsChangeHint = root :: nsChangeHint ( 2048 ) ; pub const nsChangeHint_nsChangeHint_UpdateSubtreeOverflow : root :: nsChangeHint = root :: nsChangeHint ( 4096 ) ; pub const nsChangeHint_nsChangeHint_UpdatePostTransformOverflow : root :: nsChangeHint = root :: nsChangeHint ( 8192 ) ; pub const nsChangeHint_nsChangeHint_UpdateParentOverflow : root :: nsChangeHint = root :: nsChangeHint ( 16384 ) ; pub const nsChangeHint_nsChangeHint_ChildrenOnlyTransform : root :: nsChangeHint = root :: nsChangeHint ( 32768 ) ; pub const nsChangeHint_nsChangeHint_RecomputePosition : root :: nsChangeHint = root :: nsChangeHint ( 65536 ) ; pub const nsChangeHint_nsChangeHint_UpdateContainingBlock : root :: nsChangeHint = root :: nsChangeHint ( 131072 ) ; pub const nsChangeHint_nsChangeHint_BorderStyleNoneChange : root :: nsChangeHint = root :: nsChangeHint ( 262144 ) ; pub const nsChangeHint_nsChangeHint_UpdateTextPath : root :: nsChangeHint = root :: nsChangeHint ( 524288 ) ; pub const nsChangeHint_nsChangeHint_SchedulePaint : root :: nsChangeHint = root :: nsChangeHint ( 1048576 ) ; pub const nsChangeHint_nsChangeHint_NeutralChange : root :: nsChangeHint = root :: nsChangeHint ( 2097152 ) ; pub const nsChangeHint_nsChangeHint_InvalidateRenderingObservers : root :: nsChangeHint = root :: nsChangeHint ( 4194304 ) ; pub const nsChangeHint_nsChangeHint_ReflowChangesSizeOrPosition : root :: nsChangeHint = root :: nsChangeHint ( 8388608 ) ; pub const nsChangeHint_nsChangeHint_UpdateComputedBSize : root :: nsChangeHint = root :: nsChangeHint ( 16777216 ) ; pub const nsChangeHint_nsChangeHint_UpdateUsesOpacity : root :: nsChangeHint = root :: nsChangeHint ( 33554432 ) ; pub const nsChangeHint_nsChangeHint_UpdateBackgroundPosition : root :: nsChangeHint = root :: nsChangeHint ( 67108864 ) ; pub const nsChangeHint_nsChangeHint_AddOrRemoveTransform : root :: nsChangeHint = root :: nsChangeHint ( 134217728 ) ; pub const nsChangeHint_nsChangeHint_CSSOverflowChange : root :: nsChangeHint = root :: nsChangeHint ( 268435456 ) ; pub const nsChangeHint_nsChangeHint_UpdateWidgetProperties : root :: nsChangeHint = root :: nsChangeHint ( 536870912 ) ; pub const nsChangeHint_nsChangeHint_UpdateTableCellSpans : root :: nsChangeHint = root :: nsChangeHint ( 1073741824 ) ; pub const nsChangeHint_nsChangeHint_AllHints : root :: nsChangeHint = root :: nsChangeHint ( 2147483647 ) ; impl :: std :: ops :: BitOr < root :: nsChangeHint > for root :: nsChangeHint { type Output = Self ; # [ inline ] fn bitor ( self , other : Self ) -> Self { nsChangeHint ( self . 0 | other . 0 ) } } impl :: std :: ops :: BitOrAssign for root :: nsChangeHint { # [ inline ] fn bitor_assign ( & mut self , rhs : root :: nsChangeHint ) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < root :: nsChangeHint > for root :: nsChangeHint { type Output = Self ; # [ inline ] fn bitand ( self , other : Self ) -> Self { nsChangeHint ( self . 0 & other . 0 ) } } impl :: std :: ops :: BitAndAssign for root :: nsChangeHint { # [ inline ] fn bitand_assign ( & mut self , rhs : root :: nsChangeHint ) { self . 0 &= rhs . 0 ; } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub struct nsChangeHint ( pub u32 ) ; pub const nsRestyleHint_eRestyle_Self : root :: nsRestyleHint = root :: nsRestyleHint ( 1 ) ; pub const nsRestyleHint_eRestyle_SomeDescendants : root :: nsRestyleHint = root :: nsRestyleHint ( 2 ) ; pub const nsRestyleHint_eRestyle_Subtree : root :: nsRestyleHint = root :: nsRestyleHint ( 4 ) ; pub const nsRestyleHint_eRestyle_LaterSiblings : root :: nsRestyleHint = root :: nsRestyleHint ( 8 ) ; pub const nsRestyleHint_eRestyle_CSSTransitions : root :: nsRestyleHint = root :: nsRestyleHint ( 16 ) ; pub const nsRestyleHint_eRestyle_CSSAnimations : root :: nsRestyleHint = root :: nsRestyleHint ( 32 ) ; pub const nsRestyleHint_eRestyle_StyleAttribute : root :: nsRestyleHint = root :: nsRestyleHint ( 64 ) ; pub const nsRestyleHint_eRestyle_StyleAttribute_Animations : root :: nsRestyleHint = root :: nsRestyleHint ( 128 ) ; pub const nsRestyleHint_eRestyle_Force : root :: nsRestyleHint = root :: nsRestyleHint ( 256 ) ; pub const nsRestyleHint_eRestyle_ForceDescendants : root :: nsRestyleHint = root :: nsRestyleHint ( 512 ) ; pub const nsRestyleHint_eRestyle_AllHintsWithAnimations : root :: nsRestyleHint = root :: nsRestyleHint ( 176 ) ; impl :: std :: ops :: BitOr < root :: nsRestyleHint > for root :: nsRestyleHint { type Output = Self ; # [ inline ] fn bitor ( self , other : Self ) -> Self { nsRestyleHint ( self . 0 | other . 0 ) } } impl :: std :: ops :: BitOrAssign for root :: nsRestyleHint { # [ inline ] fn bitor_assign ( & mut self , rhs : root :: nsRestyleHint ) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < root :: nsRestyleHint > for root :: nsRestyleHint { type Output = Self ; # [ inline ] fn bitand ( self , other : Self ) -> Self { nsRestyleHint ( self . 0 & other . 0 ) } } impl :: std :: ops :: BitAndAssign for root :: nsRestyleHint { # [ inline ] fn bitand_assign ( & mut self , rhs : root :: nsRestyleHint ) { self . 0 &= rhs . 0 ; } } # [ repr ( C ) ]
- /// |nsRestyleHint| is a bitfield for the result of
+ /// /** <div rustbindgen private accessor="unsafe"></div>
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleCorners {
+ mUnits: [root::nsStyleUnit; 8usize],
+ mValues: [root::nsStyleUnion; 8usize],
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleCorners() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleCorners>(),
+ 72usize,
+ concat!("Size of: ", stringify!(nsStyleCorners))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleCorners>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleCorners))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCorners>())).mUnits as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCorners),
+ "::",
+ stringify!(mUnits)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCorners>())).mValues as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCorners),
+ "::",
+ stringify!(mValues)
+ )
+ );
+ }
+ impl nsStyleCorners {
+ #[inline]
+ pub unsafe fn get_mUnits(&self) -> &[root::nsStyleUnit; 8usize] {
+ &self.mUnits
+ }
+ #[inline]
+ pub unsafe fn get_mUnits_mut(&mut self) -> &mut [root::nsStyleUnit; 8usize] {
+ &mut self.mUnits
+ }
+ #[inline]
+ pub unsafe fn get_mValues(&self) -> &[root::nsStyleUnion; 8usize] {
+ &self.mValues
+ }
+ #[inline]
+ pub unsafe fn get_mValues_mut(&mut self) -> &mut [root::nsStyleUnion; 8usize] {
+ &mut self.mValues
+ }
+ }
+ pub const nsChangeHint_nsChangeHint_Empty: root::nsChangeHint = root::nsChangeHint(0);
+ pub const nsChangeHint_nsChangeHint_RepaintFrame: root::nsChangeHint = root::nsChangeHint(1);
+ pub const nsChangeHint_nsChangeHint_NeedReflow: root::nsChangeHint = root::nsChangeHint(2);
+ pub const nsChangeHint_nsChangeHint_ClearAncestorIntrinsics: root::nsChangeHint =
+ root::nsChangeHint(4);
+ pub const nsChangeHint_nsChangeHint_ClearDescendantIntrinsics: root::nsChangeHint =
+ root::nsChangeHint(8);
+ pub const nsChangeHint_nsChangeHint_NeedDirtyReflow: root::nsChangeHint =
+ root::nsChangeHint(16);
+ pub const nsChangeHint_nsChangeHint_SyncFrameView: root::nsChangeHint = root::nsChangeHint(32);
+ pub const nsChangeHint_nsChangeHint_UpdateCursor: root::nsChangeHint = root::nsChangeHint(64);
+ pub const nsChangeHint_nsChangeHint_UpdateEffects: root::nsChangeHint = root::nsChangeHint(128);
+ pub const nsChangeHint_nsChangeHint_UpdateOpacityLayer: root::nsChangeHint =
+ root::nsChangeHint(256);
+ pub const nsChangeHint_nsChangeHint_UpdateTransformLayer: root::nsChangeHint =
+ root::nsChangeHint(512);
+ pub const nsChangeHint_nsChangeHint_ReconstructFrame: root::nsChangeHint =
+ root::nsChangeHint(1024);
+ pub const nsChangeHint_nsChangeHint_UpdateOverflow: root::nsChangeHint =
+ root::nsChangeHint(2048);
+ pub const nsChangeHint_nsChangeHint_UpdateSubtreeOverflow: root::nsChangeHint =
+ root::nsChangeHint(4096);
+ pub const nsChangeHint_nsChangeHint_UpdatePostTransformOverflow: root::nsChangeHint =
+ root::nsChangeHint(8192);
+ pub const nsChangeHint_nsChangeHint_UpdateParentOverflow: root::nsChangeHint =
+ root::nsChangeHint(16384);
+ pub const nsChangeHint_nsChangeHint_ChildrenOnlyTransform: root::nsChangeHint =
+ root::nsChangeHint(32768);
+ pub const nsChangeHint_nsChangeHint_RecomputePosition: root::nsChangeHint =
+ root::nsChangeHint(65536);
+ pub const nsChangeHint_nsChangeHint_UpdateContainingBlock: root::nsChangeHint =
+ root::nsChangeHint(131072);
+ pub const nsChangeHint_nsChangeHint_BorderStyleNoneChange: root::nsChangeHint =
+ root::nsChangeHint(262144);
+ pub const nsChangeHint_nsChangeHint_UpdateTextPath: root::nsChangeHint =
+ root::nsChangeHint(524288);
+ pub const nsChangeHint_nsChangeHint_SchedulePaint: root::nsChangeHint =
+ root::nsChangeHint(1048576);
+ pub const nsChangeHint_nsChangeHint_NeutralChange: root::nsChangeHint =
+ root::nsChangeHint(2097152);
+ pub const nsChangeHint_nsChangeHint_InvalidateRenderingObservers: root::nsChangeHint =
+ root::nsChangeHint(4194304);
+ pub const nsChangeHint_nsChangeHint_ReflowChangesSizeOrPosition: root::nsChangeHint =
+ root::nsChangeHint(8388608);
+ pub const nsChangeHint_nsChangeHint_UpdateComputedBSize: root::nsChangeHint =
+ root::nsChangeHint(16777216);
+ pub const nsChangeHint_nsChangeHint_UpdateUsesOpacity: root::nsChangeHint =
+ root::nsChangeHint(33554432);
+ pub const nsChangeHint_nsChangeHint_UpdateBackgroundPosition: root::nsChangeHint =
+ root::nsChangeHint(67108864);
+ pub const nsChangeHint_nsChangeHint_AddOrRemoveTransform: root::nsChangeHint =
+ root::nsChangeHint(134217728);
+ pub const nsChangeHint_nsChangeHint_CSSOverflowChange: root::nsChangeHint =
+ root::nsChangeHint(268435456);
+ pub const nsChangeHint_nsChangeHint_UpdateWidgetProperties: root::nsChangeHint =
+ root::nsChangeHint(536870912);
+ pub const nsChangeHint_nsChangeHint_UpdateTableCellSpans: root::nsChangeHint =
+ root::nsChangeHint(1073741824);
+ pub const nsChangeHint_nsChangeHint_AllHints: root::nsChangeHint =
+ root::nsChangeHint(2147483647);
+ impl ::std::ops::BitOr<root::nsChangeHint> for root::nsChangeHint {
+ type Output = Self;
+ #[inline]
+ fn bitor(self, other: Self) -> Self {
+ nsChangeHint(self.0 | other.0)
+ }
+ }
+ impl ::std::ops::BitOrAssign for root::nsChangeHint {
+ #[inline]
+ fn bitor_assign(&mut self, rhs: root::nsChangeHint) {
+ self.0 |= rhs.0;
+ }
+ }
+ impl ::std::ops::BitAnd<root::nsChangeHint> for root::nsChangeHint {
+ type Output = Self;
+ #[inline]
+ fn bitand(self, other: Self) -> Self {
+ nsChangeHint(self.0 & other.0)
+ }
+ }
+ impl ::std::ops::BitAndAssign for root::nsChangeHint {
+ #[inline]
+ fn bitand_assign(&mut self, rhs: root::nsChangeHint) {
+ self.0 &= rhs.0;
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub struct nsChangeHint(pub u32);
+ pub const nsRestyleHint_eRestyle_Self: root::nsRestyleHint = root::nsRestyleHint(1);
+ pub const nsRestyleHint_eRestyle_SomeDescendants: root::nsRestyleHint = root::nsRestyleHint(2);
+ pub const nsRestyleHint_eRestyle_Subtree: root::nsRestyleHint = root::nsRestyleHint(4);
+ pub const nsRestyleHint_eRestyle_LaterSiblings: root::nsRestyleHint = root::nsRestyleHint(8);
+ pub const nsRestyleHint_eRestyle_CSSTransitions: root::nsRestyleHint = root::nsRestyleHint(16);
+ pub const nsRestyleHint_eRestyle_CSSAnimations: root::nsRestyleHint = root::nsRestyleHint(32);
+ pub const nsRestyleHint_eRestyle_StyleAttribute: root::nsRestyleHint = root::nsRestyleHint(64);
+ pub const nsRestyleHint_eRestyle_StyleAttribute_Animations: root::nsRestyleHint =
+ root::nsRestyleHint(128);
+ pub const nsRestyleHint_eRestyle_Force: root::nsRestyleHint = root::nsRestyleHint(256);
+ pub const nsRestyleHint_eRestyle_ForceDescendants: root::nsRestyleHint =
+ root::nsRestyleHint(512);
+ pub const nsRestyleHint_eRestyle_AllHintsWithAnimations: root::nsRestyleHint =
+ root::nsRestyleHint(176);
+ impl ::std::ops::BitOr<root::nsRestyleHint> for root::nsRestyleHint {
+ type Output = Self;
+ #[inline]
+ fn bitor(self, other: Self) -> Self {
+ nsRestyleHint(self.0 | other.0)
+ }
+ }
+ impl ::std::ops::BitOrAssign for root::nsRestyleHint {
+ #[inline]
+ fn bitor_assign(&mut self, rhs: root::nsRestyleHint) {
+ self.0 |= rhs.0;
+ }
+ }
+ impl ::std::ops::BitAnd<root::nsRestyleHint> for root::nsRestyleHint {
+ type Output = Self;
+ #[inline]
+ fn bitand(self, other: Self) -> Self {
+ nsRestyleHint(self.0 & other.0)
+ }
+ }
+ impl ::std::ops::BitAndAssign for root::nsRestyleHint {
+ #[inline]
+ fn bitand_assign(&mut self, rhs: root::nsRestyleHint) {
+ self.0 &= rhs.0;
+ }
+ }
+ #[repr(C)]
+ /// |nsRestyleHint| is a bitfield for the result of
/// |HasStateDependentStyle| and |HasAttributeDependentStyle|. When no
/// restyling is necessary, use |nsRestyleHint(0)|.
///
@@ -706,36 +15638,1161 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// to be set on the frames.
///
/// NOTE: When adding new restyle hints, please also add them to
- /// RestyleManager::RestyleHintToString.
- # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub struct nsRestyleHint ( pub u32 ) ;
- /// We want C++ to be able to read the style struct fields of ComputedValues
+ /// RestyleManager::RestyleHintToString.
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub struct nsRestyleHint(pub u32);
+ /// We want C++ to be able to read the style struct fields of ComputedValues
/// so we define this type on the C++ side and use the bindgenned version
- /// on the Rust side.
- # [ repr ( C ) ] pub struct ServoComputedData { pub Font : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoFont > , pub Color : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoColor > , pub List : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoList > , pub Text : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoText > , pub Visibility : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoVisibility > , pub UserInterface : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoUserInterface > , pub TableBorder : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoTableBorder > , pub SVG : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoSVG > , pub Background : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoBackground > , pub Position : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoPosition > , pub TextReset : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoTextReset > , pub Display : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoDisplay > , pub Content : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoContent > , pub UIReset : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoUIReset > , pub Table : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoTable > , pub Margin : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoMargin > , pub Padding : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoPadding > , pub Border : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoBorder > , pub Outline : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoOutline > , pub XUL : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoXUL > , pub SVGReset : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoSVGReset > , pub Column : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoColumn > , pub Effects : ::gecko_bindings::structs::ServoRawOffsetArc < root :: mozilla :: GeckoEffects > , pub custom_properties : ::gecko_bindings::structs::ServoCustomPropertiesMap , pub writing_mode : ::gecko_bindings::structs::ServoWritingMode , pub flags : ::gecko_bindings::structs::ServoComputedValueFlags ,
- /// The rule node representing the ordered list of rules matched for this
+ /// on the Rust side.
+ #[repr(C)]
+ pub struct ServoComputedData {
+ pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>,
+ pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>,
+ pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>,
+ pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>,
+ pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>,
+ pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>,
+ pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>,
+ pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>,
+ pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>,
+ pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>,
+ pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>,
+ pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>,
+ pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>,
+ pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>,
+ pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>,
+ pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>,
+ pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>,
+ pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>,
+ pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>,
+ pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>,
+ pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>,
+ pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>,
+ pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>,
+ pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap,
+ pub writing_mode: ::gecko_bindings::structs::ServoWritingMode,
+ pub flags: ::gecko_bindings::structs::ServoComputedValueFlags,
+ /// The rule node representing the ordered list of rules matched for this
/// /// node. Can be None for default values and text nodes. This is
- /// /// essentially an optimization to avoid referencing the root rule node.
- pub rules : ::gecko_bindings::structs::ServoRuleNode ,
- /// The element's computed values if visited, only computed if there's a
+ /// /// essentially an optimization to avoid referencing the root rule node.
+ pub rules: ::gecko_bindings::structs::ServoRuleNode,
+ /// The element's computed values if visited, only computed if there's a
/// /// relevant link for this element. A element's "relevant link" is the
- /// /// element being matched if it is a link or the nearest ancestor link.
- pub visited_style : ::gecko_bindings::structs::ServoVisitedStyle , } # [ test ] fn bindgen_test_layout_ServoComputedData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoComputedData > ( ) , 216usize , concat ! ( "Size of: " , stringify ! ( ServoComputedData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoComputedData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoComputedData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Font as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Font ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Color as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Color ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . List as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( List ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Text as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Text ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Visibility as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Visibility ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . UserInterface as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( UserInterface ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . TableBorder as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( TableBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . SVG as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( SVG ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Background as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Background ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Position as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Position ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . TextReset as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( TextReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Display as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Display ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Content as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Content ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . UIReset as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( UIReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Table as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Table ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Margin as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Margin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Padding as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Padding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Border as * const _ as usize } , 136usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Border ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Outline as * const _ as usize } , 144usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Outline ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . XUL as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( XUL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . SVGReset as * const _ as usize } , 160usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( SVGReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Column as * const _ as usize } , 168usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Column ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . Effects as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( Effects ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . custom_properties as * const _ as usize } , 184usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( custom_properties ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . writing_mode as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( writing_mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . flags as * const _ as usize } , 194usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . rules as * const _ as usize } , 200usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( rules ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoComputedData ) ) . visited_style as * const _ as usize } , 208usize , concat ! ( "Alignment of field: " , stringify ! ( ServoComputedData ) , "::" , stringify ! ( visited_style ) ) ) ; } pub const JSValueTag_JSVAL_TAG_MAX_DOUBLE : root :: JSValueTag = 131056 ; pub const JSValueTag_JSVAL_TAG_INT32 : root :: JSValueTag = 131057 ; pub const JSValueTag_JSVAL_TAG_UNDEFINED : root :: JSValueTag = 131058 ; pub const JSValueTag_JSVAL_TAG_NULL : root :: JSValueTag = 131059 ; pub const JSValueTag_JSVAL_TAG_BOOLEAN : root :: JSValueTag = 131060 ; pub const JSValueTag_JSVAL_TAG_MAGIC : root :: JSValueTag = 131061 ; pub const JSValueTag_JSVAL_TAG_STRING : root :: JSValueTag = 131062 ; pub const JSValueTag_JSVAL_TAG_SYMBOL : root :: JSValueTag = 131063 ; pub const JSValueTag_JSVAL_TAG_PRIVATE_GCTHING : root :: JSValueTag = 131064 ; pub const JSValueTag_JSVAL_TAG_OBJECT : root :: JSValueTag = 131068 ; pub type JSValueTag = :: std :: os :: raw :: c_uint ; pub const JSWhyMagic_JS_ELEMENTS_HOLE : root :: JSWhyMagic = 0 ; pub const JSWhyMagic_JS_NO_ITER_VALUE : root :: JSWhyMagic = 1 ; pub const JSWhyMagic_JS_GENERATOR_CLOSING : root :: JSWhyMagic = 2 ; pub const JSWhyMagic_JS_NO_CONSTANT : root :: JSWhyMagic = 3 ; pub const JSWhyMagic_JS_THIS_POISON : root :: JSWhyMagic = 4 ; pub const JSWhyMagic_JS_ARG_POISON : root :: JSWhyMagic = 5 ; pub const JSWhyMagic_JS_SERIALIZE_NO_NODE : root :: JSWhyMagic = 6 ; pub const JSWhyMagic_JS_LAZY_ARGUMENTS : root :: JSWhyMagic = 7 ; pub const JSWhyMagic_JS_OPTIMIZED_ARGUMENTS : root :: JSWhyMagic = 8 ; pub const JSWhyMagic_JS_IS_CONSTRUCTING : root :: JSWhyMagic = 9 ; pub const JSWhyMagic_JS_BLOCK_NEEDS_CLONE : root :: JSWhyMagic = 10 ; pub const JSWhyMagic_JS_HASH_KEY_EMPTY : root :: JSWhyMagic = 11 ; pub const JSWhyMagic_JS_ION_ERROR : root :: JSWhyMagic = 12 ; pub const JSWhyMagic_JS_ION_BAILOUT : root :: JSWhyMagic = 13 ; pub const JSWhyMagic_JS_OPTIMIZED_OUT : root :: JSWhyMagic = 14 ; pub const JSWhyMagic_JS_UNINITIALIZED_LEXICAL : root :: JSWhyMagic = 15 ; pub const JSWhyMagic_JS_GENERIC_MAGIC : root :: JSWhyMagic = 16 ; pub const JSWhyMagic_JS_WHY_MAGIC_COUNT : root :: JSWhyMagic = 17 ; pub type JSWhyMagic = :: std :: os :: raw :: c_uint ;
- /// This structure precedes the string buffers "we" allocate. It may be the
+ /// /// element being matched if it is a link or the nearest ancestor link.
+ pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoComputedData() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoComputedData>(),
+ 216usize,
+ concat!("Size of: ", stringify!(ServoComputedData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoComputedData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoComputedData))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Font as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Font)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Color as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Color)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).List as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(List)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Text as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Text)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).Visibility as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Visibility)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).UserInterface as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(UserInterface)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).TableBorder as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(TableBorder)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).SVG as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(SVG)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).Background as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Background)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Position as *const _ as usize },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Position)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).TextReset as *const _ as usize },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(TextReset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Display as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Display)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Content as *const _ as usize },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Content)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).UIReset as *const _ as usize },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(UIReset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Table as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Table)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Margin as *const _ as usize },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Margin)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Padding as *const _ as usize },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Padding)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Border as *const _ as usize },
+ 136usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Border)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Outline as *const _ as usize },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Outline)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).XUL as *const _ as usize },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(XUL)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).SVGReset as *const _ as usize },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(SVGReset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Column as *const _ as usize },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Column)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).Effects as *const _ as usize },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(Effects)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).custom_properties as *const _ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(custom_properties)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).writing_mode as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(writing_mode)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).flags as *const _ as usize },
+ 194usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(flags)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoComputedData>())).rules as *const _ as usize },
+ 200usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(rules)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoComputedData>())).visited_style as *const _ as usize
+ },
+ 208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoComputedData),
+ "::",
+ stringify!(visited_style)
+ )
+ );
+ }
+ pub const JSValueTag_JSVAL_TAG_MAX_DOUBLE: root::JSValueTag = 131056;
+ pub const JSValueTag_JSVAL_TAG_INT32: root::JSValueTag = 131057;
+ pub const JSValueTag_JSVAL_TAG_UNDEFINED: root::JSValueTag = 131058;
+ pub const JSValueTag_JSVAL_TAG_NULL: root::JSValueTag = 131059;
+ pub const JSValueTag_JSVAL_TAG_BOOLEAN: root::JSValueTag = 131060;
+ pub const JSValueTag_JSVAL_TAG_MAGIC: root::JSValueTag = 131061;
+ pub const JSValueTag_JSVAL_TAG_STRING: root::JSValueTag = 131062;
+ pub const JSValueTag_JSVAL_TAG_SYMBOL: root::JSValueTag = 131063;
+ pub const JSValueTag_JSVAL_TAG_PRIVATE_GCTHING: root::JSValueTag = 131064;
+ pub const JSValueTag_JSVAL_TAG_OBJECT: root::JSValueTag = 131068;
+ pub type JSValueTag = u32;
+ pub const JSWhyMagic_JS_ELEMENTS_HOLE: root::JSWhyMagic = 0;
+ pub const JSWhyMagic_JS_NO_ITER_VALUE: root::JSWhyMagic = 1;
+ pub const JSWhyMagic_JS_GENERATOR_CLOSING: root::JSWhyMagic = 2;
+ pub const JSWhyMagic_JS_NO_CONSTANT: root::JSWhyMagic = 3;
+ pub const JSWhyMagic_JS_THIS_POISON: root::JSWhyMagic = 4;
+ pub const JSWhyMagic_JS_ARG_POISON: root::JSWhyMagic = 5;
+ pub const JSWhyMagic_JS_SERIALIZE_NO_NODE: root::JSWhyMagic = 6;
+ pub const JSWhyMagic_JS_LAZY_ARGUMENTS: root::JSWhyMagic = 7;
+ pub const JSWhyMagic_JS_OPTIMIZED_ARGUMENTS: root::JSWhyMagic = 8;
+ pub const JSWhyMagic_JS_IS_CONSTRUCTING: root::JSWhyMagic = 9;
+ pub const JSWhyMagic_JS_BLOCK_NEEDS_CLONE: root::JSWhyMagic = 10;
+ pub const JSWhyMagic_JS_HASH_KEY_EMPTY: root::JSWhyMagic = 11;
+ pub const JSWhyMagic_JS_ION_ERROR: root::JSWhyMagic = 12;
+ pub const JSWhyMagic_JS_ION_BAILOUT: root::JSWhyMagic = 13;
+ pub const JSWhyMagic_JS_OPTIMIZED_OUT: root::JSWhyMagic = 14;
+ pub const JSWhyMagic_JS_UNINITIALIZED_LEXICAL: root::JSWhyMagic = 15;
+ pub const JSWhyMagic_JS_GENERIC_MAGIC: root::JSWhyMagic = 16;
+ pub const JSWhyMagic_JS_WHY_MAGIC_COUNT: root::JSWhyMagic = 17;
+ pub type JSWhyMagic = u32;
+ /// This structure precedes the string buffers "we" allocate. It may be the
/// case that nsTAString::mData does not point to one of these special
/// buffers. The mDataFlags member variable distinguishes the buffer type.
///
/// When this header is in use, it enables reference counting, and capacity
/// tracking. NOTE: A string buffer can be modified only if its reference
- /// count is 1.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStringBuffer { pub mRefCount : u32 , pub mStorageSize : u32 , pub mCanary : u32 , } # [ test ] fn bindgen_test_layout_nsStringBuffer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStringBuffer > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( nsStringBuffer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStringBuffer > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStringBuffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStringBuffer ) ) . mRefCount as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStringBuffer ) , "::" , stringify ! ( mRefCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStringBuffer ) ) . mStorageSize as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStringBuffer ) , "::" , stringify ! ( mStorageSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStringBuffer ) ) . mCanary as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStringBuffer ) , "::" , stringify ! ( mCanary ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAtom { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub _bitfield_1 : u32 , pub mHash : u32 , pub mString : * mut u16 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsAtom_AtomKind { DynamicAtom = 0 , StaticAtom = 1 , HTML5Atom = 2 , } pub type nsAtom_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsAtom ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAtom > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsAtom ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAtom > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAtom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAtom ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAtom ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAtom ) ) . mHash as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsAtom ) , "::" , stringify ! ( mHash ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAtom ) ) . mString as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsAtom ) , "::" , stringify ! ( mString ) ) ) ; } impl nsAtom { # [ inline ] pub fn mLength ( & self ) -> u32 { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x3fffffff as u32 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mLength ( & mut self , val : u32 ) { let mask = 0x3fffffff as u32 ; let val = val as u32 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mKind ( & self ) -> u32 { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0xc0000000 as u32 ; let val = ( unit_field_val & mask ) >> 30usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mKind ( & mut self , val : u32 ) { let mask = 0xc0000000 as u32 ; let val = val as u32 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 30usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mLength : u32 , mKind : u32 ) -> u32 { ( ( 0 | ( ( mLength as u32 as u32 ) << 0usize ) & ( 0x3fffffff as u32 ) ) | ( ( mKind as u32 as u32 ) << 30usize ) & ( 0xc0000000 as u32 ) ) } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStaticAtom { pub _base : root :: nsAtom , } # [ test ] fn bindgen_test_layout_nsStaticAtom ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStaticAtom > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStaticAtom ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStaticAtom > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStaticAtom ) ) ) ; } pub type nsLoadFlags = u32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIRequest { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIRequest_COMTypeInfo { pub _address : u8 , } pub const nsIRequest_LOAD_REQUESTMASK : root :: nsIRequest__bindgen_ty_1 = 65535 ; pub const nsIRequest_LOAD_NORMAL : root :: nsIRequest__bindgen_ty_1 = 0 ; pub const nsIRequest_LOAD_BACKGROUND : root :: nsIRequest__bindgen_ty_1 = 1 ; pub const nsIRequest_LOAD_HTML_OBJECT_DATA : root :: nsIRequest__bindgen_ty_1 = 2 ; pub const nsIRequest_LOAD_DOCUMENT_NEEDS_COOKIE : root :: nsIRequest__bindgen_ty_1 = 4 ; pub const nsIRequest_INHIBIT_CACHING : root :: nsIRequest__bindgen_ty_1 = 128 ; pub const nsIRequest_INHIBIT_PERSISTENT_CACHING : root :: nsIRequest__bindgen_ty_1 = 256 ; pub const nsIRequest_LOAD_BYPASS_CACHE : root :: nsIRequest__bindgen_ty_1 = 512 ; pub const nsIRequest_LOAD_FROM_CACHE : root :: nsIRequest__bindgen_ty_1 = 1024 ; pub const nsIRequest_VALIDATE_ALWAYS : root :: nsIRequest__bindgen_ty_1 = 2048 ; pub const nsIRequest_VALIDATE_NEVER : root :: nsIRequest__bindgen_ty_1 = 4096 ; pub const nsIRequest_VALIDATE_ONCE_PER_SESSION : root :: nsIRequest__bindgen_ty_1 = 8192 ; pub const nsIRequest_LOAD_ANONYMOUS : root :: nsIRequest__bindgen_ty_1 = 16384 ; pub const nsIRequest_LOAD_FRESH_CONNECTION : root :: nsIRequest__bindgen_ty_1 = 32768 ; pub type nsIRequest__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIRequest ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIRequest > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIRequest ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIRequest > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIRequest ) ) ) ; } impl Clone for nsIRequest { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIContentPolicy { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIContentPolicy_COMTypeInfo { pub _address : u8 , } pub const nsIContentPolicy_TYPE_INVALID : root :: nsIContentPolicy__bindgen_ty_1 = 0 ; pub const nsIContentPolicy_TYPE_OTHER : root :: nsIContentPolicy__bindgen_ty_1 = 1 ; pub const nsIContentPolicy_TYPE_SCRIPT : root :: nsIContentPolicy__bindgen_ty_1 = 2 ; pub const nsIContentPolicy_TYPE_IMAGE : root :: nsIContentPolicy__bindgen_ty_1 = 3 ; pub const nsIContentPolicy_TYPE_STYLESHEET : root :: nsIContentPolicy__bindgen_ty_1 = 4 ; pub const nsIContentPolicy_TYPE_OBJECT : root :: nsIContentPolicy__bindgen_ty_1 = 5 ; pub const nsIContentPolicy_TYPE_DOCUMENT : root :: nsIContentPolicy__bindgen_ty_1 = 6 ; pub const nsIContentPolicy_TYPE_SUBDOCUMENT : root :: nsIContentPolicy__bindgen_ty_1 = 7 ; pub const nsIContentPolicy_TYPE_REFRESH : root :: nsIContentPolicy__bindgen_ty_1 = 8 ; pub const nsIContentPolicy_TYPE_XBL : root :: nsIContentPolicy__bindgen_ty_1 = 9 ; pub const nsIContentPolicy_TYPE_PING : root :: nsIContentPolicy__bindgen_ty_1 = 10 ; pub const nsIContentPolicy_TYPE_XMLHTTPREQUEST : root :: nsIContentPolicy__bindgen_ty_1 = 11 ; pub const nsIContentPolicy_TYPE_DATAREQUEST : root :: nsIContentPolicy__bindgen_ty_1 = 11 ; pub const nsIContentPolicy_TYPE_OBJECT_SUBREQUEST : root :: nsIContentPolicy__bindgen_ty_1 = 12 ; pub const nsIContentPolicy_TYPE_DTD : root :: nsIContentPolicy__bindgen_ty_1 = 13 ; pub const nsIContentPolicy_TYPE_FONT : root :: nsIContentPolicy__bindgen_ty_1 = 14 ; pub const nsIContentPolicy_TYPE_MEDIA : root :: nsIContentPolicy__bindgen_ty_1 = 15 ; pub const nsIContentPolicy_TYPE_WEBSOCKET : root :: nsIContentPolicy__bindgen_ty_1 = 16 ; pub const nsIContentPolicy_TYPE_CSP_REPORT : root :: nsIContentPolicy__bindgen_ty_1 = 17 ; pub const nsIContentPolicy_TYPE_XSLT : root :: nsIContentPolicy__bindgen_ty_1 = 18 ; pub const nsIContentPolicy_TYPE_BEACON : root :: nsIContentPolicy__bindgen_ty_1 = 19 ; pub const nsIContentPolicy_TYPE_FETCH : root :: nsIContentPolicy__bindgen_ty_1 = 20 ; pub const nsIContentPolicy_TYPE_IMAGESET : root :: nsIContentPolicy__bindgen_ty_1 = 21 ; pub const nsIContentPolicy_TYPE_WEB_MANIFEST : root :: nsIContentPolicy__bindgen_ty_1 = 22 ; pub const nsIContentPolicy_TYPE_SAVEAS_DOWNLOAD : root :: nsIContentPolicy__bindgen_ty_1 = 43 ; pub const nsIContentPolicy_TYPE_INTERNAL_SCRIPT : root :: nsIContentPolicy__bindgen_ty_1 = 23 ; pub const nsIContentPolicy_TYPE_INTERNAL_WORKER : root :: nsIContentPolicy__bindgen_ty_1 = 24 ; pub const nsIContentPolicy_TYPE_INTERNAL_SHARED_WORKER : root :: nsIContentPolicy__bindgen_ty_1 = 25 ; pub const nsIContentPolicy_TYPE_INTERNAL_EMBED : root :: nsIContentPolicy__bindgen_ty_1 = 26 ; pub const nsIContentPolicy_TYPE_INTERNAL_OBJECT : root :: nsIContentPolicy__bindgen_ty_1 = 27 ; pub const nsIContentPolicy_TYPE_INTERNAL_FRAME : root :: nsIContentPolicy__bindgen_ty_1 = 28 ; pub const nsIContentPolicy_TYPE_INTERNAL_IFRAME : root :: nsIContentPolicy__bindgen_ty_1 = 29 ; pub const nsIContentPolicy_TYPE_INTERNAL_AUDIO : root :: nsIContentPolicy__bindgen_ty_1 = 30 ; pub const nsIContentPolicy_TYPE_INTERNAL_VIDEO : root :: nsIContentPolicy__bindgen_ty_1 = 31 ; pub const nsIContentPolicy_TYPE_INTERNAL_TRACK : root :: nsIContentPolicy__bindgen_ty_1 = 32 ; pub const nsIContentPolicy_TYPE_INTERNAL_XMLHTTPREQUEST : root :: nsIContentPolicy__bindgen_ty_1 = 33 ; pub const nsIContentPolicy_TYPE_INTERNAL_EVENTSOURCE : root :: nsIContentPolicy__bindgen_ty_1 = 34 ; pub const nsIContentPolicy_TYPE_INTERNAL_SERVICE_WORKER : root :: nsIContentPolicy__bindgen_ty_1 = 35 ; pub const nsIContentPolicy_TYPE_INTERNAL_SCRIPT_PRELOAD : root :: nsIContentPolicy__bindgen_ty_1 = 36 ; pub const nsIContentPolicy_TYPE_INTERNAL_IMAGE : root :: nsIContentPolicy__bindgen_ty_1 = 37 ; pub const nsIContentPolicy_TYPE_INTERNAL_IMAGE_PRELOAD : root :: nsIContentPolicy__bindgen_ty_1 = 38 ; pub const nsIContentPolicy_TYPE_INTERNAL_STYLESHEET : root :: nsIContentPolicy__bindgen_ty_1 = 39 ; pub const nsIContentPolicy_TYPE_INTERNAL_STYLESHEET_PRELOAD : root :: nsIContentPolicy__bindgen_ty_1 = 40 ; pub const nsIContentPolicy_TYPE_INTERNAL_IMAGE_FAVICON : root :: nsIContentPolicy__bindgen_ty_1 = 41 ; pub const nsIContentPolicy_TYPE_INTERNAL_WORKER_IMPORT_SCRIPTS : root :: nsIContentPolicy__bindgen_ty_1 = 42 ; pub const nsIContentPolicy_REJECT_REQUEST : root :: nsIContentPolicy__bindgen_ty_1 = -1 ; pub const nsIContentPolicy_REJECT_TYPE : root :: nsIContentPolicy__bindgen_ty_1 = -2 ; pub const nsIContentPolicy_REJECT_SERVER : root :: nsIContentPolicy__bindgen_ty_1 = -3 ; pub const nsIContentPolicy_REJECT_OTHER : root :: nsIContentPolicy__bindgen_ty_1 = -4 ; pub const nsIContentPolicy_ACCEPT : root :: nsIContentPolicy__bindgen_ty_1 = 1 ; pub type nsIContentPolicy__bindgen_ty_1 = :: std :: os :: raw :: c_int ; # [ test ] fn bindgen_test_layout_nsIContentPolicy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIContentPolicy > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIContentPolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIContentPolicy > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIContentPolicy ) ) ) ; } impl Clone for nsIContentPolicy { fn clone ( & self ) -> Self { * self } }
- /// Base class that implements parts shared by JSErrorReport and
- /// JSErrorNotes::Note.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct JSErrorBase { pub message_ : root :: JS :: ConstUTF8CharsZ , pub filename : * const :: std :: os :: raw :: c_char , pub lineno : :: std :: os :: raw :: c_uint , pub column : :: std :: os :: raw :: c_uint , pub errorNumber : :: std :: os :: raw :: c_uint , pub _bitfield_1 : u8 , pub __bindgen_padding_0 : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_JSErrorBase ( ) { assert_eq ! ( :: std :: mem :: size_of :: < JSErrorBase > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( JSErrorBase ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < JSErrorBase > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( JSErrorBase ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorBase ) ) . message_ as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorBase ) , "::" , stringify ! ( message_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorBase ) ) . filename as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorBase ) , "::" , stringify ! ( filename ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorBase ) ) . lineno as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorBase ) , "::" , stringify ! ( lineno ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorBase ) ) . column as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorBase ) , "::" , stringify ! ( column ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorBase ) ) . errorNumber as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorBase ) , "::" , stringify ! ( errorNumber ) ) ) ; } impl JSErrorBase { # [ inline ] pub fn ownsMessage_ ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x1 as u8 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_ownsMessage_ ( & mut self , val : bool ) { let mask = 0x1 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( ownsMessage_ : bool ) -> u8 { ( 0 | ( ( ownsMessage_ as u8 as u8 ) << 0usize ) & ( 0x1 as u8 ) ) } }
- /// Notes associated with JSErrorReport.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct JSErrorNotes { pub notes_ : [ u64 ; 4usize ] , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct JSErrorNotes_Note { pub _base : root :: JSErrorBase , } # [ test ] fn bindgen_test_layout_JSErrorNotes_Note ( ) { assert_eq ! ( :: std :: mem :: size_of :: < JSErrorNotes_Note > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( JSErrorNotes_Note ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < JSErrorNotes_Note > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( JSErrorNotes_Note ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct JSErrorNotes_iterator { pub note_ : * mut root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > , } # [ test ] fn bindgen_test_layout_JSErrorNotes_iterator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < JSErrorNotes_iterator > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( JSErrorNotes_iterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < JSErrorNotes_iterator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( JSErrorNotes_iterator ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorNotes_iterator ) ) . note_ as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorNotes_iterator ) , "::" , stringify ! ( note_ ) ) ) ; } # [ test ] fn bindgen_test_layout_JSErrorNotes ( ) { assert_eq ! ( :: std :: mem :: size_of :: < JSErrorNotes > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( JSErrorNotes ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < JSErrorNotes > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( JSErrorNotes ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const JSErrorNotes ) ) . notes_ as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( JSErrorNotes ) , "::" , stringify ! ( notes_ ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsISerializable { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsISerializable_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsISerializable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsISerializable > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsISerializable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsISerializable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsISerializable ) ) ) ; } impl Clone for nsISerializable { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIPrincipal { pub _base : root :: nsISerializable , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIPrincipal_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIPrincipal ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIPrincipal > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIPrincipal ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIPrincipal > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIPrincipal ) ) ) ; } impl Clone for nsIPrincipal { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDocShell { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIScriptSecurityManager { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIScriptSecurityManager_COMTypeInfo { pub _address : u8 , } pub const nsIScriptSecurityManager_STANDARD : root :: nsIScriptSecurityManager__bindgen_ty_1 = 0 ; pub const nsIScriptSecurityManager_LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT : root :: nsIScriptSecurityManager__bindgen_ty_1 = 1 ; pub const nsIScriptSecurityManager_ALLOW_CHROME : root :: nsIScriptSecurityManager__bindgen_ty_1 = 2 ; pub const nsIScriptSecurityManager_DISALLOW_INHERIT_PRINCIPAL : root :: nsIScriptSecurityManager__bindgen_ty_1 = 4 ; pub const nsIScriptSecurityManager_DISALLOW_SCRIPT_OR_DATA : root :: nsIScriptSecurityManager__bindgen_ty_1 = 4 ; pub const nsIScriptSecurityManager_DISALLOW_SCRIPT : root :: nsIScriptSecurityManager__bindgen_ty_1 = 8 ; pub const nsIScriptSecurityManager_DONT_REPORT_ERRORS : root :: nsIScriptSecurityManager__bindgen_ty_1 = 16 ; pub type nsIScriptSecurityManager__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; pub const nsIScriptSecurityManager_NO_APP_ID : root :: nsIScriptSecurityManager__bindgen_ty_2 = 0 ; pub const nsIScriptSecurityManager_UNKNOWN_APP_ID : root :: nsIScriptSecurityManager__bindgen_ty_2 = 4294967295 ; pub const nsIScriptSecurityManager_DEFAULT_USER_CONTEXT_ID : root :: nsIScriptSecurityManager__bindgen_ty_2 = 0 ; pub type nsIScriptSecurityManager__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIScriptSecurityManager ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIScriptSecurityManager > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIScriptSecurityManager ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIScriptSecurityManager > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIScriptSecurityManager ) ) ) ; } impl Clone for nsIScriptSecurityManager { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIChannel { pub _base : root :: nsIRequest , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIChannel_COMTypeInfo { pub _address : u8 , } pub const nsIChannel_LOAD_DOCUMENT_URI : root :: nsIChannel__bindgen_ty_1 = 65536 ; pub const nsIChannel_LOAD_RETARGETED_DOCUMENT_URI : root :: nsIChannel__bindgen_ty_1 = 131072 ; pub const nsIChannel_LOAD_REPLACE : root :: nsIChannel__bindgen_ty_1 = 262144 ; pub const nsIChannel_LOAD_INITIAL_DOCUMENT_URI : root :: nsIChannel__bindgen_ty_1 = 524288 ; pub const nsIChannel_LOAD_TARGETED : root :: nsIChannel__bindgen_ty_1 = 1048576 ; pub const nsIChannel_LOAD_CALL_CONTENT_SNIFFERS : root :: nsIChannel__bindgen_ty_1 = 2097152 ; pub const nsIChannel_LOAD_CLASSIFY_URI : root :: nsIChannel__bindgen_ty_1 = 4194304 ; pub const nsIChannel_LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE : root :: nsIChannel__bindgen_ty_1 = 8388608 ; pub const nsIChannel_LOAD_EXPLICIT_CREDENTIALS : root :: nsIChannel__bindgen_ty_1 = 16777216 ; pub const nsIChannel_LOAD_BYPASS_SERVICE_WORKER : root :: nsIChannel__bindgen_ty_1 = 33554432 ; pub type nsIChannel__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; pub const nsIChannel_DISPOSITION_INLINE : root :: nsIChannel__bindgen_ty_2 = 0 ; pub const nsIChannel_DISPOSITION_ATTACHMENT : root :: nsIChannel__bindgen_ty_2 = 1 ; pub type nsIChannel__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIChannel ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIChannel > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIChannel ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIChannel > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIChannel ) ) ) ; } impl Clone for nsIChannel { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsICSSLoaderObserver { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsICSSLoaderObserver_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsICSSLoaderObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsICSSLoaderObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsICSSLoaderObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsICSSLoaderObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsICSSLoaderObserver ) ) ) ; } impl Clone for nsICSSLoaderObserver { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMStyleSheet { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMStyleSheet_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMStyleSheet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMStyleSheet > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMStyleSheet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMStyleSheet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMStyleSheet ) ) ) ; } impl Clone for nsIDOMStyleSheet { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMCSSStyleSheet { pub _base : root :: nsIDOMStyleSheet , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMCSSStyleSheet_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMCSSStyleSheet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMCSSStyleSheet > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMCSSStyleSheet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMCSSStyleSheet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMCSSStyleSheet ) ) ) ; } impl Clone for nsIDOMCSSStyleSheet { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct nsCycleCollectionParticipant__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// Participant implementation classes
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsCycleCollectionParticipant { pub vtable_ : * const nsCycleCollectionParticipant__bindgen_vtable , pub mMightSkip : bool , pub mTraverseShouldTrace : bool , } # [ test ] fn bindgen_test_layout_nsCycleCollectionParticipant ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCycleCollectionParticipant > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsCycleCollectionParticipant ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCycleCollectionParticipant > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCycleCollectionParticipant ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCycleCollectionParticipant ) ) . mMightSkip as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCycleCollectionParticipant ) , "::" , stringify ! ( mMightSkip ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCycleCollectionParticipant ) ) . mTraverseShouldTrace as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsCycleCollectionParticipant ) , "::" , stringify ! ( mTraverseShouldTrace ) ) ) ; } impl Clone for nsCycleCollectionParticipant { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsScriptObjectTracer { pub _base : root :: nsCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_nsScriptObjectTracer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsScriptObjectTracer > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsScriptObjectTracer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsScriptObjectTracer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsScriptObjectTracer ) ) ) ; } impl Clone for nsScriptObjectTracer { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsXPCOMCycleCollectionParticipant { pub _base : root :: nsScriptObjectTracer , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsXPCOMCycleCollectionParticipant_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsXPCOMCycleCollectionParticipant ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsXPCOMCycleCollectionParticipant > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsXPCOMCycleCollectionParticipant ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsXPCOMCycleCollectionParticipant > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsXPCOMCycleCollectionParticipant ) ) ) ; } impl Clone for nsXPCOMCycleCollectionParticipant { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct nsWrapperCache__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// Class to store the wrapper for an object. This can only be used with objects
+ /// count is 1.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStringBuffer {
+ pub mRefCount: u32,
+ pub mStorageSize: u32,
+ pub mCanary: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStringBuffer() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStringBuffer>(),
+ 12usize,
+ concat!("Size of: ", stringify!(nsStringBuffer))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStringBuffer>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStringBuffer))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStringBuffer>())).mRefCount as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStringBuffer),
+ "::",
+ stringify!(mRefCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStringBuffer>())).mStorageSize as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStringBuffer),
+ "::",
+ stringify!(mStorageSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStringBuffer>())).mCanary as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStringBuffer),
+ "::",
+ stringify!(mCanary)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAtom {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 4usize], u32>,
+ pub mHash: u32,
+ pub mString: *mut u16,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsAtom_AtomKind {
+ DynamicAtom = 0,
+ StaticAtom = 1,
+ HTML5Atom = 2,
+ }
+ pub type nsAtom_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsAtom() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAtom>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsAtom))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAtom>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAtom))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAtom>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAtom),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAtom>())).mHash as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAtom),
+ "::",
+ stringify!(mHash)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAtom>())).mString as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAtom),
+ "::",
+ stringify!(mString)
+ )
+ );
+ }
+ impl nsAtom {
+ #[inline]
+ pub fn mLength(&self) -> u32 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 30u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mLength(&mut self, val: u32) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 30u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mKind(&self) -> u32 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 2u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mKind(&mut self, val: u32) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(30usize, 2u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mLength: u32,
+ mKind: u32,
+ ) -> root::__BindgenBitfieldUnit<[u8; 4usize], u32> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 4usize],
+ u32,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 30u8, {
+ let mLength: u32 = unsafe { ::std::mem::transmute(mLength) };
+ mLength as u64
+ });
+ __bindgen_bitfield_unit.set(30usize, 2u8, {
+ let mKind: u32 = unsafe { ::std::mem::transmute(mKind) };
+ mKind as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStaticAtom {
+ pub _base: root::nsAtom,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStaticAtom() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStaticAtom>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStaticAtom))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStaticAtom>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStaticAtom))
+ );
+ }
+ pub type nsLoadFlags = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIRequest {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIRequest_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIRequest_LOAD_REQUESTMASK: root::nsIRequest__bindgen_ty_1 = 65535;
+ pub const nsIRequest_LOAD_NORMAL: root::nsIRequest__bindgen_ty_1 = 0;
+ pub const nsIRequest_LOAD_BACKGROUND: root::nsIRequest__bindgen_ty_1 = 1;
+ pub const nsIRequest_LOAD_HTML_OBJECT_DATA: root::nsIRequest__bindgen_ty_1 = 2;
+ pub const nsIRequest_LOAD_DOCUMENT_NEEDS_COOKIE: root::nsIRequest__bindgen_ty_1 = 4;
+ pub const nsIRequest_INHIBIT_CACHING: root::nsIRequest__bindgen_ty_1 = 128;
+ pub const nsIRequest_INHIBIT_PERSISTENT_CACHING: root::nsIRequest__bindgen_ty_1 = 256;
+ pub const nsIRequest_LOAD_BYPASS_CACHE: root::nsIRequest__bindgen_ty_1 = 512;
+ pub const nsIRequest_LOAD_FROM_CACHE: root::nsIRequest__bindgen_ty_1 = 1024;
+ pub const nsIRequest_VALIDATE_ALWAYS: root::nsIRequest__bindgen_ty_1 = 2048;
+ pub const nsIRequest_VALIDATE_NEVER: root::nsIRequest__bindgen_ty_1 = 4096;
+ pub const nsIRequest_VALIDATE_ONCE_PER_SESSION: root::nsIRequest__bindgen_ty_1 = 8192;
+ pub const nsIRequest_LOAD_ANONYMOUS: root::nsIRequest__bindgen_ty_1 = 16384;
+ pub const nsIRequest_LOAD_FRESH_CONNECTION: root::nsIRequest__bindgen_ty_1 = 32768;
+ pub type nsIRequest__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsIRequest() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIRequest>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIRequest))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIRequest>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIRequest))
+ );
+ }
+ impl Clone for nsIRequest {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIContentPolicy {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIContentPolicy_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIContentPolicy_TYPE_INVALID: root::nsIContentPolicy__bindgen_ty_1 = 0;
+ pub const nsIContentPolicy_TYPE_OTHER: root::nsIContentPolicy__bindgen_ty_1 = 1;
+ pub const nsIContentPolicy_TYPE_SCRIPT: root::nsIContentPolicy__bindgen_ty_1 = 2;
+ pub const nsIContentPolicy_TYPE_IMAGE: root::nsIContentPolicy__bindgen_ty_1 = 3;
+ pub const nsIContentPolicy_TYPE_STYLESHEET: root::nsIContentPolicy__bindgen_ty_1 = 4;
+ pub const nsIContentPolicy_TYPE_OBJECT: root::nsIContentPolicy__bindgen_ty_1 = 5;
+ pub const nsIContentPolicy_TYPE_DOCUMENT: root::nsIContentPolicy__bindgen_ty_1 = 6;
+ pub const nsIContentPolicy_TYPE_SUBDOCUMENT: root::nsIContentPolicy__bindgen_ty_1 = 7;
+ pub const nsIContentPolicy_TYPE_REFRESH: root::nsIContentPolicy__bindgen_ty_1 = 8;
+ pub const nsIContentPolicy_TYPE_XBL: root::nsIContentPolicy__bindgen_ty_1 = 9;
+ pub const nsIContentPolicy_TYPE_PING: root::nsIContentPolicy__bindgen_ty_1 = 10;
+ pub const nsIContentPolicy_TYPE_XMLHTTPREQUEST: root::nsIContentPolicy__bindgen_ty_1 = 11;
+ pub const nsIContentPolicy_TYPE_DATAREQUEST: root::nsIContentPolicy__bindgen_ty_1 = 11;
+ pub const nsIContentPolicy_TYPE_OBJECT_SUBREQUEST: root::nsIContentPolicy__bindgen_ty_1 = 12;
+ pub const nsIContentPolicy_TYPE_DTD: root::nsIContentPolicy__bindgen_ty_1 = 13;
+ pub const nsIContentPolicy_TYPE_FONT: root::nsIContentPolicy__bindgen_ty_1 = 14;
+ pub const nsIContentPolicy_TYPE_MEDIA: root::nsIContentPolicy__bindgen_ty_1 = 15;
+ pub const nsIContentPolicy_TYPE_WEBSOCKET: root::nsIContentPolicy__bindgen_ty_1 = 16;
+ pub const nsIContentPolicy_TYPE_CSP_REPORT: root::nsIContentPolicy__bindgen_ty_1 = 17;
+ pub const nsIContentPolicy_TYPE_XSLT: root::nsIContentPolicy__bindgen_ty_1 = 18;
+ pub const nsIContentPolicy_TYPE_BEACON: root::nsIContentPolicy__bindgen_ty_1 = 19;
+ pub const nsIContentPolicy_TYPE_FETCH: root::nsIContentPolicy__bindgen_ty_1 = 20;
+ pub const nsIContentPolicy_TYPE_IMAGESET: root::nsIContentPolicy__bindgen_ty_1 = 21;
+ pub const nsIContentPolicy_TYPE_WEB_MANIFEST: root::nsIContentPolicy__bindgen_ty_1 = 22;
+ pub const nsIContentPolicy_TYPE_SAVEAS_DOWNLOAD: root::nsIContentPolicy__bindgen_ty_1 = 43;
+ pub const nsIContentPolicy_TYPE_INTERNAL_SCRIPT: root::nsIContentPolicy__bindgen_ty_1 = 23;
+ pub const nsIContentPolicy_TYPE_INTERNAL_WORKER: root::nsIContentPolicy__bindgen_ty_1 = 24;
+ pub const nsIContentPolicy_TYPE_INTERNAL_SHARED_WORKER: root::nsIContentPolicy__bindgen_ty_1 =
+ 25;
+ pub const nsIContentPolicy_TYPE_INTERNAL_EMBED: root::nsIContentPolicy__bindgen_ty_1 = 26;
+ pub const nsIContentPolicy_TYPE_INTERNAL_OBJECT: root::nsIContentPolicy__bindgen_ty_1 = 27;
+ pub const nsIContentPolicy_TYPE_INTERNAL_FRAME: root::nsIContentPolicy__bindgen_ty_1 = 28;
+ pub const nsIContentPolicy_TYPE_INTERNAL_IFRAME: root::nsIContentPolicy__bindgen_ty_1 = 29;
+ pub const nsIContentPolicy_TYPE_INTERNAL_AUDIO: root::nsIContentPolicy__bindgen_ty_1 = 30;
+ pub const nsIContentPolicy_TYPE_INTERNAL_VIDEO: root::nsIContentPolicy__bindgen_ty_1 = 31;
+ pub const nsIContentPolicy_TYPE_INTERNAL_TRACK: root::nsIContentPolicy__bindgen_ty_1 = 32;
+ pub const nsIContentPolicy_TYPE_INTERNAL_XMLHTTPREQUEST: root::nsIContentPolicy__bindgen_ty_1 =
+ 33;
+ pub const nsIContentPolicy_TYPE_INTERNAL_EVENTSOURCE: root::nsIContentPolicy__bindgen_ty_1 = 34;
+ pub const nsIContentPolicy_TYPE_INTERNAL_SERVICE_WORKER: root::nsIContentPolicy__bindgen_ty_1 =
+ 35;
+ pub const nsIContentPolicy_TYPE_INTERNAL_SCRIPT_PRELOAD: root::nsIContentPolicy__bindgen_ty_1 =
+ 36;
+ pub const nsIContentPolicy_TYPE_INTERNAL_IMAGE: root::nsIContentPolicy__bindgen_ty_1 = 37;
+ pub const nsIContentPolicy_TYPE_INTERNAL_IMAGE_PRELOAD: root::nsIContentPolicy__bindgen_ty_1 =
+ 38;
+ pub const nsIContentPolicy_TYPE_INTERNAL_STYLESHEET: root::nsIContentPolicy__bindgen_ty_1 = 39;
+ pub const nsIContentPolicy_TYPE_INTERNAL_STYLESHEET_PRELOAD:
+ root::nsIContentPolicy__bindgen_ty_1 = 40;
+ pub const nsIContentPolicy_TYPE_INTERNAL_IMAGE_FAVICON: root::nsIContentPolicy__bindgen_ty_1 =
+ 41;
+ pub const nsIContentPolicy_TYPE_INTERNAL_WORKER_IMPORT_SCRIPTS:
+ root::nsIContentPolicy__bindgen_ty_1 = 42;
+ pub const nsIContentPolicy_REJECT_REQUEST: root::nsIContentPolicy__bindgen_ty_1 = -1;
+ pub const nsIContentPolicy_REJECT_TYPE: root::nsIContentPolicy__bindgen_ty_1 = -2;
+ pub const nsIContentPolicy_REJECT_SERVER: root::nsIContentPolicy__bindgen_ty_1 = -3;
+ pub const nsIContentPolicy_REJECT_OTHER: root::nsIContentPolicy__bindgen_ty_1 = -4;
+ pub const nsIContentPolicy_ACCEPT: root::nsIContentPolicy__bindgen_ty_1 = 1;
+ pub type nsIContentPolicy__bindgen_ty_1 = i32;
+ #[test]
+ fn bindgen_test_layout_nsIContentPolicy() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIContentPolicy>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIContentPolicy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIContentPolicy>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIContentPolicy))
+ );
+ }
+ impl Clone for nsIContentPolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Base class that implements parts shared by JSErrorReport and
+ /// JSErrorNotes::Note.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct JSErrorBase {
+ pub message_: root::JS::ConstUTF8CharsZ,
+ pub filename: *const ::std::os::raw::c_char,
+ pub lineno: ::std::os::raw::c_uint,
+ pub column: ::std::os::raw::c_uint,
+ pub errorNumber: ::std::os::raw::c_uint,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 1usize], u8>,
+ pub __bindgen_padding_0: [u8; 3usize],
+ }
+ #[test]
+ fn bindgen_test_layout_JSErrorBase() {
+ assert_eq!(
+ ::std::mem::size_of::<JSErrorBase>(),
+ 32usize,
+ concat!("Size of: ", stringify!(JSErrorBase))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<JSErrorBase>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(JSErrorBase))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorBase>())).message_ as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorBase),
+ "::",
+ stringify!(message_)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorBase>())).filename as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorBase),
+ "::",
+ stringify!(filename)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorBase>())).lineno as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorBase),
+ "::",
+ stringify!(lineno)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorBase>())).column as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorBase),
+ "::",
+ stringify!(column)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorBase>())).errorNumber as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorBase),
+ "::",
+ stringify!(errorNumber)
+ )
+ );
+ }
+ impl JSErrorBase {
+ #[inline]
+ pub fn ownsMessage_(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_ownsMessage_(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(ownsMessage_: bool) -> root::__BindgenBitfieldUnit<[u8; 1usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 1usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let ownsMessage_: u8 = unsafe { ::std::mem::transmute(ownsMessage_) };
+ ownsMessage_ as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ /// Notes associated with JSErrorReport.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct JSErrorNotes {
+ pub notes_: [u64; 4usize],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct JSErrorNotes_Note {
+ pub _base: root::JSErrorBase,
+ }
+ #[test]
+ fn bindgen_test_layout_JSErrorNotes_Note() {
+ assert_eq!(
+ ::std::mem::size_of::<JSErrorNotes_Note>(),
+ 32usize,
+ concat!("Size of: ", stringify!(JSErrorNotes_Note))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<JSErrorNotes_Note>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(JSErrorNotes_Note))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct JSErrorNotes_iterator {
+ pub note_: *mut root::mozilla::UniquePtr<root::JSErrorNotes_Note>,
+ }
+ #[test]
+ fn bindgen_test_layout_JSErrorNotes_iterator() {
+ assert_eq!(
+ ::std::mem::size_of::<JSErrorNotes_iterator>(),
+ 8usize,
+ concat!("Size of: ", stringify!(JSErrorNotes_iterator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<JSErrorNotes_iterator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(JSErrorNotes_iterator))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorNotes_iterator>())).note_ as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorNotes_iterator),
+ "::",
+ stringify!(note_)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_JSErrorNotes() {
+ assert_eq!(
+ ::std::mem::size_of::<JSErrorNotes>(),
+ 32usize,
+ concat!("Size of: ", stringify!(JSErrorNotes))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<JSErrorNotes>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(JSErrorNotes))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<JSErrorNotes>())).notes_ as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(JSErrorNotes),
+ "::",
+ stringify!(notes_)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsISerializable {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsISerializable_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsISerializable() {
+ assert_eq!(
+ ::std::mem::size_of::<nsISerializable>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsISerializable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsISerializable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsISerializable))
+ );
+ }
+ impl Clone for nsISerializable {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIPrincipal {
+ pub _base: root::nsISerializable,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIPrincipal_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIPrincipal() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIPrincipal>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIPrincipal))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIPrincipal>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIPrincipal))
+ );
+ }
+ impl Clone for nsIPrincipal {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDocShell {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIScriptSecurityManager {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIScriptSecurityManager_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIScriptSecurityManager_STANDARD: root::nsIScriptSecurityManager__bindgen_ty_1 = 0;
+ pub const nsIScriptSecurityManager_LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT:
+ root::nsIScriptSecurityManager__bindgen_ty_1 = 1;
+ pub const nsIScriptSecurityManager_ALLOW_CHROME: root::nsIScriptSecurityManager__bindgen_ty_1 =
+ 2;
+ pub const nsIScriptSecurityManager_DISALLOW_INHERIT_PRINCIPAL:
+ root::nsIScriptSecurityManager__bindgen_ty_1 = 4;
+ pub const nsIScriptSecurityManager_DISALLOW_SCRIPT_OR_DATA:
+ root::nsIScriptSecurityManager__bindgen_ty_1 = 4;
+ pub const nsIScriptSecurityManager_DISALLOW_SCRIPT:
+ root::nsIScriptSecurityManager__bindgen_ty_1 = 8;
+ pub const nsIScriptSecurityManager_DONT_REPORT_ERRORS:
+ root::nsIScriptSecurityManager__bindgen_ty_1 = 16;
+ pub type nsIScriptSecurityManager__bindgen_ty_1 = u32;
+ pub const nsIScriptSecurityManager_NO_APP_ID: root::nsIScriptSecurityManager__bindgen_ty_2 = 0;
+ pub const nsIScriptSecurityManager_UNKNOWN_APP_ID:
+ root::nsIScriptSecurityManager__bindgen_ty_2 = 4294967295;
+ pub const nsIScriptSecurityManager_DEFAULT_USER_CONTEXT_ID:
+ root::nsIScriptSecurityManager__bindgen_ty_2 = 0;
+ pub type nsIScriptSecurityManager__bindgen_ty_2 = u32;
+ #[test]
+ fn bindgen_test_layout_nsIScriptSecurityManager() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIScriptSecurityManager>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIScriptSecurityManager))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIScriptSecurityManager>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIScriptSecurityManager))
+ );
+ }
+ impl Clone for nsIScriptSecurityManager {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIChannel {
+ pub _base: root::nsIRequest,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIChannel_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIChannel_LOAD_DOCUMENT_URI: root::nsIChannel__bindgen_ty_1 = 65536;
+ pub const nsIChannel_LOAD_RETARGETED_DOCUMENT_URI: root::nsIChannel__bindgen_ty_1 = 131072;
+ pub const nsIChannel_LOAD_REPLACE: root::nsIChannel__bindgen_ty_1 = 262144;
+ pub const nsIChannel_LOAD_INITIAL_DOCUMENT_URI: root::nsIChannel__bindgen_ty_1 = 524288;
+ pub const nsIChannel_LOAD_TARGETED: root::nsIChannel__bindgen_ty_1 = 1048576;
+ pub const nsIChannel_LOAD_CALL_CONTENT_SNIFFERS: root::nsIChannel__bindgen_ty_1 = 2097152;
+ pub const nsIChannel_LOAD_CLASSIFY_URI: root::nsIChannel__bindgen_ty_1 = 4194304;
+ pub const nsIChannel_LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE: root::nsIChannel__bindgen_ty_1 =
+ 8388608;
+ pub const nsIChannel_LOAD_EXPLICIT_CREDENTIALS: root::nsIChannel__bindgen_ty_1 = 16777216;
+ pub const nsIChannel_LOAD_BYPASS_SERVICE_WORKER: root::nsIChannel__bindgen_ty_1 = 33554432;
+ pub type nsIChannel__bindgen_ty_1 = u32;
+ pub const nsIChannel_DISPOSITION_INLINE: root::nsIChannel__bindgen_ty_2 = 0;
+ pub const nsIChannel_DISPOSITION_ATTACHMENT: root::nsIChannel__bindgen_ty_2 = 1;
+ pub type nsIChannel__bindgen_ty_2 = u32;
+ #[test]
+ fn bindgen_test_layout_nsIChannel() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIChannel>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIChannel))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIChannel>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIChannel))
+ );
+ }
+ impl Clone for nsIChannel {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsICSSLoaderObserver {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsICSSLoaderObserver_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsICSSLoaderObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsICSSLoaderObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsICSSLoaderObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsICSSLoaderObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsICSSLoaderObserver))
+ );
+ }
+ impl Clone for nsICSSLoaderObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct nsCycleCollectionParticipant__bindgen_vtable(::std::os::raw::c_void);
+ /// Participant implementation classes
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsCycleCollectionParticipant {
+ pub vtable_: *const nsCycleCollectionParticipant__bindgen_vtable,
+ pub mMightSkip: bool,
+ pub mTraverseShouldTrace: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCycleCollectionParticipant() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCycleCollectionParticipant>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsCycleCollectionParticipant))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCycleCollectionParticipant>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCycleCollectionParticipant))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCycleCollectionParticipant>())).mMightSkip as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCycleCollectionParticipant),
+ "::",
+ stringify!(mMightSkip)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCycleCollectionParticipant>())).mTraverseShouldTrace
+ as *const _ as usize
+ },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCycleCollectionParticipant),
+ "::",
+ stringify!(mTraverseShouldTrace)
+ )
+ );
+ }
+ impl Clone for nsCycleCollectionParticipant {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsScriptObjectTracer {
+ pub _base: root::nsCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_nsScriptObjectTracer() {
+ assert_eq!(
+ ::std::mem::size_of::<nsScriptObjectTracer>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsScriptObjectTracer))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsScriptObjectTracer>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsScriptObjectTracer))
+ );
+ }
+ impl Clone for nsScriptObjectTracer {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsXPCOMCycleCollectionParticipant {
+ pub _base: root::nsScriptObjectTracer,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsXPCOMCycleCollectionParticipant_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsXPCOMCycleCollectionParticipant() {
+ assert_eq!(
+ ::std::mem::size_of::<nsXPCOMCycleCollectionParticipant>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsXPCOMCycleCollectionParticipant))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsXPCOMCycleCollectionParticipant>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsXPCOMCycleCollectionParticipant)
+ )
+ );
+ }
+ impl Clone for nsXPCOMCycleCollectionParticipant {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct nsWrapperCache__bindgen_vtable(::std::os::raw::c_void);
+ /// Class to store the wrapper for an object. This can only be used with objects
/// that only have one non-security wrapper at a time (for an XPCWrappedNative
/// this is usually ensured by setting an explicit parent in the PreCreate hook
/// for the class).
@@ -769,74 +16826,1656 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// A number of the methods are implemented in nsWrapperCacheInlines.h because we
/// have to include some JS headers that don't play nicely with the rest of the
- /// codebase. Include nsWrapperCacheInlines.h if you need to call those methods.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsWrapperCache { pub vtable_ : * const nsWrapperCache__bindgen_vtable , pub mWrapper : * mut root :: JSObject , pub mFlags : root :: nsWrapperCache_FlagsType , pub mBoolFlags : u32 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsWrapperCache_COMTypeInfo { pub _address : u8 , } pub type nsWrapperCache_FlagsType = u32 ; pub const nsWrapperCache_WRAPPER_BIT_PRESERVED : root :: nsWrapperCache__bindgen_ty_1 = 1 ; pub type nsWrapperCache__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; pub const nsWrapperCache_WRAPPER_IS_NOT_DOM_BINDING : root :: nsWrapperCache__bindgen_ty_2 = 2 ; pub type nsWrapperCache__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; pub const nsWrapperCache_kWrapperFlagsMask : root :: nsWrapperCache__bindgen_ty_3 = 3 ; pub type nsWrapperCache__bindgen_ty_3 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsWrapperCache ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsWrapperCache > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsWrapperCache ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsWrapperCache > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsWrapperCache ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsWrapperCache ) ) . mWrapper as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsWrapperCache ) , "::" , stringify ! ( mWrapper ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsWrapperCache ) ) . mFlags as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsWrapperCache ) , "::" , stringify ! ( mFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsWrapperCache ) ) . mBoolFlags as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsWrapperCache ) , "::" , stringify ! ( mBoolFlags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ProfilerBacktrace { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ProfilerMarkerPayload { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ProfilerBacktraceDestructor { pub _address : u8 , } # [ test ] fn bindgen_test_layout_ProfilerBacktraceDestructor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ProfilerBacktraceDestructor > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( ProfilerBacktraceDestructor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ProfilerBacktraceDestructor > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( ProfilerBacktraceDestructor ) ) ) ; } impl Clone for ProfilerBacktraceDestructor { fn clone ( & self ) -> Self { * self } } pub type UniqueProfilerBacktrace = root :: mozilla :: UniquePtr < root :: ProfilerBacktrace > ; pub type gfxSize = [ u64 ; 2usize ] ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMNode { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMNode_COMTypeInfo { pub _address : u8 , } pub const nsIDOMNode_ELEMENT_NODE : root :: nsIDOMNode__bindgen_ty_1 = 1 ; pub const nsIDOMNode_ATTRIBUTE_NODE : root :: nsIDOMNode__bindgen_ty_1 = 2 ; pub const nsIDOMNode_TEXT_NODE : root :: nsIDOMNode__bindgen_ty_1 = 3 ; pub const nsIDOMNode_CDATA_SECTION_NODE : root :: nsIDOMNode__bindgen_ty_1 = 4 ; pub const nsIDOMNode_ENTITY_REFERENCE_NODE : root :: nsIDOMNode__bindgen_ty_1 = 5 ; pub const nsIDOMNode_ENTITY_NODE : root :: nsIDOMNode__bindgen_ty_1 = 6 ; pub const nsIDOMNode_PROCESSING_INSTRUCTION_NODE : root :: nsIDOMNode__bindgen_ty_1 = 7 ; pub const nsIDOMNode_COMMENT_NODE : root :: nsIDOMNode__bindgen_ty_1 = 8 ; pub const nsIDOMNode_DOCUMENT_NODE : root :: nsIDOMNode__bindgen_ty_1 = 9 ; pub const nsIDOMNode_DOCUMENT_TYPE_NODE : root :: nsIDOMNode__bindgen_ty_1 = 10 ; pub const nsIDOMNode_DOCUMENT_FRAGMENT_NODE : root :: nsIDOMNode__bindgen_ty_1 = 11 ; pub const nsIDOMNode_NOTATION_NODE : root :: nsIDOMNode__bindgen_ty_1 = 12 ; pub type nsIDOMNode__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; pub const nsIDOMNode_DOCUMENT_POSITION_DISCONNECTED : root :: nsIDOMNode__bindgen_ty_2 = 1 ; pub const nsIDOMNode_DOCUMENT_POSITION_PRECEDING : root :: nsIDOMNode__bindgen_ty_2 = 2 ; pub const nsIDOMNode_DOCUMENT_POSITION_FOLLOWING : root :: nsIDOMNode__bindgen_ty_2 = 4 ; pub const nsIDOMNode_DOCUMENT_POSITION_CONTAINS : root :: nsIDOMNode__bindgen_ty_2 = 8 ; pub const nsIDOMNode_DOCUMENT_POSITION_CONTAINED_BY : root :: nsIDOMNode__bindgen_ty_2 = 16 ; pub const nsIDOMNode_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC : root :: nsIDOMNode__bindgen_ty_2 = 32 ; pub type nsIDOMNode__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIDOMNode ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMNode > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMNode ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMNode > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMNode ) ) ) ; } impl Clone for nsIDOMNode { fn clone ( & self ) -> Self { * self } } pub const kNameSpaceID_None : i32 = 0 ; pub type PLHashNumber = root :: PRUint32 ; pub type PLHashFunction = :: std :: option :: Option < unsafe extern "C" fn ( key : * const :: std :: os :: raw :: c_void ) -> root :: PLHashNumber > ; pub type PLHashComparator = :: std :: option :: Option < unsafe extern "C" fn ( v1 : * const :: std :: os :: raw :: c_void , v2 : * const :: std :: os :: raw :: c_void ) -> root :: PRIntn > ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct PLHashAllocOps { pub allocTable : :: std :: option :: Option < unsafe extern "C" fn ( pool : * mut :: std :: os :: raw :: c_void , size : root :: PRSize ) -> * mut :: std :: os :: raw :: c_void > , pub freeTable : :: std :: option :: Option < unsafe extern "C" fn ( pool : * mut :: std :: os :: raw :: c_void , item : * mut :: std :: os :: raw :: c_void ) > , pub allocEntry : :: std :: option :: Option < unsafe extern "C" fn ( pool : * mut :: std :: os :: raw :: c_void , key : * const :: std :: os :: raw :: c_void ) -> * mut root :: PLHashEntry > , pub freeEntry : :: std :: option :: Option < unsafe extern "C" fn ( pool : * mut :: std :: os :: raw :: c_void , he : * mut root :: PLHashEntry , flag : root :: PRUintn ) > , } # [ test ] fn bindgen_test_layout_PLHashAllocOps ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLHashAllocOps > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( PLHashAllocOps ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLHashAllocOps > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLHashAllocOps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashAllocOps ) ) . allocTable as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashAllocOps ) , "::" , stringify ! ( allocTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashAllocOps ) ) . freeTable as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashAllocOps ) , "::" , stringify ! ( freeTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashAllocOps ) ) . allocEntry as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashAllocOps ) , "::" , stringify ! ( allocEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashAllocOps ) ) . freeEntry as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashAllocOps ) , "::" , stringify ! ( freeEntry ) ) ) ; } impl Clone for PLHashAllocOps { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct PLHashEntry { pub next : * mut root :: PLHashEntry , pub keyHash : root :: PLHashNumber , pub key : * const :: std :: os :: raw :: c_void , pub value : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_PLHashEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLHashEntry > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( PLHashEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLHashEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLHashEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashEntry ) ) . next as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashEntry ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashEntry ) ) . keyHash as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashEntry ) , "::" , stringify ! ( keyHash ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashEntry ) ) . key as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashEntry ) , "::" , stringify ! ( key ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashEntry ) ) . value as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashEntry ) , "::" , stringify ! ( value ) ) ) ; } impl Clone for PLHashEntry { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct PLHashTable { pub buckets : * mut * mut root :: PLHashEntry , pub nentries : root :: PRUint32 , pub shift : root :: PRUint32 , pub keyHash : root :: PLHashFunction , pub keyCompare : root :: PLHashComparator , pub valueCompare : root :: PLHashComparator , pub allocOps : * const root :: PLHashAllocOps , pub allocPriv : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_PLHashTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < PLHashTable > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( PLHashTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < PLHashTable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( PLHashTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . buckets as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( buckets ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . nentries as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( nentries ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . shift as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( shift ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . keyHash as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( keyHash ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . keyCompare as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( keyCompare ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . valueCompare as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( valueCompare ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . allocOps as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( allocOps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const PLHashTable ) ) . allocPriv as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( PLHashTable ) , "::" , stringify ! ( allocPriv ) ) ) ; } impl Clone for PLHashTable { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIVariant { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIVariant_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIVariant ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIVariant > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIVariant ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIVariant > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIVariant ) ) ) ; } impl Clone for nsIVariant { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct nsNodeInfoManager { pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mNodeInfoHash : * mut root :: PLHashTable , pub mDocument : * mut root :: nsIDocument , pub mNonDocumentNodeInfos : u32 , pub mPrincipal : root :: nsCOMPtr , pub mDefaultPrincipal : root :: nsCOMPtr , pub mTextNodeInfo : * mut root :: mozilla :: dom :: NodeInfo , pub mCommentNodeInfo : * mut root :: mozilla :: dom :: NodeInfo , pub mDocumentNodeInfo : * mut root :: mozilla :: dom :: NodeInfo , pub mBindingManager : root :: RefPtr < root :: nsBindingManager > , pub mRecentlyUsedNodeInfos : [ * mut root :: mozilla :: dom :: NodeInfo ; 31usize ] , pub mSVGEnabled : root :: nsNodeInfoManager_Tri , pub mMathMLEnabled : root :: nsNodeInfoManager_Tri , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsNodeInfoManager_cycleCollection { pub _base : root :: nsCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_nsNodeInfoManager_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsNodeInfoManager_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsNodeInfoManager_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsNodeInfoManager_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsNodeInfoManager_cycleCollection ) ) ) ; } impl Clone for nsNodeInfoManager_cycleCollection { fn clone ( & self ) -> Self { * self } } pub type nsNodeInfoManager_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; pub const nsNodeInfoManager_Tri_eTriUnset : root :: nsNodeInfoManager_Tri = 0 ; pub const nsNodeInfoManager_Tri_eTriFalse : root :: nsNodeInfoManager_Tri = 1 ; pub const nsNodeInfoManager_Tri_eTriTrue : root :: nsNodeInfoManager_Tri = 2 ; pub type nsNodeInfoManager_Tri = :: std :: os :: raw :: c_uint ; extern "C" {
- # [ link_name = "\u{1}_ZN17nsNodeInfoManager21_cycleCollectorGlobalE" ]
- pub static mut nsNodeInfoManager__cycleCollectorGlobal : root :: nsNodeInfoManager_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_nsNodeInfoManager ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsNodeInfoManager > ( ) , 336usize , concat ! ( "Size of: " , stringify ! ( nsNodeInfoManager ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsNodeInfoManager > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsNodeInfoManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mNodeInfoHash as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mNodeInfoHash ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mDocument as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mDocument ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mNonDocumentNodeInfos as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mNonDocumentNodeInfos ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mPrincipal as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mPrincipal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mDefaultPrincipal as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mDefaultPrincipal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mTextNodeInfo as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mTextNodeInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mCommentNodeInfo as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mCommentNodeInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mDocumentNodeInfo as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mDocumentNodeInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mBindingManager as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mBindingManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mRecentlyUsedNodeInfos as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mRecentlyUsedNodeInfos ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mSVGEnabled as * const _ as usize } , 328usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mSVGEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeInfoManager ) ) . mMathMLEnabled as * const _ as usize } , 332usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeInfoManager ) , "::" , stringify ! ( mMathMLEnabled ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsPropertyTable { pub mPropertyList : * mut root :: nsPropertyTable_PropertyList , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsPropertyTable_PropertyList { _unused : [ u8 ; 0 ] } # [ test ] fn bindgen_test_layout_nsPropertyTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPropertyTable > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsPropertyTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPropertyTable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPropertyTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPropertyTable ) ) . mPropertyList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsPropertyTable ) , "::" , stringify ! ( mPropertyList ) ) ) ; } pub type nsTObserverArray_base_index_type = usize ; pub type nsTObserverArray_base_size_type = usize ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsTObserverArray_base_Iterator_base { pub mPosition : root :: nsTObserverArray_base_index_type , pub mNext : * mut root :: nsTObserverArray_base_Iterator_base , } # [ test ] fn bindgen_test_layout_nsTObserverArray_base_Iterator_base ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsTObserverArray_base_Iterator_base > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsTObserverArray_base_Iterator_base ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsTObserverArray_base_Iterator_base > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsTObserverArray_base_Iterator_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTObserverArray_base_Iterator_base ) ) . mPosition as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsTObserverArray_base_Iterator_base ) , "::" , stringify ! ( mPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTObserverArray_base_Iterator_base ) ) . mNext as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsTObserverArray_base_Iterator_base ) , "::" , stringify ! ( mNext ) ) ) ; } impl Clone for nsTObserverArray_base_Iterator_base { fn clone ( & self ) -> Self { * self } } pub type nsAutoTObserverArray_elem_type < T > = T ; pub type nsAutoTObserverArray_array_type < T > = root :: nsTArray < T > ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAutoTObserverArray_Iterator { pub _base : root :: nsTObserverArray_base_Iterator_base , pub mArray : * mut root :: nsAutoTObserverArray_Iterator_array_type , } pub type nsAutoTObserverArray_Iterator_array_type = u8 ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAutoTObserverArray_ForwardIterator { pub _base : root :: nsAutoTObserverArray_Iterator , } pub type nsAutoTObserverArray_ForwardIterator_array_type = u8 ; pub type nsAutoTObserverArray_ForwardIterator_base_type = root :: nsAutoTObserverArray_Iterator ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAutoTObserverArray_EndLimitedIterator { pub _base : root :: nsAutoTObserverArray_ForwardIterator , pub mEnd : root :: nsAutoTObserverArray_ForwardIterator , } pub type nsAutoTObserverArray_EndLimitedIterator_array_type = u8 ; pub type nsAutoTObserverArray_EndLimitedIterator_base_type = root :: nsAutoTObserverArray_Iterator ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAutoTObserverArray_BackwardIterator { pub _base : root :: nsAutoTObserverArray_Iterator , } pub type nsAutoTObserverArray_BackwardIterator_array_type = u8 ; pub type nsAutoTObserverArray_BackwardIterator_base_type = root :: nsAutoTObserverArray_Iterator ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTObserverArray { pub _address : u8 , } pub type nsTObserverArray_base_type = u8 ; pub type nsTObserverArray_size_type = root :: nsTObserverArray_base_size_type ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMEventTarget { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMEventTarget_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMEventTarget ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMEventTarget > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMEventTarget ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMEventTarget > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMEventTarget ) ) ) ; } impl Clone for nsIDOMEventTarget { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsAttrChildContentList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsCSSSelectorList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsRange { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoSelectorList { _unused : [ u8 ; 0 ] } pub const NODE_HAS_LISTENERMANAGER : root :: _bindgen_ty_77 = 4 ; pub const NODE_HAS_PROPERTIES : root :: _bindgen_ty_77 = 8 ; pub const NODE_IS_ANONYMOUS_ROOT : root :: _bindgen_ty_77 = 16 ; pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE : root :: _bindgen_ty_77 = 32 ; pub const NODE_IS_NATIVE_ANONYMOUS_ROOT : root :: _bindgen_ty_77 = 64 ; pub const NODE_FORCE_XBL_BINDINGS : root :: _bindgen_ty_77 = 128 ; pub const NODE_MAY_BE_IN_BINDING_MNGR : root :: _bindgen_ty_77 = 256 ; pub const NODE_IS_EDITABLE : root :: _bindgen_ty_77 = 512 ; pub const NODE_IS_NATIVE_ANONYMOUS : root :: _bindgen_ty_77 = 1024 ; pub const NODE_IS_IN_SHADOW_TREE : root :: _bindgen_ty_77 = 2048 ; pub const NODE_HAS_EMPTY_SELECTOR : root :: _bindgen_ty_77 = 4096 ; pub const NODE_HAS_SLOW_SELECTOR : root :: _bindgen_ty_77 = 8192 ; pub const NODE_HAS_EDGE_CHILD_SELECTOR : root :: _bindgen_ty_77 = 16384 ; pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS : root :: _bindgen_ty_77 = 32768 ; pub const NODE_ALL_SELECTOR_FLAGS : root :: _bindgen_ty_77 = 61440 ; pub const NODE_NEEDS_FRAME : root :: _bindgen_ty_77 = 65536 ; pub const NODE_DESCENDANTS_NEED_FRAMES : root :: _bindgen_ty_77 = 131072 ; pub const NODE_HAS_ACCESSKEY : root :: _bindgen_ty_77 = 262144 ; pub const NODE_HAS_DIRECTION_RTL : root :: _bindgen_ty_77 = 524288 ; pub const NODE_HAS_DIRECTION_LTR : root :: _bindgen_ty_77 = 1048576 ; pub const NODE_ALL_DIRECTION_FLAGS : root :: _bindgen_ty_77 = 1572864 ; pub const NODE_CHROME_ONLY_ACCESS : root :: _bindgen_ty_77 = 2097152 ; pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS : root :: _bindgen_ty_77 = 4194304 ; pub const NODE_TYPE_SPECIFIC_BITS_OFFSET : root :: _bindgen_ty_77 = 21 ; pub type _bindgen_ty_77 = :: std :: os :: raw :: c_uint ;
- /// An internal interface that abstracts some DOMNode-related parts that both
+ /// codebase. Include nsWrapperCacheInlines.h if you need to call those methods.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsWrapperCache {
+ pub vtable_: *const nsWrapperCache__bindgen_vtable,
+ pub mWrapper: *mut root::JSObject,
+ pub mFlags: root::nsWrapperCache_FlagsType,
+ pub mBoolFlags: u32,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsWrapperCache_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub type nsWrapperCache_FlagsType = u32;
+ pub const nsWrapperCache_WRAPPER_BIT_PRESERVED: root::nsWrapperCache__bindgen_ty_1 = 1;
+ pub type nsWrapperCache__bindgen_ty_1 = u32;
+ pub const nsWrapperCache_WRAPPER_IS_NOT_DOM_BINDING: root::nsWrapperCache__bindgen_ty_2 = 2;
+ pub type nsWrapperCache__bindgen_ty_2 = u32;
+ pub const nsWrapperCache_kWrapperFlagsMask: root::nsWrapperCache__bindgen_ty_3 = 3;
+ pub type nsWrapperCache__bindgen_ty_3 = u32;
+ #[test]
+ fn bindgen_test_layout_nsWrapperCache() {
+ assert_eq!(
+ ::std::mem::size_of::<nsWrapperCache>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsWrapperCache))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsWrapperCache>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsWrapperCache))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsWrapperCache>())).mWrapper as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsWrapperCache),
+ "::",
+ stringify!(mWrapper)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsWrapperCache>())).mFlags as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsWrapperCache),
+ "::",
+ stringify!(mFlags)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsWrapperCache>())).mBoolFlags as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsWrapperCache),
+ "::",
+ stringify!(mBoolFlags)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ProfilerBacktrace {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ProfilerMarkerPayload {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ProfilerBacktraceDestructor {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_ProfilerBacktraceDestructor() {
+ assert_eq!(
+ ::std::mem::size_of::<ProfilerBacktraceDestructor>(),
+ 1usize,
+ concat!("Size of: ", stringify!(ProfilerBacktraceDestructor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ProfilerBacktraceDestructor>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(ProfilerBacktraceDestructor))
+ );
+ }
+ impl Clone for ProfilerBacktraceDestructor {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type UniqueProfilerBacktrace = root::mozilla::UniquePtr<root::ProfilerBacktrace>;
+ pub type gfxSize = [u64; 2usize];
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDOMNode {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDOMNode_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIDOMNode_ELEMENT_NODE: root::nsIDOMNode__bindgen_ty_1 = 1;
+ pub const nsIDOMNode_ATTRIBUTE_NODE: root::nsIDOMNode__bindgen_ty_1 = 2;
+ pub const nsIDOMNode_TEXT_NODE: root::nsIDOMNode__bindgen_ty_1 = 3;
+ pub const nsIDOMNode_CDATA_SECTION_NODE: root::nsIDOMNode__bindgen_ty_1 = 4;
+ pub const nsIDOMNode_ENTITY_REFERENCE_NODE: root::nsIDOMNode__bindgen_ty_1 = 5;
+ pub const nsIDOMNode_ENTITY_NODE: root::nsIDOMNode__bindgen_ty_1 = 6;
+ pub const nsIDOMNode_PROCESSING_INSTRUCTION_NODE: root::nsIDOMNode__bindgen_ty_1 = 7;
+ pub const nsIDOMNode_COMMENT_NODE: root::nsIDOMNode__bindgen_ty_1 = 8;
+ pub const nsIDOMNode_DOCUMENT_NODE: root::nsIDOMNode__bindgen_ty_1 = 9;
+ pub const nsIDOMNode_DOCUMENT_TYPE_NODE: root::nsIDOMNode__bindgen_ty_1 = 10;
+ pub const nsIDOMNode_DOCUMENT_FRAGMENT_NODE: root::nsIDOMNode__bindgen_ty_1 = 11;
+ pub const nsIDOMNode_NOTATION_NODE: root::nsIDOMNode__bindgen_ty_1 = 12;
+ pub type nsIDOMNode__bindgen_ty_1 = u32;
+ pub const nsIDOMNode_DOCUMENT_POSITION_DISCONNECTED: root::nsIDOMNode__bindgen_ty_2 = 1;
+ pub const nsIDOMNode_DOCUMENT_POSITION_PRECEDING: root::nsIDOMNode__bindgen_ty_2 = 2;
+ pub const nsIDOMNode_DOCUMENT_POSITION_FOLLOWING: root::nsIDOMNode__bindgen_ty_2 = 4;
+ pub const nsIDOMNode_DOCUMENT_POSITION_CONTAINS: root::nsIDOMNode__bindgen_ty_2 = 8;
+ pub const nsIDOMNode_DOCUMENT_POSITION_CONTAINED_BY: root::nsIDOMNode__bindgen_ty_2 = 16;
+ pub const nsIDOMNode_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: root::nsIDOMNode__bindgen_ty_2 =
+ 32;
+ pub type nsIDOMNode__bindgen_ty_2 = u32;
+ #[test]
+ fn bindgen_test_layout_nsIDOMNode() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDOMNode>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIDOMNode))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDOMNode>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDOMNode))
+ );
+ }
+ impl Clone for nsIDOMNode {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const kNameSpaceID_None: i32 = 0;
+ pub type PLHashNumber = root::PRUint32;
+ pub type PLHashFunction = ::std::option::Option<
+ unsafe extern "C" fn(key: *const ::std::os::raw::c_void) -> root::PLHashNumber,
+ >;
+ pub type PLHashComparator = ::std::option::Option<
+ unsafe extern "C" fn(v1: *const ::std::os::raw::c_void, v2: *const ::std::os::raw::c_void)
+ -> root::PRIntn,
+ >;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct PLHashAllocOps {
+ pub allocTable: ::std::option::Option<
+ unsafe extern "C" fn(pool: *mut ::std::os::raw::c_void, size: root::PRSize)
+ -> *mut ::std::os::raw::c_void,
+ >,
+ pub freeTable: ::std::option::Option<
+ unsafe extern "C" fn(
+ pool: *mut ::std::os::raw::c_void,
+ item: *mut ::std::os::raw::c_void,
+ ),
+ >,
+ pub allocEntry: ::std::option::Option<
+ unsafe extern "C" fn(
+ pool: *mut ::std::os::raw::c_void,
+ key: *const ::std::os::raw::c_void,
+ ) -> *mut root::PLHashEntry,
+ >,
+ pub freeEntry: ::std::option::Option<
+ unsafe extern "C" fn(
+ pool: *mut ::std::os::raw::c_void,
+ he: *mut root::PLHashEntry,
+ flag: root::PRUintn,
+ ),
+ >,
+ }
+ #[test]
+ fn bindgen_test_layout_PLHashAllocOps() {
+ assert_eq!(
+ ::std::mem::size_of::<PLHashAllocOps>(),
+ 32usize,
+ concat!("Size of: ", stringify!(PLHashAllocOps))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLHashAllocOps>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLHashAllocOps))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashAllocOps>())).allocTable as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashAllocOps),
+ "::",
+ stringify!(allocTable)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashAllocOps>())).freeTable as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashAllocOps),
+ "::",
+ stringify!(freeTable)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashAllocOps>())).allocEntry as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashAllocOps),
+ "::",
+ stringify!(allocEntry)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashAllocOps>())).freeEntry as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashAllocOps),
+ "::",
+ stringify!(freeEntry)
+ )
+ );
+ }
+ impl Clone for PLHashAllocOps {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct PLHashEntry {
+ pub next: *mut root::PLHashEntry,
+ pub keyHash: root::PLHashNumber,
+ pub key: *const ::std::os::raw::c_void,
+ pub value: *mut ::std::os::raw::c_void,
+ }
+ #[test]
+ fn bindgen_test_layout_PLHashEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<PLHashEntry>(),
+ 32usize,
+ concat!("Size of: ", stringify!(PLHashEntry))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLHashEntry>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLHashEntry))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashEntry>())).next as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashEntry),
+ "::",
+ stringify!(next)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashEntry>())).keyHash as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashEntry),
+ "::",
+ stringify!(keyHash)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashEntry>())).key as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashEntry),
+ "::",
+ stringify!(key)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashEntry>())).value as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashEntry),
+ "::",
+ stringify!(value)
+ )
+ );
+ }
+ impl Clone for PLHashEntry {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct PLHashTable {
+ pub buckets: *mut *mut root::PLHashEntry,
+ pub nentries: root::PRUint32,
+ pub shift: root::PRUint32,
+ pub keyHash: root::PLHashFunction,
+ pub keyCompare: root::PLHashComparator,
+ pub valueCompare: root::PLHashComparator,
+ pub allocOps: *const root::PLHashAllocOps,
+ pub allocPriv: *mut ::std::os::raw::c_void,
+ }
+ #[test]
+ fn bindgen_test_layout_PLHashTable() {
+ assert_eq!(
+ ::std::mem::size_of::<PLHashTable>(),
+ 56usize,
+ concat!("Size of: ", stringify!(PLHashTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<PLHashTable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(PLHashTable))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).buckets as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(buckets)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).nentries as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(nentries)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).shift as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(shift)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).keyHash as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(keyHash)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).keyCompare as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(keyCompare)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).valueCompare as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(valueCompare)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).allocOps as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(allocOps)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<PLHashTable>())).allocPriv as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(PLHashTable),
+ "::",
+ stringify!(allocPriv)
+ )
+ );
+ }
+ impl Clone for PLHashTable {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIVariant {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIVariant_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIVariant() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIVariant>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIVariant))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIVariant>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIVariant))
+ );
+ }
+ impl Clone for nsIVariant {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct nsNodeInfoManager {
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mNodeInfoHash: *mut root::PLHashTable,
+ pub mDocument: *mut root::nsIDocument,
+ pub mNonDocumentNodeInfos: u32,
+ pub mPrincipal: root::nsCOMPtr,
+ pub mDefaultPrincipal: root::nsCOMPtr,
+ pub mTextNodeInfo: *mut root::mozilla::dom::NodeInfo,
+ pub mCommentNodeInfo: *mut root::mozilla::dom::NodeInfo,
+ pub mDocumentNodeInfo: *mut root::mozilla::dom::NodeInfo,
+ pub mBindingManager: root::RefPtr<root::nsBindingManager>,
+ pub mRecentlyUsedNodeInfos: [*mut root::mozilla::dom::NodeInfo; 31usize],
+ pub mSVGEnabled: root::nsNodeInfoManager_Tri,
+ pub mMathMLEnabled: root::nsNodeInfoManager_Tri,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsNodeInfoManager_cycleCollection {
+ pub _base: root::nsCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_nsNodeInfoManager_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsNodeInfoManager_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsNodeInfoManager_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsNodeInfoManager_cycleCollection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsNodeInfoManager_cycleCollection)
+ )
+ );
+ }
+ impl Clone for nsNodeInfoManager_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsNodeInfoManager_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ pub const nsNodeInfoManager_Tri_eTriUnset: root::nsNodeInfoManager_Tri = 0;
+ pub const nsNodeInfoManager_Tri_eTriFalse: root::nsNodeInfoManager_Tri = 1;
+ pub const nsNodeInfoManager_Tri_eTriTrue: root::nsNodeInfoManager_Tri = 2;
+ pub type nsNodeInfoManager_Tri = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN17nsNodeInfoManager21_cycleCollectorGlobalE"]
+ pub static mut nsNodeInfoManager__cycleCollectorGlobal:
+ root::nsNodeInfoManager_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_nsNodeInfoManager() {
+ assert_eq!(
+ ::std::mem::size_of::<nsNodeInfoManager>(),
+ 336usize,
+ concat!("Size of: ", stringify!(nsNodeInfoManager))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsNodeInfoManager>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsNodeInfoManager))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsNodeInfoManager>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mNodeInfoHash as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mNodeInfoHash)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsNodeInfoManager>())).mDocument as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mNonDocumentNodeInfos as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mNonDocumentNodeInfos)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mPrincipal as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mPrincipal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mDefaultPrincipal as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mDefaultPrincipal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mTextNodeInfo as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mTextNodeInfo)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mCommentNodeInfo as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mCommentNodeInfo)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mDocumentNodeInfo as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mDocumentNodeInfo)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mBindingManager as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mBindingManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mRecentlyUsedNodeInfos as *const _
+ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mRecentlyUsedNodeInfos)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mSVGEnabled as *const _ as usize
+ },
+ 328usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mSVGEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNodeInfoManager>())).mMathMLEnabled as *const _ as usize
+ },
+ 332usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeInfoManager),
+ "::",
+ stringify!(mMathMLEnabled)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsPropertyTable {
+ pub mPropertyList: *mut root::nsPropertyTable_PropertyList,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsPropertyTable_PropertyList {
+ _unused: [u8; 0],
+ }
+ #[test]
+ fn bindgen_test_layout_nsPropertyTable() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPropertyTable>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsPropertyTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPropertyTable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPropertyTable))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPropertyTable>())).mPropertyList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPropertyTable),
+ "::",
+ stringify!(mPropertyList)
+ )
+ );
+ }
+ pub type nsTObserverArray_base_index_type = usize;
+ pub type nsTObserverArray_base_size_type = usize;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsTObserverArray_base_Iterator_base {
+ pub mPosition: root::nsTObserverArray_base_index_type,
+ pub mNext: *mut root::nsTObserverArray_base_Iterator_base,
+ }
+ #[test]
+ fn bindgen_test_layout_nsTObserverArray_base_Iterator_base() {
+ assert_eq!(
+ ::std::mem::size_of::<nsTObserverArray_base_Iterator_base>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsTObserverArray_base_Iterator_base))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsTObserverArray_base_Iterator_base>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsTObserverArray_base_Iterator_base)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTObserverArray_base_Iterator_base>())).mPosition
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTObserverArray_base_Iterator_base),
+ "::",
+ stringify!(mPosition)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTObserverArray_base_Iterator_base>())).mNext as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTObserverArray_base_Iterator_base),
+ "::",
+ stringify!(mNext)
+ )
+ );
+ }
+ impl Clone for nsTObserverArray_base_Iterator_base {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsAutoTObserverArray_elem_type<T> = T;
+ pub type nsAutoTObserverArray_array_type<T> = root::nsTArray<T>;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAutoTObserverArray_Iterator {
+ pub _base: root::nsTObserverArray_base_Iterator_base,
+ pub mArray: *mut root::nsAutoTObserverArray_Iterator_array_type,
+ }
+ pub type nsAutoTObserverArray_Iterator_array_type = u8;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAutoTObserverArray_ForwardIterator {
+ pub _base: root::nsAutoTObserverArray_Iterator,
+ }
+ pub type nsAutoTObserverArray_ForwardIterator_array_type = u8;
+ pub type nsAutoTObserverArray_ForwardIterator_base_type = root::nsAutoTObserverArray_Iterator;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAutoTObserverArray_EndLimitedIterator {
+ pub _base: root::nsAutoTObserverArray_ForwardIterator,
+ pub mEnd: root::nsAutoTObserverArray_ForwardIterator,
+ }
+ pub type nsAutoTObserverArray_EndLimitedIterator_array_type = u8;
+ pub type nsAutoTObserverArray_EndLimitedIterator_base_type =
+ root::nsAutoTObserverArray_Iterator;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAutoTObserverArray_BackwardIterator {
+ pub _base: root::nsAutoTObserverArray_Iterator,
+ }
+ pub type nsAutoTObserverArray_BackwardIterator_array_type = u8;
+ pub type nsAutoTObserverArray_BackwardIterator_base_type = root::nsAutoTObserverArray_Iterator;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTObserverArray {
+ pub _address: u8,
+ }
+ pub type nsTObserverArray_base_type = u8;
+ pub type nsTObserverArray_size_type = root::nsTObserverArray_base_size_type;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDOMEventTarget {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDOMEventTarget_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDOMEventTarget() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDOMEventTarget>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIDOMEventTarget))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDOMEventTarget>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDOMEventTarget))
+ );
+ }
+ impl Clone for nsIDOMEventTarget {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsAttrChildContentList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsCSSSelectorList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsRange {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoSelectorList {
+ _unused: [u8; 0],
+ }
+ pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_77 = 4;
+ pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_77 = 8;
+ pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_77 = 16;
+ pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_77 = 32;
+ pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_77 = 64;
+ pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_77 = 128;
+ pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_77 = 256;
+ pub const NODE_IS_EDITABLE: root::_bindgen_ty_77 = 512;
+ pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_77 = 1024;
+ pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_77 = 2048;
+ pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_77 = 4096;
+ pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_77 = 8192;
+ pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_77 = 16384;
+ pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_77 = 32768;
+ pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_77 = 61440;
+ pub const NODE_NEEDS_FRAME: root::_bindgen_ty_77 = 65536;
+ pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_77 = 131072;
+ pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_77 = 262144;
+ pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_77 = 524288;
+ pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_77 = 1048576;
+ pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_77 = 1572864;
+ pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_77 = 2097152;
+ pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_77 = 4194304;
+ pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_77 = 21;
+ pub type _bindgen_ty_77 = u32;
+ /// An internal interface that abstracts some DOMNode-related parts that both
/// nsIContent and nsIDocument share. An instance of this interface has a list
- /// of nsIContent children and provides access to them.
- # [ repr ( C ) ] pub struct nsINode { pub _base : root :: mozilla :: dom :: EventTarget , pub mNodeInfo : root :: RefPtr < root :: mozilla :: dom :: NodeInfo > , pub mParent : * mut root :: nsINode , pub mNextSibling : * mut root :: nsIContent , pub mPreviousSibling : * mut root :: nsIContent , pub mFirstChild : * mut root :: nsIContent , pub __bindgen_anon_1 : root :: nsINode__bindgen_ty_1 , pub mSlots : * mut root :: nsINode_nsSlots , } pub type nsINode_BoxQuadOptions = root :: mozilla :: dom :: BoxQuadOptions ; pub type nsINode_ConvertCoordinateOptions = root :: mozilla :: dom :: ConvertCoordinateOptions ; pub type nsINode_DocGroup = root :: mozilla :: dom :: DocGroup ; pub type nsINode_DOMPoint = root :: mozilla :: dom :: DOMPoint ; pub type nsINode_DOMPointInit = root :: mozilla :: dom :: DOMPointInit ; pub type nsINode_DOMQuad = root :: mozilla :: dom :: DOMQuad ; pub type nsINode_DOMRectReadOnly = root :: mozilla :: dom :: DOMRectReadOnly ; pub type nsINode_OwningNodeOrString = root :: mozilla :: dom :: OwningNodeOrString ; pub type nsINode_TextOrElementOrDocument = root :: mozilla :: dom :: TextOrElementOrDocument ; pub use self :: super :: root :: mozilla :: dom :: CallerType as nsINode_CallerType ; pub type nsINode_Sequence = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsINode_COMTypeInfo { pub _address : u8 , } pub const nsINode_eDOCUMENT : root :: nsINode__bindgen_ty_2 = 2 ; pub const nsINode_eATTRIBUTE : root :: nsINode__bindgen_ty_2 = 4 ; pub const nsINode_eTEXT : root :: nsINode__bindgen_ty_2 = 8 ; pub const nsINode_ePROCESSING_INSTRUCTION : root :: nsINode__bindgen_ty_2 = 16 ; pub const nsINode_eCOMMENT : root :: nsINode__bindgen_ty_2 = 32 ; pub const nsINode_eHTML_FORM_CONTROL : root :: nsINode__bindgen_ty_2 = 64 ; pub const nsINode_eDOCUMENT_FRAGMENT : root :: nsINode__bindgen_ty_2 = 128 ; pub const nsINode_eDATA_NODE : root :: nsINode__bindgen_ty_2 = 256 ; pub const nsINode_eMEDIA : root :: nsINode__bindgen_ty_2 = 512 ; pub const nsINode_eANIMATION : root :: nsINode__bindgen_ty_2 = 1024 ; pub const nsINode_eFILTER : root :: nsINode__bindgen_ty_2 = 2048 ; pub type nsINode__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; pub const nsINode_FlattenedParentType_eNotForStyle : root :: nsINode_FlattenedParentType = 0 ; pub const nsINode_FlattenedParentType_eForStyle : root :: nsINode_FlattenedParentType = 1 ; pub type nsINode_FlattenedParentType = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] pub struct nsINode_nsSlots__bindgen_vtable ( :: std :: os :: raw :: c_void ) ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsINode_nsSlots { pub vtable_ : * const nsINode_nsSlots__bindgen_vtable ,
- /// A list of mutation observers
- pub mMutationObservers : [ u64 ; 4usize ] ,
- /// An object implementing nsIDOMNodeList for this content (childNodes)
+ /// of nsIContent children and provides access to them.
+ #[repr(C)]
+ pub struct nsINode {
+ pub _base: root::mozilla::dom::EventTarget,
+ pub mNodeInfo: root::RefPtr<root::mozilla::dom::NodeInfo>,
+ pub mParent: *mut root::nsINode,
+ pub mNextSibling: *mut root::nsIContent,
+ pub mPreviousSibling: *mut root::nsIContent,
+ pub mFirstChild: *mut root::nsIContent,
+ pub __bindgen_anon_1: root::nsINode__bindgen_ty_1,
+ pub mSlots: *mut root::nsINode_nsSlots,
+ }
+ pub type nsINode_BoxQuadOptions = root::mozilla::dom::BoxQuadOptions;
+ pub type nsINode_ConvertCoordinateOptions = root::mozilla::dom::ConvertCoordinateOptions;
+ pub type nsINode_DocGroup = root::mozilla::dom::DocGroup;
+ pub type nsINode_DOMPoint = root::mozilla::dom::DOMPoint;
+ pub type nsINode_DOMPointInit = root::mozilla::dom::DOMPointInit;
+ pub type nsINode_DOMQuad = root::mozilla::dom::DOMQuad;
+ pub type nsINode_DOMRectReadOnly = root::mozilla::dom::DOMRectReadOnly;
+ pub type nsINode_OwningNodeOrString = root::mozilla::dom::OwningNodeOrString;
+ pub type nsINode_TextOrElementOrDocument = root::mozilla::dom::TextOrElementOrDocument;
+ pub use self::super::root::mozilla::dom::CallerType as nsINode_CallerType;
+ pub type nsINode_Sequence = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsINode_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsINode_eDOCUMENT: root::nsINode__bindgen_ty_2 = 2;
+ pub const nsINode_eATTRIBUTE: root::nsINode__bindgen_ty_2 = 4;
+ pub const nsINode_eTEXT: root::nsINode__bindgen_ty_2 = 8;
+ pub const nsINode_ePROCESSING_INSTRUCTION: root::nsINode__bindgen_ty_2 = 16;
+ pub const nsINode_eCOMMENT: root::nsINode__bindgen_ty_2 = 32;
+ pub const nsINode_eHTML_FORM_CONTROL: root::nsINode__bindgen_ty_2 = 64;
+ pub const nsINode_eDOCUMENT_FRAGMENT: root::nsINode__bindgen_ty_2 = 128;
+ pub const nsINode_eDATA_NODE: root::nsINode__bindgen_ty_2 = 256;
+ pub const nsINode_eMEDIA: root::nsINode__bindgen_ty_2 = 512;
+ pub const nsINode_eANIMATION: root::nsINode__bindgen_ty_2 = 1024;
+ pub const nsINode_eFILTER: root::nsINode__bindgen_ty_2 = 2048;
+ pub type nsINode__bindgen_ty_2 = u32;
+ pub const nsINode_FlattenedParentType_eNotForStyle: root::nsINode_FlattenedParentType = 0;
+ pub const nsINode_FlattenedParentType_eForStyle: root::nsINode_FlattenedParentType = 1;
+ pub type nsINode_FlattenedParentType = u32;
+ #[repr(C)]
+ pub struct nsINode_nsSlots__bindgen_vtable(::std::os::raw::c_void);
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsINode_nsSlots {
+ pub vtable_: *const nsINode_nsSlots__bindgen_vtable,
+ /// A list of mutation observers
+ pub mMutationObservers: [u64; 4usize],
+ /// An object implementing nsIDOMNodeList for this content (childNodes)
/// @see nsIDOMNodeList
- /// @see nsGenericHTMLElement::GetChildNodes
- pub mChildNodes : root :: RefPtr < root :: nsAttrChildContentList > ,
- /// Weak reference to this node. This is cleared by the destructor of
- /// nsNodeWeakReference.
- pub mWeakReference : * mut root :: nsNodeWeakReference ,
- /// A set of ranges which are in the selection and which have this node as
+ /// @see nsGenericHTMLElement::GetChildNodes
+ pub mChildNodes: root::RefPtr<root::nsAttrChildContentList>,
+ /// Weak reference to this node. This is cleared by the destructor of
+ /// nsNodeWeakReference.
+ pub mWeakReference: *mut root::nsNodeWeakReference,
+ /// A set of ranges which are in the selection and which have this node as
/// their endpoints' common ancestor. This is a UniquePtr instead of just a
/// LinkedList, because that prevents us from pushing DOMSlots up to the next
- /// allocation bucket size, at the cost of some complexity.
- pub mCommonAncestorRanges : root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > ,
- /// Number of descendant nodes in the uncomposed document that have been
- /// explicitly set as editable.
- pub mEditableDescendantCount : u32 , } # [ test ] fn bindgen_test_layout_nsINode_nsSlots ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsINode_nsSlots > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( nsINode_nsSlots ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsINode_nsSlots > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsINode_nsSlots ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode_nsSlots ) ) . mMutationObservers as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode_nsSlots ) , "::" , stringify ! ( mMutationObservers ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode_nsSlots ) ) . mChildNodes as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode_nsSlots ) , "::" , stringify ! ( mChildNodes ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode_nsSlots ) ) . mWeakReference as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode_nsSlots ) , "::" , stringify ! ( mWeakReference ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode_nsSlots ) ) . mCommonAncestorRanges as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode_nsSlots ) , "::" , stringify ! ( mCommonAncestorRanges ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode_nsSlots ) ) . mEditableDescendantCount as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode_nsSlots ) , "::" , stringify ! ( mEditableDescendantCount ) ) ) ; } # [ repr ( u32 ) ]
- /// Boolean flags
- # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsINode_BooleanFlag { NodeHasRenderingObservers = 0 , IsInDocument = 1 , ParentIsContent = 2 , NodeIsElement = 3 , ElementHasID = 4 , ElementMayHaveClass = 5 , ElementMayHaveStyle = 6 , ElementHasName = 7 , ElementMayHaveContentEditableAttr = 8 , NodeIsCommonAncestorForRangeInSelection = 9 , NodeIsDescendantOfCommonAncestorForRangeInSelection = 10 , NodeIsCCMarkedRoot = 11 , NodeIsCCBlackTree = 12 , NodeIsPurpleRoot = 13 , ElementHasLockedStyleStates = 14 , ElementHasPointerLock = 15 , NodeMayHaveDOMMutationObserver = 16 , NodeIsContent = 17 , ElementHasAnimations = 18 , NodeHasValidDirAttribute = 19 , NodeHasDirAutoSet = 20 , NodeHasTextNodeDirectionalityMap = 21 , NodeAncestorHasDirAuto = 22 , ElementIsInStyleScope = 23 , ElementIsScopedStyleRoot = 24 , NodeHandlingClick = 25 , NodeHasRelevantHoverRules = 26 , ElementHasWeirdParserInsertionMode = 27 , ParserHasNotified = 28 , MayBeApzAware = 29 , ElementMayHaveAnonymousChildren = 30 , NodeMayHaveChildrenWithLayoutBoxesDisabled = 31 , BooleanFlagCount = 32 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsINode__bindgen_ty_1 { pub mPrimaryFrame : root :: __BindgenUnionField < * mut root :: nsIFrame > , pub mSubtreeRoot : root :: __BindgenUnionField < * mut root :: nsINode > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsINode__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsINode__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsINode__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsINode__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsINode__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode__bindgen_ty_1 ) ) . mPrimaryFrame as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode__bindgen_ty_1 ) , "::" , stringify ! ( mPrimaryFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode__bindgen_ty_1 ) ) . mSubtreeRoot as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode__bindgen_ty_1 ) , "::" , stringify ! ( mSubtreeRoot ) ) ) ; } impl Clone for nsINode__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsINode ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsINode > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( nsINode ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsINode > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsINode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode ) ) . mNodeInfo as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode ) , "::" , stringify ! ( mNodeInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode ) ) . mParent as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode ) , "::" , stringify ! ( mParent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode ) ) . mNextSibling as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode ) , "::" , stringify ! ( mNextSibling ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode ) ) . mPreviousSibling as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode ) , "::" , stringify ! ( mPreviousSibling ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode ) ) . mFirstChild as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode ) , "::" , stringify ! ( mFirstChild ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsINode ) ) . mSlots as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsINode ) , "::" , stringify ! ( mSlots ) ) ) ; }
- /// Functions to create content, to be used only inside Gecko
- /// (mozilla/content and mozilla/layout).
- # [ repr ( C ) ] pub struct nsIContent { pub _base : root :: nsINode , } pub type nsIContent_IMEState = root :: mozilla :: widget :: IMEState ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIContent_COMTypeInfo { pub _address : u8 , } pub const nsIContent_eAllChildren : root :: nsIContent__bindgen_ty_1 = 0 ; pub const nsIContent_eAllButXBL : root :: nsIContent__bindgen_ty_1 = 1 ; pub const nsIContent_eSkipPlaceholderContent : root :: nsIContent__bindgen_ty_1 = 2 ; pub const nsIContent_eSkipDocumentLevelNativeAnonymousContent : root :: nsIContent__bindgen_ty_1 = 4 ; pub type nsIContent__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] pub struct nsIContent_nsExtendedContentSlots__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- /// Lazily allocated extended slots to avoid
+ /// allocation bucket size, at the cost of some complexity.
+ pub mCommonAncestorRanges: root::mozilla::UniquePtr<root::mozilla::LinkedList>,
+ /// Number of descendant nodes in the uncomposed document that have been
+ /// explicitly set as editable.
+ pub mEditableDescendantCount: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_nsINode_nsSlots() {
+ assert_eq!(
+ ::std::mem::size_of::<nsINode_nsSlots>(),
+ 72usize,
+ concat!("Size of: ", stringify!(nsINode_nsSlots))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsINode_nsSlots>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsINode_nsSlots))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsINode_nsSlots>())).mMutationObservers as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode_nsSlots),
+ "::",
+ stringify!(mMutationObservers)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode_nsSlots>())).mChildNodes as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode_nsSlots),
+ "::",
+ stringify!(mChildNodes)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsINode_nsSlots>())).mWeakReference as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode_nsSlots),
+ "::",
+ stringify!(mWeakReference)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsINode_nsSlots>())).mCommonAncestorRanges as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode_nsSlots),
+ "::",
+ stringify!(mCommonAncestorRanges)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsINode_nsSlots>())).mEditableDescendantCount as *const _
+ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode_nsSlots),
+ "::",
+ stringify!(mEditableDescendantCount)
+ )
+ );
+ }
+ #[repr(u32)]
+ /// Boolean flags
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsINode_BooleanFlag {
+ NodeHasRenderingObservers = 0,
+ IsInDocument = 1,
+ ParentIsContent = 2,
+ NodeIsElement = 3,
+ ElementHasID = 4,
+ ElementMayHaveClass = 5,
+ ElementMayHaveStyle = 6,
+ ElementHasName = 7,
+ ElementMayHaveContentEditableAttr = 8,
+ NodeIsCommonAncestorForRangeInSelection = 9,
+ NodeIsDescendantOfCommonAncestorForRangeInSelection = 10,
+ NodeIsCCMarkedRoot = 11,
+ NodeIsCCBlackTree = 12,
+ NodeIsPurpleRoot = 13,
+ ElementHasLockedStyleStates = 14,
+ ElementHasPointerLock = 15,
+ NodeMayHaveDOMMutationObserver = 16,
+ NodeIsContent = 17,
+ ElementHasAnimations = 18,
+ NodeHasValidDirAttribute = 19,
+ NodeHasDirAutoSet = 20,
+ NodeHasTextNodeDirectionalityMap = 21,
+ NodeAncestorHasDirAuto = 22,
+ ElementIsInStyleScope = 23,
+ ElementIsScopedStyleRoot = 24,
+ NodeHandlingClick = 25,
+ NodeHasRelevantHoverRules = 26,
+ ElementHasWeirdParserInsertionMode = 27,
+ ParserHasNotified = 28,
+ MayBeApzAware = 29,
+ ElementMayHaveAnonymousChildren = 30,
+ NodeMayHaveChildrenWithLayoutBoxesDisabled = 31,
+ BooleanFlagCount = 32,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsINode__bindgen_ty_1 {
+ pub mPrimaryFrame: root::__BindgenUnionField<*mut root::nsIFrame>,
+ pub mSubtreeRoot: root::__BindgenUnionField<*mut root::nsINode>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsINode__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsINode__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsINode__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsINode__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsINode__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsINode__bindgen_ty_1>())).mPrimaryFrame as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode__bindgen_ty_1),
+ "::",
+ stringify!(mPrimaryFrame)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsINode__bindgen_ty_1>())).mSubtreeRoot as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode__bindgen_ty_1),
+ "::",
+ stringify!(mSubtreeRoot)
+ )
+ );
+ }
+ impl Clone for nsINode__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsINode() {
+ assert_eq!(
+ ::std::mem::size_of::<nsINode>(),
+ 88usize,
+ concat!("Size of: ", stringify!(nsINode))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsINode>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsINode))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode>())).mNodeInfo as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode),
+ "::",
+ stringify!(mNodeInfo)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode>())).mParent as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode),
+ "::",
+ stringify!(mParent)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode>())).mNextSibling as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode),
+ "::",
+ stringify!(mNextSibling)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode>())).mPreviousSibling as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode),
+ "::",
+ stringify!(mPreviousSibling)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode>())).mFirstChild as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode),
+ "::",
+ stringify!(mFirstChild)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsINode>())).mSlots as *const _ as usize },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsINode),
+ "::",
+ stringify!(mSlots)
+ )
+ );
+ }
+ /// Functions to create content, to be used only inside Gecko
+ /// (mozilla/content and mozilla/layout).
+ #[repr(C)]
+ pub struct nsIContent {
+ pub _base: root::nsINode,
+ }
+ pub type nsIContent_IMEState = root::mozilla::widget::IMEState;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIContent_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIContent_eAllChildren: root::nsIContent__bindgen_ty_1 = 0;
+ pub const nsIContent_eAllButXBL: root::nsIContent__bindgen_ty_1 = 1;
+ pub const nsIContent_eSkipPlaceholderContent: root::nsIContent__bindgen_ty_1 = 2;
+ pub const nsIContent_eSkipDocumentLevelNativeAnonymousContent: root::nsIContent__bindgen_ty_1 =
+ 4;
+ pub type nsIContent__bindgen_ty_1 = u32;
+ #[repr(C)]
+ pub struct nsIContent_nsExtendedContentSlots__bindgen_vtable(::std::os::raw::c_void);
+ /// Lazily allocated extended slots to avoid
/// that may only be instantiated when a content object is accessed
/// through the DOM. Rather than burn actual slots in the content
/// objects for each of these instance variables, we put them off
/// in a side structure that's only allocated when the content is
- /// accessed through the DOM.
- # [ repr ( C ) ] pub struct nsIContent_nsExtendedContentSlots { pub vtable_ : * const nsIContent_nsExtendedContentSlots__bindgen_vtable ,
- /// The nearest enclosing content node with a binding that created us.
- /// @see nsIContent::GetBindingParent
- pub mBindingParent : * mut root :: nsIContent ,
- /// @see nsIContent::GetXBLInsertionPoint
- pub mXBLInsertionPoint : root :: nsCOMPtr ,
- /// @see nsIContent::GetContainingShadow
- pub mContainingShadow : root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > ,
- /// @see nsIContent::GetAssignedSlot
- pub mAssignedSlot : root :: RefPtr < root :: mozilla :: dom :: HTMLSlotElement > , } # [ test ] fn bindgen_test_layout_nsIContent_nsExtendedContentSlots ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIContent_nsExtendedContentSlots > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsIContent_nsExtendedContentSlots ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIContent_nsExtendedContentSlots > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIContent_nsExtendedContentSlots ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIContent_nsExtendedContentSlots ) ) . mBindingParent as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIContent_nsExtendedContentSlots ) , "::" , stringify ! ( mBindingParent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIContent_nsExtendedContentSlots ) ) . mXBLInsertionPoint as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsIContent_nsExtendedContentSlots ) , "::" , stringify ! ( mXBLInsertionPoint ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIContent_nsExtendedContentSlots ) ) . mContainingShadow as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsIContent_nsExtendedContentSlots ) , "::" , stringify ! ( mContainingShadow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIContent_nsExtendedContentSlots ) ) . mAssignedSlot as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsIContent_nsExtendedContentSlots ) , "::" , stringify ! ( mAssignedSlot ) ) ) ; } # [ repr ( C ) ] pub struct nsIContent_nsContentSlots { pub _base : root :: nsINode_nsSlots , pub mExtendedSlots : root :: mozilla :: UniquePtr < root :: nsIContent_nsExtendedContentSlots > , } # [ test ] fn bindgen_test_layout_nsIContent_nsContentSlots ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIContent_nsContentSlots > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( nsIContent_nsContentSlots ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIContent_nsContentSlots > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIContent_nsContentSlots ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIContent_nsContentSlots ) ) . mExtendedSlots as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsIContent_nsContentSlots ) , "::" , stringify ! ( mExtendedSlots ) ) ) ; } pub const nsIContent_ETabFocusType_eTabFocus_textControlsMask : root :: nsIContent_ETabFocusType = 1 ; pub const nsIContent_ETabFocusType_eTabFocus_formElementsMask : root :: nsIContent_ETabFocusType = 2 ; pub const nsIContent_ETabFocusType_eTabFocus_linksMask : root :: nsIContent_ETabFocusType = 4 ; pub const nsIContent_ETabFocusType_eTabFocus_any : root :: nsIContent_ETabFocusType = 7 ; pub type nsIContent_ETabFocusType = :: std :: os :: raw :: c_uint ; extern "C" {
- # [ link_name = "\u{1}_ZN10nsIContent14sTabFocusModelE" ]
- pub static mut nsIContent_sTabFocusModel : i32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsIContent26sTabFocusModelAppliesToXULE" ]
- pub static mut nsIContent_sTabFocusModelAppliesToXUL : bool ;
-} # [ test ] fn bindgen_test_layout_nsIContent ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIContent > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( nsIContent ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIContent > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIContent ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsFrameManagerBase { pub mPresShell : * mut root :: nsIPresShell , pub mRootFrame : * mut root :: nsIFrame , pub mDisplayNoneMap : * mut root :: nsFrameManagerBase_UndisplayedMap , pub mDisplayContentsMap : * mut root :: nsFrameManagerBase_UndisplayedMap , pub mIsDestroyingFrames : bool , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsFrameManagerBase_UndisplayedMap { _unused : [ u8 ; 0 ] } # [ test ] fn bindgen_test_layout_nsFrameManagerBase ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsFrameManagerBase > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsFrameManagerBase ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsFrameManagerBase > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsFrameManagerBase ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFrameManagerBase ) ) . mPresShell as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsFrameManagerBase ) , "::" , stringify ! ( mPresShell ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFrameManagerBase ) ) . mRootFrame as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsFrameManagerBase ) , "::" , stringify ! ( mRootFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFrameManagerBase ) ) . mDisplayNoneMap as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsFrameManagerBase ) , "::" , stringify ! ( mDisplayNoneMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFrameManagerBase ) ) . mDisplayContentsMap as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsFrameManagerBase ) , "::" , stringify ! ( mDisplayContentsMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFrameManagerBase ) ) . mIsDestroyingFrames as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsFrameManagerBase ) , "::" , stringify ! ( mIsDestroyingFrames ) ) ) ; } impl Clone for nsFrameManagerBase { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIWeakReference { pub _base : root :: nsISupports , pub mObject : * mut root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIWeakReference_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIWeakReference ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIWeakReference > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsIWeakReference ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIWeakReference > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIWeakReference ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIWeakReference ) ) . mObject as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIWeakReference ) , "::" , stringify ! ( mObject ) ) ) ; } impl Clone for nsIWeakReference { fn clone ( & self ) -> Self { * self } } pub type nsWeakPtr = root :: nsCOMPtr ;
- /// templated hashtable class maps keys to reference pointers.
+ /// accessed through the DOM.
+ #[repr(C)]
+ pub struct nsIContent_nsExtendedContentSlots {
+ pub vtable_: *const nsIContent_nsExtendedContentSlots__bindgen_vtable,
+ /// The nearest enclosing content node with a binding that created us.
+ /// @see nsIContent::GetBindingParent
+ pub mBindingParent: *mut root::nsIContent,
+ /// @see nsIContent::GetXBLInsertionPoint
+ pub mXBLInsertionPoint: root::nsCOMPtr,
+ /// @see nsIContent::GetContainingShadow
+ pub mContainingShadow: root::RefPtr<root::mozilla::dom::ShadowRoot>,
+ /// @see nsIContent::GetAssignedSlot
+ pub mAssignedSlot: root::RefPtr<root::mozilla::dom::HTMLSlotElement>,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIContent_nsExtendedContentSlots() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIContent_nsExtendedContentSlots>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsIContent_nsExtendedContentSlots))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIContent_nsExtendedContentSlots>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIContent_nsExtendedContentSlots)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIContent_nsExtendedContentSlots>())).mBindingParent
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIContent_nsExtendedContentSlots),
+ "::",
+ stringify!(mBindingParent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIContent_nsExtendedContentSlots>())).mXBLInsertionPoint
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIContent_nsExtendedContentSlots),
+ "::",
+ stringify!(mXBLInsertionPoint)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIContent_nsExtendedContentSlots>())).mContainingShadow
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIContent_nsExtendedContentSlots),
+ "::",
+ stringify!(mContainingShadow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIContent_nsExtendedContentSlots>())).mAssignedSlot
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIContent_nsExtendedContentSlots),
+ "::",
+ stringify!(mAssignedSlot)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsIContent_nsContentSlots {
+ pub _base: root::nsINode_nsSlots,
+ pub mExtendedSlots: root::mozilla::UniquePtr<root::nsIContent_nsExtendedContentSlots>,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIContent_nsContentSlots() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIContent_nsContentSlots>(),
+ 80usize,
+ concat!("Size of: ", stringify!(nsIContent_nsContentSlots))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIContent_nsContentSlots>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIContent_nsContentSlots))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIContent_nsContentSlots>())).mExtendedSlots as *const _
+ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIContent_nsContentSlots),
+ "::",
+ stringify!(mExtendedSlots)
+ )
+ );
+ }
+ pub const nsIContent_ETabFocusType_eTabFocus_textControlsMask: root::nsIContent_ETabFocusType =
+ 1;
+ pub const nsIContent_ETabFocusType_eTabFocus_formElementsMask: root::nsIContent_ETabFocusType =
+ 2;
+ pub const nsIContent_ETabFocusType_eTabFocus_linksMask: root::nsIContent_ETabFocusType = 4;
+ pub const nsIContent_ETabFocusType_eTabFocus_any: root::nsIContent_ETabFocusType = 7;
+ pub type nsIContent_ETabFocusType = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsIContent14sTabFocusModelE"]
+ pub static mut nsIContent_sTabFocusModel: i32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsIContent26sTabFocusModelAppliesToXULE"]
+ pub static mut nsIContent_sTabFocusModelAppliesToXUL: bool;
+ }
+ #[test]
+ fn bindgen_test_layout_nsIContent() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIContent>(),
+ 88usize,
+ concat!("Size of: ", stringify!(nsIContent))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIContent>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIContent))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsFrameManagerBase {
+ pub mPresShell: *mut root::nsIPresShell,
+ pub mRootFrame: *mut root::nsIFrame,
+ pub mDisplayNoneMap: *mut root::nsFrameManagerBase_UndisplayedMap,
+ pub mDisplayContentsMap: *mut root::nsFrameManagerBase_UndisplayedMap,
+ pub mIsDestroyingFrames: bool,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsFrameManagerBase_UndisplayedMap {
+ _unused: [u8; 0],
+ }
+ #[test]
+ fn bindgen_test_layout_nsFrameManagerBase() {
+ assert_eq!(
+ ::std::mem::size_of::<nsFrameManagerBase>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsFrameManagerBase))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsFrameManagerBase>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsFrameManagerBase))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFrameManagerBase>())).mPresShell as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFrameManagerBase),
+ "::",
+ stringify!(mPresShell)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFrameManagerBase>())).mRootFrame as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFrameManagerBase),
+ "::",
+ stringify!(mRootFrame)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFrameManagerBase>())).mDisplayNoneMap as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFrameManagerBase),
+ "::",
+ stringify!(mDisplayNoneMap)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFrameManagerBase>())).mDisplayContentsMap as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFrameManagerBase),
+ "::",
+ stringify!(mDisplayContentsMap)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFrameManagerBase>())).mIsDestroyingFrames as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFrameManagerBase),
+ "::",
+ stringify!(mIsDestroyingFrames)
+ )
+ );
+ }
+ impl Clone for nsFrameManagerBase {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIWeakReference {
+ pub _base: root::nsISupports,
+ pub mObject: *mut root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIWeakReference_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIWeakReference() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIWeakReference>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsIWeakReference))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIWeakReference>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIWeakReference))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIWeakReference>())).mObject as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIWeakReference),
+ "::",
+ stringify!(mObject)
+ )
+ );
+ }
+ impl Clone for nsIWeakReference {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsWeakPtr = root::nsCOMPtr;
+ /// templated hashtable class maps keys to reference pointers.
/// See nsBaseHashtable for complete declaration.
/// @param KeyClass a wrapper-class for the hashtable key, see nsHashKeys.h
/// for a complete specification.
/// @param PtrType the reference-type being wrapped
- /// @see nsDataHashtable, nsClassHashtable
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsRefPtrHashtable { pub _address : u8 , } pub type nsRefPtrHashtable_KeyType = [ u8 ; 0usize ] ; pub type nsRefPtrHashtable_UserDataType < PtrType > = * mut PtrType ; pub type nsRefPtrHashtable_base_type = u8 ;
- /// templated hashtable class maps keys to C++ object pointers.
+ /// @see nsDataHashtable, nsClassHashtable
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsRefPtrHashtable {
+ pub _address: u8,
+ }
+ pub type nsRefPtrHashtable_KeyType = [u8; 0usize];
+ pub type nsRefPtrHashtable_UserDataType<PtrType> = *mut PtrType;
+ pub type nsRefPtrHashtable_base_type = u8;
+ /// templated hashtable class maps keys to C++ object pointers.
/// See nsBaseHashtable for complete declaration.
/// @param KeyClass a wrapper-class for the hashtable key, see nsHashKeys.h
/// for a complete specification.
/// @param Class the class-type being wrapped
- /// @see nsInterfaceHashtable, nsClassHashtable
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsClassHashtable { pub _address : u8 , } pub type nsClassHashtable_KeyType = [ u8 ; 0usize ] ; pub type nsClassHashtable_UserDataType < T > = * mut T ; pub type nsClassHashtable_base_type = u8 ; # [ repr ( C ) ] pub struct nsPresArena { pub mFreeLists : [ root :: nsPresArena_FreeList ; 211usize ] , pub mPool : [ u64 ; 5usize ] , pub mArenaRefPtrs : [ u64 ; 4usize ] , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsPresArena_FreeList { pub mEntries : root :: nsTArray < * mut :: std :: os :: raw :: c_void > , pub mEntrySize : usize , pub mEntriesEverAllocated : usize , } # [ test ] fn bindgen_test_layout_nsPresArena_FreeList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPresArena_FreeList > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsPresArena_FreeList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPresArena_FreeList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPresArena_FreeList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresArena_FreeList ) ) . mEntries as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresArena_FreeList ) , "::" , stringify ! ( mEntries ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresArena_FreeList ) ) . mEntrySize as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresArena_FreeList ) , "::" , stringify ! ( mEntrySize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresArena_FreeList ) ) . mEntriesEverAllocated as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresArena_FreeList ) , "::" , stringify ! ( mEntriesEverAllocated ) ) ) ; } # [ test ] fn bindgen_test_layout_nsPresArena ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPresArena > ( ) , 5136usize , concat ! ( "Size of: " , stringify ! ( nsPresArena ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPresArena > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPresArena ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresArena ) ) . mFreeLists as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresArena ) , "::" , stringify ! ( mFreeLists ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresArena ) ) . mPool as * const _ as usize } , 5064usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresArena ) , "::" , stringify ! ( mPool ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresArena ) ) . mArenaRefPtrs as * const _ as usize } , 5104usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresArena ) , "::" , stringify ! ( mArenaRefPtrs ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct imgINotificationObserver { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct imgINotificationObserver_COMTypeInfo { pub _address : u8 , } pub const imgINotificationObserver_SIZE_AVAILABLE : root :: imgINotificationObserver__bindgen_ty_1 = 1 ; pub const imgINotificationObserver_FRAME_UPDATE : root :: imgINotificationObserver__bindgen_ty_1 = 2 ; pub const imgINotificationObserver_FRAME_COMPLETE : root :: imgINotificationObserver__bindgen_ty_1 = 3 ; pub const imgINotificationObserver_LOAD_COMPLETE : root :: imgINotificationObserver__bindgen_ty_1 = 4 ; pub const imgINotificationObserver_DECODE_COMPLETE : root :: imgINotificationObserver__bindgen_ty_1 = 5 ; pub const imgINotificationObserver_DISCARD : root :: imgINotificationObserver__bindgen_ty_1 = 6 ; pub const imgINotificationObserver_UNLOCKED_DRAW : root :: imgINotificationObserver__bindgen_ty_1 = 7 ; pub const imgINotificationObserver_IS_ANIMATED : root :: imgINotificationObserver__bindgen_ty_1 = 8 ; pub const imgINotificationObserver_HAS_TRANSPARENCY : root :: imgINotificationObserver__bindgen_ty_1 = 9 ; pub type imgINotificationObserver__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_imgINotificationObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < imgINotificationObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( imgINotificationObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < imgINotificationObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( imgINotificationObserver ) ) ) ; } impl Clone for imgINotificationObserver { fn clone ( & self ) -> Self { * self } }
- /// Mutation observer interface
+ /// @see nsInterfaceHashtable, nsClassHashtable
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsClassHashtable {
+ pub _address: u8,
+ }
+ pub type nsClassHashtable_KeyType = [u8; 0usize];
+ pub type nsClassHashtable_UserDataType<T> = *mut T;
+ pub type nsClassHashtable_base_type = u8;
+ #[repr(C)]
+ pub struct nsPresArena {
+ pub mFreeLists: [root::nsPresArena_FreeList; 211usize],
+ pub mPool: [u64; 5usize],
+ pub mArenaRefPtrs: [u64; 4usize],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsPresArena_FreeList {
+ pub mEntries: root::nsTArray<*mut ::std::os::raw::c_void>,
+ pub mEntrySize: usize,
+ pub mEntriesEverAllocated: usize,
+ }
+ #[test]
+ fn bindgen_test_layout_nsPresArena_FreeList() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPresArena_FreeList>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsPresArena_FreeList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPresArena_FreeList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPresArena_FreeList))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresArena_FreeList>())).mEntries as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresArena_FreeList),
+ "::",
+ stringify!(mEntries)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresArena_FreeList>())).mEntrySize as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresArena_FreeList),
+ "::",
+ stringify!(mEntrySize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresArena_FreeList>())).mEntriesEverAllocated as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresArena_FreeList),
+ "::",
+ stringify!(mEntriesEverAllocated)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_nsPresArena() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPresArena>(),
+ 5136usize,
+ concat!("Size of: ", stringify!(nsPresArena))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPresArena>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPresArena))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresArena>())).mFreeLists as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresArena),
+ "::",
+ stringify!(mFreeLists)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresArena>())).mPool as *const _ as usize },
+ 5064usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresArena),
+ "::",
+ stringify!(mPool)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresArena>())).mArenaRefPtrs as *const _ as usize },
+ 5104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresArena),
+ "::",
+ stringify!(mArenaRefPtrs)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct imgINotificationObserver {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct imgINotificationObserver_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const imgINotificationObserver_SIZE_AVAILABLE:
+ root::imgINotificationObserver__bindgen_ty_1 = 1;
+ pub const imgINotificationObserver_FRAME_UPDATE: root::imgINotificationObserver__bindgen_ty_1 =
+ 2;
+ pub const imgINotificationObserver_FRAME_COMPLETE:
+ root::imgINotificationObserver__bindgen_ty_1 = 3;
+ pub const imgINotificationObserver_LOAD_COMPLETE: root::imgINotificationObserver__bindgen_ty_1 =
+ 4;
+ pub const imgINotificationObserver_DECODE_COMPLETE:
+ root::imgINotificationObserver__bindgen_ty_1 = 5;
+ pub const imgINotificationObserver_DISCARD: root::imgINotificationObserver__bindgen_ty_1 = 6;
+ pub const imgINotificationObserver_UNLOCKED_DRAW: root::imgINotificationObserver__bindgen_ty_1 =
+ 7;
+ pub const imgINotificationObserver_IS_ANIMATED: root::imgINotificationObserver__bindgen_ty_1 =
+ 8;
+ pub const imgINotificationObserver_HAS_TRANSPARENCY:
+ root::imgINotificationObserver__bindgen_ty_1 = 9;
+ pub type imgINotificationObserver__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_imgINotificationObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<imgINotificationObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(imgINotificationObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<imgINotificationObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(imgINotificationObserver))
+ );
+ }
+ impl Clone for imgINotificationObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Mutation observer interface
///
/// See nsINode::AddMutationObserver, nsINode::RemoveMutationObserver for how to
/// attach or remove your observers.
@@ -847,9 +18486,64 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// during the _last_ nsIDocumentObserver::EndUpdate notification. The
/// expection for this is ParentChainChanged, where mutations should be
/// done from an async event, as the notification might not be
- /// surrounded by BeginUpdate/EndUpdate calls.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIMutationObserver { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIMutationObserver_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIMutationObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIMutationObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIMutationObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIMutationObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIMutationObserver ) ) ) ; } impl Clone for nsIMutationObserver { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDocumentObserver { pub _base : root :: nsIMutationObserver , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDocumentObserver_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDocumentObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocumentObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDocumentObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocumentObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocumentObserver ) ) ) ; } impl Clone for nsIDocumentObserver { fn clone ( & self ) -> Self { * self } }
- /// There are two advantages to inheriting from nsStubDocumentObserver
+ /// surrounded by BeginUpdate/EndUpdate calls.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIMutationObserver {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIMutationObserver_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIMutationObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIMutationObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIMutationObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIMutationObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIMutationObserver))
+ );
+ }
+ impl Clone for nsIMutationObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDocumentObserver {
+ pub _base: root::nsIMutationObserver,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDocumentObserver_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocumentObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocumentObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIDocumentObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocumentObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDocumentObserver))
+ );
+ }
+ impl Clone for nsIDocumentObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// There are two advantages to inheriting from nsStubDocumentObserver
/// rather than directly from nsIDocumentObserver:
/// 1. smaller compiled code size (since there's no need for the code
/// for the empty virtual function implementations for every
@@ -857,9 +18551,148 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// 2. the performance of document's loop over observers benefits from
/// the fact that more of the functions called are the same (which
/// can reduce instruction cache misses and perhaps improve branch
- /// prediction)
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStubDocumentObserver { pub _base : root :: nsIDocumentObserver , } # [ test ] fn bindgen_test_layout_nsStubDocumentObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStubDocumentObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStubDocumentObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStubDocumentObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStubDocumentObserver ) ) ) ; } impl Clone for nsStubDocumentObserver { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsDocShell { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsViewManager { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsFrameSelection { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsCSSFrameConstructor { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AutoWeakFrame { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct WeakFrame { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsRefreshDriver { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct CapturingContentInfo { pub mAllowed : bool , pub mPointerLock : bool , pub mRetargetToElement : bool , pub mPreventDrag : bool , pub mContent : root :: mozilla :: StaticRefPtr < root :: nsIContent > , } # [ test ] fn bindgen_test_layout_CapturingContentInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CapturingContentInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( CapturingContentInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CapturingContentInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CapturingContentInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CapturingContentInfo ) ) . mAllowed as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CapturingContentInfo ) , "::" , stringify ! ( mAllowed ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CapturingContentInfo ) ) . mPointerLock as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( CapturingContentInfo ) , "::" , stringify ! ( mPointerLock ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CapturingContentInfo ) ) . mRetargetToElement as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( CapturingContentInfo ) , "::" , stringify ! ( mRetargetToElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CapturingContentInfo ) ) . mPreventDrag as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( CapturingContentInfo ) , "::" , stringify ! ( mPreventDrag ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CapturingContentInfo ) ) . mContent as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( CapturingContentInfo ) , "::" , stringify ! ( mContent ) ) ) ; }
- /// Presentation shell interface. Presentation shells are the
+ /// prediction)
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStubDocumentObserver {
+ pub _base: root::nsIDocumentObserver,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStubDocumentObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStubDocumentObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStubDocumentObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStubDocumentObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStubDocumentObserver))
+ );
+ }
+ impl Clone for nsStubDocumentObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsDocShell {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsViewManager {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsFrameSelection {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsCSSFrameConstructor {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct AutoWeakFrame {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct WeakFrame {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsRefreshDriver {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct CapturingContentInfo {
+ pub mAllowed: bool,
+ pub mPointerLock: bool,
+ pub mRetargetToElement: bool,
+ pub mPreventDrag: bool,
+ pub mContent: root::mozilla::StaticRefPtr<root::nsIContent>,
+ }
+ #[test]
+ fn bindgen_test_layout_CapturingContentInfo() {
+ assert_eq!(
+ ::std::mem::size_of::<CapturingContentInfo>(),
+ 16usize,
+ concat!("Size of: ", stringify!(CapturingContentInfo))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CapturingContentInfo>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CapturingContentInfo))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CapturingContentInfo>())).mAllowed as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CapturingContentInfo),
+ "::",
+ stringify!(mAllowed)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CapturingContentInfo>())).mPointerLock as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CapturingContentInfo),
+ "::",
+ stringify!(mPointerLock)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CapturingContentInfo>())).mRetargetToElement as *const _
+ as usize
+ },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CapturingContentInfo),
+ "::",
+ stringify!(mRetargetToElement)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CapturingContentInfo>())).mPreventDrag as *const _ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CapturingContentInfo),
+ "::",
+ stringify!(mPreventDrag)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CapturingContentInfo>())).mContent as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CapturingContentInfo),
+ "::",
+ stringify!(mContent)
+ )
+ );
+ }
+ /// Presentation shell interface. Presentation shells are the
/// controlling point for managing the presentation of a document. The
/// presentation shell holds a live reference to the document, the
/// presentation context, the style manager, the style set and the root
@@ -867,27 +18700,1723 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// When this object is Release'd, it will release the document, the
/// presentation context, the style manager, the style set and the root
- /// frame.
- # [ repr ( C ) ] pub struct nsIPresShell { pub _base : root :: nsStubDocumentObserver , pub mDocument : root :: nsCOMPtr , pub mPresContext : root :: RefPtr < root :: nsPresContext > , pub mStyleSet : root :: mozilla :: StyleSetHandle , pub mFrameConstructor : * mut root :: nsCSSFrameConstructor , pub mViewManager : * mut root :: nsViewManager , pub mFrameArena : root :: nsPresArena , pub mSelection : root :: RefPtr < root :: nsFrameSelection > , pub mFrameManager : * mut root :: nsFrameManagerBase , pub mForwardingContainer : u64 , pub mDocAccessible : * mut root :: mozilla :: a11y :: DocAccessible , pub mReflowContinueTimer : root :: nsCOMPtr , pub mPaintCount : u64 , pub mScrollPositionClampingScrollPortSize : root :: nsSize , pub mAutoWeakFrames : * mut root :: AutoWeakFrame , pub mWeakFrames : [ u64 ; 4usize ] , pub mStyleCause : root :: UniqueProfilerBacktrace , pub mReflowCause : root :: UniqueProfilerBacktrace , pub mCanvasBackgroundColor : root :: nscolor , pub mResolution : [ u32 ; 2usize ] , pub mSelectionFlags : i16 , pub mChangeNestCount : u16 , pub mRenderFlags : root :: nsIPresShell_RenderFlags , pub _bitfield_1 : [ u8 ; 3usize ] , pub mPresShellId : u32 , pub mFontSizeInflationEmPerLine : u32 , pub mFontSizeInflationMinTwips : u32 , pub mFontSizeInflationLineThreshold : u32 , pub mFontSizeInflationForceEnabled : bool , pub mFontSizeInflationDisabledInMasterProcess : bool , pub mFontSizeInflationEnabled : bool , pub mFontSizeInflationEnabledIsDirty : bool , pub mPaintingIsFrozen : bool , pub mIsNeverPainting : bool , pub mInFlush : bool , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIPresShell_COMTypeInfo { pub _address : u8 , } pub type nsIPresShell_LayerManager = root :: mozilla :: layers :: LayerManager ; pub type nsIPresShell_SourceSurface = root :: mozilla :: gfx :: SourceSurface ; pub const nsIPresShell_eRenderFlag_STATE_IGNORING_VIEWPORT_SCROLLING : root :: nsIPresShell_eRenderFlag = 1 ; pub const nsIPresShell_eRenderFlag_STATE_DRAWWINDOW_NOT_FLUSHING : root :: nsIPresShell_eRenderFlag = 2 ; pub type nsIPresShell_eRenderFlag = :: std :: os :: raw :: c_uint ; pub type nsIPresShell_RenderFlags = u8 ; pub const nsIPresShell_ResizeReflowOptions_eBSizeExact : root :: nsIPresShell_ResizeReflowOptions = 0 ; pub const nsIPresShell_ResizeReflowOptions_eBSizeLimit : root :: nsIPresShell_ResizeReflowOptions = 1 ; pub type nsIPresShell_ResizeReflowOptions = u32 ; pub const nsIPresShell_ScrollDirection_eHorizontal : root :: nsIPresShell_ScrollDirection = 0 ; pub const nsIPresShell_ScrollDirection_eVertical : root :: nsIPresShell_ScrollDirection = 1 ; pub const nsIPresShell_ScrollDirection_eEither : root :: nsIPresShell_ScrollDirection = 2 ; pub type nsIPresShell_ScrollDirection = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_IntrinsicDirty_eResize : root :: nsIPresShell_IntrinsicDirty = 0 ; pub const nsIPresShell_IntrinsicDirty_eTreeChange : root :: nsIPresShell_IntrinsicDirty = 1 ; pub const nsIPresShell_IntrinsicDirty_eStyleChange : root :: nsIPresShell_IntrinsicDirty = 2 ; pub type nsIPresShell_IntrinsicDirty = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_ReflowRootHandling_ePositionOrSizeChange : root :: nsIPresShell_ReflowRootHandling = 0 ; pub const nsIPresShell_ReflowRootHandling_eNoPositionOrSizeChange : root :: nsIPresShell_ReflowRootHandling = 1 ; pub const nsIPresShell_ReflowRootHandling_eInferFromBitToAdd : root :: nsIPresShell_ReflowRootHandling = 2 ; pub type nsIPresShell_ReflowRootHandling = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_SCROLL_TOP : root :: nsIPresShell__bindgen_ty_1 = 0 ; pub const nsIPresShell_SCROLL_BOTTOM : root :: nsIPresShell__bindgen_ty_1 = 100 ; pub const nsIPresShell_SCROLL_LEFT : root :: nsIPresShell__bindgen_ty_1 = 0 ; pub const nsIPresShell_SCROLL_RIGHT : root :: nsIPresShell__bindgen_ty_1 = 100 ; pub const nsIPresShell_SCROLL_CENTER : root :: nsIPresShell__bindgen_ty_1 = 50 ; pub const nsIPresShell_SCROLL_MINIMUM : root :: nsIPresShell__bindgen_ty_1 = -1 ; pub type nsIPresShell__bindgen_ty_1 = :: std :: os :: raw :: c_int ; pub const nsIPresShell_WhenToScroll_SCROLL_ALWAYS : root :: nsIPresShell_WhenToScroll = 0 ; pub const nsIPresShell_WhenToScroll_SCROLL_IF_NOT_VISIBLE : root :: nsIPresShell_WhenToScroll = 1 ; pub const nsIPresShell_WhenToScroll_SCROLL_IF_NOT_FULLY_VISIBLE : root :: nsIPresShell_WhenToScroll = 2 ; pub type nsIPresShell_WhenToScroll = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIPresShell_ScrollAxis { pub _bindgen_opaque_blob : u32 , } # [ test ] fn bindgen_test_layout_nsIPresShell_ScrollAxis ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIPresShell_ScrollAxis > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( nsIPresShell_ScrollAxis ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIPresShell_ScrollAxis > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsIPresShell_ScrollAxis ) ) ) ; } impl Clone for nsIPresShell_ScrollAxis { fn clone ( & self ) -> Self { * self } } pub const nsIPresShell_SCROLL_FIRST_ANCESTOR_ONLY : root :: nsIPresShell__bindgen_ty_2 = 1 ; pub const nsIPresShell_SCROLL_OVERFLOW_HIDDEN : root :: nsIPresShell__bindgen_ty_2 = 2 ; pub const nsIPresShell_SCROLL_NO_PARENT_FRAMES : root :: nsIPresShell__bindgen_ty_2 = 4 ; pub const nsIPresShell_SCROLL_SMOOTH : root :: nsIPresShell__bindgen_ty_2 = 8 ; pub const nsIPresShell_SCROLL_SMOOTH_AUTO : root :: nsIPresShell__bindgen_ty_2 = 16 ; pub type nsIPresShell__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_RENDER_IS_UNTRUSTED : root :: nsIPresShell__bindgen_ty_3 = 1 ; pub const nsIPresShell_RENDER_IGNORE_VIEWPORT_SCROLLING : root :: nsIPresShell__bindgen_ty_3 = 2 ; pub const nsIPresShell_RENDER_CARET : root :: nsIPresShell__bindgen_ty_3 = 4 ; pub const nsIPresShell_RENDER_USE_WIDGET_LAYERS : root :: nsIPresShell__bindgen_ty_3 = 8 ; pub const nsIPresShell_RENDER_ASYNC_DECODE_IMAGES : root :: nsIPresShell__bindgen_ty_3 = 16 ; pub const nsIPresShell_RENDER_DOCUMENT_RELATIVE : root :: nsIPresShell__bindgen_ty_3 = 32 ; pub const nsIPresShell_RENDER_DRAWWINDOW_NOT_FLUSHING : root :: nsIPresShell__bindgen_ty_3 = 64 ; pub type nsIPresShell__bindgen_ty_3 = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_RENDER_IS_IMAGE : root :: nsIPresShell__bindgen_ty_4 = 256 ; pub const nsIPresShell_RENDER_AUTO_SCALE : root :: nsIPresShell__bindgen_ty_4 = 128 ; pub type nsIPresShell__bindgen_ty_4 = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_FORCE_DRAW : root :: nsIPresShell__bindgen_ty_5 = 1 ; pub const nsIPresShell_ADD_FOR_SUBDOC : root :: nsIPresShell__bindgen_ty_5 = 2 ; pub const nsIPresShell_APPEND_UNSCROLLED_ONLY : root :: nsIPresShell__bindgen_ty_5 = 4 ; pub type nsIPresShell__bindgen_ty_5 = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_PaintFlags_PAINT_LAYERS : root :: nsIPresShell_PaintFlags = 1 ; pub const nsIPresShell_PaintFlags_PAINT_COMPOSITE : root :: nsIPresShell_PaintFlags = 2 ; pub const nsIPresShell_PaintFlags_PAINT_SYNC_DECODE_IMAGES : root :: nsIPresShell_PaintFlags = 4 ; pub type nsIPresShell_PaintFlags = :: std :: os :: raw :: c_uint ; pub const nsIPresShell_PaintType_PAINT_DEFAULT : root :: nsIPresShell_PaintType = 0 ; pub const nsIPresShell_PaintType_PAINT_DELAYED_COMPRESS : root :: nsIPresShell_PaintType = 1 ; pub type nsIPresShell_PaintType = :: std :: os :: raw :: c_uint ; extern "C" {
- # [ link_name = "\u{1}_ZN12nsIPresShell12gCaptureInfoE" ]
- pub static mut nsIPresShell_gCaptureInfo : root :: CapturingContentInfo ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN12nsIPresShell14gKeyDownTargetE" ]
- pub static mut nsIPresShell_gKeyDownTarget : * mut root :: nsIContent ;
-} # [ test ] fn bindgen_test_layout_nsIPresShell ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIPresShell > ( ) , 5344usize , concat ! ( "Size of: " , stringify ! ( nsIPresShell ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIPresShell > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIPresShell ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mDocument as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mDocument ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPresContext as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPresContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mStyleSet as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mStyleSet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFrameConstructor as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFrameConstructor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mViewManager as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mViewManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFrameArena as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFrameArena ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mSelection as * const _ as usize } , 5184usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mSelection ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFrameManager as * const _ as usize } , 5192usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFrameManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mForwardingContainer as * const _ as usize } , 5200usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mForwardingContainer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mDocAccessible as * const _ as usize } , 5208usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mDocAccessible ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mReflowContinueTimer as * const _ as usize } , 5216usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mReflowContinueTimer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPaintCount as * const _ as usize } , 5224usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPaintCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mScrollPositionClampingScrollPortSize as * const _ as usize } , 5232usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mScrollPositionClampingScrollPortSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mAutoWeakFrames as * const _ as usize } , 5240usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mAutoWeakFrames ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mWeakFrames as * const _ as usize } , 5248usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mWeakFrames ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mStyleCause as * const _ as usize } , 5280usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mStyleCause ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mReflowCause as * const _ as usize } , 5288usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mReflowCause ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mCanvasBackgroundColor as * const _ as usize } , 5296usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mCanvasBackgroundColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mResolution as * const _ as usize } , 5300usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mResolution ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mSelectionFlags as * const _ as usize } , 5308usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mSelectionFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mChangeNestCount as * const _ as usize } , 5310usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mChangeNestCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mRenderFlags as * const _ as usize } , 5312usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mRenderFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPresShellId as * const _ as usize } , 5316usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPresShellId ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEmPerLine as * const _ as usize } , 5320usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEmPerLine ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationMinTwips as * const _ as usize } , 5324usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationMinTwips ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationLineThreshold as * const _ as usize } , 5328usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationLineThreshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationForceEnabled as * const _ as usize } , 5332usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationForceEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationDisabledInMasterProcess as * const _ as usize } , 5333usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationDisabledInMasterProcess ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEnabled as * const _ as usize } , 5334usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEnabledIsDirty as * const _ as usize } , 5335usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEnabledIsDirty ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPaintingIsFrozen as * const _ as usize } , 5336usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPaintingIsFrozen ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mIsNeverPainting as * const _ as usize } , 5337usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mIsNeverPainting ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mInFlush as * const _ as usize } , 5338usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mInFlush ) ) ) ; } impl nsIPresShell { # [ inline ] pub fn mDidInitialize ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x1 as u32 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mDidInitialize ( & mut self , val : bool ) { let mask = 0x1 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsDestroying ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x2 as u32 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsDestroying ( & mut self , val : bool ) { let mask = 0x2 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsReflowing ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x4 as u32 ; let val = ( unit_field_val & mask ) >> 2usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsReflowing ( & mut self , val : bool ) { let mask = 0x4 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 2usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsObservingDocument ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x8 as u32 ; let val = ( unit_field_val & mask ) >> 3usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsObservingDocument ( & mut self , val : bool ) { let mask = 0x8 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 3usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsDocumentGone ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x10 as u32 ; let val = ( unit_field_val & mask ) >> 4usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsDocumentGone ( & mut self , val : bool ) { let mask = 0x10 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 4usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mPaintingSuppressed ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x20 as u32 ; let val = ( unit_field_val & mask ) >> 5usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mPaintingSuppressed ( & mut self , val : bool ) { let mask = 0x20 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 5usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsActive ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x40 as u32 ; let val = ( unit_field_val & mask ) >> 6usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsActive ( & mut self , val : bool ) { let mask = 0x40 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 6usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mFrozen ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x80 as u32 ; let val = ( unit_field_val & mask ) >> 7usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mFrozen ( & mut self , val : bool ) { let mask = 0x80 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 7usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIsFirstPaint ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x100 as u32 ; let val = ( unit_field_val & mask ) >> 8usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsFirstPaint ( & mut self , val : bool ) { let mask = 0x100 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 8usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mObservesMutationsForPrint ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x200 as u32 ; let val = ( unit_field_val & mask ) >> 9usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mObservesMutationsForPrint ( & mut self , val : bool ) { let mask = 0x200 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 9usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mWasLastReflowInterrupted ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x400 as u32 ; let val = ( unit_field_val & mask ) >> 10usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mWasLastReflowInterrupted ( & mut self , val : bool ) { let mask = 0x400 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 10usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mScrollPositionClampingScrollPortSizeSet ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x800 as u32 ; let val = ( unit_field_val & mask ) >> 11usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mScrollPositionClampingScrollPortSizeSet ( & mut self , val : bool ) { let mask = 0x800 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 11usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mNeedLayoutFlush ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x1000 as u32 ; let val = ( unit_field_val & mask ) >> 12usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mNeedLayoutFlush ( & mut self , val : bool ) { let mask = 0x1000 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 12usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mNeedStyleFlush ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x2000 as u32 ; let val = ( unit_field_val & mask ) >> 13usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mNeedStyleFlush ( & mut self , val : bool ) { let mask = 0x2000 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 13usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mObservingStyleFlushes ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x4000 as u32 ; let val = ( unit_field_val & mask ) >> 14usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mObservingStyleFlushes ( & mut self , val : bool ) { let mask = 0x4000 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 14usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mObservingLayoutFlushes ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x8000 as u32 ; let val = ( unit_field_val & mask ) >> 15usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mObservingLayoutFlushes ( & mut self , val : bool ) { let mask = 0x8000 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 15usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mNeedThrottledAnimationFlush ( & self ) -> bool { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0x10000 as u32 ; let val = ( unit_field_val & mask ) >> 16usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mNeedThrottledAnimationFlush ( & mut self , val : bool ) { let mask = 0x10000 as u32 ; let val = val as u8 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 16usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mDidInitialize : bool , mIsDestroying : bool , mIsReflowing : bool , mIsObservingDocument : bool , mIsDocumentGone : bool , mPaintingSuppressed : bool , mIsActive : bool , mFrozen : bool , mIsFirstPaint : bool , mObservesMutationsForPrint : bool , mWasLastReflowInterrupted : bool , mScrollPositionClampingScrollPortSizeSet : bool , mNeedLayoutFlush : bool , mNeedStyleFlush : bool , mObservingStyleFlushes : bool , mObservingLayoutFlushes : bool , mNeedThrottledAnimationFlush : bool ) -> u32 { ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 | ( ( mDidInitialize as u8 as u32 ) << 0usize ) & ( 0x1 as u32 ) ) | ( ( mIsDestroying as u8 as u32 ) << 1usize ) & ( 0x2 as u32 ) ) | ( ( mIsReflowing as u8 as u32 ) << 2usize ) & ( 0x4 as u32 ) ) | ( ( mIsObservingDocument as u8 as u32 ) << 3usize ) & ( 0x8 as u32 ) ) | ( ( mIsDocumentGone as u8 as u32 ) << 4usize ) & ( 0x10 as u32 ) ) | ( ( mPaintingSuppressed as u8 as u32 ) << 5usize ) & ( 0x20 as u32 ) ) | ( ( mIsActive as u8 as u32 ) << 6usize ) & ( 0x40 as u32 ) ) | ( ( mFrozen as u8 as u32 ) << 7usize ) & ( 0x80 as u32 ) ) | ( ( mIsFirstPaint as u8 as u32 ) << 8usize ) & ( 0x100 as u32 ) ) | ( ( mObservesMutationsForPrint as u8 as u32 ) << 9usize ) & ( 0x200 as u32 ) ) | ( ( mWasLastReflowInterrupted as u8 as u32 ) << 10usize ) & ( 0x400 as u32 ) ) | ( ( mScrollPositionClampingScrollPortSizeSet as u8 as u32 ) << 11usize ) & ( 0x800 as u32 ) ) | ( ( mNeedLayoutFlush as u8 as u32 ) << 12usize ) & ( 0x1000 as u32 ) ) | ( ( mNeedStyleFlush as u8 as u32 ) << 13usize ) & ( 0x2000 as u32 ) ) | ( ( mObservingStyleFlushes as u8 as u32 ) << 14usize ) & ( 0x4000 as u32 ) ) | ( ( mObservingLayoutFlushes as u8 as u32 ) << 15usize ) & ( 0x8000 as u32 ) ) | ( ( mNeedThrottledAnimationFlush as u8 as u32 ) << 16usize ) & ( 0x10000 as u32 ) ) } }
- /// The signature of the timer callback function passed to initWithFuncCallback.
+ /// frame.
+ #[repr(C)]
+ pub struct nsIPresShell {
+ pub _base: root::nsStubDocumentObserver,
+ pub mDocument: root::nsCOMPtr,
+ pub mPresContext: root::RefPtr<root::nsPresContext>,
+ pub mStyleSet: root::mozilla::StyleSetHandle,
+ pub mFrameConstructor: *mut root::nsCSSFrameConstructor,
+ pub mViewManager: *mut root::nsViewManager,
+ pub mFrameArena: root::nsPresArena,
+ pub mSelection: root::RefPtr<root::nsFrameSelection>,
+ pub mFrameManager: *mut root::nsFrameManagerBase,
+ pub mForwardingContainer: u64,
+ pub mDocAccessible: *mut root::mozilla::a11y::DocAccessible,
+ pub mReflowContinueTimer: root::nsCOMPtr,
+ pub mPaintCount: u64,
+ pub mScrollPositionClampingScrollPortSize: root::nsSize,
+ pub mAutoWeakFrames: *mut root::AutoWeakFrame,
+ pub mWeakFrames: [u64; 4usize],
+ pub mStyleCause: root::UniqueProfilerBacktrace,
+ pub mReflowCause: root::UniqueProfilerBacktrace,
+ pub mCanvasBackgroundColor: root::nscolor,
+ pub mResolution: [u32; 2usize],
+ pub mSelectionFlags: i16,
+ pub mChangeNestCount: u16,
+ pub mRenderFlags: root::nsIPresShell_RenderFlags,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 3usize], u8>,
+ pub mPresShellId: u32,
+ pub mFontSizeInflationEmPerLine: u32,
+ pub mFontSizeInflationMinTwips: u32,
+ pub mFontSizeInflationLineThreshold: u32,
+ pub mFontSizeInflationForceEnabled: bool,
+ pub mFontSizeInflationDisabledInMasterProcess: bool,
+ pub mFontSizeInflationEnabled: bool,
+ pub mFontSizeInflationEnabledIsDirty: bool,
+ pub mPaintingIsFrozen: bool,
+ pub mIsNeverPainting: bool,
+ pub mInFlush: bool,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIPresShell_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub type nsIPresShell_LayerManager = root::mozilla::layers::LayerManager;
+ pub type nsIPresShell_SourceSurface = root::mozilla::gfx::SourceSurface;
+ pub const nsIPresShell_eRenderFlag_STATE_IGNORING_VIEWPORT_SCROLLING:
+ root::nsIPresShell_eRenderFlag = 1;
+ pub const nsIPresShell_eRenderFlag_STATE_DRAWWINDOW_NOT_FLUSHING:
+ root::nsIPresShell_eRenderFlag = 2;
+ pub type nsIPresShell_eRenderFlag = u32;
+ pub type nsIPresShell_RenderFlags = u8;
+ pub const nsIPresShell_ResizeReflowOptions_eBSizeExact: root::nsIPresShell_ResizeReflowOptions =
+ 0;
+ pub const nsIPresShell_ResizeReflowOptions_eBSizeLimit: root::nsIPresShell_ResizeReflowOptions =
+ 1;
+ pub type nsIPresShell_ResizeReflowOptions = u32;
+ pub const nsIPresShell_ScrollDirection_eHorizontal: root::nsIPresShell_ScrollDirection = 0;
+ pub const nsIPresShell_ScrollDirection_eVertical: root::nsIPresShell_ScrollDirection = 1;
+ pub const nsIPresShell_ScrollDirection_eEither: root::nsIPresShell_ScrollDirection = 2;
+ pub type nsIPresShell_ScrollDirection = u32;
+ pub const nsIPresShell_IntrinsicDirty_eResize: root::nsIPresShell_IntrinsicDirty = 0;
+ pub const nsIPresShell_IntrinsicDirty_eTreeChange: root::nsIPresShell_IntrinsicDirty = 1;
+ pub const nsIPresShell_IntrinsicDirty_eStyleChange: root::nsIPresShell_IntrinsicDirty = 2;
+ pub type nsIPresShell_IntrinsicDirty = u32;
+ pub const nsIPresShell_ReflowRootHandling_ePositionOrSizeChange:
+ root::nsIPresShell_ReflowRootHandling = 0;
+ pub const nsIPresShell_ReflowRootHandling_eNoPositionOrSizeChange:
+ root::nsIPresShell_ReflowRootHandling = 1;
+ pub const nsIPresShell_ReflowRootHandling_eInferFromBitToAdd:
+ root::nsIPresShell_ReflowRootHandling = 2;
+ pub type nsIPresShell_ReflowRootHandling = u32;
+ pub const nsIPresShell_SCROLL_TOP: root::nsIPresShell__bindgen_ty_1 = 0;
+ pub const nsIPresShell_SCROLL_BOTTOM: root::nsIPresShell__bindgen_ty_1 = 100;
+ pub const nsIPresShell_SCROLL_LEFT: root::nsIPresShell__bindgen_ty_1 = 0;
+ pub const nsIPresShell_SCROLL_RIGHT: root::nsIPresShell__bindgen_ty_1 = 100;
+ pub const nsIPresShell_SCROLL_CENTER: root::nsIPresShell__bindgen_ty_1 = 50;
+ pub const nsIPresShell_SCROLL_MINIMUM: root::nsIPresShell__bindgen_ty_1 = -1;
+ pub type nsIPresShell__bindgen_ty_1 = i32;
+ pub const nsIPresShell_WhenToScroll_SCROLL_ALWAYS: root::nsIPresShell_WhenToScroll = 0;
+ pub const nsIPresShell_WhenToScroll_SCROLL_IF_NOT_VISIBLE: root::nsIPresShell_WhenToScroll = 1;
+ pub const nsIPresShell_WhenToScroll_SCROLL_IF_NOT_FULLY_VISIBLE:
+ root::nsIPresShell_WhenToScroll = 2;
+ pub type nsIPresShell_WhenToScroll = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIPresShell_ScrollAxis {
+ pub _bindgen_opaque_blob: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIPresShell_ScrollAxis() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIPresShell_ScrollAxis>(),
+ 4usize,
+ concat!("Size of: ", stringify!(nsIPresShell_ScrollAxis))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIPresShell_ScrollAxis>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsIPresShell_ScrollAxis))
+ );
+ }
+ impl Clone for nsIPresShell_ScrollAxis {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const nsIPresShell_SCROLL_FIRST_ANCESTOR_ONLY: root::nsIPresShell__bindgen_ty_2 = 1;
+ pub const nsIPresShell_SCROLL_OVERFLOW_HIDDEN: root::nsIPresShell__bindgen_ty_2 = 2;
+ pub const nsIPresShell_SCROLL_NO_PARENT_FRAMES: root::nsIPresShell__bindgen_ty_2 = 4;
+ pub const nsIPresShell_SCROLL_SMOOTH: root::nsIPresShell__bindgen_ty_2 = 8;
+ pub const nsIPresShell_SCROLL_SMOOTH_AUTO: root::nsIPresShell__bindgen_ty_2 = 16;
+ pub type nsIPresShell__bindgen_ty_2 = u32;
+ pub const nsIPresShell_RENDER_IS_UNTRUSTED: root::nsIPresShell__bindgen_ty_3 = 1;
+ pub const nsIPresShell_RENDER_IGNORE_VIEWPORT_SCROLLING: root::nsIPresShell__bindgen_ty_3 = 2;
+ pub const nsIPresShell_RENDER_CARET: root::nsIPresShell__bindgen_ty_3 = 4;
+ pub const nsIPresShell_RENDER_USE_WIDGET_LAYERS: root::nsIPresShell__bindgen_ty_3 = 8;
+ pub const nsIPresShell_RENDER_ASYNC_DECODE_IMAGES: root::nsIPresShell__bindgen_ty_3 = 16;
+ pub const nsIPresShell_RENDER_DOCUMENT_RELATIVE: root::nsIPresShell__bindgen_ty_3 = 32;
+ pub const nsIPresShell_RENDER_DRAWWINDOW_NOT_FLUSHING: root::nsIPresShell__bindgen_ty_3 = 64;
+ pub type nsIPresShell__bindgen_ty_3 = u32;
+ pub const nsIPresShell_RENDER_IS_IMAGE: root::nsIPresShell__bindgen_ty_4 = 256;
+ pub const nsIPresShell_RENDER_AUTO_SCALE: root::nsIPresShell__bindgen_ty_4 = 128;
+ pub type nsIPresShell__bindgen_ty_4 = u32;
+ pub const nsIPresShell_FORCE_DRAW: root::nsIPresShell__bindgen_ty_5 = 1;
+ pub const nsIPresShell_ADD_FOR_SUBDOC: root::nsIPresShell__bindgen_ty_5 = 2;
+ pub const nsIPresShell_APPEND_UNSCROLLED_ONLY: root::nsIPresShell__bindgen_ty_5 = 4;
+ pub type nsIPresShell__bindgen_ty_5 = u32;
+ pub const nsIPresShell_PaintFlags_PAINT_LAYERS: root::nsIPresShell_PaintFlags = 1;
+ pub const nsIPresShell_PaintFlags_PAINT_COMPOSITE: root::nsIPresShell_PaintFlags = 2;
+ pub const nsIPresShell_PaintFlags_PAINT_SYNC_DECODE_IMAGES: root::nsIPresShell_PaintFlags = 4;
+ pub type nsIPresShell_PaintFlags = u32;
+ pub const nsIPresShell_PaintType_PAINT_DEFAULT: root::nsIPresShell_PaintType = 0;
+ pub const nsIPresShell_PaintType_PAINT_DELAYED_COMPRESS: root::nsIPresShell_PaintType = 1;
+ pub type nsIPresShell_PaintType = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN12nsIPresShell12gCaptureInfoE"]
+ pub static mut nsIPresShell_gCaptureInfo: root::CapturingContentInfo;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN12nsIPresShell14gKeyDownTargetE"]
+ pub static mut nsIPresShell_gKeyDownTarget: *mut root::nsIContent;
+ }
+ #[test]
+ fn bindgen_test_layout_nsIPresShell() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIPresShell>(),
+ 5344usize,
+ concat!("Size of: ", stringify!(nsIPresShell))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIPresShell>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIPresShell))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mDocument as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mPresContext as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mPresContext)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mStyleSet as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mStyleSet)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFrameConstructor as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFrameConstructor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mViewManager as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mViewManager)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mFrameArena as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFrameArena)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mSelection as *const _ as usize },
+ 5184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mSelection)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mFrameManager as *const _ as usize },
+ 5192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFrameManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mForwardingContainer as *const _ as usize
+ },
+ 5200usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mForwardingContainer)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mDocAccessible as *const _ as usize },
+ 5208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mDocAccessible)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mReflowContinueTimer as *const _ as usize
+ },
+ 5216usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mReflowContinueTimer)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mPaintCount as *const _ as usize },
+ 5224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mPaintCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mScrollPositionClampingScrollPortSize
+ as *const _ as usize
+ },
+ 5232usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mScrollPositionClampingScrollPortSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mAutoWeakFrames as *const _ as usize
+ },
+ 5240usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mAutoWeakFrames)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mWeakFrames as *const _ as usize },
+ 5248usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mWeakFrames)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mStyleCause as *const _ as usize },
+ 5280usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mStyleCause)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mReflowCause as *const _ as usize },
+ 5288usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mReflowCause)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mCanvasBackgroundColor as *const _ as usize
+ },
+ 5296usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mCanvasBackgroundColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mResolution as *const _ as usize },
+ 5300usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mResolution)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mSelectionFlags as *const _ as usize
+ },
+ 5308usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mSelectionFlags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mChangeNestCount as *const _ as usize
+ },
+ 5310usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mChangeNestCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mRenderFlags as *const _ as usize },
+ 5312usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mRenderFlags)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mPresShellId as *const _ as usize },
+ 5316usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mPresShellId)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationEmPerLine as *const _
+ as usize
+ },
+ 5320usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationEmPerLine)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationMinTwips as *const _
+ as usize
+ },
+ 5324usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationMinTwips)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationLineThreshold as *const _
+ as usize
+ },
+ 5328usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationLineThreshold)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationForceEnabled as *const _
+ as usize
+ },
+ 5332usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationForceEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationDisabledInMasterProcess
+ as *const _ as usize
+ },
+ 5333usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationDisabledInMasterProcess)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationEnabled as *const _
+ as usize
+ },
+ 5334usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mFontSizeInflationEnabledIsDirty
+ as *const _ as usize
+ },
+ 5335usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mFontSizeInflationEnabledIsDirty)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mPaintingIsFrozen as *const _ as usize
+ },
+ 5336usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mPaintingIsFrozen)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIPresShell>())).mIsNeverPainting as *const _ as usize
+ },
+ 5337usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mIsNeverPainting)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIPresShell>())).mInFlush as *const _ as usize },
+ 5338usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIPresShell),
+ "::",
+ stringify!(mInFlush)
+ )
+ );
+ }
+ impl nsIPresShell {
+ #[inline]
+ pub fn mDidInitialize(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mDidInitialize(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsDestroying(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsDestroying(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsReflowing(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsReflowing(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(2usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsObservingDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsObservingDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(3usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsDocumentGone(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsDocumentGone(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(4usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPaintingSuppressed(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mPaintingSuppressed(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(5usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsActive(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsActive(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(6usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFrozen(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mFrozen(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(7usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsFirstPaint(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsFirstPaint(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(8usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mObservesMutationsForPrint(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mObservesMutationsForPrint(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(9usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mWasLastReflowInterrupted(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mWasLastReflowInterrupted(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(10usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mScrollPositionClampingScrollPortSizeSet(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mScrollPositionClampingScrollPortSizeSet(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(11usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mNeedLayoutFlush(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mNeedLayoutFlush(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(12usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mNeedStyleFlush(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mNeedStyleFlush(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(13usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mObservingStyleFlushes(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mObservingStyleFlushes(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(14usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mObservingLayoutFlushes(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mObservingLayoutFlushes(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(15usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mNeedThrottledAnimationFlush(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mNeedThrottledAnimationFlush(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(16usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mDidInitialize: bool,
+ mIsDestroying: bool,
+ mIsReflowing: bool,
+ mIsObservingDocument: bool,
+ mIsDocumentGone: bool,
+ mPaintingSuppressed: bool,
+ mIsActive: bool,
+ mFrozen: bool,
+ mIsFirstPaint: bool,
+ mObservesMutationsForPrint: bool,
+ mWasLastReflowInterrupted: bool,
+ mScrollPositionClampingScrollPortSizeSet: bool,
+ mNeedLayoutFlush: bool,
+ mNeedStyleFlush: bool,
+ mObservingStyleFlushes: bool,
+ mObservingLayoutFlushes: bool,
+ mNeedThrottledAnimationFlush: bool,
+ ) -> root::__BindgenBitfieldUnit<[u8; 3usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 3usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mDidInitialize: u8 = unsafe { ::std::mem::transmute(mDidInitialize) };
+ mDidInitialize as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mIsDestroying: u8 = unsafe { ::std::mem::transmute(mIsDestroying) };
+ mIsDestroying as u64
+ });
+ __bindgen_bitfield_unit.set(2usize, 1u8, {
+ let mIsReflowing: u8 = unsafe { ::std::mem::transmute(mIsReflowing) };
+ mIsReflowing as u64
+ });
+ __bindgen_bitfield_unit.set(3usize, 1u8, {
+ let mIsObservingDocument: u8 =
+ unsafe { ::std::mem::transmute(mIsObservingDocument) };
+ mIsObservingDocument as u64
+ });
+ __bindgen_bitfield_unit.set(4usize, 1u8, {
+ let mIsDocumentGone: u8 = unsafe { ::std::mem::transmute(mIsDocumentGone) };
+ mIsDocumentGone as u64
+ });
+ __bindgen_bitfield_unit.set(5usize, 1u8, {
+ let mPaintingSuppressed: u8 = unsafe { ::std::mem::transmute(mPaintingSuppressed) };
+ mPaintingSuppressed as u64
+ });
+ __bindgen_bitfield_unit.set(6usize, 1u8, {
+ let mIsActive: u8 = unsafe { ::std::mem::transmute(mIsActive) };
+ mIsActive as u64
+ });
+ __bindgen_bitfield_unit.set(7usize, 1u8, {
+ let mFrozen: u8 = unsafe { ::std::mem::transmute(mFrozen) };
+ mFrozen as u64
+ });
+ __bindgen_bitfield_unit.set(8usize, 1u8, {
+ let mIsFirstPaint: u8 = unsafe { ::std::mem::transmute(mIsFirstPaint) };
+ mIsFirstPaint as u64
+ });
+ __bindgen_bitfield_unit.set(9usize, 1u8, {
+ let mObservesMutationsForPrint: u8 =
+ unsafe { ::std::mem::transmute(mObservesMutationsForPrint) };
+ mObservesMutationsForPrint as u64
+ });
+ __bindgen_bitfield_unit.set(10usize, 1u8, {
+ let mWasLastReflowInterrupted: u8 =
+ unsafe { ::std::mem::transmute(mWasLastReflowInterrupted) };
+ mWasLastReflowInterrupted as u64
+ });
+ __bindgen_bitfield_unit.set(11usize, 1u8, {
+ let mScrollPositionClampingScrollPortSizeSet: u8 =
+ unsafe { ::std::mem::transmute(mScrollPositionClampingScrollPortSizeSet) };
+ mScrollPositionClampingScrollPortSizeSet as u64
+ });
+ __bindgen_bitfield_unit.set(12usize, 1u8, {
+ let mNeedLayoutFlush: u8 = unsafe { ::std::mem::transmute(mNeedLayoutFlush) };
+ mNeedLayoutFlush as u64
+ });
+ __bindgen_bitfield_unit.set(13usize, 1u8, {
+ let mNeedStyleFlush: u8 = unsafe { ::std::mem::transmute(mNeedStyleFlush) };
+ mNeedStyleFlush as u64
+ });
+ __bindgen_bitfield_unit.set(14usize, 1u8, {
+ let mObservingStyleFlushes: u8 =
+ unsafe { ::std::mem::transmute(mObservingStyleFlushes) };
+ mObservingStyleFlushes as u64
+ });
+ __bindgen_bitfield_unit.set(15usize, 1u8, {
+ let mObservingLayoutFlushes: u8 =
+ unsafe { ::std::mem::transmute(mObservingLayoutFlushes) };
+ mObservingLayoutFlushes as u64
+ });
+ __bindgen_bitfield_unit.set(16usize, 1u8, {
+ let mNeedThrottledAnimationFlush: u8 =
+ unsafe { ::std::mem::transmute(mNeedThrottledAnimationFlush) };
+ mNeedThrottledAnimationFlush as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ /// The signature of the timer callback function passed to initWithFuncCallback.
/// This is the function that will get called when the timer expires if the
/// timer is initialized via initWithFuncCallback.
///
/// @param aTimer the timer which has expired
- /// @param aClosure opaque parameter passed to initWithFuncCallback
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsITimer { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsITimer_COMTypeInfo { pub _address : u8 , } pub const nsITimer_TYPE_ONE_SHOT : root :: nsITimer__bindgen_ty_1 = 0 ; pub const nsITimer_TYPE_REPEATING_SLACK : root :: nsITimer__bindgen_ty_1 = 1 ; pub const nsITimer_TYPE_REPEATING_PRECISE : root :: nsITimer__bindgen_ty_1 = 2 ; pub const nsITimer_TYPE_REPEATING_PRECISE_CAN_SKIP : root :: nsITimer__bindgen_ty_1 = 3 ; pub const nsITimer_TYPE_REPEATING_SLACK_LOW_PRIORITY : root :: nsITimer__bindgen_ty_1 = 4 ; pub const nsITimer_TYPE_ONE_SHOT_LOW_PRIORITY : root :: nsITimer__bindgen_ty_1 = 5 ; pub type nsITimer__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsITimer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsITimer > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsITimer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsITimer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsITimer ) ) ) ; } impl Clone for nsITimer { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsLanguageAtomService { pub mLangToGroup : [ u64 ; 4usize ] , pub mLocaleLanguage : root :: RefPtr < root :: nsAtom > , } pub type nsLanguageAtomService_Encoding = root :: mozilla :: Encoding ; pub type nsLanguageAtomService_NotNull < T > = root :: mozilla :: NotNull < T > ; # [ test ] fn bindgen_test_layout_nsLanguageAtomService ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsLanguageAtomService > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsLanguageAtomService ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsLanguageAtomService > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsLanguageAtomService ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsLanguageAtomService ) ) . mLangToGroup as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsLanguageAtomService ) , "::" , stringify ! ( mLangToGroup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsLanguageAtomService ) ) . mLocaleLanguage as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsLanguageAtomService ) , "::" , stringify ! ( mLocaleLanguage ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsINamed { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsINamed_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsINamed ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsINamed > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsINamed ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsINamed > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsINamed ) ) ) ; } impl Clone for nsINamed { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIRunnable { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIRunnable_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIRunnable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIRunnable > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIRunnable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIRunnable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIRunnable ) ) ) ; } impl Clone for nsIRunnable { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIEventTarget { pub _base : root :: nsISupports , pub mVirtualThread : * mut root :: PRThread , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIEventTarget_COMTypeInfo { pub _address : u8 , } pub const nsIEventTarget_DISPATCH_NORMAL : root :: nsIEventTarget__bindgen_ty_1 = 0 ; pub const nsIEventTarget_DISPATCH_SYNC : root :: nsIEventTarget__bindgen_ty_1 = 1 ; pub const nsIEventTarget_DISPATCH_AT_END : root :: nsIEventTarget__bindgen_ty_1 = 2 ; pub type nsIEventTarget__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIEventTarget ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIEventTarget > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsIEventTarget ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIEventTarget > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIEventTarget ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIEventTarget ) ) . mVirtualThread as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIEventTarget ) , "::" , stringify ! ( mVirtualThread ) ) ) ; } impl Clone for nsIEventTarget { fn clone ( & self ) -> Self { * self } } pub type nsRunnableMethod_BaseType = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsRunnableMethod_ReturnTypeEnforcer { pub _address : u8 , } pub type nsRunnableMethod_ReturnTypeEnforcer_ReturnTypeIsSafe = :: std :: os :: raw :: c_int ; pub type nsRunnableMethod_check = root :: nsRunnableMethod_ReturnTypeEnforcer ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsIGlobalObject { pub _base : root :: nsISupports , pub _base_1 : root :: mozilla :: dom :: DispatcherTrait , pub mHostObjectURIs : root :: nsTArray < root :: nsCString > , pub mIsDying : bool , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIGlobalObject_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIGlobalObject ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIGlobalObject > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsIGlobalObject ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIGlobalObject > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIGlobalObject ) ) ) ; }
- /// The global object which keeps a script context for each supported script
+ /// @param aClosure opaque parameter passed to initWithFuncCallback
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsITimer {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsITimer_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsITimer_TYPE_ONE_SHOT: root::nsITimer__bindgen_ty_1 = 0;
+ pub const nsITimer_TYPE_REPEATING_SLACK: root::nsITimer__bindgen_ty_1 = 1;
+ pub const nsITimer_TYPE_REPEATING_PRECISE: root::nsITimer__bindgen_ty_1 = 2;
+ pub const nsITimer_TYPE_REPEATING_PRECISE_CAN_SKIP: root::nsITimer__bindgen_ty_1 = 3;
+ pub const nsITimer_TYPE_REPEATING_SLACK_LOW_PRIORITY: root::nsITimer__bindgen_ty_1 = 4;
+ pub const nsITimer_TYPE_ONE_SHOT_LOW_PRIORITY: root::nsITimer__bindgen_ty_1 = 5;
+ pub type nsITimer__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsITimer() {
+ assert_eq!(
+ ::std::mem::size_of::<nsITimer>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsITimer))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsITimer>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsITimer))
+ );
+ }
+ impl Clone for nsITimer {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsLanguageAtomService {
+ pub mLangToGroup: [u64; 4usize],
+ pub mLocaleLanguage: root::RefPtr<root::nsAtom>,
+ }
+ pub type nsLanguageAtomService_Encoding = root::mozilla::Encoding;
+ pub type nsLanguageAtomService_NotNull<T> = root::mozilla::NotNull<T>;
+ #[test]
+ fn bindgen_test_layout_nsLanguageAtomService() {
+ assert_eq!(
+ ::std::mem::size_of::<nsLanguageAtomService>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsLanguageAtomService))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsLanguageAtomService>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsLanguageAtomService))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsLanguageAtomService>())).mLangToGroup as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsLanguageAtomService),
+ "::",
+ stringify!(mLangToGroup)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsLanguageAtomService>())).mLocaleLanguage as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsLanguageAtomService),
+ "::",
+ stringify!(mLocaleLanguage)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsINamed {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsINamed_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsINamed() {
+ assert_eq!(
+ ::std::mem::size_of::<nsINamed>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsINamed))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsINamed>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsINamed))
+ );
+ }
+ impl Clone for nsINamed {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIRunnable {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIRunnable_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIRunnable() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIRunnable>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIRunnable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIRunnable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIRunnable))
+ );
+ }
+ impl Clone for nsIRunnable {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIEventTarget {
+ pub _base: root::nsISupports,
+ pub mVirtualThread: *mut root::PRThread,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIEventTarget_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsIEventTarget_DISPATCH_NORMAL: root::nsIEventTarget__bindgen_ty_1 = 0;
+ pub const nsIEventTarget_DISPATCH_SYNC: root::nsIEventTarget__bindgen_ty_1 = 1;
+ pub const nsIEventTarget_DISPATCH_AT_END: root::nsIEventTarget__bindgen_ty_1 = 2;
+ pub type nsIEventTarget__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsIEventTarget() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIEventTarget>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsIEventTarget))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIEventTarget>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIEventTarget))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIEventTarget>())).mVirtualThread as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIEventTarget),
+ "::",
+ stringify!(mVirtualThread)
+ )
+ );
+ }
+ impl Clone for nsIEventTarget {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsRunnableMethod_BaseType = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsRunnableMethod_ReturnTypeEnforcer {
+ pub _address: u8,
+ }
+ pub type nsRunnableMethod_ReturnTypeEnforcer_ReturnTypeIsSafe = ::std::os::raw::c_int;
+ pub type nsRunnableMethod_check = root::nsRunnableMethod_ReturnTypeEnforcer;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsIGlobalObject {
+ pub _base: root::nsISupports,
+ pub _base_1: root::mozilla::dom::DispatcherTrait,
+ pub mHostObjectURIs: root::nsTArray<root::nsCString>,
+ pub mIsDying: bool,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIGlobalObject_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIGlobalObject() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIGlobalObject>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsIGlobalObject))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIGlobalObject>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIGlobalObject))
+ );
+ }
+ /// The global object which keeps a script context for each supported script
/// language. This often used to store per-window global state.
/// This is a heavyweight interface implemented only by DOM globals, and
- /// it might go away some time in the future.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsIScriptGlobalObject { pub _base : root :: nsIGlobalObject , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIScriptGlobalObject_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIScriptGlobalObject ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIScriptGlobalObject > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsIScriptGlobalObject ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIScriptGlobalObject > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIScriptGlobalObject ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIObserver { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIObserver_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIObserver ) ) ) ; } impl Clone for nsIObserver { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIXPConnectJSObjectHolder { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIXPConnectJSObjectHolder_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIXPConnectJSObjectHolder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIXPConnectJSObjectHolder > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIXPConnectJSObjectHolder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIXPConnectJSObjectHolder > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIXPConnectJSObjectHolder ) ) ) ; } impl Clone for nsIXPConnectJSObjectHolder { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIXPConnectWrappedJS { pub _base : root :: nsIXPConnectJSObjectHolder , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIXPConnectWrappedJS_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIXPConnectWrappedJS ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIXPConnectWrappedJS > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIXPConnectWrappedJS ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIXPConnectWrappedJS > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIXPConnectWrappedJS ) ) ) ; } impl Clone for nsIXPConnectWrappedJS { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIXPConnect { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIXPConnect_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIXPConnect ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIXPConnect > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIXPConnect ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIXPConnect > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIXPConnect ) ) ) ; } impl Clone for nsIXPConnect { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIURI { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIURI_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIURI ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIURI > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIURI ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIURI > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIURI ) ) ) ; } impl Clone for nsIURI { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIControllers { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct mozIDOMWindow { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct mozIDOMWindow_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_mozIDOMWindow ( ) { assert_eq ! ( :: std :: mem :: size_of :: < mozIDOMWindow > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( mozIDOMWindow ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < mozIDOMWindow > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( mozIDOMWindow ) ) ) ; } impl Clone for mozIDOMWindow { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct mozIDOMWindowProxy { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct mozIDOMWindowProxy_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_mozIDOMWindowProxy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < mozIDOMWindowProxy > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( mozIDOMWindowProxy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < mozIDOMWindowProxy > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( mozIDOMWindowProxy ) ) ) ; } impl Clone for mozIDOMWindowProxy { fn clone ( & self ) -> Self { * self } } pub type SuspendTypes = u32 ; pub const PopupControlState_openAllowed : root :: PopupControlState = 0 ; pub const PopupControlState_openControlled : root :: PopupControlState = 1 ; pub const PopupControlState_openBlocked : root :: PopupControlState = 2 ; pub const PopupControlState_openAbused : root :: PopupControlState = 3 ; pub const PopupControlState_openOverridden : root :: PopupControlState = 4 ; pub type PopupControlState = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] pub struct nsPIDOMWindowInner { pub _base : root :: mozIDOMWindow , pub mChromeEventHandler : root :: nsCOMPtr , pub mDoc : root :: nsCOMPtr , pub mDocumentURI : root :: nsCOMPtr , pub mDocBaseURI : root :: nsCOMPtr , pub mParentTarget : root :: nsCOMPtr , pub mPerformance : root :: RefPtr < root :: mozilla :: dom :: Performance > , pub mTimeoutManager : root :: mozilla :: UniquePtr < root :: mozilla :: dom :: TimeoutManager > , pub mServiceWorkerRegistrationTable : root :: nsPIDOMWindowInner_ServiceWorkerRegistrationTable , pub mMutationBits : u32 , pub mActivePeerConnections : u32 , pub mIsDocumentLoaded : bool , pub mIsHandlingResizeEvent : bool , pub mMayHavePaintEventListener : bool , pub mMayHaveTouchEventListener : bool , pub mMayHaveSelectionChangeEventListener : bool , pub mMayHaveMouseEnterLeaveEventListener : bool , pub mMayHavePointerEnterLeaveEventListener : bool , pub mInnerObjectsFreed : bool , pub mAudioCaptured : bool , pub mOuterWindow : root :: nsCOMPtr , pub mFocusedNode : root :: nsCOMPtr , pub mAudioContexts : root :: nsTArray < * mut root :: mozilla :: dom :: AudioContext > , pub mTabGroup : root :: RefPtr < root :: mozilla :: dom :: TabGroup > , pub mWindowID : u64 , pub mHasNotifiedGlobalCreated : bool , pub mMarkedCCGeneration : u32 , pub mTopInnerWindow : root :: nsCOMPtr , pub mHasTriedToCacheTopInnerWindow : bool , pub mNumOfIndexedDBDatabases : u32 , pub mNumOfOpenWebSockets : u32 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsPIDOMWindowInner_COMTypeInfo { pub _address : u8 , } pub type nsPIDOMWindowInner_ServiceWorkerRegistrationTable = [ u64 ; 4usize ] ; # [ test ] fn bindgen_test_layout_nsPIDOMWindowInner ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPIDOMWindowInner > ( ) , 192usize , concat ! ( "Size of: " , stringify ! ( nsPIDOMWindowInner ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPIDOMWindowInner > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPIDOMWindowInner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mChromeEventHandler as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mChromeEventHandler ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mDoc as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mDoc ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mDocumentURI as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mDocumentURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mDocBaseURI as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mDocBaseURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mParentTarget as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mParentTarget ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mPerformance as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mPerformance ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mTimeoutManager as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mTimeoutManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mServiceWorkerRegistrationTable as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mServiceWorkerRegistrationTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMutationBits as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMutationBits ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mActivePeerConnections as * const _ as usize } , 100usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mActivePeerConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mIsDocumentLoaded as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mIsDocumentLoaded ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mIsHandlingResizeEvent as * const _ as usize } , 105usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mIsHandlingResizeEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMayHavePaintEventListener as * const _ as usize } , 106usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMayHavePaintEventListener ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMayHaveTouchEventListener as * const _ as usize } , 107usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMayHaveTouchEventListener ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMayHaveSelectionChangeEventListener as * const _ as usize } , 108usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMayHaveSelectionChangeEventListener ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMayHaveMouseEnterLeaveEventListener as * const _ as usize } , 109usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMayHaveMouseEnterLeaveEventListener ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMayHavePointerEnterLeaveEventListener as * const _ as usize } , 110usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMayHavePointerEnterLeaveEventListener ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mInnerObjectsFreed as * const _ as usize } , 111usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mInnerObjectsFreed ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mAudioCaptured as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mAudioCaptured ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mOuterWindow as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mOuterWindow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mFocusedNode as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mFocusedNode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mAudioContexts as * const _ as usize } , 136usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mAudioContexts ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mTabGroup as * const _ as usize } , 144usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mTabGroup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mWindowID as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mWindowID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mHasNotifiedGlobalCreated as * const _ as usize } , 160usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mHasNotifiedGlobalCreated ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mMarkedCCGeneration as * const _ as usize } , 164usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mMarkedCCGeneration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mTopInnerWindow as * const _ as usize } , 168usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mTopInnerWindow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mHasTriedToCacheTopInnerWindow as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mHasTriedToCacheTopInnerWindow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mNumOfIndexedDBDatabases as * const _ as usize } , 180usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mNumOfIndexedDBDatabases ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowInner ) ) . mNumOfOpenWebSockets as * const _ as usize } , 184usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowInner ) , "::" , stringify ! ( mNumOfOpenWebSockets ) ) ) ; } # [ repr ( C ) ] pub struct nsPIDOMWindowOuter { pub _base : root :: mozIDOMWindowProxy , pub mChromeEventHandler : root :: nsCOMPtr , pub mDoc : root :: nsCOMPtr , pub mDocumentURI : root :: nsCOMPtr , pub mDocBaseURI : root :: nsCOMPtr , pub mParentTarget : root :: nsCOMPtr , pub mFrameElement : root :: nsCOMPtr , pub mDocShell : root :: nsCOMPtr , pub mModalStateDepth : u32 , pub mIsActive : bool , pub mIsBackground : bool ,
- /// The suspended types can be "disposable" or "permanent". This varable only
+ /// it might go away some time in the future.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsIScriptGlobalObject {
+ pub _base: root::nsIGlobalObject,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIScriptGlobalObject_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIScriptGlobalObject() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIScriptGlobalObject>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsIScriptGlobalObject))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIScriptGlobalObject>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIScriptGlobalObject))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIObserver {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIObserver_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIObserver))
+ );
+ }
+ impl Clone for nsIObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIXPConnectJSObjectHolder {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIXPConnectJSObjectHolder_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIXPConnectJSObjectHolder() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIXPConnectJSObjectHolder>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIXPConnectJSObjectHolder))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIXPConnectJSObjectHolder>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIXPConnectJSObjectHolder))
+ );
+ }
+ impl Clone for nsIXPConnectJSObjectHolder {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIXPConnectWrappedJS {
+ pub _base: root::nsIXPConnectJSObjectHolder,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIXPConnectWrappedJS_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIXPConnectWrappedJS() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIXPConnectWrappedJS>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIXPConnectWrappedJS))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIXPConnectWrappedJS>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIXPConnectWrappedJS))
+ );
+ }
+ impl Clone for nsIXPConnectWrappedJS {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIXPConnect {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIXPConnect_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIXPConnect() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIXPConnect>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIXPConnect))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIXPConnect>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIXPConnect))
+ );
+ }
+ impl Clone for nsIXPConnect {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIURI {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIURI_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIURI() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIURI>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIURI))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIURI>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIURI))
+ );
+ }
+ impl Clone for nsIURI {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIControllers {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct mozIDOMWindow {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct mozIDOMWindow_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_mozIDOMWindow() {
+ assert_eq!(
+ ::std::mem::size_of::<mozIDOMWindow>(),
+ 8usize,
+ concat!("Size of: ", stringify!(mozIDOMWindow))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<mozIDOMWindow>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(mozIDOMWindow))
+ );
+ }
+ impl Clone for mozIDOMWindow {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct mozIDOMWindowProxy {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct mozIDOMWindowProxy_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_mozIDOMWindowProxy() {
+ assert_eq!(
+ ::std::mem::size_of::<mozIDOMWindowProxy>(),
+ 8usize,
+ concat!("Size of: ", stringify!(mozIDOMWindowProxy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<mozIDOMWindowProxy>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(mozIDOMWindowProxy))
+ );
+ }
+ impl Clone for mozIDOMWindowProxy {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type SuspendTypes = u32;
+ pub const PopupControlState_openAllowed: root::PopupControlState = 0;
+ pub const PopupControlState_openControlled: root::PopupControlState = 1;
+ pub const PopupControlState_openBlocked: root::PopupControlState = 2;
+ pub const PopupControlState_openAbused: root::PopupControlState = 3;
+ pub const PopupControlState_openOverridden: root::PopupControlState = 4;
+ pub type PopupControlState = u32;
+ #[repr(C)]
+ pub struct nsPIDOMWindowInner {
+ pub _base: root::mozIDOMWindow,
+ pub mChromeEventHandler: root::nsCOMPtr,
+ pub mDoc: root::nsCOMPtr,
+ pub mDocumentURI: root::nsCOMPtr,
+ pub mDocBaseURI: root::nsCOMPtr,
+ pub mParentTarget: root::nsCOMPtr,
+ pub mPerformance: root::RefPtr<root::mozilla::dom::Performance>,
+ pub mTimeoutManager: root::mozilla::UniquePtr<root::mozilla::dom::TimeoutManager>,
+ pub mServiceWorkerRegistrationTable:
+ root::nsPIDOMWindowInner_ServiceWorkerRegistrationTable,
+ pub mMutationBits: u32,
+ pub mActivePeerConnections: u32,
+ pub mIsDocumentLoaded: bool,
+ pub mIsHandlingResizeEvent: bool,
+ pub mMayHavePaintEventListener: bool,
+ pub mMayHaveTouchEventListener: bool,
+ pub mMayHaveSelectionChangeEventListener: bool,
+ pub mMayHaveMouseEnterLeaveEventListener: bool,
+ pub mMayHavePointerEnterLeaveEventListener: bool,
+ pub mInnerObjectsFreed: bool,
+ pub mAudioCaptured: bool,
+ pub mOuterWindow: root::nsCOMPtr,
+ pub mFocusedNode: root::nsCOMPtr,
+ pub mAudioContexts: root::nsTArray<*mut root::mozilla::dom::AudioContext>,
+ pub mTabGroup: root::RefPtr<root::mozilla::dom::TabGroup>,
+ pub mWindowID: u64,
+ pub mHasNotifiedGlobalCreated: bool,
+ pub mMarkedCCGeneration: u32,
+ pub mTopInnerWindow: root::nsCOMPtr,
+ pub mHasTriedToCacheTopInnerWindow: bool,
+ pub mNumOfIndexedDBDatabases: u32,
+ pub mNumOfOpenWebSockets: u32,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsPIDOMWindowInner_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub type nsPIDOMWindowInner_ServiceWorkerRegistrationTable = [u64; 4usize];
+ #[test]
+ fn bindgen_test_layout_nsPIDOMWindowInner() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPIDOMWindowInner>(),
+ 192usize,
+ concat!("Size of: ", stringify!(nsPIDOMWindowInner))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPIDOMWindowInner>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPIDOMWindowInner))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mChromeEventHandler as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mChromeEventHandler)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mDoc as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mDoc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mDocumentURI as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mDocumentURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mDocBaseURI as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mDocBaseURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mParentTarget as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mParentTarget)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mPerformance as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mPerformance)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mTimeoutManager as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mTimeoutManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mServiceWorkerRegistrationTable
+ as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mServiceWorkerRegistrationTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mMutationBits as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMutationBits)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mActivePeerConnections as *const _
+ as usize
+ },
+ 100usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mActivePeerConnections)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mIsDocumentLoaded as *const _
+ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mIsDocumentLoaded)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mIsHandlingResizeEvent as *const _
+ as usize
+ },
+ 105usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mIsHandlingResizeEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mMayHavePaintEventListener
+ as *const _ as usize
+ },
+ 106usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMayHavePaintEventListener)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mMayHaveTouchEventListener
+ as *const _ as usize
+ },
+ 107usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMayHaveTouchEventListener)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mMayHaveSelectionChangeEventListener
+ as *const _ as usize
+ },
+ 108usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMayHaveSelectionChangeEventListener)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mMayHaveMouseEnterLeaveEventListener
+ as *const _ as usize
+ },
+ 109usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMayHaveMouseEnterLeaveEventListener)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>()))
+ .mMayHavePointerEnterLeaveEventListener as *const _ as usize
+ },
+ 110usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMayHavePointerEnterLeaveEventListener)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mInnerObjectsFreed as *const _
+ as usize
+ },
+ 111usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mInnerObjectsFreed)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mAudioCaptured as *const _ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mAudioCaptured)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mOuterWindow as *const _ as usize
+ },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mOuterWindow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mFocusedNode as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mFocusedNode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mAudioContexts as *const _ as usize
+ },
+ 136usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mAudioContexts)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mTabGroup as *const _ as usize
+ },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mTabGroup)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mWindowID as *const _ as usize
+ },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mWindowID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mHasNotifiedGlobalCreated as *const _
+ as usize
+ },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mHasNotifiedGlobalCreated)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mMarkedCCGeneration as *const _
+ as usize
+ },
+ 164usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mMarkedCCGeneration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mTopInnerWindow as *const _ as usize
+ },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mTopInnerWindow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mHasTriedToCacheTopInnerWindow
+ as *const _ as usize
+ },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mHasTriedToCacheTopInnerWindow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mNumOfIndexedDBDatabases as *const _
+ as usize
+ },
+ 180usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mNumOfIndexedDBDatabases)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowInner>())).mNumOfOpenWebSockets as *const _
+ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowInner),
+ "::",
+ stringify!(mNumOfOpenWebSockets)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsPIDOMWindowOuter {
+ pub _base: root::mozIDOMWindowProxy,
+ pub mChromeEventHandler: root::nsCOMPtr,
+ pub mDoc: root::nsCOMPtr,
+ pub mDocumentURI: root::nsCOMPtr,
+ pub mDocBaseURI: root::nsCOMPtr,
+ pub mParentTarget: root::nsCOMPtr,
+ pub mFrameElement: root::nsCOMPtr,
+ pub mDocShell: root::nsCOMPtr,
+ pub mModalStateDepth: u32,
+ pub mIsActive: bool,
+ pub mIsBackground: bool,
+ /// The suspended types can be "disposable" or "permanent". This varable only
/// stores the value about permanent suspend.
/// - disposable
/// To pause all playing media in that window, but doesn't affect the media
@@ -895,24 +20424,586 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// - permanent
/// To pause all media in that window, and also affect the media which starts
- /// after that.
- pub mMediaSuspend : root :: SuspendTypes , pub mAudioMuted : bool , pub mAudioVolume : f32 , pub mDesktopModeViewport : bool , pub mIsRootOuterWindow : bool , pub mInnerWindow : * mut root :: nsPIDOMWindowInner , pub mTabGroup : root :: RefPtr < root :: mozilla :: dom :: TabGroup > , pub mWindowID : u64 , pub mMarkedCCGeneration : u32 , pub mServiceWorkersTestingEnabled : bool , pub mLargeAllocStatus : root :: mozilla :: dom :: LargeAllocStatus , pub mOpenerForInitialContentBrowser : root :: nsCOMPtr , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsPIDOMWindowOuter_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsPIDOMWindowOuter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPIDOMWindowOuter > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( nsPIDOMWindowOuter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPIDOMWindowOuter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPIDOMWindowOuter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mChromeEventHandler as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mChromeEventHandler ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mDoc as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mDoc ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mDocumentURI as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mDocumentURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mDocBaseURI as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mDocBaseURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mParentTarget as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mParentTarget ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mFrameElement as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mFrameElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mDocShell as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mDocShell ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mModalStateDepth as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mModalStateDepth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mIsActive as * const _ as usize } , 68usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mIsActive ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mIsBackground as * const _ as usize } , 69usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mIsBackground ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mMediaSuspend as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mMediaSuspend ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mAudioMuted as * const _ as usize } , 76usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mAudioMuted ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mAudioVolume as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mAudioVolume ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mDesktopModeViewport as * const _ as usize } , 84usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mDesktopModeViewport ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mIsRootOuterWindow as * const _ as usize } , 85usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mIsRootOuterWindow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mInnerWindow as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mInnerWindow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mTabGroup as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mTabGroup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mWindowID as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mWindowID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mMarkedCCGeneration as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mMarkedCCGeneration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mServiceWorkersTestingEnabled as * const _ as usize } , 116usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mServiceWorkersTestingEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mLargeAllocStatus as * const _ as usize } , 117usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mLargeAllocStatus ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPIDOMWindowOuter ) ) . mOpenerForInitialContentBrowser as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( nsPIDOMWindowOuter ) , "::" , stringify ! ( mOpenerForInitialContentBrowser ) ) ) ; } pub mod xpc { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsCompatibility { eCompatibility_FullStandards = 1 , eCompatibility_AlmostStandards = 2 , eCompatibility_NavQuirks = 3 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsILoadGroup { pub _base : root :: nsIRequest , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsILoadGroup_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsILoadGroup ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsILoadGroup > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsILoadGroup ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsILoadGroup > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsILoadGroup ) ) ) ; } impl Clone for nsILoadGroup { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIRequestObserver { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIRequestObserver_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIRequestObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIRequestObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIRequestObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIRequestObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIRequestObserver ) ) ) ; } impl Clone for nsIRequestObserver { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIStreamListener { pub _base : root :: nsIRequestObserver , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIStreamListener_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIStreamListener ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIStreamListener > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIStreamListener ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIStreamListener > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIStreamListener ) ) ) ; } impl Clone for nsIStreamListener { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsParserBase { pub _base : root :: nsISupports , } # [ test ] fn bindgen_test_layout_nsParserBase ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsParserBase > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsParserBase ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsParserBase > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsParserBase ) ) ) ; } impl Clone for nsParserBase { fn clone ( & self ) -> Self { * self } }
- /// This GECKO-INTERNAL interface is on track to being REMOVED (or refactored
+ /// after that.
+ pub mMediaSuspend: root::SuspendTypes,
+ pub mAudioMuted: bool,
+ pub mAudioVolume: f32,
+ pub mDesktopModeViewport: bool,
+ pub mIsRootOuterWindow: bool,
+ pub mInnerWindow: *mut root::nsPIDOMWindowInner,
+ pub mTabGroup: root::RefPtr<root::mozilla::dom::TabGroup>,
+ pub mWindowID: u64,
+ pub mMarkedCCGeneration: u32,
+ pub mServiceWorkersTestingEnabled: bool,
+ pub mLargeAllocStatus: root::mozilla::dom::LargeAllocStatus,
+ pub mOpenerForInitialContentBrowser: root::nsCOMPtr,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsPIDOMWindowOuter_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsPIDOMWindowOuter() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPIDOMWindowOuter>(),
+ 128usize,
+ concat!("Size of: ", stringify!(nsPIDOMWindowOuter))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPIDOMWindowOuter>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPIDOMWindowOuter))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mChromeEventHandler as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mChromeEventHandler)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mDoc as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mDoc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mDocumentURI as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mDocumentURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mDocBaseURI as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mDocBaseURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mParentTarget as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mParentTarget)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mFrameElement as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mFrameElement)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mDocShell as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mDocShell)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mModalStateDepth as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mModalStateDepth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mIsActive as *const _ as usize
+ },
+ 68usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mIsActive)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mIsBackground as *const _ as usize
+ },
+ 69usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mIsBackground)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mMediaSuspend as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mMediaSuspend)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mAudioMuted as *const _ as usize
+ },
+ 76usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mAudioMuted)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mAudioVolume as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mAudioVolume)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mDesktopModeViewport as *const _
+ as usize
+ },
+ 84usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mDesktopModeViewport)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mIsRootOuterWindow as *const _
+ as usize
+ },
+ 85usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mIsRootOuterWindow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mInnerWindow as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mInnerWindow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mTabGroup as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mTabGroup)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mWindowID as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mWindowID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mMarkedCCGeneration as *const _
+ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mMarkedCCGeneration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mServiceWorkersTestingEnabled
+ as *const _ as usize
+ },
+ 116usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mServiceWorkersTestingEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mLargeAllocStatus as *const _
+ as usize
+ },
+ 117usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mLargeAllocStatus)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPIDOMWindowOuter>())).mOpenerForInitialContentBrowser
+ as *const _ as usize
+ },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPIDOMWindowOuter),
+ "::",
+ stringify!(mOpenerForInitialContentBrowser)
+ )
+ );
+ }
+ pub mod xpc {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsCompatibility {
+ eCompatibility_FullStandards = 1,
+ eCompatibility_AlmostStandards = 2,
+ eCompatibility_NavQuirks = 3,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsILoadGroup {
+ pub _base: root::nsIRequest,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsILoadGroup_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsILoadGroup() {
+ assert_eq!(
+ ::std::mem::size_of::<nsILoadGroup>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsILoadGroup))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsILoadGroup>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsILoadGroup))
+ );
+ }
+ impl Clone for nsILoadGroup {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIRequestObserver {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIRequestObserver_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIRequestObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIRequestObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIRequestObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIRequestObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIRequestObserver))
+ );
+ }
+ impl Clone for nsIRequestObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIStreamListener {
+ pub _base: root::nsIRequestObserver,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIStreamListener_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIStreamListener() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIStreamListener>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIStreamListener))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIStreamListener>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIStreamListener))
+ );
+ }
+ impl Clone for nsIStreamListener {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsParserBase {
+ pub _base: root::nsISupports,
+ }
+ #[test]
+ fn bindgen_test_layout_nsParserBase() {
+ assert_eq!(
+ ::std::mem::size_of::<nsParserBase>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsParserBase))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsParserBase>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsParserBase))
+ );
+ }
+ impl Clone for nsParserBase {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// This GECKO-INTERNAL interface is on track to being REMOVED (or refactored
/// to the point of being near-unrecognizable).
///
/// Please DO NOT #include this file in comm-central code, in your XULRunner
/// app or binary extensions.
///
/// Please DO NOT #include this into new files even inside Gecko. It is more
- /// likely than not that #including this header is the wrong thing to do.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIParser { pub _base : root :: nsParserBase , } pub type nsIParser_Encoding = root :: mozilla :: Encoding ; pub type nsIParser_NotNull < T > = root :: mozilla :: NotNull < T > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIParser_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIParser ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIParser > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIParser ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIParser > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIParser ) ) ) ; } impl Clone for nsIParser { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIUUIDGenerator { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIUUIDGenerator_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIUUIDGenerator ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIUUIDGenerator > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIUUIDGenerator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIUUIDGenerator > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIUUIDGenerator ) ) ) ; } impl Clone for nsIUUIDGenerator { fn clone ( & self ) -> Self { * self } }
- /// Hashtable key class to use with nsTHashtable/nsBaseHashtable
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsURIHashKey { pub _base : root :: PLDHashEntryHdr , pub mKey : root :: nsCOMPtr , } pub type nsURIHashKey_KeyType = * mut root :: nsIURI ; pub type nsURIHashKey_KeyTypePointer = * const root :: nsIURI ; pub const nsURIHashKey_ALLOW_MEMMOVE : root :: nsURIHashKey__bindgen_ty_1 = 1 ; pub type nsURIHashKey__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsURIHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsURIHashKey > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsURIHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsURIHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsURIHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsURIHashKey ) ) . mKey as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsURIHashKey ) , "::" , stringify ! ( mKey ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsContentList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIIOService { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIStringBundleService { _unused : [ u8 ; 0 ] }
- /// Data used to track the expiration state of an object. We promise that this
+ /// likely than not that #including this header is the wrong thing to do.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIParser {
+ pub _base: root::nsParserBase,
+ }
+ pub type nsIParser_Encoding = root::mozilla::Encoding;
+ pub type nsIParser_NotNull<T> = root::mozilla::NotNull<T>;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIParser_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIParser() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIParser>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIParser))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIParser>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIParser))
+ );
+ }
+ impl Clone for nsIParser {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIUUIDGenerator {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIUUIDGenerator_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIUUIDGenerator() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIUUIDGenerator>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIUUIDGenerator))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIUUIDGenerator>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIUUIDGenerator))
+ );
+ }
+ impl Clone for nsIUUIDGenerator {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsContentList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIIOService {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIStringBundleService {
+ _unused: [u8; 0],
+ }
+ /// Data used to track the expiration state of an object. We promise that this
/// is 32 bits so that objects that includes this as a field can pad and align
- /// efficiently.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsExpirationState { pub _bitfield_1 : u32 , pub __bindgen_align : [ u32 ; 0usize ] , } pub const nsExpirationState_NOT_TRACKED : root :: nsExpirationState__bindgen_ty_1 = 15 ; pub const nsExpirationState_MAX_INDEX_IN_GENERATION : root :: nsExpirationState__bindgen_ty_1 = 268435455 ; pub type nsExpirationState__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsExpirationState ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsExpirationState > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( nsExpirationState ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsExpirationState > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsExpirationState ) ) ) ; } impl Clone for nsExpirationState { fn clone ( & self ) -> Self { * self } } impl nsExpirationState { # [ inline ] pub fn mGeneration ( & self ) -> u32 { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0xf as u32 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mGeneration ( & mut self , val : u32 ) { let mask = 0xf as u32 ; let val = val as u32 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn mIndexInGeneration ( & self ) -> u32 { let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; let mask = 0xfffffff0 as u32 ; let val = ( unit_field_val & mask ) >> 4usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIndexInGeneration ( & mut self , val : u32 ) { let mask = 0xfffffff0 as u32 ; let val = val as u32 as u32 ; let mut unit_field_val : u32 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u32 as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 4usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u32 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mGeneration : u32 , mIndexInGeneration : u32 ) -> u32 { ( ( 0 | ( ( mGeneration as u32 as u32 ) << 0usize ) & ( 0xf as u32 ) ) | ( ( mIndexInGeneration as u32 as u32 ) << 4usize ) & ( 0xfffffff0 as u32 ) ) } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsBaseContentList { _unused : [ u8 ; 0 ] }
- /// Right now our identifier map entries contain information for 'name'
+ /// efficiently.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsExpirationState {
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 4usize], u32>,
+ pub __bindgen_align: [u32; 0usize],
+ }
+ pub const nsExpirationState_NOT_TRACKED: root::nsExpirationState__bindgen_ty_1 = 15;
+ pub const nsExpirationState_MAX_INDEX_IN_GENERATION: root::nsExpirationState__bindgen_ty_1 =
+ 268435455;
+ pub type nsExpirationState__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsExpirationState() {
+ assert_eq!(
+ ::std::mem::size_of::<nsExpirationState>(),
+ 4usize,
+ concat!("Size of: ", stringify!(nsExpirationState))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsExpirationState>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsExpirationState))
+ );
+ }
+ impl Clone for nsExpirationState {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ impl nsExpirationState {
+ #[inline]
+ pub fn mGeneration(&self) -> u32 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mGeneration(&mut self, val: u32) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 4u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIndexInGeneration(&self) -> u32 {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIndexInGeneration(&mut self, val: u32) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(4usize, 28u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mGeneration: u32,
+ mIndexInGeneration: u32,
+ ) -> root::__BindgenBitfieldUnit<[u8; 4usize], u32> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 4usize],
+ u32,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 4u8, {
+ let mGeneration: u32 = unsafe { ::std::mem::transmute(mGeneration) };
+ mGeneration as u64
+ });
+ __bindgen_bitfield_unit.set(4usize, 28u8, {
+ let mIndexInGeneration: u32 = unsafe { ::std::mem::transmute(mIndexInGeneration) };
+ mIndexInGeneration as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsBaseContentList {
+ _unused: [u8; 0],
+ }
+ /// Right now our identifier map entries contain information for 'name'
/// and 'id' mappings of a given string. This is so that
/// nsHTMLDocument::ResolveName only has to do one hash lookup instead
/// of two. It's not clear whether this still matters for performance.
@@ -921,617 +21012,6008 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// when all elements with the given ID are removed and we remove
/// the ID's nsIdentifierMapEntry, the document.all result is released too.
/// Perhaps the document.all results should have their own hashtable
- /// in nsHTMLDocument.
- # [ repr ( C ) ] pub struct nsIdentifierMapEntry { pub _base : root :: PLDHashEntryHdr , pub mKey : root :: nsIdentifierMapEntry_AtomOrString , pub mIdContentList : [ u64 ; 3usize ] , pub mNameContentList : root :: RefPtr < root :: nsBaseContentList > , pub mChangeCallbacks : u64 , pub mImageElement : root :: RefPtr < root :: nsIdentifierMapEntry_Element > , } pub type nsIdentifierMapEntry_Element = root :: mozilla :: dom :: Element ; pub use self :: super :: root :: mozilla :: net :: ReferrerPolicy as nsIdentifierMapEntry_ReferrerPolicy ;
- /// @see nsIDocument::IDTargetObserver, this is just here to avoid include
- /// hell.
- pub type nsIdentifierMapEntry_IDTargetObserver = :: std :: option :: Option < unsafe extern "C" fn ( aOldElement : * mut root :: nsIdentifierMapEntry_Element , aNewelement : * mut root :: nsIdentifierMapEntry_Element , aData : * mut :: std :: os :: raw :: c_void ) -> bool > ; # [ repr ( C ) ] pub struct nsIdentifierMapEntry_AtomOrString { pub mAtom : root :: RefPtr < root :: nsAtom > , pub mString : ::nsstring::nsStringRepr , } # [ test ] fn bindgen_test_layout_nsIdentifierMapEntry_AtomOrString ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIdentifierMapEntry_AtomOrString > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsIdentifierMapEntry_AtomOrString ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIdentifierMapEntry_AtomOrString > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIdentifierMapEntry_AtomOrString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry_AtomOrString ) ) . mAtom as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry_AtomOrString ) , "::" , stringify ! ( mAtom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry_AtomOrString ) ) . mString as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry_AtomOrString ) , "::" , stringify ! ( mString ) ) ) ; } pub type nsIdentifierMapEntry_KeyType = * const root :: nsIdentifierMapEntry_AtomOrString ; pub type nsIdentifierMapEntry_KeyTypePointer = * const root :: nsIdentifierMapEntry_AtomOrString ; pub const nsIdentifierMapEntry_ALLOW_MEMMOVE : root :: nsIdentifierMapEntry__bindgen_ty_1 = 0 ; pub type nsIdentifierMapEntry__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIdentifierMapEntry_ChangeCallback { pub mCallback : root :: nsIdentifierMapEntry_IDTargetObserver , pub mData : * mut :: std :: os :: raw :: c_void , pub mForImage : bool , } # [ test ] fn bindgen_test_layout_nsIdentifierMapEntry_ChangeCallback ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIdentifierMapEntry_ChangeCallback > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsIdentifierMapEntry_ChangeCallback ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIdentifierMapEntry_ChangeCallback > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIdentifierMapEntry_ChangeCallback ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry_ChangeCallback ) ) . mCallback as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry_ChangeCallback ) , "::" , stringify ! ( mCallback ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry_ChangeCallback ) ) . mData as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry_ChangeCallback ) , "::" , stringify ! ( mData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry_ChangeCallback ) ) . mForImage as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry_ChangeCallback ) , "::" , stringify ! ( mForImage ) ) ) ; } impl Clone for nsIdentifierMapEntry_ChangeCallback { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIdentifierMapEntry_ChangeCallbackEntry { pub _base : root :: PLDHashEntryHdr , pub mKey : root :: nsIdentifierMapEntry_ChangeCallback , } pub type nsIdentifierMapEntry_ChangeCallbackEntry_KeyType = root :: nsIdentifierMapEntry_ChangeCallback ; pub type nsIdentifierMapEntry_ChangeCallbackEntry_KeyTypePointer = * const root :: nsIdentifierMapEntry_ChangeCallback ; pub const nsIdentifierMapEntry_ChangeCallbackEntry_ALLOW_MEMMOVE : root :: nsIdentifierMapEntry_ChangeCallbackEntry__bindgen_ty_1 = 1 ; pub type nsIdentifierMapEntry_ChangeCallbackEntry__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIdentifierMapEntry_ChangeCallbackEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIdentifierMapEntry_ChangeCallbackEntry > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsIdentifierMapEntry_ChangeCallbackEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIdentifierMapEntry_ChangeCallbackEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIdentifierMapEntry_ChangeCallbackEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry_ChangeCallbackEntry ) ) . mKey as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry_ChangeCallbackEntry ) , "::" , stringify ! ( mKey ) ) ) ; } impl Clone for nsIdentifierMapEntry_ChangeCallbackEntry { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsIdentifierMapEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIdentifierMapEntry > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( nsIdentifierMapEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIdentifierMapEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIdentifierMapEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry ) ) . mKey as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry ) , "::" , stringify ! ( mKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry ) ) . mIdContentList as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry ) , "::" , stringify ! ( mIdContentList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry ) ) . mNameContentList as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry ) , "::" , stringify ! ( mNameContentList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry ) ) . mChangeCallbacks as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry ) , "::" , stringify ! ( mChangeCallbacks ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIdentifierMapEntry ) ) . mImageElement as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsIdentifierMapEntry ) , "::" , stringify ! ( mImageElement ) ) ) ; } pub const nsCSSPropertyID_eCSSProperty_COUNT_no_shorthands : root :: nsCSSPropertyID = nsCSSPropertyID :: eCSSProperty_all ; pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY : root :: nsCSSPropertyID = nsCSSPropertyID :: eCSSProperty_z_index ; pub const nsCSSPropertyID_eCSSProperty_COUNT : root :: nsCSSPropertyID = nsCSSPropertyID :: eCSSPropertyAlias_WordWrap ; pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY2 : root :: nsCSSPropertyID = nsCSSPropertyID :: eCSSProperty_transition ; pub const nsCSSPropertyID_eCSSProperty_COUNT_with_aliases : root :: nsCSSPropertyID = nsCSSPropertyID :: eCSSPropertyExtra_no_properties ; pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY3 : root :: nsCSSPropertyID = nsCSSPropertyID :: eCSSPropertyAlias_WebkitMaskSize ; # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsCSSPropertyID { eCSSProperty_UNKNOWN = -1 , eCSSProperty_align_content = 0 , eCSSProperty_align_items = 1 , eCSSProperty_align_self = 2 , eCSSProperty_animation_delay = 3 , eCSSProperty_animation_direction = 4 , eCSSProperty_animation_duration = 5 , eCSSProperty_animation_fill_mode = 6 , eCSSProperty_animation_iteration_count = 7 , eCSSProperty_animation_name = 8 , eCSSProperty_animation_play_state = 9 , eCSSProperty_animation_timing_function = 10 , eCSSProperty__moz_appearance = 11 , eCSSProperty_backface_visibility = 12 , eCSSProperty_background_attachment = 13 , eCSSProperty_background_blend_mode = 14 , eCSSProperty_background_clip = 15 , eCSSProperty_background_color = 16 , eCSSProperty_background_image = 17 , eCSSProperty_background_origin = 18 , eCSSProperty_background_position_x = 19 , eCSSProperty_background_position_y = 20 , eCSSProperty_background_repeat = 21 , eCSSProperty_background_size = 22 , eCSSProperty__moz_binding = 23 , eCSSProperty_block_size = 24 , eCSSProperty_border_block_end_color = 25 , eCSSProperty_border_block_end_style = 26 , eCSSProperty_border_block_end_width = 27 , eCSSProperty_border_block_start_color = 28 , eCSSProperty_border_block_start_style = 29 , eCSSProperty_border_block_start_width = 30 , eCSSProperty_border_bottom_color = 31 , eCSSProperty__moz_border_bottom_colors = 32 , eCSSProperty_border_bottom_left_radius = 33 , eCSSProperty_border_bottom_right_radius = 34 , eCSSProperty_border_bottom_style = 35 , eCSSProperty_border_bottom_width = 36 , eCSSProperty_border_collapse = 37 , eCSSProperty_border_image_outset = 38 , eCSSProperty_border_image_repeat = 39 , eCSSProperty_border_image_slice = 40 , eCSSProperty_border_image_source = 41 , eCSSProperty_border_image_width = 42 , eCSSProperty_border_inline_end_color = 43 , eCSSProperty_border_inline_end_style = 44 , eCSSProperty_border_inline_end_width = 45 , eCSSProperty_border_inline_start_color = 46 , eCSSProperty_border_inline_start_style = 47 , eCSSProperty_border_inline_start_width = 48 , eCSSProperty_border_left_color = 49 , eCSSProperty__moz_border_left_colors = 50 , eCSSProperty_border_left_style = 51 , eCSSProperty_border_left_width = 52 , eCSSProperty_border_right_color = 53 , eCSSProperty__moz_border_right_colors = 54 , eCSSProperty_border_right_style = 55 , eCSSProperty_border_right_width = 56 , eCSSProperty_border_spacing = 57 , eCSSProperty_border_top_color = 58 , eCSSProperty__moz_border_top_colors = 59 , eCSSProperty_border_top_left_radius = 60 , eCSSProperty_border_top_right_radius = 61 , eCSSProperty_border_top_style = 62 , eCSSProperty_border_top_width = 63 , eCSSProperty_bottom = 64 , eCSSProperty__moz_box_align = 65 , eCSSProperty_box_decoration_break = 66 , eCSSProperty__moz_box_direction = 67 , eCSSProperty__moz_box_flex = 68 , eCSSProperty__moz_box_ordinal_group = 69 , eCSSProperty__moz_box_orient = 70 , eCSSProperty__moz_box_pack = 71 , eCSSProperty_box_shadow = 72 , eCSSProperty_box_sizing = 73 , eCSSProperty_caption_side = 74 , eCSSProperty_caret_color = 75 , eCSSProperty_clear = 76 , eCSSProperty_clip = 77 , eCSSProperty_clip_path = 78 , eCSSProperty_clip_rule = 79 , eCSSProperty_color = 80 , eCSSProperty_color_adjust = 81 , eCSSProperty_color_interpolation = 82 , eCSSProperty_color_interpolation_filters = 83 , eCSSProperty_column_count = 84 , eCSSProperty_column_fill = 85 , eCSSProperty_column_gap = 86 , eCSSProperty_column_rule_color = 87 , eCSSProperty_column_rule_style = 88 , eCSSProperty_column_rule_width = 89 , eCSSProperty_column_span = 90 , eCSSProperty_column_width = 91 , eCSSProperty_contain = 92 , eCSSProperty_content = 93 , eCSSProperty__moz_context_properties = 94 , eCSSProperty__moz_control_character_visibility = 95 , eCSSProperty_counter_increment = 96 , eCSSProperty_counter_reset = 97 , eCSSProperty_cursor = 98 , eCSSProperty_direction = 99 , eCSSProperty_display = 100 , eCSSProperty_dominant_baseline = 101 , eCSSProperty_empty_cells = 102 , eCSSProperty_fill = 103 , eCSSProperty_fill_opacity = 104 , eCSSProperty_fill_rule = 105 , eCSSProperty_filter = 106 , eCSSProperty_flex_basis = 107 , eCSSProperty_flex_direction = 108 , eCSSProperty_flex_grow = 109 , eCSSProperty_flex_shrink = 110 , eCSSProperty_flex_wrap = 111 , eCSSProperty_float_ = 112 , eCSSProperty__moz_float_edge = 113 , eCSSProperty_flood_color = 114 , eCSSProperty_flood_opacity = 115 , eCSSProperty_font_family = 116 , eCSSProperty_font_feature_settings = 117 , eCSSProperty_font_kerning = 118 , eCSSProperty_font_language_override = 119 , eCSSProperty_font_size = 120 , eCSSProperty_font_size_adjust = 121 , eCSSProperty__moz_font_smoothing_background_color = 122 , eCSSProperty_font_stretch = 123 , eCSSProperty_font_style = 124 , eCSSProperty_font_synthesis = 125 , eCSSProperty_font_variant_alternates = 126 , eCSSProperty_font_variant_caps = 127 , eCSSProperty_font_variant_east_asian = 128 , eCSSProperty_font_variant_ligatures = 129 , eCSSProperty_font_variant_numeric = 130 , eCSSProperty_font_variant_position = 131 , eCSSProperty_font_variation_settings = 132 , eCSSProperty_font_weight = 133 , eCSSProperty__moz_force_broken_image_icon = 134 , eCSSProperty_grid_auto_columns = 135 , eCSSProperty_grid_auto_flow = 136 , eCSSProperty_grid_auto_rows = 137 , eCSSProperty_grid_column_end = 138 , eCSSProperty_grid_column_gap = 139 , eCSSProperty_grid_column_start = 140 , eCSSProperty_grid_row_end = 141 , eCSSProperty_grid_row_gap = 142 , eCSSProperty_grid_row_start = 143 , eCSSProperty_grid_template_areas = 144 , eCSSProperty_grid_template_columns = 145 , eCSSProperty_grid_template_rows = 146 , eCSSProperty_height = 147 , eCSSProperty_hyphens = 148 , eCSSProperty_initial_letter = 149 , eCSSProperty_image_orientation = 150 , eCSSProperty__moz_image_region = 151 , eCSSProperty_image_rendering = 152 , eCSSProperty_ime_mode = 153 , eCSSProperty_inline_size = 154 , eCSSProperty_isolation = 155 , eCSSProperty_justify_content = 156 , eCSSProperty_justify_items = 157 , eCSSProperty_justify_self = 158 , eCSSProperty__x_lang = 159 , eCSSProperty_left = 160 , eCSSProperty_letter_spacing = 161 , eCSSProperty_lighting_color = 162 , eCSSProperty_line_height = 163 , eCSSProperty_list_style_image = 164 , eCSSProperty_list_style_position = 165 , eCSSProperty_list_style_type = 166 , eCSSProperty_margin_block_end = 167 , eCSSProperty_margin_block_start = 168 , eCSSProperty_margin_bottom = 169 , eCSSProperty_margin_inline_end = 170 , eCSSProperty_margin_inline_start = 171 , eCSSProperty_margin_left = 172 , eCSSProperty_margin_right = 173 , eCSSProperty_margin_top = 174 , eCSSProperty_marker_end = 175 , eCSSProperty_marker_mid = 176 , eCSSProperty_marker_start = 177 , eCSSProperty_mask_clip = 178 , eCSSProperty_mask_composite = 179 , eCSSProperty_mask_image = 180 , eCSSProperty_mask_mode = 181 , eCSSProperty_mask_origin = 182 , eCSSProperty_mask_position_x = 183 , eCSSProperty_mask_position_y = 184 , eCSSProperty_mask_repeat = 185 , eCSSProperty_mask_size = 186 , eCSSProperty_mask_type = 187 , eCSSProperty__moz_math_display = 188 , eCSSProperty__moz_math_variant = 189 , eCSSProperty_max_block_size = 190 , eCSSProperty_max_height = 191 , eCSSProperty_max_inline_size = 192 , eCSSProperty_max_width = 193 , eCSSProperty_min_block_size = 194 , eCSSProperty__moz_min_font_size_ratio = 195 , eCSSProperty_min_height = 196 , eCSSProperty_min_inline_size = 197 , eCSSProperty_min_width = 198 , eCSSProperty_mix_blend_mode = 199 , eCSSProperty_object_fit = 200 , eCSSProperty_object_position = 201 , eCSSProperty_offset_block_end = 202 , eCSSProperty_offset_block_start = 203 , eCSSProperty_offset_inline_end = 204 , eCSSProperty_offset_inline_start = 205 , eCSSProperty_opacity = 206 , eCSSProperty_order = 207 , eCSSProperty__moz_orient = 208 , eCSSProperty__moz_osx_font_smoothing = 209 , eCSSProperty_outline_color = 210 , eCSSProperty_outline_offset = 211 , eCSSProperty__moz_outline_radius_bottomleft = 212 , eCSSProperty__moz_outline_radius_bottomright = 213 , eCSSProperty__moz_outline_radius_topleft = 214 , eCSSProperty__moz_outline_radius_topright = 215 , eCSSProperty_outline_style = 216 , eCSSProperty_outline_width = 217 , eCSSProperty_overflow_clip_box_block = 218 , eCSSProperty_overflow_clip_box_inline = 219 , eCSSProperty_overflow_x = 220 , eCSSProperty_overflow_y = 221 , eCSSProperty_padding_block_end = 222 , eCSSProperty_padding_block_start = 223 , eCSSProperty_padding_bottom = 224 , eCSSProperty_padding_inline_end = 225 , eCSSProperty_padding_inline_start = 226 , eCSSProperty_padding_left = 227 , eCSSProperty_padding_right = 228 , eCSSProperty_padding_top = 229 , eCSSProperty_page_break_after = 230 , eCSSProperty_page_break_before = 231 , eCSSProperty_page_break_inside = 232 , eCSSProperty_paint_order = 233 , eCSSProperty_perspective = 234 , eCSSProperty_perspective_origin = 235 , eCSSProperty_pointer_events = 236 , eCSSProperty_position = 237 , eCSSProperty_quotes = 238 , eCSSProperty_resize = 239 , eCSSProperty_right = 240 , eCSSProperty_ruby_align = 241 , eCSSProperty_ruby_position = 242 , eCSSProperty__moz_script_level = 243 , eCSSProperty__moz_script_min_size = 244 , eCSSProperty__moz_script_size_multiplier = 245 , eCSSProperty_scroll_behavior = 246 , eCSSProperty_overscroll_behavior_x = 247 , eCSSProperty_overscroll_behavior_y = 248 , eCSSProperty_scroll_snap_coordinate = 249 , eCSSProperty_scroll_snap_destination = 250 , eCSSProperty_scroll_snap_points_x = 251 , eCSSProperty_scroll_snap_points_y = 252 , eCSSProperty_scroll_snap_type_x = 253 , eCSSProperty_scroll_snap_type_y = 254 , eCSSProperty_shape_image_threshold = 255 , eCSSProperty_shape_outside = 256 , eCSSProperty_shape_rendering = 257 , eCSSProperty__x_span = 258 , eCSSProperty__moz_stack_sizing = 259 , eCSSProperty_stop_color = 260 , eCSSProperty_stop_opacity = 261 , eCSSProperty_stroke = 262 , eCSSProperty_stroke_dasharray = 263 , eCSSProperty_stroke_dashoffset = 264 , eCSSProperty_stroke_linecap = 265 , eCSSProperty_stroke_linejoin = 266 , eCSSProperty_stroke_miterlimit = 267 , eCSSProperty_stroke_opacity = 268 , eCSSProperty_stroke_width = 269 , eCSSProperty__x_system_font = 270 , eCSSProperty__moz_tab_size = 271 , eCSSProperty_table_layout = 272 , eCSSProperty_text_align = 273 , eCSSProperty_text_align_last = 274 , eCSSProperty_text_anchor = 275 , eCSSProperty_text_combine_upright = 276 , eCSSProperty_text_decoration_color = 277 , eCSSProperty_text_decoration_line = 278 , eCSSProperty_text_decoration_style = 279 , eCSSProperty_text_emphasis_color = 280 , eCSSProperty_text_emphasis_position = 281 , eCSSProperty_text_emphasis_style = 282 , eCSSProperty__webkit_text_fill_color = 283 , eCSSProperty_text_indent = 284 , eCSSProperty_text_justify = 285 , eCSSProperty_text_orientation = 286 , eCSSProperty_text_overflow = 287 , eCSSProperty_text_rendering = 288 , eCSSProperty_text_shadow = 289 , eCSSProperty__moz_text_size_adjust = 290 , eCSSProperty__webkit_text_stroke_color = 291 , eCSSProperty__webkit_text_stroke_width = 292 , eCSSProperty_text_transform = 293 , eCSSProperty__x_text_zoom = 294 , eCSSProperty_top = 295 , eCSSProperty__moz_top_layer = 296 , eCSSProperty_touch_action = 297 , eCSSProperty_transform = 298 , eCSSProperty_transform_box = 299 , eCSSProperty_transform_origin = 300 , eCSSProperty_transform_style = 301 , eCSSProperty_transition_delay = 302 , eCSSProperty_transition_duration = 303 , eCSSProperty_transition_property = 304 , eCSSProperty_transition_timing_function = 305 , eCSSProperty_unicode_bidi = 306 , eCSSProperty__moz_user_focus = 307 , eCSSProperty__moz_user_input = 308 , eCSSProperty__moz_user_modify = 309 , eCSSProperty__moz_user_select = 310 , eCSSProperty_vector_effect = 311 , eCSSProperty_vertical_align = 312 , eCSSProperty_visibility = 313 , eCSSProperty_white_space = 314 , eCSSProperty_width = 315 , eCSSProperty_will_change = 316 , eCSSProperty__moz_window_dragging = 317 , eCSSProperty__moz_window_shadow = 318 , eCSSProperty__moz_window_opacity = 319 , eCSSProperty__moz_window_transform = 320 , eCSSProperty__moz_window_transform_origin = 321 , eCSSProperty_word_break = 322 , eCSSProperty_word_spacing = 323 , eCSSProperty_overflow_wrap = 324 , eCSSProperty_writing_mode = 325 , eCSSProperty_z_index = 326 , eCSSProperty_all = 327 , eCSSProperty_animation = 328 , eCSSProperty_background = 329 , eCSSProperty_background_position = 330 , eCSSProperty_border = 331 , eCSSProperty_border_block_end = 332 , eCSSProperty_border_block_start = 333 , eCSSProperty_border_bottom = 334 , eCSSProperty_border_color = 335 , eCSSProperty_border_image = 336 , eCSSProperty_border_inline_end = 337 , eCSSProperty_border_inline_start = 338 , eCSSProperty_border_left = 339 , eCSSProperty_border_radius = 340 , eCSSProperty_border_right = 341 , eCSSProperty_border_style = 342 , eCSSProperty_border_top = 343 , eCSSProperty_border_width = 344 , eCSSProperty_column_rule = 345 , eCSSProperty_columns = 346 , eCSSProperty_flex = 347 , eCSSProperty_flex_flow = 348 , eCSSProperty_font = 349 , eCSSProperty_font_variant = 350 , eCSSProperty_grid = 351 , eCSSProperty_grid_area = 352 , eCSSProperty_grid_column = 353 , eCSSProperty_grid_gap = 354 , eCSSProperty_grid_row = 355 , eCSSProperty_grid_template = 356 , eCSSProperty_list_style = 357 , eCSSProperty_margin = 358 , eCSSProperty_marker = 359 , eCSSProperty_mask = 360 , eCSSProperty_mask_position = 361 , eCSSProperty_outline = 362 , eCSSProperty__moz_outline_radius = 363 , eCSSProperty_overflow = 364 , eCSSProperty_overflow_clip_box = 365 , eCSSProperty_padding = 366 , eCSSProperty_place_content = 367 , eCSSProperty_place_items = 368 , eCSSProperty_place_self = 369 , eCSSProperty_overscroll_behavior = 370 , eCSSProperty_scroll_snap_type = 371 , eCSSProperty_text_decoration = 372 , eCSSProperty_text_emphasis = 373 , eCSSProperty__webkit_text_stroke = 374 , eCSSProperty__moz_transform = 375 , eCSSProperty_transition = 376 , eCSSPropertyAlias_WordWrap = 377 , eCSSPropertyAlias_MozTransformOrigin = 378 , eCSSPropertyAlias_MozPerspectiveOrigin = 379 , eCSSPropertyAlias_MozPerspective = 380 , eCSSPropertyAlias_MozTransformStyle = 381 , eCSSPropertyAlias_MozBackfaceVisibility = 382 , eCSSPropertyAlias_MozBorderImage = 383 , eCSSPropertyAlias_MozTransition = 384 , eCSSPropertyAlias_MozTransitionDelay = 385 , eCSSPropertyAlias_MozTransitionDuration = 386 , eCSSPropertyAlias_MozTransitionProperty = 387 , eCSSPropertyAlias_MozTransitionTimingFunction = 388 , eCSSPropertyAlias_MozAnimation = 389 , eCSSPropertyAlias_MozAnimationDelay = 390 , eCSSPropertyAlias_MozAnimationDirection = 391 , eCSSPropertyAlias_MozAnimationDuration = 392 , eCSSPropertyAlias_MozAnimationFillMode = 393 , eCSSPropertyAlias_MozAnimationIterationCount = 394 , eCSSPropertyAlias_MozAnimationName = 395 , eCSSPropertyAlias_MozAnimationPlayState = 396 , eCSSPropertyAlias_MozAnimationTimingFunction = 397 , eCSSPropertyAlias_MozBoxSizing = 398 , eCSSPropertyAlias_MozFontFeatureSettings = 399 , eCSSPropertyAlias_MozFontLanguageOverride = 400 , eCSSPropertyAlias_MozPaddingEnd = 401 , eCSSPropertyAlias_MozPaddingStart = 402 , eCSSPropertyAlias_MozMarginEnd = 403 , eCSSPropertyAlias_MozMarginStart = 404 , eCSSPropertyAlias_MozBorderEnd = 405 , eCSSPropertyAlias_MozBorderEndColor = 406 , eCSSPropertyAlias_MozBorderEndStyle = 407 , eCSSPropertyAlias_MozBorderEndWidth = 408 , eCSSPropertyAlias_MozBorderStart = 409 , eCSSPropertyAlias_MozBorderStartColor = 410 , eCSSPropertyAlias_MozBorderStartStyle = 411 , eCSSPropertyAlias_MozBorderStartWidth = 412 , eCSSPropertyAlias_MozHyphens = 413 , eCSSPropertyAlias_MozColumnCount = 414 , eCSSPropertyAlias_MozColumnFill = 415 , eCSSPropertyAlias_MozColumnGap = 416 , eCSSPropertyAlias_MozColumnRule = 417 , eCSSPropertyAlias_MozColumnRuleColor = 418 , eCSSPropertyAlias_MozColumnRuleStyle = 419 , eCSSPropertyAlias_MozColumnRuleWidth = 420 , eCSSPropertyAlias_MozColumnSpan = 421 , eCSSPropertyAlias_MozColumnWidth = 422 , eCSSPropertyAlias_MozColumns = 423 , eCSSPropertyAlias_WebkitAnimation = 424 , eCSSPropertyAlias_WebkitAnimationDelay = 425 , eCSSPropertyAlias_WebkitAnimationDirection = 426 , eCSSPropertyAlias_WebkitAnimationDuration = 427 , eCSSPropertyAlias_WebkitAnimationFillMode = 428 , eCSSPropertyAlias_WebkitAnimationIterationCount = 429 , eCSSPropertyAlias_WebkitAnimationName = 430 , eCSSPropertyAlias_WebkitAnimationPlayState = 431 , eCSSPropertyAlias_WebkitAnimationTimingFunction = 432 , eCSSPropertyAlias_WebkitFilter = 433 , eCSSPropertyAlias_WebkitTextSizeAdjust = 434 , eCSSPropertyAlias_WebkitTransform = 435 , eCSSPropertyAlias_WebkitTransformOrigin = 436 , eCSSPropertyAlias_WebkitTransformStyle = 437 , eCSSPropertyAlias_WebkitBackfaceVisibility = 438 , eCSSPropertyAlias_WebkitPerspective = 439 , eCSSPropertyAlias_WebkitPerspectiveOrigin = 440 , eCSSPropertyAlias_WebkitTransition = 441 , eCSSPropertyAlias_WebkitTransitionDelay = 442 , eCSSPropertyAlias_WebkitTransitionDuration = 443 , eCSSPropertyAlias_WebkitTransitionProperty = 444 , eCSSPropertyAlias_WebkitTransitionTimingFunction = 445 , eCSSPropertyAlias_WebkitBorderRadius = 446 , eCSSPropertyAlias_WebkitBorderTopLeftRadius = 447 , eCSSPropertyAlias_WebkitBorderTopRightRadius = 448 , eCSSPropertyAlias_WebkitBorderBottomLeftRadius = 449 , eCSSPropertyAlias_WebkitBorderBottomRightRadius = 450 , eCSSPropertyAlias_WebkitBackgroundClip = 451 , eCSSPropertyAlias_WebkitBackgroundOrigin = 452 , eCSSPropertyAlias_WebkitBackgroundSize = 453 , eCSSPropertyAlias_WebkitBorderImage = 454 , eCSSPropertyAlias_WebkitBoxShadow = 455 , eCSSPropertyAlias_WebkitBoxSizing = 456 , eCSSPropertyAlias_WebkitBoxFlex = 457 , eCSSPropertyAlias_WebkitBoxOrdinalGroup = 458 , eCSSPropertyAlias_WebkitBoxOrient = 459 , eCSSPropertyAlias_WebkitBoxDirection = 460 , eCSSPropertyAlias_WebkitBoxAlign = 461 , eCSSPropertyAlias_WebkitBoxPack = 462 , eCSSPropertyAlias_WebkitFlexDirection = 463 , eCSSPropertyAlias_WebkitFlexWrap = 464 , eCSSPropertyAlias_WebkitFlexFlow = 465 , eCSSPropertyAlias_WebkitOrder = 466 , eCSSPropertyAlias_WebkitFlex = 467 , eCSSPropertyAlias_WebkitFlexGrow = 468 , eCSSPropertyAlias_WebkitFlexShrink = 469 , eCSSPropertyAlias_WebkitFlexBasis = 470 , eCSSPropertyAlias_WebkitJustifyContent = 471 , eCSSPropertyAlias_WebkitAlignItems = 472 , eCSSPropertyAlias_WebkitAlignSelf = 473 , eCSSPropertyAlias_WebkitAlignContent = 474 , eCSSPropertyAlias_WebkitUserSelect = 475 , eCSSPropertyAlias_WebkitMask = 476 , eCSSPropertyAlias_WebkitMaskClip = 477 , eCSSPropertyAlias_WebkitMaskComposite = 478 , eCSSPropertyAlias_WebkitMaskImage = 479 , eCSSPropertyAlias_WebkitMaskOrigin = 480 , eCSSPropertyAlias_WebkitMaskPosition = 481 , eCSSPropertyAlias_WebkitMaskPositionX = 482 , eCSSPropertyAlias_WebkitMaskPositionY = 483 , eCSSPropertyAlias_WebkitMaskRepeat = 484 , eCSSPropertyAlias_WebkitMaskSize = 485 , eCSSPropertyExtra_no_properties = 486 , eCSSPropertyExtra_all_properties = 487 , eCSSPropertyExtra_x_none_value = 488 , eCSSPropertyExtra_x_auto_value = 489 , eCSSPropertyExtra_variable = 490 , eCSSProperty_DOM = 491 , } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsCSSFontDesc { eCSSFontDesc_UNKNOWN = -1 , eCSSFontDesc_Family = 0 , eCSSFontDesc_Style = 1 , eCSSFontDesc_Weight = 2 , eCSSFontDesc_Stretch = 3 , eCSSFontDesc_Src = 4 , eCSSFontDesc_UnicodeRange = 5 , eCSSFontDesc_FontFeatureSettings = 6 , eCSSFontDesc_FontLanguageOverride = 7 , eCSSFontDesc_Display = 8 , eCSSFontDesc_COUNT = 9 , } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsCSSCounterDesc { eCSSCounterDesc_UNKNOWN = -1 , eCSSCounterDesc_System = 0 , eCSSCounterDesc_Symbols = 1 , eCSSCounterDesc_AdditiveSymbols = 2 , eCSSCounterDesc_Negative = 3 , eCSSCounterDesc_Prefix = 4 , eCSSCounterDesc_Suffix = 5 , eCSSCounterDesc_Range = 6 , eCSSCounterDesc_Pad = 7 , eCSSCounterDesc_Fallback = 8 , eCSSCounterDesc_SpeakAs = 9 , eCSSCounterDesc_COUNT = 10 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoStyleSet { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoSourceSizeList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RustString { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoStyleSheetContents { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoDeclarationBlock { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoStyleRule { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoAnimationValue { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RawServoMediaList { _unused : [ u8 ; 0 ] } pub mod nsStyleTransformMatrix { # [ allow ( unused_imports ) ] use self :: super :: super :: root ; # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum MatrixTransformOperator { Interpolate = 0 , Accumulate = 1 , } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsCSSPropertyIDSet { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsSimpleContentList { _unused : [ u8 ; 0 ] } pub type RawGeckoNode = root :: nsINode ; pub type RawGeckoElement = root :: mozilla :: dom :: Element ; pub type RawGeckoDocument = root :: nsIDocument ; pub type RawGeckoPresContext = root :: nsPresContext ; pub type RawGeckoXBLBinding = root :: nsXBLBinding ; pub type RawGeckoURLExtraData = root :: mozilla :: URLExtraData ; pub type RawGeckoServoAnimationValueList = root :: nsTArray < root :: RefPtr < root :: RawServoAnimationValue > > ; pub type RawGeckoKeyframeList = root :: nsTArray < root :: mozilla :: Keyframe > ; pub type RawGeckoPropertyValuePairList = root :: nsTArray < root :: mozilla :: PropertyValuePair > ; pub type RawGeckoComputedKeyframeValuesList = root :: nsTArray < root :: mozilla :: ComputedKeyframeValues > ; pub type RawGeckoStyleAnimationList = root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > ; pub type RawGeckoFontFaceRuleList = root :: nsTArray < root :: nsFontFaceRuleContainer > ; pub type RawGeckoAnimationPropertySegment = root :: mozilla :: AnimationPropertySegment ; pub type RawGeckoComputedTiming = root :: mozilla :: ComputedTiming ; pub type RawGeckoServoStyleRuleList = root :: nsTArray < * const root :: RawServoStyleRule > ; pub type RawGeckoCSSPropertyIDList = root :: nsTArray < root :: nsCSSPropertyID > ; pub type RawGeckoGfxMatrix4x4 = [ root :: mozilla :: gfx :: Float ; 16usize ] ; pub type RawGeckoStyleChildrenIterator = root :: mozilla :: dom :: StyleChildrenIterator ; pub type ServoStyleContextBorrowed = * const root :: mozilla :: ServoStyleContext ; pub type ServoStyleContextBorrowedOrNull = * const root :: mozilla :: ServoStyleContext ; pub type ServoComputedDataBorrowed = * const root :: ServoComputedData ; pub type RawGeckoNodeBorrowed = * const root :: RawGeckoNode ; pub type RawGeckoNodeBorrowedOrNull = * const root :: RawGeckoNode ; pub type RawGeckoElementBorrowed = * const root :: RawGeckoElement ; pub type RawGeckoElementBorrowedOrNull = * const root :: RawGeckoElement ; pub type RawGeckoDocumentBorrowed = * const root :: RawGeckoDocument ; pub type RawGeckoDocumentBorrowedOrNull = * const root :: RawGeckoDocument ; pub type RawGeckoXBLBindingBorrowed = * const root :: RawGeckoXBLBinding ; pub type RawGeckoXBLBindingBorrowedOrNull = * const root :: RawGeckoXBLBinding ; pub type RawGeckoPresContextOwned = * mut root :: RawGeckoPresContext ; pub type RawGeckoPresContextBorrowed = * const root :: RawGeckoPresContext ; pub type RawGeckoPresContextBorrowedMut = * mut root :: RawGeckoPresContext ; pub type RawGeckoServoAnimationValueListBorrowedMut = * mut root :: RawGeckoServoAnimationValueList ; pub type RawGeckoServoAnimationValueListBorrowed = * const root :: RawGeckoServoAnimationValueList ; pub type RawGeckoKeyframeListBorrowedMut = * mut root :: RawGeckoKeyframeList ; pub type RawGeckoKeyframeListBorrowed = * const root :: RawGeckoKeyframeList ; pub type RawGeckoPropertyValuePairListBorrowedMut = * mut root :: RawGeckoPropertyValuePairList ; pub type RawGeckoPropertyValuePairListBorrowed = * const root :: RawGeckoPropertyValuePairList ; pub type RawGeckoComputedKeyframeValuesListBorrowedMut = * mut root :: RawGeckoComputedKeyframeValuesList ; pub type RawGeckoStyleAnimationListBorrowedMut = * mut root :: RawGeckoStyleAnimationList ; pub type RawGeckoStyleAnimationListBorrowed = * const root :: RawGeckoStyleAnimationList ; pub type RawGeckoFontFaceRuleListBorrowedMut = * mut root :: RawGeckoFontFaceRuleList ; pub type RawGeckoAnimationPropertySegmentBorrowed = * const root :: RawGeckoAnimationPropertySegment ; pub type RawGeckoComputedTimingBorrowed = * const root :: RawGeckoComputedTiming ; pub type RawGeckoServoStyleRuleListBorrowedMut = * mut root :: RawGeckoServoStyleRuleList ; pub type RawGeckoCSSPropertyIDListBorrowed = * const root :: RawGeckoCSSPropertyIDList ; pub type RawGeckoStyleChildrenIteratorBorrowedMut = * mut root :: RawGeckoStyleChildrenIterator ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsHTMLCSSStyleSheet { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsHTMLStyleSheet { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIBFCacheEntry { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDocumentEncoder { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIStructuredCloneContainer { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsSMILAnimationController { _unused : [ u8 ; 0 ] } pub const HSTSPrimingState_eNO_HSTS_PRIMING : root :: HSTSPrimingState = 0 ; pub const HSTSPrimingState_eHSTS_PRIMING_ALLOW : root :: HSTSPrimingState = 1 ; pub const HSTSPrimingState_eHSTS_PRIMING_BLOCK : root :: HSTSPrimingState = 2 ; pub type HSTSPrimingState = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] pub struct nsIDocument { pub _base : root :: nsINode , pub _base_1 : root :: mozilla :: dom :: DocumentOrShadowRoot , pub _base_2 : root :: mozilla :: dom :: DispatcherTrait , pub mDeprecationWarnedAbout : u64 , pub mDocWarningWarnedAbout : u64 , pub mServoSelectorCache : root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > , pub mGeckoSelectorCache : root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > , pub mReferrer : root :: nsCString , pub mLastModified : ::nsstring::nsStringRepr , pub mDocumentURI : root :: nsCOMPtr , pub mOriginalURI : root :: nsCOMPtr , pub mChromeXHRDocURI : root :: nsCOMPtr , pub mDocumentBaseURI : root :: nsCOMPtr , pub mChromeXHRDocBaseURI : root :: nsCOMPtr , pub mCachedURLData : root :: RefPtr < root :: mozilla :: URLExtraData > , pub mDocumentLoadGroup : root :: nsWeakPtr , pub mReferrerPolicySet : bool , pub mReferrerPolicy : root :: nsIDocument_ReferrerPolicyEnum , pub mBlockAllMixedContent : bool , pub mBlockAllMixedContentPreloads : bool , pub mUpgradeInsecureRequests : bool , pub mUpgradeInsecurePreloads : bool , pub mHSTSPrimingURIList : [ u64 ; 4usize ] , pub mDocumentContainer : u64 , pub mCharacterSet : root :: mozilla :: NotNull < * const root :: nsIDocument_Encoding > , pub mCharacterSetSource : i32 , pub mParentDocument : * mut root :: nsIDocument , pub mCachedRootElement : * mut root :: mozilla :: dom :: Element , pub mNodeInfoManager : * mut root :: nsNodeInfoManager , pub mCSSLoader : root :: RefPtr < root :: mozilla :: css :: Loader > , pub mStyleImageLoader : root :: RefPtr < root :: mozilla :: css :: ImageLoader > , pub mAttrStyleSheet : root :: RefPtr < root :: nsHTMLStyleSheet > , pub mStyleAttrStyleSheet : root :: RefPtr < root :: nsHTMLCSSStyleSheet > , pub mImageTracker : root :: RefPtr < root :: mozilla :: dom :: ImageTracker > , pub mActivityObservers : u64 , pub mLinksToUpdate : [ u64 ; 3usize ] , pub mAnimationController : root :: RefPtr < root :: nsSMILAnimationController > , pub mPropertyTable : root :: nsPropertyTable , pub mExtraPropertyTables : root :: nsTArray < root :: nsAutoPtr < root :: nsPropertyTable > > , pub mChildrenCollection : root :: nsCOMPtr , pub mFontFaceSet : root :: RefPtr < root :: mozilla :: dom :: FontFaceSet > , pub mLastFocusTime : root :: mozilla :: TimeStamp , pub mDocumentState : root :: mozilla :: EventStates , pub _bitfield_1 : [ u8 ; 7usize ] , pub mCompatMode : root :: nsCompatibility , pub mReadyState : root :: nsIDocument_ReadyState , pub mStyleBackendType : root :: mozilla :: StyleBackendType , pub mVisibilityState : root :: mozilla :: dom :: VisibilityState , pub mType : root :: nsIDocument_Type , pub mDefaultElementType : u8 , pub mAllowXULXBL : root :: nsIDocument_Tri , pub mScriptGlobalObject : root :: nsCOMPtr , pub mOriginalDocument : root :: nsCOMPtr , pub mBidiOptions : u32 , pub mSandboxFlags : u32 , pub mContentLanguage : root :: nsCString , pub mChannel : root :: nsCOMPtr , pub mContentType : root :: nsCString , pub mSecurityInfo : root :: nsCOMPtr , pub mFailedChannel : root :: nsCOMPtr , pub mPartID : u32 , pub mMarkedCCGeneration : u32 , pub mPresShell : * mut root :: nsIPresShell , pub mSubtreeModifiedTargets : root :: nsCOMArray , pub mSubtreeModifiedDepth : u32 , pub mDisplayDocument : root :: nsCOMPtr , pub mEventsSuppressed : u32 ,
- /// https://html.spec.whatwg.org/#ignore-destructive-writes-counter
- pub mIgnoreDestructiveWritesCounter : u32 ,
- /// The current frame request callback handle
- pub mFrameRequestCallbackCounter : i32 , pub mStaticCloneCount : u32 , pub mBlockedTrackingNodes : root :: nsTArray < root :: nsWeakPtr > , pub mWindow : * mut root :: nsPIDOMWindowInner , pub mCachedEncoder : root :: nsCOMPtr , pub mFrameRequestCallbacks : root :: nsTArray < root :: nsIDocument_FrameRequest > , pub mBFCacheEntry : * mut root :: nsIBFCacheEntry , pub mBaseTarget : ::nsstring::nsStringRepr , pub mStateObjectContainer : root :: nsCOMPtr , pub mStateObjectCached : root :: nsCOMPtr , pub mInSyncOperationCount : u32 , pub mXPathEvaluator : root :: RefPtr < root :: mozilla :: dom :: XPathEvaluator > , pub mAnonymousContents : root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: AnonymousContent > > , pub mBlockDOMContentLoaded : u32 , pub mDOMMediaQueryLists : root :: mozilla :: LinkedList , pub mUseCounters : [ u64 ; 2usize ] , pub mChildDocumentUseCounters : [ u64 ; 2usize ] , pub mNotifiedPageForUseCounter : [ u64 ; 2usize ] , pub mIncCounters : u16 , pub mUserHasInteracted : bool , pub mUserHasActivatedInteraction : bool , pub mPageUnloadingEventTimeStamp : root :: mozilla :: TimeStamp , pub mDocGroup : root :: RefPtr < root :: mozilla :: dom :: DocGroup > , pub mTrackingScripts : [ u64 ; 4usize ] , pub mBufferedCSPViolations : root :: nsTArray < root :: nsCOMPtr > , pub mAncestorPrincipals : root :: nsTArray < root :: nsCOMPtr > , pub mAncestorOuterWindowIDs : root :: nsTArray < u64 > , pub mServoRestyleRoot : root :: nsCOMPtr , pub mServoRestyleRootDirtyBits : u32 , pub mThrowOnDynamicMarkupInsertionCounter : u32 , pub mIgnoreOpensDuringUnloadCounter : u32 , } pub type nsIDocument_GlobalObject = root :: mozilla :: dom :: GlobalObject ; pub type nsIDocument_Encoding = root :: mozilla :: Encoding ; pub type nsIDocument_NotNull < T > = root :: mozilla :: NotNull < T > ; pub use self :: super :: root :: mozilla :: net :: ReferrerPolicy as nsIDocument_ReferrerPolicyEnum ; pub type nsIDocument_Element = root :: mozilla :: dom :: Element ; pub type nsIDocument_FullscreenRequest = root :: mozilla :: dom :: FullscreenRequest ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDocument_COMTypeInfo { pub _address : u8 , } # [ repr ( C ) ] pub struct nsIDocument_PageUnloadingEventTimeStamp { pub mDocument : root :: nsCOMPtr , pub mSet : bool , } # [ test ] fn bindgen_test_layout_nsIDocument_PageUnloadingEventTimeStamp ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument_PageUnloadingEventTimeStamp > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsIDocument_PageUnloadingEventTimeStamp ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument_PageUnloadingEventTimeStamp > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument_PageUnloadingEventTimeStamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_PageUnloadingEventTimeStamp ) ) . mDocument as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_PageUnloadingEventTimeStamp ) , "::" , stringify ! ( mDocument ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_PageUnloadingEventTimeStamp ) ) . mSet as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_PageUnloadingEventTimeStamp ) , "::" , stringify ! ( mSet ) ) ) ; }
- /// This gets fired when the element that an id refers to changes.
+ /// in nsHTMLDocument.
+ #[repr(C)]
+ pub struct nsIdentifierMapEntry {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: root::nsIdentifierMapEntry_AtomOrString,
+ pub mIdContentList: [u64; 3usize],
+ pub mNameContentList: root::RefPtr<root::nsBaseContentList>,
+ pub mChangeCallbacks: u64,
+ pub mImageElement: root::RefPtr<root::nsIdentifierMapEntry_Element>,
+ }
+ pub type nsIdentifierMapEntry_Element = root::mozilla::dom::Element;
+ pub use self::super::root::mozilla::net::ReferrerPolicy as nsIdentifierMapEntry_ReferrerPolicy;
+ /// @see nsIDocument::IDTargetObserver, this is just here to avoid include
+ /// hell.
+ pub type nsIdentifierMapEntry_IDTargetObserver = ::std::option::Option<
+ unsafe extern "C" fn(
+ aOldElement: *mut root::nsIdentifierMapEntry_Element,
+ aNewelement: *mut root::nsIdentifierMapEntry_Element,
+ aData: *mut ::std::os::raw::c_void,
+ ) -> bool,
+ >;
+ #[repr(C)]
+ pub struct nsIdentifierMapEntry_AtomOrString {
+ pub mAtom: root::RefPtr<root::nsAtom>,
+ pub mString: ::nsstring::nsStringRepr,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIdentifierMapEntry_AtomOrString() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIdentifierMapEntry_AtomOrString>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsIdentifierMapEntry_AtomOrString))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIdentifierMapEntry_AtomOrString>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIdentifierMapEntry_AtomOrString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry_AtomOrString>())).mAtom as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry_AtomOrString),
+ "::",
+ stringify!(mAtom)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry_AtomOrString>())).mString as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry_AtomOrString),
+ "::",
+ stringify!(mString)
+ )
+ );
+ }
+ pub type nsIdentifierMapEntry_KeyType = *const root::nsIdentifierMapEntry_AtomOrString;
+ pub type nsIdentifierMapEntry_KeyTypePointer = *const root::nsIdentifierMapEntry_AtomOrString;
+ pub const nsIdentifierMapEntry_ALLOW_MEMMOVE: root::nsIdentifierMapEntry__bindgen_ty_1 = 0;
+ pub type nsIdentifierMapEntry__bindgen_ty_1 = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIdentifierMapEntry_ChangeCallback {
+ pub mCallback: root::nsIdentifierMapEntry_IDTargetObserver,
+ pub mData: *mut ::std::os::raw::c_void,
+ pub mForImage: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIdentifierMapEntry_ChangeCallback() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIdentifierMapEntry_ChangeCallback>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsIdentifierMapEntry_ChangeCallback))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIdentifierMapEntry_ChangeCallback>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIdentifierMapEntry_ChangeCallback)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry_ChangeCallback>())).mCallback
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry_ChangeCallback),
+ "::",
+ stringify!(mCallback)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry_ChangeCallback>())).mData as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry_ChangeCallback),
+ "::",
+ stringify!(mData)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry_ChangeCallback>())).mForImage
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry_ChangeCallback),
+ "::",
+ stringify!(mForImage)
+ )
+ );
+ }
+ impl Clone for nsIdentifierMapEntry_ChangeCallback {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIdentifierMapEntry_ChangeCallbackEntry {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: root::nsIdentifierMapEntry_ChangeCallback,
+ }
+ pub type nsIdentifierMapEntry_ChangeCallbackEntry_KeyType =
+ root::nsIdentifierMapEntry_ChangeCallback;
+ pub type nsIdentifierMapEntry_ChangeCallbackEntry_KeyTypePointer =
+ *const root::nsIdentifierMapEntry_ChangeCallback;
+ pub const nsIdentifierMapEntry_ChangeCallbackEntry_ALLOW_MEMMOVE:
+ root::nsIdentifierMapEntry_ChangeCallbackEntry__bindgen_ty_1 = 1;
+ pub type nsIdentifierMapEntry_ChangeCallbackEntry__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsIdentifierMapEntry_ChangeCallbackEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIdentifierMapEntry_ChangeCallbackEntry>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsIdentifierMapEntry_ChangeCallbackEntry)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIdentifierMapEntry_ChangeCallbackEntry>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIdentifierMapEntry_ChangeCallbackEntry)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry_ChangeCallbackEntry>())).mKey
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry_ChangeCallbackEntry),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ }
+ impl Clone for nsIdentifierMapEntry_ChangeCallbackEntry {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsIdentifierMapEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIdentifierMapEntry>(),
+ 80usize,
+ concat!("Size of: ", stringify!(nsIdentifierMapEntry))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIdentifierMapEntry>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIdentifierMapEntry))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIdentifierMapEntry>())).mKey as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry>())).mIdContentList as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry),
+ "::",
+ stringify!(mIdContentList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry>())).mNameContentList as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry),
+ "::",
+ stringify!(mNameContentList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry>())).mChangeCallbacks as *const _
+ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry),
+ "::",
+ stringify!(mChangeCallbacks)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIdentifierMapEntry>())).mImageElement as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIdentifierMapEntry),
+ "::",
+ stringify!(mImageElement)
+ )
+ );
+ }
+ pub const nsCSSPropertyID_eCSSProperty_COUNT_no_shorthands: root::nsCSSPropertyID =
+ nsCSSPropertyID::eCSSProperty_all;
+ pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY: root::nsCSSPropertyID =
+ nsCSSPropertyID::eCSSProperty_z_index;
+ pub const nsCSSPropertyID_eCSSProperty_COUNT: root::nsCSSPropertyID =
+ nsCSSPropertyID::eCSSPropertyAlias_WordWrap;
+ pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY2: root::nsCSSPropertyID =
+ nsCSSPropertyID::eCSSProperty_transition;
+ pub const nsCSSPropertyID_eCSSProperty_COUNT_with_aliases: root::nsCSSPropertyID =
+ nsCSSPropertyID::eCSSPropertyExtra_no_properties;
+ pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY3: root::nsCSSPropertyID =
+ nsCSSPropertyID::eCSSPropertyAlias_WebkitMaskSize;
+ #[repr(i32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsCSSPropertyID {
+ eCSSProperty_UNKNOWN = -1,
+ eCSSProperty_align_content = 0,
+ eCSSProperty_align_items = 1,
+ eCSSProperty_align_self = 2,
+ eCSSProperty_animation_delay = 3,
+ eCSSProperty_animation_direction = 4,
+ eCSSProperty_animation_duration = 5,
+ eCSSProperty_animation_fill_mode = 6,
+ eCSSProperty_animation_iteration_count = 7,
+ eCSSProperty_animation_name = 8,
+ eCSSProperty_animation_play_state = 9,
+ eCSSProperty_animation_timing_function = 10,
+ eCSSProperty__moz_appearance = 11,
+ eCSSProperty_backface_visibility = 12,
+ eCSSProperty_background_attachment = 13,
+ eCSSProperty_background_blend_mode = 14,
+ eCSSProperty_background_clip = 15,
+ eCSSProperty_background_color = 16,
+ eCSSProperty_background_image = 17,
+ eCSSProperty_background_origin = 18,
+ eCSSProperty_background_position_x = 19,
+ eCSSProperty_background_position_y = 20,
+ eCSSProperty_background_repeat = 21,
+ eCSSProperty_background_size = 22,
+ eCSSProperty__moz_binding = 23,
+ eCSSProperty_block_size = 24,
+ eCSSProperty_border_block_end_color = 25,
+ eCSSProperty_border_block_end_style = 26,
+ eCSSProperty_border_block_end_width = 27,
+ eCSSProperty_border_block_start_color = 28,
+ eCSSProperty_border_block_start_style = 29,
+ eCSSProperty_border_block_start_width = 30,
+ eCSSProperty_border_bottom_color = 31,
+ eCSSProperty_border_bottom_left_radius = 32,
+ eCSSProperty_border_bottom_right_radius = 33,
+ eCSSProperty_border_bottom_style = 34,
+ eCSSProperty_border_bottom_width = 35,
+ eCSSProperty_border_collapse = 36,
+ eCSSProperty_border_image_outset = 37,
+ eCSSProperty_border_image_repeat = 38,
+ eCSSProperty_border_image_slice = 39,
+ eCSSProperty_border_image_source = 40,
+ eCSSProperty_border_image_width = 41,
+ eCSSProperty_border_inline_end_color = 42,
+ eCSSProperty_border_inline_end_style = 43,
+ eCSSProperty_border_inline_end_width = 44,
+ eCSSProperty_border_inline_start_color = 45,
+ eCSSProperty_border_inline_start_style = 46,
+ eCSSProperty_border_inline_start_width = 47,
+ eCSSProperty_border_left_color = 48,
+ eCSSProperty_border_left_style = 49,
+ eCSSProperty_border_left_width = 50,
+ eCSSProperty_border_right_color = 51,
+ eCSSProperty_border_right_style = 52,
+ eCSSProperty_border_right_width = 53,
+ eCSSProperty_border_spacing = 54,
+ eCSSProperty_border_top_color = 55,
+ eCSSProperty_border_top_left_radius = 56,
+ eCSSProperty_border_top_right_radius = 57,
+ eCSSProperty_border_top_style = 58,
+ eCSSProperty_border_top_width = 59,
+ eCSSProperty_bottom = 60,
+ eCSSProperty__moz_box_align = 61,
+ eCSSProperty_box_decoration_break = 62,
+ eCSSProperty__moz_box_direction = 63,
+ eCSSProperty__moz_box_flex = 64,
+ eCSSProperty__moz_box_ordinal_group = 65,
+ eCSSProperty__moz_box_orient = 66,
+ eCSSProperty__moz_box_pack = 67,
+ eCSSProperty_box_shadow = 68,
+ eCSSProperty_box_sizing = 69,
+ eCSSProperty_caption_side = 70,
+ eCSSProperty_caret_color = 71,
+ eCSSProperty_clear = 72,
+ eCSSProperty_clip = 73,
+ eCSSProperty_clip_path = 74,
+ eCSSProperty_clip_rule = 75,
+ eCSSProperty_color = 76,
+ eCSSProperty_color_adjust = 77,
+ eCSSProperty_color_interpolation = 78,
+ eCSSProperty_color_interpolation_filters = 79,
+ eCSSProperty_column_count = 80,
+ eCSSProperty_column_fill = 81,
+ eCSSProperty_column_gap = 82,
+ eCSSProperty_column_rule_color = 83,
+ eCSSProperty_column_rule_style = 84,
+ eCSSProperty_column_rule_width = 85,
+ eCSSProperty_column_span = 86,
+ eCSSProperty_column_width = 87,
+ eCSSProperty_contain = 88,
+ eCSSProperty_content = 89,
+ eCSSProperty__moz_context_properties = 90,
+ eCSSProperty__moz_control_character_visibility = 91,
+ eCSSProperty_counter_increment = 92,
+ eCSSProperty_counter_reset = 93,
+ eCSSProperty_cursor = 94,
+ eCSSProperty_direction = 95,
+ eCSSProperty_display = 96,
+ eCSSProperty_dominant_baseline = 97,
+ eCSSProperty_empty_cells = 98,
+ eCSSProperty_fill = 99,
+ eCSSProperty_fill_opacity = 100,
+ eCSSProperty_fill_rule = 101,
+ eCSSProperty_filter = 102,
+ eCSSProperty_flex_basis = 103,
+ eCSSProperty_flex_direction = 104,
+ eCSSProperty_flex_grow = 105,
+ eCSSProperty_flex_shrink = 106,
+ eCSSProperty_flex_wrap = 107,
+ eCSSProperty_float_ = 108,
+ eCSSProperty__moz_float_edge = 109,
+ eCSSProperty_flood_color = 110,
+ eCSSProperty_flood_opacity = 111,
+ eCSSProperty_font_family = 112,
+ eCSSProperty_font_feature_settings = 113,
+ eCSSProperty_font_kerning = 114,
+ eCSSProperty_font_language_override = 115,
+ eCSSProperty_font_size = 116,
+ eCSSProperty_font_size_adjust = 117,
+ eCSSProperty__moz_font_smoothing_background_color = 118,
+ eCSSProperty_font_stretch = 119,
+ eCSSProperty_font_style = 120,
+ eCSSProperty_font_synthesis = 121,
+ eCSSProperty_font_variant_alternates = 122,
+ eCSSProperty_font_variant_caps = 123,
+ eCSSProperty_font_variant_east_asian = 124,
+ eCSSProperty_font_variant_ligatures = 125,
+ eCSSProperty_font_variant_numeric = 126,
+ eCSSProperty_font_variant_position = 127,
+ eCSSProperty_font_variation_settings = 128,
+ eCSSProperty_font_weight = 129,
+ eCSSProperty__moz_force_broken_image_icon = 130,
+ eCSSProperty_grid_auto_columns = 131,
+ eCSSProperty_grid_auto_flow = 132,
+ eCSSProperty_grid_auto_rows = 133,
+ eCSSProperty_grid_column_end = 134,
+ eCSSProperty_grid_column_gap = 135,
+ eCSSProperty_grid_column_start = 136,
+ eCSSProperty_grid_row_end = 137,
+ eCSSProperty_grid_row_gap = 138,
+ eCSSProperty_grid_row_start = 139,
+ eCSSProperty_grid_template_areas = 140,
+ eCSSProperty_grid_template_columns = 141,
+ eCSSProperty_grid_template_rows = 142,
+ eCSSProperty_height = 143,
+ eCSSProperty_hyphens = 144,
+ eCSSProperty_initial_letter = 145,
+ eCSSProperty_image_orientation = 146,
+ eCSSProperty__moz_image_region = 147,
+ eCSSProperty_image_rendering = 148,
+ eCSSProperty_ime_mode = 149,
+ eCSSProperty_inline_size = 150,
+ eCSSProperty_isolation = 151,
+ eCSSProperty_justify_content = 152,
+ eCSSProperty_justify_items = 153,
+ eCSSProperty_justify_self = 154,
+ eCSSProperty__x_lang = 155,
+ eCSSProperty_left = 156,
+ eCSSProperty_letter_spacing = 157,
+ eCSSProperty_lighting_color = 158,
+ eCSSProperty_line_height = 159,
+ eCSSProperty_list_style_image = 160,
+ eCSSProperty_list_style_position = 161,
+ eCSSProperty_list_style_type = 162,
+ eCSSProperty_margin_block_end = 163,
+ eCSSProperty_margin_block_start = 164,
+ eCSSProperty_margin_bottom = 165,
+ eCSSProperty_margin_inline_end = 166,
+ eCSSProperty_margin_inline_start = 167,
+ eCSSProperty_margin_left = 168,
+ eCSSProperty_margin_right = 169,
+ eCSSProperty_margin_top = 170,
+ eCSSProperty_marker_end = 171,
+ eCSSProperty_marker_mid = 172,
+ eCSSProperty_marker_start = 173,
+ eCSSProperty_mask_clip = 174,
+ eCSSProperty_mask_composite = 175,
+ eCSSProperty_mask_image = 176,
+ eCSSProperty_mask_mode = 177,
+ eCSSProperty_mask_origin = 178,
+ eCSSProperty_mask_position_x = 179,
+ eCSSProperty_mask_position_y = 180,
+ eCSSProperty_mask_repeat = 181,
+ eCSSProperty_mask_size = 182,
+ eCSSProperty_mask_type = 183,
+ eCSSProperty__moz_math_display = 184,
+ eCSSProperty__moz_math_variant = 185,
+ eCSSProperty_max_block_size = 186,
+ eCSSProperty_max_height = 187,
+ eCSSProperty_max_inline_size = 188,
+ eCSSProperty_max_width = 189,
+ eCSSProperty_min_block_size = 190,
+ eCSSProperty__moz_min_font_size_ratio = 191,
+ eCSSProperty_min_height = 192,
+ eCSSProperty_min_inline_size = 193,
+ eCSSProperty_min_width = 194,
+ eCSSProperty_mix_blend_mode = 195,
+ eCSSProperty_object_fit = 196,
+ eCSSProperty_object_position = 197,
+ eCSSProperty_offset_block_end = 198,
+ eCSSProperty_offset_block_start = 199,
+ eCSSProperty_offset_inline_end = 200,
+ eCSSProperty_offset_inline_start = 201,
+ eCSSProperty_opacity = 202,
+ eCSSProperty_order = 203,
+ eCSSProperty__moz_orient = 204,
+ eCSSProperty__moz_osx_font_smoothing = 205,
+ eCSSProperty_outline_color = 206,
+ eCSSProperty_outline_offset = 207,
+ eCSSProperty__moz_outline_radius_bottomleft = 208,
+ eCSSProperty__moz_outline_radius_bottomright = 209,
+ eCSSProperty__moz_outline_radius_topleft = 210,
+ eCSSProperty__moz_outline_radius_topright = 211,
+ eCSSProperty_outline_style = 212,
+ eCSSProperty_outline_width = 213,
+ eCSSProperty_overflow_clip_box_block = 214,
+ eCSSProperty_overflow_clip_box_inline = 215,
+ eCSSProperty_overflow_x = 216,
+ eCSSProperty_overflow_y = 217,
+ eCSSProperty_padding_block_end = 218,
+ eCSSProperty_padding_block_start = 219,
+ eCSSProperty_padding_bottom = 220,
+ eCSSProperty_padding_inline_end = 221,
+ eCSSProperty_padding_inline_start = 222,
+ eCSSProperty_padding_left = 223,
+ eCSSProperty_padding_right = 224,
+ eCSSProperty_padding_top = 225,
+ eCSSProperty_page_break_after = 226,
+ eCSSProperty_page_break_before = 227,
+ eCSSProperty_page_break_inside = 228,
+ eCSSProperty_paint_order = 229,
+ eCSSProperty_perspective = 230,
+ eCSSProperty_perspective_origin = 231,
+ eCSSProperty_pointer_events = 232,
+ eCSSProperty_position = 233,
+ eCSSProperty_quotes = 234,
+ eCSSProperty_resize = 235,
+ eCSSProperty_right = 236,
+ eCSSProperty_ruby_align = 237,
+ eCSSProperty_ruby_position = 238,
+ eCSSProperty__moz_script_level = 239,
+ eCSSProperty__moz_script_min_size = 240,
+ eCSSProperty__moz_script_size_multiplier = 241,
+ eCSSProperty_scroll_behavior = 242,
+ eCSSProperty_overscroll_behavior_x = 243,
+ eCSSProperty_overscroll_behavior_y = 244,
+ eCSSProperty_scroll_snap_coordinate = 245,
+ eCSSProperty_scroll_snap_destination = 246,
+ eCSSProperty_scroll_snap_points_x = 247,
+ eCSSProperty_scroll_snap_points_y = 248,
+ eCSSProperty_scroll_snap_type_x = 249,
+ eCSSProperty_scroll_snap_type_y = 250,
+ eCSSProperty_shape_image_threshold = 251,
+ eCSSProperty_shape_outside = 252,
+ eCSSProperty_shape_rendering = 253,
+ eCSSProperty__x_span = 254,
+ eCSSProperty__moz_stack_sizing = 255,
+ eCSSProperty_stop_color = 256,
+ eCSSProperty_stop_opacity = 257,
+ eCSSProperty_stroke = 258,
+ eCSSProperty_stroke_dasharray = 259,
+ eCSSProperty_stroke_dashoffset = 260,
+ eCSSProperty_stroke_linecap = 261,
+ eCSSProperty_stroke_linejoin = 262,
+ eCSSProperty_stroke_miterlimit = 263,
+ eCSSProperty_stroke_opacity = 264,
+ eCSSProperty_stroke_width = 265,
+ eCSSProperty__x_system_font = 266,
+ eCSSProperty__moz_tab_size = 267,
+ eCSSProperty_table_layout = 268,
+ eCSSProperty_text_align = 269,
+ eCSSProperty_text_align_last = 270,
+ eCSSProperty_text_anchor = 271,
+ eCSSProperty_text_combine_upright = 272,
+ eCSSProperty_text_decoration_color = 273,
+ eCSSProperty_text_decoration_line = 274,
+ eCSSProperty_text_decoration_style = 275,
+ eCSSProperty_text_emphasis_color = 276,
+ eCSSProperty_text_emphasis_position = 277,
+ eCSSProperty_text_emphasis_style = 278,
+ eCSSProperty__webkit_text_fill_color = 279,
+ eCSSProperty_text_indent = 280,
+ eCSSProperty_text_justify = 281,
+ eCSSProperty_text_orientation = 282,
+ eCSSProperty_text_overflow = 283,
+ eCSSProperty_text_rendering = 284,
+ eCSSProperty_text_shadow = 285,
+ eCSSProperty__moz_text_size_adjust = 286,
+ eCSSProperty__webkit_text_stroke_color = 287,
+ eCSSProperty__webkit_text_stroke_width = 288,
+ eCSSProperty_text_transform = 289,
+ eCSSProperty__x_text_zoom = 290,
+ eCSSProperty_top = 291,
+ eCSSProperty__moz_top_layer = 292,
+ eCSSProperty_touch_action = 293,
+ eCSSProperty_transform = 294,
+ eCSSProperty_transform_box = 295,
+ eCSSProperty_transform_origin = 296,
+ eCSSProperty_transform_style = 297,
+ eCSSProperty_transition_delay = 298,
+ eCSSProperty_transition_duration = 299,
+ eCSSProperty_transition_property = 300,
+ eCSSProperty_transition_timing_function = 301,
+ eCSSProperty_unicode_bidi = 302,
+ eCSSProperty__moz_user_focus = 303,
+ eCSSProperty__moz_user_input = 304,
+ eCSSProperty__moz_user_modify = 305,
+ eCSSProperty__moz_user_select = 306,
+ eCSSProperty_vector_effect = 307,
+ eCSSProperty_vertical_align = 308,
+ eCSSProperty_visibility = 309,
+ eCSSProperty_white_space = 310,
+ eCSSProperty_width = 311,
+ eCSSProperty_will_change = 312,
+ eCSSProperty__moz_window_dragging = 313,
+ eCSSProperty__moz_window_shadow = 314,
+ eCSSProperty__moz_window_opacity = 315,
+ eCSSProperty__moz_window_transform = 316,
+ eCSSProperty__moz_window_transform_origin = 317,
+ eCSSProperty_word_break = 318,
+ eCSSProperty_word_spacing = 319,
+ eCSSProperty_overflow_wrap = 320,
+ eCSSProperty_writing_mode = 321,
+ eCSSProperty_z_index = 322,
+ eCSSProperty_all = 323,
+ eCSSProperty_animation = 324,
+ eCSSProperty_background = 325,
+ eCSSProperty_background_position = 326,
+ eCSSProperty_border = 327,
+ eCSSProperty_border_block_end = 328,
+ eCSSProperty_border_block_start = 329,
+ eCSSProperty_border_bottom = 330,
+ eCSSProperty_border_color = 331,
+ eCSSProperty_border_image = 332,
+ eCSSProperty_border_inline_end = 333,
+ eCSSProperty_border_inline_start = 334,
+ eCSSProperty_border_left = 335,
+ eCSSProperty_border_radius = 336,
+ eCSSProperty_border_right = 337,
+ eCSSProperty_border_style = 338,
+ eCSSProperty_border_top = 339,
+ eCSSProperty_border_width = 340,
+ eCSSProperty_column_rule = 341,
+ eCSSProperty_columns = 342,
+ eCSSProperty_flex = 343,
+ eCSSProperty_flex_flow = 344,
+ eCSSProperty_font = 345,
+ eCSSProperty_font_variant = 346,
+ eCSSProperty_grid = 347,
+ eCSSProperty_grid_area = 348,
+ eCSSProperty_grid_column = 349,
+ eCSSProperty_grid_gap = 350,
+ eCSSProperty_grid_row = 351,
+ eCSSProperty_grid_template = 352,
+ eCSSProperty_list_style = 353,
+ eCSSProperty_margin = 354,
+ eCSSProperty_marker = 355,
+ eCSSProperty_mask = 356,
+ eCSSProperty_mask_position = 357,
+ eCSSProperty_outline = 358,
+ eCSSProperty__moz_outline_radius = 359,
+ eCSSProperty_overflow = 360,
+ eCSSProperty_overflow_clip_box = 361,
+ eCSSProperty_padding = 362,
+ eCSSProperty_place_content = 363,
+ eCSSProperty_place_items = 364,
+ eCSSProperty_place_self = 365,
+ eCSSProperty_overscroll_behavior = 366,
+ eCSSProperty_scroll_snap_type = 367,
+ eCSSProperty_text_decoration = 368,
+ eCSSProperty_text_emphasis = 369,
+ eCSSProperty__webkit_text_stroke = 370,
+ eCSSProperty__moz_transform = 371,
+ eCSSProperty_transition = 372,
+ eCSSPropertyAlias_WordWrap = 373,
+ eCSSPropertyAlias_MozTransformOrigin = 374,
+ eCSSPropertyAlias_MozPerspectiveOrigin = 375,
+ eCSSPropertyAlias_MozPerspective = 376,
+ eCSSPropertyAlias_MozTransformStyle = 377,
+ eCSSPropertyAlias_MozBackfaceVisibility = 378,
+ eCSSPropertyAlias_MozBorderImage = 379,
+ eCSSPropertyAlias_MozTransition = 380,
+ eCSSPropertyAlias_MozTransitionDelay = 381,
+ eCSSPropertyAlias_MozTransitionDuration = 382,
+ eCSSPropertyAlias_MozTransitionProperty = 383,
+ eCSSPropertyAlias_MozTransitionTimingFunction = 384,
+ eCSSPropertyAlias_MozAnimation = 385,
+ eCSSPropertyAlias_MozAnimationDelay = 386,
+ eCSSPropertyAlias_MozAnimationDirection = 387,
+ eCSSPropertyAlias_MozAnimationDuration = 388,
+ eCSSPropertyAlias_MozAnimationFillMode = 389,
+ eCSSPropertyAlias_MozAnimationIterationCount = 390,
+ eCSSPropertyAlias_MozAnimationName = 391,
+ eCSSPropertyAlias_MozAnimationPlayState = 392,
+ eCSSPropertyAlias_MozAnimationTimingFunction = 393,
+ eCSSPropertyAlias_MozBoxSizing = 394,
+ eCSSPropertyAlias_MozFontFeatureSettings = 395,
+ eCSSPropertyAlias_MozFontLanguageOverride = 396,
+ eCSSPropertyAlias_MozPaddingEnd = 397,
+ eCSSPropertyAlias_MozPaddingStart = 398,
+ eCSSPropertyAlias_MozMarginEnd = 399,
+ eCSSPropertyAlias_MozMarginStart = 400,
+ eCSSPropertyAlias_MozBorderEnd = 401,
+ eCSSPropertyAlias_MozBorderEndColor = 402,
+ eCSSPropertyAlias_MozBorderEndStyle = 403,
+ eCSSPropertyAlias_MozBorderEndWidth = 404,
+ eCSSPropertyAlias_MozBorderStart = 405,
+ eCSSPropertyAlias_MozBorderStartColor = 406,
+ eCSSPropertyAlias_MozBorderStartStyle = 407,
+ eCSSPropertyAlias_MozBorderStartWidth = 408,
+ eCSSPropertyAlias_MozHyphens = 409,
+ eCSSPropertyAlias_MozColumnCount = 410,
+ eCSSPropertyAlias_MozColumnFill = 411,
+ eCSSPropertyAlias_MozColumnGap = 412,
+ eCSSPropertyAlias_MozColumnRule = 413,
+ eCSSPropertyAlias_MozColumnRuleColor = 414,
+ eCSSPropertyAlias_MozColumnRuleStyle = 415,
+ eCSSPropertyAlias_MozColumnRuleWidth = 416,
+ eCSSPropertyAlias_MozColumnSpan = 417,
+ eCSSPropertyAlias_MozColumnWidth = 418,
+ eCSSPropertyAlias_MozColumns = 419,
+ eCSSPropertyAlias_WebkitAnimation = 420,
+ eCSSPropertyAlias_WebkitAnimationDelay = 421,
+ eCSSPropertyAlias_WebkitAnimationDirection = 422,
+ eCSSPropertyAlias_WebkitAnimationDuration = 423,
+ eCSSPropertyAlias_WebkitAnimationFillMode = 424,
+ eCSSPropertyAlias_WebkitAnimationIterationCount = 425,
+ eCSSPropertyAlias_WebkitAnimationName = 426,
+ eCSSPropertyAlias_WebkitAnimationPlayState = 427,
+ eCSSPropertyAlias_WebkitAnimationTimingFunction = 428,
+ eCSSPropertyAlias_WebkitFilter = 429,
+ eCSSPropertyAlias_WebkitTextSizeAdjust = 430,
+ eCSSPropertyAlias_WebkitTransform = 431,
+ eCSSPropertyAlias_WebkitTransformOrigin = 432,
+ eCSSPropertyAlias_WebkitTransformStyle = 433,
+ eCSSPropertyAlias_WebkitBackfaceVisibility = 434,
+ eCSSPropertyAlias_WebkitPerspective = 435,
+ eCSSPropertyAlias_WebkitPerspectiveOrigin = 436,
+ eCSSPropertyAlias_WebkitTransition = 437,
+ eCSSPropertyAlias_WebkitTransitionDelay = 438,
+ eCSSPropertyAlias_WebkitTransitionDuration = 439,
+ eCSSPropertyAlias_WebkitTransitionProperty = 440,
+ eCSSPropertyAlias_WebkitTransitionTimingFunction = 441,
+ eCSSPropertyAlias_WebkitBorderRadius = 442,
+ eCSSPropertyAlias_WebkitBorderTopLeftRadius = 443,
+ eCSSPropertyAlias_WebkitBorderTopRightRadius = 444,
+ eCSSPropertyAlias_WebkitBorderBottomLeftRadius = 445,
+ eCSSPropertyAlias_WebkitBorderBottomRightRadius = 446,
+ eCSSPropertyAlias_WebkitBackgroundClip = 447,
+ eCSSPropertyAlias_WebkitBackgroundOrigin = 448,
+ eCSSPropertyAlias_WebkitBackgroundSize = 449,
+ eCSSPropertyAlias_WebkitBorderImage = 450,
+ eCSSPropertyAlias_WebkitBoxShadow = 451,
+ eCSSPropertyAlias_WebkitBoxSizing = 452,
+ eCSSPropertyAlias_WebkitBoxFlex = 453,
+ eCSSPropertyAlias_WebkitBoxOrdinalGroup = 454,
+ eCSSPropertyAlias_WebkitBoxOrient = 455,
+ eCSSPropertyAlias_WebkitBoxDirection = 456,
+ eCSSPropertyAlias_WebkitBoxAlign = 457,
+ eCSSPropertyAlias_WebkitBoxPack = 458,
+ eCSSPropertyAlias_WebkitFlexDirection = 459,
+ eCSSPropertyAlias_WebkitFlexWrap = 460,
+ eCSSPropertyAlias_WebkitFlexFlow = 461,
+ eCSSPropertyAlias_WebkitOrder = 462,
+ eCSSPropertyAlias_WebkitFlex = 463,
+ eCSSPropertyAlias_WebkitFlexGrow = 464,
+ eCSSPropertyAlias_WebkitFlexShrink = 465,
+ eCSSPropertyAlias_WebkitFlexBasis = 466,
+ eCSSPropertyAlias_WebkitJustifyContent = 467,
+ eCSSPropertyAlias_WebkitAlignItems = 468,
+ eCSSPropertyAlias_WebkitAlignSelf = 469,
+ eCSSPropertyAlias_WebkitAlignContent = 470,
+ eCSSPropertyAlias_WebkitUserSelect = 471,
+ eCSSPropertyAlias_WebkitMask = 472,
+ eCSSPropertyAlias_WebkitMaskClip = 473,
+ eCSSPropertyAlias_WebkitMaskComposite = 474,
+ eCSSPropertyAlias_WebkitMaskImage = 475,
+ eCSSPropertyAlias_WebkitMaskOrigin = 476,
+ eCSSPropertyAlias_WebkitMaskPosition = 477,
+ eCSSPropertyAlias_WebkitMaskPositionX = 478,
+ eCSSPropertyAlias_WebkitMaskPositionY = 479,
+ eCSSPropertyAlias_WebkitMaskRepeat = 480,
+ eCSSPropertyAlias_WebkitMaskSize = 481,
+ eCSSPropertyExtra_no_properties = 482,
+ eCSSPropertyExtra_all_properties = 483,
+ eCSSPropertyExtra_x_none_value = 484,
+ eCSSPropertyExtra_x_auto_value = 485,
+ eCSSPropertyExtra_variable = 486,
+ eCSSProperty_DOM = 487,
+ }
+ #[repr(i32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsCSSFontDesc {
+ eCSSFontDesc_UNKNOWN = -1,
+ eCSSFontDesc_Family = 0,
+ eCSSFontDesc_Style = 1,
+ eCSSFontDesc_Weight = 2,
+ eCSSFontDesc_Stretch = 3,
+ eCSSFontDesc_Src = 4,
+ eCSSFontDesc_UnicodeRange = 5,
+ eCSSFontDesc_FontFeatureSettings = 6,
+ eCSSFontDesc_FontLanguageOverride = 7,
+ eCSSFontDesc_Display = 8,
+ eCSSFontDesc_COUNT = 9,
+ }
+ #[repr(i32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsCSSCounterDesc {
+ eCSSCounterDesc_UNKNOWN = -1,
+ eCSSCounterDesc_System = 0,
+ eCSSCounterDesc_Symbols = 1,
+ eCSSCounterDesc_AdditiveSymbols = 2,
+ eCSSCounterDesc_Negative = 3,
+ eCSSCounterDesc_Prefix = 4,
+ eCSSCounterDesc_Suffix = 5,
+ eCSSCounterDesc_Range = 6,
+ eCSSCounterDesc_Pad = 7,
+ eCSSCounterDesc_Fallback = 8,
+ eCSSCounterDesc_SpeakAs = 9,
+ eCSSCounterDesc_COUNT = 10,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoStyleSet {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoSourceSizeList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RustString {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoStyleSheetContents {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoDeclarationBlock {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoStyleRule {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoAnimationValue {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct RawServoMediaList {
+ _unused: [u8; 0],
+ }
+ pub mod nsStyleTransformMatrix {
+ #[allow(unused_imports)]
+ use self::super::super::root;
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum MatrixTransformOperator {
+ Interpolate = 0,
+ Accumulate = 1,
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsCSSPropertyIDSet {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsSimpleContentList {
+ _unused: [u8; 0],
+ }
+ pub type RawGeckoNode = root::nsINode;
+ pub type RawGeckoElement = root::mozilla::dom::Element;
+ pub type RawGeckoDocument = root::nsIDocument;
+ pub type RawGeckoPresContext = root::nsPresContext;
+ pub type RawGeckoXBLBinding = root::nsXBLBinding;
+ pub type RawGeckoURLExtraData = root::mozilla::URLExtraData;
+ pub type RawGeckoServoAnimationValueList =
+ root::nsTArray<root::RefPtr<root::RawServoAnimationValue>>;
+ pub type RawGeckoKeyframeList = root::nsTArray<root::mozilla::Keyframe>;
+ pub type RawGeckoPropertyValuePairList = root::nsTArray<root::mozilla::PropertyValuePair>;
+ pub type RawGeckoComputedKeyframeValuesList =
+ root::nsTArray<root::mozilla::ComputedKeyframeValues>;
+ pub type RawGeckoStyleAnimationList = root::nsStyleAutoArray<root::mozilla::StyleAnimation>;
+ pub type RawGeckoFontFaceRuleList = root::nsTArray<root::nsFontFaceRuleContainer>;
+ pub type RawGeckoAnimationPropertySegment = root::mozilla::AnimationPropertySegment;
+ pub type RawGeckoComputedTiming = root::mozilla::ComputedTiming;
+ pub type RawGeckoServoStyleRuleList = root::nsTArray<*const root::RawServoStyleRule>;
+ pub type RawGeckoCSSPropertyIDList = root::nsTArray<root::nsCSSPropertyID>;
+ pub type RawGeckoGfxMatrix4x4 = [root::mozilla::gfx::Float; 16usize];
+ pub type RawGeckoStyleChildrenIterator = root::mozilla::dom::StyleChildrenIterator;
+ pub type ServoStyleContextBorrowed = *const root::mozilla::ServoStyleContext;
+ pub type ServoStyleContextBorrowedOrNull = *const root::mozilla::ServoStyleContext;
+ pub type ServoComputedDataBorrowed = *const root::ServoComputedData;
+ pub type RawGeckoNodeBorrowed = *const root::RawGeckoNode;
+ pub type RawGeckoNodeBorrowedOrNull = *const root::RawGeckoNode;
+ pub type RawGeckoElementBorrowed = *const root::RawGeckoElement;
+ pub type RawGeckoElementBorrowedOrNull = *const root::RawGeckoElement;
+ pub type RawGeckoDocumentBorrowed = *const root::RawGeckoDocument;
+ pub type RawGeckoDocumentBorrowedOrNull = *const root::RawGeckoDocument;
+ pub type RawGeckoXBLBindingBorrowed = *const root::RawGeckoXBLBinding;
+ pub type RawGeckoXBLBindingBorrowedOrNull = *const root::RawGeckoXBLBinding;
+ pub type RawGeckoPresContextOwned = *mut root::RawGeckoPresContext;
+ pub type RawGeckoPresContextBorrowed = *const root::RawGeckoPresContext;
+ pub type RawGeckoPresContextBorrowedMut = *mut root::RawGeckoPresContext;
+ pub type RawGeckoServoAnimationValueListBorrowedMut =
+ *mut root::RawGeckoServoAnimationValueList;
+ pub type RawGeckoServoAnimationValueListBorrowed = *const root::RawGeckoServoAnimationValueList;
+ pub type RawGeckoKeyframeListBorrowedMut = *mut root::RawGeckoKeyframeList;
+ pub type RawGeckoKeyframeListBorrowed = *const root::RawGeckoKeyframeList;
+ pub type RawGeckoPropertyValuePairListBorrowedMut = *mut root::RawGeckoPropertyValuePairList;
+ pub type RawGeckoPropertyValuePairListBorrowed = *const root::RawGeckoPropertyValuePairList;
+ pub type RawGeckoComputedKeyframeValuesListBorrowedMut =
+ *mut root::RawGeckoComputedKeyframeValuesList;
+ pub type RawGeckoStyleAnimationListBorrowedMut = *mut root::RawGeckoStyleAnimationList;
+ pub type RawGeckoStyleAnimationListBorrowed = *const root::RawGeckoStyleAnimationList;
+ pub type RawGeckoFontFaceRuleListBorrowedMut = *mut root::RawGeckoFontFaceRuleList;
+ pub type RawGeckoAnimationPropertySegmentBorrowed =
+ *const root::RawGeckoAnimationPropertySegment;
+ pub type RawGeckoComputedTimingBorrowed = *const root::RawGeckoComputedTiming;
+ pub type RawGeckoServoStyleRuleListBorrowedMut = *mut root::RawGeckoServoStyleRuleList;
+ pub type RawGeckoCSSPropertyIDListBorrowed = *const root::RawGeckoCSSPropertyIDList;
+ pub type RawGeckoStyleChildrenIteratorBorrowedMut = *mut root::RawGeckoStyleChildrenIterator;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsHTMLCSSStyleSheet {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsHTMLStyleSheet {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIBFCacheEntry {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDocumentEncoder {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIStructuredCloneContainer {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsSMILAnimationController {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct nsIDocument {
+ pub _base: root::nsINode,
+ pub _base_1: root::mozilla::dom::DocumentOrShadowRoot,
+ pub _base_2: root::mozilla::dom::DispatcherTrait,
+ pub mDeprecationWarnedAbout: u64,
+ pub mDocWarningWarnedAbout: u64,
+ pub mServoSelectorCache: root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>,
+ pub mGeckoSelectorCache: root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>,
+ pub mReferrer: root::nsCString,
+ pub mLastModified: ::nsstring::nsStringRepr,
+ pub mDocumentURI: root::nsCOMPtr,
+ pub mOriginalURI: root::nsCOMPtr,
+ pub mChromeXHRDocURI: root::nsCOMPtr,
+ pub mDocumentBaseURI: root::nsCOMPtr,
+ pub mChromeXHRDocBaseURI: root::nsCOMPtr,
+ pub mCachedURLData: root::RefPtr<root::mozilla::URLExtraData>,
+ pub mDocumentLoadGroup: root::nsWeakPtr,
+ pub mReferrerPolicySet: bool,
+ pub mReferrerPolicy: root::nsIDocument_ReferrerPolicyEnum,
+ pub mBlockAllMixedContent: bool,
+ pub mBlockAllMixedContentPreloads: bool,
+ pub mUpgradeInsecureRequests: bool,
+ pub mUpgradeInsecurePreloads: bool,
+ pub mDocumentContainer: u64,
+ pub mCharacterSet: root::mozilla::NotNull<*const root::nsIDocument_Encoding>,
+ pub mCharacterSetSource: i32,
+ pub mParentDocument: *mut root::nsIDocument,
+ pub mCachedRootElement: *mut root::mozilla::dom::Element,
+ pub mNodeInfoManager: *mut root::nsNodeInfoManager,
+ pub mCSSLoader: root::RefPtr<root::mozilla::css::Loader>,
+ pub mStyleImageLoader: root::RefPtr<root::mozilla::css::ImageLoader>,
+ pub mAttrStyleSheet: root::RefPtr<root::nsHTMLStyleSheet>,
+ pub mStyleAttrStyleSheet: root::RefPtr<root::nsHTMLCSSStyleSheet>,
+ pub mImageTracker: root::RefPtr<root::mozilla::dom::ImageTracker>,
+ pub mActivityObservers: u64,
+ pub mLinksToUpdate: [u64; 3usize],
+ pub mAnimationController: root::RefPtr<root::nsSMILAnimationController>,
+ pub mPropertyTable: root::nsPropertyTable,
+ pub mExtraPropertyTables: root::nsTArray<root::nsAutoPtr<root::nsPropertyTable>>,
+ pub mChildrenCollection: root::nsCOMPtr,
+ pub mFontFaceSet: root::RefPtr<root::mozilla::dom::FontFaceSet>,
+ pub mLastFocusTime: root::mozilla::TimeStamp,
+ pub mDocumentState: root::mozilla::EventStates,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 7usize], u8>,
+ pub mCompatMode: root::nsCompatibility,
+ pub mReadyState: root::nsIDocument_ReadyState,
+ pub mStyleBackendType: root::mozilla::StyleBackendType,
+ pub mVisibilityState: root::mozilla::dom::VisibilityState,
+ pub mType: root::nsIDocument_Type,
+ pub mDefaultElementType: u8,
+ pub mAllowXULXBL: root::nsIDocument_Tri,
+ /// This is true while FlushPendingLinkUpdates executes. Calls to
+ /// [Un]RegisterPendingLinkUpdate will assert when this is true.
+ pub mIsLinkUpdateRegistrationsForbidden: bool,
+ pub mScriptGlobalObject: root::nsCOMPtr,
+ pub mOriginalDocument: root::nsCOMPtr,
+ pub mBidiOptions: u32,
+ pub mSandboxFlags: u32,
+ pub mContentLanguage: root::nsCString,
+ pub mChannel: root::nsCOMPtr,
+ pub mContentType: root::nsCString,
+ pub mSecurityInfo: root::nsCOMPtr,
+ pub mFailedChannel: root::nsCOMPtr,
+ pub mPartID: u32,
+ pub mMarkedCCGeneration: u32,
+ pub mPresShell: *mut root::nsIPresShell,
+ pub mSubtreeModifiedTargets: root::nsCOMArray,
+ pub mSubtreeModifiedDepth: u32,
+ pub mDisplayDocument: root::nsCOMPtr,
+ pub mEventsSuppressed: u32,
+ /// https://html.spec.whatwg.org/#ignore-destructive-writes-counter
+ pub mIgnoreDestructiveWritesCounter: u32,
+ /// The current frame request callback handle
+ pub mFrameRequestCallbackCounter: i32,
+ pub mStaticCloneCount: u32,
+ pub mBlockedTrackingNodes: root::nsTArray<root::nsWeakPtr>,
+ pub mWindow: *mut root::nsPIDOMWindowInner,
+ pub mCachedEncoder: root::nsCOMPtr,
+ pub mFrameRequestCallbacks: root::nsTArray<root::nsIDocument_FrameRequest>,
+ pub mBFCacheEntry: *mut root::nsIBFCacheEntry,
+ pub mBaseTarget: ::nsstring::nsStringRepr,
+ pub mStateObjectContainer: root::nsCOMPtr,
+ pub mStateObjectCached: root::nsCOMPtr,
+ pub mInSyncOperationCount: u32,
+ pub mXPathEvaluator: root::RefPtr<root::mozilla::dom::XPathEvaluator>,
+ pub mAnonymousContents: root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>,
+ pub mBlockDOMContentLoaded: u32,
+ pub mDOMMediaQueryLists: root::mozilla::LinkedList,
+ pub mUseCounters: [u64; 2usize],
+ pub mChildDocumentUseCounters: [u64; 2usize],
+ pub mNotifiedPageForUseCounter: [u64; 2usize],
+ pub mIncCounters: u16,
+ pub mUserHasInteracted: bool,
+ pub mUserHasActivatedInteraction: bool,
+ pub mPageUnloadingEventTimeStamp: root::mozilla::TimeStamp,
+ pub mDocGroup: root::RefPtr<root::mozilla::dom::DocGroup>,
+ pub mTrackingScripts: [u64; 4usize],
+ pub mBufferedCSPViolations: root::nsTArray<root::nsCOMPtr>,
+ pub mAncestorPrincipals: root::nsTArray<root::nsCOMPtr>,
+ pub mAncestorOuterWindowIDs: root::nsTArray<u64>,
+ pub mServoRestyleRoot: root::nsCOMPtr,
+ pub mServoRestyleRootDirtyBits: u32,
+ pub mThrowOnDynamicMarkupInsertionCounter: u32,
+ pub mIgnoreOpensDuringUnloadCounter: u32,
+ }
+ pub type nsIDocument_GlobalObject = root::mozilla::dom::GlobalObject;
+ pub type nsIDocument_Encoding = root::mozilla::Encoding;
+ pub type nsIDocument_NotNull<T> = root::mozilla::NotNull<T>;
+ pub use self::super::root::mozilla::net::ReferrerPolicy as nsIDocument_ReferrerPolicyEnum;
+ pub type nsIDocument_Element = root::mozilla::dom::Element;
+ pub type nsIDocument_FullscreenRequest = root::mozilla::dom::FullscreenRequest;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDocument_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[repr(C)]
+ pub struct nsIDocument_PageUnloadingEventTimeStamp {
+ pub mDocument: root::nsCOMPtr,
+ pub mSet: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocument_PageUnloadingEventTimeStamp() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument_PageUnloadingEventTimeStamp>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsIDocument_PageUnloadingEventTimeStamp)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument_PageUnloadingEventTimeStamp>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIDocument_PageUnloadingEventTimeStamp)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_PageUnloadingEventTimeStamp>())).mDocument
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_PageUnloadingEventTimeStamp),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_PageUnloadingEventTimeStamp>())).mSet as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_PageUnloadingEventTimeStamp),
+ "::",
+ stringify!(mSet)
+ )
+ );
+ }
+ /// This gets fired when the element that an id refers to changes.
/// This fires at difficult times. It is generally not safe to do anything
/// which could modify the DOM in any way. Use
/// nsContentUtils::AddScriptRunner.
/// @return true to keep the callback in the callback set, false
- /// to remove it.
- pub type nsIDocument_IDTargetObserver = :: std :: option :: Option < unsafe extern "C" fn ( aOldElement : * mut root :: nsIDocument_Element , aNewelement : * mut root :: nsIDocument_Element , aData : * mut :: std :: os :: raw :: c_void ) -> bool > ; # [ repr ( C ) ] pub struct nsIDocument_SelectorCacheKey { pub mKey : ::nsstring::nsStringRepr , pub mState : root :: nsExpirationState , } # [ test ] fn bindgen_test_layout_nsIDocument_SelectorCacheKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument_SelectorCacheKey > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsIDocument_SelectorCacheKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument_SelectorCacheKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument_SelectorCacheKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_SelectorCacheKey ) ) . mKey as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_SelectorCacheKey ) , "::" , stringify ! ( mKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_SelectorCacheKey ) ) . mState as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_SelectorCacheKey ) , "::" , stringify ! ( mState ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDocument_SelectorCacheKeyDeleter { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDocument_SelectorCache { pub _bindgen_opaque_blob : [ u64 ; 16usize ] , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsIDocument_SelectorCache_SelectorList { pub mIsServo : bool , pub __bindgen_anon_1 : root :: nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 { pub mGecko : root :: __BindgenUnionField < * mut root :: nsCSSSelectorList > , pub mServo : root :: __BindgenUnionField < * mut root :: RawServoSelectorList > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ) ) . mGecko as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ) , "::" , stringify ! ( mGecko ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ) ) . mServo as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 ) , "::" , stringify ! ( mServo ) ) ) ; } impl Clone for nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsIDocument_SelectorCache_SelectorList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument_SelectorCache_SelectorList > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsIDocument_SelectorCache_SelectorList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument_SelectorCache_SelectorList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument_SelectorCache_SelectorList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_SelectorCache_SelectorList ) ) . mIsServo as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_SelectorCache_SelectorList ) , "::" , stringify ! ( mIsServo ) ) ) ; } # [ test ] fn bindgen_test_layout_nsIDocument_SelectorCache ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument_SelectorCache > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( nsIDocument_SelectorCache ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument_SelectorCache > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument_SelectorCache ) ) ) ; } impl Clone for nsIDocument_SelectorCache { fn clone ( & self ) -> Self { * self } } pub const nsIDocument_additionalSheetType_eAgentSheet : root :: nsIDocument_additionalSheetType = 0 ; pub const nsIDocument_additionalSheetType_eUserSheet : root :: nsIDocument_additionalSheetType = 1 ; pub const nsIDocument_additionalSheetType_eAuthorSheet : root :: nsIDocument_additionalSheetType = 2 ; pub const nsIDocument_additionalSheetType_AdditionalSheetTypeCount : root :: nsIDocument_additionalSheetType = 3 ; pub type nsIDocument_additionalSheetType = :: std :: os :: raw :: c_uint ; pub const nsIDocument_ReadyState_READYSTATE_UNINITIALIZED : root :: nsIDocument_ReadyState = 0 ; pub const nsIDocument_ReadyState_READYSTATE_LOADING : root :: nsIDocument_ReadyState = 1 ; pub const nsIDocument_ReadyState_READYSTATE_INTERACTIVE : root :: nsIDocument_ReadyState = 3 ; pub const nsIDocument_ReadyState_READYSTATE_COMPLETE : root :: nsIDocument_ReadyState = 4 ; pub type nsIDocument_ReadyState = :: std :: os :: raw :: c_uint ;
- /// Enumerate all subdocuments.
+ /// to remove it.
+ pub type nsIDocument_IDTargetObserver = ::std::option::Option<
+ unsafe extern "C" fn(
+ aOldElement: *mut root::nsIDocument_Element,
+ aNewelement: *mut root::nsIDocument_Element,
+ aData: *mut ::std::os::raw::c_void,
+ ) -> bool,
+ >;
+ #[repr(C)]
+ pub struct nsIDocument_SelectorCacheKey {
+ pub mKey: ::nsstring::nsStringRepr,
+ pub mState: root::nsExpirationState,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocument_SelectorCacheKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument_SelectorCacheKey>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsIDocument_SelectorCacheKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument_SelectorCacheKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDocument_SelectorCacheKey))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_SelectorCacheKey>())).mKey as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_SelectorCacheKey),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_SelectorCacheKey>())).mState as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_SelectorCacheKey),
+ "::",
+ stringify!(mState)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDocument_SelectorCacheKeyDeleter {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDocument_SelectorCache {
+ pub _bindgen_opaque_blob: [u64; 16usize],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsIDocument_SelectorCache_SelectorList {
+ pub mIsServo: bool,
+ pub __bindgen_anon_1: root::nsIDocument_SelectorCache_SelectorList__bindgen_ty_1,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 {
+ pub mGecko: root::__BindgenUnionField<*mut root::nsCSSSelectorList>,
+ pub mServo: root::__BindgenUnionField<*mut root::RawServoSelectorList>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocument_SelectorCache_SelectorList__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument_SelectorCache_SelectorList__bindgen_ty_1>(),
+ 8usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsIDocument_SelectorCache_SelectorList__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument_SelectorCache_SelectorList__bindgen_ty_1>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIDocument_SelectorCache_SelectorList__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_SelectorCache_SelectorList__bindgen_ty_1>()))
+ .mGecko as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_SelectorCache_SelectorList__bindgen_ty_1),
+ "::",
+ stringify!(mGecko)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_SelectorCache_SelectorList__bindgen_ty_1>()))
+ .mServo as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_SelectorCache_SelectorList__bindgen_ty_1),
+ "::",
+ stringify!(mServo)
+ )
+ );
+ }
+ impl Clone for nsIDocument_SelectorCache_SelectorList__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocument_SelectorCache_SelectorList() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument_SelectorCache_SelectorList>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsIDocument_SelectorCache_SelectorList)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument_SelectorCache_SelectorList>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIDocument_SelectorCache_SelectorList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_SelectorCache_SelectorList>())).mIsServo
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_SelectorCache_SelectorList),
+ "::",
+ stringify!(mIsServo)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocument_SelectorCache() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument_SelectorCache>(),
+ 128usize,
+ concat!("Size of: ", stringify!(nsIDocument_SelectorCache))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument_SelectorCache>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDocument_SelectorCache))
+ );
+ }
+ impl Clone for nsIDocument_SelectorCache {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const nsIDocument_additionalSheetType_eAgentSheet: root::nsIDocument_additionalSheetType =
+ 0;
+ pub const nsIDocument_additionalSheetType_eUserSheet: root::nsIDocument_additionalSheetType = 1;
+ pub const nsIDocument_additionalSheetType_eAuthorSheet: root::nsIDocument_additionalSheetType =
+ 2;
+ pub const nsIDocument_additionalSheetType_AdditionalSheetTypeCount:
+ root::nsIDocument_additionalSheetType = 3;
+ pub type nsIDocument_additionalSheetType = u32;
+ pub const nsIDocument_ReadyState_READYSTATE_UNINITIALIZED: root::nsIDocument_ReadyState = 0;
+ pub const nsIDocument_ReadyState_READYSTATE_LOADING: root::nsIDocument_ReadyState = 1;
+ pub const nsIDocument_ReadyState_READYSTATE_INTERACTIVE: root::nsIDocument_ReadyState = 3;
+ pub const nsIDocument_ReadyState_READYSTATE_COMPLETE: root::nsIDocument_ReadyState = 4;
+ pub type nsIDocument_ReadyState = u32;
+ /// Enumerate all subdocuments.
/// The enumerator callback should return true to continue enumerating, or
- /// false to stop. This will never get passed a null aDocument.
- pub type nsIDocument_nsSubDocEnumFunc = :: std :: option :: Option < unsafe extern "C" fn ( aDocument : * mut root :: nsIDocument , aData : * mut :: std :: os :: raw :: c_void ) -> bool > ; pub const nsIDocument_ElementsFromPointFlags_IGNORE_ROOT_SCROLL_FRAME : root :: nsIDocument_ElementsFromPointFlags = 1 ; pub const nsIDocument_ElementsFromPointFlags_FLUSH_LAYOUT : root :: nsIDocument_ElementsFromPointFlags = 2 ; pub const nsIDocument_ElementsFromPointFlags_IS_ELEMENT_FROM_POINT : root :: nsIDocument_ElementsFromPointFlags = 4 ; pub type nsIDocument_ElementsFromPointFlags = :: std :: os :: raw :: c_uint ;
- /// A class that represents an external resource load that has begun but
+ /// false to stop. This will never get passed a null aDocument.
+ pub type nsIDocument_nsSubDocEnumFunc = ::std::option::Option<
+ unsafe extern "C" fn(aDocument: *mut root::nsIDocument, aData: *mut ::std::os::raw::c_void)
+ -> bool,
+ >;
+ pub const nsIDocument_ElementsFromPointFlags_IGNORE_ROOT_SCROLL_FRAME:
+ root::nsIDocument_ElementsFromPointFlags = 1;
+ pub const nsIDocument_ElementsFromPointFlags_FLUSH_LAYOUT:
+ root::nsIDocument_ElementsFromPointFlags = 2;
+ pub const nsIDocument_ElementsFromPointFlags_IS_ELEMENT_FROM_POINT:
+ root::nsIDocument_ElementsFromPointFlags = 4;
+ pub type nsIDocument_ElementsFromPointFlags = u32;
+ /// A class that represents an external resource load that has begun but
/// doesn't have a document yet. Observers can be registered on this object,
/// and will be notified after the document is created. Observers registered
/// after the document has been created will NOT be notified. When observers
/// are notified, the subject will be the newly-created document, the topic
/// will be "external-resource-document-created", and the data will be null.
/// If document creation fails for some reason, observers will still be
- /// notified, with a null document pointer.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsIDocument_ExternalResourceLoad { pub _base : root :: nsISupports , pub mObservers : [ u64 ; 10usize ] , } # [ test ] fn bindgen_test_layout_nsIDocument_ExternalResourceLoad ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument_ExternalResourceLoad > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( nsIDocument_ExternalResourceLoad ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument_ExternalResourceLoad > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument_ExternalResourceLoad ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIDocument_ExternalResourceLoad ) ) . mObservers as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsIDocument_ExternalResourceLoad ) , "::" , stringify ! ( mObservers ) ) ) ; } pub type nsIDocument_ActivityObserverEnumerator = :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut root :: nsISupports , arg2 : * mut :: std :: os :: raw :: c_void ) > ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsIDocument_DocumentTheme { Doc_Theme_Uninitialized = 0 , Doc_Theme_None = 1 , Doc_Theme_Neutral = 2 , Doc_Theme_Dark = 3 , Doc_Theme_Bright = 4 , } pub type nsIDocument_FrameRequestCallbackList = root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: FrameRequestCallback > > ; pub const nsIDocument_DeprecatedOperations_eEnablePrivilege : root :: nsIDocument_DeprecatedOperations = 0 ; pub const nsIDocument_DeprecatedOperations_eDOMExceptionCode : root :: nsIDocument_DeprecatedOperations = 1 ; pub const nsIDocument_DeprecatedOperations_eMutationEvent : root :: nsIDocument_DeprecatedOperations = 2 ; pub const nsIDocument_DeprecatedOperations_eComponents : root :: nsIDocument_DeprecatedOperations = 3 ; pub const nsIDocument_DeprecatedOperations_ePrefixedVisibilityAPI : root :: nsIDocument_DeprecatedOperations = 4 ; pub const nsIDocument_DeprecatedOperations_eNodeIteratorDetach : root :: nsIDocument_DeprecatedOperations = 5 ; pub const nsIDocument_DeprecatedOperations_eLenientThis : root :: nsIDocument_DeprecatedOperations = 6 ; pub const nsIDocument_DeprecatedOperations_eGetPreventDefault : root :: nsIDocument_DeprecatedOperations = 7 ; pub const nsIDocument_DeprecatedOperations_eGetSetUserData : root :: nsIDocument_DeprecatedOperations = 8 ; pub const nsIDocument_DeprecatedOperations_eMozGetAsFile : root :: nsIDocument_DeprecatedOperations = 9 ; pub const nsIDocument_DeprecatedOperations_eUseOfCaptureEvents : root :: nsIDocument_DeprecatedOperations = 10 ; pub const nsIDocument_DeprecatedOperations_eUseOfReleaseEvents : root :: nsIDocument_DeprecatedOperations = 11 ; pub const nsIDocument_DeprecatedOperations_eUseOfDOM3LoadMethod : root :: nsIDocument_DeprecatedOperations = 12 ; pub const nsIDocument_DeprecatedOperations_eChromeUseOfDOM3LoadMethod : root :: nsIDocument_DeprecatedOperations = 13 ; pub const nsIDocument_DeprecatedOperations_eShowModalDialog : root :: nsIDocument_DeprecatedOperations = 14 ; pub const nsIDocument_DeprecatedOperations_eSyncXMLHttpRequest : root :: nsIDocument_DeprecatedOperations = 15 ; pub const nsIDocument_DeprecatedOperations_eWindow_Cc_ontrollers : root :: nsIDocument_DeprecatedOperations = 16 ; pub const nsIDocument_DeprecatedOperations_eImportXULIntoContent : root :: nsIDocument_DeprecatedOperations = 17 ; pub const nsIDocument_DeprecatedOperations_ePannerNodeDoppler : root :: nsIDocument_DeprecatedOperations = 18 ; pub const nsIDocument_DeprecatedOperations_eNavigatorGetUserMedia : root :: nsIDocument_DeprecatedOperations = 19 ; pub const nsIDocument_DeprecatedOperations_eWebrtcDeprecatedPrefix : root :: nsIDocument_DeprecatedOperations = 20 ; pub const nsIDocument_DeprecatedOperations_eRTCPeerConnectionGetStreams : root :: nsIDocument_DeprecatedOperations = 21 ; pub const nsIDocument_DeprecatedOperations_eAppCache : root :: nsIDocument_DeprecatedOperations = 22 ; pub const nsIDocument_DeprecatedOperations_ePrefixedImageSmoothingEnabled : root :: nsIDocument_DeprecatedOperations = 23 ; pub const nsIDocument_DeprecatedOperations_ePrefixedFullscreenAPI : root :: nsIDocument_DeprecatedOperations = 24 ; pub const nsIDocument_DeprecatedOperations_eLenientSetter : root :: nsIDocument_DeprecatedOperations = 25 ; pub const nsIDocument_DeprecatedOperations_eFileLastModifiedDate : root :: nsIDocument_DeprecatedOperations = 26 ; pub const nsIDocument_DeprecatedOperations_eImageBitmapRenderingContext_TransferImageBitmap : root :: nsIDocument_DeprecatedOperations = 27 ; pub const nsIDocument_DeprecatedOperations_eURLCreateObjectURL_MediaStream : root :: nsIDocument_DeprecatedOperations = 28 ; pub const nsIDocument_DeprecatedOperations_eXMLBaseAttribute : root :: nsIDocument_DeprecatedOperations = 29 ; pub const nsIDocument_DeprecatedOperations_eWindowContentUntrusted : root :: nsIDocument_DeprecatedOperations = 30 ; pub const nsIDocument_DeprecatedOperations_eDeprecatedOperationCount : root :: nsIDocument_DeprecatedOperations = 31 ; pub type nsIDocument_DeprecatedOperations = :: std :: os :: raw :: c_uint ; pub const nsIDocument_DocumentWarnings_eIgnoringWillChangeOverBudget : root :: nsIDocument_DocumentWarnings = 0 ; pub const nsIDocument_DocumentWarnings_ePreventDefaultFromPassiveListener : root :: nsIDocument_DocumentWarnings = 1 ; pub const nsIDocument_DocumentWarnings_eSVGRefLoop : root :: nsIDocument_DocumentWarnings = 2 ; pub const nsIDocument_DocumentWarnings_eSVGRefChainLengthExceeded : root :: nsIDocument_DocumentWarnings = 3 ; pub const nsIDocument_DocumentWarnings_eDocumentWarningCount : root :: nsIDocument_DocumentWarnings = 4 ; pub type nsIDocument_DocumentWarnings = :: std :: os :: raw :: c_uint ; pub const nsIDocument_ElementCallbackType_eConnected : root :: nsIDocument_ElementCallbackType = 0 ; pub const nsIDocument_ElementCallbackType_eDisconnected : root :: nsIDocument_ElementCallbackType = 1 ; pub const nsIDocument_ElementCallbackType_eAdopted : root :: nsIDocument_ElementCallbackType = 2 ; pub const nsIDocument_ElementCallbackType_eAttributeChanged : root :: nsIDocument_ElementCallbackType = 3 ; pub type nsIDocument_ElementCallbackType = :: std :: os :: raw :: c_uint ; pub const nsIDocument_eScopedStyle_Unknown : root :: nsIDocument__bindgen_ty_1 = 0 ; pub const nsIDocument_eScopedStyle_Disabled : root :: nsIDocument__bindgen_ty_1 = 1 ; pub const nsIDocument_eScopedStyle_Enabled : root :: nsIDocument__bindgen_ty_1 = 2 ; pub type nsIDocument__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsIDocument_Type { eUnknown = 0 , eHTML = 1 , eXHTML = 2 , eGenericXML = 3 , eSVG = 4 , eXUL = 5 , } pub const nsIDocument_Tri_eTriUnset : root :: nsIDocument_Tri = 0 ; pub const nsIDocument_Tri_eTriFalse : root :: nsIDocument_Tri = 1 ; pub const nsIDocument_Tri_eTriTrue : root :: nsIDocument_Tri = 2 ; pub type nsIDocument_Tri = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDocument_FrameRequest { _unused : [ u8 ; 0 ] } pub const nsIDocument_kSegmentSize : usize = 128 ; # [ test ] fn bindgen_test_layout_nsIDocument ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDocument > ( ) , 952usize , concat ! ( "Size of: " , stringify ! ( nsIDocument ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDocument > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument ) ) ) ; } impl nsIDocument { # [ inline ] pub fn mBidiEnabled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1 as u64 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mBidiEnabled ( & mut self , val : bool ) { let mask = 0x1 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mMathMLEnabled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2 as u64 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mMathMLEnabled ( & mut self , val : bool ) { let mask = 0x2 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsInitialDocumentInWindow ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4 as u64 ; let val = ( unit_field_val & mask ) >> 2usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsInitialDocumentInWindow ( & mut self , val : bool ) { let mask = 0x4 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 2usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIgnoreDocGroupMismatches ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8 as u64 ; let val = ( unit_field_val & mask ) >> 3usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIgnoreDocGroupMismatches ( & mut self , val : bool ) { let mask = 0x8 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 3usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mLoadedAsData ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10 as u64 ; let val = ( unit_field_val & mask ) >> 4usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mLoadedAsData ( & mut self , val : bool ) { let mask = 0x10 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 4usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mLoadedAsInteractiveData ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20 as u64 ; let val = ( unit_field_val & mask ) >> 5usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mLoadedAsInteractiveData ( & mut self , val : bool ) { let mask = 0x20 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 5usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mMayStartLayout ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40 as u64 ; let val = ( unit_field_val & mask ) >> 6usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mMayStartLayout ( & mut self , val : bool ) { let mask = 0x40 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 6usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHaveFiredTitleChange ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80 as u64 ; let val = ( unit_field_val & mask ) >> 7usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHaveFiredTitleChange ( & mut self , val : bool ) { let mask = 0x80 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 7usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsShowing ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100 as u64 ; let val = ( unit_field_val & mask ) >> 8usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsShowing ( & mut self , val : bool ) { let mask = 0x100 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 8usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mVisible ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200 as u64 ; let val = ( unit_field_val & mask ) >> 9usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mVisible ( & mut self , val : bool ) { let mask = 0x200 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 9usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasReferrerPolicyCSP ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400 as u64 ; let val = ( unit_field_val & mask ) >> 10usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasReferrerPolicyCSP ( & mut self , val : bool ) { let mask = 0x400 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 10usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mRemovedFromDocShell ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800 as u64 ; let val = ( unit_field_val & mask ) >> 11usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mRemovedFromDocShell ( & mut self , val : bool ) { let mask = 0x800 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 11usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mAllowDNSPrefetch ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000 as u64 ; let val = ( unit_field_val & mask ) >> 12usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mAllowDNSPrefetch ( & mut self , val : bool ) { let mask = 0x1000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 12usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsStaticDocument ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000 as u64 ; let val = ( unit_field_val & mask ) >> 13usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsStaticDocument ( & mut self , val : bool ) { let mask = 0x2000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 13usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mCreatingStaticClone ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000 as u64 ; let val = ( unit_field_val & mask ) >> 14usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mCreatingStaticClone ( & mut self , val : bool ) { let mask = 0x4000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 14usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mInUnlinkOrDeletion ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000 as u64 ; let val = ( unit_field_val & mask ) >> 15usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mInUnlinkOrDeletion ( & mut self , val : bool ) { let mask = 0x8000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 15usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasHadScriptHandlingObject ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10000 as u64 ; let val = ( unit_field_val & mask ) >> 16usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasHadScriptHandlingObject ( & mut self , val : bool ) { let mask = 0x10000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 16usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsBeingUsedAsImage ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20000 as u64 ; let val = ( unit_field_val & mask ) >> 17usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsBeingUsedAsImage ( & mut self , val : bool ) { let mask = 0x20000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 17usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsSyntheticDocument ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40000 as u64 ; let val = ( unit_field_val & mask ) >> 18usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsSyntheticDocument ( & mut self , val : bool ) { let mask = 0x40000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 18usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasLinksToUpdate ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80000 as u64 ; let val = ( unit_field_val & mask ) >> 19usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasLinksToUpdate ( & mut self , val : bool ) { let mask = 0x80000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 19usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasLinksToUpdateRunnable ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100000 as u64 ; let val = ( unit_field_val & mask ) >> 20usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasLinksToUpdateRunnable ( & mut self , val : bool ) { let mask = 0x100000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 20usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mMayHaveDOMMutationObservers ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200000 as u64 ; let val = ( unit_field_val & mask ) >> 21usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mMayHaveDOMMutationObservers ( & mut self , val : bool ) { let mask = 0x200000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 21usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mMayHaveAnimationObservers ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400000 as u64 ; let val = ( unit_field_val & mask ) >> 22usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mMayHaveAnimationObservers ( & mut self , val : bool ) { let mask = 0x400000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 22usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasMixedActiveContentLoaded ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800000 as u64 ; let val = ( unit_field_val & mask ) >> 23usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasMixedActiveContentLoaded ( & mut self , val : bool ) { let mask = 0x800000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 23usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasMixedActiveContentBlocked ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000000 as u64 ; let val = ( unit_field_val & mask ) >> 24usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasMixedActiveContentBlocked ( & mut self , val : bool ) { let mask = 0x1000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 24usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasMixedDisplayContentLoaded ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000000 as u64 ; let val = ( unit_field_val & mask ) >> 25usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasMixedDisplayContentLoaded ( & mut self , val : bool ) { let mask = 0x2000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 25usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasMixedDisplayContentBlocked ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000000 as u64 ; let val = ( unit_field_val & mask ) >> 26usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasMixedDisplayContentBlocked ( & mut self , val : bool ) { let mask = 0x4000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 26usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasMixedContentObjectSubrequest ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000000 as u64 ; let val = ( unit_field_val & mask ) >> 27usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasMixedContentObjectSubrequest ( & mut self , val : bool ) { let mask = 0x8000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 27usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasCSP ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10000000 as u64 ; let val = ( unit_field_val & mask ) >> 28usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasCSP ( & mut self , val : bool ) { let mask = 0x10000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 28usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasUnsafeEvalCSP ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20000000 as u64 ; let val = ( unit_field_val & mask ) >> 29usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasUnsafeEvalCSP ( & mut self , val : bool ) { let mask = 0x20000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 29usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasUnsafeInlineCSP ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40000000 as u64 ; let val = ( unit_field_val & mask ) >> 30usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasUnsafeInlineCSP ( & mut self , val : bool ) { let mask = 0x40000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 30usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasTrackingContentBlocked ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80000000 as u64 ; let val = ( unit_field_val & mask ) >> 31usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasTrackingContentBlocked ( & mut self , val : bool ) { let mask = 0x80000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 31usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasTrackingContentLoaded ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100000000 as u64 ; let val = ( unit_field_val & mask ) >> 32usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasTrackingContentLoaded ( & mut self , val : bool ) { let mask = 0x100000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 32usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mBFCacheDisallowed ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200000000 as u64 ; let val = ( unit_field_val & mask ) >> 33usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mBFCacheDisallowed ( & mut self , val : bool ) { let mask = 0x200000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 33usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasHadDefaultView ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400000000 as u64 ; let val = ( unit_field_val & mask ) >> 34usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasHadDefaultView ( & mut self , val : bool ) { let mask = 0x400000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 34usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mStyleSheetChangeEventsEnabled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800000000 as u64 ; let val = ( unit_field_val & mask ) >> 35usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mStyleSheetChangeEventsEnabled ( & mut self , val : bool ) { let mask = 0x800000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 35usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsSrcdocDocument ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000000000 as u64 ; let val = ( unit_field_val & mask ) >> 36usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsSrcdocDocument ( & mut self , val : bool ) { let mask = 0x1000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 36usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mDidDocumentOpen ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000000000 as u64 ; let val = ( unit_field_val & mask ) >> 37usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mDidDocumentOpen ( & mut self , val : bool ) { let mask = 0x2000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 37usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasDisplayDocument ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000000000 as u64 ; let val = ( unit_field_val & mask ) >> 38usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasDisplayDocument ( & mut self , val : bool ) { let mask = 0x4000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 38usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mFontFaceSetDirty ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000000000 as u64 ; let val = ( unit_field_val & mask ) >> 39usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mFontFaceSetDirty ( & mut self , val : bool ) { let mask = 0x8000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 39usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mGetUserFontSetCalled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10000000000 as u64 ; let val = ( unit_field_val & mask ) >> 40usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mGetUserFontSetCalled ( & mut self , val : bool ) { let mask = 0x10000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 40usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPostedFlushUserFontSet ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20000000000 as u64 ; let val = ( unit_field_val & mask ) >> 41usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mPostedFlushUserFontSet ( & mut self , val : bool ) { let mask = 0x20000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 41usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mDidFireDOMContentLoaded ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40000000000 as u64 ; let val = ( unit_field_val & mask ) >> 42usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mDidFireDOMContentLoaded ( & mut self , val : bool ) { let mask = 0x40000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 42usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasScrollLinkedEffect ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80000000000 as u64 ; let val = ( unit_field_val & mask ) >> 43usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHasScrollLinkedEffect ( & mut self , val : bool ) { let mask = 0x80000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 43usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mFrameRequestCallbacksScheduled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100000000000 as u64 ; let val = ( unit_field_val & mask ) >> 44usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mFrameRequestCallbacksScheduled ( & mut self , val : bool ) { let mask = 0x100000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 44usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsTopLevelContentDocument ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200000000000 as u64 ; let val = ( unit_field_val & mask ) >> 45usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsTopLevelContentDocument ( & mut self , val : bool ) { let mask = 0x200000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 45usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsContentDocument ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400000000000 as u64 ; let val = ( unit_field_val & mask ) >> 46usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsContentDocument ( & mut self , val : bool ) { let mask = 0x400000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 46usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mDidCallBeginLoad ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800000000000 as u64 ; let val = ( unit_field_val & mask ) >> 47usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mDidCallBeginLoad ( & mut self , val : bool ) { let mask = 0x800000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 47usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mBufferingCSPViolations ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000000000000 as u64 ; let val = ( unit_field_val & mask ) >> 48usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mBufferingCSPViolations ( & mut self , val : bool ) { let mask = 0x1000000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 48usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mAllowPaymentRequest ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000000000000 as u64 ; let val = ( unit_field_val & mask ) >> 49usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mAllowPaymentRequest ( & mut self , val : bool ) { let mask = 0x2000000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 49usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mEncodingMenuDisabled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000000000000 as u64 ; let val = ( unit_field_val & mask ) >> 50usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mEncodingMenuDisabled ( & mut self , val : bool ) { let mask = 0x4000000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 50usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsWebComponentsEnabled ( & self ) -> bool { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000000000000 as u64 ; let val = ( unit_field_val & mask ) >> 51usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsWebComponentsEnabled ( & mut self , val : bool ) { let mask = 0x8000000000000 as u64 ; let val = val as u8 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 51usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsScopedStyleEnabled ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x30000000000000 as u64 ; let val = ( unit_field_val & mask ) >> 52usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsScopedStyleEnabled ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x30000000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 52usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mBidiEnabled : bool , mMathMLEnabled : bool , mIsInitialDocumentInWindow : bool , mIgnoreDocGroupMismatches : bool , mLoadedAsData : bool , mLoadedAsInteractiveData : bool , mMayStartLayout : bool , mHaveFiredTitleChange : bool , mIsShowing : bool , mVisible : bool , mHasReferrerPolicyCSP : bool , mRemovedFromDocShell : bool , mAllowDNSPrefetch : bool , mIsStaticDocument : bool , mCreatingStaticClone : bool , mInUnlinkOrDeletion : bool , mHasHadScriptHandlingObject : bool , mIsBeingUsedAsImage : bool , mIsSyntheticDocument : bool , mHasLinksToUpdate : bool , mHasLinksToUpdateRunnable : bool , mMayHaveDOMMutationObservers : bool , mMayHaveAnimationObservers : bool , mHasMixedActiveContentLoaded : bool , mHasMixedActiveContentBlocked : bool , mHasMixedDisplayContentLoaded : bool , mHasMixedDisplayContentBlocked : bool , mHasMixedContentObjectSubrequest : bool , mHasCSP : bool , mHasUnsafeEvalCSP : bool , mHasUnsafeInlineCSP : bool , mHasTrackingContentBlocked : bool , mHasTrackingContentLoaded : bool , mBFCacheDisallowed : bool , mHasHadDefaultView : bool , mStyleSheetChangeEventsEnabled : bool , mIsSrcdocDocument : bool , mDidDocumentOpen : bool , mHasDisplayDocument : bool , mFontFaceSetDirty : bool , mGetUserFontSetCalled : bool , mPostedFlushUserFontSet : bool , mDidFireDOMContentLoaded : bool , mHasScrollLinkedEffect : bool , mFrameRequestCallbacksScheduled : bool , mIsTopLevelContentDocument : bool , mIsContentDocument : bool , mDidCallBeginLoad : bool , mBufferingCSPViolations : bool , mAllowPaymentRequest : bool , mEncodingMenuDisabled : bool , mIsWebComponentsEnabled : bool , mIsScopedStyleEnabled : :: std :: os :: raw :: c_uint ) -> u64 { ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 | ( ( mBidiEnabled as u8 as u64 ) << 0usize ) & ( 0x1 as u64 ) ) | ( ( mMathMLEnabled as u8 as u64 ) << 1usize ) & ( 0x2 as u64 ) ) | ( ( mIsInitialDocumentInWindow as u8 as u64 ) << 2usize ) & ( 0x4 as u64 ) ) | ( ( mIgnoreDocGroupMismatches as u8 as u64 ) << 3usize ) & ( 0x8 as u64 ) ) | ( ( mLoadedAsData as u8 as u64 ) << 4usize ) & ( 0x10 as u64 ) ) | ( ( mLoadedAsInteractiveData as u8 as u64 ) << 5usize ) & ( 0x20 as u64 ) ) | ( ( mMayStartLayout as u8 as u64 ) << 6usize ) & ( 0x40 as u64 ) ) | ( ( mHaveFiredTitleChange as u8 as u64 ) << 7usize ) & ( 0x80 as u64 ) ) | ( ( mIsShowing as u8 as u64 ) << 8usize ) & ( 0x100 as u64 ) ) | ( ( mVisible as u8 as u64 ) << 9usize ) & ( 0x200 as u64 ) ) | ( ( mHasReferrerPolicyCSP as u8 as u64 ) << 10usize ) & ( 0x400 as u64 ) ) | ( ( mRemovedFromDocShell as u8 as u64 ) << 11usize ) & ( 0x800 as u64 ) ) | ( ( mAllowDNSPrefetch as u8 as u64 ) << 12usize ) & ( 0x1000 as u64 ) ) | ( ( mIsStaticDocument as u8 as u64 ) << 13usize ) & ( 0x2000 as u64 ) ) | ( ( mCreatingStaticClone as u8 as u64 ) << 14usize ) & ( 0x4000 as u64 ) ) | ( ( mInUnlinkOrDeletion as u8 as u64 ) << 15usize ) & ( 0x8000 as u64 ) ) | ( ( mHasHadScriptHandlingObject as u8 as u64 ) << 16usize ) & ( 0x10000 as u64 ) ) | ( ( mIsBeingUsedAsImage as u8 as u64 ) << 17usize ) & ( 0x20000 as u64 ) ) | ( ( mIsSyntheticDocument as u8 as u64 ) << 18usize ) & ( 0x40000 as u64 ) ) | ( ( mHasLinksToUpdate as u8 as u64 ) << 19usize ) & ( 0x80000 as u64 ) ) | ( ( mHasLinksToUpdateRunnable as u8 as u64 ) << 20usize ) & ( 0x100000 as u64 ) ) | ( ( mMayHaveDOMMutationObservers as u8 as u64 ) << 21usize ) & ( 0x200000 as u64 ) ) | ( ( mMayHaveAnimationObservers as u8 as u64 ) << 22usize ) & ( 0x400000 as u64 ) ) | ( ( mHasMixedActiveContentLoaded as u8 as u64 ) << 23usize ) & ( 0x800000 as u64 ) ) | ( ( mHasMixedActiveContentBlocked as u8 as u64 ) << 24usize ) & ( 0x1000000 as u64 ) ) | ( ( mHasMixedDisplayContentLoaded as u8 as u64 ) << 25usize ) & ( 0x2000000 as u64 ) ) | ( ( mHasMixedDisplayContentBlocked as u8 as u64 ) << 26usize ) & ( 0x4000000 as u64 ) ) | ( ( mHasMixedContentObjectSubrequest as u8 as u64 ) << 27usize ) & ( 0x8000000 as u64 ) ) | ( ( mHasCSP as u8 as u64 ) << 28usize ) & ( 0x10000000 as u64 ) ) | ( ( mHasUnsafeEvalCSP as u8 as u64 ) << 29usize ) & ( 0x20000000 as u64 ) ) | ( ( mHasUnsafeInlineCSP as u8 as u64 ) << 30usize ) & ( 0x40000000 as u64 ) ) | ( ( mHasTrackingContentBlocked as u8 as u64 ) << 31usize ) & ( 0x80000000 as u64 ) ) | ( ( mHasTrackingContentLoaded as u8 as u64 ) << 32usize ) & ( 0x100000000 as u64 ) ) | ( ( mBFCacheDisallowed as u8 as u64 ) << 33usize ) & ( 0x200000000 as u64 ) ) | ( ( mHasHadDefaultView as u8 as u64 ) << 34usize ) & ( 0x400000000 as u64 ) ) | ( ( mStyleSheetChangeEventsEnabled as u8 as u64 ) << 35usize ) & ( 0x800000000 as u64 ) ) | ( ( mIsSrcdocDocument as u8 as u64 ) << 36usize ) & ( 0x1000000000 as u64 ) ) | ( ( mDidDocumentOpen as u8 as u64 ) << 37usize ) & ( 0x2000000000 as u64 ) ) | ( ( mHasDisplayDocument as u8 as u64 ) << 38usize ) & ( 0x4000000000 as u64 ) ) | ( ( mFontFaceSetDirty as u8 as u64 ) << 39usize ) & ( 0x8000000000 as u64 ) ) | ( ( mGetUserFontSetCalled as u8 as u64 ) << 40usize ) & ( 0x10000000000 as u64 ) ) | ( ( mPostedFlushUserFontSet as u8 as u64 ) << 41usize ) & ( 0x20000000000 as u64 ) ) | ( ( mDidFireDOMContentLoaded as u8 as u64 ) << 42usize ) & ( 0x40000000000 as u64 ) ) | ( ( mHasScrollLinkedEffect as u8 as u64 ) << 43usize ) & ( 0x80000000000 as u64 ) ) | ( ( mFrameRequestCallbacksScheduled as u8 as u64 ) << 44usize ) & ( 0x100000000000 as u64 ) ) | ( ( mIsTopLevelContentDocument as u8 as u64 ) << 45usize ) & ( 0x200000000000 as u64 ) ) | ( ( mIsContentDocument as u8 as u64 ) << 46usize ) & ( 0x400000000000 as u64 ) ) | ( ( mDidCallBeginLoad as u8 as u64 ) << 47usize ) & ( 0x800000000000 as u64 ) ) | ( ( mBufferingCSPViolations as u8 as u64 ) << 48usize ) & ( 0x1000000000000 as u64 ) ) | ( ( mAllowPaymentRequest as u8 as u64 ) << 49usize ) & ( 0x2000000000000 as u64 ) ) | ( ( mEncodingMenuDisabled as u8 as u64 ) << 50usize ) & ( 0x4000000000000 as u64 ) ) | ( ( mIsWebComponentsEnabled as u8 as u64 ) << 51usize ) & ( 0x8000000000000 as u64 ) ) | ( ( mIsScopedStyleEnabled as u32 as u64 ) << 52usize ) & ( 0x30000000000000 as u64 ) ) } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsBidi { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIPrintSettings { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct gfxTextPerfMetrics { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsTransitionManager { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsAnimationManager { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsDeviceContext { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct gfxMissingFontRecorder { _unused : [ u8 ; 0 ] } pub const kPresContext_DefaultVariableFont_ID : u8 = 0 ; pub const kPresContext_DefaultFixedFont_ID : u8 = 1 ; # [ repr ( C ) ] pub struct nsPresContext { pub _base : root :: nsISupports , pub _base_1 : u64 , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mType : root :: nsPresContext_nsPresContextType , pub mShell : * mut root :: nsIPresShell , pub mDocument : root :: nsCOMPtr , pub mDeviceContext : root :: RefPtr < root :: nsDeviceContext > , pub mEventManager : root :: RefPtr < root :: mozilla :: EventStateManager > , pub mRefreshDriver : root :: RefPtr < root :: nsRefreshDriver > , pub mEffectCompositor : root :: RefPtr < root :: mozilla :: EffectCompositor > , pub mTransitionManager : root :: RefPtr < root :: nsTransitionManager > , pub mAnimationManager : root :: RefPtr < root :: nsAnimationManager > , pub mRestyleManager : root :: RefPtr < root :: mozilla :: RestyleManager > , pub mCounterStyleManager : root :: RefPtr < root :: mozilla :: CounterStyleManager > , pub mMedium : * mut root :: nsAtom , pub mMediaEmulated : root :: RefPtr < root :: nsAtom > , pub mFontFeatureValuesLookup : root :: RefPtr < root :: gfxFontFeatureValueSet > , pub mLinkHandler : * mut root :: nsILinkHandler , pub mLanguage : root :: RefPtr < root :: nsAtom > , pub mInflationDisabledForShrinkWrap : bool , pub mContainer : u64 , pub mBaseMinFontSize : i32 , pub mSystemFontScale : f32 , pub mTextZoom : f32 , pub mEffectiveTextZoom : f32 , pub mFullZoom : f32 , pub mOverrideDPPX : f32 , pub mLastFontInflationScreenSize : root :: gfxSize , pub mCurAppUnitsPerDevPixel : i32 , pub mAutoQualityMinFontSizePixelsPref : i32 , pub mTheme : root :: nsCOMPtr , pub mLangService : * mut root :: nsLanguageAtomService , pub mPrintSettings : root :: nsCOMPtr , pub mPrefChangedTimer : root :: nsCOMPtr , pub mBidiEngine : root :: mozilla :: UniquePtr < root :: nsBidi > , pub mTransactions : [ u64 ; 10usize ] , pub mTextPerf : root :: nsAutoPtr < root :: gfxTextPerfMetrics > , pub mMissingFonts : root :: nsAutoPtr < root :: gfxMissingFontRecorder > , pub mVisibleArea : root :: nsRect , pub mLastResizeEventVisibleArea : root :: nsRect , pub mPageSize : root :: nsSize , pub mPageScale : f32 , pub mPPScale : f32 , pub mDefaultColor : root :: nscolor , pub mBackgroundColor : root :: nscolor , pub mLinkColor : root :: nscolor , pub mActiveLinkColor : root :: nscolor , pub mVisitedLinkColor : root :: nscolor , pub mFocusBackgroundColor : root :: nscolor , pub mFocusTextColor : root :: nscolor , pub mBodyTextColor : root :: nscolor , pub mViewportScrollbarOverrideElement : * mut root :: mozilla :: dom :: Element , pub mViewportStyleScrollbar : root :: nsPresContext_ScrollbarStyles , pub mFocusRingWidth : u8 , pub mExistThrottledUpdates : bool , pub mImageAnimationMode : u16 , pub mImageAnimationModePref : u16 , pub mLangGroupFontPrefs : root :: nsPresContext_LangGroupFontPrefs , pub mFontGroupCacheDirty : bool , pub mLanguagesUsed : [ u64 ; 4usize ] , pub mBorderWidthTable : [ root :: nscoord ; 3usize ] , pub mInterruptChecksToSkip : u32 , pub mElementsRestyled : u64 , pub mFramesConstructed : u64 , pub mFramesReflowed : u64 , pub mReflowStartTime : root :: mozilla :: TimeStamp , pub mFirstNonBlankPaintTime : root :: mozilla :: TimeStamp , pub mFirstClickTime : root :: mozilla :: TimeStamp , pub mFirstKeyTime : root :: mozilla :: TimeStamp , pub mFirstMouseMoveTime : root :: mozilla :: TimeStamp , pub mFirstScrollTime : root :: mozilla :: TimeStamp , pub mInteractionTimeEnabled : bool , pub mLastStyleUpdateForAllAnimations : root :: mozilla :: TimeStamp , pub mTelemetryScrollLastY : root :: nscoord , pub mTelemetryScrollMaxY : root :: nscoord , pub mTelemetryScrollTotalY : root :: nscoord , pub _bitfield_1 : [ u8 ; 6usize ] , pub __bindgen_padding_0 : [ u16 ; 3usize ] , } pub type nsPresContext_Encoding = root :: mozilla :: Encoding ; pub type nsPresContext_NotNull < T > = root :: mozilla :: NotNull < T > ; pub type nsPresContext_LangGroupFontPrefs = root :: mozilla :: LangGroupFontPrefs ; pub type nsPresContext_ScrollbarStyles = root :: mozilla :: ScrollbarStyles ; pub type nsPresContext_StaticPresData = root :: mozilla :: StaticPresData ; pub type nsPresContext_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsPresContext_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_nsPresContext_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPresContext_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsPresContext_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPresContext_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPresContext_cycleCollection ) ) ) ; } impl Clone for nsPresContext_cycleCollection { fn clone ( & self ) -> Self { * self } } pub const nsPresContext_nsPresContextType_eContext_Galley : root :: nsPresContext_nsPresContextType = 0 ; pub const nsPresContext_nsPresContextType_eContext_PrintPreview : root :: nsPresContext_nsPresContextType = 1 ; pub const nsPresContext_nsPresContextType_eContext_Print : root :: nsPresContext_nsPresContextType = 2 ; pub const nsPresContext_nsPresContextType_eContext_PageLayout : root :: nsPresContext_nsPresContextType = 3 ; pub type nsPresContext_nsPresContextType = :: std :: os :: raw :: c_uint ; pub const nsPresContext_InteractionType_eClickInteraction : root :: nsPresContext_InteractionType = 0 ; pub const nsPresContext_InteractionType_eKeyInteraction : root :: nsPresContext_InteractionType = 1 ; pub const nsPresContext_InteractionType_eMouseMoveInteraction : root :: nsPresContext_InteractionType = 2 ; pub const nsPresContext_InteractionType_eScrollInteraction : root :: nsPresContext_InteractionType = 3 ; pub type nsPresContext_InteractionType = u32 ;
- /// A class that can be used to temporarily disable reflow interruption.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsPresContext_InterruptPreventer { pub mCtx : * mut root :: nsPresContext , pub mInterruptsEnabled : bool , pub mHasPendingInterrupt : bool , } # [ test ] fn bindgen_test_layout_nsPresContext_InterruptPreventer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPresContext_InterruptPreventer > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsPresContext_InterruptPreventer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPresContext_InterruptPreventer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPresContext_InterruptPreventer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext_InterruptPreventer ) ) . mCtx as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext_InterruptPreventer ) , "::" , stringify ! ( mCtx ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext_InterruptPreventer ) ) . mInterruptsEnabled as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext_InterruptPreventer ) , "::" , stringify ! ( mInterruptsEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext_InterruptPreventer ) ) . mHasPendingInterrupt as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext_InterruptPreventer ) , "::" , stringify ! ( mHasPendingInterrupt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsPresContext_TransactionInvalidations { pub mTransactionId : u64 , pub mInvalidations : root :: nsTArray < root :: nsRect > , } # [ test ] fn bindgen_test_layout_nsPresContext_TransactionInvalidations ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPresContext_TransactionInvalidations > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsPresContext_TransactionInvalidations ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPresContext_TransactionInvalidations > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPresContext_TransactionInvalidations ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext_TransactionInvalidations ) ) . mTransactionId as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext_TransactionInvalidations ) , "::" , stringify ! ( mTransactionId ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext_TransactionInvalidations ) ) . mInvalidations as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext_TransactionInvalidations ) , "::" , stringify ! ( mInvalidations ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN13nsPresContext21_cycleCollectorGlobalE" ]
- pub static mut nsPresContext__cycleCollectorGlobal : root :: nsPresContext_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_nsPresContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPresContext > ( ) , 1376usize , concat ! ( "Size of: " , stringify ! ( nsPresContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPresContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsPresContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mRefCnt as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mType as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mShell as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mShell ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mDocument as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mDocument ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mDeviceContext as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mDeviceContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mEventManager as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mEventManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mRefreshDriver as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mRefreshDriver ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mEffectCompositor as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mEffectCompositor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTransitionManager as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTransitionManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mAnimationManager as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mAnimationManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mRestyleManager as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mRestyleManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mCounterStyleManager as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mCounterStyleManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mMedium as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mMedium ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mMediaEmulated as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mMediaEmulated ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFontFeatureValuesLookup as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFontFeatureValuesLookup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLinkHandler as * const _ as usize } , 136usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLinkHandler ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLanguage as * const _ as usize } , 144usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLanguage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mInflationDisabledForShrinkWrap as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mInflationDisabledForShrinkWrap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mContainer as * const _ as usize } , 160usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mContainer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mBaseMinFontSize as * const _ as usize } , 168usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mBaseMinFontSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mSystemFontScale as * const _ as usize } , 172usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mSystemFontScale ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTextZoom as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTextZoom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mEffectiveTextZoom as * const _ as usize } , 180usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mEffectiveTextZoom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFullZoom as * const _ as usize } , 184usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFullZoom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mOverrideDPPX as * const _ as usize } , 188usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mOverrideDPPX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLastFontInflationScreenSize as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLastFontInflationScreenSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mCurAppUnitsPerDevPixel as * const _ as usize } , 208usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mCurAppUnitsPerDevPixel ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mAutoQualityMinFontSizePixelsPref as * const _ as usize } , 212usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mAutoQualityMinFontSizePixelsPref ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTheme as * const _ as usize } , 216usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTheme ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLangService as * const _ as usize } , 224usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLangService ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mPrintSettings as * const _ as usize } , 232usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mPrintSettings ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mPrefChangedTimer as * const _ as usize } , 240usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mPrefChangedTimer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mBidiEngine as * const _ as usize } , 248usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mBidiEngine ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTransactions as * const _ as usize } , 256usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTransactions ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTextPerf as * const _ as usize } , 336usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTextPerf ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mMissingFonts as * const _ as usize } , 344usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mMissingFonts ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mVisibleArea as * const _ as usize } , 352usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mVisibleArea ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLastResizeEventVisibleArea as * const _ as usize } , 368usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLastResizeEventVisibleArea ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mPageSize as * const _ as usize } , 384usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mPageSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mPageScale as * const _ as usize } , 392usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mPageScale ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mPPScale as * const _ as usize } , 396usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mPPScale ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mDefaultColor as * const _ as usize } , 400usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mDefaultColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mBackgroundColor as * const _ as usize } , 404usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mBackgroundColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLinkColor as * const _ as usize } , 408usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLinkColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mActiveLinkColor as * const _ as usize } , 412usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mActiveLinkColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mVisitedLinkColor as * const _ as usize } , 416usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mVisitedLinkColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFocusBackgroundColor as * const _ as usize } , 420usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFocusBackgroundColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFocusTextColor as * const _ as usize } , 424usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFocusTextColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mBodyTextColor as * const _ as usize } , 428usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mBodyTextColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mViewportScrollbarOverrideElement as * const _ as usize } , 432usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mViewportScrollbarOverrideElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mViewportStyleScrollbar as * const _ as usize } , 440usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mViewportStyleScrollbar ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFocusRingWidth as * const _ as usize } , 504usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFocusRingWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mExistThrottledUpdates as * const _ as usize } , 505usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mExistThrottledUpdates ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mImageAnimationMode as * const _ as usize } , 506usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mImageAnimationMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mImageAnimationModePref as * const _ as usize } , 508usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mImageAnimationModePref ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLangGroupFontPrefs as * const _ as usize } , 512usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLangGroupFontPrefs ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFontGroupCacheDirty as * const _ as usize } , 1208usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFontGroupCacheDirty ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLanguagesUsed as * const _ as usize } , 1216usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLanguagesUsed ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mBorderWidthTable as * const _ as usize } , 1248usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mBorderWidthTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mInterruptChecksToSkip as * const _ as usize } , 1260usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mInterruptChecksToSkip ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mElementsRestyled as * const _ as usize } , 1264usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mElementsRestyled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFramesConstructed as * const _ as usize } , 1272usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFramesConstructed ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFramesReflowed as * const _ as usize } , 1280usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFramesReflowed ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mReflowStartTime as * const _ as usize } , 1288usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mReflowStartTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFirstNonBlankPaintTime as * const _ as usize } , 1296usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFirstNonBlankPaintTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFirstClickTime as * const _ as usize } , 1304usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFirstClickTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFirstKeyTime as * const _ as usize } , 1312usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFirstKeyTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFirstMouseMoveTime as * const _ as usize } , 1320usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFirstMouseMoveTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mFirstScrollTime as * const _ as usize } , 1328usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mFirstScrollTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mInteractionTimeEnabled as * const _ as usize } , 1336usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mInteractionTimeEnabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mLastStyleUpdateForAllAnimations as * const _ as usize } , 1344usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mLastStyleUpdateForAllAnimations ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTelemetryScrollLastY as * const _ as usize } , 1352usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTelemetryScrollLastY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTelemetryScrollMaxY as * const _ as usize } , 1356usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTelemetryScrollMaxY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPresContext ) ) . mTelemetryScrollTotalY as * const _ as usize } , 1360usize , concat ! ( "Alignment of field: " , stringify ! ( nsPresContext ) , "::" , stringify ! ( mTelemetryScrollTotalY ) ) ) ; } impl nsPresContext { # [ inline ] pub fn mHasPendingInterrupt ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1 as u64 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mHasPendingInterrupt ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x1 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPendingInterruptFromTest ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2 as u64 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPendingInterruptFromTest ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x2 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mInterruptsEnabled ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4 as u64 ; let val = ( unit_field_val & mask ) >> 2usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mInterruptsEnabled ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x4 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 2usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mUseDocumentFonts ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8 as u64 ; let val = ( unit_field_val & mask ) >> 3usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mUseDocumentFonts ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x8 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 3usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mUseDocumentColors ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10 as u64 ; let val = ( unit_field_val & mask ) >> 4usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mUseDocumentColors ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x10 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 4usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mUnderlineLinks ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20 as u64 ; let val = ( unit_field_val & mask ) >> 5usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mUnderlineLinks ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x20 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 5usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mSendAfterPaintToContent ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40 as u64 ; let val = ( unit_field_val & mask ) >> 6usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mSendAfterPaintToContent ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x40 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 6usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mUseFocusColors ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80 as u64 ; let val = ( unit_field_val & mask ) >> 7usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mUseFocusColors ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x80 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 7usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mFocusRingOnAnything ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100 as u64 ; let val = ( unit_field_val & mask ) >> 8usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mFocusRingOnAnything ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x100 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 8usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mFocusRingStyle ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200 as u64 ; let val = ( unit_field_val & mask ) >> 9usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mFocusRingStyle ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x200 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 9usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mDrawImageBackground ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400 as u64 ; let val = ( unit_field_val & mask ) >> 10usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mDrawImageBackground ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x400 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 10usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mDrawColorBackground ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800 as u64 ; let val = ( unit_field_val & mask ) >> 11usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mDrawColorBackground ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x800 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 11usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mNeverAnimate ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000 as u64 ; let val = ( unit_field_val & mask ) >> 12usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mNeverAnimate ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x1000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 12usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsRenderingOnlySelection ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000 as u64 ; let val = ( unit_field_val & mask ) >> 13usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsRenderingOnlySelection ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x2000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 13usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPaginated ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000 as u64 ; let val = ( unit_field_val & mask ) >> 14usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPaginated ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x4000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 14usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mCanPaginatedScroll ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000 as u64 ; let val = ( unit_field_val & mask ) >> 15usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mCanPaginatedScroll ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x8000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 15usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mDoScaledTwips ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10000 as u64 ; let val = ( unit_field_val & mask ) >> 16usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mDoScaledTwips ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x10000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 16usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsRootPaginatedDocument ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20000 as u64 ; let val = ( unit_field_val & mask ) >> 17usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsRootPaginatedDocument ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x20000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 17usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPrefBidiDirection ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40000 as u64 ; let val = ( unit_field_val & mask ) >> 18usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPrefBidiDirection ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x40000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 18usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPrefScrollbarSide ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x180000 as u64 ; let val = ( unit_field_val & mask ) >> 19usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPrefScrollbarSide ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x180000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 19usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPendingSysColorChanged ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200000 as u64 ; let val = ( unit_field_val & mask ) >> 21usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPendingSysColorChanged ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x200000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 21usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPendingThemeChanged ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400000 as u64 ; let val = ( unit_field_val & mask ) >> 22usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPendingThemeChanged ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x400000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 22usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPendingUIResolutionChanged ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800000 as u64 ; let val = ( unit_field_val & mask ) >> 23usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPendingUIResolutionChanged ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x800000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 23usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPendingMediaFeatureValuesChanged ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000000 as u64 ; let val = ( unit_field_val & mask ) >> 24usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPendingMediaFeatureValuesChanged ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x1000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 24usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPrefChangePendingNeedsReflow ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000000 as u64 ; let val = ( unit_field_val & mask ) >> 25usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPrefChangePendingNeedsReflow ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x2000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 25usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsEmulatingMedia ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000000 as u64 ; let val = ( unit_field_val & mask ) >> 26usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsEmulatingMedia ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x4000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 26usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsGlyph ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000000 as u64 ; let val = ( unit_field_val & mask ) >> 27usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsGlyph ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x8000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 27usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mUsesRootEMUnits ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10000000 as u64 ; let val = ( unit_field_val & mask ) >> 28usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mUsesRootEMUnits ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x10000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 28usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mUsesExChUnits ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20000000 as u64 ; let val = ( unit_field_val & mask ) >> 29usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mUsesExChUnits ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x20000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 29usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPendingViewportChange ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40000000 as u64 ; let val = ( unit_field_val & mask ) >> 30usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPendingViewportChange ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x40000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 30usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mCounterStylesDirty ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80000000 as u64 ; let val = ( unit_field_val & mask ) >> 31usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mCounterStylesDirty ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x80000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 31usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPostedFlushCounterStyles ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100000000 as u64 ; let val = ( unit_field_val & mask ) >> 32usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPostedFlushCounterStyles ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x100000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 32usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mFontFeatureValuesDirty ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200000000 as u64 ; let val = ( unit_field_val & mask ) >> 33usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mFontFeatureValuesDirty ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x200000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 33usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPostedFlushFontFeatureValues ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400000000 as u64 ; let val = ( unit_field_val & mask ) >> 34usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPostedFlushFontFeatureValues ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x400000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 34usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mSuppressResizeReflow ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x800000000 as u64 ; let val = ( unit_field_val & mask ) >> 35usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mSuppressResizeReflow ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x800000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 35usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsVisual ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x1000000000 as u64 ; let val = ( unit_field_val & mask ) >> 36usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsVisual ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x1000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 36usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mFireAfterPaintEvents ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x2000000000 as u64 ; let val = ( unit_field_val & mask ) >> 37usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mFireAfterPaintEvents ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x2000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 37usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsChrome ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x4000000000 as u64 ; let val = ( unit_field_val & mask ) >> 38usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsChrome ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x4000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 38usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mIsChromeOriginImage ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x8000000000 as u64 ; let val = ( unit_field_val & mask ) >> 39usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mIsChromeOriginImage ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x8000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 39usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPaintFlashing ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x10000000000 as u64 ; let val = ( unit_field_val & mask ) >> 40usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPaintFlashing ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x10000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 40usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mPaintFlashingInitialized ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x20000000000 as u64 ; let val = ( unit_field_val & mask ) >> 41usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mPaintFlashingInitialized ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x20000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 41usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasWarnedAboutPositionedTableParts ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x40000000000 as u64 ; let val = ( unit_field_val & mask ) >> 42usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mHasWarnedAboutPositionedTableParts ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x40000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 42usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHasWarnedAboutTooLargeDashedOrDottedRadius ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x80000000000 as u64 ; let val = ( unit_field_val & mask ) >> 43usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mHasWarnedAboutTooLargeDashedOrDottedRadius ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x80000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 43usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mQuirkSheetAdded ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x100000000000 as u64 ; let val = ( unit_field_val & mask ) >> 44usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mQuirkSheetAdded ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x100000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 44usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mNeedsPrefUpdate ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x200000000000 as u64 ; let val = ( unit_field_val & mask ) >> 45usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mNeedsPrefUpdate ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x200000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 45usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn mHadNonBlankPaint ( & self ) -> :: std :: os :: raw :: c_uint { let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; let mask = 0x400000000000 as u64 ; let val = ( unit_field_val & mask ) >> 46usize ; unsafe { :: std :: mem :: transmute ( val as u32 ) } } # [ inline ] pub fn set_mHadNonBlankPaint ( & mut self , val : :: std :: os :: raw :: c_uint ) { let mask = 0x400000000000 as u64 ; let val = val as u32 as u64 ; let mut unit_field_val : u64 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u64 as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 46usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u64 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mHasPendingInterrupt : :: std :: os :: raw :: c_uint , mPendingInterruptFromTest : :: std :: os :: raw :: c_uint , mInterruptsEnabled : :: std :: os :: raw :: c_uint , mUseDocumentFonts : :: std :: os :: raw :: c_uint , mUseDocumentColors : :: std :: os :: raw :: c_uint , mUnderlineLinks : :: std :: os :: raw :: c_uint , mSendAfterPaintToContent : :: std :: os :: raw :: c_uint , mUseFocusColors : :: std :: os :: raw :: c_uint , mFocusRingOnAnything : :: std :: os :: raw :: c_uint , mFocusRingStyle : :: std :: os :: raw :: c_uint , mDrawImageBackground : :: std :: os :: raw :: c_uint , mDrawColorBackground : :: std :: os :: raw :: c_uint , mNeverAnimate : :: std :: os :: raw :: c_uint , mIsRenderingOnlySelection : :: std :: os :: raw :: c_uint , mPaginated : :: std :: os :: raw :: c_uint , mCanPaginatedScroll : :: std :: os :: raw :: c_uint , mDoScaledTwips : :: std :: os :: raw :: c_uint , mIsRootPaginatedDocument : :: std :: os :: raw :: c_uint , mPrefBidiDirection : :: std :: os :: raw :: c_uint , mPrefScrollbarSide : :: std :: os :: raw :: c_uint , mPendingSysColorChanged : :: std :: os :: raw :: c_uint , mPendingThemeChanged : :: std :: os :: raw :: c_uint , mPendingUIResolutionChanged : :: std :: os :: raw :: c_uint , mPendingMediaFeatureValuesChanged : :: std :: os :: raw :: c_uint , mPrefChangePendingNeedsReflow : :: std :: os :: raw :: c_uint , mIsEmulatingMedia : :: std :: os :: raw :: c_uint , mIsGlyph : :: std :: os :: raw :: c_uint , mUsesRootEMUnits : :: std :: os :: raw :: c_uint , mUsesExChUnits : :: std :: os :: raw :: c_uint , mPendingViewportChange : :: std :: os :: raw :: c_uint , mCounterStylesDirty : :: std :: os :: raw :: c_uint , mPostedFlushCounterStyles : :: std :: os :: raw :: c_uint , mFontFeatureValuesDirty : :: std :: os :: raw :: c_uint , mPostedFlushFontFeatureValues : :: std :: os :: raw :: c_uint , mSuppressResizeReflow : :: std :: os :: raw :: c_uint , mIsVisual : :: std :: os :: raw :: c_uint , mFireAfterPaintEvents : :: std :: os :: raw :: c_uint , mIsChrome : :: std :: os :: raw :: c_uint , mIsChromeOriginImage : :: std :: os :: raw :: c_uint , mPaintFlashing : :: std :: os :: raw :: c_uint , mPaintFlashingInitialized : :: std :: os :: raw :: c_uint , mHasWarnedAboutPositionedTableParts : :: std :: os :: raw :: c_uint , mHasWarnedAboutTooLargeDashedOrDottedRadius : :: std :: os :: raw :: c_uint , mQuirkSheetAdded : :: std :: os :: raw :: c_uint , mNeedsPrefUpdate : :: std :: os :: raw :: c_uint , mHadNonBlankPaint : :: std :: os :: raw :: c_uint ) -> u64 { ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 | ( ( mHasPendingInterrupt as u32 as u64 ) << 0usize ) & ( 0x1 as u64 ) ) | ( ( mPendingInterruptFromTest as u32 as u64 ) << 1usize ) & ( 0x2 as u64 ) ) | ( ( mInterruptsEnabled as u32 as u64 ) << 2usize ) & ( 0x4 as u64 ) ) | ( ( mUseDocumentFonts as u32 as u64 ) << 3usize ) & ( 0x8 as u64 ) ) | ( ( mUseDocumentColors as u32 as u64 ) << 4usize ) & ( 0x10 as u64 ) ) | ( ( mUnderlineLinks as u32 as u64 ) << 5usize ) & ( 0x20 as u64 ) ) | ( ( mSendAfterPaintToContent as u32 as u64 ) << 6usize ) & ( 0x40 as u64 ) ) | ( ( mUseFocusColors as u32 as u64 ) << 7usize ) & ( 0x80 as u64 ) ) | ( ( mFocusRingOnAnything as u32 as u64 ) << 8usize ) & ( 0x100 as u64 ) ) | ( ( mFocusRingStyle as u32 as u64 ) << 9usize ) & ( 0x200 as u64 ) ) | ( ( mDrawImageBackground as u32 as u64 ) << 10usize ) & ( 0x400 as u64 ) ) | ( ( mDrawColorBackground as u32 as u64 ) << 11usize ) & ( 0x800 as u64 ) ) | ( ( mNeverAnimate as u32 as u64 ) << 12usize ) & ( 0x1000 as u64 ) ) | ( ( mIsRenderingOnlySelection as u32 as u64 ) << 13usize ) & ( 0x2000 as u64 ) ) | ( ( mPaginated as u32 as u64 ) << 14usize ) & ( 0x4000 as u64 ) ) | ( ( mCanPaginatedScroll as u32 as u64 ) << 15usize ) & ( 0x8000 as u64 ) ) | ( ( mDoScaledTwips as u32 as u64 ) << 16usize ) & ( 0x10000 as u64 ) ) | ( ( mIsRootPaginatedDocument as u32 as u64 ) << 17usize ) & ( 0x20000 as u64 ) ) | ( ( mPrefBidiDirection as u32 as u64 ) << 18usize ) & ( 0x40000 as u64 ) ) | ( ( mPrefScrollbarSide as u32 as u64 ) << 19usize ) & ( 0x180000 as u64 ) ) | ( ( mPendingSysColorChanged as u32 as u64 ) << 21usize ) & ( 0x200000 as u64 ) ) | ( ( mPendingThemeChanged as u32 as u64 ) << 22usize ) & ( 0x400000 as u64 ) ) | ( ( mPendingUIResolutionChanged as u32 as u64 ) << 23usize ) & ( 0x800000 as u64 ) ) | ( ( mPendingMediaFeatureValuesChanged as u32 as u64 ) << 24usize ) & ( 0x1000000 as u64 ) ) | ( ( mPrefChangePendingNeedsReflow as u32 as u64 ) << 25usize ) & ( 0x2000000 as u64 ) ) | ( ( mIsEmulatingMedia as u32 as u64 ) << 26usize ) & ( 0x4000000 as u64 ) ) | ( ( mIsGlyph as u32 as u64 ) << 27usize ) & ( 0x8000000 as u64 ) ) | ( ( mUsesRootEMUnits as u32 as u64 ) << 28usize ) & ( 0x10000000 as u64 ) ) | ( ( mUsesExChUnits as u32 as u64 ) << 29usize ) & ( 0x20000000 as u64 ) ) | ( ( mPendingViewportChange as u32 as u64 ) << 30usize ) & ( 0x40000000 as u64 ) ) | ( ( mCounterStylesDirty as u32 as u64 ) << 31usize ) & ( 0x80000000 as u64 ) ) | ( ( mPostedFlushCounterStyles as u32 as u64 ) << 32usize ) & ( 0x100000000 as u64 ) ) | ( ( mFontFeatureValuesDirty as u32 as u64 ) << 33usize ) & ( 0x200000000 as u64 ) ) | ( ( mPostedFlushFontFeatureValues as u32 as u64 ) << 34usize ) & ( 0x400000000 as u64 ) ) | ( ( mSuppressResizeReflow as u32 as u64 ) << 35usize ) & ( 0x800000000 as u64 ) ) | ( ( mIsVisual as u32 as u64 ) << 36usize ) & ( 0x1000000000 as u64 ) ) | ( ( mFireAfterPaintEvents as u32 as u64 ) << 37usize ) & ( 0x2000000000 as u64 ) ) | ( ( mIsChrome as u32 as u64 ) << 38usize ) & ( 0x4000000000 as u64 ) ) | ( ( mIsChromeOriginImage as u32 as u64 ) << 39usize ) & ( 0x8000000000 as u64 ) ) | ( ( mPaintFlashing as u32 as u64 ) << 40usize ) & ( 0x10000000000 as u64 ) ) | ( ( mPaintFlashingInitialized as u32 as u64 ) << 41usize ) & ( 0x20000000000 as u64 ) ) | ( ( mHasWarnedAboutPositionedTableParts as u32 as u64 ) << 42usize ) & ( 0x40000000000 as u64 ) ) | ( ( mHasWarnedAboutTooLargeDashedOrDottedRadius as u32 as u64 ) << 43usize ) & ( 0x80000000000 as u64 ) ) | ( ( mQuirkSheetAdded as u32 as u64 ) << 44usize ) & ( 0x100000000000 as u64 ) ) | ( ( mNeedsPrefUpdate as u32 as u64 ) << 45usize ) & ( 0x200000000000 as u64 ) ) | ( ( mHadNonBlankPaint as u32 as u64 ) << 46usize ) & ( 0x400000000000 as u64 ) ) } } # [ repr ( i16 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsCSSKeyword { eCSSKeyword_UNKNOWN = -1 , eCSSKeyword__moz_activehyperlinktext = 0 , eCSSKeyword__moz_all = 1 , eCSSKeyword__moz_alt_content = 2 , eCSSKeyword__moz_available = 3 , eCSSKeyword__moz_box = 4 , eCSSKeyword__moz_button = 5 , eCSSKeyword__moz_buttondefault = 6 , eCSSKeyword__moz_buttonhoverface = 7 , eCSSKeyword__moz_buttonhovertext = 8 , eCSSKeyword__moz_cellhighlight = 9 , eCSSKeyword__moz_cellhighlighttext = 10 , eCSSKeyword__moz_center = 11 , eCSSKeyword__moz_combobox = 12 , eCSSKeyword__moz_comboboxtext = 13 , eCSSKeyword__moz_context_properties = 14 , eCSSKeyword__moz_block_height = 15 , eCSSKeyword__moz_deck = 16 , eCSSKeyword__moz_default_background_color = 17 , eCSSKeyword__moz_default_color = 18 , eCSSKeyword__moz_desktop = 19 , eCSSKeyword__moz_dialog = 20 , eCSSKeyword__moz_dialogtext = 21 , eCSSKeyword__moz_document = 22 , eCSSKeyword__moz_dragtargetzone = 23 , eCSSKeyword__moz_element = 24 , eCSSKeyword__moz_eventreerow = 25 , eCSSKeyword__moz_field = 26 , eCSSKeyword__moz_fieldtext = 27 , eCSSKeyword__moz_fit_content = 28 , eCSSKeyword__moz_fixed = 29 , eCSSKeyword__moz_grabbing = 30 , eCSSKeyword__moz_grab = 31 , eCSSKeyword__moz_grid_group = 32 , eCSSKeyword__moz_grid_line = 33 , eCSSKeyword__moz_grid = 34 , eCSSKeyword__moz_groupbox = 35 , eCSSKeyword__moz_gtk_info_bar = 36 , eCSSKeyword__moz_gtk_info_bar_text = 37 , eCSSKeyword__moz_hidden_unscrollable = 38 , eCSSKeyword__moz_hyperlinktext = 39 , eCSSKeyword__moz_html_cellhighlight = 40 , eCSSKeyword__moz_html_cellhighlighttext = 41 , eCSSKeyword__moz_image_rect = 42 , eCSSKeyword__moz_info = 43 , eCSSKeyword__moz_inline_box = 44 , eCSSKeyword__moz_inline_grid = 45 , eCSSKeyword__moz_inline_stack = 46 , eCSSKeyword__moz_left = 47 , eCSSKeyword__moz_list = 48 , eCSSKeyword__moz_mac_buttonactivetext = 49 , eCSSKeyword__moz_mac_chrome_active = 50 , eCSSKeyword__moz_mac_chrome_inactive = 51 , eCSSKeyword__moz_mac_defaultbuttontext = 52 , eCSSKeyword__moz_mac_focusring = 53 , eCSSKeyword__moz_mac_fullscreen_button = 54 , eCSSKeyword__moz_mac_menuselect = 55 , eCSSKeyword__moz_mac_menushadow = 56 , eCSSKeyword__moz_mac_menutextdisable = 57 , eCSSKeyword__moz_mac_menutextselect = 58 , eCSSKeyword__moz_mac_disabledtoolbartext = 59 , eCSSKeyword__moz_mac_secondaryhighlight = 60 , eCSSKeyword__moz_mac_menuitem = 61 , eCSSKeyword__moz_mac_active_menuitem = 62 , eCSSKeyword__moz_mac_menupopup = 63 , eCSSKeyword__moz_mac_tooltip = 64 , eCSSKeyword__moz_max_content = 65 , eCSSKeyword__moz_menuhover = 66 , eCSSKeyword__moz_menuhovertext = 67 , eCSSKeyword__moz_menubartext = 68 , eCSSKeyword__moz_menubarhovertext = 69 , eCSSKeyword__moz_middle_with_baseline = 70 , eCSSKeyword__moz_min_content = 71 , eCSSKeyword__moz_nativehyperlinktext = 72 , eCSSKeyword__moz_none = 73 , eCSSKeyword__moz_oddtreerow = 74 , eCSSKeyword__moz_popup = 75 , eCSSKeyword__moz_pre_space = 76 , eCSSKeyword__moz_pull_down_menu = 77 , eCSSKeyword__moz_right = 78 , eCSSKeyword__moz_scrollbars_horizontal = 79 , eCSSKeyword__moz_scrollbars_none = 80 , eCSSKeyword__moz_scrollbars_vertical = 81 , eCSSKeyword__moz_stack = 82 , eCSSKeyword__moz_text = 83 , eCSSKeyword__moz_use_system_font = 84 , eCSSKeyword__moz_visitedhyperlinktext = 85 , eCSSKeyword__moz_window = 86 , eCSSKeyword__moz_workspace = 87 , eCSSKeyword__moz_zoom_in = 88 , eCSSKeyword__moz_zoom_out = 89 , eCSSKeyword__webkit_box = 90 , eCSSKeyword__webkit_flex = 91 , eCSSKeyword__webkit_inline_box = 92 , eCSSKeyword__webkit_inline_flex = 93 , eCSSKeyword_absolute = 94 , eCSSKeyword_active = 95 , eCSSKeyword_activeborder = 96 , eCSSKeyword_activecaption = 97 , eCSSKeyword_add = 98 , eCSSKeyword_additive = 99 , eCSSKeyword_alias = 100 , eCSSKeyword_all = 101 , eCSSKeyword_all_petite_caps = 102 , eCSSKeyword_all_scroll = 103 , eCSSKeyword_all_small_caps = 104 , eCSSKeyword_alpha = 105 , eCSSKeyword_alternate = 106 , eCSSKeyword_alternate_reverse = 107 , eCSSKeyword_always = 108 , eCSSKeyword_annotation = 109 , eCSSKeyword_appworkspace = 110 , eCSSKeyword_auto = 111 , eCSSKeyword_auto_fill = 112 , eCSSKeyword_auto_fit = 113 , eCSSKeyword_auto_flow = 114 , eCSSKeyword_avoid = 115 , eCSSKeyword_background = 116 , eCSSKeyword_backwards = 117 , eCSSKeyword_balance = 118 , eCSSKeyword_baseline = 119 , eCSSKeyword_bidi_override = 120 , eCSSKeyword_blink = 121 , eCSSKeyword_block = 122 , eCSSKeyword_block_axis = 123 , eCSSKeyword_blur = 124 , eCSSKeyword_bold = 125 , eCSSKeyword_bold_fraktur = 126 , eCSSKeyword_bold_italic = 127 , eCSSKeyword_bold_sans_serif = 128 , eCSSKeyword_bold_script = 129 , eCSSKeyword_bolder = 130 , eCSSKeyword_border_box = 131 , eCSSKeyword_both = 132 , eCSSKeyword_bottom = 133 , eCSSKeyword_bottom_outside = 134 , eCSSKeyword_break_all = 135 , eCSSKeyword_break_word = 136 , eCSSKeyword_brightness = 137 , eCSSKeyword_browser = 138 , eCSSKeyword_bullets = 139 , eCSSKeyword_button = 140 , eCSSKeyword_buttonface = 141 , eCSSKeyword_buttonhighlight = 142 , eCSSKeyword_buttonshadow = 143 , eCSSKeyword_buttontext = 144 , eCSSKeyword_capitalize = 145 , eCSSKeyword_caption = 146 , eCSSKeyword_captiontext = 147 , eCSSKeyword_cell = 148 , eCSSKeyword_center = 149 , eCSSKeyword_ch = 150 , eCSSKeyword_character_variant = 151 , eCSSKeyword_circle = 152 , eCSSKeyword_cjk_decimal = 153 , eCSSKeyword_clip = 154 , eCSSKeyword_clone = 155 , eCSSKeyword_close_quote = 156 , eCSSKeyword_closest_corner = 157 , eCSSKeyword_closest_side = 158 , eCSSKeyword_cm = 159 , eCSSKeyword_col_resize = 160 , eCSSKeyword_collapse = 161 , eCSSKeyword_color = 162 , eCSSKeyword_color_burn = 163 , eCSSKeyword_color_dodge = 164 , eCSSKeyword_common_ligatures = 165 , eCSSKeyword_column = 166 , eCSSKeyword_column_reverse = 167 , eCSSKeyword_condensed = 168 , eCSSKeyword_contain = 169 , eCSSKeyword_content_box = 170 , eCSSKeyword_contents = 171 , eCSSKeyword_context_fill = 172 , eCSSKeyword_context_fill_opacity = 173 , eCSSKeyword_context_menu = 174 , eCSSKeyword_context_stroke = 175 , eCSSKeyword_context_stroke_opacity = 176 , eCSSKeyword_context_value = 177 , eCSSKeyword_continuous = 178 , eCSSKeyword_contrast = 179 , eCSSKeyword_copy = 180 , eCSSKeyword_contextual = 181 , eCSSKeyword_cover = 182 , eCSSKeyword_crop = 183 , eCSSKeyword_cross = 184 , eCSSKeyword_crosshair = 185 , eCSSKeyword_currentcolor = 186 , eCSSKeyword_cursive = 187 , eCSSKeyword_cyclic = 188 , eCSSKeyword_darken = 189 , eCSSKeyword_dashed = 190 , eCSSKeyword_dense = 191 , eCSSKeyword_decimal = 192 , eCSSKeyword_default = 193 , eCSSKeyword_deg = 194 , eCSSKeyword_diagonal_fractions = 195 , eCSSKeyword_dialog = 196 , eCSSKeyword_difference = 197 , eCSSKeyword_digits = 198 , eCSSKeyword_disabled = 199 , eCSSKeyword_disc = 200 , eCSSKeyword_discretionary_ligatures = 201 , eCSSKeyword_distribute = 202 , eCSSKeyword_dot = 203 , eCSSKeyword_dotted = 204 , eCSSKeyword_double = 205 , eCSSKeyword_double_circle = 206 , eCSSKeyword_double_struck = 207 , eCSSKeyword_drag = 208 , eCSSKeyword_drop_shadow = 209 , eCSSKeyword_e_resize = 210 , eCSSKeyword_ease = 211 , eCSSKeyword_ease_in = 212 , eCSSKeyword_ease_in_out = 213 , eCSSKeyword_ease_out = 214 , eCSSKeyword_economy = 215 , eCSSKeyword_element = 216 , eCSSKeyword_elements = 217 , eCSSKeyword_ellipse = 218 , eCSSKeyword_ellipsis = 219 , eCSSKeyword_em = 220 , eCSSKeyword_embed = 221 , eCSSKeyword_enabled = 222 , eCSSKeyword_end = 223 , eCSSKeyword_ex = 224 , eCSSKeyword_exact = 225 , eCSSKeyword_exclude = 226 , eCSSKeyword_exclusion = 227 , eCSSKeyword_expanded = 228 , eCSSKeyword_extends = 229 , eCSSKeyword_extra_condensed = 230 , eCSSKeyword_extra_expanded = 231 , eCSSKeyword_ew_resize = 232 , eCSSKeyword_fallback = 233 , eCSSKeyword_fantasy = 234 , eCSSKeyword_farthest_side = 235 , eCSSKeyword_farthest_corner = 236 , eCSSKeyword_fill = 237 , eCSSKeyword_filled = 238 , eCSSKeyword_fill_box = 239 , eCSSKeyword_first = 240 , eCSSKeyword_fit_content = 241 , eCSSKeyword_fixed = 242 , eCSSKeyword_flat = 243 , eCSSKeyword_flex = 244 , eCSSKeyword_flex_end = 245 , eCSSKeyword_flex_start = 246 , eCSSKeyword_flip = 247 , eCSSKeyword_flow_root = 248 , eCSSKeyword_forwards = 249 , eCSSKeyword_fraktur = 250 , eCSSKeyword_frames = 251 , eCSSKeyword_from_image = 252 , eCSSKeyword_full_width = 253 , eCSSKeyword_fullscreen = 254 , eCSSKeyword_grab = 255 , eCSSKeyword_grabbing = 256 , eCSSKeyword_grad = 257 , eCSSKeyword_grayscale = 258 , eCSSKeyword_graytext = 259 , eCSSKeyword_grid = 260 , eCSSKeyword_groove = 261 , eCSSKeyword_hard_light = 262 , eCSSKeyword_help = 263 , eCSSKeyword_hidden = 264 , eCSSKeyword_hide = 265 , eCSSKeyword_highlight = 266 , eCSSKeyword_highlighttext = 267 , eCSSKeyword_historical_forms = 268 , eCSSKeyword_historical_ligatures = 269 , eCSSKeyword_horizontal = 270 , eCSSKeyword_horizontal_tb = 271 , eCSSKeyword_hue = 272 , eCSSKeyword_hue_rotate = 273 , eCSSKeyword_hz = 274 , eCSSKeyword_icon = 275 , eCSSKeyword_ignore = 276 , eCSSKeyword_ignore_horizontal = 277 , eCSSKeyword_ignore_vertical = 278 , eCSSKeyword_in = 279 , eCSSKeyword_interlace = 280 , eCSSKeyword_inactive = 281 , eCSSKeyword_inactiveborder = 282 , eCSSKeyword_inactivecaption = 283 , eCSSKeyword_inactivecaptiontext = 284 , eCSSKeyword_infinite = 285 , eCSSKeyword_infobackground = 286 , eCSSKeyword_infotext = 287 , eCSSKeyword_inherit = 288 , eCSSKeyword_initial = 289 , eCSSKeyword_inline = 290 , eCSSKeyword_inline_axis = 291 , eCSSKeyword_inline_block = 292 , eCSSKeyword_inline_end = 293 , eCSSKeyword_inline_flex = 294 , eCSSKeyword_inline_grid = 295 , eCSSKeyword_inline_start = 296 , eCSSKeyword_inline_table = 297 , eCSSKeyword_inset = 298 , eCSSKeyword_inside = 299 , eCSSKeyword_inter_character = 300 , eCSSKeyword_inter_word = 301 , eCSSKeyword_interpolatematrix = 302 , eCSSKeyword_accumulatematrix = 303 , eCSSKeyword_intersect = 304 , eCSSKeyword_isolate = 305 , eCSSKeyword_isolate_override = 306 , eCSSKeyword_invert = 307 , eCSSKeyword_italic = 308 , eCSSKeyword_jis78 = 309 , eCSSKeyword_jis83 = 310 , eCSSKeyword_jis90 = 311 , eCSSKeyword_jis04 = 312 , eCSSKeyword_justify = 313 , eCSSKeyword_keep_all = 314 , eCSSKeyword_khz = 315 , eCSSKeyword_landscape = 316 , eCSSKeyword_large = 317 , eCSSKeyword_larger = 318 , eCSSKeyword_last = 319 , eCSSKeyword_last_baseline = 320 , eCSSKeyword_layout = 321 , eCSSKeyword_left = 322 , eCSSKeyword_legacy = 323 , eCSSKeyword_lighten = 324 , eCSSKeyword_lighter = 325 , eCSSKeyword_line_through = 326 , eCSSKeyword_linear = 327 , eCSSKeyword_lining_nums = 328 , eCSSKeyword_list_item = 329 , eCSSKeyword_local = 330 , eCSSKeyword_logical = 331 , eCSSKeyword_looped = 332 , eCSSKeyword_lowercase = 333 , eCSSKeyword_lr = 334 , eCSSKeyword_lr_tb = 335 , eCSSKeyword_ltr = 336 , eCSSKeyword_luminance = 337 , eCSSKeyword_luminosity = 338 , eCSSKeyword_mandatory = 339 , eCSSKeyword_manipulation = 340 , eCSSKeyword_manual = 341 , eCSSKeyword_margin_box = 342 , eCSSKeyword_markers = 343 , eCSSKeyword_match_parent = 344 , eCSSKeyword_match_source = 345 , eCSSKeyword_matrix = 346 , eCSSKeyword_matrix3d = 347 , eCSSKeyword_max_content = 348 , eCSSKeyword_medium = 349 , eCSSKeyword_menu = 350 , eCSSKeyword_menutext = 351 , eCSSKeyword_message_box = 352 , eCSSKeyword_middle = 353 , eCSSKeyword_min_content = 354 , eCSSKeyword_minmax = 355 , eCSSKeyword_mix = 356 , eCSSKeyword_mixed = 357 , eCSSKeyword_mm = 358 , eCSSKeyword_monospace = 359 , eCSSKeyword_move = 360 , eCSSKeyword_ms = 361 , eCSSKeyword_multiply = 362 , eCSSKeyword_n_resize = 363 , eCSSKeyword_narrower = 364 , eCSSKeyword_ne_resize = 365 , eCSSKeyword_nesw_resize = 366 , eCSSKeyword_no_clip = 367 , eCSSKeyword_no_close_quote = 368 , eCSSKeyword_no_common_ligatures = 369 , eCSSKeyword_no_contextual = 370 , eCSSKeyword_no_discretionary_ligatures = 371 , eCSSKeyword_no_drag = 372 , eCSSKeyword_no_drop = 373 , eCSSKeyword_no_historical_ligatures = 374 , eCSSKeyword_no_open_quote = 375 , eCSSKeyword_no_repeat = 376 , eCSSKeyword_none = 377 , eCSSKeyword_normal = 378 , eCSSKeyword_not_allowed = 379 , eCSSKeyword_nowrap = 380 , eCSSKeyword_numeric = 381 , eCSSKeyword_ns_resize = 382 , eCSSKeyword_nw_resize = 383 , eCSSKeyword_nwse_resize = 384 , eCSSKeyword_oblique = 385 , eCSSKeyword_oldstyle_nums = 386 , eCSSKeyword_opacity = 387 , eCSSKeyword_open = 388 , eCSSKeyword_open_quote = 389 , eCSSKeyword_optional = 390 , eCSSKeyword_ordinal = 391 , eCSSKeyword_ornaments = 392 , eCSSKeyword_outset = 393 , eCSSKeyword_outside = 394 , eCSSKeyword_over = 395 , eCSSKeyword_overlay = 396 , eCSSKeyword_overline = 397 , eCSSKeyword_paint = 398 , eCSSKeyword_padding_box = 399 , eCSSKeyword_painted = 400 , eCSSKeyword_pan_x = 401 , eCSSKeyword_pan_y = 402 , eCSSKeyword_paused = 403 , eCSSKeyword_pc = 404 , eCSSKeyword_perspective = 405 , eCSSKeyword_petite_caps = 406 , eCSSKeyword_physical = 407 , eCSSKeyword_plaintext = 408 , eCSSKeyword_pointer = 409 , eCSSKeyword_polygon = 410 , eCSSKeyword_portrait = 411 , eCSSKeyword_pre = 412 , eCSSKeyword_pre_wrap = 413 , eCSSKeyword_pre_line = 414 , eCSSKeyword_preserve_3d = 415 , eCSSKeyword_progress = 416 , eCSSKeyword_progressive = 417 , eCSSKeyword_proportional_nums = 418 , eCSSKeyword_proportional_width = 419 , eCSSKeyword_proximity = 420 , eCSSKeyword_pt = 421 , eCSSKeyword_px = 422 , eCSSKeyword_rad = 423 , eCSSKeyword_read_only = 424 , eCSSKeyword_read_write = 425 , eCSSKeyword_relative = 426 , eCSSKeyword_repeat = 427 , eCSSKeyword_repeat_x = 428 , eCSSKeyword_repeat_y = 429 , eCSSKeyword_reverse = 430 , eCSSKeyword_ridge = 431 , eCSSKeyword_right = 432 , eCSSKeyword_rl = 433 , eCSSKeyword_rl_tb = 434 , eCSSKeyword_rotate = 435 , eCSSKeyword_rotate3d = 436 , eCSSKeyword_rotatex = 437 , eCSSKeyword_rotatey = 438 , eCSSKeyword_rotatez = 439 , eCSSKeyword_round = 440 , eCSSKeyword_row = 441 , eCSSKeyword_row_resize = 442 , eCSSKeyword_row_reverse = 443 , eCSSKeyword_rtl = 444 , eCSSKeyword_ruby = 445 , eCSSKeyword_ruby_base = 446 , eCSSKeyword_ruby_base_container = 447 , eCSSKeyword_ruby_text = 448 , eCSSKeyword_ruby_text_container = 449 , eCSSKeyword_running = 450 , eCSSKeyword_s = 451 , eCSSKeyword_s_resize = 452 , eCSSKeyword_safe = 453 , eCSSKeyword_saturate = 454 , eCSSKeyword_saturation = 455 , eCSSKeyword_scale = 456 , eCSSKeyword_scale_down = 457 , eCSSKeyword_scale3d = 458 , eCSSKeyword_scalex = 459 , eCSSKeyword_scaley = 460 , eCSSKeyword_scalez = 461 , eCSSKeyword_screen = 462 , eCSSKeyword_script = 463 , eCSSKeyword_scroll = 464 , eCSSKeyword_scrollbar = 465 , eCSSKeyword_scrollbar_small = 466 , eCSSKeyword_scrollbar_horizontal = 467 , eCSSKeyword_scrollbar_vertical = 468 , eCSSKeyword_se_resize = 469 , eCSSKeyword_select_after = 470 , eCSSKeyword_select_all = 471 , eCSSKeyword_select_before = 472 , eCSSKeyword_select_menu = 473 , eCSSKeyword_select_same = 474 , eCSSKeyword_self_end = 475 , eCSSKeyword_self_start = 476 , eCSSKeyword_semi_condensed = 477 , eCSSKeyword_semi_expanded = 478 , eCSSKeyword_separate = 479 , eCSSKeyword_sepia = 480 , eCSSKeyword_serif = 481 , eCSSKeyword_sesame = 482 , eCSSKeyword_show = 483 , eCSSKeyword_sideways = 484 , eCSSKeyword_sideways_lr = 485 , eCSSKeyword_sideways_right = 486 , eCSSKeyword_sideways_rl = 487 , eCSSKeyword_simplified = 488 , eCSSKeyword_skew = 489 , eCSSKeyword_skewx = 490 , eCSSKeyword_skewy = 491 , eCSSKeyword_slashed_zero = 492 , eCSSKeyword_slice = 493 , eCSSKeyword_small = 494 , eCSSKeyword_small_caps = 495 , eCSSKeyword_small_caption = 496 , eCSSKeyword_smaller = 497 , eCSSKeyword_smooth = 498 , eCSSKeyword_soft = 499 , eCSSKeyword_soft_light = 500 , eCSSKeyword_solid = 501 , eCSSKeyword_space_around = 502 , eCSSKeyword_space_between = 503 , eCSSKeyword_space_evenly = 504 , eCSSKeyword_span = 505 , eCSSKeyword_spell_out = 506 , eCSSKeyword_square = 507 , eCSSKeyword_stacked_fractions = 508 , eCSSKeyword_start = 509 , eCSSKeyword_static = 510 , eCSSKeyword_standalone = 511 , eCSSKeyword_status_bar = 512 , eCSSKeyword_step_end = 513 , eCSSKeyword_step_start = 514 , eCSSKeyword_sticky = 515 , eCSSKeyword_stretch = 516 , eCSSKeyword_stretch_to_fit = 517 , eCSSKeyword_stretched = 518 , eCSSKeyword_strict = 519 , eCSSKeyword_stroke = 520 , eCSSKeyword_stroke_box = 521 , eCSSKeyword_style = 522 , eCSSKeyword_styleset = 523 , eCSSKeyword_stylistic = 524 , eCSSKeyword_sub = 525 , eCSSKeyword_subgrid = 526 , eCSSKeyword_subtract = 527 , eCSSKeyword_super = 528 , eCSSKeyword_sw_resize = 529 , eCSSKeyword_swash = 530 , eCSSKeyword_swap = 531 , eCSSKeyword_table = 532 , eCSSKeyword_table_caption = 533 , eCSSKeyword_table_cell = 534 , eCSSKeyword_table_column = 535 , eCSSKeyword_table_column_group = 536 , eCSSKeyword_table_footer_group = 537 , eCSSKeyword_table_header_group = 538 , eCSSKeyword_table_row = 539 , eCSSKeyword_table_row_group = 540 , eCSSKeyword_tabular_nums = 541 , eCSSKeyword_tailed = 542 , eCSSKeyword_tb = 543 , eCSSKeyword_tb_rl = 544 , eCSSKeyword_text = 545 , eCSSKeyword_text_bottom = 546 , eCSSKeyword_text_top = 547 , eCSSKeyword_thick = 548 , eCSSKeyword_thin = 549 , eCSSKeyword_threeddarkshadow = 550 , eCSSKeyword_threedface = 551 , eCSSKeyword_threedhighlight = 552 , eCSSKeyword_threedlightshadow = 553 , eCSSKeyword_threedshadow = 554 , eCSSKeyword_titling_caps = 555 , eCSSKeyword_toggle = 556 , eCSSKeyword_top = 557 , eCSSKeyword_top_outside = 558 , eCSSKeyword_traditional = 559 , eCSSKeyword_translate = 560 , eCSSKeyword_translate3d = 561 , eCSSKeyword_translatex = 562 , eCSSKeyword_translatey = 563 , eCSSKeyword_translatez = 564 , eCSSKeyword_transparent = 565 , eCSSKeyword_triangle = 566 , eCSSKeyword_tri_state = 567 , eCSSKeyword_ultra_condensed = 568 , eCSSKeyword_ultra_expanded = 569 , eCSSKeyword_under = 570 , eCSSKeyword_underline = 571 , eCSSKeyword_unicase = 572 , eCSSKeyword_unsafe = 573 , eCSSKeyword_unset = 574 , eCSSKeyword_uppercase = 575 , eCSSKeyword_upright = 576 , eCSSKeyword_vertical = 577 , eCSSKeyword_vertical_lr = 578 , eCSSKeyword_vertical_rl = 579 , eCSSKeyword_vertical_text = 580 , eCSSKeyword_view_box = 581 , eCSSKeyword_visible = 582 , eCSSKeyword_visiblefill = 583 , eCSSKeyword_visiblepainted = 584 , eCSSKeyword_visiblestroke = 585 , eCSSKeyword_w_resize = 586 , eCSSKeyword_wait = 587 , eCSSKeyword_wavy = 588 , eCSSKeyword_weight = 589 , eCSSKeyword_wider = 590 , eCSSKeyword_window = 591 , eCSSKeyword_windowframe = 592 , eCSSKeyword_windowtext = 593 , eCSSKeyword_words = 594 , eCSSKeyword_wrap = 595 , eCSSKeyword_wrap_reverse = 596 , eCSSKeyword_write_only = 597 , eCSSKeyword_x_large = 598 , eCSSKeyword_x_small = 599 , eCSSKeyword_xx_large = 600 , eCSSKeyword_xx_small = 601 , eCSSKeyword_zoom_in = 602 , eCSSKeyword_zoom_out = 603 , eCSSKeyword_radio = 604 , eCSSKeyword_checkbox = 605 , eCSSKeyword_button_bevel = 606 , eCSSKeyword_toolbox = 607 , eCSSKeyword_toolbar = 608 , eCSSKeyword_toolbarbutton = 609 , eCSSKeyword_toolbargripper = 610 , eCSSKeyword_dualbutton = 611 , eCSSKeyword_toolbarbutton_dropdown = 612 , eCSSKeyword_button_arrow_up = 613 , eCSSKeyword_button_arrow_down = 614 , eCSSKeyword_button_arrow_next = 615 , eCSSKeyword_button_arrow_previous = 616 , eCSSKeyword_separator = 617 , eCSSKeyword_splitter = 618 , eCSSKeyword_statusbar = 619 , eCSSKeyword_statusbarpanel = 620 , eCSSKeyword_resizerpanel = 621 , eCSSKeyword_resizer = 622 , eCSSKeyword_listbox = 623 , eCSSKeyword_listitem = 624 , eCSSKeyword_numbers = 625 , eCSSKeyword_number_input = 626 , eCSSKeyword_treeview = 627 , eCSSKeyword_treeitem = 628 , eCSSKeyword_treetwisty = 629 , eCSSKeyword_treetwistyopen = 630 , eCSSKeyword_treeline = 631 , eCSSKeyword_treeheader = 632 , eCSSKeyword_treeheadercell = 633 , eCSSKeyword_treeheadersortarrow = 634 , eCSSKeyword_progressbar = 635 , eCSSKeyword_progressbar_vertical = 636 , eCSSKeyword_progresschunk = 637 , eCSSKeyword_progresschunk_vertical = 638 , eCSSKeyword_tab = 639 , eCSSKeyword_tabpanels = 640 , eCSSKeyword_tabpanel = 641 , eCSSKeyword_tab_scroll_arrow_back = 642 , eCSSKeyword_tab_scroll_arrow_forward = 643 , eCSSKeyword_tooltip = 644 , eCSSKeyword_inner_spin_button = 645 , eCSSKeyword_spinner = 646 , eCSSKeyword_spinner_upbutton = 647 , eCSSKeyword_spinner_downbutton = 648 , eCSSKeyword_spinner_textfield = 649 , eCSSKeyword_scrollbarbutton_up = 650 , eCSSKeyword_scrollbarbutton_down = 651 , eCSSKeyword_scrollbarbutton_left = 652 , eCSSKeyword_scrollbarbutton_right = 653 , eCSSKeyword_scrollbartrack_horizontal = 654 , eCSSKeyword_scrollbartrack_vertical = 655 , eCSSKeyword_scrollbarthumb_horizontal = 656 , eCSSKeyword_scrollbarthumb_vertical = 657 , eCSSKeyword_sheet = 658 , eCSSKeyword_textfield = 659 , eCSSKeyword_textfield_multiline = 660 , eCSSKeyword_caret = 661 , eCSSKeyword_searchfield = 662 , eCSSKeyword_menubar = 663 , eCSSKeyword_menupopup = 664 , eCSSKeyword_menuitem = 665 , eCSSKeyword_checkmenuitem = 666 , eCSSKeyword_radiomenuitem = 667 , eCSSKeyword_menucheckbox = 668 , eCSSKeyword_menuradio = 669 , eCSSKeyword_menuseparator = 670 , eCSSKeyword_menuarrow = 671 , eCSSKeyword_menuimage = 672 , eCSSKeyword_menuitemtext = 673 , eCSSKeyword_menulist = 674 , eCSSKeyword_menulist_button = 675 , eCSSKeyword_menulist_text = 676 , eCSSKeyword_menulist_textfield = 677 , eCSSKeyword_meterbar = 678 , eCSSKeyword_meterchunk = 679 , eCSSKeyword_minimal_ui = 680 , eCSSKeyword_range = 681 , eCSSKeyword_range_thumb = 682 , eCSSKeyword_sans_serif = 683 , eCSSKeyword_sans_serif_bold_italic = 684 , eCSSKeyword_sans_serif_italic = 685 , eCSSKeyword_scale_horizontal = 686 , eCSSKeyword_scale_vertical = 687 , eCSSKeyword_scalethumb_horizontal = 688 , eCSSKeyword_scalethumb_vertical = 689 , eCSSKeyword_scalethumbstart = 690 , eCSSKeyword_scalethumbend = 691 , eCSSKeyword_scalethumbtick = 692 , eCSSKeyword_groupbox = 693 , eCSSKeyword_checkbox_container = 694 , eCSSKeyword_radio_container = 695 , eCSSKeyword_checkbox_label = 696 , eCSSKeyword_radio_label = 697 , eCSSKeyword_button_focus = 698 , eCSSKeyword__moz_win_media_toolbox = 699 , eCSSKeyword__moz_win_communications_toolbox = 700 , eCSSKeyword__moz_win_browsertabbar_toolbox = 701 , eCSSKeyword__moz_win_accentcolor = 702 , eCSSKeyword__moz_win_accentcolortext = 703 , eCSSKeyword__moz_win_mediatext = 704 , eCSSKeyword__moz_win_communicationstext = 705 , eCSSKeyword__moz_win_glass = 706 , eCSSKeyword__moz_win_borderless_glass = 707 , eCSSKeyword__moz_window_titlebar = 708 , eCSSKeyword__moz_window_titlebar_maximized = 709 , eCSSKeyword__moz_window_frame_left = 710 , eCSSKeyword__moz_window_frame_right = 711 , eCSSKeyword__moz_window_frame_bottom = 712 , eCSSKeyword__moz_window_button_close = 713 , eCSSKeyword__moz_window_button_minimize = 714 , eCSSKeyword__moz_window_button_maximize = 715 , eCSSKeyword__moz_window_button_restore = 716 , eCSSKeyword__moz_window_button_box = 717 , eCSSKeyword__moz_window_button_box_maximized = 718 , eCSSKeyword__moz_mac_help_button = 719 , eCSSKeyword__moz_win_exclude_glass = 720 , eCSSKeyword__moz_mac_vibrancy_light = 721 , eCSSKeyword__moz_mac_vibrancy_dark = 722 , eCSSKeyword__moz_mac_vibrant_titlebar_light = 723 , eCSSKeyword__moz_mac_vibrant_titlebar_dark = 724 , eCSSKeyword__moz_mac_disclosure_button_closed = 725 , eCSSKeyword__moz_mac_disclosure_button_open = 726 , eCSSKeyword__moz_mac_source_list = 727 , eCSSKeyword__moz_mac_source_list_selection = 728 , eCSSKeyword__moz_mac_active_source_list_selection = 729 , eCSSKeyword_alphabetic = 730 , eCSSKeyword_bevel = 731 , eCSSKeyword_butt = 732 , eCSSKeyword_central = 733 , eCSSKeyword_crispedges = 734 , eCSSKeyword_evenodd = 735 , eCSSKeyword_geometricprecision = 736 , eCSSKeyword_hanging = 737 , eCSSKeyword_ideographic = 738 , eCSSKeyword_linearrgb = 739 , eCSSKeyword_mathematical = 740 , eCSSKeyword_miter = 741 , eCSSKeyword_no_change = 742 , eCSSKeyword_non_scaling_stroke = 743 , eCSSKeyword_nonzero = 744 , eCSSKeyword_optimizelegibility = 745 , eCSSKeyword_optimizequality = 746 , eCSSKeyword_optimizespeed = 747 , eCSSKeyword_reset_size = 748 , eCSSKeyword_srgb = 749 , eCSSKeyword_symbolic = 750 , eCSSKeyword_symbols = 751 , eCSSKeyword_text_after_edge = 752 , eCSSKeyword_text_before_edge = 753 , eCSSKeyword_use_script = 754 , eCSSKeyword__moz_crisp_edges = 755 , eCSSKeyword_space = 756 , eCSSKeyword_COUNT = 757 , } pub const nsStyleStructID_nsStyleStructID_None : root :: nsStyleStructID = -1 ; pub const nsStyleStructID_nsStyleStructID_Inherited_Start : root :: nsStyleStructID = 0 ; pub const nsStyleStructID_nsStyleStructID_DUMMY1 : root :: nsStyleStructID = -1 ; pub const nsStyleStructID_eStyleStruct_Font : root :: nsStyleStructID = 0 ; pub const nsStyleStructID_eStyleStruct_Color : root :: nsStyleStructID = 1 ; pub const nsStyleStructID_eStyleStruct_List : root :: nsStyleStructID = 2 ; pub const nsStyleStructID_eStyleStruct_Text : root :: nsStyleStructID = 3 ; pub const nsStyleStructID_eStyleStruct_Visibility : root :: nsStyleStructID = 4 ; pub const nsStyleStructID_eStyleStruct_UserInterface : root :: nsStyleStructID = 5 ; pub const nsStyleStructID_eStyleStruct_TableBorder : root :: nsStyleStructID = 6 ; pub const nsStyleStructID_eStyleStruct_SVG : root :: nsStyleStructID = 7 ; pub const nsStyleStructID_eStyleStruct_Variables : root :: nsStyleStructID = 8 ; pub const nsStyleStructID_nsStyleStructID_Reset_Start : root :: nsStyleStructID = 9 ; pub const nsStyleStructID_nsStyleStructID_DUMMY2 : root :: nsStyleStructID = 8 ; pub const nsStyleStructID_eStyleStruct_Background : root :: nsStyleStructID = 9 ; pub const nsStyleStructID_eStyleStruct_Position : root :: nsStyleStructID = 10 ; pub const nsStyleStructID_eStyleStruct_TextReset : root :: nsStyleStructID = 11 ; pub const nsStyleStructID_eStyleStruct_Display : root :: nsStyleStructID = 12 ; pub const nsStyleStructID_eStyleStruct_Content : root :: nsStyleStructID = 13 ; pub const nsStyleStructID_eStyleStruct_UIReset : root :: nsStyleStructID = 14 ; pub const nsStyleStructID_eStyleStruct_Table : root :: nsStyleStructID = 15 ; pub const nsStyleStructID_eStyleStruct_Margin : root :: nsStyleStructID = 16 ; pub const nsStyleStructID_eStyleStruct_Padding : root :: nsStyleStructID = 17 ; pub const nsStyleStructID_eStyleStruct_Border : root :: nsStyleStructID = 18 ; pub const nsStyleStructID_eStyleStruct_Outline : root :: nsStyleStructID = 19 ; pub const nsStyleStructID_eStyleStruct_XUL : root :: nsStyleStructID = 20 ; pub const nsStyleStructID_eStyleStruct_SVGReset : root :: nsStyleStructID = 21 ; pub const nsStyleStructID_eStyleStruct_Column : root :: nsStyleStructID = 22 ; pub const nsStyleStructID_eStyleStruct_Effects : root :: nsStyleStructID = 23 ; pub const nsStyleStructID_nsStyleStructID_Length : root :: nsStyleStructID = 24 ; pub const nsStyleStructID_nsStyleStructID_Inherited_Count : root :: nsStyleStructID = 9 ; pub const nsStyleStructID_nsStyleStructID_Reset_Count : root :: nsStyleStructID = 15 ; pub type nsStyleStructID = :: std :: os :: raw :: c_int ; pub const nsStyleAnimType_eStyleAnimType_Custom : root :: nsStyleAnimType = 0 ; pub const nsStyleAnimType_eStyleAnimType_Coord : root :: nsStyleAnimType = 1 ; pub const nsStyleAnimType_eStyleAnimType_Sides_Top : root :: nsStyleAnimType = 2 ; pub const nsStyleAnimType_eStyleAnimType_Sides_Right : root :: nsStyleAnimType = 3 ; pub const nsStyleAnimType_eStyleAnimType_Sides_Bottom : root :: nsStyleAnimType = 4 ; pub const nsStyleAnimType_eStyleAnimType_Sides_Left : root :: nsStyleAnimType = 5 ; pub const nsStyleAnimType_eStyleAnimType_Corner_TopLeft : root :: nsStyleAnimType = 6 ; pub const nsStyleAnimType_eStyleAnimType_Corner_TopRight : root :: nsStyleAnimType = 7 ; pub const nsStyleAnimType_eStyleAnimType_Corner_BottomRight : root :: nsStyleAnimType = 8 ; pub const nsStyleAnimType_eStyleAnimType_Corner_BottomLeft : root :: nsStyleAnimType = 9 ; pub const nsStyleAnimType_eStyleAnimType_nscoord : root :: nsStyleAnimType = 10 ; pub const nsStyleAnimType_eStyleAnimType_float : root :: nsStyleAnimType = 11 ; pub const nsStyleAnimType_eStyleAnimType_Color : root :: nsStyleAnimType = 12 ; pub const nsStyleAnimType_eStyleAnimType_ComplexColor : root :: nsStyleAnimType = 13 ; pub const nsStyleAnimType_eStyleAnimType_PaintServer : root :: nsStyleAnimType = 14 ; pub const nsStyleAnimType_eStyleAnimType_Shadow : root :: nsStyleAnimType = 15 ; pub const nsStyleAnimType_eStyleAnimType_Discrete : root :: nsStyleAnimType = 16 ; pub const nsStyleAnimType_eStyleAnimType_None : root :: nsStyleAnimType = 17 ; pub type nsStyleAnimType = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsCSSProps { pub _address : u8 , } pub use self :: super :: root :: mozilla :: CSSEnabledState as nsCSSProps_EnabledState ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsCSSProps_KTableEntry { pub mKeyword : root :: nsCSSKeyword , pub mValue : i16 , } # [ test ] fn bindgen_test_layout_nsCSSProps_KTableEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSProps_KTableEntry > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( nsCSSProps_KTableEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSProps_KTableEntry > ( ) , 2usize , concat ! ( "Alignment of " , stringify ! ( nsCSSProps_KTableEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSProps_KTableEntry ) ) . mKeyword as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSProps_KTableEntry ) , "::" , stringify ! ( mKeyword ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSProps_KTableEntry ) ) . mValue as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSProps_KTableEntry ) , "::" , stringify ! ( mValue ) ) ) ; } impl Clone for nsCSSProps_KTableEntry { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps9kSIDTableE" ]
- pub static mut nsCSSProps_kSIDTable : [ root :: nsStyleStructID ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kKeywordTableTableE" ]
- pub static mut nsCSSProps_kKeywordTableTable : [ * const root :: nsCSSProps_KTableEntry ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kAnimTypeTableE" ]
- pub static mut nsCSSProps_kAnimTypeTable : [ root :: nsStyleAnimType ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kStyleStructOffsetTableE" ]
- pub static mut nsCSSProps_kStyleStructOffsetTable : [ isize ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps11kFlagsTableE" ]
- pub static mut nsCSSProps_kFlagsTable : [ u32 ; 377usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kParserVariantTableE" ]
- pub static mut nsCSSProps_kParserVariantTable : [ u32 ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kSubpropertyTableE" ]
- pub static mut nsCSSProps_kSubpropertyTable : [ * const root :: nsCSSPropertyID ; 50usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps26gShorthandsContainingTableE" ]
- pub static mut nsCSSProps_gShorthandsContainingTable : [ * mut root :: nsCSSPropertyID ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25gShorthandsContainingPoolE" ]
- pub static mut nsCSSProps_gShorthandsContainingPool : * mut root :: nsCSSPropertyID ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22gPropertyCountInStructE" ]
- pub static mut nsCSSProps_gPropertyCountInStruct : [ usize ; 24usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22gPropertyIndexInStructE" ]
- pub static mut nsCSSProps_gPropertyIndexInStruct : [ usize ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kLogicalGroupTableE" ]
- pub static mut nsCSSProps_kLogicalGroupTable : [ * const root :: nsCSSPropertyID ; 9usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16gPropertyEnabledE" ]
- pub static mut nsCSSProps_gPropertyEnabled : [ bool ; 486usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps13kIDLNameTableE" ]
- pub static mut nsCSSProps_kIDLNameTable : [ * const :: std :: os :: raw :: c_char ; 377usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kIDLNameSortPositionTableE" ]
- pub static mut nsCSSProps_kIDLNameSortPositionTable : [ i32 ; 377usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19gPropertyUseCounterE" ]
- pub static mut nsCSSProps_gPropertyUseCounter : [ root :: mozilla :: UseCounter ; 327usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kAnimationDirectionKTableE" ]
- pub static mut nsCSSProps_kAnimationDirectionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps24kAnimationFillModeKTableE" ]
- pub static mut nsCSSProps_kAnimationFillModeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps30kAnimationIterationCountKTableE" ]
- pub static mut nsCSSProps_kAnimationIterationCountKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kAnimationPlayStateKTableE" ]
- pub static mut nsCSSProps_kAnimationPlayStateKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps30kAnimationTimingFunctionKTableE" ]
- pub static mut nsCSSProps_kAnimationTimingFunctionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kAppearanceKTableE" ]
- pub static mut nsCSSProps_kAppearanceKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kAzimuthKTableE" ]
- pub static mut nsCSSProps_kAzimuthKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kBackfaceVisibilityKTableE" ]
- pub static mut nsCSSProps_kBackfaceVisibilityKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kTransformStyleKTableE" ]
- pub static mut nsCSSProps_kTransformStyleKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kImageLayerAttachmentKTableE" ]
- pub static mut nsCSSProps_kImageLayerAttachmentKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kBackgroundOriginKTableE" ]
- pub static mut nsCSSProps_kBackgroundOriginKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kMaskOriginKTableE" ]
- pub static mut nsCSSProps_kMaskOriginKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kImageLayerPositionKTableE" ]
- pub static mut nsCSSProps_kImageLayerPositionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kImageLayerRepeatKTableE" ]
- pub static mut nsCSSProps_kImageLayerRepeatKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kImageLayerRepeatPartKTableE" ]
- pub static mut nsCSSProps_kImageLayerRepeatPartKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kImageLayerSizeKTableE" ]
- pub static mut nsCSSProps_kImageLayerSizeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps26kImageLayerCompositeKTableE" ]
- pub static mut nsCSSProps_kImageLayerCompositeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kImageLayerModeKTableE" ]
- pub static mut nsCSSProps_kImageLayerModeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kBackgroundClipKTableE" ]
- pub static mut nsCSSProps_kBackgroundClipKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kMaskClipKTableE" ]
- pub static mut nsCSSProps_kMaskClipKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kBlendModeKTableE" ]
- pub static mut nsCSSProps_kBlendModeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kBorderCollapseKTableE" ]
- pub static mut nsCSSProps_kBorderCollapseKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps24kBorderImageRepeatKTableE" ]
- pub static mut nsCSSProps_kBorderImageRepeatKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kBorderImageSliceKTableE" ]
- pub static mut nsCSSProps_kBorderImageSliceKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kBorderStyleKTableE" ]
- pub static mut nsCSSProps_kBorderStyleKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kBorderWidthKTableE" ]
- pub static mut nsCSSProps_kBorderWidthKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kBoxAlignKTableE" ]
- pub static mut nsCSSProps_kBoxAlignKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kBoxDecorationBreakKTableE" ]
- pub static mut nsCSSProps_kBoxDecorationBreakKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kBoxDirectionKTableE" ]
- pub static mut nsCSSProps_kBoxDirectionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kBoxOrientKTableE" ]
- pub static mut nsCSSProps_kBoxOrientKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kBoxPackKTableE" ]
- pub static mut nsCSSProps_kBoxPackKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps26kClipPathGeometryBoxKTableE" ]
- pub static mut nsCSSProps_kClipPathGeometryBoxKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kCounterRangeKTableE" ]
- pub static mut nsCSSProps_kCounterRangeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kCounterSpeakAsKTableE" ]
- pub static mut nsCSSProps_kCounterSpeakAsKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kCounterSymbolsSystemKTableE" ]
- pub static mut nsCSSProps_kCounterSymbolsSystemKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kCounterSystemKTableE" ]
- pub static mut nsCSSProps_kCounterSystemKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kDominantBaselineKTableE" ]
- pub static mut nsCSSProps_kDominantBaselineKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kShapeRadiusKTableE" ]
- pub static mut nsCSSProps_kShapeRadiusKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kFillRuleKTableE" ]
- pub static mut nsCSSProps_kFillRuleKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kFilterFunctionKTableE" ]
- pub static mut nsCSSProps_kFilterFunctionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kImageRenderingKTableE" ]
- pub static mut nsCSSProps_kImageRenderingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kShapeOutsideShapeBoxKTableE" ]
- pub static mut nsCSSProps_kShapeOutsideShapeBoxKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kShapeRenderingKTableE" ]
- pub static mut nsCSSProps_kShapeRenderingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kStrokeLinecapKTableE" ]
- pub static mut nsCSSProps_kStrokeLinecapKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kStrokeLinejoinKTableE" ]
- pub static mut nsCSSProps_kStrokeLinejoinKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kStrokeContextValueKTableE" ]
- pub static mut nsCSSProps_kStrokeContextValueKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kVectorEffectKTableE" ]
- pub static mut nsCSSProps_kVectorEffectKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kTextAnchorKTableE" ]
- pub static mut nsCSSProps_kTextAnchorKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kTextRenderingKTableE" ]
- pub static mut nsCSSProps_kTextRenderingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kColorAdjustKTableE" ]
- pub static mut nsCSSProps_kColorAdjustKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kColorInterpolationKTableE" ]
- pub static mut nsCSSProps_kColorInterpolationKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kColumnFillKTableE" ]
- pub static mut nsCSSProps_kColumnFillKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kColumnSpanKTableE" ]
- pub static mut nsCSSProps_kColumnSpanKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kBoxPropSourceKTableE" ]
- pub static mut nsCSSProps_kBoxPropSourceKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kBoxShadowTypeKTableE" ]
- pub static mut nsCSSProps_kBoxShadowTypeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kBoxSizingKTableE" ]
- pub static mut nsCSSProps_kBoxSizingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kCaptionSideKTableE" ]
- pub static mut nsCSSProps_kCaptionSideKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kClearKTableE" ]
- pub static mut nsCSSProps_kClearKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kColorKTableE" ]
- pub static mut nsCSSProps_kColorKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kContentKTableE" ]
- pub static mut nsCSSProps_kContentKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps33kControlCharacterVisibilityKTableE" ]
- pub static mut nsCSSProps_kControlCharacterVisibilityKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps13kCursorKTableE" ]
- pub static mut nsCSSProps_kCursorKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kDirectionKTableE" ]
- pub static mut nsCSSProps_kDirectionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kDisplayKTableE" ]
- pub static mut nsCSSProps_kDisplayKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kElevationKTableE" ]
- pub static mut nsCSSProps_kElevationKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kEmptyCellsKTableE" ]
- pub static mut nsCSSProps_kEmptyCellsKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kAlignAllKeywordsE" ]
- pub static mut nsCSSProps_kAlignAllKeywords : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22kAlignOverflowPositionE" ]
- pub static mut nsCSSProps_kAlignOverflowPosition : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kAlignSelfPositionE" ]
- pub static mut nsCSSProps_kAlignSelfPosition : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kAlignLegacyE" ]
- pub static mut nsCSSProps_kAlignLegacy : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kAlignLegacyPositionE" ]
- pub static mut nsCSSProps_kAlignLegacyPosition : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps31kAlignAutoNormalStretchBaselineE" ]
- pub static mut nsCSSProps_kAlignAutoNormalStretchBaseline : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kAlignNormalStretchBaselineE" ]
- pub static mut nsCSSProps_kAlignNormalStretchBaseline : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kAlignNormalBaselineE" ]
- pub static mut nsCSSProps_kAlignNormalBaseline : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kAlignContentDistributionE" ]
- pub static mut nsCSSProps_kAlignContentDistribution : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kAlignContentPositionE" ]
- pub static mut nsCSSProps_kAlignContentPosition : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps31kAutoCompletionAlignJustifySelfE" ]
- pub static mut nsCSSProps_kAutoCompletionAlignJustifySelf : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kAutoCompletionAlignItemsE" ]
- pub static mut nsCSSProps_kAutoCompletionAlignItems : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps34kAutoCompletionAlignJustifyContentE" ]
- pub static mut nsCSSProps_kAutoCompletionAlignJustifyContent : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kFlexDirectionKTableE" ]
- pub static mut nsCSSProps_kFlexDirectionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kFlexWrapKTableE" ]
- pub static mut nsCSSProps_kFlexWrapKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kFloatKTableE" ]
- pub static mut nsCSSProps_kFloatKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kFloatEdgeKTableE" ]
- pub static mut nsCSSProps_kFloatEdgeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kFontDisplayKTableE" ]
- pub static mut nsCSSProps_kFontDisplayKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps11kFontKTableE" ]
- pub static mut nsCSSProps_kFontKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kFontKerningKTableE" ]
- pub static mut nsCSSProps_kFontKerningKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kFontSizeKTableE" ]
- pub static mut nsCSSProps_kFontSizeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kFontSmoothingKTableE" ]
- pub static mut nsCSSProps_kFontSmoothingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kFontStretchKTableE" ]
- pub static mut nsCSSProps_kFontStretchKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kFontStyleKTableE" ]
- pub static mut nsCSSProps_kFontStyleKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kFontSynthesisKTableE" ]
- pub static mut nsCSSProps_kFontSynthesisKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kFontVariantKTableE" ]
- pub static mut nsCSSProps_kFontVariantKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps28kFontVariantAlternatesKTableE" ]
- pub static mut nsCSSProps_kFontVariantAlternatesKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps33kFontVariantAlternatesFuncsKTableE" ]
- pub static mut nsCSSProps_kFontVariantAlternatesFuncsKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22kFontVariantCapsKTableE" ]
- pub static mut nsCSSProps_kFontVariantCapsKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kFontVariantEastAsianKTableE" ]
- pub static mut nsCSSProps_kFontVariantEastAsianKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kFontVariantLigaturesKTableE" ]
- pub static mut nsCSSProps_kFontVariantLigaturesKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kFontVariantNumericKTableE" ]
- pub static mut nsCSSProps_kFontVariantNumericKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps26kFontVariantPositionKTableE" ]
- pub static mut nsCSSProps_kFontVariantPositionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kFontWeightKTableE" ]
- pub static mut nsCSSProps_kFontWeightKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kGridAutoFlowKTableE" ]
- pub static mut nsCSSProps_kGridAutoFlowKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kGridTrackBreadthKTableE" ]
- pub static mut nsCSSProps_kGridTrackBreadthKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kHyphensKTableE" ]
- pub static mut nsCSSProps_kHyphensKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kImageOrientationKTableE" ]
- pub static mut nsCSSProps_kImageOrientationKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kImageOrientationFlipKTableE" ]
- pub static mut nsCSSProps_kImageOrientationFlipKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kIsolationKTableE" ]
- pub static mut nsCSSProps_kIsolationKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kIMEModeKTableE" ]
- pub static mut nsCSSProps_kIMEModeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kLineHeightKTableE" ]
- pub static mut nsCSSProps_kLineHeightKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps24kListStylePositionKTableE" ]
- pub static mut nsCSSProps_kListStylePositionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kMaskTypeKTableE" ]
- pub static mut nsCSSProps_kMaskTypeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kMathVariantKTableE" ]
- pub static mut nsCSSProps_kMathVariantKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kMathDisplayKTableE" ]
- pub static mut nsCSSProps_kMathDisplayKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps14kContainKTableE" ]
- pub static mut nsCSSProps_kContainKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kContextOpacityKTableE" ]
- pub static mut nsCSSProps_kContextOpacityKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kContextPatternKTableE" ]
- pub static mut nsCSSProps_kContextPatternKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kObjectFitKTableE" ]
- pub static mut nsCSSProps_kObjectFitKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps13kOrientKTableE" ]
- pub static mut nsCSSProps_kOrientKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kOutlineStyleKTableE" ]
- pub static mut nsCSSProps_kOutlineStyleKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kOverflowKTableE" ]
- pub static mut nsCSSProps_kOverflowKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kOverflowSubKTableE" ]
- pub static mut nsCSSProps_kOverflowSubKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22kOverflowClipBoxKTableE" ]
- pub static mut nsCSSProps_kOverflowClipBoxKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kOverflowWrapKTableE" ]
- pub static mut nsCSSProps_kOverflowWrapKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kPageBreakKTableE" ]
- pub static mut nsCSSProps_kPageBreakKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22kPageBreakInsideKTableE" ]
- pub static mut nsCSSProps_kPageBreakInsideKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kPageMarksKTableE" ]
- pub static mut nsCSSProps_kPageMarksKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kPageSizeKTableE" ]
- pub static mut nsCSSProps_kPageSizeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kPitchKTableE" ]
- pub static mut nsCSSProps_kPitchKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kPointerEventsKTableE" ]
- pub static mut nsCSSProps_kPointerEventsKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kPositionKTableE" ]
- pub static mut nsCSSProps_kPositionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps26kRadialGradientShapeKTableE" ]
- pub static mut nsCSSProps_kRadialGradientShapeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kRadialGradientSizeKTableE" ]
- pub static mut nsCSSProps_kRadialGradientSizeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps31kRadialGradientLegacySizeKTableE" ]
- pub static mut nsCSSProps_kRadialGradientLegacySizeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps13kResizeKTableE" ]
- pub static mut nsCSSProps_kResizeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kRubyAlignKTableE" ]
- pub static mut nsCSSProps_kRubyAlignKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kRubyPositionKTableE" ]
- pub static mut nsCSSProps_kRubyPositionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kScrollBehaviorKTableE" ]
- pub static mut nsCSSProps_kScrollBehaviorKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kOverscrollBehaviorKTableE" ]
- pub static mut nsCSSProps_kOverscrollBehaviorKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kScrollSnapTypeKTableE" ]
- pub static mut nsCSSProps_kScrollSnapTypeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kSpeakKTableE" ]
- pub static mut nsCSSProps_kSpeakKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kSpeakHeaderKTableE" ]
- pub static mut nsCSSProps_kSpeakHeaderKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kSpeakNumeralKTableE" ]
- pub static mut nsCSSProps_kSpeakNumeralKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps23kSpeakPunctuationKTableE" ]
- pub static mut nsCSSProps_kSpeakPunctuationKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kSpeechRateKTableE" ]
- pub static mut nsCSSProps_kSpeechRateKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kStackSizingKTableE" ]
- pub static mut nsCSSProps_kStackSizingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kTableLayoutKTableE" ]
- pub static mut nsCSSProps_kTableLayoutKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kTextAlignKTableE" ]
- pub static mut nsCSSProps_kTextAlignKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kTextAlignLastKTableE" ]
- pub static mut nsCSSProps_kTextAlignLastKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kTextCombineUprightKTableE" ]
- pub static mut nsCSSProps_kTextCombineUprightKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps25kTextDecorationLineKTableE" ]
- pub static mut nsCSSProps_kTextDecorationLineKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps26kTextDecorationStyleKTableE" ]
- pub static mut nsCSSProps_kTextDecorationStyleKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps27kTextEmphasisPositionKTableE" ]
- pub static mut nsCSSProps_kTextEmphasisPositionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps28kTextEmphasisStyleFillKTableE" ]
- pub static mut nsCSSProps_kTextEmphasisStyleFillKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps29kTextEmphasisStyleShapeKTableE" ]
- pub static mut nsCSSProps_kTextEmphasisStyleShapeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kTextJustifyKTableE" ]
- pub static mut nsCSSProps_kTextJustifyKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps22kTextOrientationKTableE" ]
- pub static mut nsCSSProps_kTextOrientationKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kTextOverflowKTableE" ]
- pub static mut nsCSSProps_kTextOverflowKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kTextSizeAdjustKTableE" ]
- pub static mut nsCSSProps_kTextSizeAdjustKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kTextTransformKTableE" ]
- pub static mut nsCSSProps_kTextTransformKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kTouchActionKTableE" ]
- pub static mut nsCSSProps_kTouchActionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps15kTopLayerKTableE" ]
- pub static mut nsCSSProps_kTopLayerKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kTransformBoxKTableE" ]
- pub static mut nsCSSProps_kTransformBoxKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps31kTransitionTimingFunctionKTableE" ]
- pub static mut nsCSSProps_kTransitionTimingFunctionKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kUnicodeBidiKTableE" ]
- pub static mut nsCSSProps_kUnicodeBidiKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kUserFocusKTableE" ]
- pub static mut nsCSSProps_kUserFocusKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kUserInputKTableE" ]
- pub static mut nsCSSProps_kUserInputKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kUserModifyKTableE" ]
- pub static mut nsCSSProps_kUserModifyKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kUserSelectKTableE" ]
- pub static mut nsCSSProps_kUserSelectKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps20kVerticalAlignKTableE" ]
- pub static mut nsCSSProps_kVerticalAlignKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kVisibilityKTableE" ]
- pub static mut nsCSSProps_kVisibilityKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps13kVolumeKTableE" ]
- pub static mut nsCSSProps_kVolumeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps17kWhitespaceKTableE" ]
- pub static mut nsCSSProps_kWhitespaceKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps12kWidthKTableE" ]
- pub static mut nsCSSProps_kWidthKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps21kWindowDraggingKTableE" ]
- pub static mut nsCSSProps_kWindowDraggingKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps19kWindowShadowKTableE" ]
- pub static mut nsCSSProps_kWindowShadowKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps16kWordBreakKTableE" ]
- pub static mut nsCSSProps_kWordBreakKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN10nsCSSProps18kWritingModeKTableE" ]
- pub static mut nsCSSProps_kWritingModeKTable : [ root :: nsCSSProps_KTableEntry ; 0usize ] ;
-} # [ test ] fn bindgen_test_layout_nsCSSProps ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSProps > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( nsCSSProps ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSProps > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( nsCSSProps ) ) ) ; } impl Clone for nsCSSProps { fn clone ( & self ) -> Self { * self } }
- /// Class to safely handle main-thread-only pointers off the main thread.
+ /// notified, with a null document pointer.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsIDocument_ExternalResourceLoad {
+ pub _base: root::nsISupports,
+ pub mObservers: [u64; 10usize],
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDocument_ExternalResourceLoad() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument_ExternalResourceLoad>(),
+ 88usize,
+ concat!("Size of: ", stringify!(nsIDocument_ExternalResourceLoad))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument_ExternalResourceLoad>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsIDocument_ExternalResourceLoad)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIDocument_ExternalResourceLoad>())).mObservers as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIDocument_ExternalResourceLoad),
+ "::",
+ stringify!(mObservers)
+ )
+ );
+ }
+ pub type nsIDocument_ActivityObserverEnumerator = ::std::option::Option<
+ unsafe extern "C" fn(arg1: *mut root::nsISupports, arg2: *mut ::std::os::raw::c_void),
+ >;
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsIDocument_DocumentTheme {
+ Doc_Theme_Uninitialized = 0,
+ Doc_Theme_None = 1,
+ Doc_Theme_Neutral = 2,
+ Doc_Theme_Dark = 3,
+ Doc_Theme_Bright = 4,
+ }
+ pub type nsIDocument_FrameRequestCallbackList =
+ root::nsTArray<root::RefPtr<root::mozilla::dom::FrameRequestCallback>>;
+ pub const nsIDocument_DeprecatedOperations_eEnablePrivilege:
+ root::nsIDocument_DeprecatedOperations = 0;
+ pub const nsIDocument_DeprecatedOperations_eDOMExceptionCode:
+ root::nsIDocument_DeprecatedOperations = 1;
+ pub const nsIDocument_DeprecatedOperations_eMutationEvent:
+ root::nsIDocument_DeprecatedOperations = 2;
+ pub const nsIDocument_DeprecatedOperations_eComponents: root::nsIDocument_DeprecatedOperations =
+ 3;
+ pub const nsIDocument_DeprecatedOperations_ePrefixedVisibilityAPI:
+ root::nsIDocument_DeprecatedOperations = 4;
+ pub const nsIDocument_DeprecatedOperations_eNodeIteratorDetach:
+ root::nsIDocument_DeprecatedOperations = 5;
+ pub const nsIDocument_DeprecatedOperations_eLenientThis:
+ root::nsIDocument_DeprecatedOperations = 6;
+ pub const nsIDocument_DeprecatedOperations_eGetPreventDefault:
+ root::nsIDocument_DeprecatedOperations = 7;
+ pub const nsIDocument_DeprecatedOperations_eGetSetUserData:
+ root::nsIDocument_DeprecatedOperations = 8;
+ pub const nsIDocument_DeprecatedOperations_eMozGetAsFile:
+ root::nsIDocument_DeprecatedOperations = 9;
+ pub const nsIDocument_DeprecatedOperations_eUseOfCaptureEvents:
+ root::nsIDocument_DeprecatedOperations = 10;
+ pub const nsIDocument_DeprecatedOperations_eUseOfReleaseEvents:
+ root::nsIDocument_DeprecatedOperations = 11;
+ pub const nsIDocument_DeprecatedOperations_eUseOfDOM3LoadMethod:
+ root::nsIDocument_DeprecatedOperations = 12;
+ pub const nsIDocument_DeprecatedOperations_eChromeUseOfDOM3LoadMethod:
+ root::nsIDocument_DeprecatedOperations = 13;
+ pub const nsIDocument_DeprecatedOperations_eShowModalDialog:
+ root::nsIDocument_DeprecatedOperations = 14;
+ pub const nsIDocument_DeprecatedOperations_eSyncXMLHttpRequest:
+ root::nsIDocument_DeprecatedOperations = 15;
+ pub const nsIDocument_DeprecatedOperations_eWindow_Cc_ontrollers:
+ root::nsIDocument_DeprecatedOperations = 16;
+ pub const nsIDocument_DeprecatedOperations_eImportXULIntoContent:
+ root::nsIDocument_DeprecatedOperations = 17;
+ pub const nsIDocument_DeprecatedOperations_ePannerNodeDoppler:
+ root::nsIDocument_DeprecatedOperations = 18;
+ pub const nsIDocument_DeprecatedOperations_eNavigatorGetUserMedia:
+ root::nsIDocument_DeprecatedOperations = 19;
+ pub const nsIDocument_DeprecatedOperations_eWebrtcDeprecatedPrefix:
+ root::nsIDocument_DeprecatedOperations = 20;
+ pub const nsIDocument_DeprecatedOperations_eRTCPeerConnectionGetStreams:
+ root::nsIDocument_DeprecatedOperations = 21;
+ pub const nsIDocument_DeprecatedOperations_eAppCache: root::nsIDocument_DeprecatedOperations =
+ 22;
+ pub const nsIDocument_DeprecatedOperations_ePrefixedImageSmoothingEnabled:
+ root::nsIDocument_DeprecatedOperations = 23;
+ pub const nsIDocument_DeprecatedOperations_ePrefixedFullscreenAPI:
+ root::nsIDocument_DeprecatedOperations = 24;
+ pub const nsIDocument_DeprecatedOperations_eLenientSetter:
+ root::nsIDocument_DeprecatedOperations = 25;
+ pub const nsIDocument_DeprecatedOperations_eFileLastModifiedDate:
+ root::nsIDocument_DeprecatedOperations = 26;
+ pub const nsIDocument_DeprecatedOperations_eImageBitmapRenderingContext_TransferImageBitmap:
+ root::nsIDocument_DeprecatedOperations = 27;
+ pub const nsIDocument_DeprecatedOperations_eURLCreateObjectURL_MediaStream:
+ root::nsIDocument_DeprecatedOperations = 28;
+ pub const nsIDocument_DeprecatedOperations_eXMLBaseAttribute:
+ root::nsIDocument_DeprecatedOperations = 29;
+ pub const nsIDocument_DeprecatedOperations_eWindowContentUntrusted:
+ root::nsIDocument_DeprecatedOperations = 30;
+ pub const nsIDocument_DeprecatedOperations_eDeprecatedOperationCount:
+ root::nsIDocument_DeprecatedOperations = 31;
+ pub type nsIDocument_DeprecatedOperations = u32;
+ pub const nsIDocument_DocumentWarnings_eIgnoringWillChangeOverBudget:
+ root::nsIDocument_DocumentWarnings = 0;
+ pub const nsIDocument_DocumentWarnings_ePreventDefaultFromPassiveListener:
+ root::nsIDocument_DocumentWarnings = 1;
+ pub const nsIDocument_DocumentWarnings_eSVGRefLoop: root::nsIDocument_DocumentWarnings = 2;
+ pub const nsIDocument_DocumentWarnings_eSVGRefChainLengthExceeded:
+ root::nsIDocument_DocumentWarnings = 3;
+ pub const nsIDocument_DocumentWarnings_eDocumentWarningCount:
+ root::nsIDocument_DocumentWarnings = 4;
+ pub type nsIDocument_DocumentWarnings = u32;
+ pub const nsIDocument_ElementCallbackType_eConnected: root::nsIDocument_ElementCallbackType = 0;
+ pub const nsIDocument_ElementCallbackType_eDisconnected: root::nsIDocument_ElementCallbackType =
+ 1;
+ pub const nsIDocument_ElementCallbackType_eAdopted: root::nsIDocument_ElementCallbackType = 2;
+ pub const nsIDocument_ElementCallbackType_eAttributeChanged:
+ root::nsIDocument_ElementCallbackType = 3;
+ pub type nsIDocument_ElementCallbackType = u32;
+ pub const nsIDocument_eScopedStyle_Unknown: root::nsIDocument__bindgen_ty_1 = 0;
+ pub const nsIDocument_eScopedStyle_Disabled: root::nsIDocument__bindgen_ty_1 = 1;
+ pub const nsIDocument_eScopedStyle_Enabled: root::nsIDocument__bindgen_ty_1 = 2;
+ pub type nsIDocument__bindgen_ty_1 = u32;
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsIDocument_Type {
+ eUnknown = 0,
+ eHTML = 1,
+ eXHTML = 2,
+ eGenericXML = 3,
+ eSVG = 4,
+ eXUL = 5,
+ }
+ pub const nsIDocument_Tri_eTriUnset: root::nsIDocument_Tri = 0;
+ pub const nsIDocument_Tri_eTriFalse: root::nsIDocument_Tri = 1;
+ pub const nsIDocument_Tri_eTriTrue: root::nsIDocument_Tri = 2;
+ pub type nsIDocument_Tri = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDocument_FrameRequest {
+ _unused: [u8; 0],
+ }
+ pub const nsIDocument_kSegmentSize: usize = 128;
+ #[test]
+ fn bindgen_test_layout_nsIDocument() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDocument>(),
+ 928usize,
+ concat!("Size of: ", stringify!(nsIDocument))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDocument>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDocument))
+ );
+ }
+ impl nsIDocument {
+ #[inline]
+ pub fn mBidiEnabled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mBidiEnabled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mMathMLEnabled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mMathMLEnabled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsInitialDocumentInWindow(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsInitialDocumentInWindow(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(2usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIgnoreDocGroupMismatches(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIgnoreDocGroupMismatches(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(3usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mLoadedAsData(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mLoadedAsData(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(4usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mLoadedAsInteractiveData(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mLoadedAsInteractiveData(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(5usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mMayStartLayout(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mMayStartLayout(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(6usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHaveFiredTitleChange(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHaveFiredTitleChange(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(7usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsShowing(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsShowing(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(8usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mVisible(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mVisible(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(9usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasReferrerPolicyCSP(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasReferrerPolicyCSP(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(10usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mRemovedFromDocShell(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mRemovedFromDocShell(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(11usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mAllowDNSPrefetch(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mAllowDNSPrefetch(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(12usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsStaticDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsStaticDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(13usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mCreatingStaticClone(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mCreatingStaticClone(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(14usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mInUnlinkOrDeletion(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mInUnlinkOrDeletion(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(15usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasHadScriptHandlingObject(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasHadScriptHandlingObject(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(16usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsBeingUsedAsImage(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsBeingUsedAsImage(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(17usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsSyntheticDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsSyntheticDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(18usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasLinksToUpdate(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasLinksToUpdate(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(19usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasLinksToUpdateRunnable(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasLinksToUpdateRunnable(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(20usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mMayHaveDOMMutationObservers(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mMayHaveDOMMutationObservers(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(21usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mMayHaveAnimationObservers(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mMayHaveAnimationObservers(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(22usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasMixedActiveContentLoaded(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasMixedActiveContentLoaded(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(23usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasMixedActiveContentBlocked(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasMixedActiveContentBlocked(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(24usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasMixedDisplayContentLoaded(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasMixedDisplayContentLoaded(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(25usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasMixedDisplayContentBlocked(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasMixedDisplayContentBlocked(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(26usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasMixedContentObjectSubrequest(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasMixedContentObjectSubrequest(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(27usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasCSP(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasCSP(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(28usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasUnsafeEvalCSP(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasUnsafeEvalCSP(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(29usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasUnsafeInlineCSP(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasUnsafeInlineCSP(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(30usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasTrackingContentBlocked(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasTrackingContentBlocked(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(31usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasTrackingContentLoaded(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasTrackingContentLoaded(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(32usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mBFCacheDisallowed(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mBFCacheDisallowed(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(33usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasHadDefaultView(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasHadDefaultView(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(34usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mStyleSheetChangeEventsEnabled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mStyleSheetChangeEventsEnabled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(35usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsSrcdocDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsSrcdocDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(36usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDidDocumentOpen(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mDidDocumentOpen(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(37usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasDisplayDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasDisplayDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(38usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFontFaceSetDirty(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(39usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mFontFaceSetDirty(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(39usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mGetUserFontSetCalled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mGetUserFontSetCalled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(40usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPostedFlushUserFontSet(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(41usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mPostedFlushUserFontSet(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(41usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDidFireDOMContentLoaded(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(42usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mDidFireDOMContentLoaded(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(42usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasScrollLinkedEffect(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(43usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHasScrollLinkedEffect(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(43usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFrameRequestCallbacksScheduled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(44usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mFrameRequestCallbacksScheduled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(44usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsTopLevelContentDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(45usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsTopLevelContentDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(45usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsContentDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(46usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsContentDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(46usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDidCallBeginLoad(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mDidCallBeginLoad(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(47usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mBufferingCSPViolations(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(48usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mBufferingCSPViolations(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(48usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mAllowPaymentRequest(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(49usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mAllowPaymentRequest(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(49usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mEncodingMenuDisabled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(50usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mEncodingMenuDisabled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(50usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsShadowDOMEnabled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(51usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsShadowDOMEnabled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(51usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsSVGGlyphsDocument(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsSVGGlyphsDocument(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(52usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsScopedStyleEnabled(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 2u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsScopedStyleEnabled(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(53usize, 2u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mBidiEnabled: bool,
+ mMathMLEnabled: bool,
+ mIsInitialDocumentInWindow: bool,
+ mIgnoreDocGroupMismatches: bool,
+ mLoadedAsData: bool,
+ mLoadedAsInteractiveData: bool,
+ mMayStartLayout: bool,
+ mHaveFiredTitleChange: bool,
+ mIsShowing: bool,
+ mVisible: bool,
+ mHasReferrerPolicyCSP: bool,
+ mRemovedFromDocShell: bool,
+ mAllowDNSPrefetch: bool,
+ mIsStaticDocument: bool,
+ mCreatingStaticClone: bool,
+ mInUnlinkOrDeletion: bool,
+ mHasHadScriptHandlingObject: bool,
+ mIsBeingUsedAsImage: bool,
+ mIsSyntheticDocument: bool,
+ mHasLinksToUpdate: bool,
+ mHasLinksToUpdateRunnable: bool,
+ mMayHaveDOMMutationObservers: bool,
+ mMayHaveAnimationObservers: bool,
+ mHasMixedActiveContentLoaded: bool,
+ mHasMixedActiveContentBlocked: bool,
+ mHasMixedDisplayContentLoaded: bool,
+ mHasMixedDisplayContentBlocked: bool,
+ mHasMixedContentObjectSubrequest: bool,
+ mHasCSP: bool,
+ mHasUnsafeEvalCSP: bool,
+ mHasUnsafeInlineCSP: bool,
+ mHasTrackingContentBlocked: bool,
+ mHasTrackingContentLoaded: bool,
+ mBFCacheDisallowed: bool,
+ mHasHadDefaultView: bool,
+ mStyleSheetChangeEventsEnabled: bool,
+ mIsSrcdocDocument: bool,
+ mDidDocumentOpen: bool,
+ mHasDisplayDocument: bool,
+ mFontFaceSetDirty: bool,
+ mGetUserFontSetCalled: bool,
+ mPostedFlushUserFontSet: bool,
+ mDidFireDOMContentLoaded: bool,
+ mHasScrollLinkedEffect: bool,
+ mFrameRequestCallbacksScheduled: bool,
+ mIsTopLevelContentDocument: bool,
+ mIsContentDocument: bool,
+ mDidCallBeginLoad: bool,
+ mBufferingCSPViolations: bool,
+ mAllowPaymentRequest: bool,
+ mEncodingMenuDisabled: bool,
+ mIsShadowDOMEnabled: bool,
+ mIsSVGGlyphsDocument: bool,
+ mIsScopedStyleEnabled: ::std::os::raw::c_uint,
+ ) -> root::__BindgenBitfieldUnit<[u8; 7usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 7usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mBidiEnabled: u8 = unsafe { ::std::mem::transmute(mBidiEnabled) };
+ mBidiEnabled as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mMathMLEnabled: u8 = unsafe { ::std::mem::transmute(mMathMLEnabled) };
+ mMathMLEnabled as u64
+ });
+ __bindgen_bitfield_unit.set(2usize, 1u8, {
+ let mIsInitialDocumentInWindow: u8 =
+ unsafe { ::std::mem::transmute(mIsInitialDocumentInWindow) };
+ mIsInitialDocumentInWindow as u64
+ });
+ __bindgen_bitfield_unit.set(3usize, 1u8, {
+ let mIgnoreDocGroupMismatches: u8 =
+ unsafe { ::std::mem::transmute(mIgnoreDocGroupMismatches) };
+ mIgnoreDocGroupMismatches as u64
+ });
+ __bindgen_bitfield_unit.set(4usize, 1u8, {
+ let mLoadedAsData: u8 = unsafe { ::std::mem::transmute(mLoadedAsData) };
+ mLoadedAsData as u64
+ });
+ __bindgen_bitfield_unit.set(5usize, 1u8, {
+ let mLoadedAsInteractiveData: u8 =
+ unsafe { ::std::mem::transmute(mLoadedAsInteractiveData) };
+ mLoadedAsInteractiveData as u64
+ });
+ __bindgen_bitfield_unit.set(6usize, 1u8, {
+ let mMayStartLayout: u8 = unsafe { ::std::mem::transmute(mMayStartLayout) };
+ mMayStartLayout as u64
+ });
+ __bindgen_bitfield_unit.set(7usize, 1u8, {
+ let mHaveFiredTitleChange: u8 =
+ unsafe { ::std::mem::transmute(mHaveFiredTitleChange) };
+ mHaveFiredTitleChange as u64
+ });
+ __bindgen_bitfield_unit.set(8usize, 1u8, {
+ let mIsShowing: u8 = unsafe { ::std::mem::transmute(mIsShowing) };
+ mIsShowing as u64
+ });
+ __bindgen_bitfield_unit.set(9usize, 1u8, {
+ let mVisible: u8 = unsafe { ::std::mem::transmute(mVisible) };
+ mVisible as u64
+ });
+ __bindgen_bitfield_unit.set(10usize, 1u8, {
+ let mHasReferrerPolicyCSP: u8 =
+ unsafe { ::std::mem::transmute(mHasReferrerPolicyCSP) };
+ mHasReferrerPolicyCSP as u64
+ });
+ __bindgen_bitfield_unit.set(11usize, 1u8, {
+ let mRemovedFromDocShell: u8 =
+ unsafe { ::std::mem::transmute(mRemovedFromDocShell) };
+ mRemovedFromDocShell as u64
+ });
+ __bindgen_bitfield_unit.set(12usize, 1u8, {
+ let mAllowDNSPrefetch: u8 = unsafe { ::std::mem::transmute(mAllowDNSPrefetch) };
+ mAllowDNSPrefetch as u64
+ });
+ __bindgen_bitfield_unit.set(13usize, 1u8, {
+ let mIsStaticDocument: u8 = unsafe { ::std::mem::transmute(mIsStaticDocument) };
+ mIsStaticDocument as u64
+ });
+ __bindgen_bitfield_unit.set(14usize, 1u8, {
+ let mCreatingStaticClone: u8 =
+ unsafe { ::std::mem::transmute(mCreatingStaticClone) };
+ mCreatingStaticClone as u64
+ });
+ __bindgen_bitfield_unit.set(15usize, 1u8, {
+ let mInUnlinkOrDeletion: u8 = unsafe { ::std::mem::transmute(mInUnlinkOrDeletion) };
+ mInUnlinkOrDeletion as u64
+ });
+ __bindgen_bitfield_unit.set(16usize, 1u8, {
+ let mHasHadScriptHandlingObject: u8 =
+ unsafe { ::std::mem::transmute(mHasHadScriptHandlingObject) };
+ mHasHadScriptHandlingObject as u64
+ });
+ __bindgen_bitfield_unit.set(17usize, 1u8, {
+ let mIsBeingUsedAsImage: u8 = unsafe { ::std::mem::transmute(mIsBeingUsedAsImage) };
+ mIsBeingUsedAsImage as u64
+ });
+ __bindgen_bitfield_unit.set(18usize, 1u8, {
+ let mIsSyntheticDocument: u8 =
+ unsafe { ::std::mem::transmute(mIsSyntheticDocument) };
+ mIsSyntheticDocument as u64
+ });
+ __bindgen_bitfield_unit.set(19usize, 1u8, {
+ let mHasLinksToUpdate: u8 = unsafe { ::std::mem::transmute(mHasLinksToUpdate) };
+ mHasLinksToUpdate as u64
+ });
+ __bindgen_bitfield_unit.set(20usize, 1u8, {
+ let mHasLinksToUpdateRunnable: u8 =
+ unsafe { ::std::mem::transmute(mHasLinksToUpdateRunnable) };
+ mHasLinksToUpdateRunnable as u64
+ });
+ __bindgen_bitfield_unit.set(21usize, 1u8, {
+ let mMayHaveDOMMutationObservers: u8 =
+ unsafe { ::std::mem::transmute(mMayHaveDOMMutationObservers) };
+ mMayHaveDOMMutationObservers as u64
+ });
+ __bindgen_bitfield_unit.set(22usize, 1u8, {
+ let mMayHaveAnimationObservers: u8 =
+ unsafe { ::std::mem::transmute(mMayHaveAnimationObservers) };
+ mMayHaveAnimationObservers as u64
+ });
+ __bindgen_bitfield_unit.set(23usize, 1u8, {
+ let mHasMixedActiveContentLoaded: u8 =
+ unsafe { ::std::mem::transmute(mHasMixedActiveContentLoaded) };
+ mHasMixedActiveContentLoaded as u64
+ });
+ __bindgen_bitfield_unit.set(24usize, 1u8, {
+ let mHasMixedActiveContentBlocked: u8 =
+ unsafe { ::std::mem::transmute(mHasMixedActiveContentBlocked) };
+ mHasMixedActiveContentBlocked as u64
+ });
+ __bindgen_bitfield_unit.set(25usize, 1u8, {
+ let mHasMixedDisplayContentLoaded: u8 =
+ unsafe { ::std::mem::transmute(mHasMixedDisplayContentLoaded) };
+ mHasMixedDisplayContentLoaded as u64
+ });
+ __bindgen_bitfield_unit.set(26usize, 1u8, {
+ let mHasMixedDisplayContentBlocked: u8 =
+ unsafe { ::std::mem::transmute(mHasMixedDisplayContentBlocked) };
+ mHasMixedDisplayContentBlocked as u64
+ });
+ __bindgen_bitfield_unit.set(27usize, 1u8, {
+ let mHasMixedContentObjectSubrequest: u8 =
+ unsafe { ::std::mem::transmute(mHasMixedContentObjectSubrequest) };
+ mHasMixedContentObjectSubrequest as u64
+ });
+ __bindgen_bitfield_unit.set(28usize, 1u8, {
+ let mHasCSP: u8 = unsafe { ::std::mem::transmute(mHasCSP) };
+ mHasCSP as u64
+ });
+ __bindgen_bitfield_unit.set(29usize, 1u8, {
+ let mHasUnsafeEvalCSP: u8 = unsafe { ::std::mem::transmute(mHasUnsafeEvalCSP) };
+ mHasUnsafeEvalCSP as u64
+ });
+ __bindgen_bitfield_unit.set(30usize, 1u8, {
+ let mHasUnsafeInlineCSP: u8 = unsafe { ::std::mem::transmute(mHasUnsafeInlineCSP) };
+ mHasUnsafeInlineCSP as u64
+ });
+ __bindgen_bitfield_unit.set(31usize, 1u8, {
+ let mHasTrackingContentBlocked: u8 =
+ unsafe { ::std::mem::transmute(mHasTrackingContentBlocked) };
+ mHasTrackingContentBlocked as u64
+ });
+ __bindgen_bitfield_unit.set(32usize, 1u8, {
+ let mHasTrackingContentLoaded: u8 =
+ unsafe { ::std::mem::transmute(mHasTrackingContentLoaded) };
+ mHasTrackingContentLoaded as u64
+ });
+ __bindgen_bitfield_unit.set(33usize, 1u8, {
+ let mBFCacheDisallowed: u8 = unsafe { ::std::mem::transmute(mBFCacheDisallowed) };
+ mBFCacheDisallowed as u64
+ });
+ __bindgen_bitfield_unit.set(34usize, 1u8, {
+ let mHasHadDefaultView: u8 = unsafe { ::std::mem::transmute(mHasHadDefaultView) };
+ mHasHadDefaultView as u64
+ });
+ __bindgen_bitfield_unit.set(35usize, 1u8, {
+ let mStyleSheetChangeEventsEnabled: u8 =
+ unsafe { ::std::mem::transmute(mStyleSheetChangeEventsEnabled) };
+ mStyleSheetChangeEventsEnabled as u64
+ });
+ __bindgen_bitfield_unit.set(36usize, 1u8, {
+ let mIsSrcdocDocument: u8 = unsafe { ::std::mem::transmute(mIsSrcdocDocument) };
+ mIsSrcdocDocument as u64
+ });
+ __bindgen_bitfield_unit.set(37usize, 1u8, {
+ let mDidDocumentOpen: u8 = unsafe { ::std::mem::transmute(mDidDocumentOpen) };
+ mDidDocumentOpen as u64
+ });
+ __bindgen_bitfield_unit.set(38usize, 1u8, {
+ let mHasDisplayDocument: u8 = unsafe { ::std::mem::transmute(mHasDisplayDocument) };
+ mHasDisplayDocument as u64
+ });
+ __bindgen_bitfield_unit.set(39usize, 1u8, {
+ let mFontFaceSetDirty: u8 = unsafe { ::std::mem::transmute(mFontFaceSetDirty) };
+ mFontFaceSetDirty as u64
+ });
+ __bindgen_bitfield_unit.set(40usize, 1u8, {
+ let mGetUserFontSetCalled: u8 =
+ unsafe { ::std::mem::transmute(mGetUserFontSetCalled) };
+ mGetUserFontSetCalled as u64
+ });
+ __bindgen_bitfield_unit.set(41usize, 1u8, {
+ let mPostedFlushUserFontSet: u8 =
+ unsafe { ::std::mem::transmute(mPostedFlushUserFontSet) };
+ mPostedFlushUserFontSet as u64
+ });
+ __bindgen_bitfield_unit.set(42usize, 1u8, {
+ let mDidFireDOMContentLoaded: u8 =
+ unsafe { ::std::mem::transmute(mDidFireDOMContentLoaded) };
+ mDidFireDOMContentLoaded as u64
+ });
+ __bindgen_bitfield_unit.set(43usize, 1u8, {
+ let mHasScrollLinkedEffect: u8 =
+ unsafe { ::std::mem::transmute(mHasScrollLinkedEffect) };
+ mHasScrollLinkedEffect as u64
+ });
+ __bindgen_bitfield_unit.set(44usize, 1u8, {
+ let mFrameRequestCallbacksScheduled: u8 =
+ unsafe { ::std::mem::transmute(mFrameRequestCallbacksScheduled) };
+ mFrameRequestCallbacksScheduled as u64
+ });
+ __bindgen_bitfield_unit.set(45usize, 1u8, {
+ let mIsTopLevelContentDocument: u8 =
+ unsafe { ::std::mem::transmute(mIsTopLevelContentDocument) };
+ mIsTopLevelContentDocument as u64
+ });
+ __bindgen_bitfield_unit.set(46usize, 1u8, {
+ let mIsContentDocument: u8 = unsafe { ::std::mem::transmute(mIsContentDocument) };
+ mIsContentDocument as u64
+ });
+ __bindgen_bitfield_unit.set(47usize, 1u8, {
+ let mDidCallBeginLoad: u8 = unsafe { ::std::mem::transmute(mDidCallBeginLoad) };
+ mDidCallBeginLoad as u64
+ });
+ __bindgen_bitfield_unit.set(48usize, 1u8, {
+ let mBufferingCSPViolations: u8 =
+ unsafe { ::std::mem::transmute(mBufferingCSPViolations) };
+ mBufferingCSPViolations as u64
+ });
+ __bindgen_bitfield_unit.set(49usize, 1u8, {
+ let mAllowPaymentRequest: u8 =
+ unsafe { ::std::mem::transmute(mAllowPaymentRequest) };
+ mAllowPaymentRequest as u64
+ });
+ __bindgen_bitfield_unit.set(50usize, 1u8, {
+ let mEncodingMenuDisabled: u8 =
+ unsafe { ::std::mem::transmute(mEncodingMenuDisabled) };
+ mEncodingMenuDisabled as u64
+ });
+ __bindgen_bitfield_unit.set(51usize, 1u8, {
+ let mIsShadowDOMEnabled: u8 = unsafe { ::std::mem::transmute(mIsShadowDOMEnabled) };
+ mIsShadowDOMEnabled as u64
+ });
+ __bindgen_bitfield_unit.set(52usize, 1u8, {
+ let mIsSVGGlyphsDocument: u8 =
+ unsafe { ::std::mem::transmute(mIsSVGGlyphsDocument) };
+ mIsSVGGlyphsDocument as u64
+ });
+ __bindgen_bitfield_unit.set(53usize, 2u8, {
+ let mIsScopedStyleEnabled: u32 =
+ unsafe { ::std::mem::transmute(mIsScopedStyleEnabled) };
+ mIsScopedStyleEnabled as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsBidi {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIPrintSettings {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct gfxTextPerfMetrics {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsTransitionManager {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsAnimationManager {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsDeviceContext {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct gfxMissingFontRecorder {
+ _unused: [u8; 0],
+ }
+ pub const kPresContext_DefaultVariableFont_ID: u8 = 0;
+ pub const kPresContext_DefaultFixedFont_ID: u8 = 1;
+ #[repr(C)]
+ pub struct nsPresContext {
+ pub _base: root::nsISupports,
+ pub _base_1: u64,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mType: root::nsPresContext_nsPresContextType,
+ pub mShell: *mut root::nsIPresShell,
+ pub mDocument: root::nsCOMPtr,
+ pub mDeviceContext: root::RefPtr<root::nsDeviceContext>,
+ pub mEventManager: root::RefPtr<root::mozilla::EventStateManager>,
+ pub mRefreshDriver: root::RefPtr<root::nsRefreshDriver>,
+ pub mEffectCompositor: root::RefPtr<root::mozilla::EffectCompositor>,
+ pub mTransitionManager: root::RefPtr<root::nsTransitionManager>,
+ pub mAnimationManager: root::RefPtr<root::nsAnimationManager>,
+ pub mRestyleManager: root::RefPtr<root::mozilla::RestyleManager>,
+ pub mCounterStyleManager: root::RefPtr<root::mozilla::CounterStyleManager>,
+ pub mMedium: *mut root::nsAtom,
+ pub mMediaEmulated: root::RefPtr<root::nsAtom>,
+ pub mFontFeatureValuesLookup: root::RefPtr<root::gfxFontFeatureValueSet>,
+ pub mLinkHandler: *mut root::nsILinkHandler,
+ pub mLanguage: root::RefPtr<root::nsAtom>,
+ pub mInflationDisabledForShrinkWrap: bool,
+ pub mContainer: u64,
+ pub mBaseMinFontSize: i32,
+ pub mSystemFontScale: f32,
+ pub mTextZoom: f32,
+ pub mEffectiveTextZoom: f32,
+ pub mFullZoom: f32,
+ pub mOverrideDPPX: f32,
+ pub mLastFontInflationScreenSize: root::gfxSize,
+ pub mCurAppUnitsPerDevPixel: i32,
+ pub mAutoQualityMinFontSizePixelsPref: i32,
+ pub mTheme: root::nsCOMPtr,
+ pub mLangService: *mut root::nsLanguageAtomService,
+ pub mPrintSettings: root::nsCOMPtr,
+ pub mPrefChangedTimer: root::nsCOMPtr,
+ pub mBidiEngine: root::mozilla::UniquePtr<root::nsBidi>,
+ pub mTransactions: [u64; 10usize],
+ pub mTextPerf: root::nsAutoPtr<root::gfxTextPerfMetrics>,
+ pub mMissingFonts: root::nsAutoPtr<root::gfxMissingFontRecorder>,
+ pub mVisibleArea: root::nsRect,
+ pub mLastResizeEventVisibleArea: root::nsRect,
+ pub mPageSize: root::nsSize,
+ pub mPageScale: f32,
+ pub mPPScale: f32,
+ pub mDefaultColor: root::nscolor,
+ pub mBackgroundColor: root::nscolor,
+ pub mLinkColor: root::nscolor,
+ pub mActiveLinkColor: root::nscolor,
+ pub mVisitedLinkColor: root::nscolor,
+ pub mFocusBackgroundColor: root::nscolor,
+ pub mFocusTextColor: root::nscolor,
+ pub mBodyTextColor: root::nscolor,
+ pub mViewportScrollbarOverrideElement: *mut root::mozilla::dom::Element,
+ pub mViewportStyleScrollbar: root::nsPresContext_ScrollbarStyles,
+ pub mFocusRingWidth: u8,
+ pub mExistThrottledUpdates: bool,
+ pub mImageAnimationMode: u16,
+ pub mImageAnimationModePref: u16,
+ pub mLangGroupFontPrefs: root::nsPresContext_LangGroupFontPrefs,
+ pub mFontGroupCacheDirty: bool,
+ pub mLanguagesUsed: [u64; 4usize],
+ pub mBorderWidthTable: [root::nscoord; 3usize],
+ pub mInterruptChecksToSkip: u32,
+ pub mElementsRestyled: u64,
+ pub mFramesConstructed: u64,
+ pub mFramesReflowed: u64,
+ pub mReflowStartTime: root::mozilla::TimeStamp,
+ pub mFirstNonBlankPaintTime: root::mozilla::TimeStamp,
+ pub mFirstClickTime: root::mozilla::TimeStamp,
+ pub mFirstKeyTime: root::mozilla::TimeStamp,
+ pub mFirstMouseMoveTime: root::mozilla::TimeStamp,
+ pub mFirstScrollTime: root::mozilla::TimeStamp,
+ pub mInteractionTimeEnabled: bool,
+ pub mLastStyleUpdateForAllAnimations: root::mozilla::TimeStamp,
+ pub mTelemetryScrollLastY: root::nscoord,
+ pub mTelemetryScrollMaxY: root::nscoord,
+ pub mTelemetryScrollTotalY: root::nscoord,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 6usize], u8>,
+ pub __bindgen_padding_0: [u16; 3usize],
+ }
+ pub type nsPresContext_Encoding = root::mozilla::Encoding;
+ pub type nsPresContext_NotNull<T> = root::mozilla::NotNull<T>;
+ pub type nsPresContext_LangGroupFontPrefs = root::mozilla::LangGroupFontPrefs;
+ pub type nsPresContext_ScrollbarStyles = root::mozilla::ScrollbarStyles;
+ pub type nsPresContext_StaticPresData = root::mozilla::StaticPresData;
+ pub type nsPresContext_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsPresContext_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_nsPresContext_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPresContext_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsPresContext_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPresContext_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPresContext_cycleCollection))
+ );
+ }
+ impl Clone for nsPresContext_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const nsPresContext_nsPresContextType_eContext_Galley:
+ root::nsPresContext_nsPresContextType = 0;
+ pub const nsPresContext_nsPresContextType_eContext_PrintPreview:
+ root::nsPresContext_nsPresContextType = 1;
+ pub const nsPresContext_nsPresContextType_eContext_Print:
+ root::nsPresContext_nsPresContextType = 2;
+ pub const nsPresContext_nsPresContextType_eContext_PageLayout:
+ root::nsPresContext_nsPresContextType = 3;
+ pub type nsPresContext_nsPresContextType = u32;
+ pub const nsPresContext_InteractionType_eClickInteraction: root::nsPresContext_InteractionType =
+ 0;
+ pub const nsPresContext_InteractionType_eKeyInteraction: root::nsPresContext_InteractionType =
+ 1;
+ pub const nsPresContext_InteractionType_eMouseMoveInteraction:
+ root::nsPresContext_InteractionType = 2;
+ pub const nsPresContext_InteractionType_eScrollInteraction:
+ root::nsPresContext_InteractionType = 3;
+ pub type nsPresContext_InteractionType = u32;
+ /// A class that can be used to temporarily disable reflow interruption.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsPresContext_InterruptPreventer {
+ pub mCtx: *mut root::nsPresContext,
+ pub mInterruptsEnabled: bool,
+ pub mHasPendingInterrupt: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsPresContext_InterruptPreventer() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPresContext_InterruptPreventer>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsPresContext_InterruptPreventer))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPresContext_InterruptPreventer>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsPresContext_InterruptPreventer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext_InterruptPreventer>())).mCtx as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext_InterruptPreventer),
+ "::",
+ stringify!(mCtx)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext_InterruptPreventer>())).mInterruptsEnabled
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext_InterruptPreventer),
+ "::",
+ stringify!(mInterruptsEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext_InterruptPreventer>())).mHasPendingInterrupt
+ as *const _ as usize
+ },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext_InterruptPreventer),
+ "::",
+ stringify!(mHasPendingInterrupt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsPresContext_TransactionInvalidations {
+ pub mTransactionId: u64,
+ pub mInvalidations: root::nsTArray<root::nsRect>,
+ }
+ #[test]
+ fn bindgen_test_layout_nsPresContext_TransactionInvalidations() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPresContext_TransactionInvalidations>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsPresContext_TransactionInvalidations)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPresContext_TransactionInvalidations>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsPresContext_TransactionInvalidations)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext_TransactionInvalidations>())).mTransactionId
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext_TransactionInvalidations),
+ "::",
+ stringify!(mTransactionId)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext_TransactionInvalidations>())).mInvalidations
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext_TransactionInvalidations),
+ "::",
+ stringify!(mInvalidations)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN13nsPresContext21_cycleCollectorGlobalE"]
+ pub static mut nsPresContext__cycleCollectorGlobal: root::nsPresContext_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_nsPresContext() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPresContext>(),
+ 1376usize,
+ concat!("Size of: ", stringify!(nsPresContext))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPresContext>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsPresContext))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mRefCnt as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mType as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mShell as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mShell)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mDocument as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mDeviceContext as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mDeviceContext)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mEventManager as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mEventManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mRefreshDriver as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mRefreshDriver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mEffectCompositor as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mEffectCompositor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mTransitionManager as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTransitionManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mAnimationManager as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mAnimationManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mRestyleManager as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mRestyleManager)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mCounterStyleManager as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mCounterStyleManager)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mMedium as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mMedium)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mMediaEmulated as *const _ as usize
+ },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mMediaEmulated)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFontFeatureValuesLookup as *const _
+ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFontFeatureValuesLookup)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mLinkHandler as *const _ as usize },
+ 136usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLinkHandler)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mLanguage as *const _ as usize },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLanguage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mInflationDisabledForShrinkWrap
+ as *const _ as usize
+ },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mInflationDisabledForShrinkWrap)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mContainer as *const _ as usize },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mContainer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mBaseMinFontSize as *const _ as usize
+ },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mBaseMinFontSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mSystemFontScale as *const _ as usize
+ },
+ 172usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mSystemFontScale)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mTextZoom as *const _ as usize },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTextZoom)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mEffectiveTextZoom as *const _ as usize
+ },
+ 180usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mEffectiveTextZoom)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mFullZoom as *const _ as usize },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFullZoom)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mOverrideDPPX as *const _ as usize },
+ 188usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mOverrideDPPX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mLastFontInflationScreenSize as *const _
+ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLastFontInflationScreenSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mCurAppUnitsPerDevPixel as *const _
+ as usize
+ },
+ 208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mCurAppUnitsPerDevPixel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mAutoQualityMinFontSizePixelsPref
+ as *const _ as usize
+ },
+ 212usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mAutoQualityMinFontSizePixelsPref)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mTheme as *const _ as usize },
+ 216usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTheme)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mLangService as *const _ as usize },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLangService)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mPrintSettings as *const _ as usize
+ },
+ 232usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mPrintSettings)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mPrefChangedTimer as *const _ as usize
+ },
+ 240usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mPrefChangedTimer)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mBidiEngine as *const _ as usize },
+ 248usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mBidiEngine)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mTransactions as *const _ as usize },
+ 256usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTransactions)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mTextPerf as *const _ as usize },
+ 336usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTextPerf)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mMissingFonts as *const _ as usize },
+ 344usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mMissingFonts)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mVisibleArea as *const _ as usize },
+ 352usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mVisibleArea)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mLastResizeEventVisibleArea as *const _
+ as usize
+ },
+ 368usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLastResizeEventVisibleArea)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mPageSize as *const _ as usize },
+ 384usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mPageSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mPageScale as *const _ as usize },
+ 392usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mPageScale)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mPPScale as *const _ as usize },
+ 396usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mPPScale)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mDefaultColor as *const _ as usize },
+ 400usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mDefaultColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mBackgroundColor as *const _ as usize
+ },
+ 404usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mBackgroundColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mLinkColor as *const _ as usize },
+ 408usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLinkColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mActiveLinkColor as *const _ as usize
+ },
+ 412usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mActiveLinkColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mVisitedLinkColor as *const _ as usize
+ },
+ 416usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mVisitedLinkColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFocusBackgroundColor as *const _ as usize
+ },
+ 420usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFocusBackgroundColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFocusTextColor as *const _ as usize
+ },
+ 424usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFocusTextColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mBodyTextColor as *const _ as usize
+ },
+ 428usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mBodyTextColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mViewportScrollbarOverrideElement
+ as *const _ as usize
+ },
+ 432usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mViewportScrollbarOverrideElement)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mViewportStyleScrollbar as *const _
+ as usize
+ },
+ 440usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mViewportStyleScrollbar)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFocusRingWidth as *const _ as usize
+ },
+ 504usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFocusRingWidth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mExistThrottledUpdates as *const _
+ as usize
+ },
+ 505usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mExistThrottledUpdates)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mImageAnimationMode as *const _ as usize
+ },
+ 506usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mImageAnimationMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mImageAnimationModePref as *const _
+ as usize
+ },
+ 508usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mImageAnimationModePref)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mLangGroupFontPrefs as *const _ as usize
+ },
+ 512usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLangGroupFontPrefs)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFontGroupCacheDirty as *const _ as usize
+ },
+ 1208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFontGroupCacheDirty)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mLanguagesUsed as *const _ as usize
+ },
+ 1216usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLanguagesUsed)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mBorderWidthTable as *const _ as usize
+ },
+ 1248usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mBorderWidthTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mInterruptChecksToSkip as *const _
+ as usize
+ },
+ 1260usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mInterruptChecksToSkip)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mElementsRestyled as *const _ as usize
+ },
+ 1264usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mElementsRestyled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFramesConstructed as *const _ as usize
+ },
+ 1272usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFramesConstructed)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFramesReflowed as *const _ as usize
+ },
+ 1280usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFramesReflowed)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mReflowStartTime as *const _ as usize
+ },
+ 1288usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mReflowStartTime)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFirstNonBlankPaintTime as *const _
+ as usize
+ },
+ 1296usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFirstNonBlankPaintTime)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFirstClickTime as *const _ as usize
+ },
+ 1304usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFirstClickTime)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPresContext>())).mFirstKeyTime as *const _ as usize },
+ 1312usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFirstKeyTime)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFirstMouseMoveTime as *const _ as usize
+ },
+ 1320usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFirstMouseMoveTime)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mFirstScrollTime as *const _ as usize
+ },
+ 1328usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mFirstScrollTime)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mInteractionTimeEnabled as *const _
+ as usize
+ },
+ 1336usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mInteractionTimeEnabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mLastStyleUpdateForAllAnimations
+ as *const _ as usize
+ },
+ 1344usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mLastStyleUpdateForAllAnimations)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mTelemetryScrollLastY as *const _ as usize
+ },
+ 1352usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTelemetryScrollLastY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mTelemetryScrollMaxY as *const _ as usize
+ },
+ 1356usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTelemetryScrollMaxY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsPresContext>())).mTelemetryScrollTotalY as *const _
+ as usize
+ },
+ 1360usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPresContext),
+ "::",
+ stringify!(mTelemetryScrollTotalY)
+ )
+ );
+ }
+ impl nsPresContext {
+ #[inline]
+ pub fn mHasPendingInterrupt(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mHasPendingInterrupt(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPendingInterruptFromTest(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPendingInterruptFromTest(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mInterruptsEnabled(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mInterruptsEnabled(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(2usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mUseDocumentFonts(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mUseDocumentFonts(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(3usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mUseDocumentColors(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mUseDocumentColors(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(4usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mUnderlineLinks(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mUnderlineLinks(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(5usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mSendAfterPaintToContent(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mSendAfterPaintToContent(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(6usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mUseFocusColors(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mUseFocusColors(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(7usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFocusRingOnAnything(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mFocusRingOnAnything(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(8usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFocusRingStyle(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mFocusRingStyle(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(9usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDrawImageBackground(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mDrawImageBackground(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(10usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDrawColorBackground(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mDrawColorBackground(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(11usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mNeverAnimate(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mNeverAnimate(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(12usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsRenderingOnlySelection(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsRenderingOnlySelection(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(13usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPaginated(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPaginated(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(14usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mCanPaginatedScroll(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mCanPaginatedScroll(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(15usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDoScaledTwips(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mDoScaledTwips(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(16usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsRootPaginatedDocument(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsRootPaginatedDocument(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(17usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPrefBidiDirection(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPrefBidiDirection(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(18usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPrefScrollbarSide(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPrefScrollbarSide(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(19usize, 2u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPendingSysColorChanged(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPendingSysColorChanged(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(21usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPendingThemeChanged(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPendingThemeChanged(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(22usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPendingUIResolutionChanged(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPendingUIResolutionChanged(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(23usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPendingMediaFeatureValuesChanged(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPendingMediaFeatureValuesChanged(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(24usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPrefChangePendingNeedsReflow(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPrefChangePendingNeedsReflow(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(25usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsEmulatingMedia(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsEmulatingMedia(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(26usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsGlyph(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(27usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mUsesRootEMUnits(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mUsesRootEMUnits(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(28usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mUsesExChUnits(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mUsesExChUnits(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(29usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPendingViewportChange(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPendingViewportChange(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(30usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mCounterStylesDirty(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mCounterStylesDirty(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(31usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPostedFlushCounterStyles(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPostedFlushCounterStyles(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(32usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFontFeatureValuesDirty(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mFontFeatureValuesDirty(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(33usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPostedFlushFontFeatureValues(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPostedFlushFontFeatureValues(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(34usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mSuppressResizeReflow(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mSuppressResizeReflow(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(35usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsVisual(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsVisual(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(36usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mFireAfterPaintEvents(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mFireAfterPaintEvents(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(37usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsChrome(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsChrome(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(38usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsChromeOriginImage(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(39usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mIsChromeOriginImage(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(39usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPaintFlashing(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPaintFlashing(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(40usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mPaintFlashingInitialized(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(41usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mPaintFlashingInitialized(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(41usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasWarnedAboutPositionedTableParts(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(42usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mHasWarnedAboutPositionedTableParts(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(42usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHasWarnedAboutTooLargeDashedOrDottedRadius(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(43usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mHasWarnedAboutTooLargeDashedOrDottedRadius(
+ &mut self,
+ val: ::std::os::raw::c_uint,
+ ) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(43usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mQuirkSheetAdded(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(44usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mQuirkSheetAdded(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(44usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mNeedsPrefUpdate(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(45usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mNeedsPrefUpdate(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(45usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHadNonBlankPaint(&self) -> ::std::os::raw::c_uint {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(46usize, 1u8) as u32) }
+ }
+ #[inline]
+ pub fn set_mHadNonBlankPaint(&mut self, val: ::std::os::raw::c_uint) {
+ unsafe {
+ let val: u32 = ::std::mem::transmute(val);
+ self._bitfield_1.set(46usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mHasPendingInterrupt: ::std::os::raw::c_uint,
+ mPendingInterruptFromTest: ::std::os::raw::c_uint,
+ mInterruptsEnabled: ::std::os::raw::c_uint,
+ mUseDocumentFonts: ::std::os::raw::c_uint,
+ mUseDocumentColors: ::std::os::raw::c_uint,
+ mUnderlineLinks: ::std::os::raw::c_uint,
+ mSendAfterPaintToContent: ::std::os::raw::c_uint,
+ mUseFocusColors: ::std::os::raw::c_uint,
+ mFocusRingOnAnything: ::std::os::raw::c_uint,
+ mFocusRingStyle: ::std::os::raw::c_uint,
+ mDrawImageBackground: ::std::os::raw::c_uint,
+ mDrawColorBackground: ::std::os::raw::c_uint,
+ mNeverAnimate: ::std::os::raw::c_uint,
+ mIsRenderingOnlySelection: ::std::os::raw::c_uint,
+ mPaginated: ::std::os::raw::c_uint,
+ mCanPaginatedScroll: ::std::os::raw::c_uint,
+ mDoScaledTwips: ::std::os::raw::c_uint,
+ mIsRootPaginatedDocument: ::std::os::raw::c_uint,
+ mPrefBidiDirection: ::std::os::raw::c_uint,
+ mPrefScrollbarSide: ::std::os::raw::c_uint,
+ mPendingSysColorChanged: ::std::os::raw::c_uint,
+ mPendingThemeChanged: ::std::os::raw::c_uint,
+ mPendingUIResolutionChanged: ::std::os::raw::c_uint,
+ mPendingMediaFeatureValuesChanged: ::std::os::raw::c_uint,
+ mPrefChangePendingNeedsReflow: ::std::os::raw::c_uint,
+ mIsEmulatingMedia: ::std::os::raw::c_uint,
+ mIsGlyph: ::std::os::raw::c_uint,
+ mUsesRootEMUnits: ::std::os::raw::c_uint,
+ mUsesExChUnits: ::std::os::raw::c_uint,
+ mPendingViewportChange: ::std::os::raw::c_uint,
+ mCounterStylesDirty: ::std::os::raw::c_uint,
+ mPostedFlushCounterStyles: ::std::os::raw::c_uint,
+ mFontFeatureValuesDirty: ::std::os::raw::c_uint,
+ mPostedFlushFontFeatureValues: ::std::os::raw::c_uint,
+ mSuppressResizeReflow: ::std::os::raw::c_uint,
+ mIsVisual: ::std::os::raw::c_uint,
+ mFireAfterPaintEvents: ::std::os::raw::c_uint,
+ mIsChrome: ::std::os::raw::c_uint,
+ mIsChromeOriginImage: ::std::os::raw::c_uint,
+ mPaintFlashing: ::std::os::raw::c_uint,
+ mPaintFlashingInitialized: ::std::os::raw::c_uint,
+ mHasWarnedAboutPositionedTableParts: ::std::os::raw::c_uint,
+ mHasWarnedAboutTooLargeDashedOrDottedRadius: ::std::os::raw::c_uint,
+ mQuirkSheetAdded: ::std::os::raw::c_uint,
+ mNeedsPrefUpdate: ::std::os::raw::c_uint,
+ mHadNonBlankPaint: ::std::os::raw::c_uint,
+ ) -> root::__BindgenBitfieldUnit<[u8; 6usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 6usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mHasPendingInterrupt: u32 =
+ unsafe { ::std::mem::transmute(mHasPendingInterrupt) };
+ mHasPendingInterrupt as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mPendingInterruptFromTest: u32 =
+ unsafe { ::std::mem::transmute(mPendingInterruptFromTest) };
+ mPendingInterruptFromTest as u64
+ });
+ __bindgen_bitfield_unit.set(2usize, 1u8, {
+ let mInterruptsEnabled: u32 = unsafe { ::std::mem::transmute(mInterruptsEnabled) };
+ mInterruptsEnabled as u64
+ });
+ __bindgen_bitfield_unit.set(3usize, 1u8, {
+ let mUseDocumentFonts: u32 = unsafe { ::std::mem::transmute(mUseDocumentFonts) };
+ mUseDocumentFonts as u64
+ });
+ __bindgen_bitfield_unit.set(4usize, 1u8, {
+ let mUseDocumentColors: u32 = unsafe { ::std::mem::transmute(mUseDocumentColors) };
+ mUseDocumentColors as u64
+ });
+ __bindgen_bitfield_unit.set(5usize, 1u8, {
+ let mUnderlineLinks: u32 = unsafe { ::std::mem::transmute(mUnderlineLinks) };
+ mUnderlineLinks as u64
+ });
+ __bindgen_bitfield_unit.set(6usize, 1u8, {
+ let mSendAfterPaintToContent: u32 =
+ unsafe { ::std::mem::transmute(mSendAfterPaintToContent) };
+ mSendAfterPaintToContent as u64
+ });
+ __bindgen_bitfield_unit.set(7usize, 1u8, {
+ let mUseFocusColors: u32 = unsafe { ::std::mem::transmute(mUseFocusColors) };
+ mUseFocusColors as u64
+ });
+ __bindgen_bitfield_unit.set(8usize, 1u8, {
+ let mFocusRingOnAnything: u32 =
+ unsafe { ::std::mem::transmute(mFocusRingOnAnything) };
+ mFocusRingOnAnything as u64
+ });
+ __bindgen_bitfield_unit.set(9usize, 1u8, {
+ let mFocusRingStyle: u32 = unsafe { ::std::mem::transmute(mFocusRingStyle) };
+ mFocusRingStyle as u64
+ });
+ __bindgen_bitfield_unit.set(10usize, 1u8, {
+ let mDrawImageBackground: u32 =
+ unsafe { ::std::mem::transmute(mDrawImageBackground) };
+ mDrawImageBackground as u64
+ });
+ __bindgen_bitfield_unit.set(11usize, 1u8, {
+ let mDrawColorBackground: u32 =
+ unsafe { ::std::mem::transmute(mDrawColorBackground) };
+ mDrawColorBackground as u64
+ });
+ __bindgen_bitfield_unit.set(12usize, 1u8, {
+ let mNeverAnimate: u32 = unsafe { ::std::mem::transmute(mNeverAnimate) };
+ mNeverAnimate as u64
+ });
+ __bindgen_bitfield_unit.set(13usize, 1u8, {
+ let mIsRenderingOnlySelection: u32 =
+ unsafe { ::std::mem::transmute(mIsRenderingOnlySelection) };
+ mIsRenderingOnlySelection as u64
+ });
+ __bindgen_bitfield_unit.set(14usize, 1u8, {
+ let mPaginated: u32 = unsafe { ::std::mem::transmute(mPaginated) };
+ mPaginated as u64
+ });
+ __bindgen_bitfield_unit.set(15usize, 1u8, {
+ let mCanPaginatedScroll: u32 =
+ unsafe { ::std::mem::transmute(mCanPaginatedScroll) };
+ mCanPaginatedScroll as u64
+ });
+ __bindgen_bitfield_unit.set(16usize, 1u8, {
+ let mDoScaledTwips: u32 = unsafe { ::std::mem::transmute(mDoScaledTwips) };
+ mDoScaledTwips as u64
+ });
+ __bindgen_bitfield_unit.set(17usize, 1u8, {
+ let mIsRootPaginatedDocument: u32 =
+ unsafe { ::std::mem::transmute(mIsRootPaginatedDocument) };
+ mIsRootPaginatedDocument as u64
+ });
+ __bindgen_bitfield_unit.set(18usize, 1u8, {
+ let mPrefBidiDirection: u32 = unsafe { ::std::mem::transmute(mPrefBidiDirection) };
+ mPrefBidiDirection as u64
+ });
+ __bindgen_bitfield_unit.set(19usize, 2u8, {
+ let mPrefScrollbarSide: u32 = unsafe { ::std::mem::transmute(mPrefScrollbarSide) };
+ mPrefScrollbarSide as u64
+ });
+ __bindgen_bitfield_unit.set(21usize, 1u8, {
+ let mPendingSysColorChanged: u32 =
+ unsafe { ::std::mem::transmute(mPendingSysColorChanged) };
+ mPendingSysColorChanged as u64
+ });
+ __bindgen_bitfield_unit.set(22usize, 1u8, {
+ let mPendingThemeChanged: u32 =
+ unsafe { ::std::mem::transmute(mPendingThemeChanged) };
+ mPendingThemeChanged as u64
+ });
+ __bindgen_bitfield_unit.set(23usize, 1u8, {
+ let mPendingUIResolutionChanged: u32 =
+ unsafe { ::std::mem::transmute(mPendingUIResolutionChanged) };
+ mPendingUIResolutionChanged as u64
+ });
+ __bindgen_bitfield_unit.set(24usize, 1u8, {
+ let mPendingMediaFeatureValuesChanged: u32 =
+ unsafe { ::std::mem::transmute(mPendingMediaFeatureValuesChanged) };
+ mPendingMediaFeatureValuesChanged as u64
+ });
+ __bindgen_bitfield_unit.set(25usize, 1u8, {
+ let mPrefChangePendingNeedsReflow: u32 =
+ unsafe { ::std::mem::transmute(mPrefChangePendingNeedsReflow) };
+ mPrefChangePendingNeedsReflow as u64
+ });
+ __bindgen_bitfield_unit.set(26usize, 1u8, {
+ let mIsEmulatingMedia: u32 = unsafe { ::std::mem::transmute(mIsEmulatingMedia) };
+ mIsEmulatingMedia as u64
+ });
+ __bindgen_bitfield_unit.set(27usize, 1u8, {
+ let mIsGlyph: u32 = unsafe { ::std::mem::transmute(mIsGlyph) };
+ mIsGlyph as u64
+ });
+ __bindgen_bitfield_unit.set(28usize, 1u8, {
+ let mUsesRootEMUnits: u32 = unsafe { ::std::mem::transmute(mUsesRootEMUnits) };
+ mUsesRootEMUnits as u64
+ });
+ __bindgen_bitfield_unit.set(29usize, 1u8, {
+ let mUsesExChUnits: u32 = unsafe { ::std::mem::transmute(mUsesExChUnits) };
+ mUsesExChUnits as u64
+ });
+ __bindgen_bitfield_unit.set(30usize, 1u8, {
+ let mPendingViewportChange: u32 =
+ unsafe { ::std::mem::transmute(mPendingViewportChange) };
+ mPendingViewportChange as u64
+ });
+ __bindgen_bitfield_unit.set(31usize, 1u8, {
+ let mCounterStylesDirty: u32 =
+ unsafe { ::std::mem::transmute(mCounterStylesDirty) };
+ mCounterStylesDirty as u64
+ });
+ __bindgen_bitfield_unit.set(32usize, 1u8, {
+ let mPostedFlushCounterStyles: u32 =
+ unsafe { ::std::mem::transmute(mPostedFlushCounterStyles) };
+ mPostedFlushCounterStyles as u64
+ });
+ __bindgen_bitfield_unit.set(33usize, 1u8, {
+ let mFontFeatureValuesDirty: u32 =
+ unsafe { ::std::mem::transmute(mFontFeatureValuesDirty) };
+ mFontFeatureValuesDirty as u64
+ });
+ __bindgen_bitfield_unit.set(34usize, 1u8, {
+ let mPostedFlushFontFeatureValues: u32 =
+ unsafe { ::std::mem::transmute(mPostedFlushFontFeatureValues) };
+ mPostedFlushFontFeatureValues as u64
+ });
+ __bindgen_bitfield_unit.set(35usize, 1u8, {
+ let mSuppressResizeReflow: u32 =
+ unsafe { ::std::mem::transmute(mSuppressResizeReflow) };
+ mSuppressResizeReflow as u64
+ });
+ __bindgen_bitfield_unit.set(36usize, 1u8, {
+ let mIsVisual: u32 = unsafe { ::std::mem::transmute(mIsVisual) };
+ mIsVisual as u64
+ });
+ __bindgen_bitfield_unit.set(37usize, 1u8, {
+ let mFireAfterPaintEvents: u32 =
+ unsafe { ::std::mem::transmute(mFireAfterPaintEvents) };
+ mFireAfterPaintEvents as u64
+ });
+ __bindgen_bitfield_unit.set(38usize, 1u8, {
+ let mIsChrome: u32 = unsafe { ::std::mem::transmute(mIsChrome) };
+ mIsChrome as u64
+ });
+ __bindgen_bitfield_unit.set(39usize, 1u8, {
+ let mIsChromeOriginImage: u32 =
+ unsafe { ::std::mem::transmute(mIsChromeOriginImage) };
+ mIsChromeOriginImage as u64
+ });
+ __bindgen_bitfield_unit.set(40usize, 1u8, {
+ let mPaintFlashing: u32 = unsafe { ::std::mem::transmute(mPaintFlashing) };
+ mPaintFlashing as u64
+ });
+ __bindgen_bitfield_unit.set(41usize, 1u8, {
+ let mPaintFlashingInitialized: u32 =
+ unsafe { ::std::mem::transmute(mPaintFlashingInitialized) };
+ mPaintFlashingInitialized as u64
+ });
+ __bindgen_bitfield_unit.set(42usize, 1u8, {
+ let mHasWarnedAboutPositionedTableParts: u32 =
+ unsafe { ::std::mem::transmute(mHasWarnedAboutPositionedTableParts) };
+ mHasWarnedAboutPositionedTableParts as u64
+ });
+ __bindgen_bitfield_unit.set(43usize, 1u8, {
+ let mHasWarnedAboutTooLargeDashedOrDottedRadius: u32 =
+ unsafe { ::std::mem::transmute(mHasWarnedAboutTooLargeDashedOrDottedRadius) };
+ mHasWarnedAboutTooLargeDashedOrDottedRadius as u64
+ });
+ __bindgen_bitfield_unit.set(44usize, 1u8, {
+ let mQuirkSheetAdded: u32 = unsafe { ::std::mem::transmute(mQuirkSheetAdded) };
+ mQuirkSheetAdded as u64
+ });
+ __bindgen_bitfield_unit.set(45usize, 1u8, {
+ let mNeedsPrefUpdate: u32 = unsafe { ::std::mem::transmute(mNeedsPrefUpdate) };
+ mNeedsPrefUpdate as u64
+ });
+ __bindgen_bitfield_unit.set(46usize, 1u8, {
+ let mHadNonBlankPaint: u32 = unsafe { ::std::mem::transmute(mHadNonBlankPaint) };
+ mHadNonBlankPaint as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(i16)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsCSSKeyword {
+ eCSSKeyword_UNKNOWN = -1,
+ eCSSKeyword__moz_activehyperlinktext = 0,
+ eCSSKeyword__moz_all = 1,
+ eCSSKeyword__moz_alt_content = 2,
+ eCSSKeyword__moz_available = 3,
+ eCSSKeyword__moz_box = 4,
+ eCSSKeyword__moz_button = 5,
+ eCSSKeyword__moz_buttondefault = 6,
+ eCSSKeyword__moz_buttonhoverface = 7,
+ eCSSKeyword__moz_buttonhovertext = 8,
+ eCSSKeyword__moz_cellhighlight = 9,
+ eCSSKeyword__moz_cellhighlighttext = 10,
+ eCSSKeyword__moz_center = 11,
+ eCSSKeyword__moz_combobox = 12,
+ eCSSKeyword__moz_comboboxtext = 13,
+ eCSSKeyword__moz_context_properties = 14,
+ eCSSKeyword__moz_block_height = 15,
+ eCSSKeyword__moz_deck = 16,
+ eCSSKeyword__moz_default_background_color = 17,
+ eCSSKeyword__moz_default_color = 18,
+ eCSSKeyword__moz_desktop = 19,
+ eCSSKeyword__moz_dialog = 20,
+ eCSSKeyword__moz_dialogtext = 21,
+ eCSSKeyword__moz_document = 22,
+ eCSSKeyword__moz_dragtargetzone = 23,
+ eCSSKeyword__moz_element = 24,
+ eCSSKeyword__moz_eventreerow = 25,
+ eCSSKeyword__moz_field = 26,
+ eCSSKeyword__moz_fieldtext = 27,
+ eCSSKeyword__moz_fit_content = 28,
+ eCSSKeyword__moz_fixed = 29,
+ eCSSKeyword__moz_grabbing = 30,
+ eCSSKeyword__moz_grab = 31,
+ eCSSKeyword__moz_grid_group = 32,
+ eCSSKeyword__moz_grid_line = 33,
+ eCSSKeyword__moz_grid = 34,
+ eCSSKeyword__moz_groupbox = 35,
+ eCSSKeyword__moz_gtk_info_bar = 36,
+ eCSSKeyword__moz_gtk_info_bar_text = 37,
+ eCSSKeyword__moz_hidden_unscrollable = 38,
+ eCSSKeyword__moz_hyperlinktext = 39,
+ eCSSKeyword__moz_html_cellhighlight = 40,
+ eCSSKeyword__moz_html_cellhighlighttext = 41,
+ eCSSKeyword__moz_image_rect = 42,
+ eCSSKeyword__moz_info = 43,
+ eCSSKeyword__moz_inline_box = 44,
+ eCSSKeyword__moz_inline_grid = 45,
+ eCSSKeyword__moz_inline_stack = 46,
+ eCSSKeyword__moz_left = 47,
+ eCSSKeyword__moz_list = 48,
+ eCSSKeyword__moz_mac_buttonactivetext = 49,
+ eCSSKeyword__moz_mac_chrome_active = 50,
+ eCSSKeyword__moz_mac_chrome_inactive = 51,
+ eCSSKeyword__moz_mac_defaultbuttontext = 52,
+ eCSSKeyword__moz_mac_focusring = 53,
+ eCSSKeyword__moz_mac_fullscreen_button = 54,
+ eCSSKeyword__moz_mac_menuselect = 55,
+ eCSSKeyword__moz_mac_menushadow = 56,
+ eCSSKeyword__moz_mac_menutextdisable = 57,
+ eCSSKeyword__moz_mac_menutextselect = 58,
+ eCSSKeyword__moz_mac_disabledtoolbartext = 59,
+ eCSSKeyword__moz_mac_secondaryhighlight = 60,
+ eCSSKeyword__moz_mac_menuitem = 61,
+ eCSSKeyword__moz_mac_active_menuitem = 62,
+ eCSSKeyword__moz_mac_menupopup = 63,
+ eCSSKeyword__moz_mac_tooltip = 64,
+ eCSSKeyword__moz_max_content = 65,
+ eCSSKeyword__moz_menuhover = 66,
+ eCSSKeyword__moz_menuhovertext = 67,
+ eCSSKeyword__moz_menubartext = 68,
+ eCSSKeyword__moz_menubarhovertext = 69,
+ eCSSKeyword__moz_middle_with_baseline = 70,
+ eCSSKeyword__moz_min_content = 71,
+ eCSSKeyword__moz_nativehyperlinktext = 72,
+ eCSSKeyword__moz_none = 73,
+ eCSSKeyword__moz_oddtreerow = 74,
+ eCSSKeyword__moz_popup = 75,
+ eCSSKeyword__moz_pre_space = 76,
+ eCSSKeyword__moz_pull_down_menu = 77,
+ eCSSKeyword__moz_right = 78,
+ eCSSKeyword__moz_scrollbars_horizontal = 79,
+ eCSSKeyword__moz_scrollbars_none = 80,
+ eCSSKeyword__moz_scrollbars_vertical = 81,
+ eCSSKeyword__moz_stack = 82,
+ eCSSKeyword__moz_text = 83,
+ eCSSKeyword__moz_use_system_font = 84,
+ eCSSKeyword__moz_visitedhyperlinktext = 85,
+ eCSSKeyword__moz_window = 86,
+ eCSSKeyword__moz_workspace = 87,
+ eCSSKeyword__moz_zoom_in = 88,
+ eCSSKeyword__moz_zoom_out = 89,
+ eCSSKeyword__webkit_box = 90,
+ eCSSKeyword__webkit_flex = 91,
+ eCSSKeyword__webkit_inline_box = 92,
+ eCSSKeyword__webkit_inline_flex = 93,
+ eCSSKeyword_absolute = 94,
+ eCSSKeyword_active = 95,
+ eCSSKeyword_activeborder = 96,
+ eCSSKeyword_activecaption = 97,
+ eCSSKeyword_add = 98,
+ eCSSKeyword_additive = 99,
+ eCSSKeyword_alias = 100,
+ eCSSKeyword_all = 101,
+ eCSSKeyword_all_petite_caps = 102,
+ eCSSKeyword_all_scroll = 103,
+ eCSSKeyword_all_small_caps = 104,
+ eCSSKeyword_alpha = 105,
+ eCSSKeyword_alternate = 106,
+ eCSSKeyword_alternate_reverse = 107,
+ eCSSKeyword_always = 108,
+ eCSSKeyword_annotation = 109,
+ eCSSKeyword_appworkspace = 110,
+ eCSSKeyword_auto = 111,
+ eCSSKeyword_auto_fill = 112,
+ eCSSKeyword_auto_fit = 113,
+ eCSSKeyword_auto_flow = 114,
+ eCSSKeyword_avoid = 115,
+ eCSSKeyword_background = 116,
+ eCSSKeyword_backwards = 117,
+ eCSSKeyword_balance = 118,
+ eCSSKeyword_baseline = 119,
+ eCSSKeyword_bidi_override = 120,
+ eCSSKeyword_blink = 121,
+ eCSSKeyword_block = 122,
+ eCSSKeyword_block_axis = 123,
+ eCSSKeyword_blur = 124,
+ eCSSKeyword_bold = 125,
+ eCSSKeyword_bold_fraktur = 126,
+ eCSSKeyword_bold_italic = 127,
+ eCSSKeyword_bold_sans_serif = 128,
+ eCSSKeyword_bold_script = 129,
+ eCSSKeyword_bolder = 130,
+ eCSSKeyword_border_box = 131,
+ eCSSKeyword_both = 132,
+ eCSSKeyword_bottom = 133,
+ eCSSKeyword_bottom_outside = 134,
+ eCSSKeyword_break_all = 135,
+ eCSSKeyword_break_word = 136,
+ eCSSKeyword_brightness = 137,
+ eCSSKeyword_browser = 138,
+ eCSSKeyword_bullets = 139,
+ eCSSKeyword_button = 140,
+ eCSSKeyword_buttonface = 141,
+ eCSSKeyword_buttonhighlight = 142,
+ eCSSKeyword_buttonshadow = 143,
+ eCSSKeyword_buttontext = 144,
+ eCSSKeyword_capitalize = 145,
+ eCSSKeyword_caption = 146,
+ eCSSKeyword_captiontext = 147,
+ eCSSKeyword_cell = 148,
+ eCSSKeyword_center = 149,
+ eCSSKeyword_ch = 150,
+ eCSSKeyword_character_variant = 151,
+ eCSSKeyword_circle = 152,
+ eCSSKeyword_cjk_decimal = 153,
+ eCSSKeyword_clip = 154,
+ eCSSKeyword_clone = 155,
+ eCSSKeyword_close_quote = 156,
+ eCSSKeyword_closest_corner = 157,
+ eCSSKeyword_closest_side = 158,
+ eCSSKeyword_cm = 159,
+ eCSSKeyword_col_resize = 160,
+ eCSSKeyword_collapse = 161,
+ eCSSKeyword_color = 162,
+ eCSSKeyword_color_burn = 163,
+ eCSSKeyword_color_dodge = 164,
+ eCSSKeyword_common_ligatures = 165,
+ eCSSKeyword_column = 166,
+ eCSSKeyword_column_reverse = 167,
+ eCSSKeyword_condensed = 168,
+ eCSSKeyword_contain = 169,
+ eCSSKeyword_content_box = 170,
+ eCSSKeyword_contents = 171,
+ eCSSKeyword_context_fill = 172,
+ eCSSKeyword_context_fill_opacity = 173,
+ eCSSKeyword_context_menu = 174,
+ eCSSKeyword_context_stroke = 175,
+ eCSSKeyword_context_stroke_opacity = 176,
+ eCSSKeyword_context_value = 177,
+ eCSSKeyword_continuous = 178,
+ eCSSKeyword_contrast = 179,
+ eCSSKeyword_copy = 180,
+ eCSSKeyword_contextual = 181,
+ eCSSKeyword_cover = 182,
+ eCSSKeyword_crop = 183,
+ eCSSKeyword_cross = 184,
+ eCSSKeyword_crosshair = 185,
+ eCSSKeyword_currentcolor = 186,
+ eCSSKeyword_cursive = 187,
+ eCSSKeyword_cyclic = 188,
+ eCSSKeyword_darken = 189,
+ eCSSKeyword_dashed = 190,
+ eCSSKeyword_dense = 191,
+ eCSSKeyword_decimal = 192,
+ eCSSKeyword_default = 193,
+ eCSSKeyword_deg = 194,
+ eCSSKeyword_diagonal_fractions = 195,
+ eCSSKeyword_dialog = 196,
+ eCSSKeyword_difference = 197,
+ eCSSKeyword_digits = 198,
+ eCSSKeyword_disabled = 199,
+ eCSSKeyword_disc = 200,
+ eCSSKeyword_discretionary_ligatures = 201,
+ eCSSKeyword_distribute = 202,
+ eCSSKeyword_dot = 203,
+ eCSSKeyword_dotted = 204,
+ eCSSKeyword_double = 205,
+ eCSSKeyword_double_circle = 206,
+ eCSSKeyword_double_struck = 207,
+ eCSSKeyword_drag = 208,
+ eCSSKeyword_drop_shadow = 209,
+ eCSSKeyword_e_resize = 210,
+ eCSSKeyword_ease = 211,
+ eCSSKeyword_ease_in = 212,
+ eCSSKeyword_ease_in_out = 213,
+ eCSSKeyword_ease_out = 214,
+ eCSSKeyword_economy = 215,
+ eCSSKeyword_element = 216,
+ eCSSKeyword_elements = 217,
+ eCSSKeyword_ellipse = 218,
+ eCSSKeyword_ellipsis = 219,
+ eCSSKeyword_em = 220,
+ eCSSKeyword_embed = 221,
+ eCSSKeyword_enabled = 222,
+ eCSSKeyword_end = 223,
+ eCSSKeyword_ex = 224,
+ eCSSKeyword_exact = 225,
+ eCSSKeyword_exclude = 226,
+ eCSSKeyword_exclusion = 227,
+ eCSSKeyword_expanded = 228,
+ eCSSKeyword_extends = 229,
+ eCSSKeyword_extra_condensed = 230,
+ eCSSKeyword_extra_expanded = 231,
+ eCSSKeyword_ew_resize = 232,
+ eCSSKeyword_fallback = 233,
+ eCSSKeyword_fantasy = 234,
+ eCSSKeyword_farthest_side = 235,
+ eCSSKeyword_farthest_corner = 236,
+ eCSSKeyword_fill = 237,
+ eCSSKeyword_filled = 238,
+ eCSSKeyword_fill_box = 239,
+ eCSSKeyword_first = 240,
+ eCSSKeyword_fit_content = 241,
+ eCSSKeyword_fixed = 242,
+ eCSSKeyword_flat = 243,
+ eCSSKeyword_flex = 244,
+ eCSSKeyword_flex_end = 245,
+ eCSSKeyword_flex_start = 246,
+ eCSSKeyword_flip = 247,
+ eCSSKeyword_flow_root = 248,
+ eCSSKeyword_forwards = 249,
+ eCSSKeyword_fraktur = 250,
+ eCSSKeyword_frames = 251,
+ eCSSKeyword_from_image = 252,
+ eCSSKeyword_full_width = 253,
+ eCSSKeyword_fullscreen = 254,
+ eCSSKeyword_grab = 255,
+ eCSSKeyword_grabbing = 256,
+ eCSSKeyword_grad = 257,
+ eCSSKeyword_grayscale = 258,
+ eCSSKeyword_graytext = 259,
+ eCSSKeyword_grid = 260,
+ eCSSKeyword_groove = 261,
+ eCSSKeyword_hard_light = 262,
+ eCSSKeyword_help = 263,
+ eCSSKeyword_hidden = 264,
+ eCSSKeyword_hide = 265,
+ eCSSKeyword_highlight = 266,
+ eCSSKeyword_highlighttext = 267,
+ eCSSKeyword_historical_forms = 268,
+ eCSSKeyword_historical_ligatures = 269,
+ eCSSKeyword_horizontal = 270,
+ eCSSKeyword_horizontal_tb = 271,
+ eCSSKeyword_hue = 272,
+ eCSSKeyword_hue_rotate = 273,
+ eCSSKeyword_hz = 274,
+ eCSSKeyword_icon = 275,
+ eCSSKeyword_ignore = 276,
+ eCSSKeyword_ignore_horizontal = 277,
+ eCSSKeyword_ignore_vertical = 278,
+ eCSSKeyword_in = 279,
+ eCSSKeyword_interlace = 280,
+ eCSSKeyword_inactive = 281,
+ eCSSKeyword_inactiveborder = 282,
+ eCSSKeyword_inactivecaption = 283,
+ eCSSKeyword_inactivecaptiontext = 284,
+ eCSSKeyword_infinite = 285,
+ eCSSKeyword_infobackground = 286,
+ eCSSKeyword_infotext = 287,
+ eCSSKeyword_inherit = 288,
+ eCSSKeyword_initial = 289,
+ eCSSKeyword_inline = 290,
+ eCSSKeyword_inline_axis = 291,
+ eCSSKeyword_inline_block = 292,
+ eCSSKeyword_inline_end = 293,
+ eCSSKeyword_inline_flex = 294,
+ eCSSKeyword_inline_grid = 295,
+ eCSSKeyword_inline_start = 296,
+ eCSSKeyword_inline_table = 297,
+ eCSSKeyword_inset = 298,
+ eCSSKeyword_inside = 299,
+ eCSSKeyword_inter_character = 300,
+ eCSSKeyword_inter_word = 301,
+ eCSSKeyword_interpolatematrix = 302,
+ eCSSKeyword_accumulatematrix = 303,
+ eCSSKeyword_intersect = 304,
+ eCSSKeyword_isolate = 305,
+ eCSSKeyword_isolate_override = 306,
+ eCSSKeyword_invert = 307,
+ eCSSKeyword_italic = 308,
+ eCSSKeyword_jis78 = 309,
+ eCSSKeyword_jis83 = 310,
+ eCSSKeyword_jis90 = 311,
+ eCSSKeyword_jis04 = 312,
+ eCSSKeyword_justify = 313,
+ eCSSKeyword_keep_all = 314,
+ eCSSKeyword_khz = 315,
+ eCSSKeyword_landscape = 316,
+ eCSSKeyword_large = 317,
+ eCSSKeyword_larger = 318,
+ eCSSKeyword_last = 319,
+ eCSSKeyword_last_baseline = 320,
+ eCSSKeyword_layout = 321,
+ eCSSKeyword_left = 322,
+ eCSSKeyword_legacy = 323,
+ eCSSKeyword_lighten = 324,
+ eCSSKeyword_lighter = 325,
+ eCSSKeyword_line_through = 326,
+ eCSSKeyword_linear = 327,
+ eCSSKeyword_lining_nums = 328,
+ eCSSKeyword_list_item = 329,
+ eCSSKeyword_local = 330,
+ eCSSKeyword_logical = 331,
+ eCSSKeyword_looped = 332,
+ eCSSKeyword_lowercase = 333,
+ eCSSKeyword_lr = 334,
+ eCSSKeyword_lr_tb = 335,
+ eCSSKeyword_ltr = 336,
+ eCSSKeyword_luminance = 337,
+ eCSSKeyword_luminosity = 338,
+ eCSSKeyword_mandatory = 339,
+ eCSSKeyword_manipulation = 340,
+ eCSSKeyword_manual = 341,
+ eCSSKeyword_margin_box = 342,
+ eCSSKeyword_markers = 343,
+ eCSSKeyword_match_parent = 344,
+ eCSSKeyword_match_source = 345,
+ eCSSKeyword_matrix = 346,
+ eCSSKeyword_matrix3d = 347,
+ eCSSKeyword_max_content = 348,
+ eCSSKeyword_medium = 349,
+ eCSSKeyword_menu = 350,
+ eCSSKeyword_menutext = 351,
+ eCSSKeyword_message_box = 352,
+ eCSSKeyword_middle = 353,
+ eCSSKeyword_min_content = 354,
+ eCSSKeyword_minmax = 355,
+ eCSSKeyword_mix = 356,
+ eCSSKeyword_mixed = 357,
+ eCSSKeyword_mm = 358,
+ eCSSKeyword_monospace = 359,
+ eCSSKeyword_move = 360,
+ eCSSKeyword_ms = 361,
+ eCSSKeyword_multiply = 362,
+ eCSSKeyword_n_resize = 363,
+ eCSSKeyword_narrower = 364,
+ eCSSKeyword_ne_resize = 365,
+ eCSSKeyword_nesw_resize = 366,
+ eCSSKeyword_no_clip = 367,
+ eCSSKeyword_no_close_quote = 368,
+ eCSSKeyword_no_common_ligatures = 369,
+ eCSSKeyword_no_contextual = 370,
+ eCSSKeyword_no_discretionary_ligatures = 371,
+ eCSSKeyword_no_drag = 372,
+ eCSSKeyword_no_drop = 373,
+ eCSSKeyword_no_historical_ligatures = 374,
+ eCSSKeyword_no_open_quote = 375,
+ eCSSKeyword_no_repeat = 376,
+ eCSSKeyword_none = 377,
+ eCSSKeyword_normal = 378,
+ eCSSKeyword_not_allowed = 379,
+ eCSSKeyword_nowrap = 380,
+ eCSSKeyword_numeric = 381,
+ eCSSKeyword_ns_resize = 382,
+ eCSSKeyword_nw_resize = 383,
+ eCSSKeyword_nwse_resize = 384,
+ eCSSKeyword_oblique = 385,
+ eCSSKeyword_oldstyle_nums = 386,
+ eCSSKeyword_opacity = 387,
+ eCSSKeyword_open = 388,
+ eCSSKeyword_open_quote = 389,
+ eCSSKeyword_optional = 390,
+ eCSSKeyword_ordinal = 391,
+ eCSSKeyword_ornaments = 392,
+ eCSSKeyword_outset = 393,
+ eCSSKeyword_outside = 394,
+ eCSSKeyword_over = 395,
+ eCSSKeyword_overlay = 396,
+ eCSSKeyword_overline = 397,
+ eCSSKeyword_paint = 398,
+ eCSSKeyword_padding_box = 399,
+ eCSSKeyword_painted = 400,
+ eCSSKeyword_pan_x = 401,
+ eCSSKeyword_pan_y = 402,
+ eCSSKeyword_paused = 403,
+ eCSSKeyword_pc = 404,
+ eCSSKeyword_perspective = 405,
+ eCSSKeyword_petite_caps = 406,
+ eCSSKeyword_physical = 407,
+ eCSSKeyword_plaintext = 408,
+ eCSSKeyword_pointer = 409,
+ eCSSKeyword_polygon = 410,
+ eCSSKeyword_portrait = 411,
+ eCSSKeyword_pre = 412,
+ eCSSKeyword_pre_wrap = 413,
+ eCSSKeyword_pre_line = 414,
+ eCSSKeyword_preserve_3d = 415,
+ eCSSKeyword_progress = 416,
+ eCSSKeyword_progressive = 417,
+ eCSSKeyword_proportional_nums = 418,
+ eCSSKeyword_proportional_width = 419,
+ eCSSKeyword_proximity = 420,
+ eCSSKeyword_pt = 421,
+ eCSSKeyword_px = 422,
+ eCSSKeyword_rad = 423,
+ eCSSKeyword_read_only = 424,
+ eCSSKeyword_read_write = 425,
+ eCSSKeyword_relative = 426,
+ eCSSKeyword_repeat = 427,
+ eCSSKeyword_repeat_x = 428,
+ eCSSKeyword_repeat_y = 429,
+ eCSSKeyword_reverse = 430,
+ eCSSKeyword_ridge = 431,
+ eCSSKeyword_right = 432,
+ eCSSKeyword_rl = 433,
+ eCSSKeyword_rl_tb = 434,
+ eCSSKeyword_rotate = 435,
+ eCSSKeyword_rotate3d = 436,
+ eCSSKeyword_rotatex = 437,
+ eCSSKeyword_rotatey = 438,
+ eCSSKeyword_rotatez = 439,
+ eCSSKeyword_round = 440,
+ eCSSKeyword_row = 441,
+ eCSSKeyword_row_resize = 442,
+ eCSSKeyword_row_reverse = 443,
+ eCSSKeyword_rtl = 444,
+ eCSSKeyword_ruby = 445,
+ eCSSKeyword_ruby_base = 446,
+ eCSSKeyword_ruby_base_container = 447,
+ eCSSKeyword_ruby_text = 448,
+ eCSSKeyword_ruby_text_container = 449,
+ eCSSKeyword_running = 450,
+ eCSSKeyword_s = 451,
+ eCSSKeyword_s_resize = 452,
+ eCSSKeyword_safe = 453,
+ eCSSKeyword_saturate = 454,
+ eCSSKeyword_saturation = 455,
+ eCSSKeyword_scale = 456,
+ eCSSKeyword_scale_down = 457,
+ eCSSKeyword_scale3d = 458,
+ eCSSKeyword_scalex = 459,
+ eCSSKeyword_scaley = 460,
+ eCSSKeyword_scalez = 461,
+ eCSSKeyword_screen = 462,
+ eCSSKeyword_script = 463,
+ eCSSKeyword_scroll = 464,
+ eCSSKeyword_scrollbar = 465,
+ eCSSKeyword_scrollbar_small = 466,
+ eCSSKeyword_scrollbar_horizontal = 467,
+ eCSSKeyword_scrollbar_vertical = 468,
+ eCSSKeyword_se_resize = 469,
+ eCSSKeyword_select_after = 470,
+ eCSSKeyword_select_all = 471,
+ eCSSKeyword_select_before = 472,
+ eCSSKeyword_select_menu = 473,
+ eCSSKeyword_select_same = 474,
+ eCSSKeyword_self_end = 475,
+ eCSSKeyword_self_start = 476,
+ eCSSKeyword_semi_condensed = 477,
+ eCSSKeyword_semi_expanded = 478,
+ eCSSKeyword_separate = 479,
+ eCSSKeyword_sepia = 480,
+ eCSSKeyword_serif = 481,
+ eCSSKeyword_sesame = 482,
+ eCSSKeyword_show = 483,
+ eCSSKeyword_sideways = 484,
+ eCSSKeyword_sideways_lr = 485,
+ eCSSKeyword_sideways_right = 486,
+ eCSSKeyword_sideways_rl = 487,
+ eCSSKeyword_simplified = 488,
+ eCSSKeyword_skew = 489,
+ eCSSKeyword_skewx = 490,
+ eCSSKeyword_skewy = 491,
+ eCSSKeyword_slashed_zero = 492,
+ eCSSKeyword_slice = 493,
+ eCSSKeyword_small = 494,
+ eCSSKeyword_small_caps = 495,
+ eCSSKeyword_small_caption = 496,
+ eCSSKeyword_smaller = 497,
+ eCSSKeyword_smooth = 498,
+ eCSSKeyword_soft = 499,
+ eCSSKeyword_soft_light = 500,
+ eCSSKeyword_solid = 501,
+ eCSSKeyword_space_around = 502,
+ eCSSKeyword_space_between = 503,
+ eCSSKeyword_space_evenly = 504,
+ eCSSKeyword_span = 505,
+ eCSSKeyword_spell_out = 506,
+ eCSSKeyword_square = 507,
+ eCSSKeyword_stacked_fractions = 508,
+ eCSSKeyword_start = 509,
+ eCSSKeyword_static = 510,
+ eCSSKeyword_standalone = 511,
+ eCSSKeyword_status_bar = 512,
+ eCSSKeyword_step_end = 513,
+ eCSSKeyword_step_start = 514,
+ eCSSKeyword_sticky = 515,
+ eCSSKeyword_stretch = 516,
+ eCSSKeyword_stretch_to_fit = 517,
+ eCSSKeyword_stretched = 518,
+ eCSSKeyword_strict = 519,
+ eCSSKeyword_stroke = 520,
+ eCSSKeyword_stroke_box = 521,
+ eCSSKeyword_style = 522,
+ eCSSKeyword_styleset = 523,
+ eCSSKeyword_stylistic = 524,
+ eCSSKeyword_sub = 525,
+ eCSSKeyword_subgrid = 526,
+ eCSSKeyword_subtract = 527,
+ eCSSKeyword_super = 528,
+ eCSSKeyword_sw_resize = 529,
+ eCSSKeyword_swash = 530,
+ eCSSKeyword_swap = 531,
+ eCSSKeyword_table = 532,
+ eCSSKeyword_table_caption = 533,
+ eCSSKeyword_table_cell = 534,
+ eCSSKeyword_table_column = 535,
+ eCSSKeyword_table_column_group = 536,
+ eCSSKeyword_table_footer_group = 537,
+ eCSSKeyword_table_header_group = 538,
+ eCSSKeyword_table_row = 539,
+ eCSSKeyword_table_row_group = 540,
+ eCSSKeyword_tabular_nums = 541,
+ eCSSKeyword_tailed = 542,
+ eCSSKeyword_tb = 543,
+ eCSSKeyword_tb_rl = 544,
+ eCSSKeyword_text = 545,
+ eCSSKeyword_text_bottom = 546,
+ eCSSKeyword_text_top = 547,
+ eCSSKeyword_thick = 548,
+ eCSSKeyword_thin = 549,
+ eCSSKeyword_threeddarkshadow = 550,
+ eCSSKeyword_threedface = 551,
+ eCSSKeyword_threedhighlight = 552,
+ eCSSKeyword_threedlightshadow = 553,
+ eCSSKeyword_threedshadow = 554,
+ eCSSKeyword_titling_caps = 555,
+ eCSSKeyword_toggle = 556,
+ eCSSKeyword_top = 557,
+ eCSSKeyword_top_outside = 558,
+ eCSSKeyword_traditional = 559,
+ eCSSKeyword_translate = 560,
+ eCSSKeyword_translate3d = 561,
+ eCSSKeyword_translatex = 562,
+ eCSSKeyword_translatey = 563,
+ eCSSKeyword_translatez = 564,
+ eCSSKeyword_transparent = 565,
+ eCSSKeyword_triangle = 566,
+ eCSSKeyword_tri_state = 567,
+ eCSSKeyword_ultra_condensed = 568,
+ eCSSKeyword_ultra_expanded = 569,
+ eCSSKeyword_under = 570,
+ eCSSKeyword_underline = 571,
+ eCSSKeyword_unicase = 572,
+ eCSSKeyword_unsafe = 573,
+ eCSSKeyword_unset = 574,
+ eCSSKeyword_uppercase = 575,
+ eCSSKeyword_upright = 576,
+ eCSSKeyword_vertical = 577,
+ eCSSKeyword_vertical_lr = 578,
+ eCSSKeyword_vertical_rl = 579,
+ eCSSKeyword_vertical_text = 580,
+ eCSSKeyword_view_box = 581,
+ eCSSKeyword_visible = 582,
+ eCSSKeyword_visiblefill = 583,
+ eCSSKeyword_visiblepainted = 584,
+ eCSSKeyword_visiblestroke = 585,
+ eCSSKeyword_w_resize = 586,
+ eCSSKeyword_wait = 587,
+ eCSSKeyword_wavy = 588,
+ eCSSKeyword_weight = 589,
+ eCSSKeyword_wider = 590,
+ eCSSKeyword_window = 591,
+ eCSSKeyword_windowframe = 592,
+ eCSSKeyword_windowtext = 593,
+ eCSSKeyword_words = 594,
+ eCSSKeyword_wrap = 595,
+ eCSSKeyword_wrap_reverse = 596,
+ eCSSKeyword_write_only = 597,
+ eCSSKeyword_x_large = 598,
+ eCSSKeyword_x_small = 599,
+ eCSSKeyword_xx_large = 600,
+ eCSSKeyword_xx_small = 601,
+ eCSSKeyword_zoom_in = 602,
+ eCSSKeyword_zoom_out = 603,
+ eCSSKeyword_radio = 604,
+ eCSSKeyword_checkbox = 605,
+ eCSSKeyword_button_bevel = 606,
+ eCSSKeyword_toolbox = 607,
+ eCSSKeyword_toolbar = 608,
+ eCSSKeyword_toolbarbutton = 609,
+ eCSSKeyword_toolbargripper = 610,
+ eCSSKeyword_dualbutton = 611,
+ eCSSKeyword_toolbarbutton_dropdown = 612,
+ eCSSKeyword_button_arrow_up = 613,
+ eCSSKeyword_button_arrow_down = 614,
+ eCSSKeyword_button_arrow_next = 615,
+ eCSSKeyword_button_arrow_previous = 616,
+ eCSSKeyword_separator = 617,
+ eCSSKeyword_splitter = 618,
+ eCSSKeyword_statusbar = 619,
+ eCSSKeyword_statusbarpanel = 620,
+ eCSSKeyword_resizerpanel = 621,
+ eCSSKeyword_resizer = 622,
+ eCSSKeyword_listbox = 623,
+ eCSSKeyword_listitem = 624,
+ eCSSKeyword_numbers = 625,
+ eCSSKeyword_number_input = 626,
+ eCSSKeyword_treeview = 627,
+ eCSSKeyword_treeitem = 628,
+ eCSSKeyword_treetwisty = 629,
+ eCSSKeyword_treetwistyopen = 630,
+ eCSSKeyword_treeline = 631,
+ eCSSKeyword_treeheader = 632,
+ eCSSKeyword_treeheadercell = 633,
+ eCSSKeyword_treeheadersortarrow = 634,
+ eCSSKeyword_progressbar = 635,
+ eCSSKeyword_progressbar_vertical = 636,
+ eCSSKeyword_progresschunk = 637,
+ eCSSKeyword_progresschunk_vertical = 638,
+ eCSSKeyword_tab = 639,
+ eCSSKeyword_tabpanels = 640,
+ eCSSKeyword_tabpanel = 641,
+ eCSSKeyword_tab_scroll_arrow_back = 642,
+ eCSSKeyword_tab_scroll_arrow_forward = 643,
+ eCSSKeyword_tooltip = 644,
+ eCSSKeyword_inner_spin_button = 645,
+ eCSSKeyword_spinner = 646,
+ eCSSKeyword_spinner_upbutton = 647,
+ eCSSKeyword_spinner_downbutton = 648,
+ eCSSKeyword_spinner_textfield = 649,
+ eCSSKeyword_scrollbarbutton_up = 650,
+ eCSSKeyword_scrollbarbutton_down = 651,
+ eCSSKeyword_scrollbarbutton_left = 652,
+ eCSSKeyword_scrollbarbutton_right = 653,
+ eCSSKeyword_scrollbartrack_horizontal = 654,
+ eCSSKeyword_scrollbartrack_vertical = 655,
+ eCSSKeyword_scrollbarthumb_horizontal = 656,
+ eCSSKeyword_scrollbarthumb_vertical = 657,
+ eCSSKeyword_sheet = 658,
+ eCSSKeyword_textfield = 659,
+ eCSSKeyword_textfield_multiline = 660,
+ eCSSKeyword_caret = 661,
+ eCSSKeyword_searchfield = 662,
+ eCSSKeyword_menubar = 663,
+ eCSSKeyword_menupopup = 664,
+ eCSSKeyword_menuitem = 665,
+ eCSSKeyword_checkmenuitem = 666,
+ eCSSKeyword_radiomenuitem = 667,
+ eCSSKeyword_menucheckbox = 668,
+ eCSSKeyword_menuradio = 669,
+ eCSSKeyword_menuseparator = 670,
+ eCSSKeyword_menuarrow = 671,
+ eCSSKeyword_menuimage = 672,
+ eCSSKeyword_menuitemtext = 673,
+ eCSSKeyword_menulist = 674,
+ eCSSKeyword_menulist_button = 675,
+ eCSSKeyword_menulist_text = 676,
+ eCSSKeyword_menulist_textfield = 677,
+ eCSSKeyword_meterbar = 678,
+ eCSSKeyword_meterchunk = 679,
+ eCSSKeyword_minimal_ui = 680,
+ eCSSKeyword_range = 681,
+ eCSSKeyword_range_thumb = 682,
+ eCSSKeyword_sans_serif = 683,
+ eCSSKeyword_sans_serif_bold_italic = 684,
+ eCSSKeyword_sans_serif_italic = 685,
+ eCSSKeyword_scale_horizontal = 686,
+ eCSSKeyword_scale_vertical = 687,
+ eCSSKeyword_scalethumb_horizontal = 688,
+ eCSSKeyword_scalethumb_vertical = 689,
+ eCSSKeyword_scalethumbstart = 690,
+ eCSSKeyword_scalethumbend = 691,
+ eCSSKeyword_scalethumbtick = 692,
+ eCSSKeyword_groupbox = 693,
+ eCSSKeyword_checkbox_container = 694,
+ eCSSKeyword_radio_container = 695,
+ eCSSKeyword_checkbox_label = 696,
+ eCSSKeyword_radio_label = 697,
+ eCSSKeyword_button_focus = 698,
+ eCSSKeyword__moz_win_media_toolbox = 699,
+ eCSSKeyword__moz_win_communications_toolbox = 700,
+ eCSSKeyword__moz_win_browsertabbar_toolbox = 701,
+ eCSSKeyword__moz_win_accentcolor = 702,
+ eCSSKeyword__moz_win_accentcolortext = 703,
+ eCSSKeyword__moz_win_mediatext = 704,
+ eCSSKeyword__moz_win_communicationstext = 705,
+ eCSSKeyword__moz_win_glass = 706,
+ eCSSKeyword__moz_win_borderless_glass = 707,
+ eCSSKeyword__moz_window_titlebar = 708,
+ eCSSKeyword__moz_window_titlebar_maximized = 709,
+ eCSSKeyword__moz_window_frame_left = 710,
+ eCSSKeyword__moz_window_frame_right = 711,
+ eCSSKeyword__moz_window_frame_bottom = 712,
+ eCSSKeyword__moz_window_button_close = 713,
+ eCSSKeyword__moz_window_button_minimize = 714,
+ eCSSKeyword__moz_window_button_maximize = 715,
+ eCSSKeyword__moz_window_button_restore = 716,
+ eCSSKeyword__moz_window_button_box = 717,
+ eCSSKeyword__moz_window_button_box_maximized = 718,
+ eCSSKeyword__moz_mac_help_button = 719,
+ eCSSKeyword__moz_win_exclude_glass = 720,
+ eCSSKeyword__moz_mac_vibrancy_light = 721,
+ eCSSKeyword__moz_mac_vibrancy_dark = 722,
+ eCSSKeyword__moz_mac_vibrant_titlebar_light = 723,
+ eCSSKeyword__moz_mac_vibrant_titlebar_dark = 724,
+ eCSSKeyword__moz_mac_disclosure_button_closed = 725,
+ eCSSKeyword__moz_mac_disclosure_button_open = 726,
+ eCSSKeyword__moz_mac_source_list = 727,
+ eCSSKeyword__moz_mac_source_list_selection = 728,
+ eCSSKeyword__moz_mac_active_source_list_selection = 729,
+ eCSSKeyword_alphabetic = 730,
+ eCSSKeyword_bevel = 731,
+ eCSSKeyword_butt = 732,
+ eCSSKeyword_central = 733,
+ eCSSKeyword_crispedges = 734,
+ eCSSKeyword_evenodd = 735,
+ eCSSKeyword_geometricprecision = 736,
+ eCSSKeyword_hanging = 737,
+ eCSSKeyword_ideographic = 738,
+ eCSSKeyword_linearrgb = 739,
+ eCSSKeyword_mathematical = 740,
+ eCSSKeyword_miter = 741,
+ eCSSKeyword_no_change = 742,
+ eCSSKeyword_non_scaling_stroke = 743,
+ eCSSKeyword_nonzero = 744,
+ eCSSKeyword_optimizelegibility = 745,
+ eCSSKeyword_optimizequality = 746,
+ eCSSKeyword_optimizespeed = 747,
+ eCSSKeyword_reset_size = 748,
+ eCSSKeyword_srgb = 749,
+ eCSSKeyword_symbolic = 750,
+ eCSSKeyword_symbols = 751,
+ eCSSKeyword_text_after_edge = 752,
+ eCSSKeyword_text_before_edge = 753,
+ eCSSKeyword_use_script = 754,
+ eCSSKeyword__moz_crisp_edges = 755,
+ eCSSKeyword_space = 756,
+ eCSSKeyword_COUNT = 757,
+ }
+ pub const nsStyleStructID_nsStyleStructID_None: root::nsStyleStructID = -1;
+ pub const nsStyleStructID_nsStyleStructID_Inherited_Start: root::nsStyleStructID = 0;
+ pub const nsStyleStructID_nsStyleStructID_DUMMY1: root::nsStyleStructID = -1;
+ pub const nsStyleStructID_eStyleStruct_Font: root::nsStyleStructID = 0;
+ pub const nsStyleStructID_eStyleStruct_Color: root::nsStyleStructID = 1;
+ pub const nsStyleStructID_eStyleStruct_List: root::nsStyleStructID = 2;
+ pub const nsStyleStructID_eStyleStruct_Text: root::nsStyleStructID = 3;
+ pub const nsStyleStructID_eStyleStruct_Visibility: root::nsStyleStructID = 4;
+ pub const nsStyleStructID_eStyleStruct_UserInterface: root::nsStyleStructID = 5;
+ pub const nsStyleStructID_eStyleStruct_TableBorder: root::nsStyleStructID = 6;
+ pub const nsStyleStructID_eStyleStruct_SVG: root::nsStyleStructID = 7;
+ pub const nsStyleStructID_eStyleStruct_Variables: root::nsStyleStructID = 8;
+ pub const nsStyleStructID_nsStyleStructID_Reset_Start: root::nsStyleStructID = 9;
+ pub const nsStyleStructID_nsStyleStructID_DUMMY2: root::nsStyleStructID = 8;
+ pub const nsStyleStructID_eStyleStruct_Background: root::nsStyleStructID = 9;
+ pub const nsStyleStructID_eStyleStruct_Position: root::nsStyleStructID = 10;
+ pub const nsStyleStructID_eStyleStruct_TextReset: root::nsStyleStructID = 11;
+ pub const nsStyleStructID_eStyleStruct_Display: root::nsStyleStructID = 12;
+ pub const nsStyleStructID_eStyleStruct_Content: root::nsStyleStructID = 13;
+ pub const nsStyleStructID_eStyleStruct_UIReset: root::nsStyleStructID = 14;
+ pub const nsStyleStructID_eStyleStruct_Table: root::nsStyleStructID = 15;
+ pub const nsStyleStructID_eStyleStruct_Margin: root::nsStyleStructID = 16;
+ pub const nsStyleStructID_eStyleStruct_Padding: root::nsStyleStructID = 17;
+ pub const nsStyleStructID_eStyleStruct_Border: root::nsStyleStructID = 18;
+ pub const nsStyleStructID_eStyleStruct_Outline: root::nsStyleStructID = 19;
+ pub const nsStyleStructID_eStyleStruct_XUL: root::nsStyleStructID = 20;
+ pub const nsStyleStructID_eStyleStruct_SVGReset: root::nsStyleStructID = 21;
+ pub const nsStyleStructID_eStyleStruct_Column: root::nsStyleStructID = 22;
+ pub const nsStyleStructID_eStyleStruct_Effects: root::nsStyleStructID = 23;
+ pub const nsStyleStructID_nsStyleStructID_Length: root::nsStyleStructID = 24;
+ pub const nsStyleStructID_nsStyleStructID_Inherited_Count: root::nsStyleStructID = 9;
+ pub const nsStyleStructID_nsStyleStructID_Reset_Count: root::nsStyleStructID = 15;
+ pub type nsStyleStructID = i32;
+ pub const nsStyleAnimType_eStyleAnimType_Custom: root::nsStyleAnimType = 0;
+ pub const nsStyleAnimType_eStyleAnimType_Coord: root::nsStyleAnimType = 1;
+ pub const nsStyleAnimType_eStyleAnimType_Sides_Top: root::nsStyleAnimType = 2;
+ pub const nsStyleAnimType_eStyleAnimType_Sides_Right: root::nsStyleAnimType = 3;
+ pub const nsStyleAnimType_eStyleAnimType_Sides_Bottom: root::nsStyleAnimType = 4;
+ pub const nsStyleAnimType_eStyleAnimType_Sides_Left: root::nsStyleAnimType = 5;
+ pub const nsStyleAnimType_eStyleAnimType_Corner_TopLeft: root::nsStyleAnimType = 6;
+ pub const nsStyleAnimType_eStyleAnimType_Corner_TopRight: root::nsStyleAnimType = 7;
+ pub const nsStyleAnimType_eStyleAnimType_Corner_BottomRight: root::nsStyleAnimType = 8;
+ pub const nsStyleAnimType_eStyleAnimType_Corner_BottomLeft: root::nsStyleAnimType = 9;
+ pub const nsStyleAnimType_eStyleAnimType_nscoord: root::nsStyleAnimType = 10;
+ pub const nsStyleAnimType_eStyleAnimType_float: root::nsStyleAnimType = 11;
+ pub const nsStyleAnimType_eStyleAnimType_Color: root::nsStyleAnimType = 12;
+ pub const nsStyleAnimType_eStyleAnimType_ComplexColor: root::nsStyleAnimType = 13;
+ pub const nsStyleAnimType_eStyleAnimType_PaintServer: root::nsStyleAnimType = 14;
+ pub const nsStyleAnimType_eStyleAnimType_Shadow: root::nsStyleAnimType = 15;
+ pub const nsStyleAnimType_eStyleAnimType_Discrete: root::nsStyleAnimType = 16;
+ pub const nsStyleAnimType_eStyleAnimType_None: root::nsStyleAnimType = 17;
+ pub type nsStyleAnimType = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsCSSProps {
+ pub _address: u8,
+ }
+ pub use self::super::root::mozilla::CSSEnabledState as nsCSSProps_EnabledState;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsCSSProps_KTableEntry {
+ pub mKeyword: root::nsCSSKeyword,
+ pub mValue: i16,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSProps_KTableEntry() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSProps_KTableEntry>(),
+ 4usize,
+ concat!("Size of: ", stringify!(nsCSSProps_KTableEntry))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSProps_KTableEntry>(),
+ 2usize,
+ concat!("Alignment of ", stringify!(nsCSSProps_KTableEntry))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSProps_KTableEntry>())).mKeyword as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSProps_KTableEntry),
+ "::",
+ stringify!(mKeyword)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSProps_KTableEntry>())).mValue as *const _ as usize
+ },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSProps_KTableEntry),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ impl Clone for nsCSSProps_KTableEntry {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps9kSIDTableE"]
+ pub static mut nsCSSProps_kSIDTable: [root::nsStyleStructID; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kKeywordTableTableE"]
+ pub static mut nsCSSProps_kKeywordTableTable:
+ [*const root::nsCSSProps_KTableEntry; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kAnimTypeTableE"]
+ pub static mut nsCSSProps_kAnimTypeTable: [root::nsStyleAnimType; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kStyleStructOffsetTableE"]
+ pub static mut nsCSSProps_kStyleStructOffsetTable: [isize; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps11kFlagsTableE"]
+ pub static mut nsCSSProps_kFlagsTable: [u32; 373usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kParserVariantTableE"]
+ pub static mut nsCSSProps_kParserVariantTable: [u32; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kSubpropertyTableE"]
+ pub static mut nsCSSProps_kSubpropertyTable: [*const root::nsCSSPropertyID; 50usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps26gShorthandsContainingTableE"]
+ pub static mut nsCSSProps_gShorthandsContainingTable:
+ [*mut root::nsCSSPropertyID; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25gShorthandsContainingPoolE"]
+ pub static mut nsCSSProps_gShorthandsContainingPool: *mut root::nsCSSPropertyID;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22gPropertyCountInStructE"]
+ pub static mut nsCSSProps_gPropertyCountInStruct: [usize; 24usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22gPropertyIndexInStructE"]
+ pub static mut nsCSSProps_gPropertyIndexInStruct: [usize; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kLogicalGroupTableE"]
+ pub static mut nsCSSProps_kLogicalGroupTable: [*const root::nsCSSPropertyID; 9usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16gPropertyEnabledE"]
+ pub static mut nsCSSProps_gPropertyEnabled: [bool; 482usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps13kIDLNameTableE"]
+ pub static mut nsCSSProps_kIDLNameTable: [*const ::std::os::raw::c_char; 373usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kIDLNameSortPositionTableE"]
+ pub static mut nsCSSProps_kIDLNameSortPositionTable: [i32; 373usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19gPropertyUseCounterE"]
+ pub static mut nsCSSProps_gPropertyUseCounter: [root::mozilla::UseCounter; 323usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kAnimationDirectionKTableE"]
+ pub static mut nsCSSProps_kAnimationDirectionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps24kAnimationFillModeKTableE"]
+ pub static mut nsCSSProps_kAnimationFillModeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps30kAnimationIterationCountKTableE"]
+ pub static mut nsCSSProps_kAnimationIterationCountKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kAnimationPlayStateKTableE"]
+ pub static mut nsCSSProps_kAnimationPlayStateKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps30kAnimationTimingFunctionKTableE"]
+ pub static mut nsCSSProps_kAnimationTimingFunctionKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kAppearanceKTableE"]
+ pub static mut nsCSSProps_kAppearanceKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kAzimuthKTableE"]
+ pub static mut nsCSSProps_kAzimuthKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kBackfaceVisibilityKTableE"]
+ pub static mut nsCSSProps_kBackfaceVisibilityKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kTransformStyleKTableE"]
+ pub static mut nsCSSProps_kTransformStyleKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kImageLayerAttachmentKTableE"]
+ pub static mut nsCSSProps_kImageLayerAttachmentKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kBackgroundOriginKTableE"]
+ pub static mut nsCSSProps_kBackgroundOriginKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kMaskOriginKTableE"]
+ pub static mut nsCSSProps_kMaskOriginKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kImageLayerPositionKTableE"]
+ pub static mut nsCSSProps_kImageLayerPositionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kImageLayerRepeatKTableE"]
+ pub static mut nsCSSProps_kImageLayerRepeatKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kImageLayerRepeatPartKTableE"]
+ pub static mut nsCSSProps_kImageLayerRepeatPartKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kImageLayerSizeKTableE"]
+ pub static mut nsCSSProps_kImageLayerSizeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps26kImageLayerCompositeKTableE"]
+ pub static mut nsCSSProps_kImageLayerCompositeKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kImageLayerModeKTableE"]
+ pub static mut nsCSSProps_kImageLayerModeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kBackgroundClipKTableE"]
+ pub static mut nsCSSProps_kBackgroundClipKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kMaskClipKTableE"]
+ pub static mut nsCSSProps_kMaskClipKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kBlendModeKTableE"]
+ pub static mut nsCSSProps_kBlendModeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kBorderCollapseKTableE"]
+ pub static mut nsCSSProps_kBorderCollapseKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps24kBorderImageRepeatKTableE"]
+ pub static mut nsCSSProps_kBorderImageRepeatKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kBorderImageSliceKTableE"]
+ pub static mut nsCSSProps_kBorderImageSliceKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kBorderStyleKTableE"]
+ pub static mut nsCSSProps_kBorderStyleKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kBorderWidthKTableE"]
+ pub static mut nsCSSProps_kBorderWidthKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kBoxAlignKTableE"]
+ pub static mut nsCSSProps_kBoxAlignKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kBoxDecorationBreakKTableE"]
+ pub static mut nsCSSProps_kBoxDecorationBreakKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kBoxDirectionKTableE"]
+ pub static mut nsCSSProps_kBoxDirectionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kBoxOrientKTableE"]
+ pub static mut nsCSSProps_kBoxOrientKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kBoxPackKTableE"]
+ pub static mut nsCSSProps_kBoxPackKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps26kClipPathGeometryBoxKTableE"]
+ pub static mut nsCSSProps_kClipPathGeometryBoxKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kCounterRangeKTableE"]
+ pub static mut nsCSSProps_kCounterRangeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kCounterSpeakAsKTableE"]
+ pub static mut nsCSSProps_kCounterSpeakAsKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kCounterSymbolsSystemKTableE"]
+ pub static mut nsCSSProps_kCounterSymbolsSystemKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kCounterSystemKTableE"]
+ pub static mut nsCSSProps_kCounterSystemKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kDominantBaselineKTableE"]
+ pub static mut nsCSSProps_kDominantBaselineKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kShapeRadiusKTableE"]
+ pub static mut nsCSSProps_kShapeRadiusKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kFillRuleKTableE"]
+ pub static mut nsCSSProps_kFillRuleKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kFilterFunctionKTableE"]
+ pub static mut nsCSSProps_kFilterFunctionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kImageRenderingKTableE"]
+ pub static mut nsCSSProps_kImageRenderingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kShapeOutsideShapeBoxKTableE"]
+ pub static mut nsCSSProps_kShapeOutsideShapeBoxKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kShapeRenderingKTableE"]
+ pub static mut nsCSSProps_kShapeRenderingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kStrokeLinecapKTableE"]
+ pub static mut nsCSSProps_kStrokeLinecapKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kStrokeLinejoinKTableE"]
+ pub static mut nsCSSProps_kStrokeLinejoinKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kStrokeContextValueKTableE"]
+ pub static mut nsCSSProps_kStrokeContextValueKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kVectorEffectKTableE"]
+ pub static mut nsCSSProps_kVectorEffectKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kTextAnchorKTableE"]
+ pub static mut nsCSSProps_kTextAnchorKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kTextRenderingKTableE"]
+ pub static mut nsCSSProps_kTextRenderingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kColorAdjustKTableE"]
+ pub static mut nsCSSProps_kColorAdjustKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kColorInterpolationKTableE"]
+ pub static mut nsCSSProps_kColorInterpolationKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kColumnFillKTableE"]
+ pub static mut nsCSSProps_kColumnFillKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kColumnSpanKTableE"]
+ pub static mut nsCSSProps_kColumnSpanKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kBoxPropSourceKTableE"]
+ pub static mut nsCSSProps_kBoxPropSourceKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kBoxShadowTypeKTableE"]
+ pub static mut nsCSSProps_kBoxShadowTypeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kBoxSizingKTableE"]
+ pub static mut nsCSSProps_kBoxSizingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kCaptionSideKTableE"]
+ pub static mut nsCSSProps_kCaptionSideKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kClearKTableE"]
+ pub static mut nsCSSProps_kClearKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kColorKTableE"]
+ pub static mut nsCSSProps_kColorKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kContentKTableE"]
+ pub static mut nsCSSProps_kContentKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps33kControlCharacterVisibilityKTableE"]
+ pub static mut nsCSSProps_kControlCharacterVisibilityKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps13kCursorKTableE"]
+ pub static mut nsCSSProps_kCursorKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kDirectionKTableE"]
+ pub static mut nsCSSProps_kDirectionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kDisplayKTableE"]
+ pub static mut nsCSSProps_kDisplayKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kElevationKTableE"]
+ pub static mut nsCSSProps_kElevationKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kEmptyCellsKTableE"]
+ pub static mut nsCSSProps_kEmptyCellsKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kAlignAllKeywordsE"]
+ pub static mut nsCSSProps_kAlignAllKeywords: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22kAlignOverflowPositionE"]
+ pub static mut nsCSSProps_kAlignOverflowPosition: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kAlignSelfPositionE"]
+ pub static mut nsCSSProps_kAlignSelfPosition: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kAlignLegacyE"]
+ pub static mut nsCSSProps_kAlignLegacy: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kAlignLegacyPositionE"]
+ pub static mut nsCSSProps_kAlignLegacyPosition: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps31kAlignAutoNormalStretchBaselineE"]
+ pub static mut nsCSSProps_kAlignAutoNormalStretchBaseline:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kAlignNormalStretchBaselineE"]
+ pub static mut nsCSSProps_kAlignNormalStretchBaseline:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kAlignNormalBaselineE"]
+ pub static mut nsCSSProps_kAlignNormalBaseline: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kAlignContentDistributionE"]
+ pub static mut nsCSSProps_kAlignContentDistribution: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kAlignContentPositionE"]
+ pub static mut nsCSSProps_kAlignContentPosition: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps31kAutoCompletionAlignJustifySelfE"]
+ pub static mut nsCSSProps_kAutoCompletionAlignJustifySelf:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kAutoCompletionAlignItemsE"]
+ pub static mut nsCSSProps_kAutoCompletionAlignItems: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps34kAutoCompletionAlignJustifyContentE"]
+ pub static mut nsCSSProps_kAutoCompletionAlignJustifyContent:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kFlexDirectionKTableE"]
+ pub static mut nsCSSProps_kFlexDirectionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kFlexWrapKTableE"]
+ pub static mut nsCSSProps_kFlexWrapKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kFloatKTableE"]
+ pub static mut nsCSSProps_kFloatKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kFloatEdgeKTableE"]
+ pub static mut nsCSSProps_kFloatEdgeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kFontDisplayKTableE"]
+ pub static mut nsCSSProps_kFontDisplayKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps11kFontKTableE"]
+ pub static mut nsCSSProps_kFontKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kFontKerningKTableE"]
+ pub static mut nsCSSProps_kFontKerningKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kFontSizeKTableE"]
+ pub static mut nsCSSProps_kFontSizeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kFontSmoothingKTableE"]
+ pub static mut nsCSSProps_kFontSmoothingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kFontStretchKTableE"]
+ pub static mut nsCSSProps_kFontStretchKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kFontStyleKTableE"]
+ pub static mut nsCSSProps_kFontStyleKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kFontSynthesisKTableE"]
+ pub static mut nsCSSProps_kFontSynthesisKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kFontVariantKTableE"]
+ pub static mut nsCSSProps_kFontVariantKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps28kFontVariantAlternatesKTableE"]
+ pub static mut nsCSSProps_kFontVariantAlternatesKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps33kFontVariantAlternatesFuncsKTableE"]
+ pub static mut nsCSSProps_kFontVariantAlternatesFuncsKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22kFontVariantCapsKTableE"]
+ pub static mut nsCSSProps_kFontVariantCapsKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kFontVariantEastAsianKTableE"]
+ pub static mut nsCSSProps_kFontVariantEastAsianKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kFontVariantLigaturesKTableE"]
+ pub static mut nsCSSProps_kFontVariantLigaturesKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kFontVariantNumericKTableE"]
+ pub static mut nsCSSProps_kFontVariantNumericKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps26kFontVariantPositionKTableE"]
+ pub static mut nsCSSProps_kFontVariantPositionKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kFontWeightKTableE"]
+ pub static mut nsCSSProps_kFontWeightKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kGridAutoFlowKTableE"]
+ pub static mut nsCSSProps_kGridAutoFlowKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kGridTrackBreadthKTableE"]
+ pub static mut nsCSSProps_kGridTrackBreadthKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kHyphensKTableE"]
+ pub static mut nsCSSProps_kHyphensKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kImageOrientationKTableE"]
+ pub static mut nsCSSProps_kImageOrientationKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kImageOrientationFlipKTableE"]
+ pub static mut nsCSSProps_kImageOrientationFlipKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kIsolationKTableE"]
+ pub static mut nsCSSProps_kIsolationKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kIMEModeKTableE"]
+ pub static mut nsCSSProps_kIMEModeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kLineHeightKTableE"]
+ pub static mut nsCSSProps_kLineHeightKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps24kListStylePositionKTableE"]
+ pub static mut nsCSSProps_kListStylePositionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kMaskTypeKTableE"]
+ pub static mut nsCSSProps_kMaskTypeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kMathVariantKTableE"]
+ pub static mut nsCSSProps_kMathVariantKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kMathDisplayKTableE"]
+ pub static mut nsCSSProps_kMathDisplayKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps14kContainKTableE"]
+ pub static mut nsCSSProps_kContainKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kContextOpacityKTableE"]
+ pub static mut nsCSSProps_kContextOpacityKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kContextPatternKTableE"]
+ pub static mut nsCSSProps_kContextPatternKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kObjectFitKTableE"]
+ pub static mut nsCSSProps_kObjectFitKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps13kOrientKTableE"]
+ pub static mut nsCSSProps_kOrientKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kOutlineStyleKTableE"]
+ pub static mut nsCSSProps_kOutlineStyleKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kOverflowKTableE"]
+ pub static mut nsCSSProps_kOverflowKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kOverflowSubKTableE"]
+ pub static mut nsCSSProps_kOverflowSubKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22kOverflowClipBoxKTableE"]
+ pub static mut nsCSSProps_kOverflowClipBoxKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kOverflowWrapKTableE"]
+ pub static mut nsCSSProps_kOverflowWrapKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kPageBreakKTableE"]
+ pub static mut nsCSSProps_kPageBreakKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22kPageBreakInsideKTableE"]
+ pub static mut nsCSSProps_kPageBreakInsideKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kPageMarksKTableE"]
+ pub static mut nsCSSProps_kPageMarksKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kPageSizeKTableE"]
+ pub static mut nsCSSProps_kPageSizeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kPitchKTableE"]
+ pub static mut nsCSSProps_kPitchKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kPointerEventsKTableE"]
+ pub static mut nsCSSProps_kPointerEventsKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kPositionKTableE"]
+ pub static mut nsCSSProps_kPositionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps26kRadialGradientShapeKTableE"]
+ pub static mut nsCSSProps_kRadialGradientShapeKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kRadialGradientSizeKTableE"]
+ pub static mut nsCSSProps_kRadialGradientSizeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps31kRadialGradientLegacySizeKTableE"]
+ pub static mut nsCSSProps_kRadialGradientLegacySizeKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps13kResizeKTableE"]
+ pub static mut nsCSSProps_kResizeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kRubyAlignKTableE"]
+ pub static mut nsCSSProps_kRubyAlignKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kRubyPositionKTableE"]
+ pub static mut nsCSSProps_kRubyPositionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kScrollBehaviorKTableE"]
+ pub static mut nsCSSProps_kScrollBehaviorKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kOverscrollBehaviorKTableE"]
+ pub static mut nsCSSProps_kOverscrollBehaviorKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kScrollSnapTypeKTableE"]
+ pub static mut nsCSSProps_kScrollSnapTypeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kSpeakKTableE"]
+ pub static mut nsCSSProps_kSpeakKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kSpeakHeaderKTableE"]
+ pub static mut nsCSSProps_kSpeakHeaderKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kSpeakNumeralKTableE"]
+ pub static mut nsCSSProps_kSpeakNumeralKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps23kSpeakPunctuationKTableE"]
+ pub static mut nsCSSProps_kSpeakPunctuationKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kSpeechRateKTableE"]
+ pub static mut nsCSSProps_kSpeechRateKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kStackSizingKTableE"]
+ pub static mut nsCSSProps_kStackSizingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kTableLayoutKTableE"]
+ pub static mut nsCSSProps_kTableLayoutKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kTextAlignKTableE"]
+ pub static mut nsCSSProps_kTextAlignKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kTextAlignLastKTableE"]
+ pub static mut nsCSSProps_kTextAlignLastKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kTextCombineUprightKTableE"]
+ pub static mut nsCSSProps_kTextCombineUprightKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps25kTextDecorationLineKTableE"]
+ pub static mut nsCSSProps_kTextDecorationLineKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps26kTextDecorationStyleKTableE"]
+ pub static mut nsCSSProps_kTextDecorationStyleKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps27kTextEmphasisPositionKTableE"]
+ pub static mut nsCSSProps_kTextEmphasisPositionKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps28kTextEmphasisStyleFillKTableE"]
+ pub static mut nsCSSProps_kTextEmphasisStyleFillKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps29kTextEmphasisStyleShapeKTableE"]
+ pub static mut nsCSSProps_kTextEmphasisStyleShapeKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kTextJustifyKTableE"]
+ pub static mut nsCSSProps_kTextJustifyKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps22kTextOrientationKTableE"]
+ pub static mut nsCSSProps_kTextOrientationKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kTextOverflowKTableE"]
+ pub static mut nsCSSProps_kTextOverflowKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kTextSizeAdjustKTableE"]
+ pub static mut nsCSSProps_kTextSizeAdjustKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kTextTransformKTableE"]
+ pub static mut nsCSSProps_kTextTransformKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kTouchActionKTableE"]
+ pub static mut nsCSSProps_kTouchActionKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps15kTopLayerKTableE"]
+ pub static mut nsCSSProps_kTopLayerKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kTransformBoxKTableE"]
+ pub static mut nsCSSProps_kTransformBoxKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps31kTransitionTimingFunctionKTableE"]
+ pub static mut nsCSSProps_kTransitionTimingFunctionKTable:
+ [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kUnicodeBidiKTableE"]
+ pub static mut nsCSSProps_kUnicodeBidiKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kUserFocusKTableE"]
+ pub static mut nsCSSProps_kUserFocusKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kUserInputKTableE"]
+ pub static mut nsCSSProps_kUserInputKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kUserModifyKTableE"]
+ pub static mut nsCSSProps_kUserModifyKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kUserSelectKTableE"]
+ pub static mut nsCSSProps_kUserSelectKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps20kVerticalAlignKTableE"]
+ pub static mut nsCSSProps_kVerticalAlignKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kVisibilityKTableE"]
+ pub static mut nsCSSProps_kVisibilityKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps13kVolumeKTableE"]
+ pub static mut nsCSSProps_kVolumeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps17kWhitespaceKTableE"]
+ pub static mut nsCSSProps_kWhitespaceKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps12kWidthKTableE"]
+ pub static mut nsCSSProps_kWidthKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps21kWindowDraggingKTableE"]
+ pub static mut nsCSSProps_kWindowDraggingKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps19kWindowShadowKTableE"]
+ pub static mut nsCSSProps_kWindowShadowKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps16kWordBreakKTableE"]
+ pub static mut nsCSSProps_kWordBreakKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN10nsCSSProps18kWritingModeKTableE"]
+ pub static mut nsCSSProps_kWritingModeKTable: [root::nsCSSProps_KTableEntry; 0usize];
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSProps() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSProps>(),
+ 1usize,
+ concat!("Size of: ", stringify!(nsCSSProps))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSProps>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(nsCSSProps))
+ );
+ }
+ impl Clone for nsCSSProps {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Class to safely handle main-thread-only pointers off the main thread.
///
/// Classes like XPCWrappedJS are main-thread-only, which means that it is
/// forbidden to call methods on instances of these classes off the main thread.
@@ -1566,12 +27048,2204 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// // threads.
///
/// All structs and classes that might be accessed on other threads should store
- /// an nsMainThreadPtrHandle<T> rather than an nsCOMPtr<T>.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsMainThreadPtrHolder < T > { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mRawPtr : * mut T , pub mStrict : bool , pub mMainThreadEventTarget : root :: nsCOMPtr , pub mName : * const :: std :: os :: raw :: c_char , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } pub type nsMainThreadPtrHolder_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsMainThreadPtrHandle < T > { pub mPtr : root :: RefPtr < root :: nsMainThreadPtrHolder < T > > , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsCSSUnit { eCSSUnit_Null = 0 , eCSSUnit_Auto = 1 , eCSSUnit_Inherit = 2 , eCSSUnit_Initial = 3 , eCSSUnit_Unset = 4 , eCSSUnit_None = 5 , eCSSUnit_Normal = 6 , eCSSUnit_System_Font = 7 , eCSSUnit_All = 8 , eCSSUnit_Dummy = 9 , eCSSUnit_DummyInherit = 10 , eCSSUnit_String = 11 , eCSSUnit_Ident = 12 , eCSSUnit_Attr = 14 , eCSSUnit_Local_Font = 15 , eCSSUnit_Font_Format = 16 , eCSSUnit_Element = 17 , eCSSUnit_Array = 20 , eCSSUnit_Counter = 21 , eCSSUnit_Counters = 22 , eCSSUnit_Cubic_Bezier = 23 , eCSSUnit_Steps = 24 , eCSSUnit_Symbols = 25 , eCSSUnit_Function = 26 , eCSSUnit_Calc = 30 , eCSSUnit_Calc_Plus = 31 , eCSSUnit_Calc_Minus = 32 , eCSSUnit_Calc_Times_L = 33 , eCSSUnit_Calc_Times_R = 34 , eCSSUnit_Calc_Divided = 35 , eCSSUnit_URL = 40 , eCSSUnit_Image = 41 , eCSSUnit_Gradient = 42 , eCSSUnit_TokenStream = 43 , eCSSUnit_GridTemplateAreas = 44 , eCSSUnit_Pair = 50 , eCSSUnit_Triplet = 51 , eCSSUnit_Rect = 52 , eCSSUnit_List = 53 , eCSSUnit_ListDep = 54 , eCSSUnit_SharedList = 55 , eCSSUnit_PairList = 56 , eCSSUnit_PairListDep = 57 , eCSSUnit_FontFamilyList = 58 , eCSSUnit_AtomIdent = 60 , eCSSUnit_Integer = 70 , eCSSUnit_Enumerated = 71 , eCSSUnit_EnumColor = 80 , eCSSUnit_RGBColor = 81 , eCSSUnit_RGBAColor = 82 , eCSSUnit_HexColor = 83 , eCSSUnit_ShortHexColor = 84 , eCSSUnit_HexColorAlpha = 85 , eCSSUnit_ShortHexColorAlpha = 86 , eCSSUnit_PercentageRGBColor = 87 , eCSSUnit_PercentageRGBAColor = 88 , eCSSUnit_HSLColor = 89 , eCSSUnit_HSLAColor = 90 , eCSSUnit_ComplexColor = 91 , eCSSUnit_Percent = 100 , eCSSUnit_Number = 101 , eCSSUnit_ViewportWidth = 700 , eCSSUnit_ViewportHeight = 701 , eCSSUnit_ViewportMin = 702 , eCSSUnit_ViewportMax = 703 , eCSSUnit_EM = 800 , eCSSUnit_XHeight = 801 , eCSSUnit_Char = 802 , eCSSUnit_RootEM = 803 , eCSSUnit_Point = 900 , eCSSUnit_Inch = 901 , eCSSUnit_Millimeter = 902 , eCSSUnit_Centimeter = 903 , eCSSUnit_Pica = 904 , eCSSUnit_Quarter = 905 , eCSSUnit_Pixel = 906 , eCSSUnit_Degree = 1000 , eCSSUnit_Grad = 1001 , eCSSUnit_Radian = 1002 , eCSSUnit_Turn = 1003 , eCSSUnit_Hertz = 2000 , eCSSUnit_Kilohertz = 2001 , eCSSUnit_Seconds = 3000 , eCSSUnit_Milliseconds = 3001 , eCSSUnit_FlexFraction = 4000 , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValue { pub mUnit : root :: nsCSSUnit , pub mValue : root :: nsCSSValue__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsCSSValue__bindgen_ty_1 { pub mInt : root :: __BindgenUnionField < i32 > , pub mFloat : root :: __BindgenUnionField < f32 > , pub mString : root :: __BindgenUnionField < * mut root :: nsStringBuffer > , pub mColor : root :: __BindgenUnionField < root :: nscolor > , pub mAtom : root :: __BindgenUnionField < * mut root :: nsAtom > , pub mArray : root :: __BindgenUnionField < * mut root :: nsCSSValue_Array > , pub mURL : root :: __BindgenUnionField < * mut root :: mozilla :: css :: URLValue > , pub mImage : root :: __BindgenUnionField < * mut root :: mozilla :: css :: ImageValue > , pub mGridTemplateAreas : root :: __BindgenUnionField < * mut root :: mozilla :: css :: GridTemplateAreasValue > , pub mGradient : root :: __BindgenUnionField < * mut root :: nsCSSValueGradient > , pub mTokenStream : root :: __BindgenUnionField < * mut root :: nsCSSValueTokenStream > , pub mPair : root :: __BindgenUnionField < * mut root :: nsCSSValuePair_heap > , pub mRect : root :: __BindgenUnionField < * mut root :: nsCSSRect_heap > , pub mTriplet : root :: __BindgenUnionField < * mut root :: nsCSSValueTriplet_heap > , pub mList : root :: __BindgenUnionField < * mut root :: nsCSSValueList_heap > , pub mListDependent : root :: __BindgenUnionField < * mut root :: nsCSSValueList > , pub mSharedList : root :: __BindgenUnionField < * mut root :: nsCSSValueSharedList > , pub mPairList : root :: __BindgenUnionField < * mut root :: nsCSSValuePairList_heap > , pub mPairListDependent : root :: __BindgenUnionField < * mut root :: nsCSSValuePairList > , pub mFloatColor : root :: __BindgenUnionField < * mut root :: nsCSSValueFloatColor > , pub mFontFamilyList : root :: __BindgenUnionField < * mut root :: mozilla :: SharedFontList > , pub mComplexColor : root :: __BindgenUnionField < * mut root :: mozilla :: css :: ComplexColorValue > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsCSSValue__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValue__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValue__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValue__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mInt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mInt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mFloat as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mFloat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mAtom as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mAtom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mArray as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mArray ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mURL as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mURL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mImage as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mGridTemplateAreas as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mGridTemplateAreas ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mGradient as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mGradient ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mTokenStream as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mTokenStream ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mPair as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mPair ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mRect as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mRect ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mTriplet as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mTriplet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mListDependent as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mListDependent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mSharedList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mSharedList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mPairList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mPairList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mPairListDependent as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mPairListDependent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mFloatColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mFloatColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mFontFamilyList as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mFontFamilyList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mComplexColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mComplexColor ) ) ) ; } impl Clone for nsCSSValue__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsCSSValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValue > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsCSSValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue ) ) . mUnit as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue ) , "::" , stringify ! ( mUnit ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValue_Array { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mCount : usize , pub mArray : [ root :: nsCSSValue ; 1usize ] , } pub type nsCSSValue_Array_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsCSSValue_Array ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValue_Array > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsCSSValue_Array ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValue_Array > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValue_Array ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue_Array ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue_Array ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue_Array ) ) . mCount as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue_Array ) , "::" , stringify ! ( mCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValue_Array ) ) . mArray as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValue_Array ) , "::" , stringify ! ( mArray ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueList { pub mValue : root :: nsCSSValue , pub mNext : * mut root :: nsCSSValueList , } # [ test ] fn bindgen_test_layout_nsCSSValueList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueList > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueList ) ) . mValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueList ) , "::" , stringify ! ( mValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueList ) ) . mNext as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueList ) , "::" , stringify ! ( mNext ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueList_heap { pub _base : root :: nsCSSValueList , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsCSSValueList_heap_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValueList_heap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueList_heap > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueList_heap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueList_heap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueList_heap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueList_heap ) ) . mRefCnt as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueList_heap ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueSharedList { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mHead : * mut root :: nsCSSValueList , } pub type nsCSSValueSharedList_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsCSSValueSharedList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueSharedList > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueSharedList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueSharedList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueSharedList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueSharedList ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueSharedList ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueSharedList ) ) . mHead as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueSharedList ) , "::" , stringify ! ( mHead ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSRect { pub mTop : root :: nsCSSValue , pub mRight : root :: nsCSSValue , pub mBottom : root :: nsCSSValue , pub mLeft : root :: nsCSSValue , } pub type nsCSSRect_side_type = * mut root :: nsCSSValue ; extern "C" {
- # [ link_name = "\u{1}_ZN9nsCSSRect5sidesE" ]
- pub static mut nsCSSRect_sides : [ root :: nsCSSRect_side_type ; 4usize ] ;
-} # [ test ] fn bindgen_test_layout_nsCSSRect ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSRect > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( nsCSSRect ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSRect > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSRect ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSRect ) ) . mTop as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSRect ) , "::" , stringify ! ( mTop ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSRect ) ) . mRight as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSRect ) , "::" , stringify ! ( mRight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSRect ) ) . mBottom as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSRect ) , "::" , stringify ! ( mBottom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSRect ) ) . mLeft as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSRect ) , "::" , stringify ! ( mLeft ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSRect_heap { pub _base : root :: nsCSSRect , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsCSSRect_heap_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSRect_heap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSRect_heap > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( nsCSSRect_heap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSRect_heap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSRect_heap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSRect_heap ) ) . mRefCnt as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSRect_heap ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValuePair { pub mXValue : root :: nsCSSValue , pub mYValue : root :: nsCSSValue , } # [ test ] fn bindgen_test_layout_nsCSSValuePair ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValuePair > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsCSSValuePair ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValuePair > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValuePair ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePair ) ) . mXValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePair ) , "::" , stringify ! ( mXValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePair ) ) . mYValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePair ) , "::" , stringify ! ( mYValue ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValuePair_heap { pub _base : root :: nsCSSValuePair , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsCSSValuePair_heap_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValuePair_heap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValuePair_heap > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsCSSValuePair_heap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValuePair_heap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValuePair_heap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePair_heap ) ) . mRefCnt as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePair_heap ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueTriplet { pub mXValue : root :: nsCSSValue , pub mYValue : root :: nsCSSValue , pub mZValue : root :: nsCSSValue , } # [ test ] fn bindgen_test_layout_nsCSSValueTriplet ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueTriplet > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueTriplet ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueTriplet > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueTriplet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTriplet ) ) . mXValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTriplet ) , "::" , stringify ! ( mXValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTriplet ) ) . mYValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTriplet ) , "::" , stringify ! ( mYValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTriplet ) ) . mZValue as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTriplet ) , "::" , stringify ! ( mZValue ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueTriplet_heap { pub _base : root :: nsCSSValueTriplet , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsCSSValueTriplet_heap_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValueTriplet_heap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueTriplet_heap > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueTriplet_heap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueTriplet_heap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueTriplet_heap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTriplet_heap ) ) . mRefCnt as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTriplet_heap ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValuePairList { pub mXValue : root :: nsCSSValue , pub mYValue : root :: nsCSSValue , pub mNext : * mut root :: nsCSSValuePairList , } # [ test ] fn bindgen_test_layout_nsCSSValuePairList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValuePairList > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsCSSValuePairList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValuePairList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValuePairList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePairList ) ) . mXValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePairList ) , "::" , stringify ! ( mXValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePairList ) ) . mYValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePairList ) , "::" , stringify ! ( mYValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePairList ) ) . mNext as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePairList ) , "::" , stringify ! ( mNext ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValuePairList_heap { pub _base : root :: nsCSSValuePairList , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsCSSValuePairList_heap_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValuePairList_heap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValuePairList_heap > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( nsCSSValuePairList_heap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValuePairList_heap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValuePairList_heap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValuePairList_heap ) ) . mRefCnt as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValuePairList_heap ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueGradientStop { pub mLocation : root :: nsCSSValue , pub mColor : root :: nsCSSValue , pub mIsInterpolationHint : bool , } # [ test ] fn bindgen_test_layout_nsCSSValueGradientStop ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueGradientStop > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueGradientStop ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueGradientStop > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueGradientStop ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradientStop ) ) . mLocation as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradientStop ) , "::" , stringify ! ( mLocation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradientStop ) ) . mColor as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradientStop ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradientStop ) ) . mIsInterpolationHint as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradientStop ) , "::" , stringify ! ( mIsInterpolationHint ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueGradient { pub mIsRadial : bool , pub mIsRepeating : bool , pub mIsLegacySyntax : bool , pub mIsMozLegacySyntax : bool , pub mIsExplicitSize : bool , pub mBgPos : root :: nsCSSValuePair , pub mAngle : root :: nsCSSValue , pub mRadialValues : [ root :: nsCSSValue ; 2usize ] , pub mStops : root :: nsTArray < root :: nsCSSValueGradientStop > , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsCSSValueGradient_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValueGradient ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueGradient > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueGradient ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueGradient > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueGradient ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mIsRadial as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mIsRadial ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mIsRepeating as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mIsRepeating ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mIsLegacySyntax as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mIsLegacySyntax ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mIsMozLegacySyntax as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mIsMozLegacySyntax ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mIsExplicitSize as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mIsExplicitSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mBgPos as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mBgPos ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mAngle as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mAngle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mRadialValues as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mRadialValues ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mStops as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mStops ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueGradient ) ) . mRefCnt as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueGradient ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] pub struct nsCSSValueTokenStream { pub mRefCnt : root :: nsAutoRefCnt , pub mPropertyID : root :: nsCSSPropertyID , pub mShorthandPropertyID : root :: nsCSSPropertyID , pub mTokenStream : ::nsstring::nsStringRepr , pub mBaseURI : root :: nsCOMPtr , pub mSheetURI : root :: nsCOMPtr , pub mSheetPrincipal : root :: nsCOMPtr , pub mLineNumber : u32 , pub mLineOffset : u32 , pub mLevel : root :: mozilla :: SheetType , } pub type nsCSSValueTokenStream_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValueTokenStream ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueTokenStream > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueTokenStream ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueTokenStream > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueTokenStream ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mPropertyID as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mPropertyID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mShorthandPropertyID as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mShorthandPropertyID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mTokenStream as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mTokenStream ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mBaseURI as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mBaseURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mSheetURI as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mSheetURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mSheetPrincipal as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mSheetPrincipal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mLineNumber as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mLineNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mLineOffset as * const _ as usize } , 60usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mLineOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueTokenStream ) ) . mLevel as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueTokenStream ) , "::" , stringify ! ( mLevel ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSValueFloatColor { pub mRefCnt : root :: nsAutoRefCnt , pub mComponent1 : f32 , pub mComponent2 : f32 , pub mComponent3 : f32 , pub mAlpha : f32 , } pub type nsCSSValueFloatColor_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsCSSValueFloatColor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSValueFloatColor > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsCSSValueFloatColor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSValueFloatColor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSValueFloatColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueFloatColor ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueFloatColor ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueFloatColor ) ) . mComponent1 as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueFloatColor ) , "::" , stringify ! ( mComponent1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueFloatColor ) ) . mComponent2 as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueFloatColor ) , "::" , stringify ! ( mComponent2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueFloatColor ) ) . mComponent3 as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueFloatColor ) , "::" , stringify ! ( mComponent3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSValueFloatColor ) ) . mAlpha as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSValueFloatColor ) , "::" , stringify ! ( mAlpha ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct imgIContainer { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct imgIRequest { pub _base : root :: nsIRequest , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct imgIRequest_COMTypeInfo { pub _address : u8 , } pub const imgIRequest_STATUS_NONE : root :: imgIRequest__bindgen_ty_1 = 0 ; pub const imgIRequest_STATUS_SIZE_AVAILABLE : root :: imgIRequest__bindgen_ty_1 = 1 ; pub const imgIRequest_STATUS_LOAD_COMPLETE : root :: imgIRequest__bindgen_ty_1 = 2 ; pub const imgIRequest_STATUS_ERROR : root :: imgIRequest__bindgen_ty_1 = 4 ; pub const imgIRequest_STATUS_FRAME_COMPLETE : root :: imgIRequest__bindgen_ty_1 = 8 ; pub const imgIRequest_STATUS_DECODE_COMPLETE : root :: imgIRequest__bindgen_ty_1 = 16 ; pub const imgIRequest_STATUS_IS_ANIMATED : root :: imgIRequest__bindgen_ty_1 = 32 ; pub const imgIRequest_STATUS_HAS_TRANSPARENCY : root :: imgIRequest__bindgen_ty_1 = 64 ; pub type imgIRequest__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; pub const imgIRequest_CORS_NONE : root :: imgIRequest__bindgen_ty_2 = 1 ; pub const imgIRequest_CORS_ANONYMOUS : root :: imgIRequest__bindgen_ty_2 = 2 ; pub const imgIRequest_CORS_USE_CREDENTIALS : root :: imgIRequest__bindgen_ty_2 = 3 ; pub type imgIRequest__bindgen_ty_2 = :: std :: os :: raw :: c_uint ; pub const imgIRequest_CATEGORY_FRAME_INIT : root :: imgIRequest__bindgen_ty_3 = 1 ; pub const imgIRequest_CATEGORY_SIZE_QUERY : root :: imgIRequest__bindgen_ty_3 = 2 ; pub const imgIRequest_CATEGORY_DISPLAY : root :: imgIRequest__bindgen_ty_3 = 4 ; pub type imgIRequest__bindgen_ty_3 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_imgIRequest ( ) { assert_eq ! ( :: std :: mem :: size_of :: < imgIRequest > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( imgIRequest ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < imgIRequest > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( imgIRequest ) ) ) ; } impl Clone for imgIRequest { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsISecurityInfoProvider { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsISecurityInfoProvider_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsISecurityInfoProvider ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsISecurityInfoProvider > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsISecurityInfoProvider ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsISecurityInfoProvider > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsISecurityInfoProvider ) ) ) ; } impl Clone for nsISecurityInfoProvider { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsISupportsPriority { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsISupportsPriority_COMTypeInfo { pub _address : u8 , } pub const nsISupportsPriority_PRIORITY_HIGHEST : root :: nsISupportsPriority__bindgen_ty_1 = -20 ; pub const nsISupportsPriority_PRIORITY_HIGH : root :: nsISupportsPriority__bindgen_ty_1 = -10 ; pub const nsISupportsPriority_PRIORITY_NORMAL : root :: nsISupportsPriority__bindgen_ty_1 = 0 ; pub const nsISupportsPriority_PRIORITY_LOW : root :: nsISupportsPriority__bindgen_ty_1 = 10 ; pub const nsISupportsPriority_PRIORITY_LOWEST : root :: nsISupportsPriority__bindgen_ty_1 = 20 ; pub type nsISupportsPriority__bindgen_ty_1 = :: std :: os :: raw :: c_int ; # [ test ] fn bindgen_test_layout_nsISupportsPriority ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsISupportsPriority > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsISupportsPriority ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsISupportsPriority > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsISupportsPriority ) ) ) ; } impl Clone for nsISupportsPriority { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsITimedChannel { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsITimedChannel_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsITimedChannel ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsITimedChannel > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsITimedChannel ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsITimedChannel > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsITimedChannel ) ) ) ; } impl Clone for nsITimedChannel { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIInterfaceRequestor { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIInterfaceRequestor_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIInterfaceRequestor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIInterfaceRequestor > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIInterfaceRequestor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIInterfaceRequestor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIInterfaceRequestor ) ) ) ; } impl Clone for nsIInterfaceRequestor { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct ProxyBehaviour { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct imgRequestProxy { pub _base : root :: imgIRequest , pub _base_1 : root :: mozilla :: image :: IProgressObserver , pub _base_2 : root :: nsISupportsPriority , pub _base_3 : root :: nsISecurityInfoProvider , pub _base_4 : root :: nsITimedChannel , pub mRefCnt : root :: nsAutoRefCnt , pub mBehaviour : root :: mozilla :: UniquePtr < root :: ProxyBehaviour > , pub mURI : root :: RefPtr < root :: imgRequestProxy_ImageURL > , pub mListener : * mut root :: imgINotificationObserver , pub mLoadGroup : root :: nsCOMPtr , pub mTabGroup : root :: RefPtr < root :: mozilla :: dom :: TabGroup > , pub mEventTarget : root :: nsCOMPtr , pub mLoadFlags : root :: nsLoadFlags , pub mLockCount : u32 , pub mAnimationConsumers : u32 , pub _bitfield_1 : u8 , pub __bindgen_padding_0 : [ u8 ; 3usize ] , } pub type imgRequestProxy_Image = root :: mozilla :: image :: Image ; pub type imgRequestProxy_ImageURL = root :: mozilla :: image :: ImageURL ; pub type imgRequestProxy_ProgressTracker = root :: mozilla :: image :: ProgressTracker ; pub type imgRequestProxy_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct imgRequestProxy_imgCancelRunnable { pub _base : root :: mozilla :: Runnable , pub mOwner : root :: RefPtr < root :: imgRequestProxy > , pub mStatus : root :: nsresult , } # [ test ] fn bindgen_test_layout_imgRequestProxy_imgCancelRunnable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < imgRequestProxy_imgCancelRunnable > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( imgRequestProxy_imgCancelRunnable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < imgRequestProxy_imgCancelRunnable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( imgRequestProxy_imgCancelRunnable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const imgRequestProxy_imgCancelRunnable ) ) . mOwner as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( imgRequestProxy_imgCancelRunnable ) , "::" , stringify ! ( mOwner ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const imgRequestProxy_imgCancelRunnable ) ) . mStatus as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( imgRequestProxy_imgCancelRunnable ) , "::" , stringify ! ( mStatus ) ) ) ; } # [ test ] fn bindgen_test_layout_imgRequestProxy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < imgRequestProxy > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( imgRequestProxy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < imgRequestProxy > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( imgRequestProxy ) ) ) ; } impl imgRequestProxy { # [ inline ] pub fn mCanceled ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x1 as u8 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mCanceled ( & mut self , val : bool ) { let mask = 0x1 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mIsInLoadGroup ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x2 as u8 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsInLoadGroup ( & mut self , val : bool ) { let mask = 0x2 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mForceDispatchLoadGroup ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x4 as u8 ; let val = ( unit_field_val & mask ) >> 2usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mForceDispatchLoadGroup ( & mut self , val : bool ) { let mask = 0x4 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 2usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mListenerIsStrongRef ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x8 as u8 ; let val = ( unit_field_val & mask ) >> 3usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mListenerIsStrongRef ( & mut self , val : bool ) { let mask = 0x8 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 3usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mDecodeRequested ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x10 as u8 ; let val = ( unit_field_val & mask ) >> 4usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mDecodeRequested ( & mut self , val : bool ) { let mask = 0x10 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 4usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mDeferNotifications ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x20 as u8 ; let val = ( unit_field_val & mask ) >> 5usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mDeferNotifications ( & mut self , val : bool ) { let mask = 0x20 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 5usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mHadListener ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x40 as u8 ; let val = ( unit_field_val & mask ) >> 6usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHadListener ( & mut self , val : bool ) { let mask = 0x40 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 6usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mHadDispatch ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x80 as u8 ; let val = ( unit_field_val & mask ) >> 7usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mHadDispatch ( & mut self , val : bool ) { let mask = 0x80 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 7usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mCanceled : bool , mIsInLoadGroup : bool , mForceDispatchLoadGroup : bool , mListenerIsStrongRef : bool , mDecodeRequested : bool , mDeferNotifications : bool , mHadListener : bool , mHadDispatch : bool ) -> u8 { ( ( ( ( ( ( ( ( 0 | ( ( mCanceled as u8 as u8 ) << 0usize ) & ( 0x1 as u8 ) ) | ( ( mIsInLoadGroup as u8 as u8 ) << 1usize ) & ( 0x2 as u8 ) ) | ( ( mForceDispatchLoadGroup as u8 as u8 ) << 2usize ) & ( 0x4 as u8 ) ) | ( ( mListenerIsStrongRef as u8 as u8 ) << 3usize ) & ( 0x8 as u8 ) ) | ( ( mDecodeRequested as u8 as u8 ) << 4usize ) & ( 0x10 as u8 ) ) | ( ( mDeferNotifications as u8 as u8 ) << 5usize ) & ( 0x20 as u8 ) ) | ( ( mHadListener as u8 as u8 ) << 6usize ) & ( 0x40 as u8 ) ) | ( ( mHadDispatch as u8 as u8 ) << 7usize ) & ( 0x80 as u8 ) ) } } # [ repr ( C ) ] pub struct nsStyleFont { pub mFont : root :: nsFont , pub mSize : root :: nscoord , pub mFontSizeFactor : f32 , pub mFontSizeOffset : root :: nscoord , pub mFontSizeKeyword : u8 , pub mGenericID : u8 , pub mScriptLevel : i8 , pub mMathVariant : u8 , pub mMathDisplay : u8 , pub mMinFontSizeRatio : u8 , pub mExplicitLanguage : bool , pub mAllowZoom : bool , pub mScriptUnconstrainedSize : root :: nscoord , pub mScriptMinSize : root :: nscoord , pub mScriptSizeMultiplier : f32 , pub mLanguage : root :: RefPtr < root :: nsAtom > , } pub const nsStyleFont_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleFont ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleFont > ( ) , 136usize , concat ! ( "Size of: " , stringify ! ( nsStyleFont ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleFont > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mFont as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mFont ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mSize as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mFontSizeFactor as * const _ as usize } , 100usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mFontSizeFactor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mFontSizeOffset as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mFontSizeOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mFontSizeKeyword as * const _ as usize } , 108usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mFontSizeKeyword ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mGenericID as * const _ as usize } , 109usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mGenericID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mScriptLevel as * const _ as usize } , 110usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mScriptLevel ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mMathVariant as * const _ as usize } , 111usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mMathVariant ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mMathDisplay as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mMathDisplay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mMinFontSizeRatio as * const _ as usize } , 113usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mMinFontSizeRatio ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mExplicitLanguage as * const _ as usize } , 114usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mExplicitLanguage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mAllowZoom as * const _ as usize } , 115usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mAllowZoom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mScriptUnconstrainedSize as * const _ as usize } , 116usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mScriptUnconstrainedSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mScriptMinSize as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mScriptMinSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mScriptSizeMultiplier as * const _ as usize } , 124usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mScriptSizeMultiplier ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFont ) ) . mLanguage as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFont ) , "::" , stringify ! ( mLanguage ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleGradientStop { pub mLocation : root :: nsStyleCoord , pub mColor : root :: nscolor , pub mIsInterpolationHint : bool , } # [ test ] fn bindgen_test_layout_nsStyleGradientStop ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleGradientStop > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleGradientStop ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleGradientStop > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleGradientStop ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradientStop ) ) . mLocation as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradientStop ) , "::" , stringify ! ( mLocation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradientStop ) ) . mColor as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradientStop ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradientStop ) ) . mIsInterpolationHint as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradientStop ) , "::" , stringify ! ( mIsInterpolationHint ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleGradient { pub mShape : u8 , pub mSize : u8 , pub mRepeating : bool , pub mLegacySyntax : bool , pub mMozLegacySyntax : bool , pub mBgPosX : root :: nsStyleCoord , pub mBgPosY : root :: nsStyleCoord , pub mAngle : root :: nsStyleCoord , pub mRadiusX : root :: nsStyleCoord , pub mRadiusY : root :: nsStyleCoord , pub mStops : root :: nsTArray < root :: nsStyleGradientStop > , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , } pub type nsStyleGradient_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsStyleGradient ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleGradient > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( nsStyleGradient ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleGradient > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleGradient ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mShape as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mShape ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mSize as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mRepeating as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mRepeating ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mLegacySyntax as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mLegacySyntax ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mMozLegacySyntax as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mMozLegacySyntax ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mBgPosX as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mBgPosX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mBgPosY as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mBgPosY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mAngle as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mAngle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mRadiusX as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mRadiusX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mRadiusY as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mRadiusY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mStops as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mStops ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGradient ) ) . mRefCnt as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGradient ) , "::" , stringify ! ( mRefCnt ) ) ) ; }
- /// A wrapper for an imgRequestProxy that supports off-main-thread creation
+ /// an nsMainThreadPtrHandle<T> rather than an nsCOMPtr<T>.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsMainThreadPtrHolder<T> {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mRawPtr: *mut T,
+ pub mStrict: bool,
+ pub mMainThreadEventTarget: root::nsCOMPtr,
+ pub mName: *const ::std::os::raw::c_char,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ pub type nsMainThreadPtrHolder_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsMainThreadPtrHandle<T> {
+ pub mPtr: root::RefPtr<root::nsMainThreadPtrHolder<T>>,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsCSSUnit {
+ eCSSUnit_Null = 0,
+ eCSSUnit_Auto = 1,
+ eCSSUnit_Inherit = 2,
+ eCSSUnit_Initial = 3,
+ eCSSUnit_Unset = 4,
+ eCSSUnit_None = 5,
+ eCSSUnit_Normal = 6,
+ eCSSUnit_System_Font = 7,
+ eCSSUnit_All = 8,
+ eCSSUnit_Dummy = 9,
+ eCSSUnit_DummyInherit = 10,
+ eCSSUnit_String = 11,
+ eCSSUnit_Ident = 12,
+ eCSSUnit_Attr = 14,
+ eCSSUnit_Local_Font = 15,
+ eCSSUnit_Font_Format = 16,
+ eCSSUnit_Element = 17,
+ eCSSUnit_Array = 20,
+ eCSSUnit_Counter = 21,
+ eCSSUnit_Counters = 22,
+ eCSSUnit_Cubic_Bezier = 23,
+ eCSSUnit_Steps = 24,
+ eCSSUnit_Symbols = 25,
+ eCSSUnit_Function = 26,
+ eCSSUnit_Calc = 30,
+ eCSSUnit_Calc_Plus = 31,
+ eCSSUnit_Calc_Minus = 32,
+ eCSSUnit_Calc_Times_L = 33,
+ eCSSUnit_Calc_Times_R = 34,
+ eCSSUnit_Calc_Divided = 35,
+ eCSSUnit_URL = 40,
+ eCSSUnit_Image = 41,
+ eCSSUnit_Gradient = 42,
+ eCSSUnit_TokenStream = 43,
+ eCSSUnit_GridTemplateAreas = 44,
+ eCSSUnit_Pair = 50,
+ eCSSUnit_Triplet = 51,
+ eCSSUnit_Rect = 52,
+ eCSSUnit_List = 53,
+ eCSSUnit_ListDep = 54,
+ eCSSUnit_SharedList = 55,
+ eCSSUnit_PairList = 56,
+ eCSSUnit_PairListDep = 57,
+ eCSSUnit_FontFamilyList = 58,
+ eCSSUnit_AtomIdent = 60,
+ eCSSUnit_Integer = 70,
+ eCSSUnit_Enumerated = 71,
+ eCSSUnit_EnumColor = 80,
+ eCSSUnit_RGBColor = 81,
+ eCSSUnit_RGBAColor = 82,
+ eCSSUnit_HexColor = 83,
+ eCSSUnit_ShortHexColor = 84,
+ eCSSUnit_HexColorAlpha = 85,
+ eCSSUnit_ShortHexColorAlpha = 86,
+ eCSSUnit_PercentageRGBColor = 87,
+ eCSSUnit_PercentageRGBAColor = 88,
+ eCSSUnit_HSLColor = 89,
+ eCSSUnit_HSLAColor = 90,
+ eCSSUnit_ComplexColor = 91,
+ eCSSUnit_Percent = 100,
+ eCSSUnit_Number = 101,
+ eCSSUnit_ViewportWidth = 700,
+ eCSSUnit_ViewportHeight = 701,
+ eCSSUnit_ViewportMin = 702,
+ eCSSUnit_ViewportMax = 703,
+ eCSSUnit_EM = 800,
+ eCSSUnit_XHeight = 801,
+ eCSSUnit_Char = 802,
+ eCSSUnit_RootEM = 803,
+ eCSSUnit_Point = 900,
+ eCSSUnit_Inch = 901,
+ eCSSUnit_Millimeter = 902,
+ eCSSUnit_Centimeter = 903,
+ eCSSUnit_Pica = 904,
+ eCSSUnit_Quarter = 905,
+ eCSSUnit_Pixel = 906,
+ eCSSUnit_Degree = 1000,
+ eCSSUnit_Grad = 1001,
+ eCSSUnit_Radian = 1002,
+ eCSSUnit_Turn = 1003,
+ eCSSUnit_Hertz = 2000,
+ eCSSUnit_Kilohertz = 2001,
+ eCSSUnit_Seconds = 3000,
+ eCSSUnit_Milliseconds = 3001,
+ eCSSUnit_FlexFraction = 4000,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValue {
+ pub mUnit: root::nsCSSUnit,
+ pub mValue: root::nsCSSValue__bindgen_ty_1,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsCSSValue__bindgen_ty_1 {
+ pub mInt: root::__BindgenUnionField<i32>,
+ pub mFloat: root::__BindgenUnionField<f32>,
+ pub mString: root::__BindgenUnionField<*mut root::nsStringBuffer>,
+ pub mColor: root::__BindgenUnionField<root::nscolor>,
+ pub mAtom: root::__BindgenUnionField<*mut root::nsAtom>,
+ pub mArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
+ pub mURL: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>,
+ pub mImage: root::__BindgenUnionField<*mut root::mozilla::css::ImageValue>,
+ pub mGridTemplateAreas:
+ root::__BindgenUnionField<*mut root::mozilla::css::GridTemplateAreasValue>,
+ pub mGradient: root::__BindgenUnionField<*mut root::nsCSSValueGradient>,
+ pub mTokenStream: root::__BindgenUnionField<*mut root::nsCSSValueTokenStream>,
+ pub mPair: root::__BindgenUnionField<*mut root::nsCSSValuePair_heap>,
+ pub mRect: root::__BindgenUnionField<*mut root::nsCSSRect_heap>,
+ pub mTriplet: root::__BindgenUnionField<*mut root::nsCSSValueTriplet_heap>,
+ pub mList: root::__BindgenUnionField<*mut root::nsCSSValueList_heap>,
+ pub mListDependent: root::__BindgenUnionField<*mut root::nsCSSValueList>,
+ pub mSharedList: root::__BindgenUnionField<*mut root::nsCSSValueSharedList>,
+ pub mPairList: root::__BindgenUnionField<*mut root::nsCSSValuePairList_heap>,
+ pub mPairListDependent: root::__BindgenUnionField<*mut root::nsCSSValuePairList>,
+ pub mFloatColor: root::__BindgenUnionField<*mut root::nsCSSValueFloatColor>,
+ pub mFontFamilyList: root::__BindgenUnionField<*mut root::mozilla::SharedFontList>,
+ pub mComplexColor: root::__BindgenUnionField<*mut root::mozilla::css::ComplexColorValue>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValue__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValue__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsCSSValue__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValue__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValue__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mInt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mInt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mFloat as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mFloat)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mString as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mColor as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mAtom as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mAtom)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mArray as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mArray)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mURL as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mURL)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mImage as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mGridTemplateAreas as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mGridTemplateAreas)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mGradient as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mGradient)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mTokenStream as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mTokenStream)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mPair as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mPair)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mRect as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mRect)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mTriplet as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mTriplet)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mListDependent as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mListDependent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mSharedList as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mSharedList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mPairList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mPairList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mPairListDependent as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mPairListDependent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mFloatColor as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mFloatColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mFontFamilyList as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mFontFamilyList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValue__bindgen_ty_1>())).mComplexColor as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue__bindgen_ty_1),
+ "::",
+ stringify!(mComplexColor)
+ )
+ );
+ }
+ impl Clone for nsCSSValue__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValue() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValue>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsCSSValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValue))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValue>())).mUnit as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue),
+ "::",
+ stringify!(mUnit)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValue>())).mValue as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValue_Array {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mCount: usize,
+ pub mArray: [root::nsCSSValue; 1usize],
+ }
+ pub type nsCSSValue_Array_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValue_Array() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValue_Array>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsCSSValue_Array))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValue_Array>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValue_Array))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValue_Array>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue_Array),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValue_Array>())).mCount as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue_Array),
+ "::",
+ stringify!(mCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValue_Array>())).mArray as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValue_Array),
+ "::",
+ stringify!(mArray)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueList {
+ pub mValue: root::nsCSSValue,
+ pub mNext: *mut root::nsCSSValueList,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValueList() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueList>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsCSSValueList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueList))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueList>())).mValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueList),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueList>())).mNext as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueList),
+ "::",
+ stringify!(mNext)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueList_heap {
+ pub _base: root::nsCSSValueList,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsCSSValueList_heap_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValueList_heap() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueList_heap>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsCSSValueList_heap))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueList_heap>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueList_heap))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueList_heap>())).mRefCnt as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueList_heap),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueSharedList {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mHead: *mut root::nsCSSValueList,
+ }
+ pub type nsCSSValueSharedList_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValueSharedList() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueSharedList>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsCSSValueSharedList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueSharedList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueSharedList))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueSharedList>())).mRefCnt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueSharedList),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueSharedList>())).mHead as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueSharedList),
+ "::",
+ stringify!(mHead)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSRect {
+ pub mTop: root::nsCSSValue,
+ pub mRight: root::nsCSSValue,
+ pub mBottom: root::nsCSSValue,
+ pub mLeft: root::nsCSSValue,
+ }
+ pub type nsCSSRect_side_type = *mut root::nsCSSValue;
+ extern "C" {
+ #[link_name = "\u{1}_ZN9nsCSSRect5sidesE"]
+ pub static mut nsCSSRect_sides: [root::nsCSSRect_side_type; 4usize];
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSRect() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSRect>(),
+ 64usize,
+ concat!("Size of: ", stringify!(nsCSSRect))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSRect>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSRect))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSRect>())).mTop as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSRect),
+ "::",
+ stringify!(mTop)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSRect>())).mRight as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSRect),
+ "::",
+ stringify!(mRight)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSRect>())).mBottom as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSRect),
+ "::",
+ stringify!(mBottom)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSRect>())).mLeft as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSRect),
+ "::",
+ stringify!(mLeft)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSRect_heap {
+ pub _base: root::nsCSSRect,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsCSSRect_heap_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSRect_heap() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSRect_heap>(),
+ 72usize,
+ concat!("Size of: ", stringify!(nsCSSRect_heap))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSRect_heap>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSRect_heap))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSRect_heap>())).mRefCnt as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSRect_heap),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValuePair {
+ pub mXValue: root::nsCSSValue,
+ pub mYValue: root::nsCSSValue,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValuePair() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValuePair>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsCSSValuePair))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValuePair>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValuePair))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValuePair>())).mXValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePair),
+ "::",
+ stringify!(mXValue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValuePair>())).mYValue as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePair),
+ "::",
+ stringify!(mYValue)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValuePair_heap {
+ pub _base: root::nsCSSValuePair,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsCSSValuePair_heap_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValuePair_heap() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValuePair_heap>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsCSSValuePair_heap))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValuePair_heap>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValuePair_heap))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValuePair_heap>())).mRefCnt as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePair_heap),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueTriplet {
+ pub mXValue: root::nsCSSValue,
+ pub mYValue: root::nsCSSValue,
+ pub mZValue: root::nsCSSValue,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValueTriplet() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueTriplet>(),
+ 48usize,
+ concat!("Size of: ", stringify!(nsCSSValueTriplet))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueTriplet>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueTriplet))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueTriplet>())).mXValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTriplet),
+ "::",
+ stringify!(mXValue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueTriplet>())).mYValue as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTriplet),
+ "::",
+ stringify!(mYValue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueTriplet>())).mZValue as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTriplet),
+ "::",
+ stringify!(mZValue)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueTriplet_heap {
+ pub _base: root::nsCSSValueTriplet,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsCSSValueTriplet_heap_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValueTriplet_heap() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueTriplet_heap>(),
+ 56usize,
+ concat!("Size of: ", stringify!(nsCSSValueTriplet_heap))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueTriplet_heap>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueTriplet_heap))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTriplet_heap>())).mRefCnt as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTriplet_heap),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValuePairList {
+ pub mXValue: root::nsCSSValue,
+ pub mYValue: root::nsCSSValue,
+ pub mNext: *mut root::nsCSSValuePairList,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValuePairList() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValuePairList>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsCSSValuePairList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValuePairList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValuePairList))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValuePairList>())).mXValue as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePairList),
+ "::",
+ stringify!(mXValue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValuePairList>())).mYValue as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePairList),
+ "::",
+ stringify!(mYValue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValuePairList>())).mNext as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePairList),
+ "::",
+ stringify!(mNext)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValuePairList_heap {
+ pub _base: root::nsCSSValuePairList,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsCSSValuePairList_heap_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValuePairList_heap() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValuePairList_heap>(),
+ 48usize,
+ concat!("Size of: ", stringify!(nsCSSValuePairList_heap))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValuePairList_heap>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValuePairList_heap))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValuePairList_heap>())).mRefCnt as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValuePairList_heap),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueGradientStop {
+ pub mLocation: root::nsCSSValue,
+ pub mColor: root::nsCSSValue,
+ pub mIsInterpolationHint: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSValueGradientStop() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueGradientStop>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsCSSValueGradientStop))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueGradientStop>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueGradientStop))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradientStop>())).mLocation as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradientStop),
+ "::",
+ stringify!(mLocation)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradientStop>())).mColor as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradientStop),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradientStop>())).mIsInterpolationHint as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradientStop),
+ "::",
+ stringify!(mIsInterpolationHint)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueGradient {
+ pub mIsRadial: bool,
+ pub mIsRepeating: bool,
+ pub mIsLegacySyntax: bool,
+ pub mIsMozLegacySyntax: bool,
+ pub mIsExplicitSize: bool,
+ pub mBgPos: root::nsCSSValuePair,
+ pub mAngle: root::nsCSSValue,
+ pub mRadialValues: [root::nsCSSValue; 2usize],
+ pub mStops: root::nsTArray<root::nsCSSValueGradientStop>,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsCSSValueGradient_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValueGradient() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueGradient>(),
+ 104usize,
+ concat!("Size of: ", stringify!(nsCSSValueGradient))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueGradient>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueGradient))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradient>())).mIsRadial as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mIsRadial)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradient>())).mIsRepeating as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mIsRepeating)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradient>())).mIsLegacySyntax as *const _ as usize
+ },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mIsLegacySyntax)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradient>())).mIsMozLegacySyntax as *const _
+ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mIsMozLegacySyntax)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradient>())).mIsExplicitSize as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mIsExplicitSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueGradient>())).mBgPos as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mBgPos)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueGradient>())).mAngle as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mAngle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueGradient>())).mRadialValues as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mRadialValues)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueGradient>())).mStops as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mStops)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueGradient>())).mRefCnt as *const _ as usize },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueGradient),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsCSSValueTokenStream {
+ pub mRefCnt: root::nsAutoRefCnt,
+ pub mPropertyID: root::nsCSSPropertyID,
+ pub mShorthandPropertyID: root::nsCSSPropertyID,
+ pub mTokenStream: ::nsstring::nsStringRepr,
+ pub mBaseURI: root::nsCOMPtr,
+ pub mSheetURI: root::nsCOMPtr,
+ pub mSheetPrincipal: root::nsCOMPtr,
+ pub mLineNumber: u32,
+ pub mLineOffset: u32,
+ pub mLevel: root::mozilla::SheetType,
+ }
+ pub type nsCSSValueTokenStream_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValueTokenStream() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueTokenStream>(),
+ 72usize,
+ concat!("Size of: ", stringify!(nsCSSValueTokenStream))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueTokenStream>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueTokenStream))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mRefCnt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mPropertyID as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mPropertyID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mShorthandPropertyID as *const _
+ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mShorthandPropertyID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mTokenStream as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mTokenStream)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mBaseURI as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mBaseURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mSheetURI as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mSheetURI)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mSheetPrincipal as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mSheetPrincipal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mLineNumber as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mLineNumber)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mLineOffset as *const _ as usize
+ },
+ 60usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mLineOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueTokenStream>())).mLevel as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueTokenStream),
+ "::",
+ stringify!(mLevel)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSValueFloatColor {
+ pub mRefCnt: root::nsAutoRefCnt,
+ pub mComponent1: f32,
+ pub mComponent2: f32,
+ pub mComponent3: f32,
+ pub mAlpha: f32,
+ }
+ pub type nsCSSValueFloatColor_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsCSSValueFloatColor() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSValueFloatColor>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsCSSValueFloatColor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSValueFloatColor>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSValueFloatColor))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueFloatColor>())).mRefCnt as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueFloatColor),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueFloatColor>())).mComponent1 as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueFloatColor),
+ "::",
+ stringify!(mComponent1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueFloatColor>())).mComponent2 as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueFloatColor),
+ "::",
+ stringify!(mComponent2)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSValueFloatColor>())).mComponent3 as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueFloatColor),
+ "::",
+ stringify!(mComponent3)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSValueFloatColor>())).mAlpha as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSValueFloatColor),
+ "::",
+ stringify!(mAlpha)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct imgIContainer {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct imgIRequest {
+ pub _base: root::nsIRequest,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct imgIRequest_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const imgIRequest_STATUS_NONE: root::imgIRequest__bindgen_ty_1 = 0;
+ pub const imgIRequest_STATUS_SIZE_AVAILABLE: root::imgIRequest__bindgen_ty_1 = 1;
+ pub const imgIRequest_STATUS_LOAD_COMPLETE: root::imgIRequest__bindgen_ty_1 = 2;
+ pub const imgIRequest_STATUS_ERROR: root::imgIRequest__bindgen_ty_1 = 4;
+ pub const imgIRequest_STATUS_FRAME_COMPLETE: root::imgIRequest__bindgen_ty_1 = 8;
+ pub const imgIRequest_STATUS_DECODE_COMPLETE: root::imgIRequest__bindgen_ty_1 = 16;
+ pub const imgIRequest_STATUS_IS_ANIMATED: root::imgIRequest__bindgen_ty_1 = 32;
+ pub const imgIRequest_STATUS_HAS_TRANSPARENCY: root::imgIRequest__bindgen_ty_1 = 64;
+ pub type imgIRequest__bindgen_ty_1 = u32;
+ pub const imgIRequest_CORS_NONE: root::imgIRequest__bindgen_ty_2 = 1;
+ pub const imgIRequest_CORS_ANONYMOUS: root::imgIRequest__bindgen_ty_2 = 2;
+ pub const imgIRequest_CORS_USE_CREDENTIALS: root::imgIRequest__bindgen_ty_2 = 3;
+ pub type imgIRequest__bindgen_ty_2 = u32;
+ pub const imgIRequest_CATEGORY_FRAME_INIT: root::imgIRequest__bindgen_ty_3 = 1;
+ pub const imgIRequest_CATEGORY_SIZE_QUERY: root::imgIRequest__bindgen_ty_3 = 2;
+ pub const imgIRequest_CATEGORY_DISPLAY: root::imgIRequest__bindgen_ty_3 = 4;
+ pub type imgIRequest__bindgen_ty_3 = u32;
+ #[test]
+ fn bindgen_test_layout_imgIRequest() {
+ assert_eq!(
+ ::std::mem::size_of::<imgIRequest>(),
+ 8usize,
+ concat!("Size of: ", stringify!(imgIRequest))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<imgIRequest>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(imgIRequest))
+ );
+ }
+ impl Clone for imgIRequest {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsISecurityInfoProvider {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsISecurityInfoProvider_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsISecurityInfoProvider() {
+ assert_eq!(
+ ::std::mem::size_of::<nsISecurityInfoProvider>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsISecurityInfoProvider))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsISecurityInfoProvider>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsISecurityInfoProvider))
+ );
+ }
+ impl Clone for nsISecurityInfoProvider {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsISupportsPriority {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsISupportsPriority_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsISupportsPriority_PRIORITY_HIGHEST: root::nsISupportsPriority__bindgen_ty_1 = -20;
+ pub const nsISupportsPriority_PRIORITY_HIGH: root::nsISupportsPriority__bindgen_ty_1 = -10;
+ pub const nsISupportsPriority_PRIORITY_NORMAL: root::nsISupportsPriority__bindgen_ty_1 = 0;
+ pub const nsISupportsPriority_PRIORITY_LOW: root::nsISupportsPriority__bindgen_ty_1 = 10;
+ pub const nsISupportsPriority_PRIORITY_LOWEST: root::nsISupportsPriority__bindgen_ty_1 = 20;
+ pub type nsISupportsPriority__bindgen_ty_1 = i32;
+ #[test]
+ fn bindgen_test_layout_nsISupportsPriority() {
+ assert_eq!(
+ ::std::mem::size_of::<nsISupportsPriority>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsISupportsPriority))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsISupportsPriority>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsISupportsPriority))
+ );
+ }
+ impl Clone for nsISupportsPriority {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsITimedChannel {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsITimedChannel_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsITimedChannel() {
+ assert_eq!(
+ ::std::mem::size_of::<nsITimedChannel>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsITimedChannel))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsITimedChannel>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsITimedChannel))
+ );
+ }
+ impl Clone for nsITimedChannel {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIInterfaceRequestor {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIInterfaceRequestor_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIInterfaceRequestor() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIInterfaceRequestor>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIInterfaceRequestor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIInterfaceRequestor>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIInterfaceRequestor))
+ );
+ }
+ impl Clone for nsIInterfaceRequestor {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct ProxyBehaviour {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct imgRequestProxy {
+ pub _base: root::imgIRequest,
+ pub _base_1: root::mozilla::image::IProgressObserver,
+ pub _base_2: root::nsISupportsPriority,
+ pub _base_3: root::nsISecurityInfoProvider,
+ pub _base_4: root::nsITimedChannel,
+ pub mRefCnt: root::nsAutoRefCnt,
+ pub mBehaviour: root::mozilla::UniquePtr<root::ProxyBehaviour>,
+ pub mURI: root::RefPtr<root::imgRequestProxy_ImageURL>,
+ pub mListener: *mut root::imgINotificationObserver,
+ pub mLoadGroup: root::nsCOMPtr,
+ pub mTabGroup: root::RefPtr<root::mozilla::dom::TabGroup>,
+ pub mEventTarget: root::nsCOMPtr,
+ pub mLoadFlags: root::nsLoadFlags,
+ pub mLockCount: u32,
+ pub mAnimationConsumers: u32,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 1usize], u8>,
+ pub __bindgen_padding_0: [u8; 3usize],
+ }
+ pub type imgRequestProxy_Image = root::mozilla::image::Image;
+ pub type imgRequestProxy_ImageURL = root::mozilla::image::ImageURL;
+ pub type imgRequestProxy_ProgressTracker = root::mozilla::image::ProgressTracker;
+ pub type imgRequestProxy_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct imgRequestProxy_imgCancelRunnable {
+ pub _base: root::mozilla::Runnable,
+ pub mOwner: root::RefPtr<root::imgRequestProxy>,
+ pub mStatus: root::nsresult,
+ }
+ #[test]
+ fn bindgen_test_layout_imgRequestProxy_imgCancelRunnable() {
+ assert_eq!(
+ ::std::mem::size_of::<imgRequestProxy_imgCancelRunnable>(),
+ 48usize,
+ concat!("Size of: ", stringify!(imgRequestProxy_imgCancelRunnable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<imgRequestProxy_imgCancelRunnable>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(imgRequestProxy_imgCancelRunnable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<imgRequestProxy_imgCancelRunnable>())).mOwner as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(imgRequestProxy_imgCancelRunnable),
+ "::",
+ stringify!(mOwner)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<imgRequestProxy_imgCancelRunnable>())).mStatus as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(imgRequestProxy_imgCancelRunnable),
+ "::",
+ stringify!(mStatus)
+ )
+ );
+ }
+ #[test]
+ fn bindgen_test_layout_imgRequestProxy() {
+ assert_eq!(
+ ::std::mem::size_of::<imgRequestProxy>(),
+ 120usize,
+ concat!("Size of: ", stringify!(imgRequestProxy))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<imgRequestProxy>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(imgRequestProxy))
+ );
+ }
+ impl imgRequestProxy {
+ #[inline]
+ pub fn mCanceled(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mCanceled(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsInLoadGroup(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsInLoadGroup(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mForceDispatchLoadGroup(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mForceDispatchLoadGroup(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(2usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mListenerIsStrongRef(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mListenerIsStrongRef(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(3usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDecodeRequested(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mDecodeRequested(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(4usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mDeferNotifications(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mDeferNotifications(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(5usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHadListener(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHadListener(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(6usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mHadDispatch(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mHadDispatch(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(7usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mCanceled: bool,
+ mIsInLoadGroup: bool,
+ mForceDispatchLoadGroup: bool,
+ mListenerIsStrongRef: bool,
+ mDecodeRequested: bool,
+ mDeferNotifications: bool,
+ mHadListener: bool,
+ mHadDispatch: bool,
+ ) -> root::__BindgenBitfieldUnit<[u8; 1usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 1usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mCanceled: u8 = unsafe { ::std::mem::transmute(mCanceled) };
+ mCanceled as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mIsInLoadGroup: u8 = unsafe { ::std::mem::transmute(mIsInLoadGroup) };
+ mIsInLoadGroup as u64
+ });
+ __bindgen_bitfield_unit.set(2usize, 1u8, {
+ let mForceDispatchLoadGroup: u8 =
+ unsafe { ::std::mem::transmute(mForceDispatchLoadGroup) };
+ mForceDispatchLoadGroup as u64
+ });
+ __bindgen_bitfield_unit.set(3usize, 1u8, {
+ let mListenerIsStrongRef: u8 =
+ unsafe { ::std::mem::transmute(mListenerIsStrongRef) };
+ mListenerIsStrongRef as u64
+ });
+ __bindgen_bitfield_unit.set(4usize, 1u8, {
+ let mDecodeRequested: u8 = unsafe { ::std::mem::transmute(mDecodeRequested) };
+ mDecodeRequested as u64
+ });
+ __bindgen_bitfield_unit.set(5usize, 1u8, {
+ let mDeferNotifications: u8 = unsafe { ::std::mem::transmute(mDeferNotifications) };
+ mDeferNotifications as u64
+ });
+ __bindgen_bitfield_unit.set(6usize, 1u8, {
+ let mHadListener: u8 = unsafe { ::std::mem::transmute(mHadListener) };
+ mHadListener as u64
+ });
+ __bindgen_bitfield_unit.set(7usize, 1u8, {
+ let mHadDispatch: u8 = unsafe { ::std::mem::transmute(mHadDispatch) };
+ mHadDispatch as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ pub struct nsStyleFont {
+ pub mFont: root::nsFont,
+ pub mSize: root::nscoord,
+ pub mFontSizeFactor: f32,
+ pub mFontSizeOffset: root::nscoord,
+ pub mFontSizeKeyword: u8,
+ pub mGenericID: u8,
+ pub mScriptLevel: i8,
+ pub mMathVariant: u8,
+ pub mMathDisplay: u8,
+ pub mMinFontSizeRatio: u8,
+ pub mExplicitLanguage: bool,
+ pub mAllowZoom: bool,
+ pub mScriptUnconstrainedSize: root::nscoord,
+ pub mScriptMinSize: root::nscoord,
+ pub mScriptSizeMultiplier: f32,
+ pub mLanguage: root::RefPtr<root::nsAtom>,
+ }
+ pub const nsStyleFont_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleFont() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleFont>(),
+ 136usize,
+ concat!("Size of: ", stringify!(nsStyleFont))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleFont>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleFont))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mFont as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mFont)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mSize as *const _ as usize },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mFontSizeFactor as *const _ as usize },
+ 100usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mFontSizeFactor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mFontSizeOffset as *const _ as usize },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mFontSizeOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFont>())).mFontSizeKeyword as *const _ as usize
+ },
+ 108usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mFontSizeKeyword)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mGenericID as *const _ as usize },
+ 109usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mGenericID)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mScriptLevel as *const _ as usize },
+ 110usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mScriptLevel)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mMathVariant as *const _ as usize },
+ 111usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mMathVariant)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mMathDisplay as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mMathDisplay)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFont>())).mMinFontSizeRatio as *const _ as usize
+ },
+ 113usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mMinFontSizeRatio)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFont>())).mExplicitLanguage as *const _ as usize
+ },
+ 114usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mExplicitLanguage)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mAllowZoom as *const _ as usize },
+ 115usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mAllowZoom)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFont>())).mScriptUnconstrainedSize as *const _
+ as usize
+ },
+ 116usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mScriptUnconstrainedSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mScriptMinSize as *const _ as usize },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mScriptMinSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFont>())).mScriptSizeMultiplier as *const _ as usize
+ },
+ 124usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mScriptSizeMultiplier)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFont>())).mLanguage as *const _ as usize },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFont),
+ "::",
+ stringify!(mLanguage)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleGradientStop {
+ pub mLocation: root::nsStyleCoord,
+ pub mColor: root::nscolor,
+ pub mIsInterpolationHint: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleGradientStop() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleGradientStop>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleGradientStop))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleGradientStop>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleGradientStop))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGradientStop>())).mLocation as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradientStop),
+ "::",
+ stringify!(mLocation)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradientStop>())).mColor as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradientStop),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGradientStop>())).mIsInterpolationHint as *const _
+ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradientStop),
+ "::",
+ stringify!(mIsInterpolationHint)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleGradient {
+ pub mShape: u8,
+ pub mSize: u8,
+ pub mRepeating: bool,
+ pub mLegacySyntax: bool,
+ pub mMozLegacySyntax: bool,
+ pub mBgPosX: root::nsStyleCoord,
+ pub mBgPosY: root::nsStyleCoord,
+ pub mAngle: root::nsStyleCoord,
+ pub mRadiusX: root::nsStyleCoord,
+ pub mRadiusY: root::nsStyleCoord,
+ pub mStops: root::nsTArray<root::nsStyleGradientStop>,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ }
+ pub type nsStyleGradient_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsStyleGradient() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleGradient>(),
+ 104usize,
+ concat!("Size of: ", stringify!(nsStyleGradient))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleGradient>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleGradient))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mShape as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mShape)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mSize as *const _ as usize },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mRepeating as *const _ as usize },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mRepeating)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGradient>())).mLegacySyntax as *const _ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mLegacySyntax)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGradient>())).mMozLegacySyntax as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mMozLegacySyntax)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mBgPosX as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mBgPosX)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mBgPosY as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mBgPosY)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mAngle as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mAngle)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mRadiusX as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mRadiusX)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mRadiusY as *const _ as usize },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mRadiusY)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mStops as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mStops)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGradient>())).mRefCnt as *const _ as usize },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGradient),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ /// A wrapper for an imgRequestProxy that supports off-main-thread creation
/// and equality comparison.
///
/// An nsStyleImageRequest can be created in two ways:
@@ -1597,79 +29271,6856 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// creates a new css::ImageValue to represent the url() information passed
/// to the constructor. This ImageValue is held on to for the comparisons done
/// in DefinitelyEquals(), so that we don't need to call into the non-OMT-safe
- /// Equals() on the nsIURI objects returned from imgRequestProxy::GetURI().
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleImageRequest { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mRequestProxy : root :: RefPtr < root :: imgRequestProxy > , pub mImageValue : root :: RefPtr < root :: mozilla :: css :: ImageValue > , pub mImageTracker : root :: RefPtr < root :: mozilla :: dom :: ImageTracker > , pub mDocGroup : root :: RefPtr < root :: mozilla :: dom :: DocGroup > , pub mModeFlags : root :: nsStyleImageRequest_Mode , pub mResolved : bool , } pub type nsStyleImageRequest_URLValueData = root :: mozilla :: css :: URLValueData ; pub const nsStyleImageRequest_Mode_Track : root :: nsStyleImageRequest_Mode = 1 ; pub const nsStyleImageRequest_Mode_Discard : root :: nsStyleImageRequest_Mode = 2 ; pub type nsStyleImageRequest_Mode = u8 ; pub type nsStyleImageRequest_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsStyleImageRequest ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageRequest > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageRequest ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageRequest > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageRequest ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mRequestProxy as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mRequestProxy ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mImageValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mImageValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mImageTracker as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mImageTracker ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mDocGroup as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mDocGroup ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mModeFlags as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mModeFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageRequest ) ) . mResolved as * const _ as usize } , 41usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageRequest ) , "::" , stringify ! ( mResolved ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleImageType { eStyleImageType_Null = 0 , eStyleImageType_Image = 1 , eStyleImageType_Gradient = 2 , eStyleImageType_Element = 3 , eStyleImageType_URL = 4 , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct CachedBorderImageData { pub mCachedSVGViewportSize : [ u32 ; 3usize ] , pub mSubImages : root :: nsCOMArray , } # [ test ] fn bindgen_test_layout_CachedBorderImageData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < CachedBorderImageData > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( CachedBorderImageData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < CachedBorderImageData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( CachedBorderImageData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CachedBorderImageData ) ) . mCachedSVGViewportSize as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( CachedBorderImageData ) , "::" , stringify ! ( mCachedSVGViewportSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const CachedBorderImageData ) ) . mSubImages as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( CachedBorderImageData ) , "::" , stringify ! ( mSubImages ) ) ) ; }
- /// Represents a paintable image of one of the following types.
+ /// Equals() on the nsIURI objects returned from imgRequestProxy::GetURI().
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleImageRequest {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mRequestProxy: root::RefPtr<root::imgRequestProxy>,
+ pub mImageValue: root::RefPtr<root::mozilla::css::ImageValue>,
+ pub mImageTracker: root::RefPtr<root::mozilla::dom::ImageTracker>,
+ pub mDocGroup: root::RefPtr<root::mozilla::dom::DocGroup>,
+ pub mModeFlags: root::nsStyleImageRequest_Mode,
+ pub mResolved: bool,
+ }
+ pub type nsStyleImageRequest_URLValueData = root::mozilla::css::URLValueData;
+ pub const nsStyleImageRequest_Mode_Track: root::nsStyleImageRequest_Mode = 1;
+ pub const nsStyleImageRequest_Mode_Discard: root::nsStyleImageRequest_Mode = 2;
+ pub type nsStyleImageRequest_Mode = u8;
+ pub type nsStyleImageRequest_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsStyleImageRequest() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageRequest>(),
+ 48usize,
+ concat!("Size of: ", stringify!(nsStyleImageRequest))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageRequest>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleImageRequest))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleImageRequest>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageRequest>())).mRequestProxy as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mRequestProxy)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageRequest>())).mImageValue as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mImageValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageRequest>())).mImageTracker as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mImageTracker)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageRequest>())).mDocGroup as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mDocGroup)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageRequest>())).mModeFlags as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mModeFlags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageRequest>())).mResolved as *const _ as usize
+ },
+ 41usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageRequest),
+ "::",
+ stringify!(mResolved)
+ )
+ );
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleImageType {
+ eStyleImageType_Null = 0,
+ eStyleImageType_Image = 1,
+ eStyleImageType_Gradient = 2,
+ eStyleImageType_Element = 3,
+ eStyleImageType_URL = 4,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct CachedBorderImageData {
+ pub mCachedSVGViewportSize: [u32; 3usize],
+ pub mSubImages: root::nsCOMArray,
+ }
+ #[test]
+ fn bindgen_test_layout_CachedBorderImageData() {
+ assert_eq!(
+ ::std::mem::size_of::<CachedBorderImageData>(),
+ 24usize,
+ concat!("Size of: ", stringify!(CachedBorderImageData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<CachedBorderImageData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(CachedBorderImageData))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CachedBorderImageData>())).mCachedSVGViewportSize as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CachedBorderImageData),
+ "::",
+ stringify!(mCachedSVGViewportSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<CachedBorderImageData>())).mSubImages as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(CachedBorderImageData),
+ "::",
+ stringify!(mSubImages)
+ )
+ );
+ }
+ /// Represents a paintable image of one of the following types.
/// (1) A real image loaded from an external source.
/// (2) A CSS linear or radial gradient.
/// (3) An element within a document, or an <img>, <video>, or <canvas> element
/// not in a document.
/// (*) Optionally a crop rect can be set to paint a partial (rectangular)
/// region of an image. (Currently, this feature is only supported with an
- /// image of type (1)).
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleImage { pub mCachedBIData : root :: mozilla :: UniquePtr < root :: CachedBorderImageData > , pub mType : root :: nsStyleImageType , pub __bindgen_anon_1 : root :: nsStyleImage__bindgen_ty_1 , pub mCropRect : root :: mozilla :: UniquePtr < root :: nsStyleSides > , } pub type nsStyleImage_URLValue = root :: mozilla :: css :: URLValue ; pub type nsStyleImage_URLValueData = root :: mozilla :: css :: URLValueData ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleImage__bindgen_ty_1 { pub mImage : root :: __BindgenUnionField < * mut root :: nsStyleImageRequest > , pub mGradient : root :: __BindgenUnionField < * mut root :: nsStyleGradient > , pub mURLValue : root :: __BindgenUnionField < * mut root :: nsStyleImage_URLValue > , pub mElementId : root :: __BindgenUnionField < * mut root :: nsAtom > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsStyleImage__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImage__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStyleImage__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImage__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImage__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage__bindgen_ty_1 ) ) . mImage as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage__bindgen_ty_1 ) , "::" , stringify ! ( mImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage__bindgen_ty_1 ) ) . mGradient as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage__bindgen_ty_1 ) , "::" , stringify ! ( mGradient ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage__bindgen_ty_1 ) ) . mURLValue as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage__bindgen_ty_1 ) , "::" , stringify ! ( mURLValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage__bindgen_ty_1 ) ) . mElementId as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage__bindgen_ty_1 ) , "::" , stringify ! ( mElementId ) ) ) ; } impl Clone for nsStyleImage__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsStyleImage ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImage > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsStyleImage ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImage > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage ) ) . mCachedBIData as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage ) , "::" , stringify ! ( mCachedBIData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage ) ) . mType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImage ) ) . mCropRect as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImage ) , "::" , stringify ! ( mCropRect ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleColor { pub mColor : root :: nscolor , } pub const nsStyleColor_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleColor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleColor > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( nsStyleColor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleColor > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColor ) ) . mColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColor ) , "::" , stringify ! ( mColor ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleImageLayers { pub mAttachmentCount : u32 , pub mClipCount : u32 , pub mOriginCount : u32 , pub mRepeatCount : u32 , pub mPositionXCount : u32 , pub mPositionYCount : u32 , pub mImageCount : u32 , pub mSizeCount : u32 , pub mMaskModeCount : u32 , pub mBlendModeCount : u32 , pub mCompositeCount : u32 , pub mLayers : root :: nsStyleAutoArray < root :: nsStyleImageLayers_Layer > , } pub const nsStyleImageLayers_shorthand : root :: nsStyleImageLayers__bindgen_ty_1 = 0 ; pub const nsStyleImageLayers_color : root :: nsStyleImageLayers__bindgen_ty_1 = 1 ; pub const nsStyleImageLayers_image : root :: nsStyleImageLayers__bindgen_ty_1 = 2 ; pub const nsStyleImageLayers_repeat : root :: nsStyleImageLayers__bindgen_ty_1 = 3 ; pub const nsStyleImageLayers_positionX : root :: nsStyleImageLayers__bindgen_ty_1 = 4 ; pub const nsStyleImageLayers_positionY : root :: nsStyleImageLayers__bindgen_ty_1 = 5 ; pub const nsStyleImageLayers_clip : root :: nsStyleImageLayers__bindgen_ty_1 = 6 ; pub const nsStyleImageLayers_origin : root :: nsStyleImageLayers__bindgen_ty_1 = 7 ; pub const nsStyleImageLayers_size : root :: nsStyleImageLayers__bindgen_ty_1 = 8 ; pub const nsStyleImageLayers_attachment : root :: nsStyleImageLayers__bindgen_ty_1 = 9 ; pub const nsStyleImageLayers_maskMode : root :: nsStyleImageLayers__bindgen_ty_1 = 10 ; pub const nsStyleImageLayers_composite : root :: nsStyleImageLayers__bindgen_ty_1 = 11 ; pub type nsStyleImageLayers__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleImageLayers_LayerType { Background = 0 , Mask = 1 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleImageLayers_Size { pub mWidth : root :: nsStyleImageLayers_Size_Dimension , pub mHeight : root :: nsStyleImageLayers_Size_Dimension , pub mWidthType : u8 , pub mHeightType : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleImageLayers_Size_Dimension { pub _base : root :: nsStyleCoord_CalcValue , } # [ test ] fn bindgen_test_layout_nsStyleImageLayers_Size_Dimension ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageLayers_Size_Dimension > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageLayers_Size_Dimension ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageLayers_Size_Dimension > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageLayers_Size_Dimension ) ) ) ; } impl Clone for nsStyleImageLayers_Size_Dimension { fn clone ( & self ) -> Self { * self } } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleImageLayers_Size_DimensionType { eContain = 0 , eCover = 1 , eAuto = 2 , eLengthPercentage = 3 , eDimensionType_COUNT = 4 , } # [ test ] fn bindgen_test_layout_nsStyleImageLayers_Size ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageLayers_Size > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageLayers_Size ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageLayers_Size > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageLayers_Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Size ) ) . mWidth as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Size ) , "::" , stringify ! ( mWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Size ) ) . mHeight as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Size ) , "::" , stringify ! ( mHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Size ) ) . mWidthType as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Size ) , "::" , stringify ! ( mWidthType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Size ) ) . mHeightType as * const _ as usize } , 25usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Size ) , "::" , stringify ! ( mHeightType ) ) ) ; } impl Clone for nsStyleImageLayers_Size { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleImageLayers_Repeat { pub mXRepeat : root :: mozilla :: StyleImageLayerRepeat , pub mYRepeat : root :: mozilla :: StyleImageLayerRepeat , } # [ test ] fn bindgen_test_layout_nsStyleImageLayers_Repeat ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageLayers_Repeat > ( ) , 2usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageLayers_Repeat ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageLayers_Repeat > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageLayers_Repeat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Repeat ) ) . mXRepeat as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Repeat ) , "::" , stringify ! ( mXRepeat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Repeat ) ) . mYRepeat as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Repeat ) , "::" , stringify ! ( mYRepeat ) ) ) ; } impl Clone for nsStyleImageLayers_Repeat { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleImageLayers_Layer { pub mImage : root :: nsStyleImage , pub mPosition : root :: mozilla :: Position , pub mSize : root :: nsStyleImageLayers_Size , pub mClip : root :: nsStyleImageLayers_Layer_StyleGeometryBox , pub mOrigin : root :: nsStyleImageLayers_Layer_StyleGeometryBox , pub mAttachment : u8 , pub mBlendMode : u8 , pub mComposite : u8 , pub mMaskMode : u8 , pub mRepeat : root :: nsStyleImageLayers_Repeat , } pub use self :: super :: root :: mozilla :: StyleGeometryBox as nsStyleImageLayers_Layer_StyleGeometryBox ; # [ test ] fn bindgen_test_layout_nsStyleImageLayers_Layer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageLayers_Layer > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageLayers_Layer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageLayers_Layer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageLayers_Layer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mImage as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mPosition as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mSize as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mClip as * const _ as usize } , 84usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mClip ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mOrigin as * const _ as usize } , 85usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mOrigin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mAttachment as * const _ as usize } , 86usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mAttachment ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mBlendMode as * const _ as usize } , 87usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mBlendMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mComposite as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mComposite ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mMaskMode as * const _ as usize } , 89usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mMaskMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers_Layer ) ) . mRepeat as * const _ as usize } , 90usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers_Layer ) , "::" , stringify ! ( mRepeat ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN18nsStyleImageLayers21kBackgroundLayerTableE" ]
- pub static mut nsStyleImageLayers_kBackgroundLayerTable : [ root :: nsCSSPropertyID ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN18nsStyleImageLayers15kMaskLayerTableE" ]
- pub static mut nsStyleImageLayers_kMaskLayerTable : [ root :: nsCSSPropertyID ; 0usize ] ;
-} # [ test ] fn bindgen_test_layout_nsStyleImageLayers ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageLayers > ( ) , 152usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageLayers ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageLayers > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageLayers ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mAttachmentCount as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mAttachmentCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mClipCount as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mClipCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mOriginCount as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mOriginCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mRepeatCount as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mRepeatCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mPositionXCount as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mPositionXCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mPositionYCount as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mPositionYCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mImageCount as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mImageCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mSizeCount as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mSizeCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mMaskModeCount as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mMaskModeCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mBlendModeCount as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mBlendModeCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mCompositeCount as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mCompositeCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageLayers ) ) . mLayers as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageLayers ) , "::" , stringify ! ( mLayers ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleBackground { pub mImage : root :: nsStyleImageLayers , pub mBackgroundColor : root :: mozilla :: StyleComplexColor , } pub const nsStyleBackground_kHasFinishStyle : bool = true ; # [ test ] fn bindgen_test_layout_nsStyleBackground ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleBackground > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( nsStyleBackground ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleBackground > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleBackground ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBackground ) ) . mImage as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBackground ) , "::" , stringify ! ( mImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBackground ) ) . mBackgroundColor as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBackground ) , "::" , stringify ! ( mBackgroundColor ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleMargin { pub mMargin : root :: nsStyleSides , } pub const nsStyleMargin_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleMargin ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleMargin > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsStyleMargin ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleMargin > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleMargin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleMargin ) ) . mMargin as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleMargin ) , "::" , stringify ! ( mMargin ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStylePadding { pub mPadding : root :: nsStyleSides , } pub const nsStylePadding_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStylePadding ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStylePadding > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsStylePadding ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStylePadding > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStylePadding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePadding ) ) . mPadding as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePadding ) , "::" , stringify ! ( mPadding ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSShadowItem { pub mXOffset : root :: nscoord , pub mYOffset : root :: nscoord , pub mRadius : root :: nscoord , pub mSpread : root :: nscoord , pub mColor : root :: nscolor , pub mHasColor : bool , pub mInset : bool , } # [ test ] fn bindgen_test_layout_nsCSSShadowItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSShadowItem > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsCSSShadowItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSShadowItem > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsCSSShadowItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mXOffset as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mXOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mYOffset as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mYOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mRadius as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mRadius ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mSpread as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mSpread ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mColor as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mHasColor as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mHasColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowItem ) ) . mInset as * const _ as usize } , 21usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowItem ) , "::" , stringify ! ( mInset ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSShadowArray { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mLength : u32 , pub mArray : [ root :: nsCSSShadowItem ; 1usize ] , } pub type nsCSSShadowArray_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsCSSShadowArray ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSShadowArray > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsCSSShadowArray ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSShadowArray > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSShadowArray ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowArray ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowArray ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowArray ) ) . mLength as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowArray ) , "::" , stringify ! ( mLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSShadowArray ) ) . mArray as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSShadowArray ) , "::" , stringify ! ( mArray ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsBorderColors { pub mColors : [ root :: nsTArray < root :: nscolor > ; 4usize ] , } # [ test ] fn bindgen_test_layout_nsBorderColors ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsBorderColors > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsBorderColors ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsBorderColors > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsBorderColors ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBorderColors ) ) . mColors as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsBorderColors ) , "::" , stringify ! ( mColors ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleBorder { pub mBorderColors : root :: mozilla :: UniquePtr < root :: nsBorderColors > , pub mBorderRadius : root :: nsStyleCorners , pub mBorderImageSource : root :: nsStyleImage , pub mBorderImageSlice : root :: nsStyleSides , pub mBorderImageWidth : root :: nsStyleSides , pub mBorderImageOutset : root :: nsStyleSides , pub mBorderImageFill : u8 , pub mBorderImageRepeatH : root :: mozilla :: StyleBorderImageRepeat , pub mBorderImageRepeatV : root :: mozilla :: StyleBorderImageRepeat , pub mFloatEdge : root :: mozilla :: StyleFloatEdge , pub mBoxDecorationBreak : root :: mozilla :: StyleBoxDecorationBreak , pub mBorderStyle : [ u8 ; 4usize ] , pub __bindgen_anon_1 : root :: nsStyleBorder__bindgen_ty_1 , pub mComputedBorder : root :: nsMargin , pub mBorder : root :: nsMargin , pub mTwipsPerPixel : root :: nscoord , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleBorder__bindgen_ty_1 { pub __bindgen_anon_1 : root :: __BindgenUnionField < root :: nsStyleBorder__bindgen_ty_1__bindgen_ty_1 > , pub mBorderColor : root :: __BindgenUnionField < [ root :: mozilla :: StyleComplexColor ; 4usize ] > , pub bindgen_union_field : [ u32 ; 8usize ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleBorder__bindgen_ty_1__bindgen_ty_1 { pub mBorderTopColor : root :: mozilla :: StyleComplexColor , pub mBorderRightColor : root :: mozilla :: StyleComplexColor , pub mBorderBottomColor : root :: mozilla :: StyleComplexColor , pub mBorderLeftColor : root :: mozilla :: StyleComplexColor , } # [ test ] fn bindgen_test_layout_nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleBorder__bindgen_ty_1__bindgen_ty_1 > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleBorder__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) ) . mBorderTopColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mBorderTopColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) ) . mBorderRightColor as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mBorderRightColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) ) . mBorderBottomColor as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mBorderBottomColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) ) . mBorderLeftColor as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mBorderLeftColor ) ) ) ; } impl Clone for nsStyleBorder__bindgen_ty_1__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsStyleBorder__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleBorder__bindgen_ty_1 > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsStyleBorder__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleBorder__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleBorder__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder__bindgen_ty_1 ) ) . mBorderColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder__bindgen_ty_1 ) , "::" , stringify ! ( mBorderColor ) ) ) ; } impl Clone for nsStyleBorder__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } pub const nsStyleBorder_kHasFinishStyle : bool = true ; # [ test ] fn bindgen_test_layout_nsStyleBorder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleBorder > ( ) , 312usize , concat ! ( "Size of: " , stringify ! ( nsStyleBorder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleBorder > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderColors as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderColors ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderRadius as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderRadius ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageSource as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageSource ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageSlice as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageSlice ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageWidth as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageOutset as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageOutset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageFill as * const _ as usize } , 232usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageFill ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageRepeatH as * const _ as usize } , 233usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageRepeatH ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderImageRepeatV as * const _ as usize } , 234usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderImageRepeatV ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mFloatEdge as * const _ as usize } , 235usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mFloatEdge ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBoxDecorationBreak as * const _ as usize } , 236usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBoxDecorationBreak ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorderStyle as * const _ as usize } , 237usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorderStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mComputedBorder as * const _ as usize } , 276usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mComputedBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mBorder as * const _ as usize } , 292usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleBorder ) ) . mTwipsPerPixel as * const _ as usize } , 308usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleBorder ) , "::" , stringify ! ( mTwipsPerPixel ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleOutline { pub mOutlineRadius : root :: nsStyleCorners , pub mOutlineWidth : root :: nscoord , pub mOutlineOffset : root :: nscoord , pub mOutlineColor : root :: mozilla :: StyleComplexColor , pub mOutlineStyle : u8 , pub mActualOutlineWidth : root :: nscoord , pub mTwipsPerPixel : root :: nscoord , } pub const nsStyleOutline_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleOutline ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleOutline > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( nsStyleOutline ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleOutline > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleOutline ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mOutlineRadius as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mOutlineRadius ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mOutlineWidth as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mOutlineWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mOutlineOffset as * const _ as usize } , 76usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mOutlineOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mOutlineColor as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mOutlineColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mOutlineStyle as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mOutlineStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mActualOutlineWidth as * const _ as usize } , 92usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mActualOutlineWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleOutline ) ) . mTwipsPerPixel as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleOutline ) , "::" , stringify ! ( mTwipsPerPixel ) ) ) ; }
- /// An object that allows sharing of arrays that store 'quotes' property
+ /// image of type (1)).
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleImage {
+ pub mCachedBIData: root::mozilla::UniquePtr<root::CachedBorderImageData>,
+ pub mType: root::nsStyleImageType,
+ pub __bindgen_anon_1: root::nsStyleImage__bindgen_ty_1,
+ pub mCropRect: root::mozilla::UniquePtr<root::nsStyleSides>,
+ }
+ pub type nsStyleImage_URLValue = root::mozilla::css::URLValue;
+ pub type nsStyleImage_URLValueData = root::mozilla::css::URLValueData;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleImage__bindgen_ty_1 {
+ pub mImage: root::__BindgenUnionField<*mut root::nsStyleImageRequest>,
+ pub mGradient: root::__BindgenUnionField<*mut root::nsStyleGradient>,
+ pub mURLValue: root::__BindgenUnionField<*mut root::nsStyleImage_URLValue>,
+ pub mElementId: root::__BindgenUnionField<*mut root::nsAtom>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImage__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImage__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStyleImage__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImage__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleImage__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImage__bindgen_ty_1>())).mImage as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage__bindgen_ty_1),
+ "::",
+ stringify!(mImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImage__bindgen_ty_1>())).mGradient as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage__bindgen_ty_1),
+ "::",
+ stringify!(mGradient)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImage__bindgen_ty_1>())).mURLValue as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage__bindgen_ty_1),
+ "::",
+ stringify!(mURLValue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImage__bindgen_ty_1>())).mElementId as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage__bindgen_ty_1),
+ "::",
+ stringify!(mElementId)
+ )
+ );
+ }
+ impl Clone for nsStyleImage__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImage() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImage>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsStyleImage))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImage>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleImage))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleImage>())).mCachedBIData as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage),
+ "::",
+ stringify!(mCachedBIData)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleImage>())).mType as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleImage>())).mCropRect as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImage),
+ "::",
+ stringify!(mCropRect)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleColor {
+ pub mColor: root::nscolor,
+ }
+ pub const nsStyleColor_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleColor() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleColor>(),
+ 4usize,
+ concat!("Size of: ", stringify!(nsStyleColor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleColor>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleColor))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleColor>())).mColor as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColor),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleImageLayers {
+ pub mAttachmentCount: u32,
+ pub mClipCount: u32,
+ pub mOriginCount: u32,
+ pub mRepeatCount: u32,
+ pub mPositionXCount: u32,
+ pub mPositionYCount: u32,
+ pub mImageCount: u32,
+ pub mSizeCount: u32,
+ pub mMaskModeCount: u32,
+ pub mBlendModeCount: u32,
+ pub mCompositeCount: u32,
+ pub mLayers: root::nsStyleAutoArray<root::nsStyleImageLayers_Layer>,
+ }
+ pub const nsStyleImageLayers_shorthand: root::nsStyleImageLayers__bindgen_ty_1 = 0;
+ pub const nsStyleImageLayers_color: root::nsStyleImageLayers__bindgen_ty_1 = 1;
+ pub const nsStyleImageLayers_image: root::nsStyleImageLayers__bindgen_ty_1 = 2;
+ pub const nsStyleImageLayers_repeat: root::nsStyleImageLayers__bindgen_ty_1 = 3;
+ pub const nsStyleImageLayers_positionX: root::nsStyleImageLayers__bindgen_ty_1 = 4;
+ pub const nsStyleImageLayers_positionY: root::nsStyleImageLayers__bindgen_ty_1 = 5;
+ pub const nsStyleImageLayers_clip: root::nsStyleImageLayers__bindgen_ty_1 = 6;
+ pub const nsStyleImageLayers_origin: root::nsStyleImageLayers__bindgen_ty_1 = 7;
+ pub const nsStyleImageLayers_size: root::nsStyleImageLayers__bindgen_ty_1 = 8;
+ pub const nsStyleImageLayers_attachment: root::nsStyleImageLayers__bindgen_ty_1 = 9;
+ pub const nsStyleImageLayers_maskMode: root::nsStyleImageLayers__bindgen_ty_1 = 10;
+ pub const nsStyleImageLayers_composite: root::nsStyleImageLayers__bindgen_ty_1 = 11;
+ pub type nsStyleImageLayers__bindgen_ty_1 = u32;
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleImageLayers_LayerType {
+ Background = 0,
+ Mask = 1,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleImageLayers_Size {
+ pub mWidth: root::nsStyleImageLayers_Size_Dimension,
+ pub mHeight: root::nsStyleImageLayers_Size_Dimension,
+ pub mWidthType: u8,
+ pub mHeightType: u8,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleImageLayers_Size_Dimension {
+ pub _base: root::nsStyleCoord_CalcValue,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImageLayers_Size_Dimension() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageLayers_Size_Dimension>(),
+ 12usize,
+ concat!("Size of: ", stringify!(nsStyleImageLayers_Size_Dimension))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageLayers_Size_Dimension>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsStyleImageLayers_Size_Dimension)
+ )
+ );
+ }
+ impl Clone for nsStyleImageLayers_Size_Dimension {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleImageLayers_Size_DimensionType {
+ eContain = 0,
+ eCover = 1,
+ eAuto = 2,
+ eLengthPercentage = 3,
+ eDimensionType_COUNT = 4,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImageLayers_Size() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageLayers_Size>(),
+ 28usize,
+ concat!("Size of: ", stringify!(nsStyleImageLayers_Size))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageLayers_Size>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleImageLayers_Size))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Size>())).mWidth as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Size),
+ "::",
+ stringify!(mWidth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Size>())).mHeight as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Size),
+ "::",
+ stringify!(mHeight)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Size>())).mWidthType as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Size),
+ "::",
+ stringify!(mWidthType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Size>())).mHeightType as *const _ as usize
+ },
+ 25usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Size),
+ "::",
+ stringify!(mHeightType)
+ )
+ );
+ }
+ impl Clone for nsStyleImageLayers_Size {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleImageLayers_Repeat {
+ pub mXRepeat: root::mozilla::StyleImageLayerRepeat,
+ pub mYRepeat: root::mozilla::StyleImageLayerRepeat,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImageLayers_Repeat() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageLayers_Repeat>(),
+ 2usize,
+ concat!("Size of: ", stringify!(nsStyleImageLayers_Repeat))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageLayers_Repeat>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(nsStyleImageLayers_Repeat))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Repeat>())).mXRepeat as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Repeat),
+ "::",
+ stringify!(mXRepeat)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Repeat>())).mYRepeat as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Repeat),
+ "::",
+ stringify!(mYRepeat)
+ )
+ );
+ }
+ impl Clone for nsStyleImageLayers_Repeat {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleImageLayers_Layer {
+ pub mImage: root::nsStyleImage,
+ pub mPosition: root::mozilla::Position,
+ pub mSize: root::nsStyleImageLayers_Size,
+ pub mClip: root::nsStyleImageLayers_Layer_StyleGeometryBox,
+ pub mOrigin: root::nsStyleImageLayers_Layer_StyleGeometryBox,
+ pub mAttachment: u8,
+ pub mBlendMode: u8,
+ pub mComposite: u8,
+ pub mMaskMode: u8,
+ pub mRepeat: root::nsStyleImageLayers_Repeat,
+ }
+ pub use self :: super :: root :: mozilla :: StyleGeometryBox as nsStyleImageLayers_Layer_StyleGeometryBox;
+ #[test]
+ fn bindgen_test_layout_nsStyleImageLayers_Layer() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageLayers_Layer>(),
+ 96usize,
+ concat!("Size of: ", stringify!(nsStyleImageLayers_Layer))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageLayers_Layer>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleImageLayers_Layer))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mImage as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mPosition as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mPosition)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mSize as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mClip as *const _ as usize
+ },
+ 84usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mClip)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mOrigin as *const _ as usize
+ },
+ 85usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mOrigin)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mAttachment as *const _
+ as usize
+ },
+ 86usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mAttachment)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mBlendMode as *const _ as usize
+ },
+ 87usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mBlendMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mComposite as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mComposite)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mMaskMode as *const _ as usize
+ },
+ 89usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mMaskMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers_Layer>())).mRepeat as *const _ as usize
+ },
+ 90usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers_Layer),
+ "::",
+ stringify!(mRepeat)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN18nsStyleImageLayers21kBackgroundLayerTableE"]
+ pub static mut nsStyleImageLayers_kBackgroundLayerTable: [root::nsCSSPropertyID; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN18nsStyleImageLayers15kMaskLayerTableE"]
+ pub static mut nsStyleImageLayers_kMaskLayerTable: [root::nsCSSPropertyID; 0usize];
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImageLayers() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageLayers>(),
+ 152usize,
+ concat!("Size of: ", stringify!(nsStyleImageLayers))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageLayers>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleImageLayers))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mAttachmentCount as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mAttachmentCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mClipCount as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mClipCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mOriginCount as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mOriginCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mRepeatCount as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mRepeatCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mPositionXCount as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mPositionXCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mPositionYCount as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mPositionYCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mImageCount as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mImageCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mSizeCount as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mSizeCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mMaskModeCount as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mMaskModeCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mBlendModeCount as *const _ as usize
+ },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mBlendModeCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageLayers>())).mCompositeCount as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mCompositeCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleImageLayers>())).mLayers as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageLayers),
+ "::",
+ stringify!(mLayers)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleBackground {
+ pub mImage: root::nsStyleImageLayers,
+ pub mBackgroundColor: root::mozilla::StyleComplexColor,
+ }
+ pub const nsStyleBackground_kHasFinishStyle: bool = true;
+ #[test]
+ fn bindgen_test_layout_nsStyleBackground() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleBackground>(),
+ 160usize,
+ concat!("Size of: ", stringify!(nsStyleBackground))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleBackground>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleBackground))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleBackground>())).mImage as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBackground),
+ "::",
+ stringify!(mImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBackground>())).mBackgroundColor as *const _ as usize
+ },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBackground),
+ "::",
+ stringify!(mBackgroundColor)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleMargin {
+ pub mMargin: root::nsStyleSides,
+ }
+ pub const nsStyleMargin_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleMargin() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleMargin>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsStyleMargin))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleMargin>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleMargin))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleMargin>())).mMargin as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleMargin),
+ "::",
+ stringify!(mMargin)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStylePadding {
+ pub mPadding: root::nsStyleSides,
+ }
+ pub const nsStylePadding_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStylePadding() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStylePadding>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsStylePadding))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStylePadding>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStylePadding))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePadding>())).mPadding as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePadding),
+ "::",
+ stringify!(mPadding)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSShadowItem {
+ pub mXOffset: root::nscoord,
+ pub mYOffset: root::nscoord,
+ pub mRadius: root::nscoord,
+ pub mSpread: root::nscoord,
+ pub mColor: root::nscolor,
+ pub mHasColor: bool,
+ pub mInset: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSShadowItem() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSShadowItem>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsCSSShadowItem))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSShadowItem>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsCSSShadowItem))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mXOffset as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mXOffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mYOffset as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mYOffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mRadius as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mRadius)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mSpread as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mSpread)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mColor as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mHasColor as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mHasColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowItem>())).mInset as *const _ as usize },
+ 21usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowItem),
+ "::",
+ stringify!(mInset)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSShadowArray {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mLength: u32,
+ pub mArray: [root::nsCSSShadowItem; 1usize],
+ }
+ pub type nsCSSShadowArray_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsCSSShadowArray() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSShadowArray>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsCSSShadowArray))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSShadowArray>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSShadowArray))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowArray>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowArray),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowArray>())).mLength as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowArray),
+ "::",
+ stringify!(mLength)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSShadowArray>())).mArray as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSShadowArray),
+ "::",
+ stringify!(mArray)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleBorder {
+ pub mBorderRadius: root::nsStyleCorners,
+ pub mBorderImageSource: root::nsStyleImage,
+ pub mBorderImageSlice: root::nsStyleSides,
+ pub mBorderImageWidth: root::nsStyleSides,
+ pub mBorderImageOutset: root::nsStyleSides,
+ pub mBorderImageFill: u8,
+ pub mBorderImageRepeatH: root::mozilla::StyleBorderImageRepeat,
+ pub mBorderImageRepeatV: root::mozilla::StyleBorderImageRepeat,
+ pub mFloatEdge: root::mozilla::StyleFloatEdge,
+ pub mBoxDecorationBreak: root::mozilla::StyleBoxDecorationBreak,
+ pub mBorderStyle: [u8; 4usize],
+ pub __bindgen_anon_1: root::nsStyleBorder__bindgen_ty_1,
+ pub mComputedBorder: root::nsMargin,
+ pub mBorder: root::nsMargin,
+ pub mTwipsPerPixel: root::nscoord,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleBorder__bindgen_ty_1 {
+ pub __bindgen_anon_1:
+ root::__BindgenUnionField<root::nsStyleBorder__bindgen_ty_1__bindgen_ty_1>,
+ pub mBorderColor: root::__BindgenUnionField<[root::mozilla::StyleComplexColor; 4usize]>,
+ pub bindgen_union_field: [u32; 8usize],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleBorder__bindgen_ty_1__bindgen_ty_1 {
+ pub mBorderTopColor: root::mozilla::StyleComplexColor,
+ pub mBorderRightColor: root::mozilla::StyleComplexColor,
+ pub mBorderBottomColor: root::mozilla::StyleComplexColor,
+ pub mBorderLeftColor: root::mozilla::StyleComplexColor,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleBorder__bindgen_ty_1__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleBorder__bindgen_ty_1__bindgen_ty_1>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsStyleBorder__bindgen_ty_1__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleBorder__bindgen_ty_1__bindgen_ty_1>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsStyleBorder__bindgen_ty_1__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder__bindgen_ty_1__bindgen_ty_1>()))
+ .mBorderTopColor as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mBorderTopColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder__bindgen_ty_1__bindgen_ty_1>()))
+ .mBorderRightColor as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mBorderRightColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder__bindgen_ty_1__bindgen_ty_1>()))
+ .mBorderBottomColor as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mBorderBottomColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder__bindgen_ty_1__bindgen_ty_1>()))
+ .mBorderLeftColor as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mBorderLeftColor)
+ )
+ );
+ }
+ impl Clone for nsStyleBorder__bindgen_ty_1__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleBorder__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleBorder__bindgen_ty_1>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsStyleBorder__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleBorder__bindgen_ty_1>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleBorder__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder__bindgen_ty_1>())).mBorderColor as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder__bindgen_ty_1),
+ "::",
+ stringify!(mBorderColor)
+ )
+ );
+ }
+ impl Clone for nsStyleBorder__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const nsStyleBorder_kHasFinishStyle: bool = true;
+ #[test]
+ fn bindgen_test_layout_nsStyleBorder() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleBorder>(),
+ 304usize,
+ concat!("Size of: ", stringify!(nsStyleBorder))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleBorder>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleBorder))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleBorder>())).mBorderRadius as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderRadius)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageSource as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageSource)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageSlice as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageSlice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageWidth as *const _ as usize
+ },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageWidth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageOutset as *const _ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageOutset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageFill as *const _ as usize
+ },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageFill)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageRepeatH as *const _ as usize
+ },
+ 225usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageRepeatH)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBorderImageRepeatV as *const _ as usize
+ },
+ 226usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderImageRepeatV)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleBorder>())).mFloatEdge as *const _ as usize },
+ 227usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mFloatEdge)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mBoxDecorationBreak as *const _ as usize
+ },
+ 228usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBoxDecorationBreak)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleBorder>())).mBorderStyle as *const _ as usize },
+ 229usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorderStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mComputedBorder as *const _ as usize
+ },
+ 268usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mComputedBorder)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleBorder>())).mBorder as *const _ as usize },
+ 284usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mBorder)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleBorder>())).mTwipsPerPixel as *const _ as usize
+ },
+ 300usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleBorder),
+ "::",
+ stringify!(mTwipsPerPixel)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleOutline {
+ pub mOutlineRadius: root::nsStyleCorners,
+ pub mOutlineWidth: root::nscoord,
+ pub mOutlineOffset: root::nscoord,
+ pub mOutlineColor: root::mozilla::StyleComplexColor,
+ pub mOutlineStyle: u8,
+ pub mActualOutlineWidth: root::nscoord,
+ pub mTwipsPerPixel: root::nscoord,
+ }
+ pub const nsStyleOutline_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleOutline() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleOutline>(),
+ 104usize,
+ concat!("Size of: ", stringify!(nsStyleOutline))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleOutline>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleOutline))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mOutlineRadius as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mOutlineRadius)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mOutlineWidth as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mOutlineWidth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mOutlineOffset as *const _ as usize
+ },
+ 76usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mOutlineOffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mOutlineColor as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mOutlineColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mOutlineStyle as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mOutlineStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mActualOutlineWidth as *const _ as usize
+ },
+ 92usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mActualOutlineWidth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleOutline>())).mTwipsPerPixel as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleOutline),
+ "::",
+ stringify!(mTwipsPerPixel)
+ )
+ );
+ }
+ /// An object that allows sharing of arrays that store 'quotes' property
/// values. This is particularly important for inheritance, where we want
- /// to share the same 'quotes' value with a parent style context.
- # [ repr ( C ) ] pub struct nsStyleQuoteValues { pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , pub mQuotePairs : root :: nsStyleQuoteValues_QuotePairArray , } pub type nsStyleQuoteValues_QuotePairArray = root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ; pub type nsStyleQuoteValues_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsStyleQuoteValues ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleQuoteValues > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsStyleQuoteValues ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleQuoteValues > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleQuoteValues ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleQuoteValues ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleQuoteValues ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleQuoteValues ) ) . mQuotePairs as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleQuoteValues ) , "::" , stringify ! ( mQuotePairs ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleList { pub mListStylePosition : u8 , pub mListStyleImage : root :: RefPtr < root :: nsStyleImageRequest > , pub mCounterStyle : root :: mozilla :: CounterStylePtr , pub mQuotes : root :: RefPtr < root :: nsStyleQuoteValues > , pub mImageRegion : root :: nsRect , } pub const nsStyleList_kHasFinishStyle : bool = true ; extern "C" {
- # [ link_name = "\u{1}_ZN11nsStyleList14sInitialQuotesE" ]
- pub static mut nsStyleList_sInitialQuotes : root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN11nsStyleList11sNoneQuotesE" ]
- pub static mut nsStyleList_sNoneQuotes : root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > ;
-} # [ test ] fn bindgen_test_layout_nsStyleList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleList > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( nsStyleList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleList ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleList ) ) . mListStylePosition as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleList ) , "::" , stringify ! ( mListStylePosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleList ) ) . mListStyleImage as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleList ) , "::" , stringify ! ( mListStyleImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleList ) ) . mCounterStyle as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleList ) , "::" , stringify ! ( mCounterStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleList ) ) . mQuotes as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleList ) , "::" , stringify ! ( mQuotes ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleList ) ) . mImageRegion as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleList ) , "::" , stringify ! ( mImageRegion ) ) ) ; } # [ test ] fn __bindgen_test_layout_StaticRefPtr_open0_nsStyleQuoteValues_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > ) ) ) ; } # [ test ] fn __bindgen_test_layout_StaticRefPtr_open0_nsStyleQuoteValues_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: nsStyleQuoteValues > ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleGridLine { pub mHasSpan : bool , pub mInteger : i32 , pub mLineName : ::nsstring::nsStringRepr , } pub const nsStyleGridLine_kMinLine : i32 = -10000 ; pub const nsStyleGridLine_kMaxLine : i32 = 10000 ; # [ test ] fn bindgen_test_layout_nsStyleGridLine ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleGridLine > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleGridLine ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleGridLine > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleGridLine ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridLine ) ) . mHasSpan as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridLine ) , "::" , stringify ! ( mHasSpan ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridLine ) ) . mInteger as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridLine ) , "::" , stringify ! ( mInteger ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridLine ) ) . mLineName as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridLine ) , "::" , stringify ! ( mLineName ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleGridTemplate { pub mLineNameLists : root :: nsTArray < root :: nsTArray < ::nsstring::nsStringRepr > > , pub mMinTrackSizingFunctions : root :: nsTArray < root :: nsStyleCoord > , pub mMaxTrackSizingFunctions : root :: nsTArray < root :: nsStyleCoord > , pub mRepeatAutoLineNameListBefore : root :: nsTArray < ::nsstring::nsStringRepr > , pub mRepeatAutoLineNameListAfter : root :: nsTArray < ::nsstring::nsStringRepr > , pub mRepeatAutoIndex : i16 , pub _bitfield_1 : u8 , pub __bindgen_padding_0 : [ u8 ; 5usize ] , } # [ test ] fn bindgen_test_layout_nsStyleGridTemplate ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleGridTemplate > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( nsStyleGridTemplate ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleGridTemplate > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleGridTemplate ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridTemplate ) ) . mLineNameLists as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridTemplate ) , "::" , stringify ! ( mLineNameLists ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridTemplate ) ) . mMinTrackSizingFunctions as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridTemplate ) , "::" , stringify ! ( mMinTrackSizingFunctions ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridTemplate ) ) . mMaxTrackSizingFunctions as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridTemplate ) , "::" , stringify ! ( mMaxTrackSizingFunctions ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridTemplate ) ) . mRepeatAutoLineNameListBefore as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridTemplate ) , "::" , stringify ! ( mRepeatAutoLineNameListBefore ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridTemplate ) ) . mRepeatAutoLineNameListAfter as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridTemplate ) , "::" , stringify ! ( mRepeatAutoLineNameListAfter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleGridTemplate ) ) . mRepeatAutoIndex as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleGridTemplate ) , "::" , stringify ! ( mRepeatAutoIndex ) ) ) ; } impl nsStyleGridTemplate { # [ inline ] pub fn mIsAutoFill ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x1 as u8 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsAutoFill ( & mut self , val : bool ) { let mask = 0x1 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mIsSubgrid ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x2 as u8 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mIsSubgrid ( & mut self , val : bool ) { let mask = 0x2 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mIsAutoFill : bool , mIsSubgrid : bool ) -> u8 { ( ( 0 | ( ( mIsAutoFill as u8 as u8 ) << 0usize ) & ( 0x1 as u8 ) ) | ( ( mIsSubgrid as u8 as u8 ) << 1usize ) & ( 0x2 as u8 ) ) } } # [ repr ( C ) ] pub struct nsStylePosition { pub mObjectPosition : root :: mozilla :: Position , pub mOffset : root :: nsStyleSides , pub mWidth : root :: nsStyleCoord , pub mMinWidth : root :: nsStyleCoord , pub mMaxWidth : root :: nsStyleCoord , pub mHeight : root :: nsStyleCoord , pub mMinHeight : root :: nsStyleCoord , pub mMaxHeight : root :: nsStyleCoord , pub mFlexBasis : root :: nsStyleCoord , pub mGridAutoColumnsMin : root :: nsStyleCoord , pub mGridAutoColumnsMax : root :: nsStyleCoord , pub mGridAutoRowsMin : root :: nsStyleCoord , pub mGridAutoRowsMax : root :: nsStyleCoord , pub mGridAutoFlow : u8 , pub mBoxSizing : root :: mozilla :: StyleBoxSizing , pub mAlignContent : u16 , pub mAlignItems : u8 , pub mAlignSelf : u8 , pub mJustifyContent : u16 , pub mSpecifiedJustifyItems : u8 , pub mJustifyItems : u8 , pub mJustifySelf : u8 , pub mFlexDirection : u8 , pub mFlexWrap : u8 , pub mObjectFit : u8 , pub mOrder : i32 , pub mFlexGrow : f32 , pub mFlexShrink : f32 , pub mZIndex : root :: nsStyleCoord , pub mGridTemplateColumns : root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > , pub mGridTemplateRows : root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > , pub mGridTemplateAreas : root :: RefPtr < root :: mozilla :: css :: GridTemplateAreasValue > , pub mGridColumnStart : root :: nsStyleGridLine , pub mGridColumnEnd : root :: nsStyleGridLine , pub mGridRowStart : root :: nsStyleGridLine , pub mGridRowEnd : root :: nsStyleGridLine , pub mGridColumnGap : root :: nsStyleCoord , pub mGridRowGap : root :: nsStyleCoord , } pub const nsStylePosition_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStylePosition ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStylePosition > ( ) , 440usize , concat ! ( "Size of: " , stringify ! ( nsStylePosition ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStylePosition > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStylePosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mObjectPosition as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mObjectPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mOffset as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mWidth as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mMinWidth as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mMinWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mMaxWidth as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mMaxWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mHeight as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mMinHeight as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mMinHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mMaxHeight as * const _ as usize } , 144usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mMaxHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mFlexBasis as * const _ as usize } , 160usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mFlexBasis ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridAutoColumnsMin as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridAutoColumnsMin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridAutoColumnsMax as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridAutoColumnsMax ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridAutoRowsMin as * const _ as usize } , 208usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridAutoRowsMin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridAutoRowsMax as * const _ as usize } , 224usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridAutoRowsMax ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridAutoFlow as * const _ as usize } , 240usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridAutoFlow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mBoxSizing as * const _ as usize } , 241usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mBoxSizing ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mAlignContent as * const _ as usize } , 242usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mAlignContent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mAlignItems as * const _ as usize } , 244usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mAlignItems ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mAlignSelf as * const _ as usize } , 245usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mAlignSelf ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mJustifyContent as * const _ as usize } , 246usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mJustifyContent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mSpecifiedJustifyItems as * const _ as usize } , 248usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mSpecifiedJustifyItems ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mJustifyItems as * const _ as usize } , 249usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mJustifyItems ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mJustifySelf as * const _ as usize } , 250usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mJustifySelf ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mFlexDirection as * const _ as usize } , 251usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mFlexDirection ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mFlexWrap as * const _ as usize } , 252usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mFlexWrap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mObjectFit as * const _ as usize } , 253usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mObjectFit ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mOrder as * const _ as usize } , 256usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mOrder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mFlexGrow as * const _ as usize } , 260usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mFlexGrow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mFlexShrink as * const _ as usize } , 264usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mFlexShrink ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mZIndex as * const _ as usize } , 272usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mZIndex ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridTemplateColumns as * const _ as usize } , 288usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridTemplateColumns ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridTemplateRows as * const _ as usize } , 296usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridTemplateRows ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridTemplateAreas as * const _ as usize } , 304usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridTemplateAreas ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridColumnStart as * const _ as usize } , 312usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridColumnStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridColumnEnd as * const _ as usize } , 336usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridColumnEnd ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridRowStart as * const _ as usize } , 360usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridRowStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridRowEnd as * const _ as usize } , 384usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridRowEnd ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridColumnGap as * const _ as usize } , 408usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridColumnGap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStylePosition ) ) . mGridRowGap as * const _ as usize } , 424usize , concat ! ( "Alignment of field: " , stringify ! ( nsStylePosition ) , "::" , stringify ! ( mGridRowGap ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleTextOverflowSide { pub mString : ::nsstring::nsStringRepr , pub mType : u8 , } # [ test ] fn bindgen_test_layout_nsStyleTextOverflowSide ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleTextOverflowSide > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleTextOverflowSide ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleTextOverflowSide > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleTextOverflowSide ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextOverflowSide ) ) . mString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextOverflowSide ) , "::" , stringify ! ( mString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextOverflowSide ) ) . mType as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextOverflowSide ) , "::" , stringify ! ( mType ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleTextOverflow { pub mLeft : root :: nsStyleTextOverflowSide , pub mRight : root :: nsStyleTextOverflowSide , pub mLogicalDirections : bool , } # [ test ] fn bindgen_test_layout_nsStyleTextOverflow ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleTextOverflow > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( nsStyleTextOverflow ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleTextOverflow > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleTextOverflow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextOverflow ) ) . mLeft as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextOverflow ) , "::" , stringify ! ( mLeft ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextOverflow ) ) . mRight as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextOverflow ) , "::" , stringify ! ( mRight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextOverflow ) ) . mLogicalDirections as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextOverflow ) , "::" , stringify ! ( mLogicalDirections ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleTextReset { pub mTextOverflow : root :: nsStyleTextOverflow , pub mTextDecorationLine : u8 , pub mTextDecorationStyle : u8 , pub mUnicodeBidi : u8 , pub mInitialLetterSink : root :: nscoord , pub mInitialLetterSize : f32 , pub mTextDecorationColor : root :: mozilla :: StyleComplexColor , } pub const nsStyleTextReset_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleTextReset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleTextReset > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( nsStyleTextReset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleTextReset > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleTextReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mTextOverflow as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mTextOverflow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mTextDecorationLine as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mTextDecorationLine ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mTextDecorationStyle as * const _ as usize } , 57usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mTextDecorationStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mUnicodeBidi as * const _ as usize } , 58usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mUnicodeBidi ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mInitialLetterSink as * const _ as usize } , 60usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mInitialLetterSink ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mInitialLetterSize as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mInitialLetterSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTextReset ) ) . mTextDecorationColor as * const _ as usize } , 68usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTextReset ) , "::" , stringify ! ( mTextDecorationColor ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleText { pub mTextAlign : u8 , pub mTextAlignLast : u8 , pub _bitfield_1 : u8 , pub mTextJustify : root :: mozilla :: StyleTextJustify , pub mTextTransform : u8 , pub mWhiteSpace : root :: mozilla :: StyleWhiteSpace , pub mWordBreak : u8 , pub mOverflowWrap : u8 , pub mHyphens : root :: mozilla :: StyleHyphens , pub mRubyAlign : u8 , pub mRubyPosition : u8 , pub mTextSizeAdjust : u8 , pub mTextCombineUpright : u8 , pub mControlCharacterVisibility : u8 , pub mTextEmphasisPosition : u8 , pub mTextEmphasisStyle : u8 , pub mTextRendering : u8 , pub mTextEmphasisColor : root :: mozilla :: StyleComplexColor , pub mWebkitTextFillColor : root :: mozilla :: StyleComplexColor , pub mWebkitTextStrokeColor : root :: mozilla :: StyleComplexColor , pub mTabSize : root :: nsStyleCoord , pub mWordSpacing : root :: nsStyleCoord , pub mLetterSpacing : root :: nsStyleCoord , pub mLineHeight : root :: nsStyleCoord , pub mTextIndent : root :: nsStyleCoord , pub mWebkitTextStrokeWidth : root :: nscoord , pub mTextShadow : root :: RefPtr < root :: nsCSSShadowArray > , pub mTextEmphasisStyleString : ::nsstring::nsStringRepr , } pub const nsStyleText_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleText ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleText > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( nsStyleText ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleText > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleText ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextAlign as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextAlign ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextAlignLast as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextAlignLast ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextJustify as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextJustify ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextTransform as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextTransform ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mWhiteSpace as * const _ as usize } , 5usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mWhiteSpace ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mWordBreak as * const _ as usize } , 6usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mWordBreak ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mOverflowWrap as * const _ as usize } , 7usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mOverflowWrap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mHyphens as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mHyphens ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mRubyAlign as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mRubyAlign ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mRubyPosition as * const _ as usize } , 10usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mRubyPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextSizeAdjust as * const _ as usize } , 11usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextSizeAdjust ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextCombineUpright as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextCombineUpright ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mControlCharacterVisibility as * const _ as usize } , 13usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mControlCharacterVisibility ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextEmphasisPosition as * const _ as usize } , 14usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextEmphasisPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextEmphasisStyle as * const _ as usize } , 15usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextEmphasisStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextRendering as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextRendering ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextEmphasisColor as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextEmphasisColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mWebkitTextFillColor as * const _ as usize } , 28usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mWebkitTextFillColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mWebkitTextStrokeColor as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mWebkitTextStrokeColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTabSize as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTabSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mWordSpacing as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mWordSpacing ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mLetterSpacing as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mLetterSpacing ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mLineHeight as * const _ as usize } , 96usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mLineHeight ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextIndent as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextIndent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mWebkitTextStrokeWidth as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mWebkitTextStrokeWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextShadow as * const _ as usize } , 136usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextShadow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleText ) ) . mTextEmphasisStyleString as * const _ as usize } , 144usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleText ) , "::" , stringify ! ( mTextEmphasisStyleString ) ) ) ; } impl nsStyleText { # [ inline ] pub fn mTextAlignTrue ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x1 as u8 ; let val = ( unit_field_val & mask ) >> 0usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mTextAlignTrue ( & mut self , val : bool ) { let mask = 0x1 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 0usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn mTextAlignLastTrue ( & self ) -> bool { let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; let mask = 0x2 as u8 ; let val = ( unit_field_val & mask ) >> 1usize ; unsafe { :: std :: mem :: transmute ( val as u8 ) } } # [ inline ] pub fn set_mTextAlignLastTrue ( & mut self , val : bool ) { let mask = 0x2 as u8 ; let val = val as u8 as u8 ; let mut unit_field_val : u8 = unsafe { :: std :: mem :: uninitialized ( ) } ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & self . _bitfield_1 as * const _ as * const u8 , & mut unit_field_val as * mut u8 as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) } ; unit_field_val &= ! mask ; unit_field_val |= ( val << 1usize ) & mask ; unsafe { :: std :: ptr :: copy_nonoverlapping ( & unit_field_val as * const _ as * const u8 , & mut self . _bitfield_1 as * mut _ as * mut u8 , :: std :: mem :: size_of :: < u8 > ( ) , ) ; } } # [ inline ] pub fn new_bitfield_1 ( mTextAlignTrue : bool , mTextAlignLastTrue : bool ) -> u8 { ( ( 0 | ( ( mTextAlignTrue as u8 as u8 ) << 0usize ) & ( 0x1 as u8 ) ) | ( ( mTextAlignLastTrue as u8 as u8 ) << 1usize ) & ( 0x2 as u8 ) ) } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleImageOrientation { pub mOrientation : u8 , } pub const nsStyleImageOrientation_Bits_ORIENTATION_MASK : root :: nsStyleImageOrientation_Bits = 3 ; pub const nsStyleImageOrientation_Bits_FLIP_MASK : root :: nsStyleImageOrientation_Bits = 4 ; pub const nsStyleImageOrientation_Bits_FROM_IMAGE_MASK : root :: nsStyleImageOrientation_Bits = 8 ; pub type nsStyleImageOrientation_Bits = :: std :: os :: raw :: c_uint ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleImageOrientation_Angles { ANGLE_0 = 0 , ANGLE_90 = 1 , ANGLE_180 = 2 , ANGLE_270 = 3 , } # [ test ] fn bindgen_test_layout_nsStyleImageOrientation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleImageOrientation > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( nsStyleImageOrientation ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleImageOrientation > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( nsStyleImageOrientation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleImageOrientation ) ) . mOrientation as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleImageOrientation ) , "::" , stringify ! ( mOrientation ) ) ) ; } impl Clone for nsStyleImageOrientation { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleVisibility { pub mImageOrientation : root :: nsStyleImageOrientation , pub mDirection : u8 , pub mVisible : u8 , pub mImageRendering : u8 , pub mWritingMode : u8 , pub mTextOrientation : u8 , pub mColorAdjust : u8 , } pub const nsStyleVisibility_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleVisibility ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleVisibility > ( ) , 7usize , concat ! ( "Size of: " , stringify ! ( nsStyleVisibility ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleVisibility > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( nsStyleVisibility ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mImageOrientation as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mImageOrientation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mDirection as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mDirection ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mVisible as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mVisible ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mImageRendering as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mImageRendering ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mWritingMode as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mWritingMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mTextOrientation as * const _ as usize } , 5usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mTextOrientation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVisibility ) ) . mColorAdjust as * const _ as usize } , 6usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVisibility ) , "::" , stringify ! ( mColorAdjust ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsTimingFunction { pub mType : root :: nsTimingFunction_Type , pub __bindgen_anon_1 : root :: nsTimingFunction__bindgen_ty_1 , } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsTimingFunction_Type { Ease = 0 , Linear = 1 , EaseIn = 2 , EaseOut = 3 , EaseInOut = 4 , StepStart = 5 , StepEnd = 6 , CubicBezier = 7 , Frames = 8 , } pub const nsTimingFunction_Keyword_Implicit : root :: nsTimingFunction_Keyword = 0 ; pub const nsTimingFunction_Keyword_Explicit : root :: nsTimingFunction_Keyword = 1 ; pub type nsTimingFunction_Keyword = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsTimingFunction__bindgen_ty_1 { pub mFunc : root :: __BindgenUnionField < root :: nsTimingFunction__bindgen_ty_1__bindgen_ty_1 > , pub __bindgen_anon_1 : root :: __BindgenUnionField < root :: nsTimingFunction__bindgen_ty_1__bindgen_ty_2 > , pub bindgen_union_field : [ u32 ; 4usize ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsTimingFunction__bindgen_ty_1__bindgen_ty_1 { pub mX1 : f32 , pub mY1 : f32 , pub mX2 : f32 , pub mY2 : f32 , } # [ test ] fn bindgen_test_layout_nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsTimingFunction__bindgen_ty_1__bindgen_ty_1 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsTimingFunction__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) ) . mX1 as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mX1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) ) . mY1 as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mY1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) ) . mX2 as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mX2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) ) . mY2 as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mY2 ) ) ) ; } impl Clone for nsTimingFunction__bindgen_ty_1__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsTimingFunction__bindgen_ty_1__bindgen_ty_2 { pub mStepsOrFrames : u32 , } # [ test ] fn bindgen_test_layout_nsTimingFunction__bindgen_ty_1__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsTimingFunction__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsTimingFunction__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction__bindgen_ty_1__bindgen_ty_2 ) ) . mStepsOrFrames as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( mStepsOrFrames ) ) ) ; } impl Clone for nsTimingFunction__bindgen_ty_1__bindgen_ty_2 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsTimingFunction__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsTimingFunction__bindgen_ty_1 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsTimingFunction__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsTimingFunction__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsTimingFunction__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction__bindgen_ty_1 ) ) . mFunc as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction__bindgen_ty_1 ) , "::" , stringify ! ( mFunc ) ) ) ; } impl Clone for nsTimingFunction__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsTimingFunction ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsTimingFunction > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( nsTimingFunction ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsTimingFunction > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsTimingFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsTimingFunction ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsTimingFunction ) , "::" , stringify ! ( mType ) ) ) ; } impl Clone for nsTimingFunction { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleDisplay { pub mBinding : root :: RefPtr < root :: mozilla :: css :: URLValue > , pub mDisplay : root :: mozilla :: StyleDisplay , pub mOriginalDisplay : root :: mozilla :: StyleDisplay , pub mContain : u8 , pub mAppearance : u8 , pub mPosition : u8 , pub mFloat : root :: mozilla :: StyleFloat , pub mOriginalFloat : root :: mozilla :: StyleFloat , pub mBreakType : root :: mozilla :: StyleClear , pub mBreakInside : u8 , pub mBreakBefore : bool , pub mBreakAfter : bool , pub mOverflowX : u8 , pub mOverflowY : u8 , pub mOverflowClipBoxBlock : u8 , pub mOverflowClipBoxInline : u8 , pub mResize : u8 , pub mOrient : root :: mozilla :: StyleOrient , pub mIsolation : u8 , pub mTopLayer : u8 , pub mWillChangeBitField : u8 , pub mWillChange : root :: nsTArray < root :: RefPtr < root :: nsAtom > > , pub mTouchAction : u8 , pub mScrollBehavior : u8 , pub mOverscrollBehaviorX : root :: mozilla :: StyleOverscrollBehavior , pub mOverscrollBehaviorY : root :: mozilla :: StyleOverscrollBehavior , pub mScrollSnapTypeX : u8 , pub mScrollSnapTypeY : u8 , pub mScrollSnapPointsX : root :: nsStyleCoord , pub mScrollSnapPointsY : root :: nsStyleCoord , pub mScrollSnapDestination : root :: mozilla :: Position , pub mScrollSnapCoordinate : root :: nsTArray < root :: mozilla :: Position > , pub mBackfaceVisibility : u8 , pub mTransformStyle : u8 , pub mTransformBox : root :: nsStyleDisplay_StyleGeometryBox , pub mSpecifiedTransform : root :: RefPtr < root :: nsCSSValueSharedList > , pub mTransformOrigin : [ root :: nsStyleCoord ; 3usize ] , pub mChildPerspective : root :: nsStyleCoord , pub mPerspectiveOrigin : [ root :: nsStyleCoord ; 2usize ] , pub mVerticalAlign : root :: nsStyleCoord , pub mTransitions : root :: nsStyleAutoArray < root :: mozilla :: StyleTransition > , pub mTransitionTimingFunctionCount : u32 , pub mTransitionDurationCount : u32 , pub mTransitionDelayCount : u32 , pub mTransitionPropertyCount : u32 , pub mAnimations : root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > , pub mAnimationTimingFunctionCount : u32 , pub mAnimationDurationCount : u32 , pub mAnimationDelayCount : u32 , pub mAnimationNameCount : u32 , pub mAnimationDirectionCount : u32 , pub mAnimationFillModeCount : u32 , pub mAnimationPlayStateCount : u32 , pub mAnimationIterationCountCount : u32 , pub mShapeImageThreshold : f32 , pub mShapeOutside : root :: mozilla :: StyleShapeSource , } pub use self :: super :: root :: mozilla :: StyleGeometryBox as nsStyleDisplay_StyleGeometryBox ; pub const nsStyleDisplay_kHasFinishStyle : bool = true ; # [ test ] fn bindgen_test_layout_nsStyleDisplay ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleDisplay > ( ) , 424usize , concat ! ( "Size of: " , stringify ! ( nsStyleDisplay ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleDisplay > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleDisplay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mBinding as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mBinding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mDisplay as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mDisplay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOriginalDisplay as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOriginalDisplay ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mContain as * const _ as usize } , 10usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mContain ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAppearance as * const _ as usize } , 11usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAppearance ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mPosition as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mFloat as * const _ as usize } , 13usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mFloat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOriginalFloat as * const _ as usize } , 14usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOriginalFloat ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mBreakType as * const _ as usize } , 15usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mBreakType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mBreakInside as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mBreakInside ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mBreakBefore as * const _ as usize } , 17usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mBreakBefore ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mBreakAfter as * const _ as usize } , 18usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mBreakAfter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOverflowX as * const _ as usize } , 19usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOverflowX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOverflowY as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOverflowY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOverflowClipBoxBlock as * const _ as usize } , 21usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOverflowClipBoxBlock ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOverflowClipBoxInline as * const _ as usize } , 22usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOverflowClipBoxInline ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mResize as * const _ as usize } , 23usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mResize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOrient as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOrient ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mIsolation as * const _ as usize } , 25usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mIsolation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTopLayer as * const _ as usize } , 26usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTopLayer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mWillChangeBitField as * const _ as usize } , 27usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mWillChangeBitField ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mWillChange as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mWillChange ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTouchAction as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTouchAction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollBehavior as * const _ as usize } , 41usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollBehavior ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOverscrollBehaviorX as * const _ as usize } , 42usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOverscrollBehaviorX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mOverscrollBehaviorY as * const _ as usize } , 43usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mOverscrollBehaviorY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollSnapTypeX as * const _ as usize } , 44usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollSnapTypeX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollSnapTypeY as * const _ as usize } , 45usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollSnapTypeY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollSnapPointsX as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollSnapPointsX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollSnapPointsY as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollSnapPointsY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollSnapDestination as * const _ as usize } , 80usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollSnapDestination ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mScrollSnapCoordinate as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mScrollSnapCoordinate ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mBackfaceVisibility as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mBackfaceVisibility ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransformStyle as * const _ as usize } , 113usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransformStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransformBox as * const _ as usize } , 114usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransformBox ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mSpecifiedTransform as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mSpecifiedTransform ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransformOrigin as * const _ as usize } , 128usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransformOrigin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mChildPerspective as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mChildPerspective ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mPerspectiveOrigin as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mPerspectiveOrigin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mVerticalAlign as * const _ as usize } , 224usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mVerticalAlign ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransitions as * const _ as usize } , 240usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransitions ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransitionTimingFunctionCount as * const _ as usize } , 288usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransitionTimingFunctionCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransitionDurationCount as * const _ as usize } , 292usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransitionDurationCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransitionDelayCount as * const _ as usize } , 296usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransitionDelayCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mTransitionPropertyCount as * const _ as usize } , 300usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mTransitionPropertyCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimations as * const _ as usize } , 304usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimations ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationTimingFunctionCount as * const _ as usize } , 360usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationTimingFunctionCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationDurationCount as * const _ as usize } , 364usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationDurationCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationDelayCount as * const _ as usize } , 368usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationDelayCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationNameCount as * const _ as usize } , 372usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationNameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationDirectionCount as * const _ as usize } , 376usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationDirectionCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationFillModeCount as * const _ as usize } , 380usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationFillModeCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationPlayStateCount as * const _ as usize } , 384usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationPlayStateCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mAnimationIterationCountCount as * const _ as usize } , 388usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mAnimationIterationCountCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mShapeImageThreshold as * const _ as usize } , 392usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mShapeImageThreshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleDisplay ) ) . mShapeOutside as * const _ as usize } , 400usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleDisplay ) , "::" , stringify ! ( mShapeOutside ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleTable { pub mLayoutStrategy : u8 , pub mSpan : i32 , } pub const nsStyleTable_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleTable > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStyleTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleTable > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTable ) ) . mLayoutStrategy as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTable ) , "::" , stringify ! ( mLayoutStrategy ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTable ) ) . mSpan as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTable ) , "::" , stringify ! ( mSpan ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleTableBorder { pub mBorderSpacingCol : root :: nscoord , pub mBorderSpacingRow : root :: nscoord , pub mBorderCollapse : u8 , pub mCaptionSide : u8 , pub mEmptyCells : u8 , } pub const nsStyleTableBorder_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleTableBorder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleTableBorder > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( nsStyleTableBorder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleTableBorder > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleTableBorder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTableBorder ) ) . mBorderSpacingCol as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTableBorder ) , "::" , stringify ! ( mBorderSpacingCol ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTableBorder ) ) . mBorderSpacingRow as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTableBorder ) , "::" , stringify ! ( mBorderSpacingRow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTableBorder ) ) . mBorderCollapse as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTableBorder ) , "::" , stringify ! ( mBorderCollapse ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTableBorder ) ) . mCaptionSide as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTableBorder ) , "::" , stringify ! ( mCaptionSide ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleTableBorder ) ) . mEmptyCells as * const _ as usize } , 10usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleTableBorder ) , "::" , stringify ! ( mEmptyCells ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleContentType { eStyleContentType_String = 1 , eStyleContentType_Image = 10 , eStyleContentType_Attr = 20 , eStyleContentType_Counter = 30 , eStyleContentType_Counters = 31 , eStyleContentType_OpenQuote = 40 , eStyleContentType_CloseQuote = 41 , eStyleContentType_NoOpenQuote = 42 , eStyleContentType_NoCloseQuote = 43 , eStyleContentType_AltContent = 50 , eStyleContentType_Uninitialized = 51 , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleContentData { pub mType : root :: nsStyleContentType , pub mContent : root :: nsStyleContentData__bindgen_ty_1 , } # [ repr ( C ) ] pub struct nsStyleContentData_CounterFunction { pub mIdent : ::nsstring::nsStringRepr , pub mSeparator : ::nsstring::nsStringRepr , pub mCounterStyle : root :: mozilla :: CounterStylePtr , pub mRefCnt : root :: mozilla :: ThreadSafeAutoRefCnt , } pub type nsStyleContentData_CounterFunction_HasThreadSafeRefCnt = root :: mozilla :: TrueType ; # [ test ] fn bindgen_test_layout_nsStyleContentData_CounterFunction ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleContentData_CounterFunction > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( nsStyleContentData_CounterFunction ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleContentData_CounterFunction > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleContentData_CounterFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData_CounterFunction ) ) . mIdent as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData_CounterFunction ) , "::" , stringify ! ( mIdent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData_CounterFunction ) ) . mSeparator as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData_CounterFunction ) , "::" , stringify ! ( mSeparator ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData_CounterFunction ) ) . mCounterStyle as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData_CounterFunction ) , "::" , stringify ! ( mCounterStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData_CounterFunction ) ) . mRefCnt as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData_CounterFunction ) , "::" , stringify ! ( mRefCnt ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleContentData__bindgen_ty_1 { pub mString : root :: __BindgenUnionField < * mut u16 > , pub mImage : root :: __BindgenUnionField < * mut root :: nsStyleImageRequest > , pub mCounters : root :: __BindgenUnionField < * mut root :: nsStyleContentData_CounterFunction > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsStyleContentData__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleContentData__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStyleContentData__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleContentData__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleContentData__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData__bindgen_ty_1 ) ) . mString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData__bindgen_ty_1 ) , "::" , stringify ! ( mString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData__bindgen_ty_1 ) ) . mImage as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData__bindgen_ty_1 ) , "::" , stringify ! ( mImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData__bindgen_ty_1 ) ) . mCounters as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData__bindgen_ty_1 ) , "::" , stringify ! ( mCounters ) ) ) ; } impl Clone for nsStyleContentData__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsStyleContentData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleContentData > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsStyleContentData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleContentData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleContentData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContentData ) ) . mContent as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContentData ) , "::" , stringify ! ( mContent ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleCounterData { pub mCounter : ::nsstring::nsStringRepr , pub mValue : i32 , } # [ test ] fn bindgen_test_layout_nsStyleCounterData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleCounterData > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleCounterData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleCounterData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleCounterData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCounterData ) ) . mCounter as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCounterData ) , "::" , stringify ! ( mCounter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleCounterData ) ) . mValue as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleCounterData ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleContent { pub mContents : root :: nsTArray < root :: nsStyleContentData > , pub mIncrements : root :: nsTArray < root :: nsStyleCounterData > , pub mResets : root :: nsTArray < root :: nsStyleCounterData > , } pub const nsStyleContent_kHasFinishStyle : bool = true ; # [ test ] fn bindgen_test_layout_nsStyleContent ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleContent > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleContent ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleContent > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleContent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContent ) ) . mContents as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContent ) , "::" , stringify ! ( mContents ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContent ) ) . mIncrements as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContent ) , "::" , stringify ! ( mIncrements ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContent ) ) . mResets as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContent ) , "::" , stringify ! ( mResets ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleUIReset { pub mUserSelect : root :: mozilla :: StyleUserSelect , pub mForceBrokenImageIcon : u8 , pub mIMEMode : u8 , pub mWindowDragging : root :: mozilla :: StyleWindowDragging , pub mWindowShadow : u8 , pub mWindowOpacity : f32 , pub mSpecifiedWindowTransform : root :: RefPtr < root :: nsCSSValueSharedList > , pub mWindowTransformOrigin : [ root :: nsStyleCoord ; 2usize ] , } pub const nsStyleUIReset_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleUIReset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleUIReset > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( nsStyleUIReset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleUIReset > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleUIReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mUserSelect as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mUserSelect ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mForceBrokenImageIcon as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mForceBrokenImageIcon ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mIMEMode as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mIMEMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mWindowDragging as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mWindowDragging ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mWindowShadow as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mWindowShadow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mWindowOpacity as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mWindowOpacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mSpecifiedWindowTransform as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mSpecifiedWindowTransform ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUIReset ) ) . mWindowTransformOrigin as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUIReset ) , "::" , stringify ! ( mWindowTransformOrigin ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCursorImage { pub mHaveHotspot : bool , pub mHotspotX : f32 , pub mHotspotY : f32 , pub mImage : root :: RefPtr < root :: nsStyleImageRequest > , } # [ test ] fn bindgen_test_layout_nsCursorImage ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCursorImage > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsCursorImage ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCursorImage > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCursorImage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCursorImage ) ) . mHaveHotspot as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsCursorImage ) , "::" , stringify ! ( mHaveHotspot ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCursorImage ) ) . mHotspotX as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsCursorImage ) , "::" , stringify ! ( mHotspotX ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCursorImage ) ) . mHotspotY as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsCursorImage ) , "::" , stringify ! ( mHotspotY ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCursorImage ) ) . mImage as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsCursorImage ) , "::" , stringify ! ( mImage ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleUserInterface { pub mUserInput : root :: mozilla :: StyleUserInput , pub mUserModify : root :: mozilla :: StyleUserModify , pub mUserFocus : root :: mozilla :: StyleUserFocus , pub mPointerEvents : u8 , pub mCursor : u8 , pub mCursorImages : root :: nsTArray < root :: nsCursorImage > , pub mCaretColor : root :: mozilla :: StyleComplexColor , } pub const nsStyleUserInterface_kHasFinishStyle : bool = true ; # [ test ] fn bindgen_test_layout_nsStyleUserInterface ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleUserInterface > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsStyleUserInterface ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleUserInterface > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleUserInterface ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mUserInput as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mUserInput ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mUserModify as * const _ as usize } , 1usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mUserModify ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mUserFocus as * const _ as usize } , 2usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mUserFocus ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mPointerEvents as * const _ as usize } , 3usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mPointerEvents ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mCursor as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mCursor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mCursorImages as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mCursorImages ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleUserInterface ) ) . mCaretColor as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleUserInterface ) , "::" , stringify ! ( mCaretColor ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleXUL { pub mBoxFlex : f32 , pub mBoxOrdinal : u32 , pub mBoxAlign : root :: mozilla :: StyleBoxAlign , pub mBoxDirection : root :: mozilla :: StyleBoxDirection , pub mBoxOrient : root :: mozilla :: StyleBoxOrient , pub mBoxPack : root :: mozilla :: StyleBoxPack , pub mStackSizing : root :: mozilla :: StyleStackSizing , } pub const nsStyleXUL_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleXUL ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleXUL > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsStyleXUL ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleXUL > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsStyleXUL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mBoxFlex as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mBoxFlex ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mBoxOrdinal as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mBoxOrdinal ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mBoxAlign as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mBoxAlign ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mBoxDirection as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mBoxDirection ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mBoxOrient as * const _ as usize } , 10usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mBoxOrient ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mBoxPack as * const _ as usize } , 11usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mBoxPack ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleXUL ) ) . mStackSizing as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleXUL ) , "::" , stringify ! ( mStackSizing ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleColumn { pub mColumnCount : u32 , pub mColumnWidth : root :: nsStyleCoord , pub mColumnGap : root :: nsStyleCoord , pub mColumnRuleColor : root :: mozilla :: StyleComplexColor , pub mColumnRuleStyle : u8 , pub mColumnFill : u8 , pub mColumnSpan : u8 , pub mColumnRuleWidth : root :: nscoord , pub mTwipsPerPixel : root :: nscoord , } pub const nsStyleColumn_kHasFinishStyle : bool = false ; pub const nsStyleColumn_kMaxColumnCount : u32 = 1000 ; # [ test ] fn bindgen_test_layout_nsStyleColumn ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleColumn > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( nsStyleColumn ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleColumn > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleColumn ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnCount as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnWidth as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnGap as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnGap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnRuleColor as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnRuleColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnRuleStyle as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnRuleStyle ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnFill as * const _ as usize } , 49usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnFill ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnSpan as * const _ as usize } , 50usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnSpan ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mColumnRuleWidth as * const _ as usize } , 52usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mColumnRuleWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleColumn ) ) . mTwipsPerPixel as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleColumn ) , "::" , stringify ! ( mTwipsPerPixel ) ) ) ; } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleSVGPaintType { eStyleSVGPaintType_None = 1 , eStyleSVGPaintType_Color = 2 , eStyleSVGPaintType_Server = 3 , eStyleSVGPaintType_ContextFill = 4 , eStyleSVGPaintType_ContextStroke = 5 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleSVGFallbackType { eStyleSVGFallbackType_NotSet = 0 , eStyleSVGFallbackType_None = 1 , eStyleSVGFallbackType_Color = 2 , } # [ repr ( u8 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsStyleSVGOpacitySource { eStyleSVGOpacitySource_Normal = 0 , eStyleSVGOpacitySource_ContextFillOpacity = 1 , eStyleSVGOpacitySource_ContextStrokeOpacity = 2 , } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleSVGPaint { pub mPaint : root :: nsStyleSVGPaint__bindgen_ty_1 , pub mType : root :: nsStyleSVGPaintType , pub mFallbackType : root :: nsStyleSVGFallbackType , pub mFallbackColor : root :: nscolor , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleSVGPaint__bindgen_ty_1 { pub mColor : root :: __BindgenUnionField < root :: nscolor > , pub mPaintServer : root :: __BindgenUnionField < * mut root :: mozilla :: css :: URLValue > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleSVGPaint__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStyleSVGPaint__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleSVGPaint__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleSVGPaint__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGPaint__bindgen_ty_1 ) ) . mColor as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGPaint__bindgen_ty_1 ) , "::" , stringify ! ( mColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGPaint__bindgen_ty_1 ) ) . mPaintServer as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGPaint__bindgen_ty_1 ) , "::" , stringify ! ( mPaintServer ) ) ) ; } impl Clone for nsStyleSVGPaint__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsStyleSVGPaint ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleSVGPaint > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsStyleSVGPaint ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleSVGPaint > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleSVGPaint ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGPaint ) ) . mPaint as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGPaint ) , "::" , stringify ! ( mPaint ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGPaint ) ) . mType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGPaint ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGPaint ) ) . mFallbackType as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGPaint ) , "::" , stringify ! ( mFallbackType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGPaint ) ) . mFallbackColor as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGPaint ) , "::" , stringify ! ( mFallbackColor ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleSVG { pub mFill : root :: nsStyleSVGPaint , pub mStroke : root :: nsStyleSVGPaint , pub mMarkerEnd : root :: RefPtr < root :: mozilla :: css :: URLValue > , pub mMarkerMid : root :: RefPtr < root :: mozilla :: css :: URLValue > , pub mMarkerStart : root :: RefPtr < root :: mozilla :: css :: URLValue > , pub mStrokeDasharray : root :: nsTArray < root :: nsStyleCoord > , pub mContextProps : root :: nsTArray < root :: RefPtr < root :: nsAtom > > , pub mStrokeDashoffset : root :: nsStyleCoord , pub mStrokeWidth : root :: nsStyleCoord , pub mFillOpacity : f32 , pub mStrokeMiterlimit : f32 , pub mStrokeOpacity : f32 , pub mClipRule : root :: mozilla :: StyleFillRule , pub mColorInterpolation : u8 , pub mColorInterpolationFilters : u8 , pub mFillRule : root :: mozilla :: StyleFillRule , pub mPaintOrder : u8 , pub mShapeRendering : u8 , pub mStrokeLinecap : u8 , pub mStrokeLinejoin : u8 , pub mTextAnchor : u8 , pub mContextPropsBits : u8 , pub mContextFlags : u8 , } pub const nsStyleSVG_kHasFinishStyle : bool = false ; pub const nsStyleSVG_FILL_OPACITY_SOURCE_MASK : u8 = 3 ; pub const nsStyleSVG_STROKE_OPACITY_SOURCE_MASK : u8 = 12 ; pub const nsStyleSVG_STROKE_DASHARRAY_CONTEXT : u8 = 16 ; pub const nsStyleSVG_STROKE_DASHOFFSET_CONTEXT : u8 = 32 ; pub const nsStyleSVG_STROKE_WIDTH_CONTEXT : u8 = 64 ; pub const nsStyleSVG_FILL_OPACITY_SOURCE_SHIFT : u8 = 0 ; pub const nsStyleSVG_STROKE_OPACITY_SOURCE_SHIFT : u8 = 2 ; # [ test ] fn bindgen_test_layout_nsStyleSVG ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleSVG > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( nsStyleSVG ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleSVG > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleSVG ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mFill as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mFill ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStroke as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStroke ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mMarkerEnd as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mMarkerEnd ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mMarkerMid as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mMarkerMid ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mMarkerStart as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mMarkerStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeDasharray as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeDasharray ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mContextProps as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mContextProps ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeDashoffset as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeDashoffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeWidth as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeWidth ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mFillOpacity as * const _ as usize } , 104usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mFillOpacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeMiterlimit as * const _ as usize } , 108usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeMiterlimit ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeOpacity as * const _ as usize } , 112usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeOpacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mClipRule as * const _ as usize } , 116usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mClipRule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mColorInterpolation as * const _ as usize } , 117usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mColorInterpolation ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mColorInterpolationFilters as * const _ as usize } , 118usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mColorInterpolationFilters ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mFillRule as * const _ as usize } , 119usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mFillRule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mPaintOrder as * const _ as usize } , 120usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mPaintOrder ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mShapeRendering as * const _ as usize } , 121usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mShapeRendering ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeLinecap as * const _ as usize } , 122usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeLinecap ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mStrokeLinejoin as * const _ as usize } , 123usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mStrokeLinejoin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mTextAnchor as * const _ as usize } , 124usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mTextAnchor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mContextPropsBits as * const _ as usize } , 125usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mContextPropsBits ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVG ) ) . mContextFlags as * const _ as usize } , 126usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVG ) , "::" , stringify ! ( mContextFlags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleFilter { pub mType : u32 , pub mFilterParameter : root :: nsStyleCoord , pub __bindgen_anon_1 : root :: nsStyleFilter__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStyleFilter__bindgen_ty_1 { pub mURL : root :: __BindgenUnionField < * mut root :: mozilla :: css :: URLValue > , pub mDropShadow : root :: __BindgenUnionField < * mut root :: nsCSSShadowArray > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsStyleFilter__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleFilter__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStyleFilter__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleFilter__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleFilter__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFilter__bindgen_ty_1 ) ) . mURL as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFilter__bindgen_ty_1 ) , "::" , stringify ! ( mURL ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFilter__bindgen_ty_1 ) ) . mDropShadow as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFilter__bindgen_ty_1 ) , "::" , stringify ! ( mDropShadow ) ) ) ; } impl Clone for nsStyleFilter__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } pub const nsStyleFilter_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleFilter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleFilter > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsStyleFilter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleFilter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleFilter ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFilter ) ) . mType as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFilter ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleFilter ) ) . mFilterParameter as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleFilter ) , "::" , stringify ! ( mFilterParameter ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleSVGReset { pub mMask : root :: nsStyleImageLayers , pub mClipPath : root :: mozilla :: StyleShapeSource , pub mStopColor : root :: nscolor , pub mFloodColor : root :: nscolor , pub mLightingColor : root :: nscolor , pub mStopOpacity : f32 , pub mFloodOpacity : f32 , pub mDominantBaseline : u8 , pub mVectorEffect : u8 , pub mMaskType : u8 , } pub const nsStyleSVGReset_kHasFinishStyle : bool = true ; # [ test ] fn bindgen_test_layout_nsStyleSVGReset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleSVGReset > ( ) , 200usize , concat ! ( "Size of: " , stringify ! ( nsStyleSVGReset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleSVGReset > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleSVGReset ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mMask as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mMask ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mClipPath as * const _ as usize } , 152usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mClipPath ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mStopColor as * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mStopColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mFloodColor as * const _ as usize } , 180usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mFloodColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mLightingColor as * const _ as usize } , 184usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mLightingColor ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mStopOpacity as * const _ as usize } , 188usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mStopOpacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mFloodOpacity as * const _ as usize } , 192usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mFloodOpacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mDominantBaseline as * const _ as usize } , 196usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mDominantBaseline ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mVectorEffect as * const _ as usize } , 197usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mVectorEffect ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleSVGReset ) ) . mMaskType as * const _ as usize } , 198usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleSVGReset ) , "::" , stringify ! ( mMaskType ) ) ) ; } # [ repr ( C ) ] pub struct nsStyleVariables { pub mVariables : root :: mozilla :: CSSVariableValues , } pub const nsStyleVariables_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleVariables ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleVariables > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsStyleVariables ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleVariables > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleVariables ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleVariables ) ) . mVariables as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleVariables ) , "::" , stringify ! ( mVariables ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleEffects { pub mFilters : root :: nsTArray < root :: nsStyleFilter > , pub mBoxShadow : root :: RefPtr < root :: nsCSSShadowArray > , pub mClip : root :: nsRect , pub mOpacity : f32 , pub mClipFlags : u8 , pub mMixBlendMode : u8 , } pub const nsStyleEffects_kHasFinishStyle : bool = false ; # [ test ] fn bindgen_test_layout_nsStyleEffects ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleEffects > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsStyleEffects ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleEffects > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleEffects ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleEffects ) ) . mFilters as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mFilters ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleEffects ) ) . mBoxShadow as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mBoxShadow ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleEffects ) ) . mClip as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mClip ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleEffects ) ) . mOpacity as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mOpacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleEffects ) ) . mClipFlags as * const _ as usize } , 36usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mClipFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleEffects ) ) . mMixBlendMode as * const _ as usize } , 37usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mMixBlendMode ) ) ) ; }
- /// These *_Simple types are used to map Gecko types to layout-equivalent but
+ /// to share the same 'quotes' value with a parent style context.
+ #[repr(C)]
+ pub struct nsStyleQuoteValues {
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ pub mQuotePairs: root::nsStyleQuoteValues_QuotePairArray,
+ }
+ pub type nsStyleQuoteValues_QuotePairArray =
+ root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>;
+ pub type nsStyleQuoteValues_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsStyleQuoteValues() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleQuoteValues>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsStyleQuoteValues))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleQuoteValues>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleQuoteValues))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleQuoteValues>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleQuoteValues),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleQuoteValues>())).mQuotePairs as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleQuoteValues),
+ "::",
+ stringify!(mQuotePairs)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleList {
+ pub mListStylePosition: u8,
+ pub mListStyleImage: root::RefPtr<root::nsStyleImageRequest>,
+ pub mCounterStyle: root::mozilla::CounterStylePtr,
+ pub mQuotes: root::RefPtr<root::nsStyleQuoteValues>,
+ pub mImageRegion: root::nsRect,
+ }
+ pub const nsStyleList_kHasFinishStyle: bool = true;
+ extern "C" {
+ #[link_name = "\u{1}_ZN11nsStyleList14sInitialQuotesE"]
+ pub static mut nsStyleList_sInitialQuotes:
+ root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN11nsStyleList11sNoneQuotesE"]
+ pub static mut nsStyleList_sNoneQuotes:
+ root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>;
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleList() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleList>(),
+ 48usize,
+ concat!("Size of: ", stringify!(nsStyleList))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleList>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleList))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleList>())).mListStylePosition as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleList),
+ "::",
+ stringify!(mListStylePosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleList>())).mListStyleImage as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleList),
+ "::",
+ stringify!(mListStyleImage)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleList>())).mCounterStyle as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleList),
+ "::",
+ stringify!(mCounterStyle)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleList>())).mQuotes as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleList),
+ "::",
+ stringify!(mQuotes)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleList>())).mImageRegion as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleList),
+ "::",
+ stringify!(mImageRegion)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_StaticRefPtr_open0_nsStyleQuoteValues_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_StaticRefPtr_open0_nsStyleQuoteValues_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleGridLine {
+ pub mHasSpan: bool,
+ pub mInteger: i32,
+ pub mLineName: ::nsstring::nsStringRepr,
+ }
+ pub const nsStyleGridLine_kMinLine: i32 = -10000;
+ pub const nsStyleGridLine_kMaxLine: i32 = 10000;
+ #[test]
+ fn bindgen_test_layout_nsStyleGridLine() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleGridLine>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleGridLine))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleGridLine>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleGridLine))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGridLine>())).mHasSpan as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridLine),
+ "::",
+ stringify!(mHasSpan)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGridLine>())).mInteger as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridLine),
+ "::",
+ stringify!(mInteger)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleGridLine>())).mLineName as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridLine),
+ "::",
+ stringify!(mLineName)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleGridTemplate {
+ pub mLineNameLists: root::nsTArray<root::nsTArray<::nsstring::nsStringRepr>>,
+ pub mMinTrackSizingFunctions: root::nsTArray<root::nsStyleCoord>,
+ pub mMaxTrackSizingFunctions: root::nsTArray<root::nsStyleCoord>,
+ pub mRepeatAutoLineNameListBefore: root::nsTArray<::nsstring::nsStringRepr>,
+ pub mRepeatAutoLineNameListAfter: root::nsTArray<::nsstring::nsStringRepr>,
+ pub mRepeatAutoIndex: i16,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 1usize], u8>,
+ pub __bindgen_padding_0: [u8; 5usize],
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleGridTemplate() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleGridTemplate>(),
+ 48usize,
+ concat!("Size of: ", stringify!(nsStyleGridTemplate))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleGridTemplate>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleGridTemplate))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGridTemplate>())).mLineNameLists as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridTemplate),
+ "::",
+ stringify!(mLineNameLists)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGridTemplate>())).mMinTrackSizingFunctions as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridTemplate),
+ "::",
+ stringify!(mMinTrackSizingFunctions)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGridTemplate>())).mMaxTrackSizingFunctions as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridTemplate),
+ "::",
+ stringify!(mMaxTrackSizingFunctions)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGridTemplate>())).mRepeatAutoLineNameListBefore
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridTemplate),
+ "::",
+ stringify!(mRepeatAutoLineNameListBefore)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGridTemplate>())).mRepeatAutoLineNameListAfter
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridTemplate),
+ "::",
+ stringify!(mRepeatAutoLineNameListAfter)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleGridTemplate>())).mRepeatAutoIndex as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleGridTemplate),
+ "::",
+ stringify!(mRepeatAutoIndex)
+ )
+ );
+ }
+ impl nsStyleGridTemplate {
+ #[inline]
+ pub fn mIsAutoFill(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsAutoFill(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mIsSubgrid(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mIsSubgrid(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mIsAutoFill: bool,
+ mIsSubgrid: bool,
+ ) -> root::__BindgenBitfieldUnit<[u8; 1usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 1usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mIsAutoFill: u8 = unsafe { ::std::mem::transmute(mIsAutoFill) };
+ mIsAutoFill as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mIsSubgrid: u8 = unsafe { ::std::mem::transmute(mIsSubgrid) };
+ mIsSubgrid as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ pub struct nsStylePosition {
+ pub mObjectPosition: root::mozilla::Position,
+ pub mOffset: root::nsStyleSides,
+ pub mWidth: root::nsStyleCoord,
+ pub mMinWidth: root::nsStyleCoord,
+ pub mMaxWidth: root::nsStyleCoord,
+ pub mHeight: root::nsStyleCoord,
+ pub mMinHeight: root::nsStyleCoord,
+ pub mMaxHeight: root::nsStyleCoord,
+ pub mFlexBasis: root::nsStyleCoord,
+ pub mGridAutoColumnsMin: root::nsStyleCoord,
+ pub mGridAutoColumnsMax: root::nsStyleCoord,
+ pub mGridAutoRowsMin: root::nsStyleCoord,
+ pub mGridAutoRowsMax: root::nsStyleCoord,
+ pub mGridAutoFlow: u8,
+ pub mBoxSizing: root::mozilla::StyleBoxSizing,
+ pub mAlignContent: u16,
+ pub mAlignItems: u8,
+ pub mAlignSelf: u8,
+ pub mJustifyContent: u16,
+ pub mSpecifiedJustifyItems: u8,
+ pub mJustifyItems: u8,
+ pub mJustifySelf: u8,
+ pub mFlexDirection: u8,
+ pub mFlexWrap: u8,
+ pub mObjectFit: u8,
+ pub mOrder: i32,
+ pub mFlexGrow: f32,
+ pub mFlexShrink: f32,
+ pub mZIndex: root::nsStyleCoord,
+ pub mGridTemplateColumns: root::mozilla::UniquePtr<root::nsStyleGridTemplate>,
+ pub mGridTemplateRows: root::mozilla::UniquePtr<root::nsStyleGridTemplate>,
+ pub mGridTemplateAreas: root::RefPtr<root::mozilla::css::GridTemplateAreasValue>,
+ pub mGridColumnStart: root::nsStyleGridLine,
+ pub mGridColumnEnd: root::nsStyleGridLine,
+ pub mGridRowStart: root::nsStyleGridLine,
+ pub mGridRowEnd: root::nsStyleGridLine,
+ pub mGridColumnGap: root::nsStyleCoord,
+ pub mGridRowGap: root::nsStyleCoord,
+ }
+ pub const nsStylePosition_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStylePosition() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStylePosition>(),
+ 440usize,
+ concat!("Size of: ", stringify!(nsStylePosition))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStylePosition>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStylePosition))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mObjectPosition as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mObjectPosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mOffset as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mOffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mWidth as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mMinWidth as *const _ as usize },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mMinWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mMaxWidth as *const _ as usize },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mMaxWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mHeight as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mHeight)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mMinHeight as *const _ as usize },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mMinHeight)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mMaxHeight as *const _ as usize },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mMaxHeight)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mFlexBasis as *const _ as usize },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mFlexBasis)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridAutoColumnsMin as *const _ as usize
+ },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridAutoColumnsMin)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridAutoColumnsMax as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridAutoColumnsMax)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridAutoRowsMin as *const _ as usize
+ },
+ 208usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridAutoRowsMin)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridAutoRowsMax as *const _ as usize
+ },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridAutoRowsMax)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridAutoFlow as *const _ as usize
+ },
+ 240usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridAutoFlow)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mBoxSizing as *const _ as usize },
+ 241usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mBoxSizing)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mAlignContent as *const _ as usize
+ },
+ 242usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mAlignContent)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mAlignItems as *const _ as usize },
+ 244usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mAlignItems)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mAlignSelf as *const _ as usize },
+ 245usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mAlignSelf)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mJustifyContent as *const _ as usize
+ },
+ 246usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mJustifyContent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mSpecifiedJustifyItems as *const _
+ as usize
+ },
+ 248usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mSpecifiedJustifyItems)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mJustifyItems as *const _ as usize
+ },
+ 249usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mJustifyItems)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mJustifySelf as *const _ as usize
+ },
+ 250usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mJustifySelf)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mFlexDirection as *const _ as usize
+ },
+ 251usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mFlexDirection)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mFlexWrap as *const _ as usize },
+ 252usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mFlexWrap)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mObjectFit as *const _ as usize },
+ 253usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mObjectFit)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mOrder as *const _ as usize },
+ 256usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mOrder)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mFlexGrow as *const _ as usize },
+ 260usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mFlexGrow)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mFlexShrink as *const _ as usize },
+ 264usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mFlexShrink)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mZIndex as *const _ as usize },
+ 272usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mZIndex)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridTemplateColumns as *const _
+ as usize
+ },
+ 288usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridTemplateColumns)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridTemplateRows as *const _ as usize
+ },
+ 296usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridTemplateRows)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridTemplateAreas as *const _ as usize
+ },
+ 304usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridTemplateAreas)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridColumnStart as *const _ as usize
+ },
+ 312usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridColumnStart)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridColumnEnd as *const _ as usize
+ },
+ 336usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridColumnEnd)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridRowStart as *const _ as usize
+ },
+ 360usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridRowStart)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mGridRowEnd as *const _ as usize },
+ 384usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridRowEnd)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStylePosition>())).mGridColumnGap as *const _ as usize
+ },
+ 408usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridColumnGap)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStylePosition>())).mGridRowGap as *const _ as usize },
+ 424usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStylePosition),
+ "::",
+ stringify!(mGridRowGap)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleTextOverflowSide {
+ pub mString: ::nsstring::nsStringRepr,
+ pub mType: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleTextOverflowSide() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleTextOverflowSide>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleTextOverflowSide))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleTextOverflowSide>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleTextOverflowSide))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextOverflowSide>())).mString as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextOverflowSide),
+ "::",
+ stringify!(mString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextOverflowSide>())).mType as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextOverflowSide),
+ "::",
+ stringify!(mType)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleTextOverflow {
+ pub mLeft: root::nsStyleTextOverflowSide,
+ pub mRight: root::nsStyleTextOverflowSide,
+ pub mLogicalDirections: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleTextOverflow() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleTextOverflow>(),
+ 56usize,
+ concat!("Size of: ", stringify!(nsStyleTextOverflow))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleTextOverflow>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleTextOverflow))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleTextOverflow>())).mLeft as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextOverflow),
+ "::",
+ stringify!(mLeft)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleTextOverflow>())).mRight as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextOverflow),
+ "::",
+ stringify!(mRight)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextOverflow>())).mLogicalDirections as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextOverflow),
+ "::",
+ stringify!(mLogicalDirections)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleTextReset {
+ pub mTextOverflow: root::nsStyleTextOverflow,
+ pub mTextDecorationLine: u8,
+ pub mTextDecorationStyle: u8,
+ pub mUnicodeBidi: u8,
+ pub mInitialLetterSink: root::nscoord,
+ pub mInitialLetterSize: f32,
+ pub mTextDecorationColor: root::mozilla::StyleComplexColor,
+ }
+ pub const nsStyleTextReset_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleTextReset() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleTextReset>(),
+ 80usize,
+ concat!("Size of: ", stringify!(nsStyleTextReset))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleTextReset>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleTextReset))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mTextOverflow as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mTextOverflow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mTextDecorationLine as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mTextDecorationLine)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mTextDecorationStyle as *const _
+ as usize
+ },
+ 57usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mTextDecorationStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mUnicodeBidi as *const _ as usize
+ },
+ 58usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mUnicodeBidi)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mInitialLetterSink as *const _ as usize
+ },
+ 60usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mInitialLetterSink)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mInitialLetterSize as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mInitialLetterSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTextReset>())).mTextDecorationColor as *const _
+ as usize
+ },
+ 68usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTextReset),
+ "::",
+ stringify!(mTextDecorationColor)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleText {
+ pub mTextAlign: u8,
+ pub mTextAlignLast: u8,
+ pub _bitfield_1: root::__BindgenBitfieldUnit<[u8; 1usize], u8>,
+ pub mTextJustify: root::mozilla::StyleTextJustify,
+ pub mTextTransform: u8,
+ pub mWhiteSpace: root::mozilla::StyleWhiteSpace,
+ pub mWordBreak: u8,
+ pub mOverflowWrap: u8,
+ pub mHyphens: root::mozilla::StyleHyphens,
+ pub mRubyAlign: u8,
+ pub mRubyPosition: u8,
+ pub mTextSizeAdjust: u8,
+ pub mTextCombineUpright: u8,
+ pub mControlCharacterVisibility: u8,
+ pub mTextEmphasisPosition: u8,
+ pub mTextEmphasisStyle: u8,
+ pub mTextRendering: u8,
+ pub mTextEmphasisColor: root::mozilla::StyleComplexColor,
+ pub mWebkitTextFillColor: root::mozilla::StyleComplexColor,
+ pub mWebkitTextStrokeColor: root::mozilla::StyleComplexColor,
+ pub mTabSize: root::nsStyleCoord,
+ pub mWordSpacing: root::nsStyleCoord,
+ pub mLetterSpacing: root::nsStyleCoord,
+ pub mLineHeight: root::nsStyleCoord,
+ pub mTextIndent: root::nsStyleCoord,
+ pub mWebkitTextStrokeWidth: root::nscoord,
+ pub mTextShadow: root::RefPtr<root::nsCSSShadowArray>,
+ pub mTextEmphasisStyleString: ::nsstring::nsStringRepr,
+ }
+ pub const nsStyleText_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleText() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleText>(),
+ 160usize,
+ concat!("Size of: ", stringify!(nsStyleText))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleText>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleText))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextAlign as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextAlign)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextAlignLast as *const _ as usize },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextAlignLast)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextJustify as *const _ as usize },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextJustify)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextTransform as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextTransform)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mWhiteSpace as *const _ as usize },
+ 5usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mWhiteSpace)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mWordBreak as *const _ as usize },
+ 6usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mWordBreak)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mOverflowWrap as *const _ as usize },
+ 7usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mOverflowWrap)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mHyphens as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mHyphens)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mRubyAlign as *const _ as usize },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mRubyAlign)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mRubyPosition as *const _ as usize },
+ 10usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mRubyPosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextSizeAdjust as *const _ as usize },
+ 11usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextSizeAdjust)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mTextCombineUpright as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextCombineUpright)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mControlCharacterVisibility as *const _
+ as usize
+ },
+ 13usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mControlCharacterVisibility)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mTextEmphasisPosition as *const _ as usize
+ },
+ 14usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextEmphasisPosition)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mTextEmphasisStyle as *const _ as usize
+ },
+ 15usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextEmphasisStyle)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextRendering as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextRendering)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mTextEmphasisColor as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextEmphasisColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mWebkitTextFillColor as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mWebkitTextFillColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mWebkitTextStrokeColor as *const _ as usize
+ },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mWebkitTextStrokeColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTabSize as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTabSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mWordSpacing as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mWordSpacing)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mLetterSpacing as *const _ as usize },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mLetterSpacing)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mLineHeight as *const _ as usize },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mLineHeight)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextIndent as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextIndent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mWebkitTextStrokeWidth as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mWebkitTextStrokeWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleText>())).mTextShadow as *const _ as usize },
+ 136usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextShadow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleText>())).mTextEmphasisStyleString as *const _
+ as usize
+ },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleText),
+ "::",
+ stringify!(mTextEmphasisStyleString)
+ )
+ );
+ }
+ impl nsStyleText {
+ #[inline]
+ pub fn mTextAlignTrue(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mTextAlignTrue(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(0usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn mTextAlignLastTrue(&self) -> bool {
+ unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
+ }
+ #[inline]
+ pub fn set_mTextAlignLastTrue(&mut self, val: bool) {
+ unsafe {
+ let val: u8 = ::std::mem::transmute(val);
+ self._bitfield_1.set(1usize, 1u8, val as u64)
+ }
+ }
+ #[inline]
+ pub fn new_bitfield_1(
+ mTextAlignTrue: bool,
+ mTextAlignLastTrue: bool,
+ ) -> root::__BindgenBitfieldUnit<[u8; 1usize], u8> {
+ let mut __bindgen_bitfield_unit: root::__BindgenBitfieldUnit<
+ [u8; 1usize],
+ u8,
+ > = Default::default();
+ __bindgen_bitfield_unit.set(0usize, 1u8, {
+ let mTextAlignTrue: u8 = unsafe { ::std::mem::transmute(mTextAlignTrue) };
+ mTextAlignTrue as u64
+ });
+ __bindgen_bitfield_unit.set(1usize, 1u8, {
+ let mTextAlignLastTrue: u8 = unsafe { ::std::mem::transmute(mTextAlignLastTrue) };
+ mTextAlignLastTrue as u64
+ });
+ __bindgen_bitfield_unit
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleImageOrientation {
+ pub mOrientation: u8,
+ }
+ pub const nsStyleImageOrientation_Bits_ORIENTATION_MASK: root::nsStyleImageOrientation_Bits = 3;
+ pub const nsStyleImageOrientation_Bits_FLIP_MASK: root::nsStyleImageOrientation_Bits = 4;
+ pub const nsStyleImageOrientation_Bits_FROM_IMAGE_MASK: root::nsStyleImageOrientation_Bits = 8;
+ pub type nsStyleImageOrientation_Bits = u32;
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleImageOrientation_Angles {
+ ANGLE_0 = 0,
+ ANGLE_90 = 1,
+ ANGLE_180 = 2,
+ ANGLE_270 = 3,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleImageOrientation() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleImageOrientation>(),
+ 1usize,
+ concat!("Size of: ", stringify!(nsStyleImageOrientation))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleImageOrientation>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(nsStyleImageOrientation))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleImageOrientation>())).mOrientation as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleImageOrientation),
+ "::",
+ stringify!(mOrientation)
+ )
+ );
+ }
+ impl Clone for nsStyleImageOrientation {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleVisibility {
+ pub mImageOrientation: root::nsStyleImageOrientation,
+ pub mDirection: u8,
+ pub mVisible: u8,
+ pub mImageRendering: u8,
+ pub mWritingMode: u8,
+ pub mTextOrientation: u8,
+ pub mColorAdjust: u8,
+ }
+ pub const nsStyleVisibility_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleVisibility() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleVisibility>(),
+ 7usize,
+ concat!("Size of: ", stringify!(nsStyleVisibility))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleVisibility>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(nsStyleVisibility))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleVisibility>())).mImageOrientation as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mImageOrientation)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleVisibility>())).mDirection as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mDirection)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleVisibility>())).mVisible as *const _ as usize },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mVisible)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleVisibility>())).mImageRendering as *const _ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mImageRendering)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleVisibility>())).mWritingMode as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mWritingMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleVisibility>())).mTextOrientation as *const _ as usize
+ },
+ 5usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mTextOrientation)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleVisibility>())).mColorAdjust as *const _ as usize
+ },
+ 6usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVisibility),
+ "::",
+ stringify!(mColorAdjust)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsTimingFunction {
+ pub mType: root::nsTimingFunction_Type,
+ pub __bindgen_anon_1: root::nsTimingFunction__bindgen_ty_1,
+ }
+ #[repr(i32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsTimingFunction_Type {
+ Ease = 0,
+ Linear = 1,
+ EaseIn = 2,
+ EaseOut = 3,
+ EaseInOut = 4,
+ StepStart = 5,
+ StepEnd = 6,
+ CubicBezier = 7,
+ Frames = 8,
+ }
+ pub const nsTimingFunction_Keyword_Implicit: root::nsTimingFunction_Keyword = 0;
+ pub const nsTimingFunction_Keyword_Explicit: root::nsTimingFunction_Keyword = 1;
+ pub type nsTimingFunction_Keyword = i32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsTimingFunction__bindgen_ty_1 {
+ pub mFunc: root::__BindgenUnionField<root::nsTimingFunction__bindgen_ty_1__bindgen_ty_1>,
+ pub __bindgen_anon_1:
+ root::__BindgenUnionField<root::nsTimingFunction__bindgen_ty_1__bindgen_ty_2>,
+ pub bindgen_union_field: [u32; 4usize],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsTimingFunction__bindgen_ty_1__bindgen_ty_1 {
+ pub mX1: f32,
+ pub mY1: f32,
+ pub mX2: f32,
+ pub mY2: f32,
+ }
+ #[test]
+ fn bindgen_test_layout_nsTimingFunction__bindgen_ty_1__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsTimingFunction__bindgen_ty_1__bindgen_ty_1>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsTimingFunction__bindgen_ty_1__bindgen_ty_1>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTimingFunction__bindgen_ty_1__bindgen_ty_1>())).mX1
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mX1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTimingFunction__bindgen_ty_1__bindgen_ty_1>())).mY1
+ as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mY1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTimingFunction__bindgen_ty_1__bindgen_ty_1>())).mX2
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mX2)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTimingFunction__bindgen_ty_1__bindgen_ty_1>())).mY2
+ as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(mY2)
+ )
+ );
+ }
+ impl Clone for nsTimingFunction__bindgen_ty_1__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsTimingFunction__bindgen_ty_1__bindgen_ty_2 {
+ pub mStepsOrFrames: u32,
+ }
+ #[test]
+ fn bindgen_test_layout_nsTimingFunction__bindgen_ty_1__bindgen_ty_2() {
+ assert_eq!(
+ ::std::mem::size_of::<nsTimingFunction__bindgen_ty_1__bindgen_ty_2>(),
+ 4usize,
+ concat!(
+ "Size of: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_2)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsTimingFunction__bindgen_ty_1__bindgen_ty_2>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_2)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTimingFunction__bindgen_ty_1__bindgen_ty_2>()))
+ .mStepsOrFrames as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction__bindgen_ty_1__bindgen_ty_2),
+ "::",
+ stringify!(mStepsOrFrames)
+ )
+ );
+ }
+ impl Clone for nsTimingFunction__bindgen_ty_1__bindgen_ty_2 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsTimingFunction__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsTimingFunction__bindgen_ty_1>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsTimingFunction__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsTimingFunction__bindgen_ty_1>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsTimingFunction__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsTimingFunction__bindgen_ty_1>())).mFunc as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction__bindgen_ty_1),
+ "::",
+ stringify!(mFunc)
+ )
+ );
+ }
+ impl Clone for nsTimingFunction__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsTimingFunction() {
+ assert_eq!(
+ ::std::mem::size_of::<nsTimingFunction>(),
+ 20usize,
+ concat!("Size of: ", stringify!(nsTimingFunction))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsTimingFunction>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsTimingFunction))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsTimingFunction>())).mType as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsTimingFunction),
+ "::",
+ stringify!(mType)
+ )
+ );
+ }
+ impl Clone for nsTimingFunction {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleDisplay {
+ pub mBinding: root::RefPtr<root::mozilla::css::URLValue>,
+ pub mDisplay: root::mozilla::StyleDisplay,
+ pub mOriginalDisplay: root::mozilla::StyleDisplay,
+ pub mContain: u8,
+ pub mAppearance: u8,
+ pub mPosition: u8,
+ pub mFloat: root::mozilla::StyleFloat,
+ pub mOriginalFloat: root::mozilla::StyleFloat,
+ pub mBreakType: root::mozilla::StyleClear,
+ pub mBreakInside: u8,
+ pub mBreakBefore: bool,
+ pub mBreakAfter: bool,
+ pub mOverflowX: u8,
+ pub mOverflowY: u8,
+ pub mOverflowClipBoxBlock: u8,
+ pub mOverflowClipBoxInline: u8,
+ pub mResize: u8,
+ pub mOrient: root::mozilla::StyleOrient,
+ pub mIsolation: u8,
+ pub mTopLayer: u8,
+ pub mWillChangeBitField: u8,
+ pub mWillChange: root::nsTArray<root::RefPtr<root::nsAtom>>,
+ pub mTouchAction: u8,
+ pub mScrollBehavior: u8,
+ pub mOverscrollBehaviorX: root::mozilla::StyleOverscrollBehavior,
+ pub mOverscrollBehaviorY: root::mozilla::StyleOverscrollBehavior,
+ pub mScrollSnapTypeX: u8,
+ pub mScrollSnapTypeY: u8,
+ pub mScrollSnapPointsX: root::nsStyleCoord,
+ pub mScrollSnapPointsY: root::nsStyleCoord,
+ pub mScrollSnapDestination: root::mozilla::Position,
+ pub mScrollSnapCoordinate: root::nsTArray<root::mozilla::Position>,
+ pub mBackfaceVisibility: u8,
+ pub mTransformStyle: u8,
+ pub mTransformBox: root::nsStyleDisplay_StyleGeometryBox,
+ pub mSpecifiedTransform: root::RefPtr<root::nsCSSValueSharedList>,
+ pub mTransformOrigin: [root::nsStyleCoord; 3usize],
+ pub mChildPerspective: root::nsStyleCoord,
+ pub mPerspectiveOrigin: [root::nsStyleCoord; 2usize],
+ pub mVerticalAlign: root::nsStyleCoord,
+ pub mTransitions: root::nsStyleAutoArray<root::mozilla::StyleTransition>,
+ pub mTransitionTimingFunctionCount: u32,
+ pub mTransitionDurationCount: u32,
+ pub mTransitionDelayCount: u32,
+ pub mTransitionPropertyCount: u32,
+ pub mAnimations: root::nsStyleAutoArray<root::mozilla::StyleAnimation>,
+ pub mAnimationTimingFunctionCount: u32,
+ pub mAnimationDurationCount: u32,
+ pub mAnimationDelayCount: u32,
+ pub mAnimationNameCount: u32,
+ pub mAnimationDirectionCount: u32,
+ pub mAnimationFillModeCount: u32,
+ pub mAnimationPlayStateCount: u32,
+ pub mAnimationIterationCountCount: u32,
+ pub mShapeImageThreshold: f32,
+ pub mShapeOutside: root::mozilla::StyleShapeSource,
+ }
+ pub use self::super::root::mozilla::StyleGeometryBox as nsStyleDisplay_StyleGeometryBox;
+ pub const nsStyleDisplay_kHasFinishStyle: bool = true;
+ #[test]
+ fn bindgen_test_layout_nsStyleDisplay() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleDisplay>(),
+ 424usize,
+ concat!("Size of: ", stringify!(nsStyleDisplay))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleDisplay>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleDisplay))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mBinding as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mBinding)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mDisplay as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mDisplay)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mOriginalDisplay as *const _ as usize
+ },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOriginalDisplay)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mContain as *const _ as usize },
+ 10usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mContain)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mAppearance as *const _ as usize },
+ 11usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAppearance)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mPosition as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mPosition)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mFloat as *const _ as usize },
+ 13usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mFloat)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mOriginalFloat as *const _ as usize
+ },
+ 14usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOriginalFloat)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mBreakType as *const _ as usize },
+ 15usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mBreakType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mBreakInside as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mBreakInside)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mBreakBefore as *const _ as usize },
+ 17usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mBreakBefore)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mBreakAfter as *const _ as usize },
+ 18usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mBreakAfter)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mOverflowX as *const _ as usize },
+ 19usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOverflowX)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mOverflowY as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOverflowY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mOverflowClipBoxBlock as *const _
+ as usize
+ },
+ 21usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOverflowClipBoxBlock)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mOverflowClipBoxInline as *const _
+ as usize
+ },
+ 22usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOverflowClipBoxInline)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mResize as *const _ as usize },
+ 23usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mResize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mOrient as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOrient)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mIsolation as *const _ as usize },
+ 25usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mIsolation)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mTopLayer as *const _ as usize },
+ 26usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTopLayer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mWillChangeBitField as *const _ as usize
+ },
+ 27usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mWillChangeBitField)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mWillChange as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mWillChange)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mTouchAction as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTouchAction)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollBehavior as *const _ as usize
+ },
+ 41usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollBehavior)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mOverscrollBehaviorX as *const _ as usize
+ },
+ 42usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOverscrollBehaviorX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mOverscrollBehaviorY as *const _ as usize
+ },
+ 43usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mOverscrollBehaviorY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollSnapTypeX as *const _ as usize
+ },
+ 44usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollSnapTypeX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollSnapTypeY as *const _ as usize
+ },
+ 45usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollSnapTypeY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollSnapPointsX as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollSnapPointsX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollSnapPointsY as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollSnapPointsY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollSnapDestination as *const _
+ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollSnapDestination)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mScrollSnapCoordinate as *const _
+ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mScrollSnapCoordinate)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mBackfaceVisibility as *const _ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mBackfaceVisibility)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransformStyle as *const _ as usize
+ },
+ 113usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransformStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransformBox as *const _ as usize
+ },
+ 114usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransformBox)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mSpecifiedTransform as *const _ as usize
+ },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mSpecifiedTransform)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransformOrigin as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransformOrigin)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mChildPerspective as *const _ as usize
+ },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mChildPerspective)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mPerspectiveOrigin as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mPerspectiveOrigin)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mVerticalAlign as *const _ as usize
+ },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mVerticalAlign)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mTransitions as *const _ as usize },
+ 240usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransitions)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransitionTimingFunctionCount
+ as *const _ as usize
+ },
+ 288usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransitionTimingFunctionCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransitionDurationCount as *const _
+ as usize
+ },
+ 292usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransitionDurationCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransitionDelayCount as *const _
+ as usize
+ },
+ 296usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransitionDelayCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mTransitionPropertyCount as *const _
+ as usize
+ },
+ 300usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mTransitionPropertyCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimations as *const _ as usize },
+ 304usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimations)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationTimingFunctionCount as *const _
+ as usize
+ },
+ 360usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationTimingFunctionCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationDurationCount as *const _
+ as usize
+ },
+ 364usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationDurationCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationDelayCount as *const _ as usize
+ },
+ 368usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationDelayCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationNameCount as *const _ as usize
+ },
+ 372usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationNameCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationDirectionCount as *const _
+ as usize
+ },
+ 376usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationDirectionCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationFillModeCount as *const _
+ as usize
+ },
+ 380usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationFillModeCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationPlayStateCount as *const _
+ as usize
+ },
+ 384usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationPlayStateCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mAnimationIterationCountCount as *const _
+ as usize
+ },
+ 388usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mAnimationIterationCountCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mShapeImageThreshold as *const _ as usize
+ },
+ 392usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mShapeImageThreshold)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleDisplay>())).mShapeOutside as *const _ as usize
+ },
+ 400usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleDisplay),
+ "::",
+ stringify!(mShapeOutside)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleTable {
+ pub mLayoutStrategy: u8,
+ pub mSpan: i32,
+ }
+ pub const nsStyleTable_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleTable() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleTable>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStyleTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleTable>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleTable))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTable>())).mLayoutStrategy as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTable),
+ "::",
+ stringify!(mLayoutStrategy)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleTable>())).mSpan as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTable),
+ "::",
+ stringify!(mSpan)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleTableBorder {
+ pub mBorderSpacingCol: root::nscoord,
+ pub mBorderSpacingRow: root::nscoord,
+ pub mBorderCollapse: u8,
+ pub mCaptionSide: u8,
+ pub mEmptyCells: u8,
+ }
+ pub const nsStyleTableBorder_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleTableBorder() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleTableBorder>(),
+ 12usize,
+ concat!("Size of: ", stringify!(nsStyleTableBorder))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleTableBorder>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleTableBorder))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTableBorder>())).mBorderSpacingCol as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTableBorder),
+ "::",
+ stringify!(mBorderSpacingCol)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTableBorder>())).mBorderSpacingRow as *const _
+ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTableBorder),
+ "::",
+ stringify!(mBorderSpacingRow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTableBorder>())).mBorderCollapse as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTableBorder),
+ "::",
+ stringify!(mBorderCollapse)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTableBorder>())).mCaptionSide as *const _ as usize
+ },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTableBorder),
+ "::",
+ stringify!(mCaptionSide)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleTableBorder>())).mEmptyCells as *const _ as usize
+ },
+ 10usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleTableBorder),
+ "::",
+ stringify!(mEmptyCells)
+ )
+ );
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleContentType {
+ eStyleContentType_String = 1,
+ eStyleContentType_Image = 10,
+ eStyleContentType_Attr = 20,
+ eStyleContentType_Counter = 30,
+ eStyleContentType_Counters = 31,
+ eStyleContentType_OpenQuote = 40,
+ eStyleContentType_CloseQuote = 41,
+ eStyleContentType_NoOpenQuote = 42,
+ eStyleContentType_NoCloseQuote = 43,
+ eStyleContentType_AltContent = 50,
+ eStyleContentType_Uninitialized = 51,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleContentData {
+ pub mType: root::nsStyleContentType,
+ pub mContent: root::nsStyleContentData__bindgen_ty_1,
+ }
+ #[repr(C)]
+ pub struct nsStyleContentData_CounterFunction {
+ pub mIdent: ::nsstring::nsStringRepr,
+ pub mSeparator: ::nsstring::nsStringRepr,
+ pub mCounterStyle: root::mozilla::CounterStylePtr,
+ pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+ }
+ pub type nsStyleContentData_CounterFunction_HasThreadSafeRefCnt = root::mozilla::TrueType;
+ #[test]
+ fn bindgen_test_layout_nsStyleContentData_CounterFunction() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleContentData_CounterFunction>(),
+ 48usize,
+ concat!("Size of: ", stringify!(nsStyleContentData_CounterFunction))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleContentData_CounterFunction>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsStyleContentData_CounterFunction)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData_CounterFunction>())).mIdent as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData_CounterFunction),
+ "::",
+ stringify!(mIdent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData_CounterFunction>())).mSeparator
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData_CounterFunction),
+ "::",
+ stringify!(mSeparator)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData_CounterFunction>())).mCounterStyle
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData_CounterFunction),
+ "::",
+ stringify!(mCounterStyle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData_CounterFunction>())).mRefCnt as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData_CounterFunction),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleContentData__bindgen_ty_1 {
+ pub mString: root::__BindgenUnionField<*mut u16>,
+ pub mImage: root::__BindgenUnionField<*mut root::nsStyleImageRequest>,
+ pub mCounters: root::__BindgenUnionField<*mut root::nsStyleContentData_CounterFunction>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleContentData__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleContentData__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStyleContentData__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleContentData__bindgen_ty_1>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsStyleContentData__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData__bindgen_ty_1>())).mString as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData__bindgen_ty_1),
+ "::",
+ stringify!(mString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData__bindgen_ty_1>())).mImage as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData__bindgen_ty_1),
+ "::",
+ stringify!(mImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleContentData__bindgen_ty_1>())).mCounters as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData__bindgen_ty_1),
+ "::",
+ stringify!(mCounters)
+ )
+ );
+ }
+ impl Clone for nsStyleContentData__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleContentData() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleContentData>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsStyleContentData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleContentData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleContentData))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContentData>())).mType as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContentData>())).mContent as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContentData),
+ "::",
+ stringify!(mContent)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleCounterData {
+ pub mCounter: ::nsstring::nsStringRepr,
+ pub mValue: i32,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleCounterData() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleCounterData>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleCounterData))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleCounterData>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleCounterData))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCounterData>())).mCounter as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCounterData),
+ "::",
+ stringify!(mCounter)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleCounterData>())).mValue as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleCounterData),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleContent {
+ pub mContents: root::nsTArray<root::nsStyleContentData>,
+ pub mIncrements: root::nsTArray<root::nsStyleCounterData>,
+ pub mResets: root::nsTArray<root::nsStyleCounterData>,
+ }
+ pub const nsStyleContent_kHasFinishStyle: bool = true;
+ #[test]
+ fn bindgen_test_layout_nsStyleContent() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleContent>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleContent))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleContent>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleContent))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContent>())).mContents as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContent),
+ "::",
+ stringify!(mContents)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContent>())).mIncrements as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContent),
+ "::",
+ stringify!(mIncrements)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContent>())).mResets as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContent),
+ "::",
+ stringify!(mResets)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleUIReset {
+ pub mUserSelect: root::mozilla::StyleUserSelect,
+ pub mForceBrokenImageIcon: u8,
+ pub mIMEMode: u8,
+ pub mWindowDragging: root::mozilla::StyleWindowDragging,
+ pub mWindowShadow: u8,
+ pub mWindowOpacity: f32,
+ pub mSpecifiedWindowTransform: root::RefPtr<root::nsCSSValueSharedList>,
+ pub mWindowTransformOrigin: [root::nsStyleCoord; 2usize],
+ }
+ pub const nsStyleUIReset_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleUIReset() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleUIReset>(),
+ 56usize,
+ concat!("Size of: ", stringify!(nsStyleUIReset))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleUIReset>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleUIReset))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleUIReset>())).mUserSelect as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mUserSelect)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUIReset>())).mForceBrokenImageIcon as *const _
+ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mForceBrokenImageIcon)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleUIReset>())).mIMEMode as *const _ as usize },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mIMEMode)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUIReset>())).mWindowDragging as *const _ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mWindowDragging)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUIReset>())).mWindowShadow as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mWindowShadow)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUIReset>())).mWindowOpacity as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mWindowOpacity)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUIReset>())).mSpecifiedWindowTransform as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mSpecifiedWindowTransform)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUIReset>())).mWindowTransformOrigin as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUIReset),
+ "::",
+ stringify!(mWindowTransformOrigin)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCursorImage {
+ pub mHaveHotspot: bool,
+ pub mHotspotX: f32,
+ pub mHotspotY: f32,
+ pub mImage: root::RefPtr<root::nsStyleImageRequest>,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCursorImage() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCursorImage>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsCursorImage))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCursorImage>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCursorImage))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCursorImage>())).mHaveHotspot as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCursorImage),
+ "::",
+ stringify!(mHaveHotspot)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCursorImage>())).mHotspotX as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCursorImage),
+ "::",
+ stringify!(mHotspotX)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCursorImage>())).mHotspotY as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCursorImage),
+ "::",
+ stringify!(mHotspotY)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCursorImage>())).mImage as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCursorImage),
+ "::",
+ stringify!(mImage)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleUserInterface {
+ pub mUserInput: root::mozilla::StyleUserInput,
+ pub mUserModify: root::mozilla::StyleUserModify,
+ pub mUserFocus: root::mozilla::StyleUserFocus,
+ pub mPointerEvents: u8,
+ pub mCursor: u8,
+ pub mCursorImages: root::nsTArray<root::nsCursorImage>,
+ pub mCaretColor: root::mozilla::StyleComplexColor,
+ }
+ pub const nsStyleUserInterface_kHasFinishStyle: bool = true;
+ #[test]
+ fn bindgen_test_layout_nsStyleUserInterface() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleUserInterface>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsStyleUserInterface))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleUserInterface>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleUserInterface))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mUserInput as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mUserInput)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mUserModify as *const _ as usize
+ },
+ 1usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mUserModify)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mUserFocus as *const _ as usize
+ },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mUserFocus)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mPointerEvents as *const _ as usize
+ },
+ 3usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mPointerEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mCursor as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mCursor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mCursorImages as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mCursorImages)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleUserInterface>())).mCaretColor as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleUserInterface),
+ "::",
+ stringify!(mCaretColor)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleXUL {
+ pub mBoxFlex: f32,
+ pub mBoxOrdinal: u32,
+ pub mBoxAlign: root::mozilla::StyleBoxAlign,
+ pub mBoxDirection: root::mozilla::StyleBoxDirection,
+ pub mBoxOrient: root::mozilla::StyleBoxOrient,
+ pub mBoxPack: root::mozilla::StyleBoxPack,
+ pub mStackSizing: root::mozilla::StyleStackSizing,
+ }
+ pub const nsStyleXUL_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleXUL() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleXUL>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsStyleXUL))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleXUL>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsStyleXUL))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mBoxFlex as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mBoxFlex)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mBoxOrdinal as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mBoxOrdinal)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mBoxAlign as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mBoxAlign)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mBoxDirection as *const _ as usize },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mBoxDirection)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mBoxOrient as *const _ as usize },
+ 10usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mBoxOrient)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mBoxPack as *const _ as usize },
+ 11usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mBoxPack)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleXUL>())).mStackSizing as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleXUL),
+ "::",
+ stringify!(mStackSizing)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleColumn {
+ pub mColumnCount: u32,
+ pub mColumnWidth: root::nsStyleCoord,
+ pub mColumnGap: root::nsStyleCoord,
+ pub mColumnRuleColor: root::mozilla::StyleComplexColor,
+ pub mColumnRuleStyle: u8,
+ pub mColumnFill: u8,
+ pub mColumnSpan: u8,
+ pub mColumnRuleWidth: root::nscoord,
+ pub mTwipsPerPixel: root::nscoord,
+ }
+ pub const nsStyleColumn_kHasFinishStyle: bool = false;
+ pub const nsStyleColumn_kMaxColumnCount: u32 = 1000;
+ #[test]
+ fn bindgen_test_layout_nsStyleColumn() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleColumn>(),
+ 64usize,
+ concat!("Size of: ", stringify!(nsStyleColumn))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleColumn>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleColumn))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleColumn>())).mColumnCount as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnCount)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleColumn>())).mColumnWidth as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleColumn>())).mColumnGap as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnGap)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleColumn>())).mColumnRuleColor as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnRuleColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleColumn>())).mColumnRuleStyle as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnRuleStyle)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleColumn>())).mColumnFill as *const _ as usize },
+ 49usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnFill)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleColumn>())).mColumnSpan as *const _ as usize },
+ 50usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnSpan)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleColumn>())).mColumnRuleWidth as *const _ as usize
+ },
+ 52usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mColumnRuleWidth)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleColumn>())).mTwipsPerPixel as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleColumn),
+ "::",
+ stringify!(mTwipsPerPixel)
+ )
+ );
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleSVGPaintType {
+ eStyleSVGPaintType_None = 1,
+ eStyleSVGPaintType_Color = 2,
+ eStyleSVGPaintType_Server = 3,
+ eStyleSVGPaintType_ContextFill = 4,
+ eStyleSVGPaintType_ContextStroke = 5,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleSVGFallbackType {
+ eStyleSVGFallbackType_NotSet = 0,
+ eStyleSVGFallbackType_None = 1,
+ eStyleSVGFallbackType_Color = 2,
+ }
+ #[repr(u8)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsStyleSVGOpacitySource {
+ eStyleSVGOpacitySource_Normal = 0,
+ eStyleSVGOpacitySource_ContextFillOpacity = 1,
+ eStyleSVGOpacitySource_ContextStrokeOpacity = 2,
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleSVGPaint {
+ pub mPaint: root::nsStyleSVGPaint__bindgen_ty_1,
+ pub mType: root::nsStyleSVGPaintType,
+ pub mFallbackType: root::nsStyleSVGFallbackType,
+ pub mFallbackColor: root::nscolor,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleSVGPaint__bindgen_ty_1 {
+ pub mColor: root::__BindgenUnionField<root::nscolor>,
+ pub mPaintServer: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStyleSVGPaint__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleSVGPaint__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGPaint__bindgen_ty_1>())).mColor as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGPaint__bindgen_ty_1),
+ "::",
+ stringify!(mColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGPaint__bindgen_ty_1>())).mPaintServer as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGPaint__bindgen_ty_1),
+ "::",
+ stringify!(mPaintServer)
+ )
+ );
+ }
+ impl Clone for nsStyleSVGPaint__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleSVGPaint() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleSVGPaint>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsStyleSVGPaint))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleSVGPaint>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleSVGPaint))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGPaint>())).mPaint as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGPaint),
+ "::",
+ stringify!(mPaint)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGPaint>())).mType as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGPaint),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGPaint>())).mFallbackType as *const _ as usize
+ },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGPaint),
+ "::",
+ stringify!(mFallbackType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGPaint>())).mFallbackColor as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGPaint),
+ "::",
+ stringify!(mFallbackColor)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleSVG {
+ pub mFill: root::nsStyleSVGPaint,
+ pub mStroke: root::nsStyleSVGPaint,
+ pub mMarkerEnd: root::RefPtr<root::mozilla::css::URLValue>,
+ pub mMarkerMid: root::RefPtr<root::mozilla::css::URLValue>,
+ pub mMarkerStart: root::RefPtr<root::mozilla::css::URLValue>,
+ pub mStrokeDasharray: root::nsTArray<root::nsStyleCoord>,
+ pub mContextProps: root::nsTArray<root::RefPtr<root::nsAtom>>,
+ pub mStrokeDashoffset: root::nsStyleCoord,
+ pub mStrokeWidth: root::nsStyleCoord,
+ pub mFillOpacity: f32,
+ pub mStrokeMiterlimit: f32,
+ pub mStrokeOpacity: f32,
+ pub mClipRule: root::mozilla::StyleFillRule,
+ pub mColorInterpolation: u8,
+ pub mColorInterpolationFilters: u8,
+ pub mFillRule: root::mozilla::StyleFillRule,
+ pub mPaintOrder: u8,
+ pub mShapeRendering: u8,
+ pub mStrokeLinecap: u8,
+ pub mStrokeLinejoin: u8,
+ pub mTextAnchor: u8,
+ pub mContextPropsBits: u8,
+ pub mContextFlags: u8,
+ }
+ pub const nsStyleSVG_kHasFinishStyle: bool = false;
+ pub const nsStyleSVG_FILL_OPACITY_SOURCE_MASK: u8 = 3;
+ pub const nsStyleSVG_STROKE_OPACITY_SOURCE_MASK: u8 = 12;
+ pub const nsStyleSVG_STROKE_DASHARRAY_CONTEXT: u8 = 16;
+ pub const nsStyleSVG_STROKE_DASHOFFSET_CONTEXT: u8 = 32;
+ pub const nsStyleSVG_STROKE_WIDTH_CONTEXT: u8 = 64;
+ pub const nsStyleSVG_FILL_OPACITY_SOURCE_SHIFT: u8 = 0;
+ pub const nsStyleSVG_STROKE_OPACITY_SOURCE_SHIFT: u8 = 2;
+ #[test]
+ fn bindgen_test_layout_nsStyleSVG() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleSVG>(),
+ 128usize,
+ concat!("Size of: ", stringify!(nsStyleSVG))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleSVG>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleSVG))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mFill as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mFill)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mStroke as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStroke)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mMarkerEnd as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mMarkerEnd)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mMarkerMid as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mMarkerMid)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mMarkerStart as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mMarkerStart)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeDasharray as *const _ as usize },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeDasharray)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mContextProps as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mContextProps)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeDashoffset as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeDashoffset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeWidth as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeWidth)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mFillOpacity as *const _ as usize },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mFillOpacity)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeMiterlimit as *const _ as usize
+ },
+ 108usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeMiterlimit)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeOpacity as *const _ as usize },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeOpacity)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mClipRule as *const _ as usize },
+ 116usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mClipRule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVG>())).mColorInterpolation as *const _ as usize
+ },
+ 117usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mColorInterpolation)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVG>())).mColorInterpolationFilters as *const _
+ as usize
+ },
+ 118usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mColorInterpolationFilters)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mFillRule as *const _ as usize },
+ 119usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mFillRule)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mPaintOrder as *const _ as usize },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mPaintOrder)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mShapeRendering as *const _ as usize },
+ 121usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mShapeRendering)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeLinecap as *const _ as usize },
+ 122usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeLinecap)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mStrokeLinejoin as *const _ as usize },
+ 123usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mStrokeLinejoin)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mTextAnchor as *const _ as usize },
+ 124usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mTextAnchor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVG>())).mContextPropsBits as *const _ as usize
+ },
+ 125usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mContextPropsBits)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVG>())).mContextFlags as *const _ as usize },
+ 126usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVG),
+ "::",
+ stringify!(mContextFlags)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleFilter {
+ pub mType: u32,
+ pub mFilterParameter: root::nsStyleCoord,
+ pub __bindgen_anon_1: root::nsStyleFilter__bindgen_ty_1,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStyleFilter__bindgen_ty_1 {
+ pub mURL: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>,
+ pub mDropShadow: root::__BindgenUnionField<*mut root::nsCSSShadowArray>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleFilter__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleFilter__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStyleFilter__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleFilter__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleFilter__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFilter__bindgen_ty_1>())).mURL as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFilter__bindgen_ty_1),
+ "::",
+ stringify!(mURL)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFilter__bindgen_ty_1>())).mDropShadow as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFilter__bindgen_ty_1),
+ "::",
+ stringify!(mDropShadow)
+ )
+ );
+ }
+ impl Clone for nsStyleFilter__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const nsStyleFilter_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleFilter() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleFilter>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsStyleFilter))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleFilter>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleFilter))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleFilter>())).mType as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFilter),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleFilter>())).mFilterParameter as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleFilter),
+ "::",
+ stringify!(mFilterParameter)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleSVGReset {
+ pub mMask: root::nsStyleImageLayers,
+ pub mClipPath: root::mozilla::StyleShapeSource,
+ pub mStopColor: root::nscolor,
+ pub mFloodColor: root::nscolor,
+ pub mLightingColor: root::nscolor,
+ pub mStopOpacity: f32,
+ pub mFloodOpacity: f32,
+ pub mDominantBaseline: u8,
+ pub mVectorEffect: u8,
+ pub mMaskType: u8,
+ }
+ pub const nsStyleSVGReset_kHasFinishStyle: bool = true;
+ #[test]
+ fn bindgen_test_layout_nsStyleSVGReset() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleSVGReset>(),
+ 200usize,
+ concat!("Size of: ", stringify!(nsStyleSVGReset))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleSVGReset>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleSVGReset))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGReset>())).mMask as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mMask)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGReset>())).mClipPath as *const _ as usize },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mClipPath)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGReset>())).mStopColor as *const _ as usize },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mStopColor)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGReset>())).mFloodColor as *const _ as usize },
+ 180usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mFloodColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGReset>())).mLightingColor as *const _ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mLightingColor)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGReset>())).mStopOpacity as *const _ as usize
+ },
+ 188usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mStopOpacity)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGReset>())).mFloodOpacity as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mFloodOpacity)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGReset>())).mDominantBaseline as *const _ as usize
+ },
+ 196usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mDominantBaseline)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleSVGReset>())).mVectorEffect as *const _ as usize
+ },
+ 197usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mVectorEffect)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleSVGReset>())).mMaskType as *const _ as usize },
+ 198usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleSVGReset),
+ "::",
+ stringify!(mMaskType)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsStyleVariables {
+ pub mVariables: root::mozilla::CSSVariableValues,
+ }
+ pub const nsStyleVariables_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleVariables() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleVariables>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsStyleVariables))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleVariables>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleVariables))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleVariables>())).mVariables as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleVariables),
+ "::",
+ stringify!(mVariables)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleEffects {
+ pub mFilters: root::nsTArray<root::nsStyleFilter>,
+ pub mBoxShadow: root::RefPtr<root::nsCSSShadowArray>,
+ pub mClip: root::nsRect,
+ pub mOpacity: f32,
+ pub mClipFlags: u8,
+ pub mMixBlendMode: u8,
+ }
+ pub const nsStyleEffects_kHasFinishStyle: bool = false;
+ #[test]
+ fn bindgen_test_layout_nsStyleEffects() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleEffects>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsStyleEffects))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleEffects>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleEffects))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleEffects>())).mFilters as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleEffects),
+ "::",
+ stringify!(mFilters)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleEffects>())).mBoxShadow as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleEffects),
+ "::",
+ stringify!(mBoxShadow)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleEffects>())).mClip as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleEffects),
+ "::",
+ stringify!(mClip)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleEffects>())).mOpacity as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleEffects),
+ "::",
+ stringify!(mOpacity)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleEffects>())).mClipFlags as *const _ as usize },
+ 36usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleEffects),
+ "::",
+ stringify!(mClipFlags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsStyleEffects>())).mMixBlendMode as *const _ as usize
+ },
+ 37usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleEffects),
+ "::",
+ stringify!(mMixBlendMode)
+ )
+ );
+ }
+ /// These *_Simple types are used to map Gecko types to layout-equivalent but
/// simpler Rust types, to aid Rust binding generation.
///
/// If something in this types or the assertions below needs to change, ask
/// bholley, heycam or emilio before!
///
- /// <div rustbindgen="true" replaces="nsPoint">
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsPoint { pub x : root :: nscoord , pub y : root :: nscoord , } # [ test ] fn bindgen_test_layout_nsPoint ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsPoint > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsPoint ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsPoint > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsPoint ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPoint ) ) . x as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsPoint ) , "::" , stringify ! ( x ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsPoint ) ) . y as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsPoint ) , "::" , stringify ! ( y ) ) ) ; } impl Clone for nsPoint { fn clone ( & self ) -> Self { * self } }
- /// <div rustbindgen="true" replaces="nsMargin">
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsMargin { pub top : root :: nscoord , pub right : root :: nscoord , pub bottom : root :: nscoord , pub left : root :: nscoord , } # [ test ] fn bindgen_test_layout_nsMargin ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsMargin > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsMargin ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsMargin > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsMargin ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMargin ) ) . top as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsMargin ) , "::" , stringify ! ( top ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMargin ) ) . right as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsMargin ) , "::" , stringify ! ( right ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMargin ) ) . bottom as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsMargin ) , "::" , stringify ! ( bottom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMargin ) ) . left as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsMargin ) , "::" , stringify ! ( left ) ) ) ; } impl Clone for nsMargin { fn clone ( & self ) -> Self { * self } }
- /// <div rustbindgen="true" replaces="nsRect">
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsRect { pub x : root :: nscoord , pub y : root :: nscoord , pub width : root :: nscoord , pub height : root :: nscoord , } # [ test ] fn bindgen_test_layout_nsRect ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsRect > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsRect ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsRect > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsRect ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsRect ) ) . x as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsRect ) , "::" , stringify ! ( x ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsRect ) ) . y as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsRect ) , "::" , stringify ! ( y ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsRect ) ) . width as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsRect ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsRect ) ) . height as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsRect ) , "::" , stringify ! ( height ) ) ) ; } impl Clone for nsRect { fn clone ( & self ) -> Self { * self } }
- /// <div rustbindgen="true" replaces="nsSize">
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsSize { pub width : root :: nscoord , pub height : root :: nscoord , } # [ test ] fn bindgen_test_layout_nsSize ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsSize > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsSize ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsSize > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( nsSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSize ) ) . width as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsSize ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSize ) ) . height as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsSize ) , "::" , stringify ! ( height ) ) ) ; } impl Clone for nsSize { fn clone ( & self ) -> Self { * self } }
- /// <div rustbindgen replaces="nsTArray"></div>
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsTArray < T > { pub mBuffer : * mut T , pub _phantom_0 : :: std :: marker :: PhantomData < :: std :: cell :: UnsafeCell < T > > , }
- /// <div rustbindgen replaces="nsCOMArray"></div>
- ///
- /// mozilla::ArrayIterator doesn't work well with bindgen.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCOMArray { pub mBuffer : root :: nsTArray < * mut root :: nsISupports > , } pub const ThemeWidgetType_NS_THEME_NONE : root :: ThemeWidgetType = 0 ; pub const ThemeWidgetType_NS_THEME_BUTTON : root :: ThemeWidgetType = 1 ; pub const ThemeWidgetType_NS_THEME_RADIO : root :: ThemeWidgetType = 2 ; pub const ThemeWidgetType_NS_THEME_CHECKBOX : root :: ThemeWidgetType = 3 ; pub const ThemeWidgetType_NS_THEME_BUTTON_BEVEL : root :: ThemeWidgetType = 4 ; pub const ThemeWidgetType_NS_THEME_FOCUS_OUTLINE : root :: ThemeWidgetType = 5 ; pub const ThemeWidgetType_NS_THEME_TOOLBOX : root :: ThemeWidgetType = 6 ; pub const ThemeWidgetType_NS_THEME_TOOLBAR : root :: ThemeWidgetType = 7 ; pub const ThemeWidgetType_NS_THEME_TOOLBARBUTTON : root :: ThemeWidgetType = 8 ; pub const ThemeWidgetType_NS_THEME_DUALBUTTON : root :: ThemeWidgetType = 9 ; pub const ThemeWidgetType_NS_THEME_TOOLBARBUTTON_DROPDOWN : root :: ThemeWidgetType = 10 ; pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_UP : root :: ThemeWidgetType = 11 ; pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_DOWN : root :: ThemeWidgetType = 12 ; pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_NEXT : root :: ThemeWidgetType = 13 ; pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_PREVIOUS : root :: ThemeWidgetType = 14 ; pub const ThemeWidgetType_NS_THEME_SEPARATOR : root :: ThemeWidgetType = 15 ; pub const ThemeWidgetType_NS_THEME_TOOLBARGRIPPER : root :: ThemeWidgetType = 16 ; pub const ThemeWidgetType_NS_THEME_SPLITTER : root :: ThemeWidgetType = 17 ; pub const ThemeWidgetType_NS_THEME_STATUSBAR : root :: ThemeWidgetType = 18 ; pub const ThemeWidgetType_NS_THEME_STATUSBARPANEL : root :: ThemeWidgetType = 19 ; pub const ThemeWidgetType_NS_THEME_RESIZERPANEL : root :: ThemeWidgetType = 20 ; pub const ThemeWidgetType_NS_THEME_RESIZER : root :: ThemeWidgetType = 21 ; pub const ThemeWidgetType_NS_THEME_LISTBOX : root :: ThemeWidgetType = 22 ; pub const ThemeWidgetType_NS_THEME_LISTITEM : root :: ThemeWidgetType = 23 ; pub const ThemeWidgetType_NS_THEME_TREEVIEW : root :: ThemeWidgetType = 24 ; pub const ThemeWidgetType_NS_THEME_TREEITEM : root :: ThemeWidgetType = 25 ; pub const ThemeWidgetType_NS_THEME_TREETWISTY : root :: ThemeWidgetType = 26 ; pub const ThemeWidgetType_NS_THEME_TREELINE : root :: ThemeWidgetType = 27 ; pub const ThemeWidgetType_NS_THEME_TREEHEADER : root :: ThemeWidgetType = 28 ; pub const ThemeWidgetType_NS_THEME_TREEHEADERCELL : root :: ThemeWidgetType = 29 ; pub const ThemeWidgetType_NS_THEME_TREEHEADERSORTARROW : root :: ThemeWidgetType = 30 ; pub const ThemeWidgetType_NS_THEME_TREETWISTYOPEN : root :: ThemeWidgetType = 31 ; pub const ThemeWidgetType_NS_THEME_PROGRESSBAR : root :: ThemeWidgetType = 32 ; pub const ThemeWidgetType_NS_THEME_PROGRESSCHUNK : root :: ThemeWidgetType = 33 ; pub const ThemeWidgetType_NS_THEME_PROGRESSBAR_VERTICAL : root :: ThemeWidgetType = 34 ; pub const ThemeWidgetType_NS_THEME_PROGRESSCHUNK_VERTICAL : root :: ThemeWidgetType = 35 ; pub const ThemeWidgetType_NS_THEME_METERBAR : root :: ThemeWidgetType = 36 ; pub const ThemeWidgetType_NS_THEME_METERCHUNK : root :: ThemeWidgetType = 37 ; pub const ThemeWidgetType_NS_THEME_TAB : root :: ThemeWidgetType = 38 ; pub const ThemeWidgetType_NS_THEME_TABPANEL : root :: ThemeWidgetType = 39 ; pub const ThemeWidgetType_NS_THEME_TABPANELS : root :: ThemeWidgetType = 40 ; pub const ThemeWidgetType_NS_THEME_TAB_SCROLL_ARROW_BACK : root :: ThemeWidgetType = 41 ; pub const ThemeWidgetType_NS_THEME_TAB_SCROLL_ARROW_FORWARD : root :: ThemeWidgetType = 42 ; pub const ThemeWidgetType_NS_THEME_TOOLTIP : root :: ThemeWidgetType = 43 ; pub const ThemeWidgetType_NS_THEME_INNER_SPIN_BUTTON : root :: ThemeWidgetType = 44 ; pub const ThemeWidgetType_NS_THEME_SPINNER : root :: ThemeWidgetType = 45 ; pub const ThemeWidgetType_NS_THEME_SPINNER_UPBUTTON : root :: ThemeWidgetType = 46 ; pub const ThemeWidgetType_NS_THEME_SPINNER_DOWNBUTTON : root :: ThemeWidgetType = 47 ; pub const ThemeWidgetType_NS_THEME_SPINNER_TEXTFIELD : root :: ThemeWidgetType = 48 ; pub const ThemeWidgetType_NS_THEME_NUMBER_INPUT : root :: ThemeWidgetType = 49 ; pub const ThemeWidgetType_NS_THEME_SCROLLBAR : root :: ThemeWidgetType = 50 ; pub const ThemeWidgetType_NS_THEME_SCROLLBAR_SMALL : root :: ThemeWidgetType = 51 ; pub const ThemeWidgetType_NS_THEME_SCROLLBAR_HORIZONTAL : root :: ThemeWidgetType = 52 ; pub const ThemeWidgetType_NS_THEME_SCROLLBAR_VERTICAL : root :: ThemeWidgetType = 53 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_UP : root :: ThemeWidgetType = 54 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_DOWN : root :: ThemeWidgetType = 55 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_LEFT : root :: ThemeWidgetType = 56 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_RIGHT : root :: ThemeWidgetType = 57 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARTRACK_HORIZONTAL : root :: ThemeWidgetType = 58 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARTRACK_VERTICAL : root :: ThemeWidgetType = 59 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARTHUMB_HORIZONTAL : root :: ThemeWidgetType = 60 ; pub const ThemeWidgetType_NS_THEME_SCROLLBARTHUMB_VERTICAL : root :: ThemeWidgetType = 61 ; pub const ThemeWidgetType_NS_THEME_SCROLLBAR_NON_DISAPPEARING : root :: ThemeWidgetType = 62 ; pub const ThemeWidgetType_NS_THEME_TEXTFIELD : root :: ThemeWidgetType = 63 ; pub const ThemeWidgetType_NS_THEME_CARET : root :: ThemeWidgetType = 64 ; pub const ThemeWidgetType_NS_THEME_TEXTFIELD_MULTILINE : root :: ThemeWidgetType = 65 ; pub const ThemeWidgetType_NS_THEME_SEARCHFIELD : root :: ThemeWidgetType = 66 ; pub const ThemeWidgetType_NS_THEME_MENULIST : root :: ThemeWidgetType = 67 ; pub const ThemeWidgetType_NS_THEME_MENULIST_BUTTON : root :: ThemeWidgetType = 68 ; pub const ThemeWidgetType_NS_THEME_MENULIST_TEXT : root :: ThemeWidgetType = 69 ; pub const ThemeWidgetType_NS_THEME_MENULIST_TEXTFIELD : root :: ThemeWidgetType = 70 ; pub const ThemeWidgetType_NS_THEME_SCALE_HORIZONTAL : root :: ThemeWidgetType = 71 ; pub const ThemeWidgetType_NS_THEME_SCALE_VERTICAL : root :: ThemeWidgetType = 72 ; pub const ThemeWidgetType_NS_THEME_SCALETHUMB_HORIZONTAL : root :: ThemeWidgetType = 73 ; pub const ThemeWidgetType_NS_THEME_SCALETHUMB_VERTICAL : root :: ThemeWidgetType = 74 ; pub const ThemeWidgetType_NS_THEME_SCALETHUMBSTART : root :: ThemeWidgetType = 75 ; pub const ThemeWidgetType_NS_THEME_SCALETHUMBEND : root :: ThemeWidgetType = 76 ; pub const ThemeWidgetType_NS_THEME_SCALETHUMBTICK : root :: ThemeWidgetType = 77 ; pub const ThemeWidgetType_NS_THEME_RANGE : root :: ThemeWidgetType = 78 ; pub const ThemeWidgetType_NS_THEME_RANGE_THUMB : root :: ThemeWidgetType = 79 ; pub const ThemeWidgetType_NS_THEME_GROUPBOX : root :: ThemeWidgetType = 80 ; pub const ThemeWidgetType_NS_THEME_CHECKBOX_CONTAINER : root :: ThemeWidgetType = 81 ; pub const ThemeWidgetType_NS_THEME_RADIO_CONTAINER : root :: ThemeWidgetType = 82 ; pub const ThemeWidgetType_NS_THEME_CHECKBOX_LABEL : root :: ThemeWidgetType = 83 ; pub const ThemeWidgetType_NS_THEME_RADIO_LABEL : root :: ThemeWidgetType = 84 ; pub const ThemeWidgetType_NS_THEME_BUTTON_FOCUS : root :: ThemeWidgetType = 85 ; pub const ThemeWidgetType_NS_THEME_WINDOW : root :: ThemeWidgetType = 86 ; pub const ThemeWidgetType_NS_THEME_DIALOG : root :: ThemeWidgetType = 87 ; pub const ThemeWidgetType_NS_THEME_MENUBAR : root :: ThemeWidgetType = 88 ; pub const ThemeWidgetType_NS_THEME_MENUPOPUP : root :: ThemeWidgetType = 89 ; pub const ThemeWidgetType_NS_THEME_MENUITEM : root :: ThemeWidgetType = 90 ; pub const ThemeWidgetType_NS_THEME_CHECKMENUITEM : root :: ThemeWidgetType = 91 ; pub const ThemeWidgetType_NS_THEME_RADIOMENUITEM : root :: ThemeWidgetType = 92 ; pub const ThemeWidgetType_NS_THEME_MENUCHECKBOX : root :: ThemeWidgetType = 93 ; pub const ThemeWidgetType_NS_THEME_MENURADIO : root :: ThemeWidgetType = 94 ; pub const ThemeWidgetType_NS_THEME_MENUSEPARATOR : root :: ThemeWidgetType = 95 ; pub const ThemeWidgetType_NS_THEME_MENUARROW : root :: ThemeWidgetType = 96 ; pub const ThemeWidgetType_NS_THEME_MENUIMAGE : root :: ThemeWidgetType = 97 ; pub const ThemeWidgetType_NS_THEME_MENUITEMTEXT : root :: ThemeWidgetType = 98 ; pub const ThemeWidgetType_NS_THEME_WIN_COMMUNICATIONS_TOOLBOX : root :: ThemeWidgetType = 99 ; pub const ThemeWidgetType_NS_THEME_WIN_MEDIA_TOOLBOX : root :: ThemeWidgetType = 100 ; pub const ThemeWidgetType_NS_THEME_WIN_BROWSERTABBAR_TOOLBOX : root :: ThemeWidgetType = 101 ; pub const ThemeWidgetType_NS_THEME_MAC_FULLSCREEN_BUTTON : root :: ThemeWidgetType = 102 ; pub const ThemeWidgetType_NS_THEME_MAC_HELP_BUTTON : root :: ThemeWidgetType = 103 ; pub const ThemeWidgetType_NS_THEME_WIN_BORDERLESS_GLASS : root :: ThemeWidgetType = 104 ; pub const ThemeWidgetType_NS_THEME_WIN_GLASS : root :: ThemeWidgetType = 105 ; pub const ThemeWidgetType_NS_THEME_WINDOW_TITLEBAR : root :: ThemeWidgetType = 106 ; pub const ThemeWidgetType_NS_THEME_WINDOW_TITLEBAR_MAXIMIZED : root :: ThemeWidgetType = 107 ; pub const ThemeWidgetType_NS_THEME_WINDOW_FRAME_LEFT : root :: ThemeWidgetType = 108 ; pub const ThemeWidgetType_NS_THEME_WINDOW_FRAME_RIGHT : root :: ThemeWidgetType = 109 ; pub const ThemeWidgetType_NS_THEME_WINDOW_FRAME_BOTTOM : root :: ThemeWidgetType = 110 ; pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_CLOSE : root :: ThemeWidgetType = 111 ; pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_MINIMIZE : root :: ThemeWidgetType = 112 ; pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_MAXIMIZE : root :: ThemeWidgetType = 113 ; pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_RESTORE : root :: ThemeWidgetType = 114 ; pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_BOX : root :: ThemeWidgetType = 115 ; pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_BOX_MAXIMIZED : root :: ThemeWidgetType = 116 ; pub const ThemeWidgetType_NS_THEME_WIN_EXCLUDE_GLASS : root :: ThemeWidgetType = 117 ; pub const ThemeWidgetType_NS_THEME_MAC_VIBRANCY_LIGHT : root :: ThemeWidgetType = 118 ; pub const ThemeWidgetType_NS_THEME_MAC_VIBRANCY_DARK : root :: ThemeWidgetType = 119 ; pub const ThemeWidgetType_NS_THEME_MAC_VIBRANT_TITLEBAR_LIGHT : root :: ThemeWidgetType = 120 ; pub const ThemeWidgetType_NS_THEME_MAC_VIBRANT_TITLEBAR_DARK : root :: ThemeWidgetType = 121 ; pub const ThemeWidgetType_NS_THEME_MAC_DISCLOSURE_BUTTON_OPEN : root :: ThemeWidgetType = 122 ; pub const ThemeWidgetType_NS_THEME_MAC_DISCLOSURE_BUTTON_CLOSED : root :: ThemeWidgetType = 123 ; pub const ThemeWidgetType_NS_THEME_GTK_INFO_BAR : root :: ThemeWidgetType = 124 ; pub const ThemeWidgetType_NS_THEME_MAC_SOURCE_LIST : root :: ThemeWidgetType = 125 ; pub const ThemeWidgetType_NS_THEME_MAC_SOURCE_LIST_SELECTION : root :: ThemeWidgetType = 126 ; pub const ThemeWidgetType_NS_THEME_MAC_ACTIVE_SOURCE_LIST_SELECTION : root :: ThemeWidgetType = 127 ; pub const ThemeWidgetType_ThemeWidgetType_COUNT : root :: ThemeWidgetType = 128 ; pub type ThemeWidgetType = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIConsoleReportCollector { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMElement { pub _base : root :: nsIDOMNode , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMElement_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMElement > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMElement ) ) ) ; } impl Clone for nsIDOMElement { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMHTMLElement { pub _base : root :: nsIDOMElement , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMHTMLElement_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMHTMLElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMHTMLElement > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMHTMLElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMHTMLElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMHTMLElement ) ) ) ; } impl Clone for nsIDOMHTMLElement { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAttrName { pub mBits : usize , } # [ test ] fn bindgen_test_layout_nsAttrName ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrName > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsAttrName ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrName > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrName ) ) . mBits as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrName ) , "::" , stringify ! ( mBits ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAttrValue { pub mBits : usize , } pub const nsAttrValue_ValueType_eString : root :: nsAttrValue_ValueType = 0 ; pub const nsAttrValue_ValueType_eAtom : root :: nsAttrValue_ValueType = 2 ; pub const nsAttrValue_ValueType_eInteger : root :: nsAttrValue_ValueType = 3 ; pub const nsAttrValue_ValueType_eColor : root :: nsAttrValue_ValueType = 7 ; pub const nsAttrValue_ValueType_eEnum : root :: nsAttrValue_ValueType = 11 ; pub const nsAttrValue_ValueType_ePercent : root :: nsAttrValue_ValueType = 15 ; pub const nsAttrValue_ValueType_eCSSDeclaration : root :: nsAttrValue_ValueType = 16 ; pub const nsAttrValue_ValueType_eURL : root :: nsAttrValue_ValueType = 17 ; pub const nsAttrValue_ValueType_eImage : root :: nsAttrValue_ValueType = 18 ; pub const nsAttrValue_ValueType_eAtomArray : root :: nsAttrValue_ValueType = 19 ; pub const nsAttrValue_ValueType_eDoubleValue : root :: nsAttrValue_ValueType = 20 ; pub const nsAttrValue_ValueType_eIntMarginValue : root :: nsAttrValue_ValueType = 21 ; pub const nsAttrValue_ValueType_eSVGAngle : root :: nsAttrValue_ValueType = 22 ; pub const nsAttrValue_ValueType_eSVGTypesBegin : root :: nsAttrValue_ValueType = 22 ; pub const nsAttrValue_ValueType_eSVGIntegerPair : root :: nsAttrValue_ValueType = 23 ; pub const nsAttrValue_ValueType_eSVGLength : root :: nsAttrValue_ValueType = 24 ; pub const nsAttrValue_ValueType_eSVGLengthList : root :: nsAttrValue_ValueType = 25 ; pub const nsAttrValue_ValueType_eSVGNumberList : root :: nsAttrValue_ValueType = 26 ; pub const nsAttrValue_ValueType_eSVGNumberPair : root :: nsAttrValue_ValueType = 27 ; pub const nsAttrValue_ValueType_eSVGPathData : root :: nsAttrValue_ValueType = 28 ; pub const nsAttrValue_ValueType_eSVGPointList : root :: nsAttrValue_ValueType = 29 ; pub const nsAttrValue_ValueType_eSVGPreserveAspectRatio : root :: nsAttrValue_ValueType = 30 ; pub const nsAttrValue_ValueType_eSVGStringList : root :: nsAttrValue_ValueType = 31 ; pub const nsAttrValue_ValueType_eSVGTransformList : root :: nsAttrValue_ValueType = 32 ; pub const nsAttrValue_ValueType_eSVGViewBox : root :: nsAttrValue_ValueType = 33 ; pub const nsAttrValue_ValueType_eSVGTypesEnd : root :: nsAttrValue_ValueType = 33 ; pub type nsAttrValue_ValueType = :: std :: os :: raw :: c_uint ;
- /// Structure for a mapping from int (enum) values to strings. When you use
+ /// <div rustbindgen="true" replaces="nsPoint">
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsPoint {
+ pub x: root::nscoord,
+ pub y: root::nscoord,
+ }
+ #[test]
+ fn bindgen_test_layout_nsPoint() {
+ assert_eq!(
+ ::std::mem::size_of::<nsPoint>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsPoint))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsPoint>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsPoint))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPoint>())).x as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPoint),
+ "::",
+ stringify!(x)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsPoint>())).y as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsPoint),
+ "::",
+ stringify!(y)
+ )
+ );
+ }
+ impl Clone for nsPoint {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// <div rustbindgen="true" replaces="nsMargin">
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsMargin {
+ pub top: root::nscoord,
+ pub right: root::nscoord,
+ pub bottom: root::nscoord,
+ pub left: root::nscoord,
+ }
+ #[test]
+ fn bindgen_test_layout_nsMargin() {
+ assert_eq!(
+ ::std::mem::size_of::<nsMargin>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsMargin))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsMargin>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsMargin))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMargin>())).top as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMargin),
+ "::",
+ stringify!(top)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMargin>())).right as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMargin),
+ "::",
+ stringify!(right)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMargin>())).bottom as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMargin),
+ "::",
+ stringify!(bottom)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMargin>())).left as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMargin),
+ "::",
+ stringify!(left)
+ )
+ );
+ }
+ impl Clone for nsMargin {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// <div rustbindgen="true" replaces="nsRect">
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsRect {
+ pub x: root::nscoord,
+ pub y: root::nscoord,
+ pub width: root::nscoord,
+ pub height: root::nscoord,
+ }
+ #[test]
+ fn bindgen_test_layout_nsRect() {
+ assert_eq!(
+ ::std::mem::size_of::<nsRect>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsRect))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsRect>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsRect))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsRect>())).x as *const _ as usize },
+ 0usize,
+ concat!("Offset of field: ", stringify!(nsRect), "::", stringify!(x))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsRect>())).y as *const _ as usize },
+ 4usize,
+ concat!("Offset of field: ", stringify!(nsRect), "::", stringify!(y))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsRect>())).width as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsRect),
+ "::",
+ stringify!(width)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsRect>())).height as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsRect),
+ "::",
+ stringify!(height)
+ )
+ );
+ }
+ impl Clone for nsRect {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// <div rustbindgen="true" replaces="nsSize">
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsSize {
+ pub width: root::nscoord,
+ pub height: root::nscoord,
+ }
+ #[test]
+ fn bindgen_test_layout_nsSize() {
+ assert_eq!(
+ ::std::mem::size_of::<nsSize>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsSize))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsSize>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(nsSize))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsSize>())).width as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSize),
+ "::",
+ stringify!(width)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsSize>())).height as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSize),
+ "::",
+ stringify!(height)
+ )
+ );
+ }
+ impl Clone for nsSize {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// <div rustbindgen replaces="nsTArray"></div>
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsTArray<T> {
+ pub mBuffer: *mut T,
+ pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
+ }
+ /// <div rustbindgen replaces="nsCOMArray"></div>
+ ///
+ /// mozilla::ArrayIterator doesn't work well with bindgen.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCOMArray {
+ pub mBuffer: root::nsTArray<*mut root::nsISupports>,
+ }
+ pub const ThemeWidgetType_NS_THEME_NONE: root::ThemeWidgetType = 0;
+ pub const ThemeWidgetType_NS_THEME_BUTTON: root::ThemeWidgetType = 1;
+ pub const ThemeWidgetType_NS_THEME_RADIO: root::ThemeWidgetType = 2;
+ pub const ThemeWidgetType_NS_THEME_CHECKBOX: root::ThemeWidgetType = 3;
+ pub const ThemeWidgetType_NS_THEME_BUTTON_BEVEL: root::ThemeWidgetType = 4;
+ pub const ThemeWidgetType_NS_THEME_FOCUS_OUTLINE: root::ThemeWidgetType = 5;
+ pub const ThemeWidgetType_NS_THEME_TOOLBOX: root::ThemeWidgetType = 6;
+ pub const ThemeWidgetType_NS_THEME_TOOLBAR: root::ThemeWidgetType = 7;
+ pub const ThemeWidgetType_NS_THEME_TOOLBARBUTTON: root::ThemeWidgetType = 8;
+ pub const ThemeWidgetType_NS_THEME_DUALBUTTON: root::ThemeWidgetType = 9;
+ pub const ThemeWidgetType_NS_THEME_TOOLBARBUTTON_DROPDOWN: root::ThemeWidgetType = 10;
+ pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_UP: root::ThemeWidgetType = 11;
+ pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_DOWN: root::ThemeWidgetType = 12;
+ pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_NEXT: root::ThemeWidgetType = 13;
+ pub const ThemeWidgetType_NS_THEME_BUTTON_ARROW_PREVIOUS: root::ThemeWidgetType = 14;
+ pub const ThemeWidgetType_NS_THEME_SEPARATOR: root::ThemeWidgetType = 15;
+ pub const ThemeWidgetType_NS_THEME_TOOLBARGRIPPER: root::ThemeWidgetType = 16;
+ pub const ThemeWidgetType_NS_THEME_SPLITTER: root::ThemeWidgetType = 17;
+ pub const ThemeWidgetType_NS_THEME_STATUSBAR: root::ThemeWidgetType = 18;
+ pub const ThemeWidgetType_NS_THEME_STATUSBARPANEL: root::ThemeWidgetType = 19;
+ pub const ThemeWidgetType_NS_THEME_RESIZERPANEL: root::ThemeWidgetType = 20;
+ pub const ThemeWidgetType_NS_THEME_RESIZER: root::ThemeWidgetType = 21;
+ pub const ThemeWidgetType_NS_THEME_LISTBOX: root::ThemeWidgetType = 22;
+ pub const ThemeWidgetType_NS_THEME_LISTITEM: root::ThemeWidgetType = 23;
+ pub const ThemeWidgetType_NS_THEME_TREEVIEW: root::ThemeWidgetType = 24;
+ pub const ThemeWidgetType_NS_THEME_TREEITEM: root::ThemeWidgetType = 25;
+ pub const ThemeWidgetType_NS_THEME_TREETWISTY: root::ThemeWidgetType = 26;
+ pub const ThemeWidgetType_NS_THEME_TREELINE: root::ThemeWidgetType = 27;
+ pub const ThemeWidgetType_NS_THEME_TREEHEADER: root::ThemeWidgetType = 28;
+ pub const ThemeWidgetType_NS_THEME_TREEHEADERCELL: root::ThemeWidgetType = 29;
+ pub const ThemeWidgetType_NS_THEME_TREEHEADERSORTARROW: root::ThemeWidgetType = 30;
+ pub const ThemeWidgetType_NS_THEME_TREETWISTYOPEN: root::ThemeWidgetType = 31;
+ pub const ThemeWidgetType_NS_THEME_PROGRESSBAR: root::ThemeWidgetType = 32;
+ pub const ThemeWidgetType_NS_THEME_PROGRESSCHUNK: root::ThemeWidgetType = 33;
+ pub const ThemeWidgetType_NS_THEME_PROGRESSBAR_VERTICAL: root::ThemeWidgetType = 34;
+ pub const ThemeWidgetType_NS_THEME_PROGRESSCHUNK_VERTICAL: root::ThemeWidgetType = 35;
+ pub const ThemeWidgetType_NS_THEME_METERBAR: root::ThemeWidgetType = 36;
+ pub const ThemeWidgetType_NS_THEME_METERCHUNK: root::ThemeWidgetType = 37;
+ pub const ThemeWidgetType_NS_THEME_TAB: root::ThemeWidgetType = 38;
+ pub const ThemeWidgetType_NS_THEME_TABPANEL: root::ThemeWidgetType = 39;
+ pub const ThemeWidgetType_NS_THEME_TABPANELS: root::ThemeWidgetType = 40;
+ pub const ThemeWidgetType_NS_THEME_TAB_SCROLL_ARROW_BACK: root::ThemeWidgetType = 41;
+ pub const ThemeWidgetType_NS_THEME_TAB_SCROLL_ARROW_FORWARD: root::ThemeWidgetType = 42;
+ pub const ThemeWidgetType_NS_THEME_TOOLTIP: root::ThemeWidgetType = 43;
+ pub const ThemeWidgetType_NS_THEME_INNER_SPIN_BUTTON: root::ThemeWidgetType = 44;
+ pub const ThemeWidgetType_NS_THEME_SPINNER: root::ThemeWidgetType = 45;
+ pub const ThemeWidgetType_NS_THEME_SPINNER_UPBUTTON: root::ThemeWidgetType = 46;
+ pub const ThemeWidgetType_NS_THEME_SPINNER_DOWNBUTTON: root::ThemeWidgetType = 47;
+ pub const ThemeWidgetType_NS_THEME_SPINNER_TEXTFIELD: root::ThemeWidgetType = 48;
+ pub const ThemeWidgetType_NS_THEME_NUMBER_INPUT: root::ThemeWidgetType = 49;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBAR: root::ThemeWidgetType = 50;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBAR_SMALL: root::ThemeWidgetType = 51;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBAR_HORIZONTAL: root::ThemeWidgetType = 52;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBAR_VERTICAL: root::ThemeWidgetType = 53;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_UP: root::ThemeWidgetType = 54;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_DOWN: root::ThemeWidgetType = 55;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_LEFT: root::ThemeWidgetType = 56;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARBUTTON_RIGHT: root::ThemeWidgetType = 57;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARTRACK_HORIZONTAL: root::ThemeWidgetType = 58;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARTRACK_VERTICAL: root::ThemeWidgetType = 59;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARTHUMB_HORIZONTAL: root::ThemeWidgetType = 60;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBARTHUMB_VERTICAL: root::ThemeWidgetType = 61;
+ pub const ThemeWidgetType_NS_THEME_SCROLLBAR_NON_DISAPPEARING: root::ThemeWidgetType = 62;
+ pub const ThemeWidgetType_NS_THEME_TEXTFIELD: root::ThemeWidgetType = 63;
+ pub const ThemeWidgetType_NS_THEME_CARET: root::ThemeWidgetType = 64;
+ pub const ThemeWidgetType_NS_THEME_TEXTFIELD_MULTILINE: root::ThemeWidgetType = 65;
+ pub const ThemeWidgetType_NS_THEME_SEARCHFIELD: root::ThemeWidgetType = 66;
+ pub const ThemeWidgetType_NS_THEME_MENULIST: root::ThemeWidgetType = 67;
+ pub const ThemeWidgetType_NS_THEME_MENULIST_BUTTON: root::ThemeWidgetType = 68;
+ pub const ThemeWidgetType_NS_THEME_MENULIST_TEXT: root::ThemeWidgetType = 69;
+ pub const ThemeWidgetType_NS_THEME_MENULIST_TEXTFIELD: root::ThemeWidgetType = 70;
+ pub const ThemeWidgetType_NS_THEME_SCALE_HORIZONTAL: root::ThemeWidgetType = 71;
+ pub const ThemeWidgetType_NS_THEME_SCALE_VERTICAL: root::ThemeWidgetType = 72;
+ pub const ThemeWidgetType_NS_THEME_SCALETHUMB_HORIZONTAL: root::ThemeWidgetType = 73;
+ pub const ThemeWidgetType_NS_THEME_SCALETHUMB_VERTICAL: root::ThemeWidgetType = 74;
+ pub const ThemeWidgetType_NS_THEME_SCALETHUMBSTART: root::ThemeWidgetType = 75;
+ pub const ThemeWidgetType_NS_THEME_SCALETHUMBEND: root::ThemeWidgetType = 76;
+ pub const ThemeWidgetType_NS_THEME_SCALETHUMBTICK: root::ThemeWidgetType = 77;
+ pub const ThemeWidgetType_NS_THEME_RANGE: root::ThemeWidgetType = 78;
+ pub const ThemeWidgetType_NS_THEME_RANGE_THUMB: root::ThemeWidgetType = 79;
+ pub const ThemeWidgetType_NS_THEME_GROUPBOX: root::ThemeWidgetType = 80;
+ pub const ThemeWidgetType_NS_THEME_CHECKBOX_CONTAINER: root::ThemeWidgetType = 81;
+ pub const ThemeWidgetType_NS_THEME_RADIO_CONTAINER: root::ThemeWidgetType = 82;
+ pub const ThemeWidgetType_NS_THEME_CHECKBOX_LABEL: root::ThemeWidgetType = 83;
+ pub const ThemeWidgetType_NS_THEME_RADIO_LABEL: root::ThemeWidgetType = 84;
+ pub const ThemeWidgetType_NS_THEME_BUTTON_FOCUS: root::ThemeWidgetType = 85;
+ pub const ThemeWidgetType_NS_THEME_WINDOW: root::ThemeWidgetType = 86;
+ pub const ThemeWidgetType_NS_THEME_DIALOG: root::ThemeWidgetType = 87;
+ pub const ThemeWidgetType_NS_THEME_MENUBAR: root::ThemeWidgetType = 88;
+ pub const ThemeWidgetType_NS_THEME_MENUPOPUP: root::ThemeWidgetType = 89;
+ pub const ThemeWidgetType_NS_THEME_MENUITEM: root::ThemeWidgetType = 90;
+ pub const ThemeWidgetType_NS_THEME_CHECKMENUITEM: root::ThemeWidgetType = 91;
+ pub const ThemeWidgetType_NS_THEME_RADIOMENUITEM: root::ThemeWidgetType = 92;
+ pub const ThemeWidgetType_NS_THEME_MENUCHECKBOX: root::ThemeWidgetType = 93;
+ pub const ThemeWidgetType_NS_THEME_MENURADIO: root::ThemeWidgetType = 94;
+ pub const ThemeWidgetType_NS_THEME_MENUSEPARATOR: root::ThemeWidgetType = 95;
+ pub const ThemeWidgetType_NS_THEME_MENUARROW: root::ThemeWidgetType = 96;
+ pub const ThemeWidgetType_NS_THEME_MENUIMAGE: root::ThemeWidgetType = 97;
+ pub const ThemeWidgetType_NS_THEME_MENUITEMTEXT: root::ThemeWidgetType = 98;
+ pub const ThemeWidgetType_NS_THEME_WIN_COMMUNICATIONS_TOOLBOX: root::ThemeWidgetType = 99;
+ pub const ThemeWidgetType_NS_THEME_WIN_MEDIA_TOOLBOX: root::ThemeWidgetType = 100;
+ pub const ThemeWidgetType_NS_THEME_WIN_BROWSERTABBAR_TOOLBOX: root::ThemeWidgetType = 101;
+ pub const ThemeWidgetType_NS_THEME_MAC_FULLSCREEN_BUTTON: root::ThemeWidgetType = 102;
+ pub const ThemeWidgetType_NS_THEME_MAC_HELP_BUTTON: root::ThemeWidgetType = 103;
+ pub const ThemeWidgetType_NS_THEME_WIN_BORDERLESS_GLASS: root::ThemeWidgetType = 104;
+ pub const ThemeWidgetType_NS_THEME_WIN_GLASS: root::ThemeWidgetType = 105;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_TITLEBAR: root::ThemeWidgetType = 106;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_TITLEBAR_MAXIMIZED: root::ThemeWidgetType = 107;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_FRAME_LEFT: root::ThemeWidgetType = 108;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_FRAME_RIGHT: root::ThemeWidgetType = 109;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_FRAME_BOTTOM: root::ThemeWidgetType = 110;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_CLOSE: root::ThemeWidgetType = 111;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_MINIMIZE: root::ThemeWidgetType = 112;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_MAXIMIZE: root::ThemeWidgetType = 113;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_RESTORE: root::ThemeWidgetType = 114;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_BOX: root::ThemeWidgetType = 115;
+ pub const ThemeWidgetType_NS_THEME_WINDOW_BUTTON_BOX_MAXIMIZED: root::ThemeWidgetType = 116;
+ pub const ThemeWidgetType_NS_THEME_WIN_EXCLUDE_GLASS: root::ThemeWidgetType = 117;
+ pub const ThemeWidgetType_NS_THEME_MAC_VIBRANCY_LIGHT: root::ThemeWidgetType = 118;
+ pub const ThemeWidgetType_NS_THEME_MAC_VIBRANCY_DARK: root::ThemeWidgetType = 119;
+ pub const ThemeWidgetType_NS_THEME_MAC_VIBRANT_TITLEBAR_LIGHT: root::ThemeWidgetType = 120;
+ pub const ThemeWidgetType_NS_THEME_MAC_VIBRANT_TITLEBAR_DARK: root::ThemeWidgetType = 121;
+ pub const ThemeWidgetType_NS_THEME_MAC_DISCLOSURE_BUTTON_OPEN: root::ThemeWidgetType = 122;
+ pub const ThemeWidgetType_NS_THEME_MAC_DISCLOSURE_BUTTON_CLOSED: root::ThemeWidgetType = 123;
+ pub const ThemeWidgetType_NS_THEME_GTK_INFO_BAR: root::ThemeWidgetType = 124;
+ pub const ThemeWidgetType_NS_THEME_MAC_SOURCE_LIST: root::ThemeWidgetType = 125;
+ pub const ThemeWidgetType_NS_THEME_MAC_SOURCE_LIST_SELECTION: root::ThemeWidgetType = 126;
+ pub const ThemeWidgetType_NS_THEME_MAC_ACTIVE_SOURCE_LIST_SELECTION: root::ThemeWidgetType =
+ 127;
+ pub const ThemeWidgetType_ThemeWidgetType_COUNT: root::ThemeWidgetType = 128;
+ pub type ThemeWidgetType = u8;
+ /// Hashtable key class to use with nsTHashtable/nsBaseHashtable
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsURIHashKey {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: root::nsCOMPtr,
+ }
+ pub type nsURIHashKey_KeyType = *mut root::nsIURI;
+ pub type nsURIHashKey_KeyTypePointer = *const root::nsIURI;
+ pub const nsURIHashKey_ALLOW_MEMMOVE: root::nsURIHashKey__bindgen_ty_1 = 1;
+ pub type nsURIHashKey__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsURIHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsURIHashKey>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsURIHashKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsURIHashKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsURIHashKey))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsURIHashKey>())).mKey as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsURIHashKey),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIConsoleReportCollector {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDOMElement {
+ pub _base: root::nsIDOMNode,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDOMElement_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDOMElement() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDOMElement>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIDOMElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDOMElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDOMElement))
+ );
+ }
+ impl Clone for nsIDOMElement {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIDOMHTMLElement {
+ pub _base: root::nsIDOMElement,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIDOMHTMLElement_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIDOMHTMLElement() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIDOMHTMLElement>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIDOMHTMLElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIDOMHTMLElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIDOMHTMLElement))
+ );
+ }
+ impl Clone for nsIDOMHTMLElement {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAttrName {
+ pub mBits: usize,
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrName() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrName>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsAttrName))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrName>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrName))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrName>())).mBits as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrName),
+ "::",
+ stringify!(mBits)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAttrValue {
+ pub mBits: usize,
+ }
+ pub const nsAttrValue_ValueType_eString: root::nsAttrValue_ValueType = 0;
+ pub const nsAttrValue_ValueType_eAtom: root::nsAttrValue_ValueType = 2;
+ pub const nsAttrValue_ValueType_eInteger: root::nsAttrValue_ValueType = 3;
+ pub const nsAttrValue_ValueType_eColor: root::nsAttrValue_ValueType = 7;
+ pub const nsAttrValue_ValueType_eEnum: root::nsAttrValue_ValueType = 11;
+ pub const nsAttrValue_ValueType_ePercent: root::nsAttrValue_ValueType = 15;
+ pub const nsAttrValue_ValueType_eCSSDeclaration: root::nsAttrValue_ValueType = 16;
+ pub const nsAttrValue_ValueType_eURL: root::nsAttrValue_ValueType = 17;
+ pub const nsAttrValue_ValueType_eImage: root::nsAttrValue_ValueType = 18;
+ pub const nsAttrValue_ValueType_eAtomArray: root::nsAttrValue_ValueType = 19;
+ pub const nsAttrValue_ValueType_eDoubleValue: root::nsAttrValue_ValueType = 20;
+ pub const nsAttrValue_ValueType_eIntMarginValue: root::nsAttrValue_ValueType = 21;
+ pub const nsAttrValue_ValueType_eSVGAngle: root::nsAttrValue_ValueType = 22;
+ pub const nsAttrValue_ValueType_eSVGTypesBegin: root::nsAttrValue_ValueType = 22;
+ pub const nsAttrValue_ValueType_eSVGIntegerPair: root::nsAttrValue_ValueType = 23;
+ pub const nsAttrValue_ValueType_eSVGLength: root::nsAttrValue_ValueType = 24;
+ pub const nsAttrValue_ValueType_eSVGLengthList: root::nsAttrValue_ValueType = 25;
+ pub const nsAttrValue_ValueType_eSVGNumberList: root::nsAttrValue_ValueType = 26;
+ pub const nsAttrValue_ValueType_eSVGNumberPair: root::nsAttrValue_ValueType = 27;
+ pub const nsAttrValue_ValueType_eSVGPathData: root::nsAttrValue_ValueType = 28;
+ pub const nsAttrValue_ValueType_eSVGPointList: root::nsAttrValue_ValueType = 29;
+ pub const nsAttrValue_ValueType_eSVGPreserveAspectRatio: root::nsAttrValue_ValueType = 30;
+ pub const nsAttrValue_ValueType_eSVGStringList: root::nsAttrValue_ValueType = 31;
+ pub const nsAttrValue_ValueType_eSVGTransformList: root::nsAttrValue_ValueType = 32;
+ pub const nsAttrValue_ValueType_eSVGViewBox: root::nsAttrValue_ValueType = 33;
+ pub const nsAttrValue_ValueType_eSVGTypesEnd: root::nsAttrValue_ValueType = 33;
+ pub type nsAttrValue_ValueType = u32;
+ /// Structure for a mapping from int (enum) values to strings. When you use
/// it you generally create an array of them.
/// Instantiate like this:
/// EnumTable myTable[] = {
/// { "string1", 1 },
/// { "string2", 2 },
/// { nullptr, 0 }
- /// }
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsAttrValue_EnumTable {
- /// The string the value maps to
- pub tag : * const :: std :: os :: raw :: c_char ,
- /// The enum value that maps to this string
- pub value : i16 , } # [ test ] fn bindgen_test_layout_nsAttrValue_EnumTable ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrValue_EnumTable > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsAttrValue_EnumTable ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrValue_EnumTable > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrValue_EnumTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrValue_EnumTable ) ) . tag as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrValue_EnumTable ) , "::" , stringify ! ( tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrValue_EnumTable ) ) . value as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrValue_EnumTable ) , "::" , stringify ! ( value ) ) ) ; } impl Clone for nsAttrValue_EnumTable { fn clone ( & self ) -> Self { * self } } pub const nsAttrValue_ValueBaseType_eStringBase : root :: nsAttrValue_ValueBaseType = 0 ; pub const nsAttrValue_ValueBaseType_eOtherBase : root :: nsAttrValue_ValueBaseType = 1 ; pub const nsAttrValue_ValueBaseType_eAtomBase : root :: nsAttrValue_ValueBaseType = 2 ; pub const nsAttrValue_ValueBaseType_eIntegerBase : root :: nsAttrValue_ValueBaseType = 3 ; pub type nsAttrValue_ValueBaseType = :: std :: os :: raw :: c_uint ; extern "C" {
- # [ link_name = "\u{1}_ZN11nsAttrValue15sEnumTableArrayE" ]
- pub static mut nsAttrValue_sEnumTableArray : * mut root :: nsTArray < * const root :: nsAttrValue_EnumTable > ;
-} # [ test ] fn bindgen_test_layout_nsAttrValue ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrValue > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsAttrValue ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrValue > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrValue ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrValue ) ) . mBits as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrValue ) , "::" , stringify ! ( mBits ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsMappedAttributes { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAttrAndChildArray { pub mImpl : * mut root :: nsAttrAndChildArray_Impl , } pub type nsAttrAndChildArray_BorrowedAttrInfo = root :: mozilla :: dom :: BorrowedAttrInfo ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAttrAndChildArray_InternalAttr { pub mName : root :: nsAttrName , pub mValue : root :: nsAttrValue , } # [ test ] fn bindgen_test_layout_nsAttrAndChildArray_InternalAttr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrAndChildArray_InternalAttr > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsAttrAndChildArray_InternalAttr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrAndChildArray_InternalAttr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrAndChildArray_InternalAttr ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray_InternalAttr ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray_InternalAttr ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray_InternalAttr ) ) . mValue as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray_InternalAttr ) , "::" , stringify ! ( mValue ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsAttrAndChildArray_Impl { pub mAttrAndChildCount : u32 , pub mBufferSize : u32 , pub mMappedAttrs : * mut root :: nsMappedAttributes , pub mBuffer : [ * mut :: std :: os :: raw :: c_void ; 1usize ] , } # [ test ] fn bindgen_test_layout_nsAttrAndChildArray_Impl ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrAndChildArray_Impl > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsAttrAndChildArray_Impl ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrAndChildArray_Impl > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrAndChildArray_Impl ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray_Impl ) ) . mAttrAndChildCount as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray_Impl ) , "::" , stringify ! ( mAttrAndChildCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray_Impl ) ) . mBufferSize as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray_Impl ) , "::" , stringify ! ( mBufferSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray_Impl ) ) . mMappedAttrs as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray_Impl ) , "::" , stringify ! ( mMappedAttrs ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray_Impl ) ) . mBuffer as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray_Impl ) , "::" , stringify ! ( mBuffer ) ) ) ; } impl Clone for nsAttrAndChildArray_Impl { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsAttrAndChildArray ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrAndChildArray > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsAttrAndChildArray ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrAndChildArray > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrAndChildArray ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrAndChildArray ) ) . mImpl as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrAndChildArray ) , "::" , stringify ! ( mImpl ) ) ) ; }
- /// An internal interface
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIHTMLCollection { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIHTMLCollection_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIHTMLCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIHTMLCollection > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIHTMLCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIHTMLCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIHTMLCollection ) ) ) ; } impl Clone for nsIHTMLCollection { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsXBLDocumentInfo { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIStyleRuleProcessor { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIStyleRuleProcessor_COMTypeInfo { pub _address : u8 , } pub type nsIStyleRuleProcessor_EnumFunc = :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut root :: nsIStyleRuleProcessor , arg2 : * mut :: std :: os :: raw :: c_void ) -> bool > ; # [ test ] fn bindgen_test_layout_nsIStyleRuleProcessor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIStyleRuleProcessor > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIStyleRuleProcessor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIStyleRuleProcessor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIStyleRuleProcessor ) ) ) ; } impl Clone for nsIStyleRuleProcessor { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsXBLPrototypeBinding { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsAnonymousContentList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] pub struct nsXBLBinding { pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mMarkedForDeath : bool , pub mUsingContentXBLScope : bool , pub mIsShadowRootBinding : bool , pub mPrototypeBinding : * mut root :: nsXBLPrototypeBinding , pub mContent : root :: nsCOMPtr , pub mNextBinding : root :: RefPtr < root :: nsXBLBinding > , pub mBoundElement : * mut root :: mozilla :: dom :: Element , pub mDefaultInsertionPoint : root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > , pub mInsertionPoints : root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > , pub mAnonymousContentList : root :: RefPtr < root :: nsAnonymousContentList > , } pub type nsXBLBinding_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsXBLBinding_cycleCollection { pub _base : root :: nsCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_nsXBLBinding_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsXBLBinding_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsXBLBinding_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsXBLBinding_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsXBLBinding_cycleCollection ) ) ) ; } impl Clone for nsXBLBinding_cycleCollection { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN12nsXBLBinding21_cycleCollectorGlobalE" ]
- pub static mut nsXBLBinding__cycleCollectorGlobal : root :: nsXBLBinding_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_nsXBLBinding ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsXBLBinding > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( nsXBLBinding ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsXBLBinding > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsXBLBinding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mRefCnt as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mMarkedForDeath as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mMarkedForDeath ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mUsingContentXBLScope as * const _ as usize } , 9usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mUsingContentXBLScope ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mIsShadowRootBinding as * const _ as usize } , 10usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mIsShadowRootBinding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mPrototypeBinding as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mPrototypeBinding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mContent as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mContent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mNextBinding as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mNextBinding ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mBoundElement as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mBoundElement ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mDefaultInsertionPoint as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mDefaultInsertionPoint ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mInsertionPoints as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mInsertionPoints ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsXBLBinding ) ) . mAnonymousContentList as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsXBLBinding ) , "::" , stringify ! ( mAnonymousContentList ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsLabelsNodeList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsDOMTokenList { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsDOMStringMap { _unused : [ u8 ; 0 ] }
- /// A class that implements nsIWeakReference
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsNodeWeakReference { pub _base : root :: nsIWeakReference , pub mRefCnt : root :: nsAutoRefCnt , } pub type nsNodeWeakReference_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ test ] fn bindgen_test_layout_nsNodeWeakReference ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsNodeWeakReference > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsNodeWeakReference ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsNodeWeakReference > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsNodeWeakReference ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNodeWeakReference ) ) . mRefCnt as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsNodeWeakReference ) , "::" , stringify ! ( mRefCnt ) ) ) ; }
- /// Interface used for handling clicks on links
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsILinkHandler { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsILinkHandler_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsILinkHandler ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsILinkHandler > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsILinkHandler ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsILinkHandler > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsILinkHandler ) ) ) ; } impl Clone for nsILinkHandler { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] pub struct nsIAttribute { pub _base : root :: nsINode , pub mAttrMap : root :: RefPtr < root :: nsDOMAttributeMap > , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIAttribute_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIAttribute ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIAttribute > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( nsIAttribute ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIAttribute > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIAttribute ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIAttribute ) ) . mAttrMap as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsIAttribute ) , "::" , stringify ! ( mAttrMap ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMAttr { pub _base : root :: nsIDOMNode , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMAttr_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMAttr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMAttr > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMAttr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMAttr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMAttr ) ) ) ; } impl Clone for nsIDOMAttr { fn clone ( & self ) -> Self { * self } }
- /// There are two advantages to inheriting from nsStubMutationObserver
+ /// }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsAttrValue_EnumTable {
+ /// The string the value maps to
+ pub tag: *const ::std::os::raw::c_char,
+ /// The enum value that maps to this string
+ pub value: i16,
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrValue_EnumTable() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrValue_EnumTable>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsAttrValue_EnumTable))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrValue_EnumTable>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrValue_EnumTable))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrValue_EnumTable>())).tag as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrValue_EnumTable),
+ "::",
+ stringify!(tag)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrValue_EnumTable>())).value as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrValue_EnumTable),
+ "::",
+ stringify!(value)
+ )
+ );
+ }
+ impl Clone for nsAttrValue_EnumTable {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const nsAttrValue_ValueBaseType_eStringBase: root::nsAttrValue_ValueBaseType = 0;
+ pub const nsAttrValue_ValueBaseType_eOtherBase: root::nsAttrValue_ValueBaseType = 1;
+ pub const nsAttrValue_ValueBaseType_eAtomBase: root::nsAttrValue_ValueBaseType = 2;
+ pub const nsAttrValue_ValueBaseType_eIntegerBase: root::nsAttrValue_ValueBaseType = 3;
+ pub type nsAttrValue_ValueBaseType = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN11nsAttrValue15sEnumTableArrayE"]
+ pub static mut nsAttrValue_sEnumTableArray:
+ *mut root::nsTArray<*const root::nsAttrValue_EnumTable>;
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrValue() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrValue>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsAttrValue))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrValue>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrValue))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrValue>())).mBits as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrValue),
+ "::",
+ stringify!(mBits)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsMappedAttributes {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAttrAndChildArray {
+ pub mImpl: *mut root::nsAttrAndChildArray_Impl,
+ }
+ pub type nsAttrAndChildArray_BorrowedAttrInfo = root::mozilla::dom::BorrowedAttrInfo;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAttrAndChildArray_InternalAttr {
+ pub mName: root::nsAttrName,
+ pub mValue: root::nsAttrValue,
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrAndChildArray_InternalAttr() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrAndChildArray_InternalAttr>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsAttrAndChildArray_InternalAttr))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrAndChildArray_InternalAttr>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsAttrAndChildArray_InternalAttr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsAttrAndChildArray_InternalAttr>())).mName as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray_InternalAttr),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsAttrAndChildArray_InternalAttr>())).mValue as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray_InternalAttr),
+ "::",
+ stringify!(mValue)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsAttrAndChildArray_Impl {
+ pub mAttrAndChildCount: u32,
+ pub mBufferSize: u32,
+ pub mMappedAttrs: *mut root::nsMappedAttributes,
+ pub mBuffer: [*mut ::std::os::raw::c_void; 1usize],
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrAndChildArray_Impl() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrAndChildArray_Impl>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsAttrAndChildArray_Impl))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrAndChildArray_Impl>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrAndChildArray_Impl))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsAttrAndChildArray_Impl>())).mAttrAndChildCount as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray_Impl),
+ "::",
+ stringify!(mAttrAndChildCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsAttrAndChildArray_Impl>())).mBufferSize as *const _
+ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray_Impl),
+ "::",
+ stringify!(mBufferSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsAttrAndChildArray_Impl>())).mMappedAttrs as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray_Impl),
+ "::",
+ stringify!(mMappedAttrs)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsAttrAndChildArray_Impl>())).mBuffer as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray_Impl),
+ "::",
+ stringify!(mBuffer)
+ )
+ );
+ }
+ impl Clone for nsAttrAndChildArray_Impl {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrAndChildArray() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrAndChildArray>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsAttrAndChildArray))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrAndChildArray>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrAndChildArray))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrAndChildArray>())).mImpl as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrAndChildArray),
+ "::",
+ stringify!(mImpl)
+ )
+ );
+ }
+ /// An internal interface
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIHTMLCollection {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIHTMLCollection_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIHTMLCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIHTMLCollection>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIHTMLCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIHTMLCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIHTMLCollection))
+ );
+ }
+ impl Clone for nsIHTMLCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsXBLDocumentInfo {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsIStyleRuleProcessor {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIStyleRuleProcessor_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub type nsIStyleRuleProcessor_EnumFunc = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: *mut root::nsIStyleRuleProcessor,
+ arg2: *mut ::std::os::raw::c_void,
+ ) -> bool,
+ >;
+ #[test]
+ fn bindgen_test_layout_nsIStyleRuleProcessor() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIStyleRuleProcessor>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsIStyleRuleProcessor))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIStyleRuleProcessor>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIStyleRuleProcessor))
+ );
+ }
+ impl Clone for nsIStyleRuleProcessor {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsXBLPrototypeBinding {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsAnonymousContentList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ pub struct nsXBLBinding {
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mMarkedForDeath: bool,
+ pub mUsingContentXBLScope: bool,
+ pub mIsShadowRootBinding: bool,
+ pub mPrototypeBinding: *mut root::nsXBLPrototypeBinding,
+ pub mContent: root::nsCOMPtr,
+ pub mNextBinding: root::RefPtr<root::nsXBLBinding>,
+ pub mBoundElement: *mut root::mozilla::dom::Element,
+ pub mDefaultInsertionPoint: root::RefPtr<root::mozilla::dom::XBLChildrenElement>,
+ pub mInsertionPoints: root::nsTArray<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>,
+ pub mAnonymousContentList: root::RefPtr<root::nsAnonymousContentList>,
+ }
+ pub type nsXBLBinding_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsXBLBinding_cycleCollection {
+ pub _base: root::nsCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_nsXBLBinding_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsXBLBinding_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsXBLBinding_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsXBLBinding_cycleCollection>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsXBLBinding_cycleCollection))
+ );
+ }
+ impl Clone for nsXBLBinding_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN12nsXBLBinding21_cycleCollectorGlobalE"]
+ pub static mut nsXBLBinding__cycleCollectorGlobal: root::nsXBLBinding_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_nsXBLBinding() {
+ assert_eq!(
+ ::std::mem::size_of::<nsXBLBinding>(),
+ 72usize,
+ concat!("Size of: ", stringify!(nsXBLBinding))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsXBLBinding>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsXBLBinding))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsXBLBinding>())).mRefCnt as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mMarkedForDeath as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mMarkedForDeath)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mUsingContentXBLScope as *const _ as usize
+ },
+ 9usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mUsingContentXBLScope)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mIsShadowRootBinding as *const _ as usize
+ },
+ 10usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mIsShadowRootBinding)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mPrototypeBinding as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mPrototypeBinding)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsXBLBinding>())).mContent as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mContent)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsXBLBinding>())).mNextBinding as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mNextBinding)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsXBLBinding>())).mBoundElement as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mBoundElement)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mDefaultInsertionPoint as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mDefaultInsertionPoint)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mInsertionPoints as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mInsertionPoints)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsXBLBinding>())).mAnonymousContentList as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsXBLBinding),
+ "::",
+ stringify!(mAnonymousContentList)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsLabelsNodeList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsDOMTokenList {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsDOMStringMap {
+ _unused: [u8; 0],
+ }
+ /// A class that implements nsIWeakReference
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsNodeWeakReference {
+ pub _base: root::nsIWeakReference,
+ pub mRefCnt: root::nsAutoRefCnt,
+ }
+ pub type nsNodeWeakReference_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[test]
+ fn bindgen_test_layout_nsNodeWeakReference() {
+ assert_eq!(
+ ::std::mem::size_of::<nsNodeWeakReference>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsNodeWeakReference))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsNodeWeakReference>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsNodeWeakReference))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsNodeWeakReference>())).mRefCnt as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNodeWeakReference),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ }
+ /// Interface used for handling clicks on links
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsILinkHandler {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsILinkHandler_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsILinkHandler() {
+ assert_eq!(
+ ::std::mem::size_of::<nsILinkHandler>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsILinkHandler))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsILinkHandler>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsILinkHandler))
+ );
+ }
+ impl Clone for nsILinkHandler {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ pub struct nsIAttribute {
+ pub _base: root::nsINode,
+ pub mAttrMap: root::RefPtr<root::nsDOMAttributeMap>,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIAttribute_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIAttribute() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIAttribute>(),
+ 96usize,
+ concat!("Size of: ", stringify!(nsIAttribute))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIAttribute>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIAttribute))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsIAttribute>())).mAttrMap as *const _ as usize },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIAttribute),
+ "::",
+ stringify!(mAttrMap)
+ )
+ );
+ }
+ /// There are two advantages to inheriting from nsStubMutationObserver
/// rather than directly from nsIMutationObserver:
/// 1. smaller compiled code size (since there's no need for the code
/// for the empty virtual function implementations for every
@@ -1677,34 +36128,214 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// 2. the performance of document's loop over observers benefits from
/// the fact that more of the functions called are the same (which
/// can reduce instruction cache misses and perhaps improve branch
- /// prediction)
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsStubMutationObserver { pub _base : root :: nsIMutationObserver , } # [ test ] fn bindgen_test_layout_nsStubMutationObserver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStubMutationObserver > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsStubMutationObserver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStubMutationObserver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStubMutationObserver ) ) ) ; } impl Clone for nsStubMutationObserver { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMMozNamedAttrMap { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMMozNamedAttrMap_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMMozNamedAttrMap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMMozNamedAttrMap > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMMozNamedAttrMap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMMozNamedAttrMap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMMozNamedAttrMap ) ) ) ; } impl Clone for nsIDOMMozNamedAttrMap { fn clone ( & self ) -> Self { * self } }
- /// Structure used as a key for caching Attrs in nsDOMAttributeMap's mAttributeCache.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsAttrKey {
- /// The namespace of the attribute
- pub mNamespaceID : i32 ,
- /// The atom for attribute, stored as void*, to make sure that we only use it
- /// for the hashcode, and we can never dereference it.
- pub mLocalName : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_nsAttrKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrKey > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsAttrKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrKey ) ) . mNamespaceID as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrKey ) , "::" , stringify ! ( mNamespaceID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrKey ) ) . mLocalName as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrKey ) , "::" , stringify ! ( mLocalName ) ) ) ; } impl Clone for nsAttrKey { fn clone ( & self ) -> Self { * self } }
- /// PLDHashEntryHdr implementation for nsAttrKey.
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsAttrHashKey { pub _base : root :: PLDHashEntryHdr , pub mKey : root :: nsAttrKey , } pub type nsAttrHashKey_KeyType = * const root :: nsAttrKey ; pub type nsAttrHashKey_KeyTypePointer = * const root :: nsAttrKey ; pub const nsAttrHashKey_ALLOW_MEMMOVE : root :: nsAttrHashKey__bindgen_ty_1 = 1 ; pub type nsAttrHashKey__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsAttrHashKey ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsAttrHashKey > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( nsAttrHashKey ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsAttrHashKey > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsAttrHashKey ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsAttrHashKey ) ) . mKey as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsAttrHashKey ) , "::" , stringify ! ( mKey ) ) ) ; } # [ repr ( C ) ] pub struct nsDOMAttributeMap { pub _base : root :: nsIDOMMozNamedAttrMap , pub _base_1 : root :: nsWrapperCache , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mContent : root :: nsCOMPtr ,
- /// Cache of Attrs.
- pub mAttributeCache : root :: nsDOMAttributeMap_AttrCache , } pub type nsDOMAttributeMap_Attr = root :: mozilla :: dom :: Attr ; pub type nsDOMAttributeMap_DocGroup = root :: mozilla :: dom :: DocGroup ; pub type nsDOMAttributeMap_Element = root :: mozilla :: dom :: Element ; pub type nsDOMAttributeMap_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsDOMAttributeMap_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_nsDOMAttributeMap_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsDOMAttributeMap_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsDOMAttributeMap_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsDOMAttributeMap_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsDOMAttributeMap_cycleCollection ) ) ) ; } impl Clone for nsDOMAttributeMap_cycleCollection { fn clone ( & self ) -> Self { * self } } pub type nsDOMAttributeMap_AttrCache = [ u64 ; 4usize ] ; extern "C" {
- # [ link_name = "\u{1}_ZN17nsDOMAttributeMap21_cycleCollectorGlobalE" ]
- pub static mut nsDOMAttributeMap__cycleCollectorGlobal : root :: nsDOMAttributeMap_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_nsDOMAttributeMap ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsDOMAttributeMap > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( nsDOMAttributeMap ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsDOMAttributeMap > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsDOMAttributeMap ) ) ) ; } # [ repr ( C ) ] pub struct nsISMILAttr__bindgen_vtable ( :: std :: os :: raw :: c_void ) ;
- ///
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsISMILAttr { pub vtable_ : * const nsISMILAttr__bindgen_vtable , } # [ test ] fn bindgen_test_layout_nsISMILAttr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsISMILAttr > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsISMILAttr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsISMILAttr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsISMILAttr ) ) ) ; }
- /// nsITheme is a service that provides platform-specific native
+ /// prediction)
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsStubMutationObserver {
+ pub _base: root::nsIMutationObserver,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStubMutationObserver() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStubMutationObserver>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsStubMutationObserver))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStubMutationObserver>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStubMutationObserver))
+ );
+ }
+ impl Clone for nsStubMutationObserver {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// Structure used as a key for caching Attrs in nsDOMAttributeMap's mAttributeCache.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsAttrKey {
+ /// The namespace of the attribute
+ pub mNamespaceID: i32,
+ /// The atom for attribute, stored as void*, to make sure that we only use it
+ /// for the hashcode, and we can never dereference it.
+ pub mLocalName: *mut ::std::os::raw::c_void,
+ }
+ #[test]
+ fn bindgen_test_layout_nsAttrKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrKey>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsAttrKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrKey))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrKey>())).mNamespaceID as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrKey),
+ "::",
+ stringify!(mNamespaceID)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrKey>())).mLocalName as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrKey),
+ "::",
+ stringify!(mLocalName)
+ )
+ );
+ }
+ impl Clone for nsAttrKey {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ /// PLDHashEntryHdr implementation for nsAttrKey.
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsAttrHashKey {
+ pub _base: root::PLDHashEntryHdr,
+ pub mKey: root::nsAttrKey,
+ }
+ pub type nsAttrHashKey_KeyType = *const root::nsAttrKey;
+ pub type nsAttrHashKey_KeyTypePointer = *const root::nsAttrKey;
+ pub const nsAttrHashKey_ALLOW_MEMMOVE: root::nsAttrHashKey__bindgen_ty_1 = 1;
+ pub type nsAttrHashKey__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsAttrHashKey() {
+ assert_eq!(
+ ::std::mem::size_of::<nsAttrHashKey>(),
+ 24usize,
+ concat!("Size of: ", stringify!(nsAttrHashKey))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsAttrHashKey>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsAttrHashKey))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsAttrHashKey>())).mKey as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsAttrHashKey),
+ "::",
+ stringify!(mKey)
+ )
+ );
+ }
+ #[repr(C)]
+ pub struct nsDOMAttributeMap {
+ pub _base: root::nsISupports,
+ pub _base_1: root::nsWrapperCache,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mContent: root::nsCOMPtr,
+ /// Cache of Attrs.
+ pub mAttributeCache: root::nsDOMAttributeMap_AttrCache,
+ }
+ pub type nsDOMAttributeMap_Attr = root::mozilla::dom::Attr;
+ pub type nsDOMAttributeMap_DocGroup = root::mozilla::dom::DocGroup;
+ pub type nsDOMAttributeMap_Element = root::mozilla::dom::Element;
+ pub type nsDOMAttributeMap_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsDOMAttributeMap_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_nsDOMAttributeMap_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsDOMAttributeMap_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsDOMAttributeMap_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsDOMAttributeMap_cycleCollection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsDOMAttributeMap_cycleCollection)
+ )
+ );
+ }
+ impl Clone for nsDOMAttributeMap_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsDOMAttributeMap_AttrCache = [u64; 4usize];
+ extern "C" {
+ #[link_name = "\u{1}_ZN17nsDOMAttributeMap21_cycleCollectorGlobalE"]
+ pub static mut nsDOMAttributeMap__cycleCollectorGlobal:
+ root::nsDOMAttributeMap_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_nsDOMAttributeMap() {
+ assert_eq!(
+ ::std::mem::size_of::<nsDOMAttributeMap>(),
+ 80usize,
+ concat!("Size of: ", stringify!(nsDOMAttributeMap))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsDOMAttributeMap>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsDOMAttributeMap))
+ );
+ }
+ #[repr(C)]
+ pub struct nsISMILAttr__bindgen_vtable(::std::os::raw::c_void);
+ ///
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsISMILAttr {
+ pub vtable_: *const nsISMILAttr__bindgen_vtable,
+ }
+ #[test]
+ fn bindgen_test_layout_nsISMILAttr() {
+ assert_eq!(
+ ::std::mem::size_of::<nsISMILAttr>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsISMILAttr))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsISMILAttr>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsISMILAttr))
+ );
+ }
+ /// nsITheme is a service that provides platform-specific native
/// rendering for widgets. In other words, it provides the necessary
/// operations to draw a rendering object (an nsIFrame) as a native
/// widget.
///
/// All the methods on nsITheme take a rendering context or device
/// context, a frame (the rendering object), and a widget type (one of
- /// the constants in nsThemeConstants.h).
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsITheme { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsITheme_COMTypeInfo { pub _address : u8 , } pub const nsITheme_Transparency_eOpaque : root :: nsITheme_Transparency = 0 ; pub const nsITheme_Transparency_eTransparent : root :: nsITheme_Transparency = 1 ; pub const nsITheme_Transparency_eUnknownTransparency : root :: nsITheme_Transparency = 2 ; pub type nsITheme_Transparency = :: std :: os :: raw :: c_uint ;
- /// ThemeGeometryType values are used for describing themed nsIFrames in
+ /// the constants in nsThemeConstants.h).
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsITheme {
+ pub _base: root::nsISupports,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsITheme_COMTypeInfo {
+ pub _address: u8,
+ }
+ pub const nsITheme_Transparency_eOpaque: root::nsITheme_Transparency = 0;
+ pub const nsITheme_Transparency_eTransparent: root::nsITheme_Transparency = 1;
+ pub const nsITheme_Transparency_eUnknownTransparency: root::nsITheme_Transparency = 2;
+ pub type nsITheme_Transparency = u32;
+ /// ThemeGeometryType values are used for describing themed nsIFrames in
/// calls to nsIWidget::UpdateThemeGeometries. We don't simply pass the
/// -moz-appearance value ("widget type") of the frame because the widget may
/// want to treat different frames with the same -moz-appearance differently
@@ -1713,9 +36344,174 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// returned ThemeGeometryType along to the widget.
/// Each theme backend defines the ThemeGeometryType values it needs in its
/// own nsITheme subclass. eThemeGeometryTypeUnknown is the only value that's
- /// shared between backends.
- pub type nsITheme_ThemeGeometryType = u8 ; pub const nsITheme_eThemeGeometryTypeUnknown : root :: nsITheme__bindgen_ty_1 = 0 ; pub type nsITheme__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsITheme ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsITheme > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsITheme ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsITheme > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsITheme ) ) ) ; } impl Clone for nsITheme { fn clone ( & self ) -> Self { * self } } pub type nsIWidget_LayoutDeviceIntPoint = root :: mozilla :: LayoutDeviceIntPoint ; # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsIWidget_LongTapInfo { pub mPointerId : i32 , pub mPosition : root :: nsIWidget_LayoutDeviceIntPoint , pub mDuration : root :: mozilla :: TimeDuration , pub mObserver : root :: nsCOMPtr , pub mStamp : root :: mozilla :: TimeStamp , } # [ test ] fn bindgen_test_layout_nsIWidget_LongTapInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIWidget_LongTapInfo > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsIWidget_LongTapInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIWidget_LongTapInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIWidget_LongTapInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIWidget_LongTapInfo ) ) . mPointerId as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsIWidget_LongTapInfo ) , "::" , stringify ! ( mPointerId ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIWidget_LongTapInfo ) ) . mPosition as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( nsIWidget_LongTapInfo ) , "::" , stringify ! ( mPosition ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIWidget_LongTapInfo ) ) . mDuration as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsIWidget_LongTapInfo ) , "::" , stringify ! ( mDuration ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIWidget_LongTapInfo ) ) . mObserver as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsIWidget_LongTapInfo ) , "::" , stringify ! ( mObserver ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsIWidget_LongTapInfo ) ) . mStamp as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsIWidget_LongTapInfo ) , "::" , stringify ! ( mStamp ) ) ) ; } pub const ELEMENT_SHARED_RESTYLE_BIT_1 : root :: _bindgen_ty_79 = 8388608 ; pub const ELEMENT_SHARED_RESTYLE_BIT_2 : root :: _bindgen_ty_79 = 16777216 ; pub const ELEMENT_SHARED_RESTYLE_BIT_3 : root :: _bindgen_ty_79 = 33554432 ; pub const ELEMENT_SHARED_RESTYLE_BIT_4 : root :: _bindgen_ty_79 = 67108864 ; pub const ELEMENT_SHARED_RESTYLE_BITS : root :: _bindgen_ty_79 = 125829120 ; pub const ELEMENT_HAS_DIRTY_DESCENDANTS_FOR_SERVO : root :: _bindgen_ty_79 = 8388608 ; pub const ELEMENT_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO : root :: _bindgen_ty_79 = 16777216 ; pub const ELEMENT_HAS_SNAPSHOT : root :: _bindgen_ty_79 = 33554432 ; pub const ELEMENT_HANDLED_SNAPSHOT : root :: _bindgen_ty_79 = 67108864 ; pub const ELEMENT_HAS_PENDING_RESTYLE : root :: _bindgen_ty_79 = 8388608 ; pub const ELEMENT_IS_POTENTIAL_RESTYLE_ROOT : root :: _bindgen_ty_79 = 16777216 ; pub const ELEMENT_HAS_PENDING_ANIMATION_ONLY_RESTYLE : root :: _bindgen_ty_79 = 33554432 ; pub const ELEMENT_IS_POTENTIAL_ANIMATION_ONLY_RESTYLE_ROOT : root :: _bindgen_ty_79 = 67108864 ; pub const ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR : root :: _bindgen_ty_79 = 134217728 ; pub const ELEMENT_HAS_CHILD_WITH_LATER_SIBLINGS_HINT : root :: _bindgen_ty_79 = 268435456 ; pub const ELEMENT_PENDING_RESTYLE_FLAGS : root :: _bindgen_ty_79 = 41943040 ; pub const ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS : root :: _bindgen_ty_79 = 83886080 ; pub const ELEMENT_ALL_RESTYLE_FLAGS : root :: _bindgen_ty_79 = 260046848 ; pub const ELEMENT_TYPE_SPECIFIC_BITS_OFFSET : root :: _bindgen_ty_79 = 27 ; pub type _bindgen_ty_79 = :: std :: os :: raw :: c_uint ; pub type nsStyledElementBase = root :: mozilla :: dom :: Element ; # [ repr ( C ) ] pub struct nsStyledElement { pub _base : root :: nsStyledElementBase , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsStyledElement_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsStyledElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyledElement > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( nsStyledElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyledElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyledElement ) ) ) ; } pub type nsMappedAttributeElementBase = root :: nsStyledElement ; # [ repr ( C ) ] pub struct nsMappedAttributeElement { pub _base : root :: nsMappedAttributeElementBase , } # [ test ] fn bindgen_test_layout_nsMappedAttributeElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsMappedAttributeElement > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( nsMappedAttributeElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsMappedAttributeElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsMappedAttributeElement ) ) ) ; }
- /// The Name Space Manager tracks the association between a NameSpace
+ /// shared between backends.
+ pub type nsITheme_ThemeGeometryType = u8;
+ pub const nsITheme_eThemeGeometryTypeUnknown: root::nsITheme__bindgen_ty_1 = 0;
+ pub type nsITheme__bindgen_ty_1 = u32;
+ #[test]
+ fn bindgen_test_layout_nsITheme() {
+ assert_eq!(
+ ::std::mem::size_of::<nsITheme>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsITheme))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsITheme>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsITheme))
+ );
+ }
+ impl Clone for nsITheme {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsIWidget_LayoutDeviceIntPoint = root::mozilla::LayoutDeviceIntPoint;
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsIWidget_LongTapInfo {
+ pub mPointerId: i32,
+ pub mPosition: root::nsIWidget_LayoutDeviceIntPoint,
+ pub mDuration: root::mozilla::TimeDuration,
+ pub mObserver: root::nsCOMPtr,
+ pub mStamp: root::mozilla::TimeStamp,
+ }
+ #[test]
+ fn bindgen_test_layout_nsIWidget_LongTapInfo() {
+ assert_eq!(
+ ::std::mem::size_of::<nsIWidget_LongTapInfo>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsIWidget_LongTapInfo))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsIWidget_LongTapInfo>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsIWidget_LongTapInfo))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIWidget_LongTapInfo>())).mPointerId as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIWidget_LongTapInfo),
+ "::",
+ stringify!(mPointerId)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIWidget_LongTapInfo>())).mPosition as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIWidget_LongTapInfo),
+ "::",
+ stringify!(mPosition)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIWidget_LongTapInfo>())).mDuration as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIWidget_LongTapInfo),
+ "::",
+ stringify!(mDuration)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIWidget_LongTapInfo>())).mObserver as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIWidget_LongTapInfo),
+ "::",
+ stringify!(mObserver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsIWidget_LongTapInfo>())).mStamp as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsIWidget_LongTapInfo),
+ "::",
+ stringify!(mStamp)
+ )
+ );
+ }
+ pub const ELEMENT_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_79 = 8388608;
+ pub const ELEMENT_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_79 = 16777216;
+ pub const ELEMENT_SHARED_RESTYLE_BIT_3: root::_bindgen_ty_79 = 33554432;
+ pub const ELEMENT_SHARED_RESTYLE_BIT_4: root::_bindgen_ty_79 = 67108864;
+ pub const ELEMENT_SHARED_RESTYLE_BITS: root::_bindgen_ty_79 = 125829120;
+ pub const ELEMENT_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_79 = 8388608;
+ pub const ELEMENT_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_79 =
+ 16777216;
+ pub const ELEMENT_HAS_SNAPSHOT: root::_bindgen_ty_79 = 33554432;
+ pub const ELEMENT_HANDLED_SNAPSHOT: root::_bindgen_ty_79 = 67108864;
+ pub const ELEMENT_HAS_PENDING_RESTYLE: root::_bindgen_ty_79 = 8388608;
+ pub const ELEMENT_IS_POTENTIAL_RESTYLE_ROOT: root::_bindgen_ty_79 = 16777216;
+ pub const ELEMENT_HAS_PENDING_ANIMATION_ONLY_RESTYLE: root::_bindgen_ty_79 = 33554432;
+ pub const ELEMENT_IS_POTENTIAL_ANIMATION_ONLY_RESTYLE_ROOT: root::_bindgen_ty_79 = 67108864;
+ pub const ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR: root::_bindgen_ty_79 = 134217728;
+ pub const ELEMENT_HAS_CHILD_WITH_LATER_SIBLINGS_HINT: root::_bindgen_ty_79 = 268435456;
+ pub const ELEMENT_PENDING_RESTYLE_FLAGS: root::_bindgen_ty_79 = 41943040;
+ pub const ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS: root::_bindgen_ty_79 = 83886080;
+ pub const ELEMENT_ALL_RESTYLE_FLAGS: root::_bindgen_ty_79 = 260046848;
+ pub const ELEMENT_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_79 = 27;
+ pub type _bindgen_ty_79 = u32;
+ pub type nsStyledElementBase = root::mozilla::dom::Element;
+ #[repr(C)]
+ pub struct nsStyledElement {
+ pub _base: root::nsStyledElementBase,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsStyledElement_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyledElement() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyledElement>(),
+ 120usize,
+ concat!("Size of: ", stringify!(nsStyledElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyledElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyledElement))
+ );
+ }
+ pub type nsMappedAttributeElementBase = root::nsStyledElement;
+ #[repr(C)]
+ pub struct nsMappedAttributeElement {
+ pub _base: root::nsMappedAttributeElementBase,
+ }
+ #[test]
+ fn bindgen_test_layout_nsMappedAttributeElement() {
+ assert_eq!(
+ ::std::mem::size_of::<nsMappedAttributeElement>(),
+ 120usize,
+ concat!("Size of: ", stringify!(nsMappedAttributeElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsMappedAttributeElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsMappedAttributeElement))
+ );
+ }
+ /// The Name Space Manager tracks the association between a NameSpace
/// URI and the int32_t runtime id. Mappings between NameSpaces and
/// NameSpace prefixes are managed by nsINameSpaces.
///
@@ -1725,50 +36521,726 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
///
/// The nsNameSpaceManager needs to have a live reference for as long as
/// the NameSpace IDs are needed.
- ///
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsNameSpaceManager { pub _base : root :: nsIObserver , pub mRefCnt : root :: nsAutoRefCnt , pub mMathMLDisabled : bool , pub mSVGDisabled : bool , pub mURIToIDTable : [ u64 ; 4usize ] , pub mDisabledURIToIDTable : [ u64 ; 4usize ] , pub mURIArray : root :: nsTArray < root :: RefPtr < root :: nsAtom > > , } pub type nsNameSpaceManager_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; extern "C" {
- # [ link_name = "\u{1}_ZN18nsNameSpaceManager9sInstanceE" ]
- pub static mut nsNameSpaceManager_sInstance : root :: mozilla :: StaticRefPtr < root :: nsNameSpaceManager > ;
-} # [ test ] fn bindgen_test_layout_nsNameSpaceManager ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsNameSpaceManager > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( nsNameSpaceManager ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsNameSpaceManager > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsNameSpaceManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNameSpaceManager ) ) . mRefCnt as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsNameSpaceManager ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNameSpaceManager ) ) . mMathMLDisabled as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsNameSpaceManager ) , "::" , stringify ! ( mMathMLDisabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNameSpaceManager ) ) . mSVGDisabled as * const _ as usize } , 17usize , concat ! ( "Alignment of field: " , stringify ! ( nsNameSpaceManager ) , "::" , stringify ! ( mSVGDisabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNameSpaceManager ) ) . mURIToIDTable as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsNameSpaceManager ) , "::" , stringify ! ( mURIToIDTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNameSpaceManager ) ) . mDisabledURIToIDTable as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsNameSpaceManager ) , "::" , stringify ! ( mDisabledURIToIDTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsNameSpaceManager ) ) . mURIArray as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( nsNameSpaceManager ) , "::" , stringify ! ( mURIArray ) ) ) ; } pub type nsGenericHTMLElementBase = root :: nsMappedAttributeElement ;
- /// A common superclass for HTML elements
- # [ repr ( C ) ] pub struct nsGenericHTMLElement { pub _base : root :: nsGenericHTMLElementBase , pub _base_1 : root :: nsIDOMHTMLElement , } pub type nsGenericHTMLElement_Element = root :: mozilla :: dom :: Element ; pub const nsGenericHTMLElement_PresContextFor_eForComposedDoc : root :: nsGenericHTMLElement_PresContextFor = 0 ; pub const nsGenericHTMLElement_PresContextFor_eForUncomposedDoc : root :: nsGenericHTMLElement_PresContextFor = 1 ; pub type nsGenericHTMLElement_PresContextFor = :: std :: os :: raw :: c_uint ; pub const nsGenericHTMLElement_ContentEditableTristate_eInherit : root :: nsGenericHTMLElement_ContentEditableTristate = -1 ; pub const nsGenericHTMLElement_ContentEditableTristate_eFalse : root :: nsGenericHTMLElement_ContentEditableTristate = 0 ; pub const nsGenericHTMLElement_ContentEditableTristate_eTrue : root :: nsGenericHTMLElement_ContentEditableTristate = 1 ; pub type nsGenericHTMLElement_ContentEditableTristate = :: std :: os :: raw :: c_int ; extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement19sCommonAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sCommonAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement28sImageMarginSizeAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sImageMarginSizeAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement24sImageBorderAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sImageBorderAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement23sImageAlignAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sImageAlignAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement21sDivAlignAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sDivAlignAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement23sBackgroundAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sBackgroundAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN20nsGenericHTMLElement28sBackgroundColorAttributeMapE" ]
- pub static mut nsGenericHTMLElement_sBackgroundColorAttributeMap : [ root :: mozilla :: dom :: Element_MappedAttributeEntry ; 0usize ] ;
-} # [ test ] fn bindgen_test_layout_nsGenericHTMLElement ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsGenericHTMLElement > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( nsGenericHTMLElement ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsGenericHTMLElement > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsGenericHTMLElement ) ) ) ; }
- /// Utility class to provide scaling defined in a keySplines element.
- # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsSMILKeySpline { pub mX1 : f64 , pub mY1 : f64 , pub mX2 : f64 , pub mY2 : f64 , pub mSampleValues : [ f64 ; 11usize ] , } pub const nsSMILKeySpline_kSplineTableSize : root :: nsSMILKeySpline__bindgen_ty_1 = 11 ; pub type nsSMILKeySpline__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; extern "C" {
- # [ link_name = "\u{1}_ZN15nsSMILKeySpline15kSampleStepSizeE" ]
- pub static mut nsSMILKeySpline_kSampleStepSize : f64 ;
-} # [ test ] fn bindgen_test_layout_nsSMILKeySpline ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsSMILKeySpline > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( nsSMILKeySpline ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsSMILKeySpline > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsSMILKeySpline ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSMILKeySpline ) ) . mX1 as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsSMILKeySpline ) , "::" , stringify ! ( mX1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSMILKeySpline ) ) . mY1 as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsSMILKeySpline ) , "::" , stringify ! ( mY1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSMILKeySpline ) ) . mX2 as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsSMILKeySpline ) , "::" , stringify ! ( mX2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSMILKeySpline ) ) . mY2 as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsSMILKeySpline ) , "::" , stringify ! ( mY2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsSMILKeySpline ) ) . mSampleValues as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsSMILKeySpline ) , "::" , stringify ! ( mSampleValues ) ) ) ; } impl Clone for nsSMILKeySpline { fn clone ( & self ) -> Self { * self } } pub const GECKO_IS_NIGHTLY : bool = true ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct ServoBundledURI { pub mURLString : * const u8 , pub mURLStringLength : u32 , pub mExtraData : * mut root :: mozilla :: URLExtraData , } # [ test ] fn bindgen_test_layout_ServoBundledURI ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ServoBundledURI > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ServoBundledURI ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ServoBundledURI > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ServoBundledURI ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoBundledURI ) ) . mURLString as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( ServoBundledURI ) , "::" , stringify ! ( mURLString ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoBundledURI ) ) . mURLStringLength as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( ServoBundledURI ) , "::" , stringify ! ( mURLStringLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const ServoBundledURI ) ) . mExtraData as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( ServoBundledURI ) , "::" , stringify ! ( mExtraData ) ) ) ; } impl Clone for ServoBundledURI { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct FontSizePrefs { pub mDefaultVariableSize : root :: nscoord , pub mDefaultFixedSize : root :: nscoord , pub mDefaultSerifSize : root :: nscoord , pub mDefaultSansSerifSize : root :: nscoord , pub mDefaultMonospaceSize : root :: nscoord , pub mDefaultCursiveSize : root :: nscoord , pub mDefaultFantasySize : root :: nscoord , } # [ test ] fn bindgen_test_layout_FontSizePrefs ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FontSizePrefs > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( FontSizePrefs ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FontSizePrefs > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( FontSizePrefs ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultVariableSize as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultVariableSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultFixedSize as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultFixedSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultSerifSize as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultSerifSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultSansSerifSize as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultSansSerifSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultMonospaceSize as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultMonospaceSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultCursiveSize as * const _ as usize } , 20usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultCursiveSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const FontSizePrefs ) ) . mDefaultFantasySize as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( FontSizePrefs ) , "::" , stringify ! ( mDefaultFantasySize ) ) ) ; } impl Clone for FontSizePrefs { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct GeckoFontMetrics { pub mChSize : root :: nscoord , pub mXSize : root :: nscoord , } # [ test ] fn bindgen_test_layout_GeckoFontMetrics ( ) { assert_eq ! ( :: std :: mem :: size_of :: < GeckoFontMetrics > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( GeckoFontMetrics ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < GeckoFontMetrics > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( GeckoFontMetrics ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoFontMetrics ) ) . mChSize as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoFontMetrics ) , "::" , stringify ! ( mChSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const GeckoFontMetrics ) ) . mXSize as * const _ as usize } , 4usize , concat ! ( "Alignment of field: " , stringify ! ( GeckoFontMetrics ) , "::" , stringify ! ( mXSize ) ) ) ; } impl Clone for GeckoFontMetrics { fn clone ( & self ) -> Self { * self } } pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_after : u32 = 65 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_before : u32 = 65 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_backdrop : u32 = 0 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_cue : u32 = 36 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_firstLetter : u32 = 3 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_firstLine : u32 = 3 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozSelection : u32 = 2 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozFocusInner : u32 = 0 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozFocusOuter : u32 = 0 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozListBullet : u32 = 0 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozListNumber : u32 = 0 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozMathAnonymous : u32 = 0 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberWrapper : u32 = 24 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberText : u32 = 24 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberSpinBox : u32 = 24 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberSpinUp : u32 = 24 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberSpinDown : u32 = 24 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozProgressBar : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozRangeTrack : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozRangeProgress : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozRangeThumb : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozMeterBar : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozPlaceholder : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_placeholder : u32 = 8 ; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozColorSwatch : u32 = 12 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMMediaList { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMMediaList_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMMediaList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMMediaList > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMMediaList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMMediaList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMMediaList ) ) ) ; } impl Clone for nsIDOMMediaList { fn clone ( & self ) -> Self { * self } } pub type nsCSSAnonBoxes_NonInheritingBase = u8 ; pub const nsCSSAnonBoxes_NonInheriting_oofPlaceholder : root :: nsCSSAnonBoxes_NonInheriting = 0 ; pub const nsCSSAnonBoxes_NonInheriting_horizontalFramesetBorder : root :: nsCSSAnonBoxes_NonInheriting = 1 ; pub const nsCSSAnonBoxes_NonInheriting_verticalFramesetBorder : root :: nsCSSAnonBoxes_NonInheriting = 2 ; pub const nsCSSAnonBoxes_NonInheriting_framesetBlank : root :: nsCSSAnonBoxes_NonInheriting = 3 ; pub const nsCSSAnonBoxes_NonInheriting_tableColGroup : root :: nsCSSAnonBoxes_NonInheriting = 4 ; pub const nsCSSAnonBoxes_NonInheriting_tableCol : root :: nsCSSAnonBoxes_NonInheriting = 5 ; pub const nsCSSAnonBoxes_NonInheriting_pageBreak : root :: nsCSSAnonBoxes_NonInheriting = 6 ; pub const nsCSSAnonBoxes_NonInheriting__Count : root :: nsCSSAnonBoxes_NonInheriting = 7 ; pub type nsCSSAnonBoxes_NonInheriting = root :: nsCSSAnonBoxes_NonInheritingBase ;
- /// templated hashtable class maps keys to interface pointers.
+ ///
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsNameSpaceManager {
+ pub _base: root::nsIObserver,
+ pub mRefCnt: root::nsAutoRefCnt,
+ pub mMathMLDisabled: bool,
+ pub mSVGDisabled: bool,
+ pub mURIToIDTable: [u64; 4usize],
+ pub mDisabledURIToIDTable: [u64; 4usize],
+ pub mURIArray: root::nsTArray<root::RefPtr<root::nsAtom>>,
+ }
+ pub type nsNameSpaceManager_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ extern "C" {
+ #[link_name = "\u{1}_ZN18nsNameSpaceManager9sInstanceE"]
+ pub static mut nsNameSpaceManager_sInstance:
+ root::mozilla::StaticRefPtr<root::nsNameSpaceManager>;
+ }
+ #[test]
+ fn bindgen_test_layout_nsNameSpaceManager() {
+ assert_eq!(
+ ::std::mem::size_of::<nsNameSpaceManager>(),
+ 96usize,
+ concat!("Size of: ", stringify!(nsNameSpaceManager))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsNameSpaceManager>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsNameSpaceManager))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsNameSpaceManager>())).mRefCnt as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNameSpaceManager),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNameSpaceManager>())).mMathMLDisabled as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNameSpaceManager),
+ "::",
+ stringify!(mMathMLDisabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNameSpaceManager>())).mSVGDisabled as *const _ as usize
+ },
+ 17usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNameSpaceManager),
+ "::",
+ stringify!(mSVGDisabled)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNameSpaceManager>())).mURIToIDTable as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNameSpaceManager),
+ "::",
+ stringify!(mURIToIDTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNameSpaceManager>())).mDisabledURIToIDTable as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNameSpaceManager),
+ "::",
+ stringify!(mDisabledURIToIDTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsNameSpaceManager>())).mURIArray as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsNameSpaceManager),
+ "::",
+ stringify!(mURIArray)
+ )
+ );
+ }
+ pub type nsGenericHTMLElementBase = root::nsMappedAttributeElement;
+ /// A common superclass for HTML elements
+ #[repr(C)]
+ pub struct nsGenericHTMLElement {
+ pub _base: root::nsGenericHTMLElementBase,
+ pub _base_1: root::nsIDOMHTMLElement,
+ }
+ pub type nsGenericHTMLElement_Element = root::mozilla::dom::Element;
+ pub const nsGenericHTMLElement_PresContextFor_eForComposedDoc:
+ root::nsGenericHTMLElement_PresContextFor = 0;
+ pub const nsGenericHTMLElement_PresContextFor_eForUncomposedDoc:
+ root::nsGenericHTMLElement_PresContextFor = 1;
+ pub type nsGenericHTMLElement_PresContextFor = u32;
+ pub const nsGenericHTMLElement_ContentEditableTristate_eInherit:
+ root::nsGenericHTMLElement_ContentEditableTristate = -1;
+ pub const nsGenericHTMLElement_ContentEditableTristate_eFalse:
+ root::nsGenericHTMLElement_ContentEditableTristate = 0;
+ pub const nsGenericHTMLElement_ContentEditableTristate_eTrue:
+ root::nsGenericHTMLElement_ContentEditableTristate = 1;
+ pub type nsGenericHTMLElement_ContentEditableTristate = i32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement19sCommonAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sCommonAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement28sImageMarginSizeAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sImageMarginSizeAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement24sImageBorderAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sImageBorderAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement23sImageAlignAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sImageAlignAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement21sDivAlignAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sDivAlignAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement23sBackgroundAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sBackgroundAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN20nsGenericHTMLElement28sBackgroundColorAttributeMapE"]
+ pub static mut nsGenericHTMLElement_sBackgroundColorAttributeMap:
+ [root::mozilla::dom::Element_MappedAttributeEntry; 0usize];
+ }
+ #[test]
+ fn bindgen_test_layout_nsGenericHTMLElement() {
+ assert_eq!(
+ ::std::mem::size_of::<nsGenericHTMLElement>(),
+ 128usize,
+ concat!("Size of: ", stringify!(nsGenericHTMLElement))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsGenericHTMLElement>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsGenericHTMLElement))
+ );
+ }
+ /// Utility class to provide scaling defined in a keySplines element.
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsSMILKeySpline {
+ pub mX1: f64,
+ pub mY1: f64,
+ pub mX2: f64,
+ pub mY2: f64,
+ pub mSampleValues: [f64; 11usize],
+ }
+ pub const nsSMILKeySpline_kSplineTableSize: root::nsSMILKeySpline__bindgen_ty_1 = 11;
+ pub type nsSMILKeySpline__bindgen_ty_1 = u32;
+ extern "C" {
+ #[link_name = "\u{1}_ZN15nsSMILKeySpline15kSampleStepSizeE"]
+ pub static mut nsSMILKeySpline_kSampleStepSize: f64;
+ }
+ #[test]
+ fn bindgen_test_layout_nsSMILKeySpline() {
+ assert_eq!(
+ ::std::mem::size_of::<nsSMILKeySpline>(),
+ 120usize,
+ concat!("Size of: ", stringify!(nsSMILKeySpline))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsSMILKeySpline>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsSMILKeySpline))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsSMILKeySpline>())).mX1 as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSMILKeySpline),
+ "::",
+ stringify!(mX1)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsSMILKeySpline>())).mY1 as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSMILKeySpline),
+ "::",
+ stringify!(mY1)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsSMILKeySpline>())).mX2 as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSMILKeySpline),
+ "::",
+ stringify!(mX2)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsSMILKeySpline>())).mY2 as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSMILKeySpline),
+ "::",
+ stringify!(mY2)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsSMILKeySpline>())).mSampleValues as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsSMILKeySpline),
+ "::",
+ stringify!(mSampleValues)
+ )
+ );
+ }
+ impl Clone for nsSMILKeySpline {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const GECKO_IS_NIGHTLY: bool = true;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct ServoBundledURI {
+ pub mURLString: *const u8,
+ pub mURLStringLength: u32,
+ pub mExtraData: *mut root::mozilla::URLExtraData,
+ }
+ #[test]
+ fn bindgen_test_layout_ServoBundledURI() {
+ assert_eq!(
+ ::std::mem::size_of::<ServoBundledURI>(),
+ 24usize,
+ concat!("Size of: ", stringify!(ServoBundledURI))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<ServoBundledURI>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(ServoBundledURI))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoBundledURI>())).mURLString as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoBundledURI),
+ "::",
+ stringify!(mURLString)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<ServoBundledURI>())).mURLStringLength as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoBundledURI),
+ "::",
+ stringify!(mURLStringLength)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<ServoBundledURI>())).mExtraData as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(ServoBundledURI),
+ "::",
+ stringify!(mExtraData)
+ )
+ );
+ }
+ impl Clone for ServoBundledURI {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct FontSizePrefs {
+ pub mDefaultVariableSize: root::nscoord,
+ pub mDefaultFixedSize: root::nscoord,
+ pub mDefaultSerifSize: root::nscoord,
+ pub mDefaultSansSerifSize: root::nscoord,
+ pub mDefaultMonospaceSize: root::nscoord,
+ pub mDefaultCursiveSize: root::nscoord,
+ pub mDefaultFantasySize: root::nscoord,
+ }
+ #[test]
+ fn bindgen_test_layout_FontSizePrefs() {
+ assert_eq!(
+ ::std::mem::size_of::<FontSizePrefs>(),
+ 28usize,
+ concat!("Size of: ", stringify!(FontSizePrefs))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<FontSizePrefs>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(FontSizePrefs))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultVariableSize as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultVariableSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultFixedSize as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultFixedSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultSerifSize as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultSerifSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultSansSerifSize as *const _ as usize
+ },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultSansSerifSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultMonospaceSize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultMonospaceSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultCursiveSize as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultCursiveSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<FontSizePrefs>())).mDefaultFantasySize as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(FontSizePrefs),
+ "::",
+ stringify!(mDefaultFantasySize)
+ )
+ );
+ }
+ impl Clone for FontSizePrefs {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct GeckoFontMetrics {
+ pub mChSize: root::nscoord,
+ pub mXSize: root::nscoord,
+ }
+ #[test]
+ fn bindgen_test_layout_GeckoFontMetrics() {
+ assert_eq!(
+ ::std::mem::size_of::<GeckoFontMetrics>(),
+ 8usize,
+ concat!("Size of: ", stringify!(GeckoFontMetrics))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<GeckoFontMetrics>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(GeckoFontMetrics))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoFontMetrics>())).mChSize as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoFontMetrics),
+ "::",
+ stringify!(mChSize)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<GeckoFontMetrics>())).mXSize as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(GeckoFontMetrics),
+ "::",
+ stringify!(mXSize)
+ )
+ );
+ }
+ impl Clone for GeckoFontMetrics {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_after: u32 = 65;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_before: u32 = 65;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_backdrop: u32 = 0;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_cue: u32 = 36;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_firstLetter: u32 = 3;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_firstLine: u32 = 3;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozSelection: u32 = 2;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozFocusInner: u32 = 0;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozFocusOuter: u32 = 0;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozListBullet: u32 = 0;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozListNumber: u32 = 0;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozMathAnonymous: u32 = 0;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberWrapper: u32 = 24;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberText: u32 = 24;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberSpinBox: u32 = 24;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberSpinUp: u32 = 24;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozNumberSpinDown: u32 = 24;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozProgressBar: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozRangeTrack: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozRangeProgress: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozRangeThumb: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozMeterBar: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozPlaceholder: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_placeholder: u32 = 8;
+ pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozColorSwatch: u32 = 12;
+ pub type nsCSSAnonBoxes_NonInheritingBase = u8;
+ pub const nsCSSAnonBoxes_NonInheriting_oofPlaceholder: root::nsCSSAnonBoxes_NonInheriting = 0;
+ pub const nsCSSAnonBoxes_NonInheriting_horizontalFramesetBorder:
+ root::nsCSSAnonBoxes_NonInheriting = 1;
+ pub const nsCSSAnonBoxes_NonInheriting_verticalFramesetBorder:
+ root::nsCSSAnonBoxes_NonInheriting = 2;
+ pub const nsCSSAnonBoxes_NonInheriting_framesetBlank: root::nsCSSAnonBoxes_NonInheriting = 3;
+ pub const nsCSSAnonBoxes_NonInheriting_tableColGroup: root::nsCSSAnonBoxes_NonInheriting = 4;
+ pub const nsCSSAnonBoxes_NonInheriting_tableCol: root::nsCSSAnonBoxes_NonInheriting = 5;
+ pub const nsCSSAnonBoxes_NonInheriting_pageBreak: root::nsCSSAnonBoxes_NonInheriting = 6;
+ pub const nsCSSAnonBoxes_NonInheriting__Count: root::nsCSSAnonBoxes_NonInheriting = 7;
+ pub type nsCSSAnonBoxes_NonInheriting = u8;
+ /// templated hashtable class maps keys to interface pointers.
/// See nsBaseHashtable for complete declaration.
/// @param KeyClass a wrapper-class for the hashtable key, see nsHashKeys.h
/// for a complete specification.
/// @param Interface the interface-type being wrapped
- /// @see nsDataHashtable, nsClassHashtable
- # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsInterfaceHashtable { pub _address : u8 , } pub type nsInterfaceHashtable_KeyType = [ u8 ; 0usize ] ; pub type nsInterfaceHashtable_UserDataType < Interface > = * mut Interface ; pub type nsInterfaceHashtable_base_type = u8 ; pub type nsBindingList = root :: nsTArray < root :: RefPtr < root :: nsXBLBinding > > ; # [ repr ( C ) ] pub struct nsBindingManager { pub _base : root :: nsStubMutationObserver , pub mRefCnt : root :: nsCycleCollectingAutoRefCnt , pub mBoundContentSet : u64 , pub mWrapperTable : root :: nsAutoPtr < root :: nsBindingManager_WrapperHashtable > , pub mDocumentTable : u64 , pub mLoadingDocTable : u64 , pub mAttachedStack : root :: nsBindingList , pub mProcessingAttachedStack : bool , pub mDestroyed : bool , pub mAttachedStackSizeOnOutermost : u32 , pub mProcessAttachedQueueEvent : u64 , pub mDocument : * mut root :: nsIDocument , } pub type nsBindingManager_HasThreadSafeRefCnt = root :: mozilla :: FalseType ; pub const nsBindingManager_DestructorHandling_eRunDtor : root :: nsBindingManager_DestructorHandling = 0 ; pub const nsBindingManager_DestructorHandling_eDoNotRunDtor : root :: nsBindingManager_DestructorHandling = 1 ; pub type nsBindingManager_DestructorHandling = :: std :: os :: raw :: c_uint ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsBindingManager_cycleCollection { pub _base : root :: nsXPCOMCycleCollectionParticipant , } # [ test ] fn bindgen_test_layout_nsBindingManager_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsBindingManager_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsBindingManager_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsBindingManager_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsBindingManager_cycleCollection ) ) ) ; } impl Clone for nsBindingManager_cycleCollection { fn clone ( & self ) -> Self { * self } } pub type nsBindingManager_BoundContentBindingCallback = root :: std :: function ; pub type nsBindingManager_WrapperHashtable = u8 ; extern "C" {
- # [ link_name = "\u{1}_ZN16nsBindingManager21_cycleCollectorGlobalE" ]
- pub static mut nsBindingManager__cycleCollectorGlobal : root :: nsBindingManager_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_nsBindingManager ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsBindingManager > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( nsBindingManager ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsBindingManager > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsBindingManager ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mRefCnt as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mRefCnt ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mBoundContentSet as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mBoundContentSet ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mWrapperTable as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mWrapperTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mDocumentTable as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mDocumentTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mLoadingDocTable as * const _ as usize } , 40usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mLoadingDocTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mAttachedStack as * const _ as usize } , 48usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mAttachedStack ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mProcessingAttachedStack as * const _ as usize } , 56usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mProcessingAttachedStack ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mDestroyed as * const _ as usize } , 57usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mDestroyed ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mAttachedStackSizeOnOutermost as * const _ as usize } , 60usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mAttachedStackSizeOnOutermost ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mProcessAttachedQueueEvent as * const _ as usize } , 64usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mProcessAttachedQueueEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsBindingManager ) ) . mDocument as * const _ as usize } , 72usize , concat ! ( "Alignment of field: " , stringify ! ( nsBindingManager ) , "::" , stringify ! ( mDocument ) ) ) ; }
- /// An nsStyleContext represents the computed style data for an element.
+ /// @see nsDataHashtable, nsClassHashtable
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsInterfaceHashtable {
+ pub _address: u8,
+ }
+ pub type nsInterfaceHashtable_KeyType = [u8; 0usize];
+ pub type nsInterfaceHashtable_UserDataType<Interface> = *mut Interface;
+ pub type nsInterfaceHashtable_base_type = u8;
+ pub type nsBindingList = root::nsTArray<root::RefPtr<root::nsXBLBinding>>;
+ #[repr(C)]
+ pub struct nsBindingManager {
+ pub _base: root::nsStubMutationObserver,
+ pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
+ pub mBoundContentSet: u64,
+ pub mWrapperTable: root::nsAutoPtr<root::nsBindingManager_WrapperHashtable>,
+ pub mDocumentTable: u64,
+ pub mLoadingDocTable: u64,
+ pub mAttachedStack: root::nsBindingList,
+ pub mProcessingAttachedStack: bool,
+ pub mDestroyed: bool,
+ pub mAttachedStackSizeOnOutermost: u32,
+ pub mProcessAttachedQueueEvent: u64,
+ pub mDocument: *mut root::nsIDocument,
+ }
+ pub type nsBindingManager_HasThreadSafeRefCnt = root::mozilla::FalseType;
+ pub const nsBindingManager_DestructorHandling_eRunDtor:
+ root::nsBindingManager_DestructorHandling = 0;
+ pub const nsBindingManager_DestructorHandling_eDoNotRunDtor:
+ root::nsBindingManager_DestructorHandling = 1;
+ pub type nsBindingManager_DestructorHandling = u32;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsBindingManager_cycleCollection {
+ pub _base: root::nsXPCOMCycleCollectionParticipant,
+ }
+ #[test]
+ fn bindgen_test_layout_nsBindingManager_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsBindingManager_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsBindingManager_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsBindingManager_cycleCollection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsBindingManager_cycleCollection)
+ )
+ );
+ }
+ impl Clone for nsBindingManager_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ pub type nsBindingManager_BoundContentBindingCallback = root::std::function;
+ pub type nsBindingManager_WrapperHashtable = u8;
+ extern "C" {
+ #[link_name = "\u{1}_ZN16nsBindingManager21_cycleCollectorGlobalE"]
+ pub static mut nsBindingManager__cycleCollectorGlobal:
+ root::nsBindingManager_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_nsBindingManager() {
+ assert_eq!(
+ ::std::mem::size_of::<nsBindingManager>(),
+ 80usize,
+ concat!("Size of: ", stringify!(nsBindingManager))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsBindingManager>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsBindingManager))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsBindingManager>())).mRefCnt as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mRefCnt)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mBoundContentSet as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mBoundContentSet)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mWrapperTable as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mWrapperTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mDocumentTable as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mDocumentTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mLoadingDocTable as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mLoadingDocTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mAttachedStack as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mAttachedStack)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mProcessingAttachedStack as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mProcessingAttachedStack)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsBindingManager>())).mDestroyed as *const _ as usize },
+ 57usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mDestroyed)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mAttachedStackSizeOnOutermost
+ as *const _ as usize
+ },
+ 60usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mAttachedStackSizeOnOutermost)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsBindingManager>())).mProcessAttachedQueueEvent as *const _
+ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mProcessAttachedQueueEvent)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsBindingManager>())).mDocument as *const _ as usize },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsBindingManager),
+ "::",
+ stringify!(mDocument)
+ )
+ );
+ }
+ /// An nsStyleContext represents the computed style data for an element.
/// The computed style data are stored in a set of structs (see
/// nsStyleStruct.h) that are cached either on the style context or in
/// the rule tree (see nsRuleNode.h for a description of this caching and
@@ -1784,254 +37256,8089 @@ pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::
/// by:
/// 1. the |nsIFrame|s that are using the style context and
/// 2. any *child* style contexts (this might be the reverse of
- /// expectation, but it makes sense in this case)
- # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsStyleContext { pub mPseudoTag : root :: RefPtr < root :: nsAtom > , pub mBits : u64 , } # [ test ] fn bindgen_test_layout_nsStyleContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsStyleContext > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsStyleContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsStyleContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsStyleContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContext ) ) . mPseudoTag as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContext ) , "::" , stringify ! ( mPseudoTag ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsStyleContext ) ) . mBits as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsStyleContext ) , "::" , stringify ! ( mBits ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMCSSRule { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMCSSRule_COMTypeInfo { pub _address : u8 , } pub const nsIDOMCSSRule_UNKNOWN_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 0 ; pub const nsIDOMCSSRule_STYLE_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 1 ; pub const nsIDOMCSSRule_CHARSET_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 2 ; pub const nsIDOMCSSRule_IMPORT_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 3 ; pub const nsIDOMCSSRule_MEDIA_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 4 ; pub const nsIDOMCSSRule_FONT_FACE_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 5 ; pub const nsIDOMCSSRule_PAGE_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 6 ; pub const nsIDOMCSSRule_KEYFRAMES_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 7 ; pub const nsIDOMCSSRule_KEYFRAME_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 8 ; pub const nsIDOMCSSRule_MOZ_KEYFRAMES_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 7 ; pub const nsIDOMCSSRule_MOZ_KEYFRAME_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 8 ; pub const nsIDOMCSSRule_NAMESPACE_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 10 ; pub const nsIDOMCSSRule_COUNTER_STYLE_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 11 ; pub const nsIDOMCSSRule_SUPPORTS_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 12 ; pub const nsIDOMCSSRule_DOCUMENT_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 13 ; pub const nsIDOMCSSRule_FONT_FEATURE_VALUES_RULE : root :: nsIDOMCSSRule__bindgen_ty_1 = 14 ; pub type nsIDOMCSSRule__bindgen_ty_1 = :: std :: os :: raw :: c_uint ; # [ test ] fn bindgen_test_layout_nsIDOMCSSRule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMCSSRule > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMCSSRule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMCSSRule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMCSSRule ) ) ) ; } impl Clone for nsIDOMCSSRule { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMCSSCounterStyleRule { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMCSSCounterStyleRule_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMCSSCounterStyleRule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMCSSCounterStyleRule > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMCSSCounterStyleRule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMCSSCounterStyleRule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMCSSCounterStyleRule ) ) ) ; } impl Clone for nsIDOMCSSCounterStyleRule { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSCounterStyleRule { pub _base : root :: mozilla :: css :: Rule , pub _base_1 : root :: nsIDOMCSSCounterStyleRule , pub mName : root :: RefPtr < root :: nsAtom > , pub mValues : [ root :: nsCSSValue ; 10usize ] , pub mGeneration : u32 , } pub type nsCSSCounterStyleRule_Getter = :: std :: option :: Option < unsafe extern "C" fn ( ) -> root :: nsresult > ; extern "C" {
- # [ link_name = "\u{1}_ZN21nsCSSCounterStyleRule8kGettersE" ]
- pub static mut nsCSSCounterStyleRule_kGetters : [ root :: nsCSSCounterStyleRule_Getter ; 0usize ] ;
-} # [ test ] fn bindgen_test_layout_nsCSSCounterStyleRule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSCounterStyleRule > ( ) , 248usize , concat ! ( "Size of: " , stringify ! ( nsCSSCounterStyleRule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSCounterStyleRule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSCounterStyleRule ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMCSSStyleDeclaration { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMCSSStyleDeclaration_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMCSSStyleDeclaration ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMCSSStyleDeclaration > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMCSSStyleDeclaration ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMCSSStyleDeclaration > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMCSSStyleDeclaration ) ) ) ; } impl Clone for nsIDOMCSSStyleDeclaration { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsICSSDeclaration { pub _base : root :: nsIDOMCSSStyleDeclaration , pub _base_1 : root :: nsWrapperCache , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsICSSDeclaration_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsICSSDeclaration ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsICSSDeclaration > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( nsICSSDeclaration ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsICSSDeclaration > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsICSSDeclaration ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsIDOMCSSFontFaceRule { pub _base : root :: nsISupports , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIDOMCSSFontFaceRule_COMTypeInfo { pub _address : u8 , } # [ test ] fn bindgen_test_layout_nsIDOMCSSFontFaceRule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsIDOMCSSFontFaceRule > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsIDOMCSSFontFaceRule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsIDOMCSSFontFaceRule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDOMCSSFontFaceRule ) ) ) ; } impl Clone for nsIDOMCSSFontFaceRule { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSFontFaceStyleDecl { pub _base : root :: nsICSSDeclaration , pub mDescriptors : root :: mozilla :: CSSFontFaceDescriptors , } # [ test ] fn bindgen_test_layout_nsCSSFontFaceStyleDecl ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSFontFaceStyleDecl > ( ) , 176usize , concat ! ( "Size of: " , stringify ! ( nsCSSFontFaceStyleDecl ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSFontFaceStyleDecl > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSFontFaceStyleDecl ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsCSSFontFaceStyleDecl ) ) . mDescriptors as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsCSSFontFaceStyleDecl ) , "::" , stringify ! ( mDescriptors ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsCSSFontFaceRule { pub _base : root :: mozilla :: css :: Rule , pub _base_1 : root :: nsIDOMCSSFontFaceRule , pub mDecl : root :: nsCSSFontFaceStyleDecl , } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsCSSFontFaceRule_cycleCollection { pub _base : root :: mozilla :: css :: Rule_cycleCollection , } # [ test ] fn bindgen_test_layout_nsCSSFontFaceRule_cycleCollection ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSFontFaceRule_cycleCollection > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsCSSFontFaceRule_cycleCollection ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSFontFaceRule_cycleCollection > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSFontFaceRule_cycleCollection ) ) ) ; } impl Clone for nsCSSFontFaceRule_cycleCollection { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN17nsCSSFontFaceRule21_cycleCollectorGlobalE" ]
- pub static mut nsCSSFontFaceRule__cycleCollectorGlobal : root :: nsCSSFontFaceRule_cycleCollection ;
-} # [ test ] fn bindgen_test_layout_nsCSSFontFaceRule ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsCSSFontFaceRule > ( ) , 248usize , concat ! ( "Size of: " , stringify ! ( nsCSSFontFaceRule ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsCSSFontFaceRule > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsCSSFontFaceRule ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug ) ] pub struct nsFontFaceRuleContainer { pub mRule : root :: RefPtr < root :: nsCSSFontFaceRule > , pub mSheetType : root :: mozilla :: SheetType , } # [ test ] fn bindgen_test_layout_nsFontFaceRuleContainer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsFontFaceRuleContainer > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( nsFontFaceRuleContainer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsFontFaceRuleContainer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsFontFaceRuleContainer ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFontFaceRuleContainer ) ) . mRule as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsFontFaceRuleContainer ) , "::" , stringify ! ( mRule ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsFontFaceRuleContainer ) ) . mSheetType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsFontFaceRuleContainer ) , "::" , stringify ! ( mSheetType ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsHtml5StringParser { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIConsoleService { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIFragmentContentSink { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIStringBundle { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsIBidiKeyboard { _unused : [ u8 ; 0 ] } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct EventNameMapping { pub mAtom : * mut root :: nsAtom , pub mType : i32 , pub mMessage : root :: mozilla :: EventMessage , pub mEventClassID : root :: mozilla :: EventClassID , pub mMaybeSpecialSVGorSMILEvent : bool , } # [ test ] fn bindgen_test_layout_EventNameMapping ( ) { assert_eq ! ( :: std :: mem :: size_of :: < EventNameMapping > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( EventNameMapping ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < EventNameMapping > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( EventNameMapping ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EventNameMapping ) ) . mAtom as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( EventNameMapping ) , "::" , stringify ! ( mAtom ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EventNameMapping ) ) . mType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( EventNameMapping ) , "::" , stringify ! ( mType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EventNameMapping ) ) . mMessage as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( EventNameMapping ) , "::" , stringify ! ( mMessage ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EventNameMapping ) ) . mEventClassID as * const _ as usize } , 14usize , concat ! ( "Alignment of field: " , stringify ! ( EventNameMapping ) , "::" , stringify ! ( mEventClassID ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const EventNameMapping ) ) . mMaybeSpecialSVGorSMILEvent as * const _ as usize } , 15usize , concat ! ( "Alignment of field: " , stringify ! ( EventNameMapping ) , "::" , stringify ! ( mMaybeSpecialSVGorSMILEvent ) ) ) ; } impl Clone for EventNameMapping { fn clone ( & self ) -> Self { * self } } extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils10sXPConnectE" ]
- pub static mut nsContentUtils_sXPConnect : * mut root :: nsIXPConnect ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils16sSecurityManagerE" ]
- pub static mut nsContentUtils_sSecurityManager : * mut root :: nsIScriptSecurityManager ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils16sSystemPrincipalE" ]
- pub static mut nsContentUtils_sSystemPrincipal : * mut root :: nsIPrincipal ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sNullSubjectPrincipalE" ]
- pub static mut nsContentUtils_sNullSubjectPrincipal : * mut root :: nsIPrincipal ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils17sNameSpaceManagerE" ]
- pub static mut nsContentUtils_sNameSpaceManager : * mut root :: nsNameSpaceManager ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils10sIOServiceE" ]
- pub static mut nsContentUtils_sIOService : * mut root :: nsIIOService ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils14sUUIDGeneratorE" ]
- pub static mut nsContentUtils_sUUIDGenerator : * mut root :: nsIUUIDGenerator ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils15sConsoleServiceE" ]
- pub static mut nsContentUtils_sConsoleService : * mut root :: nsIConsoleService ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils15sAtomEventTableE" ]
- pub static mut nsContentUtils_sAtomEventTable : * mut u8 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils17sStringEventTableE" ]
- pub static mut nsContentUtils_sStringEventTable : * mut u8 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sUserDefinedEventsE" ]
- pub static mut nsContentUtils_sUserDefinedEvents : * mut root :: nsTArray < root :: RefPtr < root :: nsAtom > > ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils20sStringBundleServiceE" ]
- pub static mut nsContentUtils_sStringBundleService : * mut root :: nsIStringBundleService ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils14sStringBundlesE" ]
- pub static mut nsContentUtils_sStringBundles : [ * mut root :: nsIStringBundle ; 14usize ] ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sContentPolicyServiceE" ]
- pub static mut nsContentUtils_sContentPolicyService : * mut root :: nsIContentPolicy ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils24sTriedToGetContentPolicyE" ]
- pub static mut nsContentUtils_sTriedToGetContentPolicy : bool ;
-} # [ test ] fn __bindgen_test_layout_RefPtr_open0_LineBreaker_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: intl :: LineBreaker > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: intl :: LineBreaker > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: intl :: LineBreaker > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: intl :: LineBreaker > ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils12sLineBreakerE" ]
- pub static mut nsContentUtils_sLineBreaker : root :: RefPtr < root :: mozilla :: intl :: LineBreaker > ;
-} # [ test ] fn __bindgen_test_layout_RefPtr_open0_WordBreaker_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: intl :: WordBreaker > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: intl :: WordBreaker > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: intl :: WordBreaker > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: intl :: WordBreaker > ) ) ) ; } extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils12sWordBreakerE" ]
- pub static mut nsContentUtils_sWordBreaker : root :: RefPtr < root :: mozilla :: intl :: WordBreaker > ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils13sBidiKeyboardE" ]
- pub static mut nsContentUtils_sBidiKeyboard : * mut root :: nsIBidiKeyboard ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils12sInitializedE" ]
- pub static mut nsContentUtils_sInitialized : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils19sScriptBlockerCountE" ]
- pub static mut nsContentUtils_sScriptBlockerCount : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils28sDOMNodeRemovedSuppressCountE" ]
- pub static mut nsContentUtils_sDOMNodeRemovedSuppressCount : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sBlockedScriptRunnersE" ]
- pub static mut nsContentUtils_sBlockedScriptRunners : * mut u8 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils27sRunnersCountAtFirstBlockerE" ]
- pub static mut nsContentUtils_sRunnersCountAtFirstBlocker : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils40sScriptBlockerCountWhereRunnersPreventedE" ]
- pub static mut nsContentUtils_sScriptBlockerCountWhereRunnersPrevented : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sSameOriginCheckerE" ]
- pub static mut nsContentUtils_sSameOriginChecker : * mut root :: nsIInterfaceRequestor ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils24sIsHandlingKeyBoardEventE" ]
- pub static mut nsContentUtils_sIsHandlingKeyBoardEvent : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sAllowXULXBL_for_fileE" ]
- pub static mut nsContentUtils_sAllowXULXBL_for_file : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils23sIsFullScreenApiEnabledE" ]
- pub static mut nsContentUtils_sIsFullScreenApiEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils33sIsUnprefixedFullscreenApiEnabledE" ]
- pub static mut nsContentUtils_sIsUnprefixedFullscreenApiEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils22sTrustedFullScreenOnlyE" ]
- pub static mut nsContentUtils_sTrustedFullScreenOnly : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils17sIsCutCopyAllowedE" ]
- pub static mut nsContentUtils_sIsCutCopyAllowed : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sHandlingInputTimeoutE" ]
- pub static mut nsContentUtils_sHandlingInputTimeout : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils27sIsPerformanceTimingEnabledE" ]
- pub static mut nsContentUtils_sIsPerformanceTimingEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils24sIsResourceTimingEnabledE" ]
- pub static mut nsContentUtils_sIsResourceTimingEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils37sIsPerformanceNavigationTimingEnabledE" ]
- pub static mut nsContentUtils_sIsPerformanceNavigationTimingEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils27sIsUserTimingLoggingEnabledE" ]
- pub static mut nsContentUtils_sIsUserTimingLoggingEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils25sIsFrameTimingPrefEnabledE" ]
- pub static mut nsContentUtils_sIsFrameTimingPrefEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils34sIsFormAutofillAutocompleteEnabledE" ]
- pub static mut nsContentUtils_sIsFormAutofillAutocompleteEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils23sIsShadowDOMEnabledE" ]
- pub static mut nsContentUtils_sIsShadowDOMEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils24sIsCustomElementsEnabledE" ]
- pub static mut nsContentUtils_sIsCustomElementsEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils16sDevToolsEnabledE" ]
- pub static mut nsContentUtils_sDevToolsEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils35sSendPerformanceTimingNotificationsE" ]
- pub static mut nsContentUtils_sSendPerformanceTimingNotifications : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sUseActivityCursorE" ]
- pub static mut nsContentUtils_sUseActivityCursor : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils25sAnimationsAPICoreEnabledE" ]
- pub static mut nsContentUtils_sAnimationsAPICoreEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils35sAnimationsAPIElementAnimateEnabledE" ]
- pub static mut nsContentUtils_sAnimationsAPIElementAnimateEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils34sAnimationsAPIPendingMemberEnabledE" ]
- pub static mut nsContentUtils_sAnimationsAPIPendingMemberEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils19sGetBoxQuadsEnabledE" ]
- pub static mut nsContentUtils_sGetBoxQuadsEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils30sSkipCursorMoveForSameValueSetE" ]
- pub static mut nsContentUtils_sSkipCursorMoveForSameValueSet : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils27sRequestIdleCallbackEnabledE" ]
- pub static mut nsContentUtils_sRequestIdleCallbackEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sLowerNetworkPriorityE" ]
- pub static mut nsContentUtils_sLowerNetworkPriority : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils15sTailingEnabledE" ]
- pub static mut nsContentUtils_sTailingEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils28sShowInputPlaceholderOnFocusE" ]
- pub static mut nsContentUtils_sShowInputPlaceholderOnFocus : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils17sAutoFocusEnabledE" ]
- pub static mut nsContentUtils_sAutoFocusEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils23sBypassCSSOMOriginCheckE" ]
- pub static mut nsContentUtils_sBypassCSSOMOriginCheck : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sIsScopedStyleEnabledE" ]
- pub static mut nsContentUtils_sIsScopedStyleEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils23sIsBytecodeCacheEnabledE" ]
- pub static mut nsContentUtils_sIsBytecodeCacheEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils22sBytecodeCacheStrategyE" ]
- pub static mut nsContentUtils_sBytecodeCacheStrategy : i32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils22sCookiesLifetimePolicyE" ]
- pub static mut nsContentUtils_sCookiesLifetimePolicy : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils16sCookiesBehaviorE" ]
- pub static mut nsContentUtils_sCookiesBehavior : u32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils20sShortcutsCustomizedE" ]
- pub static mut nsContentUtils_sShortcutsCustomized : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sPrivacyMaxInnerWidthE" ]
- pub static mut nsContentUtils_sPrivacyMaxInnerWidth : i32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils22sPrivacyMaxInnerHeightE" ]
- pub static mut nsContentUtils_sPrivacyMaxInnerHeight : i32 ;
-} # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct nsContentUtils_UserInteractionObserver { _unused : [ u8 ; 0 ] } extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils24sUserInteractionObserverE" ]
- pub static mut nsContentUtils_sUserInteractionObserver : * mut root :: nsContentUtils_UserInteractionObserver ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils19sHTMLFragmentParserE" ]
- pub static mut nsContentUtils_sHTMLFragmentParser : * mut root :: nsHtml5StringParser ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sXMLFragmentParserE" ]
- pub static mut nsContentUtils_sXMLFragmentParser : * mut root :: nsIParser ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils16sXMLFragmentSinkE" ]
- pub static mut nsContentUtils_sXMLFragmentSink : * mut root :: nsIFragmentContentSink ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils22sFragmentParsingActiveE" ]
- pub static mut nsContentUtils_sFragmentParsingActive : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils10sShiftTextE" ]
- pub static mut nsContentUtils_sShiftText : * mut ::nsstring::nsStringRepr ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils12sControlTextE" ]
- pub static mut nsContentUtils_sControlText : * mut ::nsstring::nsStringRepr ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils9sMetaTextE" ]
- pub static mut nsContentUtils_sMetaText : * mut ::nsstring::nsStringRepr ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils7sOSTextE" ]
- pub static mut nsContentUtils_sOSText : * mut ::nsstring::nsStringRepr ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils8sAltTextE" ]
- pub static mut nsContentUtils_sAltText : * mut ::nsstring::nsStringRepr ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sModifierSeparatorE" ]
- pub static mut nsContentUtils_sModifierSeparator : * mut ::nsstring::nsStringRepr ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils19sJSBytecodeMimeTypeE" ]
- pub static mut nsContentUtils_sJSBytecodeMimeType : * mut root :: nsCString ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils21sDOMWindowDumpEnabledE" ]
- pub static mut nsContentUtils_sDOMWindowDumpEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sDoNotTrackEnabledE" ]
- pub static mut nsContentUtils_sDoNotTrackEnabled : bool ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils11sDOMDumpLogE" ]
- pub static mut nsContentUtils_sDOMDumpLog : root :: mozilla :: LazyLogModule ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils18sPopupControlStateE" ]
- pub static mut nsContentUtils_sPopupControlState : root :: PopupControlState ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils24sInnerOrOuterWindowCountE" ]
- pub static mut nsContentUtils_sInnerOrOuterWindowCount : i32 ;
-} extern "C" {
- # [ link_name = "\u{1}_ZN14nsContentUtils32sInnerOrOuterWindowSerialCounterE" ]
- pub static mut nsContentUtils_sInnerOrOuterWindowSerialCounter : u32 ;
-} pub type nsMediaFeatureValueGetter = :: std :: option :: Option < unsafe extern "C" fn ( aDocument : * mut root :: nsIDocument, aFeature : * const root :: nsMediaFeature , aResult : * mut root :: nsCSSValue ) > ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsMediaFeature { pub mName : * mut * mut root :: nsStaticAtom , pub mRangeType : root :: nsMediaFeature_RangeType , pub mValueType : root :: nsMediaFeature_ValueType , pub mReqFlags : u8 , pub mData : root :: nsMediaFeature__bindgen_ty_1 , pub mGetter : root :: nsMediaFeatureValueGetter , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsMediaFeature_RangeType { eMinMaxAllowed = 0 , eMinMaxNotAllowed = 1 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum nsMediaFeature_ValueType { eLength = 0 , eInteger = 1 , eFloat = 2 , eBoolInteger = 3 , eIntRatio = 4 , eResolution = 5 , eEnumerated = 6 , eIdent = 7 , } pub const nsMediaFeature_RequirementFlags_eNoRequirements : root :: nsMediaFeature_RequirementFlags = 0 ; pub const nsMediaFeature_RequirementFlags_eHasWebkitPrefix : root :: nsMediaFeature_RequirementFlags = 1 ; pub const nsMediaFeature_RequirementFlags_eWebkitDevicePixelRatioPrefEnabled : root :: nsMediaFeature_RequirementFlags = 2 ; pub const nsMediaFeature_RequirementFlags_eUserAgentAndChromeOnly : root :: nsMediaFeature_RequirementFlags = 4 ; pub type nsMediaFeature_RequirementFlags = u8 ; # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsMediaFeature__bindgen_ty_1 { pub mInitializer_ : root :: __BindgenUnionField < * const :: std :: os :: raw :: c_void > , pub mKeywordTable : root :: __BindgenUnionField < * const root :: nsCSSProps_KTableEntry > , pub mMetric : root :: __BindgenUnionField < * const * const root :: nsAtom > , pub bindgen_union_field : u64 , } # [ test ] fn bindgen_test_layout_nsMediaFeature__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsMediaFeature__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( nsMediaFeature__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsMediaFeature__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsMediaFeature__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature__bindgen_ty_1 ) ) . mInitializer_ as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature__bindgen_ty_1 ) , "::" , stringify ! ( mInitializer_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature__bindgen_ty_1 ) ) . mKeywordTable as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature__bindgen_ty_1 ) , "::" , stringify ! ( mKeywordTable ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature__bindgen_ty_1 ) ) . mMetric as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature__bindgen_ty_1 ) , "::" , stringify ! ( mMetric ) ) ) ; } impl Clone for nsMediaFeature__bindgen_ty_1 { fn clone ( & self ) -> Self { * self } } # [ test ] fn bindgen_test_layout_nsMediaFeature ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsMediaFeature > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( nsMediaFeature ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsMediaFeature > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( nsMediaFeature ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature ) ) . mName as * const _ as usize } , 0usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature ) , "::" , stringify ! ( mName ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature ) ) . mRangeType as * const _ as usize } , 8usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature ) , "::" , stringify ! ( mRangeType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature ) ) . mValueType as * const _ as usize } , 12usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature ) , "::" , stringify ! ( mValueType ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature ) ) . mReqFlags as * const _ as usize } , 16usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature ) , "::" , stringify ! ( mReqFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature ) ) . mData as * const _ as usize } , 24usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature ) , "::" , stringify ! ( mData ) ) ) ; assert_eq ! ( unsafe { & ( * ( 0 as * const nsMediaFeature ) ) . mGetter as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( nsMediaFeature ) , "::" , stringify ! ( mGetter ) ) ) ; } impl Clone for nsMediaFeature { fn clone ( & self ) -> Self { * self } } # [ repr ( C ) ] # [ derive ( Debug , Copy ) ] pub struct nsMediaFeatures { pub _address : u8 , } extern "C" {
- # [ link_name = "\u{1}_ZN15nsMediaFeatures8featuresE" ]
- pub static mut nsMediaFeatures_features : [ root :: nsMediaFeature ; 0usize ] ;
-} # [ test ] fn bindgen_test_layout_nsMediaFeatures ( ) { assert_eq ! ( :: std :: mem :: size_of :: < nsMediaFeatures > ( ) , 1usize , concat ! ( "Size of: " , stringify ! ( nsMediaFeatures ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < nsMediaFeatures > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( nsMediaFeatures ) ) ) ; } impl Clone for nsMediaFeatures { fn clone ( & self ) -> Self { * self } } # [ test ] fn __bindgen_test_layout_nsTSubstring_open0_char16_t_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTSubstring < u16 > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTSubstring < u16 > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTSubstring < u16 > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTSubstring < u16 > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ::nsstring::nsStringRepr > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( ::nsstring::nsStringRepr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ::nsstring::nsStringRepr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( ::nsstring::nsStringRepr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTSubstring_open0_char_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTSubstring < :: std :: os :: raw :: c_char > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTSubstring < :: std :: os :: raw :: c_char > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTSubstring < :: std :: os :: raw :: c_char > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTSubstring < :: std :: os :: raw :: c_char > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTString_open0_char_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTString < :: std :: os :: raw :: c_char > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTString < :: std :: os :: raw :: c_char > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTString < :: std :: os :: raw :: c_char > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTString < :: std :: os :: raw :: c_char > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_CSSVariableValues_Variable_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: CSSVariableValues_Variable > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: CSSVariableValues_Variable > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: CSSVariableValues_Variable > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: CSSVariableValues_Variable > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: FontFamilyName > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: FontFamilyName > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: FontFamilyName > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: FontFamilyName > ) ) ) ; } # [ test ] fn __bindgen_test_layout_NotNull_open0_RefPtr_open1_SharedFontList_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: NotNull < root :: RefPtr < root :: mozilla :: SharedFontList > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: NotNull < root :: RefPtr < root :: mozilla :: SharedFontList > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: NotNull < root :: RefPtr < root :: mozilla :: SharedFontList > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: NotNull < root :: RefPtr < root :: mozilla :: SharedFontList > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_SharedFontList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: SharedFontList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: SharedFontList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: SharedFontList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: SharedFontList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_uint32_t_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < u32 > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < u32 > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < u32 > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < u32 > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_gfxFontFeatureValueSet_ValueList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: gfxFontFeatureValueSet_ValueList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxFontFeatureValueSet_ValueList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: gfxFontFeatureValueSet_ValueList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxFontFeatureValueSet_ValueList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_uint32_t_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < u32 > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < u32 > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < u32 > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < u32 > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_gfxAlternateValue_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: gfxAlternateValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxAlternateValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: gfxAlternateValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxAlternateValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_gfxFontFeatureValueSet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: gfxFontFeatureValueSet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: gfxFontFeatureValueSet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: gfxFontFeatureValueSet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: gfxFontFeatureValueSet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_gfxFontFeature_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: gfxFontFeature > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxFontFeature > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: gfxFontFeature > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxFontFeature > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_gfxFontVariation_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: gfxFontVariation > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxFontVariation > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: gfxFontVariation > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: gfxFontVariation > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_BaseTimeDuration_open0_TimeDurationValueCalculator_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: BaseTimeDuration > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: BaseTimeDuration ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: BaseTimeDuration > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: BaseTimeDuration ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_DeletePolicy_open1_JSErrorNotes_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_iterator_open0_input_iterator_tag_UniquePtr_open1_JSErrorNotes_Note_DeletePolicy_open2_JSErrorNotes_Note_close2_close1_long_ptr_UniquePtr_ref_UniquePtr_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: std :: iterator > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: std :: iterator ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: std :: iterator > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: std :: iterator ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes_Note > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_DeletePolicy_open1_JSErrorNotes_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: JSErrorNotes > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: JSErrorNotes > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: JS :: DeletePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: JS :: DeletePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_MediaList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: MediaList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: MediaList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: MediaList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: MediaList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_StyleSetHandle_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: StyleSetHandle > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: StyleSetHandle > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: StyleSetHandle > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: StyleSetHandle > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_ProfilerBacktrace_ProfilerBacktraceDestructor_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: ProfilerBacktrace > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: ProfilerBacktrace > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: ProfilerBacktrace > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: ProfilerBacktrace > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsNodeInfoManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsNodeInfoManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsNodeInfoManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsNodeInfoManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsNodeInfoManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsBindingManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsBindingManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsBindingManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsBindingManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsBindingManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAttrChildContentList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAttrChildContentList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAttrChildContentList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAttrChildContentList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAttrChildContentList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_LinkedList_open1_nsRange_close1_DefaultDelete_open1_LinkedList_open2_nsRange_close2_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_LinkedList_open1_nsRange_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_LinkedList_open1_nsRange_close1_DefaultDelete_open1_LinkedList_open2_nsRange_close2_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: LinkedList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_LinkedList_open1_nsRange_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_NodeInfo_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: NodeInfo > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: NodeInfo > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: NodeInfo > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: NodeInfo > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIContent_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ShadowRoot_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_HTMLSlotElement_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: HTMLSlotElement > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: HTMLSlotElement > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: HTMLSlotElement > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: HTMLSlotElement > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsIContent_nsExtendedContentSlots_DefaultDelete_open1_nsIContent_nsExtendedContentSlots_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsIContent_nsExtendedContentSlots > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIContent_nsExtendedContentSlots > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsIContent_nsExtendedContentSlots > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIContent_nsExtendedContentSlots > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsIContent_nsExtendedContentSlots_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIWeakReference_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_ptr_void_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < * mut :: std :: os :: raw :: c_void > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < * mut :: std :: os :: raw :: c_void > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < * mut :: std :: os :: raw :: c_void > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < * mut :: std :: os :: raw :: c_void > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsPtrHashKey_open0_void_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsPtrHashKey < :: std :: os :: raw :: c_void > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsPtrHashKey < :: std :: os :: raw :: c_void > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsPtrHashKey < :: std :: os :: raw :: c_void > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsPtrHashKey < :: std :: os :: raw :: c_void > ) ) ) ; } # [ test ] fn __bindgen_test_layout_StaticRefPtr_open0_nsIContent_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: StaticRefPtr < root :: nsIContent > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: nsIContent > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: StaticRefPtr < root :: nsIContent > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: StaticRefPtr < root :: nsIContent > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsPresContext_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsPresContext > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsPresContext > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsPresContext > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsPresContext > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsFrameSelection_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsFrameSelection > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsFrameSelection > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsFrameSelection > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsFrameSelection > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsITimer_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsPtrHashKey_open0_WeakFrame_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsPtrHashKey < root :: WeakFrame > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsPtrHashKey < root :: WeakFrame > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsPtrHashKey < root :: WeakFrame > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsPtrHashKey < root :: WeakFrame > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsCString_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsCString > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCString > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsCString > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCString > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_Performance_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: Performance > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: Performance > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: Performance > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: Performance > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_TimeoutManager_DefaultDelete_open1_TimeoutManager_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: dom :: TimeoutManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: dom :: TimeoutManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: dom :: TimeoutManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: dom :: TimeoutManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_TimeoutManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsPIDOMWindowOuter_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIContent_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_ptr_AudioContext_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < * mut root :: mozilla :: dom :: AudioContext > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: mozilla :: dom :: AudioContext > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < * mut root :: mozilla :: dom :: AudioContext > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: mozilla :: dom :: AudioContext > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_TabGroup_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: TabGroup > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: TabGroup > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: TabGroup > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: TabGroup > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsPIDOMWindowInner_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_Element_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocShell_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_TabGroup_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: TabGroup > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: TabGroup > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: TabGroup > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: TabGroup > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsPIDOMWindowOuter_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsBaseContentList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsBaseContentList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsBaseContentList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsBaseContentList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsBaseContentList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_nsTHashtable_open1_nsIdentifierMapEntry_ChangeCallbackEntry_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < u64 > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < u64 > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( u64 ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsIdentifierMapEntry_Element_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsIdentifierMapEntry_Element > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsIdentifierMapEntry_Element > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsIdentifierMapEntry_Element > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsIdentifierMapEntry_Element > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_StyleSheet_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheetList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: StyleSheetList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: StyleSheetList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: StyleSheetList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: StyleSheetList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RawServoAnimationValue_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: RawServoAnimationValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoAnimationValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: RawServoAnimationValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoAnimationValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_PropertyValuePair_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: PropertyValuePair > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: PropertyValuePair > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: PropertyValuePair > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: PropertyValuePair > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsStyleAutoArray_open0_StyleAnimation_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > > ( ) , 56usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_RawServoSelectorList_DefaultDelete_open1_RawServoSelectorList_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: RawServoSelectorList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: RawServoSelectorList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: RawServoSelectorList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: RawServoSelectorList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsCSSSelectorList_DefaultDelete_open1_nsCSSSelectorList_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsCSSSelectorList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsCSSSelectorList_DefaultDelete_open1_nsCSSSelectorList_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSSelectorList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsCSSSelectorList_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_RawServoSelectorList_DefaultDelete_open1_RawServoSelectorList_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: RawServoSelectorList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: RawServoSelectorList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: RawServoSelectorList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: RawServoSelectorList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIObserver_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsIDocument_SelectorCache_DefaultDelete_open1_nsIDocument_SelectorCache_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsIDocument_SelectorCache_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsIDocument_SelectorCache_DefaultDelete_open1_nsIDocument_SelectorCache_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIDocument_SelectorCache > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsIDocument_SelectorCache_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_6 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_7 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_8 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_9 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLExtraData_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: URLExtraData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: URLExtraData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_NotNull_open0_ptr_const_nsIDocument__Encoding_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: NotNull < * const root :: nsIDocument_Encoding > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: NotNull < * const root :: nsIDocument_Encoding > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: NotNull < * const root :: nsIDocument_Encoding > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: NotNull < * const root :: nsIDocument_Encoding > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_Loader_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: Loader > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: Loader > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: Loader > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: Loader > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ImageLoader_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: ImageLoader > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: ImageLoader > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: ImageLoader > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: ImageLoader > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsHTMLStyleSheet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsHTMLStyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsHTMLStyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsHTMLStyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsHTMLStyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsHTMLCSSStyleSheet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsHTMLCSSStyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsHTMLCSSStyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsHTMLCSSStyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsHTMLCSSStyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ImageTracker_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: ImageTracker > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ImageTracker > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: ImageTracker > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ImageTracker > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_nsTHashtable_open1_nsPtrHashKey_open2_nsISupports_close2_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < u64 > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < u64 > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( u64 ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_Link_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsSMILAnimationController_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsSMILAnimationController > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsSMILAnimationController > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsSMILAnimationController > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsSMILAnimationController > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsAutoPtr_open1_nsPropertyTable_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsAutoPtr < root :: nsPropertyTable > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsAutoPtr < root :: nsPropertyTable > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsAutoPtr < root :: nsPropertyTable > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsAutoPtr < root :: nsPropertyTable > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIHTMLCollection_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_FontFaceSet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: FontFaceSet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: FontFaceSet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: FontFaceSet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: FontFaceSet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIScriptGlobalObject_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIChannel_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIChannel_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMArray_open0_nsINode_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMArray > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMArray ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMArray > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMArray ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsWeakPtr_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsWeakPtr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsWeakPtr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsWeakPtr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsWeakPtr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocumentEncoder_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsIDocument_FrameRequest_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsIDocument_FrameRequest > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsIDocument_FrameRequest > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsIDocument_FrameRequest > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsIDocument_FrameRequest > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIStructuredCloneContainer_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIVariant_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_XPathEvaluator_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: XPathEvaluator > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: XPathEvaluator > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: XPathEvaluator > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: XPathEvaluator > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_AnonymousContent_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: AnonymousContent > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: AnonymousContent > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: AnonymousContent > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: AnonymousContent > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_LinkedList_open0_MediaQueryList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: LinkedList > ( ) , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: LinkedList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: LinkedList > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: LinkedList ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_DocGroup_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: DocGroup > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: DocGroup > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: DocGroup > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: DocGroup > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsCOMPtr_open1_nsIRunnable_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsCOMPtr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCOMPtr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsCOMPtr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCOMPtr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIRunnable_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsCOMPtr_open1_nsIPrincipal_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsCOMPtr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCOMPtr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsCOMPtr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCOMPtr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_uint64_t_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < u64 > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < u64 > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < u64 > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < u64 > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsINode_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_LangGroupFontPrefs_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsAutoPtr < root :: mozilla :: LangGroupFontPrefs > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: mozilla :: LangGroupFontPrefs > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsAutoPtr < root :: mozilla :: LangGroupFontPrefs > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: mozilla :: LangGroupFontPrefs > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_6 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsDeviceContext_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsDeviceContext > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDeviceContext > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsDeviceContext > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDeviceContext > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_EventStateManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: EventStateManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: EventStateManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: EventStateManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: EventStateManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsRefreshDriver_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsRefreshDriver > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsRefreshDriver > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsRefreshDriver > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsRefreshDriver > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_EffectCompositor_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: EffectCompositor > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: EffectCompositor > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: EffectCompositor > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: EffectCompositor > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsTransitionManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsTransitionManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsTransitionManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsTransitionManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsTransitionManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAnimationManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAnimationManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAnimationManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAnimationManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAnimationManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RestyleManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: RestyleManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: RestyleManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: RestyleManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: RestyleManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_CounterStyleManager_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: CounterStyleManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: CounterStyleManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: CounterStyleManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: CounterStyleManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_gfxFontFeatureValueSet_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: gfxFontFeatureValueSet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: gfxFontFeatureValueSet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: gfxFontFeatureValueSet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: gfxFontFeatureValueSet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsITheme_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrintSettings_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsITimer_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsBidi_DefaultDelete_open1_nsBidi_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsBidi > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsBidi > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsBidi > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsBidi > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsBidi_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsRect_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsRect > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsRect > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsRect > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsRect > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_gfxTextPerfMetrics_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsAutoPtr < root :: gfxTextPerfMetrics > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: gfxTextPerfMetrics > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsAutoPtr < root :: gfxTextPerfMetrics > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: gfxTextPerfMetrics > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_gfxMissingFontRecorder_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsAutoPtr < root :: gfxMissingFontRecorder > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: gfxMissingFontRecorder > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsAutoPtr < root :: gfxMissingFontRecorder > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: gfxMissingFontRecorder > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_URLParams_Param_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: dom :: URLParams_Param > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: dom :: URLParams_Param > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: dom :: URLParams_Param > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: dom :: URLParams_Param > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_URLParams_DefaultDelete_open1_URLParams_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: dom :: URLParams > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: dom :: URLParams > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: dom :: URLParams > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: dom :: URLParams > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_URLParams_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_10 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_11 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_const_char_FreePolicy_open1_const_char_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < :: std :: os :: raw :: c_char > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < :: std :: os :: raw :: c_char > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < :: std :: os :: raw :: c_char > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < :: std :: os :: raw :: c_char > ) ) ) ; } # [ test ] fn __bindgen_test_layout_FreePolicy_open0_const_char_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: detail :: FreePolicy > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: detail :: FreePolicy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: detail :: FreePolicy > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: detail :: FreePolicy ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIEventTarget_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsMainThreadPtrHandle_open0_nsIURI_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsMainThreadPtrHandle < root :: nsIURI > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsMainThreadPtrHandle < root :: nsIURI > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsMainThreadPtrHandle < root :: nsIURI > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsMainThreadPtrHandle < root :: nsIURI > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLExtraData_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: URLExtraData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: URLExtraData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsPtrHashKey_open0_nsIDocument_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsPtrHashKey < root :: nsIDocument > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsPtrHashKey < root :: nsIDocument > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsPtrHashKey < root :: nsIDocument > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsPtrHashKey < root :: nsIDocument > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_GridNamedArea_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: css :: GridNamedArea > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: css :: GridNamedArea > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: css :: GridNamedArea > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: css :: GridNamedArea > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsCSSValueList_DefaultDelete_open1_nsCSSValueList_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValueList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValueList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValueList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValueList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValueList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsCSSValuePairList_DefaultDelete_open1_nsCSSValuePairList_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValuePairList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsCSSValueGradientStop_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsCSSValueGradientStop > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCSSValueGradientStop > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsCSSValueGradientStop > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCSSValueGradientStop > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_12 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_13 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_imgRequestProxy_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: imgRequestProxy > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: imgRequestProxy > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: imgRequestProxy > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: imgRequestProxy > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_ProxyBehaviour_DefaultDelete_open1_ProxyBehaviour_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: ProxyBehaviour > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: ProxyBehaviour > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: ProxyBehaviour > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: ProxyBehaviour > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_ProxyBehaviour_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_imgRequestProxy_ImageURL_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: imgRequestProxy_ImageURL > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: imgRequestProxy_ImageURL > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: imgRequestProxy_ImageURL > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: imgRequestProxy_ImageURL > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsILoadGroup_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_TabGroup_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: TabGroup > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: TabGroup > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: TabGroup > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: TabGroup > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIEventTarget_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_ptr_CounterStyle_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < * mut root :: mozilla :: CounterStyle > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: mozilla :: CounterStyle > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < * mut root :: mozilla :: CounterStyle > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: mozilla :: CounterStyle > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_6 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleGradientStop_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleGradientStop > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleGradientStop > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleGradientStop > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleGradientStop > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_imgRequestProxy_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: imgRequestProxy > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: imgRequestProxy > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: imgRequestProxy > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: imgRequestProxy > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ImageValue_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: ImageValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: ImageValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: ImageValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: ImageValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ImageTracker_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: ImageTracker > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ImageTracker > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: ImageTracker > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ImageTracker > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_DocGroup_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: DocGroup > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: DocGroup > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: DocGroup > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: DocGroup > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMArray_open0_imgIContainer_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMArray > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMArray ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMArray > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMArray ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleSides_DefaultDelete_open1_nsStyleSides_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleSides > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleSides > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleSides > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleSides > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleSides_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleSides_DefaultDelete_open1_nsStyleSides_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleSides > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleSides > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleSides > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleSides > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleSides_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_CachedBorderImageData_DefaultDelete_open1_CachedBorderImageData_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: CachedBorderImageData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: CachedBorderImageData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: CachedBorderImageData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: CachedBorderImageData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_CachedBorderImageData_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleSides_DefaultDelete_open1_nsStyleSides_close1_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleSides > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleSides > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleSides > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleSides > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleSides_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsStyleAutoArray_open0_nsStyleImageLayers_Layer_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsStyleAutoArray < root :: nsStyleImageLayers_Layer > > ( ) , 104usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: nsStyleImageLayers_Layer > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsStyleAutoArray < root :: nsStyleImageLayers_Layer > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: nsStyleImageLayers_Layer > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nscolor_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nscolor > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nscolor > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nscolor > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nscolor > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsBorderColors_DefaultDelete_open1_nsBorderColors_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsBorderColors > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsBorderColors > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsBorderColors > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsBorderColors > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsBorderColors_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_pair_open1_nsString_nsString_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_pair_open0_nsString_nsString_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ( ) , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsStyleImageRequest_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsStyleImageRequest > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsStyleImageRequest > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsStyleImageRequest > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsStyleImageRequest > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsStyleQuoteValues_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsStyleQuoteValues > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsStyleQuoteValues > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsStyleQuoteValues > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsStyleQuoteValues > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsTArray_open1_nsString_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsTArray < ::nsstring::nsStringRepr > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsTArray < ::nsstring::nsStringRepr > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsTArray < ::nsstring::nsStringRepr > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsTArray < ::nsstring::nsStringRepr > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < ::nsstring::nsStringRepr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < ::nsstring::nsStringRepr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_GridTemplateAreasValue_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: GridTemplateAreasValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: GridTemplateAreasValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: GridTemplateAreasValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: GridTemplateAreasValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsCSSShadowArray_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsCSSShadowArray > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSShadowArray > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsCSSShadowArray > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSShadowArray > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_7 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_8 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleImage_DefaultDelete_open1_nsStyleImage_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleImage > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleImage > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleImage > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleImage > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleImage_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleImage_DefaultDelete_open1_nsStyleImage_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleImage > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleImage > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleImage > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleImage > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleImage_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_StyleBasicShape_DefaultDelete_open1_StyleBasicShape_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_StyleBasicShape_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_StyleBasicShape_DefaultDelete_open1_StyleBasicShape_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_StyleBasicShape_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_StyleBasicShape_DefaultDelete_open1_StyleBasicShape_close1_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: StyleBasicShape > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_StyleBasicShape_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleImage_DefaultDelete_open1_nsStyleImage_close1_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleImage > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleImage > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleImage > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleImage > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleImage_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_9 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_Position_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: Position > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: Position > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: Position > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: Position > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsCSSValueSharedList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsCSSValueSharedList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSValueSharedList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsCSSValueSharedList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSValueSharedList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsStyleAutoArray_open0_StyleTransition_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsStyleAutoArray < root :: mozilla :: StyleTransition > > ( ) , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: mozilla :: StyleTransition > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsStyleAutoArray < root :: mozilla :: StyleTransition > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: mozilla :: StyleTransition > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsStyleAutoArray_open0_StyleAnimation_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > > ( ) , 56usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsStyleAutoArray < root :: mozilla :: StyleAnimation > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleContentData_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleContentData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleContentData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleContentData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleContentData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleCounterData_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleCounterData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCounterData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleCounterData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCounterData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleCounterData_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleCounterData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCounterData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleCounterData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCounterData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsCSSValueSharedList_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsCSSValueSharedList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSValueSharedList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsCSSValueSharedList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSValueSharedList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsStyleImageRequest_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsStyleImageRequest > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsStyleImageRequest > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsStyleImageRequest > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsStyleImageRequest > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsCursorImage_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsCursorImage > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCursorImage > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsCursorImage > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCursorImage > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: css :: URLValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: css :: URLValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleCoord > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleCoord > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_10 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsStyleFilter_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsStyleFilter > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleFilter > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsStyleFilter > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsStyleFilter > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsCSSShadowArray_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsCSSShadowArray > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSShadowArray > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsCSSShadowArray > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSShadowArray > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_ptr_nsISupports_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < * mut root :: nsISupports > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: nsISupports > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < * mut root :: nsISupports > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: nsISupports > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsCSSValueList_DefaultDelete_open1_nsCSSValueList_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValueList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValueList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValueList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValueList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValueList_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsCSSValuePairList_DefaultDelete_open1_nsCSSValuePairList_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsCSSValuePairList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValuePairList_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RawServoAnimationValue_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: RawServoAnimationValue > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoAnimationValue > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: RawServoAnimationValue > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoAnimationValue > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_nsCString_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: nsCString > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCString > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: nsCString > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: nsCString > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_14 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_15 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_16 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RawServoStyleSheetContents_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: RawServoStyleSheetContents > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoStyleSheetContents > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: RawServoStyleSheetContents > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoStyleSheetContents > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_URLExtraData_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: URLExtraData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: URLExtraData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: URLExtraData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ServoCSSRuleList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: ServoCSSRuleList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoCSSRuleList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: ServoCSSRuleList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoCSSRuleList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_6 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_StyleSheet_close1_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: StyleSheet > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_SheetLoadData_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: StyleSheet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: StyleSheet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_Loader_Sheets_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsAutoPtr < root :: mozilla :: css :: Loader_Sheets > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: mozilla :: css :: Loader_Sheets > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsAutoPtr < root :: mozilla :: css :: Loader_Sheets > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: mozilla :: css :: Loader_Sheets > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_DocGroup_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: DocGroup > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: DocGroup > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: DocGroup > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: DocGroup > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIConsoleReportCollector_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIContent_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsXBLBinding_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsXBLBinding > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsXBLBinding > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsXBLBinding > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsXBLBinding > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_XBLChildrenElement_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_XBLChildrenElement_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_XBLChildrenElement_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: XBLChildrenElement > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAnonymousContentList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAnonymousContentList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAnonymousContentList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAnonymousContentList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAnonymousContentList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsICSSDeclaration_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_DeclarationBlock_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: DeclarationBlock > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: DeclarationBlock > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: DeclarationBlock > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: DeclarationBlock > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIControllers_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsLabelsNodeList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsLabelsNodeList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsLabelsNodeList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsLabelsNodeList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsLabelsNodeList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ShadowRoot_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: ShadowRoot > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsXBLBinding_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsXBLBinding > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsXBLBinding > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsXBLBinding > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsXBLBinding > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_CustomElementData_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: CustomElementData > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: CustomElementData > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: CustomElementData > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: CustomElementData > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsICSSDeclaration_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsDOMAttributeMap_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsDOMAttributeMap > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDOMAttributeMap > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsDOMAttributeMap > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDOMAttributeMap > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsContentList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsContentList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsContentList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsContentList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsContentList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsDOMTokenList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsDOMTokenList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDOMTokenList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsDOMTokenList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDOMTokenList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsDOMAttributeMap_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsDOMAttributeMap > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDOMAttributeMap > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsDOMAttributeMap > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsDOMAttributeMap > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsDOMAttributeMap_Element_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIObserver_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsIWidget_LongTapInfo_DefaultDelete_open1_nsIWidget_LongTapInfo_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsIWidget_LongTapInfo > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIWidget_LongTapInfo > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsIWidget_LongTapInfo > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsIWidget_LongTapInfo > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsIWidget_LongTapInfo_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsISMILAttr_DefaultDelete_open1_nsISMILAttr_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsISMILAttr > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsISMILAttr > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsISMILAttr > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsISMILAttr > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsISMILAttr_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_11 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsINode_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsINode > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsINode > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsINode > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsINode > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsINode_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsINode > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsINode > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsINode > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsINode > ) ) ) ; } # [ test ] fn __bindgen_test_layout_BaseTimeDuration_open0_StickyTimeDurationValueCalculator_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: BaseTimeDuration > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: BaseTimeDuration ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: BaseTimeDuration > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: BaseTimeDuration ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RawServoDeclarationBlock_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: RawServoDeclarationBlock > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoDeclarationBlock > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: RawServoDeclarationBlock > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoDeclarationBlock > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_PropertyValuePair_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: PropertyValuePair > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: PropertyValuePair > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: PropertyValuePair > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: PropertyValuePair > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_ServoAttrSnapshot_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: ServoAttrSnapshot > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: ServoAttrSnapshot > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: ServoAttrSnapshot > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: ServoAttrSnapshot > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_Element_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: mozilla :: dom :: Element > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: mozilla :: dom :: Element > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: mozilla :: dom :: Element > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: mozilla :: dom :: Element > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_ptr_nsIContent_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < * mut root :: nsIContent > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: nsIContent > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < * mut root :: nsIContent > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < * mut root :: nsIContent > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_Element_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: dom :: Element > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: Element > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: dom :: Element > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: dom :: Element > ) ) ) ; } # [ test ] fn __bindgen_test_layout_OwningNonNull_open0_EffectCompositor_AnimationStyleRuleProcessor_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: OwningNonNull < root :: mozilla :: EffectCompositor_AnimationStyleRuleProcessor > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: OwningNonNull < root :: mozilla :: EffectCompositor_AnimationStyleRuleProcessor > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: OwningNonNull < root :: mozilla :: EffectCompositor_AnimationStyleRuleProcessor > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: OwningNonNull < root :: mozilla :: EffectCompositor_AnimationStyleRuleProcessor > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: nsStyleGridTemplate > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RawServoMediaList_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: RawServoMediaList > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoMediaList > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: RawServoMediaList > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoMediaList > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_RawServoStyleSet_DefaultDelete_open1_RawServoStyleSet_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: RawServoStyleSet > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: RawServoStyleSet > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: RawServoStyleSet > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: RawServoStyleSet > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_RawServoStyleSet_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_ServoStyleSheet_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: ServoStyleSheet > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: ServoStyleSheet > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: ServoStyleSheet > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: ServoStyleSheet > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ServoStyleContext_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: ServoStyleContext > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoStyleContext > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: ServoStyleContext > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoStyleContext > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_PostTraversalTask_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: mozilla :: PostTraversalTask > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: PostTraversalTask > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: mozilla :: PostTraversalTask > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: mozilla :: PostTraversalTask > ) ) ) ; } # [ test ] fn __bindgen_test_layout_UniquePtr_open0_ServoStyleRuleMap_DefaultDelete_open1_ServoStyleRuleMap_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: ServoStyleRuleMap > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: ServoStyleRuleMap > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: UniquePtr < root :: mozilla :: ServoStyleRuleMap > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: UniquePtr < root :: mozilla :: ServoStyleRuleMap > ) ) ) ; } # [ test ] fn __bindgen_test_layout_DefaultDelete_open0_ServoStyleRuleMap_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: mozilla :: DefaultDelete > ( ) , 1usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: mozilla :: DefaultDelete ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsBindingManager_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsBindingManager > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsBindingManager > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsBindingManager > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsBindingManager > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsXBLBinding_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsXBLBinding > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsXBLBinding > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsXBLBinding > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsXBLBinding > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsXBLBinding_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsXBLBinding > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsXBLBinding > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsXBLBinding > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsXBLBinding > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_nsTHashtable_open1_nsRefPtrHashKey_open2_nsIContent_close2_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < u64 > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < u64 > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( u64 ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsIContent_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsIContent > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsIContent > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsIContent > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsIContent > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_nsBindingManager_WrapperHashtable_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsAutoPtr < root :: nsBindingManager_WrapperHashtable > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: nsBindingManager_WrapperHashtable > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsAutoPtr < root :: nsBindingManager_WrapperHashtable > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsAutoPtr < root :: nsBindingManager_WrapperHashtable > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_nsRefPtrHashtable_open1_nsURIHashKey_nsXBLDocumentInfo_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < u64 > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < u64 > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( u64 ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsAutoPtr_open0_nsInterfaceHashtable_open1_nsURIHashKey_nsIStreamListener_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < u64 > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < u64 > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( u64 ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsRunnableMethod_open1_nsBindingManager_void_close1_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < u64 > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < u64 > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( u64 ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_12 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ServoStyleContext_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: ServoStyleContext > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoStyleContext > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: ServoStyleContext > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoStyleContext > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_ServoStyleContext_close0_instantiation_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: mozilla :: ServoStyleContext > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoStyleContext > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: mozilla :: ServoStyleContext > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: mozilla :: ServoStyleContext > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_RawServoDeclarationBlock_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: RawServoDeclarationBlock > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoDeclarationBlock > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: RawServoDeclarationBlock > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: RawServoDeclarationBlock > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_13 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsCSSFontFaceRule_close0_instantiation ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsCSSFontFaceRule > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSFontFaceRule > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsCSSFontFaceRule > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsCSSFontFaceRule > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsRefPtrHashKey < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsRefPtrHashKey < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: nsAtom > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: nsAtom > > ) ) ) ; } # [ test ] fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_14 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: RefPtr < root :: nsAtom > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: RefPtr < root :: nsAtom > ) ) ) ; } # [ test ] fn __bindgen_test_layout_nsCOMPtr_open0_nsIRunnable_close0_instantiation_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < root :: nsCOMPtr > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsCOMPtr ) ) ) ; } }
+ /// expectation, but it makes sense in this case)
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsStyleContext {
+ pub mPseudoTag: root::RefPtr<root::nsAtom>,
+ pub mBits: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsStyleContext() {
+ assert_eq!(
+ ::std::mem::size_of::<nsStyleContext>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsStyleContext))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsStyleContext>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsStyleContext))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContext>())).mPseudoTag as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContext),
+ "::",
+ stringify!(mPseudoTag)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsStyleContext>())).mBits as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsStyleContext),
+ "::",
+ stringify!(mBits)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSCounterStyleRule {
+ pub _base: root::mozilla::css::Rule,
+ pub mName: root::RefPtr<root::nsAtom>,
+ pub mValues: [root::nsCSSValue; 10usize],
+ pub mGeneration: u32,
+ }
+ pub type nsCSSCounterStyleRule_Getter = [u64; 2usize];
+ extern "C" {
+ #[link_name = "\u{1}_ZN21nsCSSCounterStyleRule8kGettersE"]
+ pub static mut nsCSSCounterStyleRule_kGetters: [root::nsCSSCounterStyleRule_Getter; 0usize];
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSCounterStyleRule() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSCounterStyleRule>(),
+ 240usize,
+ concat!("Size of: ", stringify!(nsCSSCounterStyleRule))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSCounterStyleRule>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSCounterStyleRule))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSCounterStyleRule>())).mName as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSCounterStyleRule),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSCounterStyleRule>())).mValues as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSCounterStyleRule),
+ "::",
+ stringify!(mValues)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSCounterStyleRule>())).mGeneration as *const _ as usize
+ },
+ 232usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSCounterStyleRule),
+ "::",
+ stringify!(mGeneration)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsICSSDeclaration {
+ pub _base: root::nsISupports,
+ pub _base_1: root::nsWrapperCache,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsICSSDeclaration_COMTypeInfo {
+ pub _address: u8,
+ }
+ #[test]
+ fn bindgen_test_layout_nsICSSDeclaration() {
+ assert_eq!(
+ ::std::mem::size_of::<nsICSSDeclaration>(),
+ 32usize,
+ concat!("Size of: ", stringify!(nsICSSDeclaration))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsICSSDeclaration>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsICSSDeclaration))
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSFontFaceStyleDecl {
+ pub _base: root::nsICSSDeclaration,
+ pub mDescriptors: root::mozilla::CSSFontFaceDescriptors,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSFontFaceStyleDecl() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSFontFaceStyleDecl>(),
+ 176usize,
+ concat!("Size of: ", stringify!(nsCSSFontFaceStyleDecl))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSFontFaceStyleDecl>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSFontFaceStyleDecl))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsCSSFontFaceStyleDecl>())).mDescriptors as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSFontFaceStyleDecl),
+ "::",
+ stringify!(mDescriptors)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsCSSFontFaceRule {
+ pub _base: root::mozilla::css::Rule,
+ pub mDecl: root::nsCSSFontFaceStyleDecl,
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsCSSFontFaceRule_cycleCollection {
+ pub _base: root::mozilla::css::Rule_cycleCollection,
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSFontFaceRule_cycleCollection() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSFontFaceRule_cycleCollection>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsCSSFontFaceRule_cycleCollection))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSFontFaceRule_cycleCollection>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(nsCSSFontFaceRule_cycleCollection)
+ )
+ );
+ }
+ impl Clone for nsCSSFontFaceRule_cycleCollection {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN17nsCSSFontFaceRule21_cycleCollectorGlobalE"]
+ pub static mut nsCSSFontFaceRule__cycleCollectorGlobal:
+ root::nsCSSFontFaceRule_cycleCollection;
+ }
+ #[test]
+ fn bindgen_test_layout_nsCSSFontFaceRule() {
+ assert_eq!(
+ ::std::mem::size_of::<nsCSSFontFaceRule>(),
+ 240usize,
+ concat!("Size of: ", stringify!(nsCSSFontFaceRule))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsCSSFontFaceRule>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsCSSFontFaceRule))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsCSSFontFaceRule>())).mDecl as *const _ as usize },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsCSSFontFaceRule),
+ "::",
+ stringify!(mDecl)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug)]
+ pub struct nsFontFaceRuleContainer {
+ pub mRule: root::RefPtr<root::nsCSSFontFaceRule>,
+ pub mSheetType: root::mozilla::SheetType,
+ }
+ #[test]
+ fn bindgen_test_layout_nsFontFaceRuleContainer() {
+ assert_eq!(
+ ::std::mem::size_of::<nsFontFaceRuleContainer>(),
+ 16usize,
+ concat!("Size of: ", stringify!(nsFontFaceRuleContainer))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsFontFaceRuleContainer>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsFontFaceRuleContainer))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFontFaceRuleContainer>())).mRule as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFontFaceRuleContainer),
+ "::",
+ stringify!(mRule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsFontFaceRuleContainer>())).mSheetType as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsFontFaceRuleContainer),
+ "::",
+ stringify!(mSheetType)
+ )
+ );
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsHtml5StringParser {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIConsoleService {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIFragmentContentSink {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIStringBundle {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsIBidiKeyboard {
+ _unused: [u8; 0],
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct EventNameMapping {
+ pub mAtom: *mut root::nsAtom,
+ pub mType: i32,
+ pub mMessage: root::mozilla::EventMessage,
+ pub mEventClassID: root::mozilla::EventClassID,
+ pub mMaybeSpecialSVGorSMILEvent: bool,
+ }
+ #[test]
+ fn bindgen_test_layout_EventNameMapping() {
+ assert_eq!(
+ ::std::mem::size_of::<EventNameMapping>(),
+ 16usize,
+ concat!("Size of: ", stringify!(EventNameMapping))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<EventNameMapping>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(EventNameMapping))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<EventNameMapping>())).mAtom as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EventNameMapping),
+ "::",
+ stringify!(mAtom)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<EventNameMapping>())).mType as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EventNameMapping),
+ "::",
+ stringify!(mType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<EventNameMapping>())).mMessage as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EventNameMapping),
+ "::",
+ stringify!(mMessage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EventNameMapping>())).mEventClassID as *const _ as usize
+ },
+ 14usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EventNameMapping),
+ "::",
+ stringify!(mEventClassID)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<EventNameMapping>())).mMaybeSpecialSVGorSMILEvent as *const _
+ as usize
+ },
+ 15usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(EventNameMapping),
+ "::",
+ stringify!(mMaybeSpecialSVGorSMILEvent)
+ )
+ );
+ }
+ impl Clone for EventNameMapping {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils10sXPConnectE"]
+ pub static mut nsContentUtils_sXPConnect: *mut root::nsIXPConnect;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils16sSecurityManagerE"]
+ pub static mut nsContentUtils_sSecurityManager: *mut root::nsIScriptSecurityManager;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils16sSystemPrincipalE"]
+ pub static mut nsContentUtils_sSystemPrincipal: *mut root::nsIPrincipal;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sNullSubjectPrincipalE"]
+ pub static mut nsContentUtils_sNullSubjectPrincipal: *mut root::nsIPrincipal;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils17sNameSpaceManagerE"]
+ pub static mut nsContentUtils_sNameSpaceManager: *mut root::nsNameSpaceManager;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils10sIOServiceE"]
+ pub static mut nsContentUtils_sIOService: *mut root::nsIIOService;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils14sUUIDGeneratorE"]
+ pub static mut nsContentUtils_sUUIDGenerator: *mut root::nsIUUIDGenerator;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils15sConsoleServiceE"]
+ pub static mut nsContentUtils_sConsoleService: *mut root::nsIConsoleService;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils15sAtomEventTableE"]
+ pub static mut nsContentUtils_sAtomEventTable: *mut u8;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils17sStringEventTableE"]
+ pub static mut nsContentUtils_sStringEventTable: *mut u8;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sUserDefinedEventsE"]
+ pub static mut nsContentUtils_sUserDefinedEvents:
+ *mut root::nsTArray<root::RefPtr<root::nsAtom>>;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils20sStringBundleServiceE"]
+ pub static mut nsContentUtils_sStringBundleService: *mut root::nsIStringBundleService;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils14sStringBundlesE"]
+ pub static mut nsContentUtils_sStringBundles: [*mut root::nsIStringBundle; 14usize];
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sContentPolicyServiceE"]
+ pub static mut nsContentUtils_sContentPolicyService: *mut root::nsIContentPolicy;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils24sTriedToGetContentPolicyE"]
+ pub static mut nsContentUtils_sTriedToGetContentPolicy: bool;
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_LineBreaker_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::intl::LineBreaker>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::intl::LineBreaker>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::intl::LineBreaker>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::intl::LineBreaker>)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils12sLineBreakerE"]
+ pub static mut nsContentUtils_sLineBreaker: root::RefPtr<root::mozilla::intl::LineBreaker>;
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_WordBreaker_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::intl::WordBreaker>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::intl::WordBreaker>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::intl::WordBreaker>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::intl::WordBreaker>)
+ )
+ );
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils12sWordBreakerE"]
+ pub static mut nsContentUtils_sWordBreaker: root::RefPtr<root::mozilla::intl::WordBreaker>;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils13sBidiKeyboardE"]
+ pub static mut nsContentUtils_sBidiKeyboard: *mut root::nsIBidiKeyboard;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils12sInitializedE"]
+ pub static mut nsContentUtils_sInitialized: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils19sScriptBlockerCountE"]
+ pub static mut nsContentUtils_sScriptBlockerCount: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils28sDOMNodeRemovedSuppressCountE"]
+ pub static mut nsContentUtils_sDOMNodeRemovedSuppressCount: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sBlockedScriptRunnersE"]
+ pub static mut nsContentUtils_sBlockedScriptRunners: *mut u8;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils27sRunnersCountAtFirstBlockerE"]
+ pub static mut nsContentUtils_sRunnersCountAtFirstBlocker: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils40sScriptBlockerCountWhereRunnersPreventedE"]
+ pub static mut nsContentUtils_sScriptBlockerCountWhereRunnersPrevented: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sSameOriginCheckerE"]
+ pub static mut nsContentUtils_sSameOriginChecker: *mut root::nsIInterfaceRequestor;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils24sIsHandlingKeyBoardEventE"]
+ pub static mut nsContentUtils_sIsHandlingKeyBoardEvent: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sAllowXULXBL_for_fileE"]
+ pub static mut nsContentUtils_sAllowXULXBL_for_file: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils23sIsFullScreenApiEnabledE"]
+ pub static mut nsContentUtils_sIsFullScreenApiEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils33sIsUnprefixedFullscreenApiEnabledE"]
+ pub static mut nsContentUtils_sIsUnprefixedFullscreenApiEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils22sTrustedFullScreenOnlyE"]
+ pub static mut nsContentUtils_sTrustedFullScreenOnly: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils17sIsCutCopyAllowedE"]
+ pub static mut nsContentUtils_sIsCutCopyAllowed: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sHandlingInputTimeoutE"]
+ pub static mut nsContentUtils_sHandlingInputTimeout: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils27sIsPerformanceTimingEnabledE"]
+ pub static mut nsContentUtils_sIsPerformanceTimingEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils24sIsResourceTimingEnabledE"]
+ pub static mut nsContentUtils_sIsResourceTimingEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils37sIsPerformanceNavigationTimingEnabledE"]
+ pub static mut nsContentUtils_sIsPerformanceNavigationTimingEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils25sIsFrameTimingPrefEnabledE"]
+ pub static mut nsContentUtils_sIsFrameTimingPrefEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils34sIsFormAutofillAutocompleteEnabledE"]
+ pub static mut nsContentUtils_sIsFormAutofillAutocompleteEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils19sIsShadowDOMEnabledE"]
+ pub static mut nsContentUtils_sIsShadowDOMEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils24sIsCustomElementsEnabledE"]
+ pub static mut nsContentUtils_sIsCustomElementsEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils35sSendPerformanceTimingNotificationsE"]
+ pub static mut nsContentUtils_sSendPerformanceTimingNotifications: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sUseActivityCursorE"]
+ pub static mut nsContentUtils_sUseActivityCursor: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils25sAnimationsAPICoreEnabledE"]
+ pub static mut nsContentUtils_sAnimationsAPICoreEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils35sAnimationsAPIElementAnimateEnabledE"]
+ pub static mut nsContentUtils_sAnimationsAPIElementAnimateEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils34sAnimationsAPIPendingMemberEnabledE"]
+ pub static mut nsContentUtils_sAnimationsAPIPendingMemberEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils19sGetBoxQuadsEnabledE"]
+ pub static mut nsContentUtils_sGetBoxQuadsEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils30sSkipCursorMoveForSameValueSetE"]
+ pub static mut nsContentUtils_sSkipCursorMoveForSameValueSet: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils27sRequestIdleCallbackEnabledE"]
+ pub static mut nsContentUtils_sRequestIdleCallbackEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sLowerNetworkPriorityE"]
+ pub static mut nsContentUtils_sLowerNetworkPriority: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils15sTailingEnabledE"]
+ pub static mut nsContentUtils_sTailingEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils28sShowInputPlaceholderOnFocusE"]
+ pub static mut nsContentUtils_sShowInputPlaceholderOnFocus: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils17sAutoFocusEnabledE"]
+ pub static mut nsContentUtils_sAutoFocusEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils23sBypassCSSOMOriginCheckE"]
+ pub static mut nsContentUtils_sBypassCSSOMOriginCheck: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sIsScopedStyleEnabledE"]
+ pub static mut nsContentUtils_sIsScopedStyleEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils23sIsBytecodeCacheEnabledE"]
+ pub static mut nsContentUtils_sIsBytecodeCacheEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils22sBytecodeCacheStrategyE"]
+ pub static mut nsContentUtils_sBytecodeCacheStrategy: i32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils22sCookiesLifetimePolicyE"]
+ pub static mut nsContentUtils_sCookiesLifetimePolicy: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils16sCookiesBehaviorE"]
+ pub static mut nsContentUtils_sCookiesBehavior: u32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils20sShortcutsCustomizedE"]
+ pub static mut nsContentUtils_sShortcutsCustomized: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils21sPrivacyMaxInnerWidthE"]
+ pub static mut nsContentUtils_sPrivacyMaxInnerWidth: i32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils22sPrivacyMaxInnerHeightE"]
+ pub static mut nsContentUtils_sPrivacyMaxInnerHeight: i32;
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy, Clone)]
+ pub struct nsContentUtils_UserInteractionObserver {
+ _unused: [u8; 0],
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils24sUserInteractionObserverE"]
+ pub static mut nsContentUtils_sUserInteractionObserver:
+ *mut root::nsContentUtils_UserInteractionObserver;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils19sHTMLFragmentParserE"]
+ pub static mut nsContentUtils_sHTMLFragmentParser: *mut root::nsHtml5StringParser;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sXMLFragmentParserE"]
+ pub static mut nsContentUtils_sXMLFragmentParser: *mut root::nsIParser;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils16sXMLFragmentSinkE"]
+ pub static mut nsContentUtils_sXMLFragmentSink: *mut root::nsIFragmentContentSink;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils22sFragmentParsingActiveE"]
+ pub static mut nsContentUtils_sFragmentParsingActive: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils10sShiftTextE"]
+ pub static mut nsContentUtils_sShiftText: *mut ::nsstring::nsStringRepr;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils12sControlTextE"]
+ pub static mut nsContentUtils_sControlText: *mut ::nsstring::nsStringRepr;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils9sMetaTextE"]
+ pub static mut nsContentUtils_sMetaText: *mut ::nsstring::nsStringRepr;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils7sOSTextE"]
+ pub static mut nsContentUtils_sOSText: *mut ::nsstring::nsStringRepr;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils8sAltTextE"]
+ pub static mut nsContentUtils_sAltText: *mut ::nsstring::nsStringRepr;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sModifierSeparatorE"]
+ pub static mut nsContentUtils_sModifierSeparator: *mut ::nsstring::nsStringRepr;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils19sJSBytecodeMimeTypeE"]
+ pub static mut nsContentUtils_sJSBytecodeMimeType: *mut root::nsCString;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sDoNotTrackEnabledE"]
+ pub static mut nsContentUtils_sDoNotTrackEnabled: bool;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils11sDOMDumpLogE"]
+ pub static mut nsContentUtils_sDOMDumpLog: root::mozilla::LazyLogModule;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils18sPopupControlStateE"]
+ pub static mut nsContentUtils_sPopupControlState: root::PopupControlState;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils24sInnerOrOuterWindowCountE"]
+ pub static mut nsContentUtils_sInnerOrOuterWindowCount: i32;
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN14nsContentUtils32sInnerOrOuterWindowSerialCounterE"]
+ pub static mut nsContentUtils_sInnerOrOuterWindowSerialCounter: u32;
+ }
+ pub type nsMediaFeatureValueGetter = ::std::option::Option<
+ unsafe extern "C" fn(
+ aDocument: *mut root::nsIDocument,
+ aFeature: *const root::nsMediaFeature,
+ aResult: *mut root::nsCSSValue,
+ ),
+ >;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsMediaFeature {
+ pub mName: *mut *mut root::nsStaticAtom,
+ pub mRangeType: root::nsMediaFeature_RangeType,
+ pub mValueType: root::nsMediaFeature_ValueType,
+ pub mReqFlags: u8,
+ pub mData: root::nsMediaFeature__bindgen_ty_1,
+ pub mGetter: root::nsMediaFeatureValueGetter,
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsMediaFeature_RangeType {
+ eMinMaxAllowed = 0,
+ eMinMaxNotAllowed = 1,
+ }
+ #[repr(u32)]
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub enum nsMediaFeature_ValueType {
+ eLength = 0,
+ eInteger = 1,
+ eFloat = 2,
+ eBoolInteger = 3,
+ eIntRatio = 4,
+ eResolution = 5,
+ eEnumerated = 6,
+ eIdent = 7,
+ }
+ pub const nsMediaFeature_RequirementFlags_eNoRequirements:
+ root::nsMediaFeature_RequirementFlags = 0;
+ pub const nsMediaFeature_RequirementFlags_eHasWebkitPrefix:
+ root::nsMediaFeature_RequirementFlags = 1;
+ pub const nsMediaFeature_RequirementFlags_eWebkitDevicePixelRatioPrefEnabled:
+ root::nsMediaFeature_RequirementFlags = 2;
+ pub const nsMediaFeature_RequirementFlags_eUserAgentAndChromeOnly:
+ root::nsMediaFeature_RequirementFlags = 4;
+ pub type nsMediaFeature_RequirementFlags = u8;
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsMediaFeature__bindgen_ty_1 {
+ pub mInitializer_: root::__BindgenUnionField<*const ::std::os::raw::c_void>,
+ pub mKeywordTable: root::__BindgenUnionField<*const root::nsCSSProps_KTableEntry>,
+ pub mMetric: root::__BindgenUnionField<*const *const root::nsAtom>,
+ pub bindgen_union_field: u64,
+ }
+ #[test]
+ fn bindgen_test_layout_nsMediaFeature__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<nsMediaFeature__bindgen_ty_1>(),
+ 8usize,
+ concat!("Size of: ", stringify!(nsMediaFeature__bindgen_ty_1))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsMediaFeature__bindgen_ty_1>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsMediaFeature__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsMediaFeature__bindgen_ty_1>())).mInitializer_ as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature__bindgen_ty_1),
+ "::",
+ stringify!(mInitializer_)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsMediaFeature__bindgen_ty_1>())).mKeywordTable as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature__bindgen_ty_1),
+ "::",
+ stringify!(mKeywordTable)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<nsMediaFeature__bindgen_ty_1>())).mMetric as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature__bindgen_ty_1),
+ "::",
+ stringify!(mMetric)
+ )
+ );
+ }
+ impl Clone for nsMediaFeature__bindgen_ty_1 {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn bindgen_test_layout_nsMediaFeature() {
+ assert_eq!(
+ ::std::mem::size_of::<nsMediaFeature>(),
+ 40usize,
+ concat!("Size of: ", stringify!(nsMediaFeature))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsMediaFeature>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(nsMediaFeature))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMediaFeature>())).mName as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature),
+ "::",
+ stringify!(mName)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMediaFeature>())).mRangeType as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature),
+ "::",
+ stringify!(mRangeType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMediaFeature>())).mValueType as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature),
+ "::",
+ stringify!(mValueType)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMediaFeature>())).mReqFlags as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature),
+ "::",
+ stringify!(mReqFlags)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMediaFeature>())).mData as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature),
+ "::",
+ stringify!(mData)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<nsMediaFeature>())).mGetter as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(nsMediaFeature),
+ "::",
+ stringify!(mGetter)
+ )
+ );
+ }
+ impl Clone for nsMediaFeature {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[repr(C)]
+ #[derive(Debug, Copy)]
+ pub struct nsMediaFeatures {
+ pub _address: u8,
+ }
+ extern "C" {
+ #[link_name = "\u{1}_ZN15nsMediaFeatures8featuresE"]
+ pub static mut nsMediaFeatures_features: [root::nsMediaFeature; 0usize];
+ }
+ #[test]
+ fn bindgen_test_layout_nsMediaFeatures() {
+ assert_eq!(
+ ::std::mem::size_of::<nsMediaFeatures>(),
+ 1usize,
+ concat!("Size of: ", stringify!(nsMediaFeatures))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<nsMediaFeatures>(),
+ 1usize,
+ concat!("Alignment of ", stringify!(nsMediaFeatures))
+ );
+ }
+ impl Clone for nsMediaFeatures {
+ fn clone(&self) -> Self {
+ *self
+ }
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTSubstring_open0_char16_t_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTSubstring<u16>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTSubstring<u16>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTSubstring<u16>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTSubstring<u16>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<::nsstring::nsStringRepr>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(::nsstring::nsStringRepr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<::nsstring::nsStringRepr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(::nsstring::nsStringRepr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTSubstring_open0_char_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTSubstring<::std::os::raw::c_char>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTSubstring<::std::os::raw::c_char>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTSubstring<::std::os::raw::c_char>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTSubstring<::std::os::raw::c_char>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTString_open0_char_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTString<::std::os::raw::c_char>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTString<::std::os::raw::c_char>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTString<::std::os::raw::c_char>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTString<::std::os::raw::c_char>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_CSSVariableValues_Variable_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::CSSVariableValues_Variable>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::CSSVariableValues_Variable>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::CSSVariableValues_Variable>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::CSSVariableValues_Variable>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::FontFamilyName>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::FontFamilyName>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_NotNull_open0_RefPtr_open1_SharedFontList_close1_close0_instantiation()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<
+ root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>,
+ >(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<
+ root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>,
+ >(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_SharedFontList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::SharedFontList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::SharedFontList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::SharedFontList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::SharedFontList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_uint32_t_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<u32>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<u32>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<u32>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<u32>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_gfxFontFeatureValueSet_ValueList_close0_instantiation()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::gfxFontFeatureValueSet_ValueList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::gfxFontFeatureValueSet_ValueList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::gfxFontFeatureValueSet_ValueList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::gfxFontFeatureValueSet_ValueList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_uint32_t_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<u32>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<u32>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<u32>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<u32>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_gfxAlternateValue_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::gfxAlternateValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::gfxAlternateValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::gfxAlternateValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::gfxAlternateValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_gfxFontFeatureValueSet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::gfxFontFeatureValueSet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::gfxFontFeatureValueSet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::gfxFontFeatureValueSet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::gfxFontFeatureValueSet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_gfxFontFeature_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::gfxFontFeature>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::gfxFontFeature>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::gfxFontFeature>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::gfxFontFeature>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_gfxFontVariation_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::gfxFontVariation>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::gfxFontVariation>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::gfxFontVariation>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::gfxFontVariation>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_BaseTimeDuration_open0_TimeDurationValueCalculator_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::BaseTimeDuration>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::BaseTimeDuration)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::BaseTimeDuration>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::BaseTimeDuration)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_DeletePolicy_open1_JSErrorNotes_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_iterator_open0_input_iterator_tag_UniquePtr_open1_JSErrorNotes_Note_DeletePolicy_open2_JSErrorNotes_Note_close2_close1_long_ptr_UniquePtr_ref_UniquePtr_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::std::iterator>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::std::iterator)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::std::iterator>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::std::iterator)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_2(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_3(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_4(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_Note_DeletePolicy_open1_JSErrorNotes_Note_close1_close0_instantiation_5(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes_Note>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_Note_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_JSErrorNotes_DeletePolicy_open1_JSErrorNotes_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::JSErrorNotes>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::JSErrorNotes>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DeletePolicy_open0_JSErrorNotes_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::JS::DeletePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::JS::DeletePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_MediaList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::MediaList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::MediaList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::MediaList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::MediaList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_StyleSetHandle_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::StyleSetHandle>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::StyleSetHandle>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::StyleSetHandle>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::StyleSetHandle>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_ProfilerBacktrace_ProfilerBacktraceDestructor_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::ProfilerBacktrace>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::ProfilerBacktrace>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsNodeInfoManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsNodeInfoManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsNodeInfoManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsNodeInfoManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsNodeInfoManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsBindingManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsBindingManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsBindingManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsBindingManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsBindingManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAttrChildContentList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAttrChildContentList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAttrChildContentList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAttrChildContentList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAttrChildContentList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_LinkedList_open1_nsRange_close1_DefaultDelete_open1_LinkedList_open2_nsRange_close2_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::LinkedList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::LinkedList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::LinkedList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::LinkedList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_LinkedList_open1_nsRange_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_LinkedList_open1_nsRange_close1_DefaultDelete_open1_LinkedList_open2_nsRange_close2_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::LinkedList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::LinkedList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::LinkedList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::LinkedList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_LinkedList_open1_nsRange_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_NodeInfo_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::NodeInfo>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::NodeInfo>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::NodeInfo>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::NodeInfo>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIContent_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ShadowRoot_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::ShadowRoot>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ShadowRoot>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::ShadowRoot>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ShadowRoot>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_HTMLSlotElement_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::HTMLSlotElement>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::HTMLSlotElement>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::HTMLSlotElement>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::HTMLSlotElement>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsIContent_nsExtendedContentSlots_DefaultDelete_open1_nsIContent_nsExtendedContentSlots_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<
+ root::mozilla::UniquePtr<root::nsIContent_nsExtendedContentSlots>,
+ >(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIContent_nsExtendedContentSlots>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<
+ root::mozilla::UniquePtr<root::nsIContent_nsExtendedContentSlots>,
+ >(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIContent_nsExtendedContentSlots>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsIContent_nsExtendedContentSlots_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIWeakReference_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_ptr_void_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<*mut ::std::os::raw::c_void>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<*mut ::std::os::raw::c_void>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<*mut ::std::os::raw::c_void>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<*mut ::std::os::raw::c_void>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsPtrHashKey_open0_void_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsPtrHashKey<::std::os::raw::c_void>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsPtrHashKey<::std::os::raw::c_void>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsPtrHashKey<::std::os::raw::c_void>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsPtrHashKey<::std::os::raw::c_void>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_StaticRefPtr_open0_nsIContent_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsIContent>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::nsIContent>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::StaticRefPtr<root::nsIContent>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::StaticRefPtr<root::nsIContent>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsPresContext_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsPresContext>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsPresContext>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsPresContext>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsPresContext>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsFrameSelection_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsFrameSelection>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsFrameSelection>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsFrameSelection>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsFrameSelection>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsITimer_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsPtrHashKey_open0_WeakFrame_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsPtrHashKey<root::WeakFrame>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsPtrHashKey<root::WeakFrame>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsPtrHashKey<root::WeakFrame>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsPtrHashKey<root::WeakFrame>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_IPCClientInfo_DefaultDelete_open1_IPCClientInfo_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::dom::IPCClientInfo>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::dom::IPCClientInfo>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::dom::IPCClientInfo>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::dom::IPCClientInfo>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_IPCClientInfo_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_IPCServiceWorkerDescriptor_DefaultDelete_open1_IPCServiceWorkerDescriptor_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<
+ root::mozilla::UniquePtr<root::mozilla::dom::IPCServiceWorkerDescriptor>,
+ >(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<
+ root::mozilla::dom::IPCServiceWorkerDescriptor,
+ >)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<
+ root::mozilla::UniquePtr<root::mozilla::dom::IPCServiceWorkerDescriptor>,
+ >(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<
+ root::mozilla::dom::IPCServiceWorkerDescriptor,
+ >)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_IPCServiceWorkerDescriptor_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsCString_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsCString>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsCString>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsCString>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsCString>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_Performance_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Performance>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::Performance>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::Performance>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::Performance>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_TimeoutManager_DefaultDelete_open1_TimeoutManager_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::dom::TimeoutManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::dom::TimeoutManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::dom::TimeoutManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::dom::TimeoutManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_TimeoutManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsPIDOMWindowOuter_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIContent_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_ptr_AudioContext_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<*mut root::mozilla::dom::AudioContext>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<*mut root::mozilla::dom::AudioContext>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<*mut root::mozilla::dom::AudioContext>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<*mut root::mozilla::dom::AudioContext>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_TabGroup_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::TabGroup>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::TabGroup>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::TabGroup>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::TabGroup>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsPIDOMWindowInner_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_EventTarget_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_Element_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocShell_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_TabGroup_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::TabGroup>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::TabGroup>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::TabGroup>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::TabGroup>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsPIDOMWindowOuter_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsBaseContentList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsBaseContentList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsBaseContentList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsBaseContentList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsBaseContentList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_nsTHashtable_open1_nsIdentifierMapEntry_ChangeCallbackEntry_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<u64>(),
+ 8usize,
+ concat!("Size of template specialization: ", stringify!(u64))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<u64>(),
+ 8usize,
+ concat!("Alignment of template specialization: ", stringify!(u64))
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsIdentifierMapEntry_Element_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsIdentifierMapEntry_Element>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsIdentifierMapEntry_Element>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsIdentifierMapEntry_Element>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsIdentifierMapEntry_Element>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_StyleSheet_close1_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheetList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::StyleSheetList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::StyleSheetList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::StyleSheetList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::StyleSheetList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RawServoAnimationValue_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::RawServoAnimationValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoAnimationValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::RawServoAnimationValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoAnimationValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_PropertyValuePair_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::PropertyValuePair>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::PropertyValuePair>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::PropertyValuePair>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::PropertyValuePair>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsStyleAutoArray_open0_StyleAnimation_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>(),
+ 56usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::mozilla::StyleAnimation>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::mozilla::StyleAnimation>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_RawServoSelectorList_DefaultDelete_open1_RawServoSelectorList_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::RawServoSelectorList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::RawServoSelectorList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::RawServoSelectorList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::RawServoSelectorList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsCSSSelectorList_DefaultDelete_open1_nsCSSSelectorList_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSSelectorList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSSelectorList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSSelectorList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSSelectorList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsCSSSelectorList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsCSSSelectorList_DefaultDelete_open1_nsCSSSelectorList_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSSelectorList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSSelectorList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSSelectorList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSSelectorList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsCSSSelectorList_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_RawServoSelectorList_DefaultDelete_open1_RawServoSelectorList_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::RawServoSelectorList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::RawServoSelectorList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::RawServoSelectorList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::RawServoSelectorList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIObserver_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsIDocument_SelectorCache_DefaultDelete_open1_nsIDocument_SelectorCache_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsIDocument_SelectorCache_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsIDocument_SelectorCache_DefaultDelete_open1_nsIDocument_SelectorCache_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIDocument_SelectorCache>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsIDocument_SelectorCache_close0_instantiation_1()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_6() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_7() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_8() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLExtraData_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_NotNull_open0_ptr_const_nsIDocument__Encoding_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::NotNull<*const root::nsIDocument_Encoding>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::NotNull<*const root::nsIDocument_Encoding>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::NotNull<*const root::nsIDocument_Encoding>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::NotNull<*const root::nsIDocument_Encoding>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_Loader_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::Loader>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::Loader>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::Loader>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::Loader>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ImageLoader_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::ImageLoader>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::ImageLoader>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::ImageLoader>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::ImageLoader>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsHTMLStyleSheet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsHTMLStyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsHTMLStyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsHTMLStyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsHTMLStyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsHTMLCSSStyleSheet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsHTMLCSSStyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsHTMLCSSStyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsHTMLCSSStyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsHTMLCSSStyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ImageTracker_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::ImageTracker>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ImageTracker>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::ImageTracker>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ImageTracker>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_nsTHashtable_open1_nsPtrHashKey_open2_nsISupports_close2_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<u64>(),
+ 8usize,
+ concat!("Size of template specialization: ", stringify!(u64))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<u64>(),
+ 8usize,
+ concat!("Alignment of template specialization: ", stringify!(u64))
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_Link_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsSMILAnimationController_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsSMILAnimationController>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsSMILAnimationController>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsSMILAnimationController>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsSMILAnimationController>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsAutoPtr_open1_nsPropertyTable_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsAutoPtr<root::nsPropertyTable>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsAutoPtr<root::nsPropertyTable>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsAutoPtr<root::nsPropertyTable>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsAutoPtr<root::nsPropertyTable>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIHTMLCollection_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_FontFaceSet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::FontFaceSet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::FontFaceSet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::FontFaceSet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::FontFaceSet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIScriptGlobalObject_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIChannel_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIChannel_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMArray_open0_nsINode_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMArray>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMArray)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMArray>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMArray)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsWeakPtr_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsWeakPtr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsWeakPtr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsWeakPtr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsWeakPtr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocumentEncoder_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsIDocument_FrameRequest_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsIDocument_FrameRequest>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsIDocument_FrameRequest>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsIDocument_FrameRequest>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsIDocument_FrameRequest>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIStructuredCloneContainer_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIVariant_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_XPathEvaluator_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::XPathEvaluator>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::XPathEvaluator>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::XPathEvaluator>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::XPathEvaluator>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_AnonymousContent_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<
+ root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>,
+ >(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<
+ root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>,
+ >(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_LinkedList_open0_MediaQueryList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::LinkedList>(),
+ 24usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::LinkedList)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::LinkedList>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::LinkedList)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_DocGroup_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DocGroup>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::DocGroup>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::DocGroup>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::DocGroup>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsCOMPtr_open1_nsIRunnable_close1_close0_instantiation()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsCOMPtr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsCOMPtr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsCOMPtr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsCOMPtr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIRunnable_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsCOMPtr_open1_nsIPrincipal_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsCOMPtr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsCOMPtr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsCOMPtr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsCOMPtr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_uint64_t_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<u64>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<u64>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<u64>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<u64>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsINode_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_LangGroupFontPrefs_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsAutoPtr<root::mozilla::LangGroupFontPrefs>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsAutoPtr<root::mozilla::LangGroupFontPrefs>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsAutoPtr<root::mozilla::LangGroupFontPrefs>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsAutoPtr<root::mozilla::LangGroupFontPrefs>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIDocument_close0_instantiation_6() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsDeviceContext_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsDeviceContext>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsDeviceContext>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsDeviceContext>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsDeviceContext>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_EventStateManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::EventStateManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::EventStateManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::EventStateManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::EventStateManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsRefreshDriver_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsRefreshDriver>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsRefreshDriver>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsRefreshDriver>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsRefreshDriver>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_EffectCompositor_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::EffectCompositor>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::EffectCompositor>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::EffectCompositor>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::EffectCompositor>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsTransitionManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsTransitionManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsTransitionManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsTransitionManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsTransitionManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAnimationManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAnimationManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAnimationManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAnimationManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAnimationManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RestyleManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::RestyleManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::RestyleManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::RestyleManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::RestyleManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_CounterStyleManager_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::CounterStyleManager>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::CounterStyleManager>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::CounterStyleManager>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::CounterStyleManager>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_gfxFontFeatureValueSet_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::gfxFontFeatureValueSet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::gfxFontFeatureValueSet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::gfxFontFeatureValueSet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::gfxFontFeatureValueSet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsITheme_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrintSettings_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsITimer_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsBidi_DefaultDelete_open1_nsBidi_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsBidi>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsBidi>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsBidi>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsBidi>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsBidi_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsRect_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsRect>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsRect>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsRect>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsRect>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_gfxTextPerfMetrics_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsAutoPtr<root::gfxTextPerfMetrics>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsAutoPtr<root::gfxTextPerfMetrics>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsAutoPtr<root::gfxTextPerfMetrics>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsAutoPtr<root::gfxTextPerfMetrics>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_gfxMissingFontRecorder_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsAutoPtr<root::gfxMissingFontRecorder>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsAutoPtr<root::gfxMissingFontRecorder>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsAutoPtr<root::gfxMissingFontRecorder>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsAutoPtr<root::gfxMissingFontRecorder>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_URLParams_Param_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::dom::URLParams_Param>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::dom::URLParams_Param>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::dom::URLParams_Param>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::dom::URLParams_Param>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_URLParams_DefaultDelete_open1_URLParams_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::dom::URLParams>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::dom::URLParams>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::dom::URLParams>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::dom::URLParams>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_URLParams_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_9() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_10() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_const_char_FreePolicy_open1_const_char_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<::std::os::raw::c_char>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<::std::os::raw::c_char>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<::std::os::raw::c_char>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<::std::os::raw::c_char>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_FreePolicy_open0_const_char_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::detail::FreePolicy>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::detail::FreePolicy)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::detail::FreePolicy>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::detail::FreePolicy)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIEventTarget_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsMainThreadPtrHandle_open0_nsIURI_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsMainThreadPtrHandle<root::nsIURI>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsMainThreadPtrHandle<root::nsIURI>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsMainThreadPtrHandle<root::nsIURI>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsMainThreadPtrHandle<root::nsIURI>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLExtraData_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsPtrHashKey_open0_nsIDocument_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsPtrHashKey<root::nsIDocument>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsPtrHashKey<root::nsIDocument>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsPtrHashKey<root::nsIDocument>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsPtrHashKey<root::nsIDocument>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_GridNamedArea_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::css::GridNamedArea>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::css::GridNamedArea>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::css::GridNamedArea>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::css::GridNamedArea>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsCSSValueList_DefaultDelete_open1_nsCSSValueList_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValueList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValueList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValueList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsCSSValuePairList_DefaultDelete_open1_nsCSSValuePairList_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValuePairList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValuePairList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValuePairList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsCSSValueGradientStop_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsCSSValueGradientStop>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsCSSValueGradientStop>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsCSSValueGradientStop>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsCSSValueGradientStop>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_11() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_12() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_imgRequestProxy_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::imgRequestProxy>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::imgRequestProxy>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::imgRequestProxy>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::imgRequestProxy>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_ProxyBehaviour_DefaultDelete_open1_ProxyBehaviour_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::ProxyBehaviour>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::ProxyBehaviour>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::ProxyBehaviour>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::ProxyBehaviour>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_ProxyBehaviour_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_imgRequestProxy_ImageURL_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::imgRequestProxy_ImageURL>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::imgRequestProxy_ImageURL>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::imgRequestProxy_ImageURL>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::imgRequestProxy_ImageURL>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsILoadGroup_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_TabGroup_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::TabGroup>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::TabGroup>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::TabGroup>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::TabGroup>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIEventTarget_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_ptr_CounterStyle_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<*mut root::mozilla::CounterStyle>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<*mut root::mozilla::CounterStyle>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<*mut root::mozilla::CounterStyle>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<*mut root::mozilla::CounterStyle>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_6() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleGradientStop_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleGradientStop>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleGradientStop>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleGradientStop>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleGradientStop>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_imgRequestProxy_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::imgRequestProxy>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::imgRequestProxy>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::imgRequestProxy>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::imgRequestProxy>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ImageValue_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::ImageValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::ImageValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::ImageValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::ImageValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ImageTracker_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::ImageTracker>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ImageTracker>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::ImageTracker>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ImageTracker>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_DocGroup_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DocGroup>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::DocGroup>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::DocGroup>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::DocGroup>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMArray_open0_imgIContainer_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMArray>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMArray)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMArray>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMArray)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleSides_DefaultDelete_open1_nsStyleSides_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleSides>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleSides>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleSides>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleSides_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleSides_DefaultDelete_open1_nsStyleSides_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleSides>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleSides>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleSides>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleSides_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_CachedBorderImageData_DefaultDelete_open1_CachedBorderImageData_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::CachedBorderImageData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::CachedBorderImageData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::CachedBorderImageData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::CachedBorderImageData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_CachedBorderImageData_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleSides_DefaultDelete_open1_nsStyleSides_close1_close0_instantiation_2(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleSides>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleSides>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleSides>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleSides_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsStyleAutoArray_open0_nsStyleImageLayers_Layer_close0_instantiation()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsStyleAutoArray<root::nsStyleImageLayers_Layer>>(),
+ 104usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::nsStyleImageLayers_Layer>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsStyleAutoArray<root::nsStyleImageLayers_Layer>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::nsStyleImageLayers_Layer>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_pair_open1_nsString_nsString_close1_close0_instantiation(
+) {
+ assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ) ) );
+ assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > > ) ) );
+ }
+ #[test]
+ fn __bindgen_test_layout_pair_open0_nsString_nsString_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>(),
+ 32usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify ! ( root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > )
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify ! ( root :: std :: pair < ::nsstring::nsStringRepr , ::nsstring::nsStringRepr > )
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsStyleImageRequest_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsStyleImageRequest>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsStyleImageRequest>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsStyleImageRequest>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsStyleImageRequest>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsStyleQuoteValues_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsStyleQuoteValues>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsStyleQuoteValues>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsStyleQuoteValues>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsStyleQuoteValues>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsTArray_open1_nsString_close1_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsTArray<::nsstring::nsStringRepr>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsTArray<::nsstring::nsStringRepr>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsTArray<::nsstring::nsStringRepr>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsTArray<::nsstring::nsStringRepr>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsString_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<::nsstring::nsStringRepr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_GridTemplateAreasValue_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::GridTemplateAreasValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::GridTemplateAreasValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::GridTemplateAreasValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::GridTemplateAreasValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsCSSShadowArray_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsCSSShadowArray>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSShadowArray>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsCSSShadowArray>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSShadowArray>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_7() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_8() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleImage_DefaultDelete_open1_nsStyleImage_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleImage>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleImage>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleImage>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleImage>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleImage_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleImage_DefaultDelete_open1_nsStyleImage_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleImage>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleImage>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleImage>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleImage>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleImage_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_StyleBasicShape_DefaultDelete_open1_StyleBasicShape_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_StyleBasicShape_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_StyleBasicShape_DefaultDelete_open1_StyleBasicShape_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_StyleBasicShape_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_StyleBasicShape_DefaultDelete_open1_StyleBasicShape_close1_close0_instantiation_2(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_StyleBasicShape_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleImage_DefaultDelete_open1_nsStyleImage_close1_close0_instantiation_2(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleImage>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleImage>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleImage>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleImage>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleImage_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_9() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_Position_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::Position>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::Position>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::Position>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::Position>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsCSSValueSharedList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsCSSValueSharedList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSValueSharedList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsCSSValueSharedList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSValueSharedList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsStyleAutoArray_open0_StyleTransition_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleTransition>>(),
+ 48usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::mozilla::StyleTransition>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsStyleAutoArray<root::mozilla::StyleTransition>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::mozilla::StyleTransition>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsStyleAutoArray_open0_StyleAnimation_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>(),
+ 56usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::mozilla::StyleAnimation>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsStyleAutoArray<root::mozilla::StyleAnimation>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleContentData_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleContentData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleContentData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleContentData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleContentData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleCounterData_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleCounterData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCounterData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleCounterData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCounterData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleCounterData_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleCounterData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCounterData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleCounterData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCounterData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsCSSValueSharedList_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsCSSValueSharedList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSValueSharedList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsCSSValueSharedList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSValueSharedList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsStyleImageRequest_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsStyleImageRequest>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsStyleImageRequest>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsStyleImageRequest>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsStyleImageRequest>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsCursorImage_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsCursorImage>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsCursorImage>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsCursorImage>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsCursorImage>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLValue_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::css::URLValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::css::URLValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleCoord_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleCoord>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleCoord>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_10() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsStyleFilter_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsStyleFilter>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleFilter>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsStyleFilter>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsStyleFilter>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsCSSShadowArray_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsCSSShadowArray>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSShadowArray>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsCSSShadowArray>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSShadowArray>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_ptr_nsISupports_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<*mut root::nsISupports>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<*mut root::nsISupports>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<*mut root::nsISupports>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<*mut root::nsISupports>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsCSSValueList_DefaultDelete_open1_nsCSSValueList_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValueList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValueList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValueList_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsCSSValuePairList_DefaultDelete_open1_nsCSSValuePairList_close1_close0_instantiation_1(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValuePairList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsCSSValuePairList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsCSSValuePairList_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RawServoAnimationValue_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::RawServoAnimationValue>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoAnimationValue>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::RawServoAnimationValue>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoAnimationValue>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_13() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_nsCString_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::nsCString>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::nsCString>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::nsCString>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::nsCString>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_14() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_15() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIURI_close0_instantiation_16() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RawServoStyleSheetContents_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::RawServoStyleSheetContents>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoStyleSheetContents>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::RawServoStyleSheetContents>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoStyleSheetContents>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_URLExtraData_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::URLExtraData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::URLExtraData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ServoCSSRuleList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::ServoCSSRuleList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::ServoCSSRuleList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::ServoCSSRuleList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::ServoCSSRuleList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIPrincipal_close0_instantiation_6() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_StyleSheet_close1_close0_instantiation_1()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_SheetLoadData_close1_close0_instantiation()
+ {
+ assert_eq ! ( :: std :: mem :: size_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > > ( ) , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > ) ) );
+ assert_eq ! ( :: std :: mem :: align_of :: < root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > > ( ) , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( root :: nsTArray < root :: RefPtr < root :: mozilla :: css :: SheetLoadData > > ) ) );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_StyleSheet_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::StyleSheet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::StyleSheet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_Loader_Sheets_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsAutoPtr<root::mozilla::css::Loader_Sheets>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsAutoPtr<root::mozilla::css::Loader_Sheets>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsAutoPtr<root::mozilla::css::Loader_Sheets>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsAutoPtr<root::mozilla::css::Loader_Sheets>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_DocGroup_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DocGroup>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::DocGroup>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::DocGroup>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::DocGroup>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIConsoleReportCollector_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIContent_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsXBLBinding_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsXBLBinding>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsXBLBinding>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsXBLBinding>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsXBLBinding>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_XBLChildrenElement_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::XBLChildrenElement>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::XBLChildrenElement>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_XBLChildrenElement_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<
+ root::nsTArray<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>,
+ >(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<
+ root::nsTArray<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>,
+ >(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_XBLChildrenElement_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::XBLChildrenElement>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::XBLChildrenElement>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAnonymousContentList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAnonymousContentList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAnonymousContentList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAnonymousContentList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAnonymousContentList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsICSSDeclaration_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_DeclarationBlock_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::DeclarationBlock>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::DeclarationBlock>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::DeclarationBlock>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::DeclarationBlock>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIControllers_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsLabelsNodeList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsLabelsNodeList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsLabelsNodeList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsLabelsNodeList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsLabelsNodeList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ShadowRoot_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::ShadowRoot>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ShadowRoot>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::ShadowRoot>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::ShadowRoot>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsXBLBinding_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsXBLBinding>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsXBLBinding>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsXBLBinding>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsXBLBinding>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_CustomElementData_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::CustomElementData>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::CustomElementData>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::CustomElementData>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::CustomElementData>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsICSSDeclaration_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsDOMAttributeMap_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsDOMAttributeMap>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsDOMAttributeMap>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsDOMAttributeMap>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsDOMAttributeMap>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsContentList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsContentList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsContentList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsContentList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsContentList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsDOMTokenList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsDOMTokenList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsDOMTokenList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsDOMTokenList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsDOMTokenList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsDOMAttributeMap_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsDOMAttributeMap>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsDOMAttributeMap>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsDOMAttributeMap>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsDOMAttributeMap>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsDOMAttributeMap_Element_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsISupports_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIObserver_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsIWidget_LongTapInfo_DefaultDelete_open1_nsIWidget_LongTapInfo_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsIWidget_LongTapInfo>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIWidget_LongTapInfo>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsIWidget_LongTapInfo>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsIWidget_LongTapInfo>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsIWidget_LongTapInfo_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsISMILAttr_DefaultDelete_open1_nsISMILAttr_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsISMILAttr>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsISMILAttr>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsISMILAttr>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsISMILAttr>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsISMILAttr_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_11() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsINode_close1_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsINode>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsINode>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsINode>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsINode>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsINode_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsINode>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsINode>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsINode>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsINode>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_BaseTimeDuration_open0_StickyTimeDurationValueCalculator_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::BaseTimeDuration>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::BaseTimeDuration)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::BaseTimeDuration>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::BaseTimeDuration)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RawServoDeclarationBlock_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::RawServoDeclarationBlock>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoDeclarationBlock>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::RawServoDeclarationBlock>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoDeclarationBlock>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_PropertyValuePair_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::PropertyValuePair>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::PropertyValuePair>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::PropertyValuePair>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::PropertyValuePair>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_ServoAttrSnapshot_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::ServoAttrSnapshot>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::ServoAttrSnapshot>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::ServoAttrSnapshot>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::ServoAttrSnapshot>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_Element_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::Element>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::mozilla::dom::Element>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::mozilla::dom::Element>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::mozilla::dom::Element>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_ptr_nsIContent_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<*mut root::nsIContent>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<*mut root::nsIContent>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<*mut root::nsIContent>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_Element_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::Element>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::dom::Element>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::dom::Element>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_OwningNonNull_open0_EffectCompositor_AnimationStyleRuleProcessor_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<
+ root::mozilla::OwningNonNull<
+ root::mozilla::EffectCompositor_AnimationStyleRuleProcessor,
+ >,
+ >(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::OwningNonNull<
+ root::mozilla::EffectCompositor_AnimationStyleRuleProcessor,
+ >)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<
+ root::mozilla::OwningNonNull<
+ root::mozilla::EffectCompositor_AnimationStyleRuleProcessor,
+ >,
+ >(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::OwningNonNull<
+ root::mozilla::EffectCompositor_AnimationStyleRuleProcessor,
+ >)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation_2(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_nsStyleGridTemplate_DefaultDelete_open1_nsStyleGridTemplate_close1_close0_instantiation_3(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleGridTemplate>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::nsStyleGridTemplate>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_nsStyleGridTemplate_close0_instantiation_3() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RawServoMediaList_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::RawServoMediaList>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoMediaList>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::RawServoMediaList>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoMediaList>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_RawServoStyleSet_DefaultDelete_open1_RawServoStyleSet_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::RawServoStyleSet>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::RawServoStyleSet>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::RawServoStyleSet>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::RawServoStyleSet>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_RawServoStyleSet_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_ServoStyleSheet_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ServoStyleContext_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::ServoStyleContext>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::ServoStyleContext>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::ServoStyleContext>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::ServoStyleContext>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_PostTraversalTask_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::mozilla::PostTraversalTask>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::PostTraversalTask>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::mozilla::PostTraversalTask>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::mozilla::PostTraversalTask>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_UniquePtr_open0_ServoStyleRuleMap_DefaultDelete_open1_ServoStyleRuleMap_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::UniquePtr<root::mozilla::ServoStyleRuleMap>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::ServoStyleRuleMap>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::UniquePtr<root::mozilla::ServoStyleRuleMap>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::UniquePtr<root::mozilla::ServoStyleRuleMap>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_DefaultDelete_open0_ServoStyleRuleMap_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::mozilla::DefaultDelete>(),
+ 1usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::mozilla::DefaultDelete)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsXBLBinding_close1_close0_instantiation()
+ {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsXBLBinding>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsXBLBinding>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsXBLBinding>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsXBLBinding>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsXBLBinding_close0_instantiation_2() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsXBLBinding>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsXBLBinding>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsXBLBinding>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsXBLBinding>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_nsTHashtable_open1_nsRefPtrHashKey_open2_nsIContent_close2_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<u64>(),
+ 8usize,
+ concat!("Size of template specialization: ", stringify!(u64))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<u64>(),
+ 8usize,
+ concat!("Alignment of template specialization: ", stringify!(u64))
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsIContent_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsIContent>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsIContent>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsIContent>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_nsBindingManager_WrapperHashtable_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsAutoPtr<root::nsBindingManager_WrapperHashtable>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsAutoPtr<root::nsBindingManager_WrapperHashtable>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsAutoPtr<root::nsBindingManager_WrapperHashtable>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsAutoPtr<root::nsBindingManager_WrapperHashtable>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_nsRefPtrHashtable_open1_nsURIHashKey_nsXBLDocumentInfo_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<u64>(),
+ 8usize,
+ concat!("Size of template specialization: ", stringify!(u64))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<u64>(),
+ 8usize,
+ concat!("Alignment of template specialization: ", stringify!(u64))
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsAutoPtr_open0_nsInterfaceHashtable_open1_nsURIHashKey_nsIStreamListener_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<u64>(),
+ 8usize,
+ concat!("Size of template specialization: ", stringify!(u64))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<u64>(),
+ 8usize,
+ concat!("Alignment of template specialization: ", stringify!(u64))
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsRunnableMethod_open1_nsBindingManager_void_close1_close0_instantiation(
+) {
+ assert_eq!(
+ ::std::mem::size_of::<u64>(),
+ 8usize,
+ concat!("Size of template specialization: ", stringify!(u64))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<u64>(),
+ 8usize,
+ concat!("Alignment of template specialization: ", stringify!(u64))
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_12() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_ServoStyleContext_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::mozilla::ServoStyleContext>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::ServoStyleContext>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::mozilla::ServoStyleContext>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::mozilla::ServoStyleContext>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_RawServoDeclarationBlock_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::RawServoDeclarationBlock>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoDeclarationBlock>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::RawServoDeclarationBlock>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::RawServoDeclarationBlock>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_13() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsCSSFontFaceRule_close0_instantiation() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsCSSFontFaceRule>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSFontFaceRule>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsCSSFontFaceRule>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsCSSFontFaceRule>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsRefPtrHashKey_open0_nsAtom_close0_instantiation_5() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 16usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsRefPtrHashKey<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsRefPtrHashKey<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsTArray_open0_RefPtr_open1_nsAtom_close1_close0_instantiation_4() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsAtom>>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsTArray<root::RefPtr<root::nsAtom>>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_RefPtr_open0_nsAtom_close0_instantiation_14() {
+ assert_eq!(
+ ::std::mem::size_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::RefPtr<root::nsAtom>>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::RefPtr<root::nsAtom>)
+ )
+ );
+ }
+ #[test]
+ fn __bindgen_test_layout_nsCOMPtr_open0_nsIRunnable_close0_instantiation_1() {
+ assert_eq!(
+ ::std::mem::size_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Size of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<root::nsCOMPtr>(),
+ 8usize,
+ concat!(
+ "Alignment of template specialization: ",
+ stringify!(root::nsCOMPtr)
+ )
+ );
+ }
+}
diff --git a/components/style/gecko/media_queries.rs b/components/style/gecko/media_queries.rs
index bbecaff7905..69ad65ac70c 100644
--- a/components/style/gecko/media_queries.rs
+++ b/components/style/gecko/media_queries.rs
@@ -24,7 +24,7 @@ use std::fmt::{self, Write};
use std::sync::atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering};
use str::starts_with_ignore_ascii_case;
use string_cache::Atom;
-use style_traits::{CSSPixel, DevicePixel};
+use style_traits::{CSSPixel, CssWriter, DevicePixel};
use style_traits::{ToCss, ParseError, StyleParseErrorKind};
use style_traits::viewport::ViewportConstraints;
use stylesheets::Origin;
@@ -236,7 +236,7 @@ pub struct Expression {
}
impl ToCss for Expression {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where W: fmt::Write,
{
dest.write_str("(")?;
@@ -408,7 +408,7 @@ impl MediaExpressionValue {
}
impl MediaExpressionValue {
- fn to_css<W>(&self, dest: &mut W, for_expr: &Expression) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>, for_expr: &Expression) -> fmt::Result
where W: fmt::Write,
{
match *self {
diff --git a/components/style/gecko/pseudo_element.rs b/components/style/gecko/pseudo_element.rs
index 852498ab9ec..ab38bdff798 100644
--- a/components/style/gecko/pseudo_element.rs
+++ b/components/style/gecko/pseudo_element.rs
@@ -10,7 +10,7 @@
use cssparser::{ToCss, serialize_identifier};
use gecko_bindings::structs::{self, CSSPseudoElementType};
-use properties::{ComputedValues, PropertyFlags};
+use properties::{CascadeFlags, ComputedValues, PropertyFlags};
use properties::longhands::display::computed_value::T as Display;
use selector_parser::{NonTSPseudoClass, PseudoElementCascadeType, SelectorImpl};
use std::fmt;
@@ -51,6 +51,15 @@ impl PseudoElement {
PseudoElementCascadeType::Lazy
}
+ /// The CascadeFlags needed to cascade this pseudo-element.
+ ///
+ /// This is only needed to support the broken INHERIT_ALL pseudo mode for
+ /// Servo.
+ #[inline]
+ pub fn cascade_flags(&self) -> CascadeFlags {
+ CascadeFlags::empty()
+ }
+
/// Whether the pseudo-element should inherit from the default computed
/// values instead of from the parent element.
///
@@ -128,7 +137,7 @@ impl PseudoElement {
/// Whether this pseudo-element skips flex/grid container display-based
/// fixup.
#[inline]
- pub fn skip_item_based_display_fixup(&self) -> bool {
+ pub fn skip_item_display_fixup(&self) -> bool {
(self.flags() & structs::CSS_PSEUDO_ELEMENT_IS_FLEX_OR_GRID_ITEM) == 0
}
diff --git a/components/style/gecko/rules.rs b/components/style/gecko/rules.rs
index 64d30b44883..75701476827 100644
--- a/components/style/gecko/rules.rs
+++ b/components/style/gecko/rules.rs
@@ -17,7 +17,9 @@ use gecko_bindings::sugar::refptr::{RefPtr, UniqueRefPtr};
use nsstring::nsString;
use properties::longhands::font_language_override;
use shared_lock::{ToCssWithGuard, SharedRwLockReadGuard};
-use std::{fmt, str};
+use std::fmt::{self, Write};
+use std::str;
+use str::CssStringWriter;
use values::computed::font::FamilyName;
use values::generics::FontSettings;
@@ -200,8 +202,7 @@ impl From<FontFaceRuleData> for FontFaceRule {
}
impl ToCssWithGuard for FontFaceRule {
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
let mut css_text = nsString::new();
unsafe {
bindings::Gecko_CSSFontFaceRule_GetCssText(self.get(), &mut *css_text);
@@ -237,8 +238,7 @@ impl From<counter_style::CounterStyleRuleData> for CounterStyleRule {
}
impl ToCssWithGuard for CounterStyleRule {
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
let mut css_text = nsString::new();
unsafe {
bindings::Gecko_CSSCounterStyle_GetCssText(self.get(), &mut *css_text);
diff --git a/components/style/gecko/selector_parser.rs b/components/style/gecko/selector_parser.rs
index cb57d9b21fb..985bd453b4c 100644
--- a/components/style/gecko/selector_parser.rs
+++ b/components/style/gecko/selector_parser.rs
@@ -16,7 +16,7 @@ use selectors::parser::{self as selector_parser, Selector, Visit, SelectorParseE
use selectors::visitor::SelectorVisitor;
use std::fmt;
use string_cache::{Atom, Namespace, WeakAtom, WeakNamespace};
-use style_traits::{ParseError, StyleParseErrorKind, ToCss as ToCss_};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss as ToCss_};
pub use gecko::pseudo_element::{PseudoElement, EAGER_PSEUDOS, EAGER_PSEUDO_COUNT, PSEUDO_COUNT};
pub use gecko::snapshot::SnapshotMap;
@@ -86,12 +86,12 @@ impl ToCss for NonTSPseudoClass {
}, )*
NonTSPseudoClass::MozLocaleDir(ref dir) => {
dest.write_str(":-moz-locale-dir(")?;
- dir.to_css(dest)?;
+ dir.to_css(&mut CssWriter::new(dest))?;
return dest.write_char(')')
},
NonTSPseudoClass::Dir(ref dir) => {
dest.write_str(":dir(")?;
- dir.to_css(dest)?;
+ dir.to_css(&mut CssWriter::new(dest))?;
return dest.write_char(')')
},
NonTSPseudoClass::MozAny(ref selectors) => {
diff --git a/components/style/gecko/url.rs b/components/style/gecko/url.rs
index 64eda812f45..b18d00a559c 100644
--- a/components/style/gecko/url.rs
+++ b/components/style/gecko/url.rs
@@ -12,9 +12,9 @@ use gecko_bindings::sugar::refptr::RefPtr;
use malloc_size_of::{MallocSizeOf, MallocSizeOfOps};
use parser::ParserContext;
use servo_arc::{Arc, RawOffsetArc};
-use std::fmt;
+use std::fmt::{self, Write};
use std::mem;
-use style_traits::{ToCss, ParseError};
+use style_traits::{CssWriter, ToCss, ParseError};
/// A specified url() value for gecko. Gecko does not eagerly resolve SpecifiedUrls.
#[derive(Clone, Debug, PartialEq)]
@@ -136,7 +136,10 @@ impl SpecifiedUrl {
}
impl ToCss for SpecifiedUrl {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("url(")?;
self.serialization.to_css(dest)?;
dest.write_str(")")
diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs
index 0f8626eaa0e..92aedc3b5d7 100644
--- a/components/style/gecko/wrapper.rs
+++ b/components/style/gecko/wrapper.rs
@@ -1285,15 +1285,11 @@ impl<'le> TElement for GeckoElement<'le> {
}
#[inline]
- fn skip_root_and_item_based_display_fixup(&self) -> bool {
- if !self.is_native_anonymous() {
- return false;
- }
-
- if let Some(p) = self.implemented_pseudo_element() {
- return p.skip_item_based_display_fixup();
- }
-
+ fn skip_item_display_fixup(&self) -> bool {
+ debug_assert!(
+ self.implemented_pseudo_element().is_none(),
+ "Just don't call me if I'm a pseudo, you should know the answer already"
+ );
self.is_root_of_native_anonymous_subtree()
}
@@ -1997,7 +1993,6 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
&self,
pseudo_class: &NonTSPseudoClass,
context: &mut MatchingContext<Self::Impl>,
- visited_handling: VisitedHandlingMode,
flags_setter: &mut F,
) -> bool
where
@@ -2057,10 +2052,10 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
},
NonTSPseudoClass::AnyLink => self.is_link(),
NonTSPseudoClass::Link => {
- self.is_link() && visited_handling.matches_unvisited()
+ self.is_link() && context.visited_handling().matches_unvisited()
}
NonTSPseudoClass::Visited => {
- self.is_link() && visited_handling.matches_visited()
+ self.is_link() && context.visited_handling().matches_visited()
}
NonTSPseudoClass::MozFirstNode => {
flags_setter(self, ElementSelectorFlags::HAS_EDGE_CHILD_SELECTOR);
@@ -2112,19 +2107,18 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
NonTSPseudoClass::MozWindowInactive => {
let state_bit = DocumentState::NS_DOCUMENT_STATE_WINDOW_INACTIVE;
if context.extra_data.document_state.intersects(state_bit) {
- return true;
+ return !context.in_negation();
}
self.document_state().contains(state_bit)
}
NonTSPseudoClass::MozPlaceholder => false,
NonTSPseudoClass::MozAny(ref sels) => {
- context.nesting_level += 1;
- let result = sels.iter().any(|s| {
- matches_complex_selector(s.iter(), self, context, flags_setter)
- });
- context.nesting_level -= 1;
- result
+ context.nest(|context| {
+ sels.iter().any(|s| {
+ matches_complex_selector(s.iter(), self, context, flags_setter)
+ })
+ })
}
NonTSPseudoClass::Lang(ref lang_arg) => {
self.match_element_lang(None, lang_arg)
@@ -2134,7 +2128,7 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
if context.extra_data.document_state.intersects(state_bit) {
// NOTE(emilio): We could still return false for
// Direction::Other(..), but we don't bother.
- return true;
+ return !context.in_negation();
}
let doc_is_rtl = self.document_state().contains(state_bit);
diff --git a/components/style/invalidation/element/element_wrapper.rs b/components/style/invalidation/element/element_wrapper.rs
index 65f3ea89c19..afd5bbcb2cb 100644
--- a/components/style/invalidation/element/element_wrapper.rs
+++ b/components/style/invalidation/element/element_wrapper.rs
@@ -11,7 +11,6 @@ use element_state::ElementState;
use selector_parser::{NonTSPseudoClass, PseudoElement, SelectorImpl, Snapshot, SnapshotMap, AttrValue};
use selectors::{Element, OpaqueElement};
use selectors::attr::{AttrSelectorOperation, CaseSensitivity, NamespaceConstraint};
-use selectors::context::VisitedHandlingMode;
use selectors::matching::{ElementSelectorFlags, MatchingContext};
use std::cell::Cell;
use std::fmt;
@@ -150,7 +149,6 @@ impl<'a, E> Element for ElementWrapper<'a, E>
&self,
pseudo_class: &NonTSPseudoClass,
context: &mut MatchingContext<Self::Impl>,
- visited_handling: VisitedHandlingMode,
_setter: &mut F,
) -> bool
where
@@ -162,12 +160,11 @@ impl<'a, E> Element for ElementWrapper<'a, E>
#[cfg(feature = "gecko")]
NonTSPseudoClass::MozAny(ref selectors) => {
use selectors::matching::matches_complex_selector;
- context.nesting_level += 1;
- let result = selectors.iter().any(|s| {
- matches_complex_selector(s.iter(), self, context, _setter)
+ return context.nest(|context| {
+ selectors.iter().any(|s| {
+ matches_complex_selector(s.iter(), self, context, _setter)
+ })
});
- context.nesting_level -= 1;
- return result
}
// :dir is implemented in terms of state flags, but which state flag
@@ -199,10 +196,10 @@ impl<'a, E> Element for ElementWrapper<'a, E>
// Instead, we use the `visited_handling` to determine if they
// match.
NonTSPseudoClass::Link => {
- return self.is_link() && visited_handling.matches_unvisited()
+ return self.is_link() && context.visited_handling().matches_unvisited()
}
NonTSPseudoClass::Visited => {
- return self.is_link() && visited_handling.matches_visited()
+ return self.is_link() && context.visited_handling().matches_visited()
}
#[cfg(feature = "gecko")]
@@ -237,7 +234,6 @@ impl<'a, E> Element for ElementWrapper<'a, E>
return self.element.match_non_ts_pseudo_class(
pseudo_class,
context,
- visited_handling,
&mut |_, _| {},
)
}
@@ -247,7 +243,6 @@ impl<'a, E> Element for ElementWrapper<'a, E>
self.element.match_non_ts_pseudo_class(
pseudo_class,
context,
- visited_handling,
&mut |_, _| {},
)
}
diff --git a/components/style/lib.rs b/components/style/lib.rs
index d4d3855a481..d789c1d3305 100644
--- a/components/style/lib.rs
+++ b/components/style/lib.rs
@@ -134,8 +134,8 @@ pub mod traversal_flags;
#[allow(non_camel_case_types)]
pub mod values;
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
#[cfg(feature = "gecko")] pub use gecko_string_cache as string_cache;
#[cfg(feature = "gecko")] pub use gecko_string_cache::Atom;
@@ -181,11 +181,13 @@ longhand_properties_idents!(reexport_computed_values);
/// Serializes as CSS a comma-separated list of any `T` that supports being
/// serialized as CSS.
-pub fn serialize_comma_separated_list<W, T>(dest: &mut W,
- list: &[T])
- -> fmt::Result
- where W: fmt::Write,
- T: ToCss,
+pub fn serialize_comma_separated_list<W, T>(
+ dest: &mut CssWriter<W>,
+ list: &[T],
+) -> fmt::Result
+where
+ W: Write,
+ T: ToCss,
{
if list.is_empty() {
return Ok(());
diff --git a/components/style/macros.rs b/components/style/macros.rs
index aa505498d3b..ac795bdb09f 100644
--- a/components/style/macros.rs
+++ b/components/style/macros.rs
@@ -91,8 +91,11 @@ macro_rules! define_numbered_css_keyword_enum {
}
}
- impl ::style_traits::values::ToCss for $name {
- fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result
+ impl ::style_traits::ToCss for $name {
+ fn to_css<W>(
+ &self,
+ dest: &mut ::style_traits::CssWriter<W>,
+ ) -> ::std::fmt::Result
where
W: ::std::fmt::Write,
{
diff --git a/components/style/matching.rs b/components/style/matching.rs
index 37694bc0538..5145e26ec36 100644
--- a/components/style/matching.rs
+++ b/components/style/matching.rs
@@ -460,10 +460,12 @@ trait PrivateMatchMethods: TElement {
// See #12171 and the associated PR for an example where this
// happened while debugging other release panic.
if !running_animation.is_expired() {
- animation::update_style_for_animation(context,
- running_animation,
- style,
- font_metrics);
+ animation::update_style_for_animation::<Self>(
+ context,
+ running_animation,
+ style,
+ font_metrics,
+ );
if let Animation::Transition(_, _, ref frame, _) = *running_animation {
possibly_expired_animations.push(frame.property_animation.clone())
}
diff --git a/components/style/media_queries.rs b/components/style/media_queries.rs
index 42a72ba2d58..8941b21a30a 100644
--- a/components/style/media_queries.rs
+++ b/components/style/media_queries.rs
@@ -14,9 +14,9 @@ use error_reporting::{ContextualParseError, ParseErrorReporter};
use parser::{ParserContext, ParserErrorContext};
use selectors::parser::SelectorParseErrorKind;
use serialize_comma_separated_list;
-use std::fmt;
+use std::fmt::{self, Write};
use str::string_as_ascii_lowercase;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use style_traits::{CssWriter, ToCss, ParseError, StyleParseErrorKind};
use values::CustomIdent;
#[cfg(feature = "servo")]
@@ -33,8 +33,9 @@ pub struct MediaList {
}
impl ToCss for MediaList {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
serialize_comma_separated_list(dest, &self.media_queries)
}
@@ -86,8 +87,9 @@ impl MediaQuery {
}
impl ToCss for MediaQuery {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
if let Some(qual) = self.qualifier {
qual.to_css(dest)?;
diff --git a/components/style/properties/declaration_block.rs b/components/style/properties/declaration_block.rs
index c28ed5555f7..284c8230b5d 100644
--- a/components/style/properties/declaration_block.rs
+++ b/components/style/properties/declaration_block.rs
@@ -16,10 +16,11 @@ use properties::animated_properties::AnimationValue;
use shared_lock::Locked;
use smallbitvec::{self, SmallBitVec};
use smallvec::SmallVec;
-use std::fmt;
+use std::fmt::{self, Write};
use std::iter::{DoubleEndedIterator, Zip};
use std::slice::Iter;
-use style_traits::{ToCss, ParseError, ParsingMode, StyleParseErrorKind};
+use str::{CssString, CssStringBorrow, CssStringWriter};
+use style_traits::{CssWriter, ParseError, ParsingMode, StyleParseErrorKind, ToCss};
use stylesheets::{CssRuleType, Origin, UrlExtraData};
use super::*;
use values::computed::Context;
@@ -306,9 +307,7 @@ impl PropertyDeclarationBlock {
/// Find the value of the given property in this block and serialize it
///
/// <https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-getpropertyvalue>
- pub fn property_value_to_css<W>(&self, property: &PropertyId, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+ pub fn property_value_to_css(&self, property: &PropertyId, dest: &mut CssStringWriter) -> fmt::Result {
// Step 1.1: done when parsing a string to PropertyId
// Step 1.2
@@ -608,15 +607,13 @@ impl PropertyDeclarationBlock {
}
/// Take a declaration block known to contain a single property and serialize it.
- pub fn single_value_to_css<W>(
+ pub fn single_value_to_css(
&self,
property: &PropertyId,
- dest: &mut W,
+ dest: &mut CssStringWriter,
computed_values: Option<&ComputedValues>,
custom_properties_block: Option<&PropertyDeclarationBlock>,
) -> fmt::Result
- where
- W: fmt::Write,
{
match property.as_shorthand() {
Err(_longhand_or_custom) => {
@@ -664,10 +661,10 @@ impl PropertyDeclarationBlock {
let iter = self.declarations.iter();
match shorthand.get_shorthand_appendable_value(iter) {
Some(AppendableValue::Css { css, .. }) => {
- dest.write_str(css)
+ css.append_to(dest)
},
Some(AppendableValue::DeclarationsForShorthand(_, decls)) => {
- shorthand.longhands_to_css(decls, dest)
+ shorthand.longhands_to_css(decls, &mut CssWriter::new(dest))
}
_ => Ok(())
}
@@ -738,11 +735,13 @@ impl PropertyDeclarationBlock {
}
}
-impl ToCss for PropertyDeclarationBlock {
- // https://drafts.csswg.org/cssom/#serialize-a-css-declaration-block
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+impl PropertyDeclarationBlock {
+ /// Like the method on ToCss, but without the type parameter to avoid
+ /// accidentally monomorphizing this large function multiple times for
+ /// different writers.
+ ///
+ /// https://drafts.csswg.org/cssom/#serialize-a-css-declaration-block
+ pub fn to_css(&self, dest: &mut CssStringWriter) -> fmt::Result {
let mut is_first_serialization = true; // trailing serializations should have a prepended space
// Step 1 -> dest = result list
@@ -835,7 +834,7 @@ impl ToCss for PropertyDeclarationBlock {
// We avoid re-serializing if we're already an
// AppendableValue::Css.
- let mut v = String::new();
+ let mut v = CssString::new();
let value = match (appendable_value, found_system) {
(AppendableValue::Css { css, with_variables }, _) => {
debug_assert!(!css.is_empty());
@@ -846,9 +845,9 @@ impl ToCss for PropertyDeclarationBlock {
}
#[cfg(feature = "gecko")]
(_, Some(sys)) => {
- sys.to_css(&mut v)?;
+ sys.to_css(&mut CssWriter::new(&mut v))?;
AppendableValue::Css {
- css: &v,
+ css: CssStringBorrow::from(&v),
with_variables: false,
}
}
@@ -861,7 +860,7 @@ impl ToCss for PropertyDeclarationBlock {
}
AppendableValue::Css {
- css: &v,
+ css: CssStringBorrow::from(&v),
with_variables: false,
}
}
@@ -871,14 +870,14 @@ impl ToCss for PropertyDeclarationBlock {
// We need to check the shorthand whether it's an alias property or not.
// If it's an alias property, it should be serialized like its longhand.
if shorthand.flags().contains(PropertyFlags::SHORTHAND_ALIAS_PROPERTY) {
- append_serialization::<_, Cloned<slice::Iter< _>>, _>(
+ append_serialization::<Cloned<slice::Iter< _>>, _>(
dest,
&property,
value,
importance,
&mut is_first_serialization)?;
} else {
- append_serialization::<_, Cloned<slice::Iter< _>>, _>(
+ append_serialization::<Cloned<slice::Iter< _>>, _>(
dest,
&shorthand,
value,
@@ -913,7 +912,7 @@ impl ToCss for PropertyDeclarationBlock {
// "error: unable to infer enough type information about `_`;
// type annotations or generic parameter binding required [E0282]"
// Use the same type as earlier call to reuse generated code.
- append_serialization::<_, Cloned<slice::Iter<_>>, _>(
+ append_serialization::<Cloned<slice::Iter<_>>, _>(
dest,
&property,
AppendableValue::Declaration(declaration),
@@ -945,17 +944,19 @@ pub enum AppendableValue<'a, I>
/// or when storing a serialized shorthand value before appending directly.
Css {
/// The raw CSS string.
- css: &'a str,
+ css: CssStringBorrow<'a>,
/// Whether the original serialization contained variables or not.
with_variables: bool,
}
}
/// Potentially appends whitespace after the first (property: value;) pair.
-fn handle_first_serialization<W>(dest: &mut W,
- is_first_serialization: &mut bool)
- -> fmt::Result
- where W: fmt::Write,
+fn handle_first_serialization<W>(
+ dest: &mut W,
+ is_first_serialization: &mut bool,
+) -> fmt::Result
+where
+ W: Write,
{
if !*is_first_serialization {
dest.write_str(" ")
@@ -966,39 +967,41 @@ fn handle_first_serialization<W>(dest: &mut W,
}
/// Append a given kind of appendable value to a serialization.
-pub fn append_declaration_value<'a, W, I>(dest: &mut W,
- appendable_value: AppendableValue<'a, I>)
- -> fmt::Result
- where W: fmt::Write,
- I: Iterator<Item=&'a PropertyDeclaration>,
+pub fn append_declaration_value<'a, I>(
+ dest: &mut CssStringWriter,
+ appendable_value: AppendableValue<'a, I>,
+) -> fmt::Result
+where
+ I: Iterator<Item=&'a PropertyDeclaration>,
{
match appendable_value {
AppendableValue::Css { css, .. } => {
- dest.write_str(css)
+ css.append_to(dest)
},
AppendableValue::Declaration(decl) => {
decl.to_css(dest)
},
AppendableValue::DeclarationsForShorthand(shorthand, decls) => {
- shorthand.longhands_to_css(decls, dest)
+ shorthand.longhands_to_css(decls, &mut CssWriter::new(dest))
}
}
}
/// Append a given property and value pair to a serialization.
-pub fn append_serialization<'a, W, I, N>(dest: &mut W,
- property_name: &N,
- appendable_value: AppendableValue<'a, I>,
- importance: Importance,
- is_first_serialization: &mut bool)
- -> fmt::Result
- where W: fmt::Write,
- I: Iterator<Item=&'a PropertyDeclaration>,
- N: ToCss,
+pub fn append_serialization<'a, I, N>(
+ dest: &mut CssStringWriter,
+ property_name: &N,
+ appendable_value: AppendableValue<'a, I>,
+ importance: Importance,
+ is_first_serialization: &mut bool
+) -> fmt::Result
+where
+ I: Iterator<Item=&'a PropertyDeclaration>,
+ N: ToCss,
{
handle_first_serialization(dest, is_first_serialization)?;
- property_name.to_css(dest)?;
+ property_name.to_css(&mut CssWriter::new(dest))?;
dest.write_char(':')?;
// for normal parsed values, add a space between key: and value
diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs
index f21f33bfd63..b40fb81bcb4 100644
--- a/components/style/properties/gecko.mako.rs
+++ b/components/style/properties/gecko.mako.rs
@@ -1616,57 +1616,9 @@ fn static_assert() {
["border-{0}-radius".format(x.ident.replace("_", "-"))
for x in CORNERS]) %>
-<% skip_moz_border_color_longhands = " ".join("-moz-border-{0}-colors".format(x.ident)
- for x in SIDES) %>
<%self:impl_trait style_struct_name="Border"
skip_longhands="${skip_border_longhands} border-image-source border-image-outset
- border-image-repeat border-image-width border-image-slice
- ${skip_moz_border_color_longhands}">
-
- fn set_moz_border_colors(&mut self, side: structs::Side, v: Option<Vec<::cssparser::RGBA>>) {
- match v {
- None => {
- let ptr = self.gecko.mBorderColors.mPtr;
- if let Some(colors) = unsafe { ptr.as_mut() } {
- unsafe { colors.mColors[side as usize].clear() };
- }
- }
- Some(ref colors) => {
- unsafe { bindings::Gecko_EnsureMozBorderColors(&mut self.gecko) };
- let border_colors = unsafe { self.gecko.mBorderColors.mPtr.as_mut().unwrap() };
- let dest_colors = &mut border_colors.mColors[side as usize];
- unsafe { dest_colors.set_len_pod(colors.len() as u32) };
- for (dst, src) in dest_colors.iter_mut().zip(colors.into_iter()) {
- *dst = convert_rgba_to_nscolor(src);
- }
- }
- }
- }
-
- fn copy_moz_border_colors_from(&mut self, other: &Self, side: structs::Side) {
- if let Some(dest) = unsafe { self.gecko.mBorderColors.mPtr.as_mut() } {
- dest.mColors[side as usize].clear_pod();
- }
- if let Some(src) = unsafe { other.gecko.mBorderColors.mPtr.as_ref() } {
- let src = &src.mColors[side as usize];
- if !src.is_empty() {
- unsafe { bindings::Gecko_EnsureMozBorderColors(&mut self.gecko) };
- let dest = unsafe { self.gecko.mBorderColors.mPtr.as_mut().unwrap() };
- let dest = &mut dest.mColors[side as usize];
- unsafe { dest.set_len_pod(src.len() as u32) };
- dest.copy_from_slice(&src);
- }
- }
- }
-
- fn clone_moz_border_colors(&self, side: structs::Side) -> Option<Vec<::cssparser::RGBA>> {
- unsafe { self.gecko.mBorderColors.mPtr.as_ref() }.map(|colors| {
- colors.mColors[side as usize].iter()
- .map(|color| convert_nscolor_to_rgba(*color))
- .collect()
- })
- }
-
+ border-image-repeat border-image-width border-image-slice">
% for side in SIDES:
<% impl_keyword("border_%s_style" % side.ident,
"mBorderStyle[%s]" % side.index,
@@ -1713,29 +1665,6 @@ fn static_assert() {
pub fn border_${side.ident}_has_nonzero_width(&self) -> bool {
self.gecko.mComputedBorder.${side.ident} != 0
}
-
- #[allow(non_snake_case)]
- pub fn set__moz_border_${side.ident}_colors(&mut self,
- v: longhands::_moz_border_${side.ident}_colors::computed_value::T) {
- self.set_moz_border_colors(structs::Side::eSide${to_camel_case(side.ident)}, v.0);
- }
-
- #[allow(non_snake_case)]
- pub fn copy__moz_border_${side.ident}_colors_from(&mut self, other: &Self) {
- self.copy_moz_border_colors_from(other, structs::Side::eSide${to_camel_case(side.ident)});
- }
-
- #[allow(non_snake_case)]
- pub fn reset__moz_border_${side.ident}_colors(&mut self, other: &Self) {
- self.copy__moz_border_${side.ident}_colors_from(other)
- }
-
- #[allow(non_snake_case)]
- pub fn clone__moz_border_${side.ident}_colors(&self)
- -> longhands::_moz_border_${side.ident}_colors::computed_value::T {
- use self::longhands::_moz_border_${side.ident}_colors::computed_value::T;
- T(self.clone_moz_border_colors(structs::Side::eSide${to_camel_case(side.ident)}))
- }
% endfor
% for corner in CORNERS:
@@ -5302,53 +5231,50 @@ clip-path
<%self:impl_trait style_struct_name="Pointing"
skip_longhands="cursor caret-color">
pub fn set_cursor(&mut self, v: longhands::cursor::computed_value::T) {
- use properties::longhands::cursor::computed_value::Keyword;
- use style_traits::cursor::Cursor;
+ use style_traits::cursor::CursorKind;
self.gecko.mCursor = match v.keyword {
- Keyword::Auto => structs::NS_STYLE_CURSOR_AUTO,
- Keyword::Cursor(cursor) => match cursor {
- Cursor::None => structs::NS_STYLE_CURSOR_NONE,
- Cursor::Default => structs::NS_STYLE_CURSOR_DEFAULT,
- Cursor::Pointer => structs::NS_STYLE_CURSOR_POINTER,
- Cursor::ContextMenu => structs::NS_STYLE_CURSOR_CONTEXT_MENU,
- Cursor::Help => structs::NS_STYLE_CURSOR_HELP,
- Cursor::Progress => structs::NS_STYLE_CURSOR_SPINNING,
- Cursor::Wait => structs::NS_STYLE_CURSOR_WAIT,
- Cursor::Cell => structs::NS_STYLE_CURSOR_CELL,
- Cursor::Crosshair => structs::NS_STYLE_CURSOR_CROSSHAIR,
- Cursor::Text => structs::NS_STYLE_CURSOR_TEXT,
- Cursor::VerticalText => structs::NS_STYLE_CURSOR_VERTICAL_TEXT,
- Cursor::Alias => structs::NS_STYLE_CURSOR_ALIAS,
- Cursor::Copy => structs::NS_STYLE_CURSOR_COPY,
- Cursor::Move => structs::NS_STYLE_CURSOR_MOVE,
- Cursor::NoDrop => structs::NS_STYLE_CURSOR_NO_DROP,
- Cursor::NotAllowed => structs::NS_STYLE_CURSOR_NOT_ALLOWED,
- Cursor::Grab => structs::NS_STYLE_CURSOR_GRAB,
- Cursor::Grabbing => structs::NS_STYLE_CURSOR_GRABBING,
- Cursor::EResize => structs::NS_STYLE_CURSOR_E_RESIZE,
- Cursor::NResize => structs::NS_STYLE_CURSOR_N_RESIZE,
- Cursor::NeResize => structs::NS_STYLE_CURSOR_NE_RESIZE,
- Cursor::NwResize => structs::NS_STYLE_CURSOR_NW_RESIZE,
- Cursor::SResize => structs::NS_STYLE_CURSOR_S_RESIZE,
- Cursor::SeResize => structs::NS_STYLE_CURSOR_SE_RESIZE,
- Cursor::SwResize => structs::NS_STYLE_CURSOR_SW_RESIZE,
- Cursor::WResize => structs::NS_STYLE_CURSOR_W_RESIZE,
- Cursor::EwResize => structs::NS_STYLE_CURSOR_EW_RESIZE,
- Cursor::NsResize => structs::NS_STYLE_CURSOR_NS_RESIZE,
- Cursor::NeswResize => structs::NS_STYLE_CURSOR_NESW_RESIZE,
- Cursor::NwseResize => structs::NS_STYLE_CURSOR_NWSE_RESIZE,
- Cursor::ColResize => structs::NS_STYLE_CURSOR_COL_RESIZE,
- Cursor::RowResize => structs::NS_STYLE_CURSOR_ROW_RESIZE,
- Cursor::AllScroll => structs::NS_STYLE_CURSOR_ALL_SCROLL,
- Cursor::ZoomIn => structs::NS_STYLE_CURSOR_ZOOM_IN,
- Cursor::ZoomOut => structs::NS_STYLE_CURSOR_ZOOM_OUT,
- // note: the following properties are gecko-only.
- Cursor::MozGrab => structs::NS_STYLE_CURSOR_GRAB,
- Cursor::MozGrabbing => structs::NS_STYLE_CURSOR_GRABBING,
- Cursor::MozZoomIn => structs::NS_STYLE_CURSOR_ZOOM_IN,
- Cursor::MozZoomOut => structs::NS_STYLE_CURSOR_ZOOM_OUT,
- }
+ CursorKind::Auto => structs::NS_STYLE_CURSOR_AUTO,
+ CursorKind::None => structs::NS_STYLE_CURSOR_NONE,
+ CursorKind::Default => structs::NS_STYLE_CURSOR_DEFAULT,
+ CursorKind::Pointer => structs::NS_STYLE_CURSOR_POINTER,
+ CursorKind::ContextMenu => structs::NS_STYLE_CURSOR_CONTEXT_MENU,
+ CursorKind::Help => structs::NS_STYLE_CURSOR_HELP,
+ CursorKind::Progress => structs::NS_STYLE_CURSOR_SPINNING,
+ CursorKind::Wait => structs::NS_STYLE_CURSOR_WAIT,
+ CursorKind::Cell => structs::NS_STYLE_CURSOR_CELL,
+ CursorKind::Crosshair => structs::NS_STYLE_CURSOR_CROSSHAIR,
+ CursorKind::Text => structs::NS_STYLE_CURSOR_TEXT,
+ CursorKind::VerticalText => structs::NS_STYLE_CURSOR_VERTICAL_TEXT,
+ CursorKind::Alias => structs::NS_STYLE_CURSOR_ALIAS,
+ CursorKind::Copy => structs::NS_STYLE_CURSOR_COPY,
+ CursorKind::Move => structs::NS_STYLE_CURSOR_MOVE,
+ CursorKind::NoDrop => structs::NS_STYLE_CURSOR_NO_DROP,
+ CursorKind::NotAllowed => structs::NS_STYLE_CURSOR_NOT_ALLOWED,
+ CursorKind::Grab => structs::NS_STYLE_CURSOR_GRAB,
+ CursorKind::Grabbing => structs::NS_STYLE_CURSOR_GRABBING,
+ CursorKind::EResize => structs::NS_STYLE_CURSOR_E_RESIZE,
+ CursorKind::NResize => structs::NS_STYLE_CURSOR_N_RESIZE,
+ CursorKind::NeResize => structs::NS_STYLE_CURSOR_NE_RESIZE,
+ CursorKind::NwResize => structs::NS_STYLE_CURSOR_NW_RESIZE,
+ CursorKind::SResize => structs::NS_STYLE_CURSOR_S_RESIZE,
+ CursorKind::SeResize => structs::NS_STYLE_CURSOR_SE_RESIZE,
+ CursorKind::SwResize => structs::NS_STYLE_CURSOR_SW_RESIZE,
+ CursorKind::WResize => structs::NS_STYLE_CURSOR_W_RESIZE,
+ CursorKind::EwResize => structs::NS_STYLE_CURSOR_EW_RESIZE,
+ CursorKind::NsResize => structs::NS_STYLE_CURSOR_NS_RESIZE,
+ CursorKind::NeswResize => structs::NS_STYLE_CURSOR_NESW_RESIZE,
+ CursorKind::NwseResize => structs::NS_STYLE_CURSOR_NWSE_RESIZE,
+ CursorKind::ColResize => structs::NS_STYLE_CURSOR_COL_RESIZE,
+ CursorKind::RowResize => structs::NS_STYLE_CURSOR_ROW_RESIZE,
+ CursorKind::AllScroll => structs::NS_STYLE_CURSOR_ALL_SCROLL,
+ CursorKind::ZoomIn => structs::NS_STYLE_CURSOR_ZOOM_IN,
+ CursorKind::ZoomOut => structs::NS_STYLE_CURSOR_ZOOM_OUT,
+ // note: the following properties are gecko-only.
+ CursorKind::MozGrab => structs::NS_STYLE_CURSOR_GRAB,
+ CursorKind::MozGrabbing => structs::NS_STYLE_CURSOR_GRABBING,
+ CursorKind::MozZoomIn => structs::NS_STYLE_CURSOR_ZOOM_IN,
+ CursorKind::MozZoomOut => structs::NS_STYLE_CURSOR_ZOOM_OUT,
} as u8;
unsafe {
@@ -5390,47 +5316,47 @@ clip-path
}
pub fn clone_cursor(&self) -> longhands::cursor::computed_value::T {
- use properties::longhands::cursor::computed_value::{Keyword, Image};
- use style_traits::cursor::Cursor;
+ use values::computed::pointing::CursorImage;
+ use style_traits::cursor::CursorKind;
use values::specified::url::SpecifiedUrl;
let keyword = match self.gecko.mCursor as u32 {
- structs::NS_STYLE_CURSOR_AUTO => Keyword::Auto,
- structs::NS_STYLE_CURSOR_NONE => Keyword::Cursor(Cursor::None),
- structs::NS_STYLE_CURSOR_DEFAULT => Keyword::Cursor(Cursor::Default),
- structs::NS_STYLE_CURSOR_POINTER => Keyword::Cursor(Cursor::Pointer),
- structs::NS_STYLE_CURSOR_CONTEXT_MENU => Keyword::Cursor(Cursor::ContextMenu),
- structs::NS_STYLE_CURSOR_HELP => Keyword::Cursor(Cursor::Help),
- structs::NS_STYLE_CURSOR_SPINNING => Keyword::Cursor(Cursor::Progress),
- structs::NS_STYLE_CURSOR_WAIT => Keyword::Cursor(Cursor::Wait),
- structs::NS_STYLE_CURSOR_CELL => Keyword::Cursor(Cursor::Cell),
- structs::NS_STYLE_CURSOR_CROSSHAIR => Keyword::Cursor(Cursor::Crosshair),
- structs::NS_STYLE_CURSOR_TEXT => Keyword::Cursor(Cursor::Text),
- structs::NS_STYLE_CURSOR_VERTICAL_TEXT => Keyword::Cursor(Cursor::VerticalText),
- structs::NS_STYLE_CURSOR_ALIAS => Keyword::Cursor(Cursor::Alias),
- structs::NS_STYLE_CURSOR_COPY => Keyword::Cursor(Cursor::Copy),
- structs::NS_STYLE_CURSOR_MOVE => Keyword::Cursor(Cursor::Move),
- structs::NS_STYLE_CURSOR_NO_DROP => Keyword::Cursor(Cursor::NoDrop),
- structs::NS_STYLE_CURSOR_NOT_ALLOWED => Keyword::Cursor(Cursor::NotAllowed),
- structs::NS_STYLE_CURSOR_GRAB => Keyword::Cursor(Cursor::Grab),
- structs::NS_STYLE_CURSOR_GRABBING => Keyword::Cursor(Cursor::Grabbing),
- structs::NS_STYLE_CURSOR_E_RESIZE => Keyword::Cursor(Cursor::EResize),
- structs::NS_STYLE_CURSOR_N_RESIZE => Keyword::Cursor(Cursor::NResize),
- structs::NS_STYLE_CURSOR_NE_RESIZE => Keyword::Cursor(Cursor::NeResize),
- structs::NS_STYLE_CURSOR_NW_RESIZE => Keyword::Cursor(Cursor::NwResize),
- structs::NS_STYLE_CURSOR_S_RESIZE => Keyword::Cursor(Cursor::SResize),
- structs::NS_STYLE_CURSOR_SE_RESIZE => Keyword::Cursor(Cursor::SeResize),
- structs::NS_STYLE_CURSOR_SW_RESIZE => Keyword::Cursor(Cursor::SwResize),
- structs::NS_STYLE_CURSOR_W_RESIZE => Keyword::Cursor(Cursor::WResize),
- structs::NS_STYLE_CURSOR_EW_RESIZE => Keyword::Cursor(Cursor::EwResize),
- structs::NS_STYLE_CURSOR_NS_RESIZE => Keyword::Cursor(Cursor::NsResize),
- structs::NS_STYLE_CURSOR_NESW_RESIZE => Keyword::Cursor(Cursor::NeswResize),
- structs::NS_STYLE_CURSOR_NWSE_RESIZE => Keyword::Cursor(Cursor::NwseResize),
- structs::NS_STYLE_CURSOR_COL_RESIZE => Keyword::Cursor(Cursor::ColResize),
- structs::NS_STYLE_CURSOR_ROW_RESIZE => Keyword::Cursor(Cursor::RowResize),
- structs::NS_STYLE_CURSOR_ALL_SCROLL => Keyword::Cursor(Cursor::AllScroll),
- structs::NS_STYLE_CURSOR_ZOOM_IN => Keyword::Cursor(Cursor::ZoomIn),
- structs::NS_STYLE_CURSOR_ZOOM_OUT => Keyword::Cursor(Cursor::ZoomOut),
+ structs::NS_STYLE_CURSOR_AUTO => CursorKind::Auto,
+ structs::NS_STYLE_CURSOR_NONE => CursorKind::None,
+ structs::NS_STYLE_CURSOR_DEFAULT => CursorKind::Default,
+ structs::NS_STYLE_CURSOR_POINTER => CursorKind::Pointer,
+ structs::NS_STYLE_CURSOR_CONTEXT_MENU => CursorKind::ContextMenu,
+ structs::NS_STYLE_CURSOR_HELP => CursorKind::Help,
+ structs::NS_STYLE_CURSOR_SPINNING => CursorKind::Progress,
+ structs::NS_STYLE_CURSOR_WAIT => CursorKind::Wait,
+ structs::NS_STYLE_CURSOR_CELL => CursorKind::Cell,
+ structs::NS_STYLE_CURSOR_CROSSHAIR => CursorKind::Crosshair,
+ structs::NS_STYLE_CURSOR_TEXT => CursorKind::Text,
+ structs::NS_STYLE_CURSOR_VERTICAL_TEXT => CursorKind::VerticalText,
+ structs::NS_STYLE_CURSOR_ALIAS => CursorKind::Alias,
+ structs::NS_STYLE_CURSOR_COPY => CursorKind::Copy,
+ structs::NS_STYLE_CURSOR_MOVE => CursorKind::Move,
+ structs::NS_STYLE_CURSOR_NO_DROP => CursorKind::NoDrop,
+ structs::NS_STYLE_CURSOR_NOT_ALLOWED => CursorKind::NotAllowed,
+ structs::NS_STYLE_CURSOR_GRAB => CursorKind::Grab,
+ structs::NS_STYLE_CURSOR_GRABBING => CursorKind::Grabbing,
+ structs::NS_STYLE_CURSOR_E_RESIZE => CursorKind::EResize,
+ structs::NS_STYLE_CURSOR_N_RESIZE => CursorKind::NResize,
+ structs::NS_STYLE_CURSOR_NE_RESIZE => CursorKind::NeResize,
+ structs::NS_STYLE_CURSOR_NW_RESIZE => CursorKind::NwResize,
+ structs::NS_STYLE_CURSOR_S_RESIZE => CursorKind::SResize,
+ structs::NS_STYLE_CURSOR_SE_RESIZE => CursorKind::SeResize,
+ structs::NS_STYLE_CURSOR_SW_RESIZE => CursorKind::SwResize,
+ structs::NS_STYLE_CURSOR_W_RESIZE => CursorKind::WResize,
+ structs::NS_STYLE_CURSOR_EW_RESIZE => CursorKind::EwResize,
+ structs::NS_STYLE_CURSOR_NS_RESIZE => CursorKind::NsResize,
+ structs::NS_STYLE_CURSOR_NESW_RESIZE => CursorKind::NeswResize,
+ structs::NS_STYLE_CURSOR_NWSE_RESIZE => CursorKind::NwseResize,
+ structs::NS_STYLE_CURSOR_COL_RESIZE => CursorKind::ColResize,
+ structs::NS_STYLE_CURSOR_ROW_RESIZE => CursorKind::RowResize,
+ structs::NS_STYLE_CURSOR_ALL_SCROLL => CursorKind::AllScroll,
+ structs::NS_STYLE_CURSOR_ZOOM_IN => CursorKind::ZoomIn,
+ structs::NS_STYLE_CURSOR_ZOOM_OUT => CursorKind::ZoomOut,
_ => panic!("Found unexpected value in style struct for cursor property"),
};
@@ -5448,8 +5374,8 @@ clip-path
None
};
- Image { url, hotspot }
- }).collect();
+ CursorImage { url, hotspot }
+ }).collect::<Vec<_>>().into_boxed_slice();
longhands::cursor::computed_value::T { images, keyword }
}
diff --git a/components/style/properties/helpers.mako.rs b/components/style/properties/helpers.mako.rs
index becef724657..4d7c1ff19ad 100644
--- a/components/style/properties/helpers.mako.rs
+++ b/components/style/properties/helpers.mako.rs
@@ -82,8 +82,8 @@
need_animatable=need_animatable, **kwargs)">
#[allow(unused_imports)]
use smallvec::SmallVec;
- use std::fmt;
- use style_traits::{Separator, ToCss};
+ use std::fmt::{self, Write};
+ use style_traits::{CssWriter, Separator, ToCss};
pub mod single_value {
#[allow(unused_imports)]
@@ -154,8 +154,9 @@
}
impl ToCss for computed_value::T {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
let mut iter = self.0.iter();
if let Some(val) = iter.next() {
@@ -180,8 +181,9 @@
pub struct SpecifiedValue(pub Vec<single_value::SpecifiedValue>);
impl ToCss for SpecifiedValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
let mut iter = self.0.iter();
if let Some(val) = iter.next() {
@@ -682,11 +684,11 @@
#[allow(unused_imports)]
use selectors::parser::SelectorParseErrorKind;
#[allow(unused_imports)]
- use std::fmt;
+ use std::fmt::{self, Write};
#[allow(unused_imports)]
use style_traits::{ParseError, StyleParseErrorKind};
#[allow(unused_imports)]
- use style_traits::ToCss;
+ use style_traits::{CssWriter, ToCss};
pub struct Longhands {
% for sub_property in shorthand.sub_properties:
@@ -806,7 +808,10 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let rect = Rect::new(
% for side in ["top", "right", "bottom", "left"]:
&self.${to_rust_ident(sub_property_pattern % side)},
diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs
index a4581f1c31e..6a76f0a84e1 100644
--- a/components/style/properties/helpers/animated_properties.mako.rs
+++ b/components/style/properties/helpers/animated_properties.mako.rs
@@ -27,9 +27,9 @@ use selectors::parser::SelectorParseErrorKind;
use servo_arc::Arc;
use smallvec::SmallVec;
use std::cmp;
-use std::fmt;
+use std::fmt::{self, Write};
#[cfg(feature = "gecko")] use hash::FnvHashMap;
-use style_traits::{ParseError, ToCss};
+use style_traits::{CssWriter, ParseError, ToCss};
use super::ComputedValues;
use values::{CSSFloat, CustomIdent, Either};
use values::animated::{Animate, Procedure, ToAnimatedValue, ToAnimatedZero};
@@ -94,7 +94,10 @@ pub enum TransitionProperty {
}
impl ToCss for TransitionProperty {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
TransitionProperty::All => dest.write_str("all"),
TransitionProperty::Shorthand(ref id) => dest.write_str(id.name()),
diff --git a/components/style/properties/longhand/border.mako.rs b/components/style/properties/longhand/border.mako.rs
index 11fdf30b983..a24c31acf88 100644
--- a/components/style/properties/longhand/border.mako.rs
+++ b/components/style/properties/longhand/border.mako.rs
@@ -67,129 +67,6 @@ ${helpers.gecko_keyword_conversion(Keyword('border-style',
animation_value_type="BorderCornerRadius")}
% endfor
-/// -moz-border-*-colors: color, string, enum, none, inherit/initial
-/// These non-spec properties are just for Gecko (Stylo) internal use.
-% for side in PHYSICAL_SIDES:
- <%helpers:longhand name="-moz-border-${side}-colors" animation_value_type="discrete"
- spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-border-*-colors)"
- products="gecko"
- flags="APPLIES_TO_FIRST_LETTER"
- enabled_in="chrome"
- ignored_when_colors_disabled="True">
- use std::fmt;
- use style_traits::ToCss;
- use values::specified::RGBAColor;
-
- pub mod computed_value {
- use cssparser::RGBA;
- #[derive(Clone, Debug, MallocSizeOf, PartialEq)]
- pub struct T(pub Option<Vec<RGBA>>);
- }
-
- #[derive(Clone, Debug, MallocSizeOf, PartialEq)]
- pub enum SpecifiedValue {
- None,
- Colors(Vec<RGBAColor>),
- }
-
- impl ToCss for computed_value::T {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- match self.0 {
- None => return dest.write_str("none"),
- Some(ref vec) => {
- let mut first = true;
- for ref color in vec {
- if !first {
- dest.write_str(" ")?;
- }
- first = false;
- color.to_css(dest)?
- }
- Ok(())
- }
- }
- }
- }
-
- impl ToCss for SpecifiedValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- match *self {
- SpecifiedValue::None => return dest.write_str("none"),
- SpecifiedValue::Colors(ref vec) => {
- let mut first = true;
- for ref color in vec {
- if !first {
- dest.write_str(" ")?;
- }
- first = false;
- color.to_css(dest)?
- }
- Ok(())
- }
- }
- }
- }
-
- #[inline] pub fn get_initial_value() -> computed_value::T {
- computed_value::T(None)
- }
-
- #[inline] pub fn get_initial_specified_value() -> SpecifiedValue {
- SpecifiedValue::None
- }
-
- impl ToComputedValue for SpecifiedValue {
- type ComputedValue = computed_value::T;
-
- #[inline]
- fn to_computed_value(&self, context: &Context) -> computed_value::T {
- match *self {
- SpecifiedValue::Colors(ref vec) => {
- computed_value::T(Some(vec.iter()
- .map(|c| c.to_computed_value(context))
- .collect()))
- },
- SpecifiedValue::None => {
- computed_value::T(None)
- }
- }
- }
- #[inline]
- fn from_computed_value(computed: &computed_value::T) -> Self {
- match *computed {
- computed_value::T(Some(ref vec)) => {
- SpecifiedValue::Colors(vec.iter()
- .map(ToComputedValue::from_computed_value)
- .collect())
- },
- computed_value::T(None) => {
- SpecifiedValue::None
- }
- }
- }
- }
-
- #[inline]
- pub fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
- -> Result<SpecifiedValue, ParseError<'i>> {
- if input.try(|input| input.expect_ident_matching("none")).is_ok() {
- return Ok(SpecifiedValue::None)
- }
-
- let mut result = Vec::new();
- while let Ok(value) = input.try(|i| RGBAColor::parse(context, i)) {
- result.push(value);
- }
-
- if !result.is_empty() {
- Ok(SpecifiedValue::Colors(result))
- } else {
- Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError))
- }
- }
- </%helpers:longhand>
-% endfor
-
${helpers.single_keyword("box-decoration-break", "slice clone",
gecko_enum_prefix="StyleBoxDecorationBreak",
gecko_pref="layout.css.box-decoration-break.enabled",
diff --git a/components/style/properties/longhand/color.mako.rs b/components/style/properties/longhand/color.mako.rs
index 459352fd59c..3dfc685f082 100644
--- a/components/style/properties/longhand/color.mako.rs
+++ b/components/style/properties/longhand/color.mako.rs
@@ -66,8 +66,8 @@ pub mod system_colors {
use cssparser::Parser;
use gecko_bindings::bindings::Gecko_GetLookAndFeelSystemColor;
use gecko_bindings::structs::root::mozilla::LookAndFeel_ColorID;
- use std::fmt;
- use style_traits::ToCss;
+ use std::fmt::{self, Write};
+ use style_traits::{CssWriter, ToCss};
use values::computed::{Context, ToComputedValue};
pub type SystemColor = LookAndFeel_ColorID;
@@ -77,7 +77,10 @@ pub mod system_colors {
malloc_size_of_is_0!(SystemColor);
impl ToCss for SystemColor {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let s = match *self {
% for color in system_colors + extra_colors:
LookAndFeel_ColorID::eColorID_${to_rust_ident(color)} => "${color}",
diff --git a/components/style/properties/longhand/counters.mako.rs b/components/style/properties/longhand/counters.mako.rs
index c65a5ba3239..d55e880dcc9 100644
--- a/components/style/properties/longhand/counters.mako.rs
+++ b/components/style/properties/longhand/counters.mako.rs
@@ -23,8 +23,8 @@
pub mod computed_value {
use cssparser;
- use std::fmt;
- use style_traits::ToCss;
+ use std::fmt::{self, Write};
+ use style_traits::{CssWriter, ToCss};
#[cfg(feature = "gecko")]
use values::specified::url::SpecifiedUrl;
@@ -62,7 +62,10 @@
}
impl ToCss for ContentItem {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
ContentItem::String(ref s) => s.to_css(dest),
ContentItem::Counter(ref s, ref counter_style) => {
@@ -106,7 +109,10 @@
}
impl ToCss for T {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
T::Normal => dest.write_str("normal"),
T::None => dest.write_str("none"),
@@ -232,8 +238,8 @@
<%helpers:longhand name="counter-increment" animation_value_type="discrete"
spec="https://drafts.csswg.org/css-lists/#propdef-counter-increment">
- use std::fmt;
- use style_traits::ToCss;
+ use std::fmt::{self, Write};
+ use style_traits::{CssWriter, ToCss};
use values::CustomIdent;
#[cfg_attr(feature = "gecko", derive(MallocSizeOf))]
@@ -241,16 +247,17 @@
pub struct SpecifiedValue(pub Vec<(CustomIdent, specified::Integer)>);
pub mod computed_value {
- use std::fmt;
- use style_traits::ToCss;
+ use std::fmt::{self, Write};
+ use style_traits::{CssWriter, ToCss};
use values::CustomIdent;
#[derive(Clone, Debug, MallocSizeOf, PartialEq)]
pub struct T(pub Vec<(CustomIdent, i32)>);
impl ToCss for T {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
if self.0.is_empty() {
return dest.write_str("none")
@@ -292,10 +299,10 @@
computed_value::T(Vec::new())
}
-
impl ToCss for SpecifiedValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
if self.0.is_empty() {
return dest.write_str("none");
diff --git a/components/style/properties/longhand/inherited_text.mako.rs b/components/style/properties/longhand/inherited_text.mako.rs
index a9ae76fe9a3..c7ad330a274 100644
--- a/components/style/properties/longhand/inherited_text.mako.rs
+++ b/components/style/properties/longhand/inherited_text.mako.rs
@@ -193,8 +193,8 @@ ${helpers.predefined_type(
animation_value_type="discrete"
spec="https://drafts.csswg.org/css-text-decor/#propdef-text-emphasis-style">
use computed_values::writing_mode::T as WritingMode;
- use std::fmt;
- use style_traits::ToCss;
+ use std::fmt::{self, Write};
+ use style_traits::{CssWriter, ToCss};
use unicode_segmentation::UnicodeSegmentation;
@@ -229,7 +229,7 @@ ${helpers.predefined_type(
}
impl ToCss for KeywordValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if let Some(fill) = self.fill() {
if fill {
dest.write_str("filled")?;
@@ -246,8 +246,12 @@ ${helpers.predefined_type(
Ok(())
}
}
+
impl ToCss for computed_value::KeywordValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.fill {
dest.write_str("filled")?;
} else {
diff --git a/components/style/properties/longhand/pointing.mako.rs b/components/style/properties/longhand/pointing.mako.rs
index 75731428a26..6361e394a09 100644
--- a/components/style/properties/longhand/pointing.mako.rs
+++ b/components/style/properties/longhand/pointing.mako.rs
@@ -6,142 +6,12 @@
<% data.new_style_struct("Pointing", inherited=True, gecko_name="UserInterface") %>
-<%helpers:longhand name="cursor" boxed="${product == 'gecko'}" animation_value_type="discrete"
- spec="https://drafts.csswg.org/css-ui/#cursor">
- pub use self::computed_value::T as SpecifiedValue;
- #[cfg(feature = "gecko")]
- use values::specified::url::SpecifiedUrl;
-
- pub mod computed_value {
- #[cfg(feature = "gecko")]
- use std::fmt;
- #[cfg(feature = "gecko")]
- use style_traits::ToCss;
- use style_traits::cursor::Cursor;
- #[cfg(feature = "gecko")]
- use values::specified::url::SpecifiedUrl;
-
- #[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue, ToCss)]
- pub enum Keyword {
- Auto,
- Cursor(Cursor),
- }
-
- #[cfg(not(feature = "gecko"))]
- pub type T = Keyword;
-
- #[cfg(feature = "gecko")]
- #[derive(Clone, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
- pub struct Image {
- pub url: SpecifiedUrl,
- pub hotspot: Option<(f32, f32)>,
- }
-
- #[cfg(feature = "gecko")]
- #[derive(Clone, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
- pub struct T {
- pub images: Vec<Image>,
- pub keyword: Keyword,
- }
-
- #[cfg(feature = "gecko")]
- impl ToCss for Image {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- self.url.to_css(dest)?;
- if let Some((x, y)) = self.hotspot {
- dest.write_str(" ")?;
- x.to_css(dest)?;
- dest.write_str(" ")?;
- y.to_css(dest)?;
- }
- Ok(())
- }
- }
-
- #[cfg(feature = "gecko")]
- impl ToCss for T {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- for url in &self.images {
- url.to_css(dest)?;
- dest.write_str(", ")?;
- }
- self.keyword.to_css(dest)
- }
- }
- }
-
- #[cfg(not(feature = "gecko"))]
- #[inline]
- pub fn get_initial_value() -> computed_value::T {
- computed_value::Keyword::Auto
- }
-
- #[cfg(feature = "gecko")]
- #[inline]
- pub fn get_initial_value() -> computed_value::T {
- computed_value::T {
- images: vec![],
- keyword: computed_value::Keyword::Auto
- }
- }
-
- impl Parse for computed_value::Keyword {
- fn parse<'i, 't>(_context: &ParserContext, input: &mut Parser<'i, 't>)
- -> Result<computed_value::Keyword, ParseError<'i>> {
- #[allow(unused_imports)] use std::ascii::AsciiExt;
- use style_traits::cursor::Cursor;
- let location = input.current_source_location();
- let ident = input.expect_ident()?;
- if ident.eq_ignore_ascii_case("auto") {
- Ok(computed_value::Keyword::Auto)
- } else {
- Cursor::from_css_keyword(&ident)
- .map(computed_value::Keyword::Cursor)
- .map_err(|()| location.new_custom_error(SelectorParseErrorKind::UnexpectedIdent(ident.clone())))
- }
- }
- }
-
- #[cfg(feature = "gecko")]
- fn parse_image<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
- -> Result<computed_value::Image, ParseError<'i>> {
- Ok(computed_value::Image {
- url: SpecifiedUrl::parse(context, input)?,
- hotspot: match input.try(|input| input.expect_number()) {
- Ok(number) => Some((number, input.expect_number()?)),
- Err(_) => None,
- },
- })
- }
-
- #[cfg(not(feature = "gecko"))]
- pub fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
- -> Result<SpecifiedValue, ParseError<'i>> {
- computed_value::Keyword::parse(context, input)
- }
-
- /// cursor: [<url> [<number> <number>]?]# [auto | default | ...]
- #[cfg(feature = "gecko")]
- pub fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
- -> Result<SpecifiedValue, ParseError<'i>> {
- let mut images = vec![];
- loop {
- match input.try(|input| parse_image(context, input)) {
- Ok(mut image) => {
- image.url.build_image_value();
- images.push(image)
- }
- Err(_) => break,
- }
- input.expect_comma()?;
- }
-
- Ok(computed_value::T {
- images: images,
- keyword: computed_value::Keyword::parse(context, input)?,
- })
- }
-</%helpers:longhand>
+${helpers.predefined_type("cursor",
+ "Cursor",
+ "computed::Cursor::auto()",
+ initial_specified_value="specified::Cursor::auto()",
+ animation_value_type="discrete",
+ spec="https://drafts.csswg.org/css-ui/#cursor")}
// NB: `pointer-events: auto` (and use of `pointer-events` in anything that isn't SVG, in fact)
// is nonstandard, slated for CSS4-UI.
diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs
index 272aed29391..73c0cd6498c 100644
--- a/components/style/properties/properties.mako.rs
+++ b/components/style/properties/properties.mako.rs
@@ -12,12 +12,14 @@
#[cfg(feature = "servo")]
use app_units::Au;
+use dom::TElement;
use custom_properties::CustomPropertiesBuilder;
use servo_arc::{Arc, UniqueArc};
use smallbitvec::SmallBitVec;
use std::borrow::Cow;
-use std::{fmt, mem, ops};
+use std::{mem, ops};
use std::cell::RefCell;
+use std::fmt::{self, Write};
#[cfg(feature = "servo")] use cssparser::RGBA;
use cssparser::{CowRcStr, Parser, TokenSerializationType, serialize_identifier};
@@ -38,7 +40,7 @@ use selector_parser::PseudoElement;
use selectors::parser::SelectorParseErrorKind;
#[cfg(feature = "servo")] use servo_config::prefs::PREFS;
use shared_lock::StylesheetGuards;
-use style_traits::{ParsingMode, ToCss, ParseError, StyleParseErrorKind};
+use style_traits::{CssWriter, ParseError, ParsingMode, StyleParseErrorKind, ToCss};
use stylesheets::{CssRuleType, Origin, UrlExtraData};
#[cfg(feature = "servo")] use values::Either;
use values::generics::text::LineHeight;
@@ -46,6 +48,7 @@ use values::computed;
use values::computed::NonNegativeLength;
use rule_tree::{CascadeLevel, StrongRuleNode};
use self::computed_value_flags::*;
+use str::{CssString, CssStringBorrow, CssStringWriter};
use style_adjuster::StyleAdjuster;
pub use self::declaration_block::*;
@@ -793,10 +796,6 @@ impl LonghandId {
LonghandId::BorderImageSource |
LonghandId::BoxShadow |
LonghandId::MaskImage |
- LonghandId::MozBorderBottomColors |
- LonghandId::MozBorderLeftColors |
- LonghandId::MozBorderRightColors |
- LonghandId::MozBorderTopColors |
LonghandId::TextShadow
)
% else:
@@ -856,9 +855,14 @@ impl ShorthandId {
///
/// Returns an error if writing to the stream fails, or if the declarations
/// do not map to a shorthand.
- pub fn longhands_to_css<'a, W, I>(&self, declarations: I, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- I: Iterator<Item=&'a PropertyDeclaration>,
+ pub fn longhands_to_css<'a, W, I>(
+ &self,
+ declarations: I,
+ dest: &mut CssWriter<W>,
+ ) -> fmt::Result
+ where
+ W: Write,
+ I: Iterator<Item=&'a PropertyDeclaration>,
{
match *self {
ShorthandId::All => {
@@ -902,7 +906,7 @@ impl ShorthandId {
if let Some(css) = first_declaration.with_variables_from_shorthand(self) {
if declarations2.all(|d| d.with_variables_from_shorthand(self) == Some(css)) {
return Some(AppendableValue::Css {
- css: css,
+ css: CssStringBorrow::from(css),
with_variables: true,
});
}
@@ -913,7 +917,7 @@ impl ShorthandId {
if let Some(keyword) = first_declaration.get_css_wide_keyword() {
if declarations2.all(|d| d.get_css_wide_keyword() == Some(keyword)) {
return Some(AppendableValue::Css {
- css: keyword.to_str(),
+ css: CssStringBorrow::from(keyword.to_str()),
with_variables: false,
});
}
@@ -1076,8 +1080,9 @@ impl UnparsedValue {
}
impl<'a, T: ToCss> ToCss for DeclaredValue<'a, T> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
match *self {
DeclaredValue::Value(ref inner) => inner.to_css(dest),
@@ -1105,8 +1110,9 @@ pub enum PropertyDeclarationId<'a> {
}
impl<'a> ToCss for PropertyDeclarationId<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
match *self {
PropertyDeclarationId::Longhand(id) => dest.write_str(id.name()),
@@ -1151,7 +1157,6 @@ impl<'a> PropertyDeclarationId<'a> {
match *self {
PropertyDeclarationId::Longhand(id) => id.name().into(),
PropertyDeclarationId::Custom(name) => {
- use std::fmt::Write;
let mut s = String::new();
write!(&mut s, "--{}", name).unwrap();
s.into()
@@ -1178,13 +1183,14 @@ pub enum PropertyId {
impl fmt::Debug for PropertyId {
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- self.to_css(formatter)
+ self.to_css(&mut CssWriter::new(formatter))
}
}
impl ToCss for PropertyId {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
match *self {
PropertyId::Longhand(id) => dest.write_str(id.name()),
@@ -1332,7 +1338,6 @@ impl PropertyId {
PropertyId::LonghandAlias(id, _) |
PropertyId::Longhand(id) => id.name().into(),
PropertyId::Custom(ref name) => {
- use std::fmt::Write;
let mut s = String::new();
write!(&mut s, "--{}", name).unwrap();
s.into()
@@ -1465,22 +1470,32 @@ pub enum PropertyDeclaration {
impl fmt::Debug for PropertyDeclaration {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- self.id().to_css(f)?;
+ self.id().to_css(&mut CssWriter::new(f))?;
f.write_str(": ")?;
- self.to_css(f)
+
+ // Because PropertyDeclaration::to_css requires CssStringWriter, we can't write
+ // it directly to f, and need to allocate an intermediate string. This is
+ // fine for debug-only code.
+ let mut s = CssString::new();
+ self.to_css(&mut s)?;
+ write!(f, "{}", s)
}
}
-impl ToCss for PropertyDeclaration {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+impl PropertyDeclaration {
+ /// Like the method on ToCss, but without the type parameter to avoid
+ /// accidentally monomorphizing this large function multiple times for
+ /// different writers.
+ pub fn to_css(&self, dest: &mut CssStringWriter) -> fmt::Result {
match *self {
% for property in data.longhands:
- PropertyDeclaration::${property.camel_case}(ref value) =>
- value.to_css(dest),
+ PropertyDeclaration::${property.camel_case}(ref value) => {
+ value.to_css(&mut CssWriter::new(dest))
+ }
% endfor
- PropertyDeclaration::CSSWideKeyword(_, keyword) => keyword.to_css(dest),
+ PropertyDeclaration::CSSWideKeyword(_, keyword) => {
+ keyword.to_css(&mut CssWriter::new(dest))
+ },
PropertyDeclaration::WithVariables(_, ref with_variables) => {
// https://drafts.csswg.org/css-variables/#variables-in-shorthands
match with_variables.from_shorthand {
@@ -1494,7 +1509,9 @@ impl ToCss for PropertyDeclaration {
}
Ok(())
},
- PropertyDeclaration::Custom(_, ref value) => value.borrow().to_css(dest),
+ PropertyDeclaration::Custom(_, ref value) => {
+ value.borrow().to_css(&mut CssWriter::new(dest))
+ },
}
}
}
@@ -3141,30 +3158,8 @@ bitflags! {
/// present, non-inherited styles are reset to their initial values.
const INHERIT_ALL = 1;
- /// Whether to skip any display style fixup for root element, flex/grid
- /// item, and ruby descendants.
- const SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP = 1 << 1;
-
/// Whether to only cascade properties that are visited dependent.
- const VISITED_DEPENDENT_ONLY = 1 << 2;
-
- /// Whether the given element we're styling is the document element,
- /// that is, matches :root.
- ///
- /// Not set for native anonymous content since some NAC form their own
- /// root, but share the device.
- ///
- /// This affects some style adjustments, like blockification, and means
- /// that it may affect global state, like the Device's root font-size.
- const IS_ROOT_ELEMENT = 1 << 3;
-
- /// Whether we're computing the style of a link, either visited or
- /// unvisited.
- const IS_LINK = 1 << 4;
-
- /// Whether we're computing the style of a link element that happens to
- /// be visited.
- const IS_VISITED_LINK = 1 << 5;
+ const VISITED_DEPENDENT_ONLY = 1 << 1;
}
}
@@ -3182,7 +3177,7 @@ bitflags! {
/// Returns the computed values.
/// * `flags`: Various flags.
///
-pub fn cascade(
+pub fn cascade<E>(
device: &Device,
pseudo: Option<<&PseudoElement>,
rule_node: &StrongRuleNode,
@@ -3196,7 +3191,11 @@ pub fn cascade(
quirks_mode: QuirksMode,
rule_cache: Option<<&RuleCache>,
rule_cache_conditions: &mut RuleCacheConditions,
-) -> Arc<ComputedValues> {
+ element: Option<E>,
+) -> Arc<ComputedValues>
+where
+ E: TElement,
+{
debug_assert_eq!(parent_style.is_some(), parent_style_ignoring_first_line.is_some());
let empty = SmallBitVec::new();
@@ -3255,12 +3254,13 @@ pub fn cascade(
quirks_mode,
rule_cache,
rule_cache_conditions,
+ element,
)
}
/// NOTE: This function expects the declaration with more priority to appear
/// first.
-pub fn apply_declarations<'a, F, I>(
+pub fn apply_declarations<'a, E, F, I>(
device: &Device,
pseudo: Option<<&PseudoElement>,
rules: &StrongRuleNode,
@@ -3275,8 +3275,10 @@ pub fn apply_declarations<'a, F, I>(
quirks_mode: QuirksMode,
rule_cache: Option<<&RuleCache>,
rule_cache_conditions: &mut RuleCacheConditions,
+ element: Option<E>,
) -> Arc<ComputedValues>
where
+ E: TElement,
F: Fn() -> I,
I: Iterator<Item = (&'a PropertyDeclaration, CascadeLevel)>,
{
@@ -3312,7 +3314,7 @@ where
};
let mut context = computed::Context {
- is_root_element: flags.contains(CascadeFlags::IS_ROOT_ELEMENT),
+ is_root_element: pseudo.is_none() && element.map_or(false, |e| e.is_root()),
// We'd really like to own the rules here to avoid refcount traffic, but
// animation's usage of `apply_declarations` make this tricky. See bug
// 1375525.
@@ -3596,8 +3598,11 @@ where
builder.clear_modified_reset();
- StyleAdjuster::new(&mut builder)
- .adjust(layout_parent_style, flags);
+ StyleAdjuster::new(&mut builder).adjust(
+ layout_parent_style,
+ element,
+ flags,
+ );
if builder.modified_reset() || !apply_reset {
// If we adjusted any reset structs, we can't cache this ComputedValues.
diff --git a/components/style/properties/shorthand/background.mako.rs b/components/style/properties/shorthand/background.mako.rs
index 4fb5f2c10f4..8fd2101ecec 100644
--- a/components/style/properties/shorthand/background.mako.rs
+++ b/components/style/properties/shorthand/background.mako.rs
@@ -131,7 +131,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let len = self.background_image.0.len();
// There should be at least one declared value
if len == 0 {
@@ -228,7 +228,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let len = self.background_position_x.0.len();
if len == 0 || len != self.background_position_y.0.len() {
return Ok(());
diff --git a/components/style/properties/shorthand/border.mako.rs b/components/style/properties/shorthand/border.mako.rs
index 3d175350a90..0209ebb2376 100644
--- a/components/style/properties/shorthand/border.mako.rs
+++ b/components/style/properties/shorthand/border.mako.rs
@@ -34,7 +34,7 @@ ${helpers.four_sides_shorthand("border-style", "border-%s-style",
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
% for side in PHYSICAL_SIDES:
let ${side} = &self.border_${side}_width;
% endfor
@@ -113,7 +113,7 @@ pub fn parse_border<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
super::serialize_directional_border(
dest,
self.border_${to_rust_ident(side)}_width,
@@ -156,7 +156,7 @@ pub fn parse_border<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let all_equal = {
% for side in PHYSICAL_SIDES:
let border_${side}_width = self.border_${side}_width;
@@ -215,7 +215,7 @@ pub fn parse_border<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let LonghandsToSerialize {
border_top_left_radius: &BorderCornerRadius(ref tl),
border_top_right_radius: &BorderCornerRadius(ref tr),
@@ -315,7 +315,7 @@ pub fn parse_border<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>)
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.border_image_source.to_css(dest)?;
dest.write_str(" ")?;
self.border_image_slice.to_css(dest)?;
diff --git a/components/style/properties/shorthand/box.mako.rs b/components/style/properties/shorthand/box.mako.rs
index ca8523173f8..137599078ad 100644
--- a/components/style/properties/shorthand/box.mako.rs
+++ b/components/style/properties/shorthand/box.mako.rs
@@ -48,7 +48,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.overflow_x == self.overflow_y {
self.overflow_x.to_css(dest)
} else {
@@ -83,7 +83,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.overflow_clip_box_block.to_css(dest)?;
if self.overflow_clip_box_block != self.overflow_clip_box_inline {
@@ -203,7 +203,7 @@ macro_rules! try_parse_one {
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let property_len = self.transition_property.0.len();
// There are two cases that we can do shorthand serialization:
@@ -327,7 +327,7 @@ macro_rules! try_parse_one {
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let len = self.animation_name.0.len();
// There should be at least one declared value
if len == 0 {
@@ -376,7 +376,7 @@ macro_rules! try_parse_one {
impl<'a> ToCss for LonghandsToSerialize<'a> {
// Serializes into the single keyword value if both scroll-snap-type-x and scroll-snap-type-y are same.
// Otherwise into an empty string. This is done to match Gecko's behaviour.
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.scroll_snap_type_x == self.scroll_snap_type_y {
self.scroll_snap_type_x.to_css(dest)
} else {
@@ -406,7 +406,7 @@ macro_rules! try_parse_one {
impl<'a> ToCss for LonghandsToSerialize<'a> {
// Serializes into the single keyword value if both overscroll-behavior-x and overscroll-behavior-y are same.
// Otherwise into two values separated by a space.
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.overscroll_behavior_x.to_css(dest)?;
if self.overscroll_behavior_y != self.overscroll_behavior_x {
dest.write_str(" ")?;
diff --git a/components/style/properties/shorthand/font.mako.rs b/components/style/properties/shorthand/font.mako.rs
index b40505e3c86..22bbe7d71ff 100644
--- a/components/style/properties/shorthand/font.mako.rs
+++ b/components/style/properties/shorthand/font.mako.rs
@@ -151,9 +151,14 @@
}
impl<'a> LonghandsToSerialize<'a> {
- fn to_css_for<W>(&self,
- serialize_for: SerializeFor,
- dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css_for<W>(
+ &self,
+ serialize_for: SerializeFor,
+ dest: &mut CssWriter<W>,
+ ) -> fmt::Result
+ where
+ W: Write,
+ {
% if product == "gecko":
match self.check_system() {
CheckSystemResult::AllSystem(sys) => return sys.to_css(dest),
@@ -226,7 +231,7 @@
}
/// Serialize the shorthand value for canvas font attribute.
- pub fn to_css_for_canvas<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ pub fn to_css_for_canvas<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.to_css_for(SerializeFor::Canvas, dest)
}
% endif
@@ -234,7 +239,7 @@
// This may be a bit off, unsure, possibly needs changes
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.to_css_for(SerializeFor::Normal, dest)
}
}
@@ -309,7 +314,7 @@
impl<'a> ToCss for LonghandsToSerialize<'a> {
#[allow(unused_assignments)]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let has_none_ligatures =
% if product == "gecko":
diff --git a/components/style/properties/shorthand/inherited_svg.mako.rs b/components/style/properties/shorthand/inherited_svg.mako.rs
index 76f1c840f0e..1742ef28ed7 100644
--- a/components/style/properties/shorthand/inherited_svg.mako.rs
+++ b/components/style/properties/shorthand/inherited_svg.mako.rs
@@ -22,7 +22,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.marker_start == self.marker_mid && self.marker_mid == self.marker_end {
self.marker_start.to_css(dest)
} else {
diff --git a/components/style/properties/shorthand/mask.mako.rs b/components/style/properties/shorthand/mask.mako.rs
index 87feba23d16..483ce9b50f8 100644
--- a/components/style/properties/shorthand/mask.mako.rs
+++ b/components/style/properties/shorthand/mask.mako.rs
@@ -121,7 +121,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
use properties::longhands::mask_origin::single_value::computed_value::T as Origin;
use properties::longhands::mask_clip::single_value::computed_value::T as Clip;
@@ -214,7 +214,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let len = self.mask_position_x.0.len();
if len == 0 || self.mask_position_y.0.len() != len {
return Ok(());
diff --git a/components/style/properties/shorthand/outline.mako.rs b/components/style/properties/shorthand/outline.mako.rs
index 0fe8a11118b..95d6b0be28a 100644
--- a/components/style/properties/shorthand/outline.mako.rs
+++ b/components/style/properties/shorthand/outline.mako.rs
@@ -76,7 +76,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
use values::generics::border::BorderCornerRadius;
let LonghandsToSerialize {
diff --git a/components/style/properties/shorthand/position.mako.rs b/components/style/properties/shorthand/position.mako.rs
index 1bddeeb8b33..95a4c183e20 100644
--- a/components/style/properties/shorthand/position.mako.rs
+++ b/components/style/properties/shorthand/position.mako.rs
@@ -119,7 +119,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.grid_row_gap == self.grid_column_gap {
self.grid_row_gap.to_css(dest)
} else {
@@ -163,7 +163,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.grid_${kind}_start.to_css(dest)?;
dest.write_str(" / ")?;
self.grid_${kind}_end.to_css(dest)
@@ -224,7 +224,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.grid_row_start.to_css(dest)?;
let values = [&self.grid_column_start, &self.grid_row_end, &self.grid_column_end];
for value in &values {
@@ -362,10 +362,14 @@
}
/// Serialization for `<grid-template>` shorthand (also used by `grid` shorthand).
- pub fn serialize_grid_template<W>(template_rows: &GridTemplateComponent,
- template_columns: &GridTemplateComponent,
- template_areas: &Either<TemplateAreas, None_>,
- dest: &mut W) -> fmt::Result where W: fmt::Write {
+ pub fn serialize_grid_template<W>(
+ template_rows: &GridTemplateComponent,
+ template_columns: &GridTemplateComponent,
+ template_areas: &Either<TemplateAreas, None_>,
+ dest: &mut CssWriter<W>,
+ ) -> fmt::Result
+ where
+ W: Write {
match *template_areas {
Either::Second(_none) => {
template_rows.to_css(dest)?;
@@ -451,7 +455,7 @@
impl<'a> ToCss for LonghandsToSerialize<'a> {
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
serialize_grid_template(self.grid_template_rows, self.grid_template_columns,
self.grid_template_areas, dest)
}
@@ -542,7 +546,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if *self.grid_template_areas != Either::Second(None_) ||
(*self.grid_template_rows != GridTemplateComponent::None &&
*self.grid_template_columns != GridTemplateComponent::None) ||
@@ -635,7 +639,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.align_content.to_css(dest)?;
if self.align_content != self.justify_content {
dest.write_str(" ")?;
@@ -670,7 +674,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.align_self == self.justify_self {
self.align_self.to_css(dest)
} else {
@@ -713,7 +717,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.align_items.0 == self.justify_items.0 {
self.align_items.to_css(dest)
} else {
diff --git a/components/style/properties/shorthand/serialize.mako.rs b/components/style/properties/shorthand/serialize.mako.rs
index a86704a5488..afcbe3c488b 100644
--- a/components/style/properties/shorthand/serialize.mako.rs
+++ b/components/style/properties/shorthand/serialize.mako.rs
@@ -2,15 +2,20 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use style_traits::ToCss;
+use style_traits::{CssWriter, ToCss};
use values::specified::{BorderStyle, Color};
-use std::fmt;
+use std::fmt::{self, Write};
-fn serialize_directional_border<W, I,>(dest: &mut W,
- width: &I,
- style: &BorderStyle,
- color: &Color)
- -> fmt::Result where W: fmt::Write, I: ToCss {
+fn serialize_directional_border<W, I,>(
+ dest: &mut CssWriter<W>,
+ width: &I,
+ style: &BorderStyle,
+ color: &Color,
+) -> fmt::Result
+where
+ W: Write,
+ I: ToCss,
+{
width.to_css(dest)?;
dest.write_str(" ")?;
style.to_css(dest)?;
diff --git a/components/style/properties/shorthand/text.mako.rs b/components/style/properties/shorthand/text.mako.rs
index 2c21d1971bf..c53f1b8b27e 100644
--- a/components/style/properties/shorthand/text.mako.rs
+++ b/components/style/properties/shorthand/text.mako.rs
@@ -62,7 +62,7 @@
}
impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.text_decoration_line.to_css(dest)?;
% if product == "gecko":
diff --git a/components/style/rule_tree/mod.rs b/components/style/rule_tree/mod.rs
index e5b7e273885..2a137d7eb79 100644
--- a/components/style/rule_tree/mod.rs
+++ b/components/style/rule_tree/mod.rs
@@ -828,6 +828,8 @@ impl MallocSizeOf for RuleNode {
}
}
+// FIXME: use std::ptr::NonNull when Firefox requires Rust 1.25+
+
#[derive(Clone)]
struct WeakRuleNode {
p: NonZeroPtrMut<RuleNode>,
diff --git a/components/style/selector_map.rs b/components/style/selector_map.rs
index 1ebf5cea6b6..0678f0ec922 100644
--- a/components/style/selector_map.rs
+++ b/components/style/selector_map.rs
@@ -159,7 +159,6 @@ impl SelectorMap<Rule> {
rule_hash_target: E,
matching_rules_list: &mut ApplicableDeclarationList,
context: &mut MatchingContext<E::Impl>,
- quirks_mode: QuirksMode,
flags_setter: &mut F,
cascade_level: CascadeLevel,
)
@@ -171,45 +170,56 @@ impl SelectorMap<Rule> {
return
}
- // At the end, we're going to sort the rules that we added, so remember where we began.
+ let quirks_mode = context.quirks_mode();
+
+ // At the end, we're going to sort the rules that we added, so remember
+ // where we began.
let init_len = matching_rules_list.len();
if let Some(id) = rule_hash_target.get_id() {
if let Some(rules) = self.id_hash.get(&id, quirks_mode) {
- SelectorMap::get_matching_rules(element,
- rules,
- matching_rules_list,
- context,
- flags_setter,
- cascade_level)
+ SelectorMap::get_matching_rules(
+ element,
+ rules,
+ matching_rules_list,
+ context,
+ flags_setter,
+ cascade_level,
+ )
}
}
rule_hash_target.each_class(|class| {
if let Some(rules) = self.class_hash.get(&class, quirks_mode) {
- SelectorMap::get_matching_rules(element,
- rules,
- matching_rules_list,
- context,
- flags_setter,
- cascade_level)
+ SelectorMap::get_matching_rules(
+ element,
+ rules,
+ matching_rules_list,
+ context,
+ flags_setter,
+ cascade_level,
+ )
}
});
if let Some(rules) = self.local_name_hash.get(rule_hash_target.get_local_name()) {
- SelectorMap::get_matching_rules(element,
- rules,
- matching_rules_list,
- context,
- flags_setter,
- cascade_level)
+ SelectorMap::get_matching_rules(
+ element,
+ rules,
+ matching_rules_list,
+ context,
+ flags_setter,
+ cascade_level,
+ )
}
- SelectorMap::get_matching_rules(element,
- &self.other,
- matching_rules_list,
- context,
- flags_setter,
- cascade_level);
+ SelectorMap::get_matching_rules(
+ element,
+ &self.other,
+ matching_rules_list,
+ context,
+ flags_setter,
+ cascade_level,
+ );
// Sort only the rules we just added.
matching_rules_list[init_len..].sort_unstable_by_key(|block| (block.specificity, block.source_order()));
@@ -247,7 +257,7 @@ impl<T: SelectorMapEntry> SelectorMap<T> {
pub fn insert(
&mut self,
entry: T,
- quirks_mode: QuirksMode
+ quirks_mode: QuirksMode,
) -> Result<(), FailedAllocationError> {
self.count += 1;
diff --git a/components/style/selector_parser.rs b/components/style/selector_parser.rs
index 54978d284b7..e68aded1c9a 100644
--- a/components/style/selector_parser.rs
+++ b/components/style/selector_parser.rs
@@ -9,7 +9,7 @@
use cssparser::{Parser as CssParser, ParserInput};
use selectors::parser::SelectorList;
use std::fmt::{self, Debug, Write};
-use style_traits::{ParseError, ToCss};
+use style_traits::{CssWriter, ParseError, ToCss};
use stylesheets::{Origin, Namespaces, UrlExtraData};
/// A convenient alias for the type that represents an attribute value used for
@@ -201,7 +201,7 @@ impl Direction {
}
impl ToCss for Direction {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
let dir_str = match *self {
Direction::Rtl => "rtl",
Direction::Ltr => "ltr",
diff --git a/components/style/servo/media_queries.rs b/components/style/servo/media_queries.rs
index ea71ee84ab0..79bc288b775 100644
--- a/components/style/servo/media_queries.rs
+++ b/components/style/servo/media_queries.rs
@@ -12,9 +12,9 @@ use media_queries::MediaType;
use parser::ParserContext;
use properties::ComputedValues;
use selectors::parser::SelectorParseErrorKind;
-use std::fmt;
+use std::fmt::{self, Write};
use std::sync::atomic::{AtomicBool, AtomicIsize, Ordering};
-use style_traits::{CSSPixel, DevicePixel, ToCss, ParseError};
+use style_traits::{CSSPixel, CssWriter, DevicePixel, ToCss, ParseError};
use style_traits::viewport::ViewportConstraints;
use values::computed::{self, ToComputedValue};
use values::computed::font::FontSize;
@@ -218,8 +218,9 @@ impl Expression {
}
impl ToCss for Expression {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
let (s, l) = match self.0 {
ExpressionKind::Width(Range::Min(ref l)) => ("(min-width: ", l),
diff --git a/components/style/servo/selector_parser.rs b/components/style/servo/selector_parser.rs
index bc6cc31cf7d..04c164e290d 100644
--- a/components/style/servo/selector_parser.rs
+++ b/components/style/servo/selector_parser.rs
@@ -14,8 +14,7 @@ use element_state::{DocumentState, ElementState};
use fnv::FnvHashMap;
use invalidation::element::document_state::InvalidationMatchingData;
use invalidation::element::element_wrapper::ElementSnapshot;
-use properties::ComputedValues;
-use properties::PropertyFlags;
+use properties::{CascadeFlags, ComputedValues, PropertyFlags};
use properties::longhands::display::computed_value::T as Display;
use selector_parser::{AttrValue as SelectorAttrValue, PseudoElementCascadeType, SelectorParser};
use selectors::attr::{AttrSelectorOperation, NamespaceConstraint, CaseSensitivity};
@@ -174,10 +173,10 @@ impl PseudoElement {
self.is_precomputed()
}
- /// Whether this pseudo-element skips flex/grid container
- /// display-based fixup.
+ /// Whether this pseudo-element skips flex/grid container display-based
+ /// fixup.
#[inline]
- pub fn skip_item_based_display_fixup(&self) -> bool {
+ pub fn skip_item_display_fixup(&self) -> bool {
!self.is_before_or_after()
}
@@ -213,6 +212,43 @@ impl PseudoElement {
}
}
+ /// For most (but not all) anon-boxes, we inherit all values from the
+ /// parent, this is the hook in the style system to allow this.
+ ///
+ /// FIXME(emilio): It's likely that this is broken in a variety of
+ /// situations, and what it really wants is just inherit some reset
+ /// properties... Also, I guess it just could do all: inherit on the
+ /// stylesheet, though chances are that'd be kinda slow if we don't cache
+ /// them...
+ pub fn cascade_flags(&self) -> CascadeFlags {
+ match *self {
+ PseudoElement::After |
+ PseudoElement::Before |
+ PseudoElement::Selection |
+ PseudoElement::DetailsContent |
+ PseudoElement::DetailsSummary => CascadeFlags::empty(),
+ // Anonymous table flows shouldn't inherit their parents properties in order
+ // to avoid doubling up styles such as transformations.
+ PseudoElement::ServoAnonymousTableCell |
+ PseudoElement::ServoAnonymousTableRow |
+ PseudoElement::ServoText |
+ PseudoElement::ServoInputText => CascadeFlags::empty(),
+
+ // For tables, we do want style to inherit, because TableWrapper is
+ // responsible for handling clipping and scrolling, while Table is
+ // responsible for creating stacking contexts.
+ //
+ // StackingContextCollectionFlags makes sure this is processed
+ // properly.
+ PseudoElement::ServoAnonymousTable |
+ PseudoElement::ServoAnonymousTableWrapper |
+ PseudoElement::ServoTableWrapper |
+ PseudoElement::ServoAnonymousBlock |
+ PseudoElement::ServoInlineBlockWrapper |
+ PseudoElement::ServoInlineAbsolute => CascadeFlags::INHERIT_ALL,
+ }
+ }
+
/// Covert non-canonical pseudo-element to canonical one, and keep a
/// canonical one as it is.
pub fn canonical(&self) -> PseudoElement {
diff --git a/components/style/servo/url.rs b/components/style/servo/url.rs
index 6dc1d46d2aa..25a4aa5297d 100644
--- a/components/style/servo/url.rs
+++ b/components/style/servo/url.rs
@@ -6,12 +6,12 @@
use parser::ParserContext;
use servo_url::ServoUrl;
-use std::fmt;
+use std::fmt::{self, Write};
// Note: We use std::sync::Arc rather than servo_arc::Arc here because the
// nonzero optimization is important in keeping the size of SpecifiedUrl below
// the threshold.
use std::sync::Arc;
-use style_traits::{ToCss, ParseError};
+use style_traits::{CssWriter, ParseError, ToCss};
use values::computed::{Context, ToComputedValue, ComputedUrl};
/// A specified url() value for servo.
@@ -111,7 +111,10 @@ impl PartialEq for SpecifiedUrl {
}
impl ToCss for SpecifiedUrl {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let string = match self.original {
Some(ref original) => &**original,
None => match self.resolved {
diff --git a/components/style/shared_lock.rs b/components/style/shared_lock.rs
index 29b92b29d36..fac98e98b6b 100644
--- a/components/style/shared_lock.rs
+++ b/components/style/shared_lock.rs
@@ -13,6 +13,7 @@ use std::cell::UnsafeCell;
use std::fmt;
#[cfg(feature = "gecko")]
use std::ptr;
+use str::{CssString, CssStringWriter};
use stylesheets::Origin;
/// A shared read/write lock that can protect multiple objects.
@@ -219,18 +220,18 @@ mod compile_time_assert {
impl<'a> Marker2 for SharedRwLockWriteGuard<'a> {} // Assert SharedRwLockWriteGuard: !Copy
}
-/// Like ToCss, but with a lock guard given by the caller.
+/// Like ToCss, but with a lock guard given by the caller, and with the writer specified
+/// concretely rather than with a parameter.
pub trait ToCssWithGuard {
/// Serialize `self` in CSS syntax, writing to `dest`, using the given lock guard.
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write;
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result;
/// Serialize `self` in CSS syntax using the given lock guard and return a string.
///
/// (This is a convenience wrapper for `to_css` and probably should not be overridden.)
#[inline]
- fn to_css_string(&self, guard: &SharedRwLockReadGuard) -> String {
- let mut s = String::new();
+ fn to_css_string(&self, guard: &SharedRwLockReadGuard) -> CssString {
+ let mut s = CssString::new();
self.to_css(guard, &mut s).unwrap();
s
}
diff --git a/components/style/str.rs b/components/style/str.rs
index 641f5501d89..a91505ae6ed 100644
--- a/components/style/str.rs
+++ b/components/style/str.rs
@@ -10,6 +10,7 @@ use num_traits::ToPrimitive;
#[allow(unused_imports)] use std::ascii::AsciiExt;
use std::borrow::Cow;
use std::convert::AsRef;
+use std::fmt::{self, Write};
use std::iter::{Filter, Peekable};
use std::str::Split;
@@ -163,3 +164,101 @@ pub fn string_as_ascii_lowercase<'a>(input: &'a str) -> Cow<'a, str> {
Cow::Borrowed(input)
}
}
+
+/// To avoid accidentally instantiating multiple monomorphizations of large
+/// serialization routines, we define explicit concrete types and require
+/// them in those routines. This primarily avoids accidental mixing of UTF8
+/// with UTF16 serializations in Gecko.
+#[cfg(feature = "gecko")]
+pub type CssStringWriter = ::nsstring::nsAString;
+
+/// String type that coerces to CssStringWriter, used when serialization code
+/// needs to allocate a temporary string.
+#[cfg(feature = "gecko")]
+pub type CssString = ::nsstring::nsString;
+
+/// Certain serialization code needs to interact with borrowed strings, which
+/// are sometimes native UTF8 Rust strings, and other times serialized UTF16
+/// strings. This enum multiplexes the two cases.
+#[cfg(feature = "gecko")]
+pub enum CssStringBorrow<'a> {
+ /// A borrow of a UTF16 CssString.
+ UTF16(&'a ::nsstring::nsString),
+ /// A borrow of a regular Rust UTF8 string.
+ UTF8(&'a str),
+}
+
+#[cfg(feature = "gecko")]
+impl<'a> CssStringBorrow<'a> {
+ /// Writes the borrowed string to the provided writer.
+ pub fn append_to(&self, dest: &mut CssStringWriter) -> fmt::Result {
+ match *self {
+ CssStringBorrow::UTF16(s) => {
+ dest.append(s);
+ Ok(())
+ },
+ CssStringBorrow::UTF8(s) => dest.write_str(s),
+ }
+ }
+
+ /// Returns true of the borrowed string is empty.
+ pub fn is_empty(&self) -> bool {
+ match *self {
+ CssStringBorrow::UTF16(s) => s.is_empty(),
+ CssStringBorrow::UTF8(s) => s.is_empty(),
+ }
+ }
+}
+
+#[cfg(feature = "gecko")]
+impl<'a> From<&'a str> for CssStringBorrow<'a> {
+ fn from(s: &'a str) -> Self {
+ CssStringBorrow::UTF8(s)
+ }
+}
+
+#[cfg(feature = "gecko")]
+impl<'a> From<&'a ::nsstring::nsString> for CssStringBorrow<'a> {
+ fn from(s: &'a ::nsstring::nsString) -> Self {
+ CssStringBorrow::UTF16(s)
+ }
+}
+
+/// String. The comments for the Gecko types explain the need for this abstraction.
+#[cfg(feature = "servo")]
+pub type CssStringWriter = String;
+
+/// String. The comments for the Gecko types explain the need for this abstraction.
+#[cfg(feature = "servo")]
+pub type CssString = String;
+
+/// Borrowed string. The comments for the Gecko types explain the need for this abstraction.
+#[cfg(feature = "servo")]
+pub struct CssStringBorrow<'a>(&'a str);
+
+#[cfg(feature = "servo")]
+impl<'a> CssStringBorrow<'a> {
+ /// Appends the borrowed string to the given string.
+ pub fn append_to(&self, dest: &mut CssStringWriter) -> fmt::Result {
+ dest.write_str(self.0)
+ }
+
+ /// Returns true if the borrowed string is empty.
+ pub fn is_empty(&self) -> bool {
+ self.0.is_empty()
+ }
+}
+
+#[cfg(feature = "servo")]
+impl<'a> From<&'a str> for CssStringBorrow<'a> {
+ fn from(s: &'a str) -> Self {
+ CssStringBorrow(s)
+ }
+}
+
+#[cfg(feature = "servo")]
+impl<'a> From<&'a String> for CssStringBorrow<'a> {
+ fn from(s: &'a String) -> Self {
+ CssStringBorrow(&*s)
+ }
+}
diff --git a/components/style/style_adjuster.rs b/components/style/style_adjuster.rs
index 052d80dbe22..7f805bb3f5c 100644
--- a/components/style/style_adjuster.rs
+++ b/components/style/style_adjuster.rs
@@ -6,6 +6,7 @@
//! a computed style needs in order for it to adhere to the CSS spec.
use app_units::Au;
+use dom::TElement;
use properties::{self, CascadeFlags, ComputedValues, StyleBuilder};
use properties::longhands::display::computed_value::T as Display;
use properties::longhands::float::computed_value::T as Float;
@@ -50,13 +51,30 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
}
}
+ /// Whether we should skip any item-based display property blockification on
+ /// this element.
+ fn skip_item_display_fixup<E>(&self, element: Option<E>) -> bool
+ where
+ E: TElement,
+ {
+ if let Some(pseudo) = self.style.pseudo {
+ return pseudo.skip_item_display_fixup();
+ }
+
+ element.map_or(false, |e| e.skip_item_display_fixup())
+ }
+
+
/// Apply the blockification rules based on the table in CSS 2.2 section 9.7.
/// <https://drafts.csswg.org/css2/visuren.html#dis-pos-flo>
- fn blockify_if_necessary(
+ fn blockify_if_necessary<E>(
&mut self,
layout_parent_style: &ComputedValues,
- flags: CascadeFlags,
- ) {
+ element: Option<E>,
+ )
+ where
+ E: TElement,
+ {
let mut blockify = false;
macro_rules! blockify_if {
($if_what:expr) => {
@@ -66,8 +84,9 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
}
}
- if !flags.contains(CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP) {
- blockify_if!(flags.contains(CascadeFlags::IS_ROOT_ELEMENT));
+ let is_root = self.style.pseudo.is_none() && element.map_or(false, |e| e.is_root());
+ blockify_if!(is_root);
+ if !self.skip_item_display_fixup(element) {
blockify_if!(layout_parent_style.get_box().clone_display().is_item_container());
}
@@ -81,8 +100,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
}
let display = self.style.get_box().clone_display();
- let blockified_display =
- display.equivalent_block_display(flags.contains(CascadeFlags::IS_ROOT_ELEMENT));
+ let blockified_display = display.equivalent_block_display(is_root);
if display != blockified_display {
self.style.mutate_box().set_adjusted_display(
blockified_display,
@@ -477,12 +495,14 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
/// * suppress border and padding for ruby level containers,
/// * correct unicode-bidi.
#[cfg(feature = "gecko")]
- fn adjust_for_ruby(
+ fn adjust_for_ruby<E>(
&mut self,
layout_parent_style: &ComputedValues,
- flags: CascadeFlags,
- ) {
- use properties::CascadeFlags;
+ element: Option<E>,
+ )
+ where
+ E: TElement,
+ {
use properties::computed_value_flags::ComputedValueFlags;
use properties::longhands::unicode_bidi::computed_value::T as UnicodeBidi;
@@ -491,7 +511,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
if self.should_suppress_linebreak(layout_parent_style) {
self.style.flags.insert(ComputedValueFlags::SHOULD_SUPPRESS_LINEBREAK);
// Inlinify the display type if allowed.
- if !flags.contains(CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP) {
+ if !self.skip_item_display_fixup(element) {
let inline_display = self_display.inlinify();
if self_display != inline_display {
self.style.mutate_box().set_adjusted_display(inline_display, false);
@@ -531,16 +551,22 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
///
/// FIXME(emilio): This isn't technically a style adjustment thingie, could
/// it move somewhere else?
- fn adjust_for_visited(&mut self, flags: CascadeFlags) {
- use properties::CascadeFlags;
+ fn adjust_for_visited<E>(&mut self, element: Option<E>)
+ where
+ E: TElement,
+ {
use properties::computed_value_flags::ComputedValueFlags;
if !self.style.has_visited_style() {
return;
}
- let relevant_link_visited = if flags.contains(CascadeFlags::IS_LINK) {
- flags.contains(CascadeFlags::IS_VISITED_LINK)
+ let is_link_element =
+ self.style.pseudo.is_none() &&
+ element.map_or(false, |e| e.is_link());
+
+ let relevant_link_visited = if is_link_element {
+ element.unwrap().is_visited_link()
} else {
self.style.inherited_flags().contains(ComputedValueFlags::IS_RELEVANT_LINK_VISITED)
};
@@ -586,11 +612,35 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
/// When comparing to Gecko, this is similar to the work done by
/// `nsStyleContext::ApplyStyleFixups`, plus some parts of
/// `nsStyleSet::GetContext`.
- pub fn adjust(
+ pub fn adjust<E>(
&mut self,
layout_parent_style: &ComputedValues,
+ element: Option<E>,
flags: CascadeFlags,
- ) {
+ )
+ where
+ E: TElement,
+ {
+ if cfg!(debug_assertions) {
+ if element.and_then(|e| e.implemented_pseudo_element()).is_some() {
+ // It'd be nice to assert `self.style.pseudo == Some(&pseudo)`,
+ // but we do resolve ::-moz-list pseudos on ::before / ::after
+ // content, sigh.
+ debug_assert!(
+ self.style.pseudo.is_some(),
+ "Someone really messed up"
+ );
+ }
+ }
+ // FIXME(emilio): The apply_declarations callsite in Servo's
+ // animation, and the font stuff for Gecko
+ // (Stylist::compute_for_declarations) should pass an element to
+ // cascade(), then we can make this assertion hold everywhere.
+ // debug_assert!(
+ // element.is_some() || self.style.pseudo.is_some(),
+ // "Should always have an element around for non-pseudo styles"
+ // );
+
// Don't adjust visited styles, visited-dependent properties aren't
// affected by these adjustments and it'd be just wasted work anyway.
//
@@ -600,14 +650,14 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
return;
}
- self.adjust_for_visited(flags);
+ self.adjust_for_visited(element);
#[cfg(feature = "gecko")]
{
self.adjust_for_prohibited_display_contents();
self.adjust_for_fieldset_content(layout_parent_style);
}
self.adjust_for_top_layer();
- self.blockify_if_necessary(layout_parent_style, flags);
+ self.blockify_if_necessary(layout_parent_style, element);
self.adjust_for_position();
self.adjust_for_overflow();
#[cfg(feature = "gecko")]
@@ -627,7 +677,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
self.adjust_for_text_decoration_lines(layout_parent_style);
#[cfg(feature = "gecko")]
{
- self.adjust_for_ruby(layout_parent_style, flags);
+ self.adjust_for_ruby(layout_parent_style, element);
}
#[cfg(feature = "servo")]
{
diff --git a/components/style/style_resolver.rs b/components/style/style_resolver.rs
index ea3e8a6b9e3..b07dfb487b9 100644
--- a/components/style/style_resolver.rs
+++ b/components/style/style_resolver.rs
@@ -9,9 +9,8 @@ use context::{CascadeInputs, ElementCascadeInputs, StyleContext};
use data::{ElementStyles, EagerPseudoStyles};
use dom::TElement;
use log::LogLevel::Trace;
-use matching::{CascadeVisitedMode, MatchMethods};
-use properties::{AnimationRules, CascadeFlags, ComputedValues};
-use properties::cascade;
+use matching::MatchMethods;
+use properties::{AnimationRules, ComputedValues};
use properties::longhands::display::computed_value::T as Display;
use rule_tree::StrongRuleNode;
use selector_parser::{PseudoElement, SelectorImpl};
@@ -161,7 +160,8 @@ where
parent_style.map_or(false, |s| s.visited_style().is_some());
let visited_rules =
- if inside_link || self.element.is_link() {
+ if self.context.shared.visited_styles_enabled &&
+ (inside_link || self.element.is_link()) {
let visited_matching_results =
self.match_primary(VisitedHandlingMode::RelevantLinkVisited);
Some(visited_matching_results.rule_node)
@@ -291,29 +291,37 @@ where
layout_parent_style: Option<&ComputedValues>,
pseudo: Option<&PseudoElement>,
) -> ResolvedStyle {
- let mut style_if_visited = None;
- if parent_style.map_or(false, |s| s.visited_style().is_some()) ||
- inputs.visited_rules.is_some() {
- style_if_visited = Some(self.cascade_style(
- inputs.visited_rules.as_ref().or(inputs.rules.as_ref()),
- /* style_if_visited = */ None,
- parent_style,
- layout_parent_style,
- CascadeVisitedMode::Visited,
- pseudo,
- ));
- }
+ debug_assert!(
+ self.element.implemented_pseudo_element().is_none() || pseudo.is_none(),
+ "Pseudo-elements can't have other pseudos!"
+ );
+ debug_assert!(pseudo.map_or(true, |p| p.is_eager()));
- ResolvedStyle(
- self.cascade_style(
- inputs.rules.as_ref(),
- style_if_visited,
- parent_style,
- layout_parent_style,
- CascadeVisitedMode::Unvisited,
- pseudo,
- )
- )
+ let implemented_pseudo = self.element.implemented_pseudo_element();
+ let pseudo = pseudo.or(implemented_pseudo.as_ref());
+
+ let mut conditions = Default::default();
+ let values = self.context.shared.stylist.cascade_style_and_visited(
+ Some(self.element),
+ pseudo,
+ inputs,
+ &self.context.shared.guards,
+ parent_style,
+ parent_style,
+ layout_parent_style,
+ &self.context.thread_local.font_metrics_provider,
+ Some(&self.context.thread_local.rule_cache),
+ &mut conditions,
+ );
+
+ self.context.thread_local.rule_cache.insert_if_possible(
+ &self.context.shared.guards,
+ &values,
+ pseudo,
+ &conditions
+ );
+
+ ResolvedStyle(values)
}
/// Cascade the element and pseudo-element styles with the default parents.
@@ -469,7 +477,7 @@ where
) -> Option<StrongRuleNode> {
debug!("Match pseudo {:?} for {:?}, visited: {:?}",
self.element, pseudo_element, visited_handling);
- debug_assert!(pseudo_element.is_eager() || pseudo_element.is_lazy());
+ debug_assert!(pseudo_element.is_eager());
debug_assert!(self.element.implemented_pseudo_element().is_none(),
"Element pseudos can't have any other pseudo.");
@@ -524,86 +532,4 @@ where
Some(rule_node)
}
-
- fn cascade_style(
- &mut self,
- rules: Option<&StrongRuleNode>,
- style_if_visited: Option<Arc<ComputedValues>>,
- mut parent_style: Option<&ComputedValues>,
- layout_parent_style: Option<&ComputedValues>,
- cascade_visited: CascadeVisitedMode,
- pseudo: Option<&PseudoElement>,
- ) -> Arc<ComputedValues> {
- debug_assert!(
- self.element.implemented_pseudo_element().is_none() || pseudo.is_none(),
- "Pseudo-elements can't have other pseudos!"
- );
- debug_assert!(pseudo.map_or(true, |p| p.is_eager()));
-
- let mut cascade_flags = CascadeFlags::empty();
-
- if self.element.skip_root_and_item_based_display_fixup() ||
- pseudo.map_or(false, |p| p.skip_item_based_display_fixup()) {
- cascade_flags.insert(CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP);
- }
-
- if pseudo.is_none() && self.element.is_link() {
- cascade_flags.insert(CascadeFlags::IS_LINK);
- if self.element.is_visited_link() &&
- self.context.shared.visited_styles_enabled {
- cascade_flags.insert(CascadeFlags::IS_VISITED_LINK);
- }
- }
-
- if cascade_visited.visited_dependent_only() {
- // If this element is a link, we want its visited style to inherit
- // from the regular style of its parent, because only the
- // visitedness of the relevant link should influence style.
- if pseudo.is_some() || !self.element.is_link() {
- parent_style = parent_style.map(|s| {
- s.visited_style().unwrap_or(s)
- });
- }
- cascade_flags.insert(CascadeFlags::VISITED_DEPENDENT_ONLY);
- }
- if !self.element.is_native_anonymous() &&
- pseudo.is_none() &&
- self.element.is_root()
- {
- cascade_flags.insert(CascadeFlags::IS_ROOT_ELEMENT);
- }
-
- let implemented_pseudo = self.element.implemented_pseudo_element();
- let pseudo = pseudo.or(implemented_pseudo.as_ref());
-
- let mut conditions = Default::default();
- let values =
- cascade(
- self.context.shared.stylist.device(),
- pseudo,
- rules.unwrap_or(self.context.shared.stylist.rule_tree().root()),
- &self.context.shared.guards,
- parent_style,
- parent_style,
- layout_parent_style,
- style_if_visited,
- &self.context.thread_local.font_metrics_provider,
- cascade_flags,
- self.context.shared.quirks_mode(),
- Some(&self.context.thread_local.rule_cache),
- &mut conditions,
- );
-
- self.context
- .thread_local
- .rule_cache
- .insert_if_possible(
- &self.context.shared.guards,
- &values,
- pseudo,
- &conditions
- );
-
- values
- }
}
diff --git a/components/style/stylesheets/document_rule.rs b/components/style/stylesheets/document_rule.rs
index 61c8f2762ef..ab8382df069 100644
--- a/components/style/stylesheets/document_rule.rs
+++ b/components/style/stylesheets/document_rule.rs
@@ -13,8 +13,9 @@ use media_queries::Device;
use parser::{Parse, ParserContext};
use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use stylesheets::CssRules;
use values::specified::url::SpecifiedUrl;
@@ -40,10 +41,9 @@ impl DocumentRule {
}
impl ToCssWithGuard for DocumentRule {
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@-moz-document ")?;
- self.condition.to_css(dest)?;
+ self.condition.to_css(&mut CssWriter::new(dest))?;
dest.write_str(" {")?;
for rule in self.rules.read_with(guard).0.iter() {
dest.write_str(" ")?;
@@ -167,8 +167,10 @@ impl UrlMatchingFunction {
}
impl ToCss for UrlMatchingFunction {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
UrlMatchingFunction::Url(ref url) => {
url.to_css(dest)
@@ -219,8 +221,10 @@ impl DocumentCondition {
}
impl ToCss for DocumentCondition {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.0.iter();
let first = iter.next()
.expect("Empty DocumentCondition, should contain at least one URL matching function");
diff --git a/components/style/stylesheets/font_feature_values_rule.rs b/components/style/stylesheets/font_feature_values_rule.rs
index d2e6f7c87a1..35ac85c7469 100644
--- a/components/style/stylesheets/font_feature_values_rule.rs
+++ b/components/style/stylesheets/font_feature_values_rule.rs
@@ -16,8 +16,9 @@ use gecko_bindings::bindings::Gecko_AppendFeatureValueHashEntry;
use gecko_bindings::structs::{self, gfxFontFeatureValueSet, nsTArray};
use parser::{ParserContext, ParserErrorContext, Parse};
use shared_lock::{SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::{ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use stylesheets::CssRuleType;
use values::computed::font::FamilyName;
@@ -36,7 +37,10 @@ pub struct FFVDeclaration<T> {
}
impl<T: ToCss> ToCss for FFVDeclaration<T> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
serialize_identifier(&self.name.to_string(), dest)?;
dest.write_str(": ")?;
self.value.to_css(dest)?;
@@ -52,7 +56,7 @@ pub trait ToGeckoFontFeatureValues {
}
/// A @font-feature-values block declaration value that keeps one value.
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, ToCss)]
pub struct SingleValue(pub u32);
impl Parse for SingleValue {
@@ -66,12 +70,6 @@ impl Parse for SingleValue {
}
}
-impl ToCss for SingleValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- self.0.to_css(dest)
- }
-}
-
#[cfg(feature = "gecko")]
impl ToGeckoFontFeatureValues for SingleValue {
fn to_gecko_font_feature_values(&self, array: &mut nsTArray<u32>) {
@@ -106,7 +104,10 @@ impl Parse for PairValues {
}
impl ToCss for PairValues {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.0.to_css(dest)?;
if let Some(second) = self.1 {
dest.write_char(' ')?;
@@ -158,7 +159,10 @@ impl Parse for VectorValues {
}
impl ToCss for VectorValues {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.0.iter();
let first = iter.next();
if let Some(first) = first {
@@ -285,7 +289,13 @@ macro_rules! font_feature_values_blocks {
}
/// Prints font family names.
- pub fn font_family_to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ pub fn font_family_to_css<W>(
+ &self,
+ dest: &mut CssWriter<W>,
+ ) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.family_names.iter();
iter.next().unwrap().to_css(dest)?;
for val in iter {
@@ -296,7 +306,10 @@ macro_rules! font_feature_values_blocks {
}
/// Prints inside of `@font-feature-values` block.
- pub fn value_to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ pub fn value_to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
$(
if self.$ident.len() > 0 {
dest.write_str(concat!("@", $name, " {\n"))?;
@@ -347,13 +360,11 @@ macro_rules! font_feature_values_blocks {
}
impl ToCssWithGuard for FontFeatureValuesRule {
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write
- {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@font-feature-values ")?;
- self.font_family_to_css(dest)?;
+ self.font_family_to_css(&mut CssWriter::new(dest))?;
dest.write_str(" {\n")?;
- self.value_to_css(dest)?;
+ self.value_to_css(&mut CssWriter::new(dest))?;
dest.write_str("}")
}
}
diff --git a/components/style/stylesheets/import_rule.rs b/components/style/stylesheets/import_rule.rs
index 8568012099a..c72800b4517 100644
--- a/components/style/stylesheets/import_rule.rs
+++ b/components/style/stylesheets/import_rule.rs
@@ -9,8 +9,9 @@
use cssparser::SourceLocation;
use media_queries::MediaList;
use shared_lock::{DeepCloneWithLock, DeepCloneParams, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ToCss};
use stylesheets::{StylesheetContents, StylesheetInDocument};
use values::specified::url::SpecifiedUrl;
@@ -107,16 +108,14 @@ impl DeepCloneWithLock for ImportRule {
}
impl ToCssWithGuard for ImportRule {
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@import ")?;
- self.url.to_css(dest)?;
+ self.url.to_css(&mut CssWriter::new(dest))?;
match self.stylesheet.media(guard) {
Some(media) if !media.is_empty() => {
dest.write_str(" ")?;
- media.to_css(dest)?;
+ media.to_css(&mut CssWriter::new(dest))?;
}
_ => {},
};
diff --git a/components/style/stylesheets/keyframes_rule.rs b/components/style/stylesheets/keyframes_rule.rs
index 60d7ee3f175..fe52edd60be 100644
--- a/components/style/stylesheets/keyframes_rule.rs
+++ b/components/style/stylesheets/keyframes_rule.rs
@@ -14,8 +14,9 @@ use properties::LonghandIdSet;
use properties::longhands::transition_timing_function::single_value::SpecifiedValue as SpecifiedTimingFunction;
use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, SharedRwLock, SharedRwLockReadGuard, Locked, ToCssWithGuard};
-use std::fmt;
-use style_traits::{ParsingMode, ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ParseError, ParsingMode, StyleParseErrorKind, ToCss};
use stylesheets::{CssRuleType, StylesheetContents};
use stylesheets::rule_parser::VendorPrefix;
use values::{KeyframesName, serialize_percentage};
@@ -37,11 +38,9 @@ pub struct KeyframesRule {
impl ToCssWithGuard for KeyframesRule {
// Serialization of KeyframesRule is not specced.
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@keyframes ")?;
- self.name.to_css(dest)?;
+ self.name.to_css(&mut CssWriter::new(dest))?;
dest.write_str(" {")?;
let iter = self.keyframes.iter();
for lock in iter {
@@ -110,7 +109,10 @@ impl ::std::cmp::Ord for KeyframePercentage {
impl ::std::cmp::Eq for KeyframePercentage { }
impl ToCss for KeyframePercentage {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
serialize_percentage(self.0, dest)
}
}
@@ -147,7 +149,10 @@ impl KeyframePercentage {
pub struct KeyframeSelector(Vec<KeyframePercentage>);
impl ToCss for KeyframeSelector {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.0.iter();
iter.next().unwrap().to_css(dest)?;
for percentage in iter {
@@ -194,9 +199,8 @@ pub struct Keyframe {
}
impl ToCssWithGuard for Keyframe {
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
- self.selector.to_css(dest)?;
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
+ self.selector.to_css(&mut CssWriter::new(dest))?;
dest.write_str(" { ")?;
self.block.read_with(guard).to_css(dest)?;
dest.write_str(" }")?;
diff --git a/components/style/stylesheets/media_rule.rs b/components/style/stylesheets/media_rule.rs
index 4c468b44cf6..20aa4329693 100644
--- a/components/style/stylesheets/media_rule.rs
+++ b/components/style/stylesheets/media_rule.rs
@@ -12,8 +12,9 @@ use malloc_size_of::{MallocSizeOfOps, MallocUnconditionalShallowSizeOf};
use media_queries::MediaList;
use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ToCss};
use stylesheets::CssRules;
/// An [`@media`][media] urle.
@@ -42,10 +43,9 @@ impl MediaRule {
impl ToCssWithGuard for MediaRule {
// Serialization of MediaRule is not specced.
// https://drafts.csswg.org/cssom/#serialize-a-css-rule CSSMediaRule
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@media ")?;
- self.media_queries.read_with(guard).to_css(dest)?;
+ self.media_queries.read_with(guard).to_css(&mut CssWriter::new(dest))?;
self.rules.read_with(guard).to_css_block(guard, dest)
}
}
diff --git a/components/style/stylesheets/mod.rs b/components/style/stylesheets/mod.rs
index f419b9602ed..a5873c8eb48 100644
--- a/components/style/stylesheets/mod.rs
+++ b/components/style/stylesheets/mod.rs
@@ -31,6 +31,7 @@ use parser::{ParserContext, ParserErrorContext};
use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
use std::fmt;
+use str::CssStringWriter;
use style_traits::ParsingMode;
pub use self::counter_style_rule::CounterStyleRule;
@@ -347,8 +348,7 @@ impl DeepCloneWithLock for CssRule {
impl ToCssWithGuard for CssRule {
// https://drafts.csswg.org/cssom/#serialize-a-css-rule
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
match *self {
CssRule::Namespace(ref lock) => lock.read_with(guard).to_css(guard, dest),
CssRule::Import(ref lock) => lock.read_with(guard).to_css(guard, dest),
diff --git a/components/style/stylesheets/namespace_rule.rs b/components/style/stylesheets/namespace_rule.rs
index 6cfba1d7234..f28f2ba0881 100644
--- a/components/style/stylesheets/namespace_rule.rs
+++ b/components/style/stylesheets/namespace_rule.rs
@@ -7,7 +7,8 @@
use {Namespace, Prefix};
use cssparser::SourceLocation;
use shared_lock::{SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
+use std::fmt::{self, Write};
+use str::CssStringWriter;
/// A `@namespace` rule.
#[derive(Clone, Debug, PartialEq)]
@@ -23,8 +24,7 @@ pub struct NamespaceRule {
impl ToCssWithGuard for NamespaceRule {
// https://drafts.csswg.org/cssom/#serialize-a-css-rule CSSNamespaceRule
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@namespace ")?;
if let Some(ref prefix) = self.prefix {
dest.write_str(&*prefix.to_string())?;
diff --git a/components/style/stylesheets/page_rule.rs b/components/style/stylesheets/page_rule.rs
index ea8b93b1b8b..7b72f3e60c3 100644
--- a/components/style/stylesheets/page_rule.rs
+++ b/components/style/stylesheets/page_rule.rs
@@ -12,8 +12,8 @@ use malloc_size_of::{MallocSizeOf, MallocSizeOfOps, MallocUnconditionalShallowSi
use properties::PropertyDeclarationBlock;
use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use str::CssStringWriter;
/// A [`@page`][page] rule.
///
@@ -44,9 +44,7 @@ impl PageRule {
impl ToCssWithGuard for PageRule {
/// Serialization of PageRule is not specced, adapted from steps for
/// StyleRule.
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@page { ")?;
let declaration_block = self.block.read_with(guard);
declaration_block.to_css(dest)?;
diff --git a/components/style/stylesheets/rule_list.rs b/components/style/stylesheets/rule_list.rs
index fbceb6c1a0b..a6638e8bb17 100644
--- a/components/style/stylesheets/rule_list.rs
+++ b/components/style/stylesheets/rule_list.rs
@@ -9,7 +9,8 @@ use malloc_size_of::{MallocShallowSizeOf, MallocSizeOfOps};
use servo_arc::{Arc, RawOffsetArc};
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked};
use shared_lock::{SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
+use std::fmt::{self, Write};
+use str::CssStringWriter;
use stylesheets::{CssRule, RulesMutateError};
use stylesheets::loader::StylesheetLoader;
use stylesheets::rule_parser::State;
@@ -95,9 +96,7 @@ impl CssRules {
///
/// This should be speced into CSSOM spec at some point. See
/// <https://github.com/w3c/csswg-drafts/issues/1985>
- pub fn to_css_block<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W)
- -> fmt::Result where W: fmt::Write
- {
+ pub fn to_css_block(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str(" {")?;
for rule in self.0.iter() {
dest.write_str("\n ")?;
diff --git a/components/style/stylesheets/style_rule.rs b/components/style/stylesheets/style_rule.rs
index fbc391f6d2b..4a4ab3d58ed 100644
--- a/components/style/stylesheets/style_rule.rs
+++ b/components/style/stylesheets/style_rule.rs
@@ -12,8 +12,8 @@ use selector_parser::SelectorImpl;
use selectors::SelectorList;
use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use str::CssStringWriter;
/// A style rule, with selectors and declarations.
#[derive(Debug)]
@@ -67,9 +67,7 @@ impl StyleRule {
impl ToCssWithGuard for StyleRule {
/// https://drafts.csswg.org/cssom/#serialize-a-css-rule CSSStyleRule
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
- {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
use cssparser::ToCss;
// Step 1
diff --git a/components/style/stylesheets/supports_rule.rs b/components/style/stylesheets/supports_rule.rs
index d9870641e43..3780c18ede1 100644
--- a/components/style/stylesheets/supports_rule.rs
+++ b/components/style/stylesheets/supports_rule.rs
@@ -15,9 +15,10 @@ use servo_arc::Arc;
use shared_lock::{DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard};
#[allow(unused_imports)] use std::ascii::AsciiExt;
use std::ffi::{CStr, CString};
-use std::fmt;
+use std::fmt::{self, Write};
use std::str;
-use style_traits::{ToCss, ParseError};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ParseError, ToCss};
use stylesheets::{CssRuleType, CssRules};
/// An [`@supports`][supports] rule.
@@ -46,10 +47,9 @@ impl SupportsRule {
}
impl ToCssWithGuard for SupportsRule {
- fn to_css<W>(&self, guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@supports ")?;
- self.condition.to_css(dest)?;
+ self.condition.to_css(&mut CssWriter::new(dest))?;
self.rules.read_with(guard).to_css_block(guard, dest)
}
}
@@ -219,8 +219,9 @@ pub fn parse_condition_or_declaration<'i, 't>(input: &mut Parser<'i, 't>)
}
impl ToCss for SupportsCondition {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
match *self {
SupportsCondition::Not(ref cond) => {
@@ -276,7 +277,10 @@ impl ToCss for SupportsCondition {
pub struct Declaration(pub String);
impl ToCss for Declaration {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str(&self.0)
}
}
diff --git a/components/style/stylesheets/viewport_rule.rs b/components/style/stylesheets/viewport_rule.rs
index 6220d858745..e50d9f1720b 100644
--- a/components/style/stylesheets/viewport_rule.rs
+++ b/components/style/stylesheets/viewport_rule.rs
@@ -23,10 +23,11 @@ use shared_lock::{SharedRwLockReadGuard, StylesheetGuards, ToCssWithGuard};
#[allow(unused_imports)] use std::ascii::AsciiExt;
use std::borrow::Cow;
use std::cell::RefCell;
-use std::fmt;
+use std::fmt::{self, Write};
use std::iter::Enumerate;
use std::str::Chars;
-use style_traits::{PinchZoomFactor, ToCss, ParseError, StyleParseErrorKind};
+use str::CssStringWriter;
+use style_traits::{CssWriter, ParseError, PinchZoomFactor, StyleParseErrorKind, ToCss};
use style_traits::viewport::{Orientation, UserZoom, ViewportConstraints, Zoom};
use stylesheets::{StylesheetInDocument, Origin};
use values::computed::{Context, ToComputedValue};
@@ -100,7 +101,10 @@ macro_rules! declare_viewport_descriptor_inner {
}
impl ToCss for ViewportDescriptor {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
$(
ViewportDescriptor::$assigned_variant(ref val) => {
@@ -148,8 +152,9 @@ pub enum ViewportLength {
}
impl ToCss for ViewportLength {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
match *self {
ViewportLength::Specified(ref length) => length.to_css(dest),
@@ -254,7 +259,10 @@ impl ViewportDescriptorDeclaration {
}
impl ToCss for ViewportDescriptorDeclaration {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.descriptor.to_css(dest)?;
if self.important {
dest.write_str(" !important")?;
@@ -520,14 +528,13 @@ impl ViewportRule {
impl ToCssWithGuard for ViewportRule {
// Serialization of ViewportRule is not specced.
- fn to_css<W>(&self, _guard: &SharedRwLockReadGuard, dest: &mut W) -> fmt::Result
- where W: fmt::Write {
+ fn to_css(&self, _guard: &SharedRwLockReadGuard, dest: &mut CssStringWriter) -> fmt::Result {
dest.write_str("@viewport { ")?;
let mut iter = self.declarations.iter();
- iter.next().unwrap().to_css(dest)?;
+ iter.next().unwrap().to_css(&mut CssWriter::new(dest))?;
for declaration in iter {
dest.write_str(" ")?;
- declaration.to_css(dest)?;
+ declaration.to_css(&mut CssWriter::new(dest))?;
}
dest.write_str(" }")
}
diff --git a/components/style/stylist.rs b/components/style/stylist.rs
index 8234a0c7b3b..6ed2b36ac89 100644
--- a/components/style/stylist.rs
+++ b/components/style/stylist.rs
@@ -22,6 +22,7 @@ use malloc_size_of::MallocUnconditionalShallowSizeOf;
use media_queries::Device;
use properties::{self, CascadeFlags, ComputedValues};
use properties::{AnimationRules, PropertyDeclarationBlock};
+use rule_cache::{RuleCache, RuleCacheConditions};
use rule_tree::{CascadeLevel, RuleTree, StrongRuleNode, StyleSource};
use selector_map::{PrecomputedHashMap, SelectorMap, SelectorMapEntry};
use selector_parser::{SelectorImpl, PerPseudoElementMap, PseudoElement};
@@ -642,14 +643,19 @@ impl Stylist {
/// parent; otherwise, non-inherited properties are reset to their initial
/// values. The flow constructor uses this flag when constructing anonymous
/// flows.
- pub fn precomputed_values_for_pseudo(
+ ///
+ /// TODO(emilio): The type parameter could go away with a void type
+ /// implementing TElement.
+ pub fn precomputed_values_for_pseudo<E>(
&self,
guards: &StylesheetGuards,
pseudo: &PseudoElement,
parent: Option<&ComputedValues>,
- cascade_flags: CascadeFlags,
- font_metrics: &FontMetricsProvider
- ) -> Arc<ComputedValues> {
+ font_metrics: &FontMetricsProvider,
+ ) -> Arc<ComputedValues>
+ where
+ E: TElement,
+ {
debug_assert!(pseudo.is_precomputed());
let rule_node = self.rule_node_for_precomputed_pseudo(
@@ -658,11 +664,10 @@ impl Stylist {
None,
);
- self.precomputed_values_for_pseudo_with_rule_node(
+ self.precomputed_values_for_pseudo_with_rule_node::<E>(
guards,
pseudo,
parent,
- cascade_flags,
font_metrics,
rule_node
)
@@ -670,26 +675,31 @@ impl Stylist {
/// Computes the style for a given "precomputed" pseudo-element with
/// given rule node.
- pub fn precomputed_values_for_pseudo_with_rule_node(
+ ///
+ /// TODO(emilio): The type parameter could go away with a void type
+ /// implementing TElement.
+ pub fn precomputed_values_for_pseudo_with_rule_node<E>(
&self,
guards: &StylesheetGuards,
pseudo: &PseudoElement,
parent: Option<&ComputedValues>,
- cascade_flags: CascadeFlags,
font_metrics: &FontMetricsProvider,
- rule_node: StrongRuleNode
- ) -> Arc<ComputedValues> {
- self.compute_pseudo_element_style_with_inputs(
- &CascadeInputs {
- rules: Some(rule_node),
+ rules: StrongRuleNode
+ ) -> Arc<ComputedValues>
+ where
+ E: TElement,
+ {
+ self.compute_pseudo_element_style_with_inputs::<E>(
+ CascadeInputs {
+ rules: Some(rules),
visited_rules: None,
},
pseudo,
guards,
parent,
font_metrics,
- cascade_flags,
- ).unwrap()
+ None,
+ )
}
/// Returns the rule node for given precomputed pseudo-element.
@@ -730,53 +740,25 @@ impl Stylist {
}
/// Returns the style for an anonymous box of the given type.
+ ///
+ /// TODO(emilio): The type parameter could go away with a void type
+ /// implementing TElement.
#[cfg(feature = "servo")]
- pub fn style_for_anonymous(
+ pub fn style_for_anonymous<E>(
&self,
guards: &StylesheetGuards,
pseudo: &PseudoElement,
- parent_style: &ComputedValues
- ) -> Arc<ComputedValues> {
+ parent_style: &ComputedValues,
+ ) -> Arc<ComputedValues>
+ where
+ E: TElement,
+ {
use font_metrics::ServoMetricsProvider;
-
- // For most (but not all) pseudo-elements, we inherit all values from the parent.
- let inherit_all = match *pseudo {
- // Anonymous table flows shouldn't inherit their parents properties in order
- // to avoid doubling up styles such as transformations.
- PseudoElement::ServoAnonymousTableCell |
- PseudoElement::ServoAnonymousTableRow |
- PseudoElement::ServoText |
- PseudoElement::ServoInputText => false,
- PseudoElement::ServoAnonymousBlock |
-
- // For tables, we do want style to inherit, because TableWrapper is responsible
- // for handling clipping and scrolling, while Table is responsible for creating
- // stacking contexts. StackingContextCollectionFlags makes sure this is processed
- // properly.
- PseudoElement::ServoAnonymousTable |
- PseudoElement::ServoAnonymousTableWrapper |
-
- PseudoElement::ServoTableWrapper |
- PseudoElement::ServoInlineBlockWrapper |
- PseudoElement::ServoInlineAbsolute => true,
- PseudoElement::Before |
- PseudoElement::After |
- PseudoElement::Selection |
- PseudoElement::DetailsSummary |
- PseudoElement::DetailsContent => {
- unreachable!("That pseudo doesn't represent an anonymous box!")
- }
- };
- let mut cascade_flags = CascadeFlags::empty();
- if inherit_all {
- cascade_flags.insert(CascadeFlags::INHERIT_ALL);
- }
- self.precomputed_values_for_pseudo(
+ self.precomputed_values_for_pseudo::<E>(
guards,
&pseudo,
Some(parent_style),
- cascade_flags,
- &ServoMetricsProvider
+ &ServoMetricsProvider,
)
}
@@ -809,37 +791,34 @@ impl Stylist {
is_probe,
rule_inclusion,
matching_fn
- );
+ )?;
- self.compute_pseudo_element_style_with_inputs(
- &cascade_inputs,
+ Some(self.compute_pseudo_element_style_with_inputs(
+ cascade_inputs,
pseudo,
guards,
Some(parent_style),
font_metrics,
- CascadeFlags::empty(),
- )
+ Some(element),
+ ))
}
/// Computes a pseudo-element style lazily using the given CascadeInputs.
/// This can be used for truly lazy pseudo-elements or to avoid redoing
/// selector matching for eager pseudo-elements when we need to recompute
/// their style with a new parent style.
- pub fn compute_pseudo_element_style_with_inputs(
+ pub fn compute_pseudo_element_style_with_inputs<E>(
&self,
- inputs: &CascadeInputs,
+ inputs: CascadeInputs,
pseudo: &PseudoElement,
guards: &StylesheetGuards,
parent_style: Option<&ComputedValues>,
font_metrics: &FontMetricsProvider,
- cascade_flags: CascadeFlags,
- ) -> Option<Arc<ComputedValues>> {
- // We may have only visited rules in cases when we are actually
- // resolving, not probing, pseudo-element style.
- if inputs.rules.is_none() && inputs.visited_rules.is_none() {
- return None
- }
-
+ element: Option<E>,
+ ) -> Arc<ComputedValues>
+ where
+ E: TElement,
+ {
// FIXME(emilio): The lack of layout_parent_style here could be
// worrying, but we're probably dropping the display fixup for
// pseudos other than before and after, so it's probably ok.
@@ -852,16 +831,18 @@ impl Stylist {
// <fieldset style="display: contents">. That is, the computed value of
// display for the fieldset is "contents", even though it's not the used
// value, so we don't need to adjust in a different way anyway.
- Some(self.compute_style_with_inputs(
- inputs,
+ self.cascade_style_and_visited(
+ element,
Some(pseudo),
+ inputs,
guards,
parent_style,
parent_style,
parent_style,
font_metrics,
- cascade_flags,
- ))
+ /* rule_cache = */ None,
+ &mut RuleCacheConditions::default(),
+ )
}
/// Computes a style using the given CascadeInputs. This can be used to
@@ -879,34 +860,43 @@ impl Stylist {
///
/// is_link should be true if we're computing style for a link; that affects
/// how :visited handling is done.
- pub fn compute_style_with_inputs(
+ pub fn cascade_style_and_visited<E>(
&self,
- inputs: &CascadeInputs,
+ element: Option<E>,
pseudo: Option<&PseudoElement>,
+ inputs: CascadeInputs,
guards: &StylesheetGuards,
parent_style: Option<&ComputedValues>,
parent_style_ignoring_first_line: Option<&ComputedValues>,
layout_parent_style: Option<&ComputedValues>,
font_metrics: &FontMetricsProvider,
- cascade_flags: CascadeFlags
- ) -> Arc<ComputedValues> {
+ rule_cache: Option<&RuleCache>,
+ rule_cache_conditions: &mut RuleCacheConditions,
+ ) -> Arc<ComputedValues>
+ where
+ E: TElement,
+ {
+ debug_assert!(pseudo.is_some() || element.is_some(), "Huh?");
+
+ let cascade_flags =
+ pseudo.map_or(CascadeFlags::empty(), |p| p.cascade_flags());
+
// We need to compute visited values if we have visited rules or if our
// parent has visited values.
let mut visited_values = None;
if inputs.visited_rules.is_some() ||
parent_style.and_then(|s| s.visited_style()).is_some()
{
- // At this point inputs may have visited rules, or rules, or both,
- // or neither (e.g. if it's a text style it may have neither). So
- // we have to be a bit careful here.
+ // At this point inputs may have visited rules, or rules.
let rule_node = match inputs.visited_rules.as_ref() {
Some(rules) => rules,
- None => inputs.rules.as_ref().unwrap_or(self.rule_tree().root()),
+ None => inputs.rules.as_ref().unwrap_or(self.rule_tree.root()),
};
+
let inherited_style;
let inherited_style_ignoring_first_line;
let layout_parent_style_for_visited;
- if cascade_flags.contains(CascadeFlags::IS_LINK) {
+ if pseudo.is_none() && element.unwrap().is_link() {
// We just want to use our parent style as our parent.
inherited_style = parent_style;
inherited_style_ignoring_first_line = parent_style_ignoring_first_line;
@@ -928,7 +918,7 @@ impl Stylist {
});
}
- visited_values = Some(properties::cascade(
+ visited_values = Some(properties::cascade::<E>(
&self.device,
pseudo,
rule_node,
@@ -940,23 +930,22 @@ impl Stylist {
font_metrics,
cascade_flags | CascadeFlags::VISITED_DEPENDENT_ONLY,
self.quirks_mode,
- /* rule_cache = */ None,
- &mut Default::default(),
+ rule_cache,
+ rule_cache_conditions,
+ element,
));
}
- // We may not have non-visited rules, if we only had visited ones. In
- // that case we want to use the root rulenode for our non-visited rules.
- let rules = inputs.rules.as_ref().unwrap_or(self.rule_tree.root());
-
// Read the comment on `precomputed_values_for_pseudo` to see why it's
// difficult to assert that display: contents nodes never arrive here
// (tl;dr: It doesn't apply for replaced elements and such, but the
// computed value is still "contents").
- properties::cascade(
+ //
+ // FIXME(emilio): We should assert that it holds if pseudo.is_none()!
+ properties::cascade::<E>(
&self.device,
pseudo,
- rules,
+ inputs.rules.as_ref().unwrap_or(self.rule_tree.root()),
guards,
parent_style,
parent_style_ignoring_first_line,
@@ -965,8 +954,9 @@ impl Stylist {
font_metrics,
cascade_flags,
self.quirks_mode,
- /* rule_cache = */ None,
- &mut Default::default(),
+ rule_cache,
+ rule_cache_conditions,
+ element,
)
}
@@ -983,7 +973,7 @@ impl Stylist {
is_probe: bool,
rule_inclusion: RuleInclusion,
matching_fn: Option<&Fn(&PseudoElement) -> bool>,
- ) -> CascadeInputs
+ ) -> Option<CascadeInputs>
where
E: TElement
{
@@ -1020,7 +1010,6 @@ impl Stylist {
}
};
- let mut inputs = CascadeInputs::default();
let mut declarations = ApplicableDeclarationList::new();
let mut matching_context = MatchingContext::new(
MatchingMode::ForStatelessPseudoElement,
@@ -1043,19 +1032,14 @@ impl Stylist {
&mut set_selector_flags
);
- if !declarations.is_empty() {
- let rule_node =
- self.rule_tree.compute_rule_node(&mut declarations, guards);
- debug_assert!(rule_node != *self.rule_tree.root());
- inputs.rules = Some(rule_node);
+ if declarations.is_empty() && is_probe {
+ return None;
}
- if is_probe && inputs.rules.is_none() {
- // When probing, don't compute visited styles if we have no
- // unvisited styles.
- return inputs;
- }
+ let rules =
+ self.rule_tree.compute_rule_node(&mut declarations, guards);
+ let mut visited_rules = None;
if parent_style.visited_style().is_some() {
let mut declarations = ApplicableDeclarationList::new();
let mut matching_context =
@@ -1083,14 +1067,15 @@ impl Stylist {
let rule_node =
self.rule_tree.insert_ordered_rules_with_important(
declarations.drain().map(|a| a.order_and_level()),
- guards);
+ guards,
+ );
if rule_node != *self.rule_tree.root() {
- inputs.visited_rules = Some(rule_node);
+ visited_rules = Some(rule_node);
}
}
}
- inputs
+ Some(CascadeInputs { rules: Some(rules), visited_rules })
}
/// Set a given device, which may change the styles that apply to the
@@ -1236,7 +1221,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
- self.quirks_mode,
flags_setter,
CascadeLevel::UANormal
);
@@ -1246,7 +1230,7 @@ impl Stylist {
// Step 2: Presentational hints.
let length_before_preshints = applicable_declarations.len();
element.synthesize_presentational_hints_for_legacy_attributes(
- context.visited_handling,
+ context.visited_handling(),
applicable_declarations
);
if applicable_declarations.len() != length_before_preshints {
@@ -1274,7 +1258,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
- self.quirks_mode,
flags_setter,
CascadeLevel::UserNormal,
);
@@ -1305,7 +1288,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
- self.quirks_mode,
flags_setter,
CascadeLevel::AuthorNormal
);
@@ -1327,7 +1309,7 @@ impl Stylist {
// as `context`, write a test-case of :visited not working on
// Shadow DOM and fix it!
let mut matching_context = MatchingContext::new(
- context.matching_mode,
+ context.matching_mode(),
context.bloom_filter,
context.nth_index_cache.as_mut().map(|s| &mut **s),
stylist.quirks_mode,
@@ -1339,7 +1321,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
&mut matching_context,
- stylist.quirks_mode,
flags_setter,
CascadeLevel::AuthorNormal,
);
@@ -1356,7 +1337,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
- self.quirks_mode,
flags_setter,
CascadeLevel::AuthorNormal
);
@@ -1520,14 +1500,28 @@ impl Stylist {
}
/// Computes styles for a given declaration with parent_style.
- pub fn compute_for_declarations(
+ ///
+ /// FIXME(emilio): the lack of pseudo / cascade flags look quite dubious,
+ /// hopefully this is only used for some canvas font stuff.
+ ///
+ /// TODO(emilio): The type parameter can go away when
+ /// https://github.com/rust-lang/rust/issues/35121 is fixed.
+ pub fn compute_for_declarations<E>(
&self,
guards: &StylesheetGuards,
parent_style: &ComputedValues,
declarations: Arc<Locked<PropertyDeclarationBlock>>,
- ) -> Arc<ComputedValues> {
+ ) -> Arc<ComputedValues>
+ where
+ E: TElement,
+ {
use font_metrics::get_metrics_provider_for_product;
+ // FIXME(emilio): Why do we even need the rule node? We should probably
+ // just avoid allocating it and calling `apply_declarations` directly,
+ // maybe...
+ //
+ // Also the `vec!` is super-wasteful.
let v = vec![ApplicableDeclarationBlock::from_declarations(
declarations.clone(),
CascadeLevel::StyleAttributeNormal
@@ -1542,7 +1536,7 @@ impl Stylist {
let metrics = get_metrics_provider_for_product();
// FIXME(emilio): the pseudo bit looks quite dubious!
- properties::cascade(
+ properties::cascade::<E>(
&self.device,
/* pseudo = */ None,
&rule_node,
@@ -1556,20 +1550,24 @@ impl Stylist {
self.quirks_mode,
/* rule_cache = */ None,
&mut Default::default(),
+ /* element = */ None,
)
}
/// Accessor for a shared reference to the device.
+ #[inline]
pub fn device(&self) -> &Device {
&self.device
}
/// Accessor for a mutable reference to the device.
+ #[inline]
pub fn device_mut(&mut self) -> &mut Device {
&mut self.device
}
/// Accessor for a shared reference to the rule tree.
+ #[inline]
pub fn rule_tree(&self) -> &RuleTree {
&self.rule_tree
}
diff --git a/components/style/values/computed/align.rs b/components/style/values/computed/align.rs
index f3caade67a5..85f8f70cb25 100644
--- a/components/style/values/computed/align.rs
+++ b/components/style/values/computed/align.rs
@@ -7,7 +7,7 @@
//! https://drafts.csswg.org/css-align/
use std::fmt;
-use style_traits::ToCss;
+use style_traits::{CssWriter, ToCss};
use values::computed::{Context, ToComputedValue};
use values::specified;
@@ -26,7 +26,7 @@ pub struct JustifyItems {
}
impl ToCss for JustifyItems {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where W: fmt::Write,
{
self.computed.to_css(dest)
diff --git a/components/style/values/computed/background.rs b/components/style/values/computed/background.rs
index e71f208c984..7b7f7c4991b 100644
--- a/components/style/values/computed/background.rs
+++ b/components/style/values/computed/background.rs
@@ -6,8 +6,8 @@
use properties::animated_properties::RepeatableListAnimatable;
use properties::longhands::background_size::computed_value::T as BackgroundSizeList;
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::animated::{ToAnimatedValue, ToAnimatedZero};
use values::computed::{Context, ToComputedValue};
use values::computed::length::LengthOrPercentageOrAuto;
@@ -96,9 +96,9 @@ impl BackgroundRepeat {
}
impl ToCss for BackgroundRepeat {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
match (self.0, self.1) {
(RepeatKeyword::Repeat, RepeatKeyword::NoRepeat) => dest.write_str("repeat-x"),
diff --git a/components/style/values/computed/basic_shape.rs b/components/style/values/computed/basic_shape.rs
index 20dcffec9c6..17c39741c81 100644
--- a/components/style/values/computed/basic_shape.rs
+++ b/components/style/values/computed/basic_shape.rs
@@ -7,8 +7,8 @@
//!
//! [basic-shape]: https://drafts.csswg.org/css-shapes/#typedef-basic-shape
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::computed::{LengthOrPercentage, ComputedUrl, Image};
use values::generics::basic_shape::{BasicShape as GenericBasicShape};
use values::generics::basic_shape::{Circle as GenericCircle, ClippingShape as GenericClippingShape};
@@ -37,7 +37,10 @@ pub type Ellipse = GenericEllipse<LengthOrPercentage, LengthOrPercentage, Length
pub type ShapeRadius = GenericShapeRadius<LengthOrPercentage>;
impl ToCss for Circle {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("circle(")?;
self.radius.to_css(dest)?;
dest.write_str(" at ")?;
@@ -47,7 +50,10 @@ impl ToCss for Circle {
}
impl ToCss for Ellipse {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("ellipse(")?;
if (self.semiaxis_x, self.semiaxis_y) != Default::default() {
self.semiaxis_x.to_css(dest)?;
diff --git a/components/style/values/computed/color.rs b/components/style/values/computed/color.rs
index 6327e734626..314c4bed266 100644
--- a/components/style/values/computed/color.rs
+++ b/components/style/values/computed/color.rs
@@ -6,7 +6,7 @@
use cssparser::{Color as CSSParserColor, RGBA};
use std::fmt;
-use style_traits::ToCss;
+use style_traits::{CssWriter, ToCss};
use values::animated::ToAnimatedValue;
use values::animated::color::{Color as AnimatedColor, RGBA as AnimatedRGBA};
@@ -138,7 +138,7 @@ impl From<RGBA> for Color {
}
impl ToCss for Color {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
if self.is_numeric() {
self.color.to_css(dest)
} else if self.is_currentcolor() {
diff --git a/components/style/values/computed/font.rs b/components/style/values/computed/font.rs
index 407be16c203..20a41154ec9 100644
--- a/components/style/values/computed/font.rs
+++ b/components/style/values/computed/font.rs
@@ -19,7 +19,7 @@ use std::fmt::{self, Write};
use std::hash::{Hash, Hasher};
#[cfg(feature = "servo")]
use std::slice;
-use style_traits::{ToCss, ParseError};
+use style_traits::{CssWriter, ParseError, ToCss};
use values::CSSFloat;
use values::animated::{ToAnimatedValue, ToAnimatedZero};
use values::computed::{Context, NonNegativeLength, ToComputedValue};
@@ -201,7 +201,7 @@ impl FontSize {
}
impl ToCss for FontSize {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
self.size.to_css(dest)
}
}
@@ -257,7 +257,7 @@ impl MallocSizeOf for FontFamily {
}
impl ToCss for FontFamily {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
let mut iter = self.0.iter();
iter.next().unwrap().to_css(dest)?;
for family in iter {
@@ -279,7 +279,7 @@ pub struct FamilyName {
}
impl ToCss for FamilyName {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
match self.syntax {
FamilyNameSyntax::Quoted => {
dest.write_char('"')?;
@@ -488,7 +488,7 @@ impl SingleFontFamily {
}
impl ToCss for SingleFontFamily {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
match *self {
SingleFontFamily::FamilyName(ref name) => name.to_css(dest),
@@ -731,7 +731,7 @@ impl FontLanguageOverride {
}
impl ToCss for FontLanguageOverride {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
use std::str;
if self.0 == 0 {
diff --git a/components/style/values/computed/image.rs b/components/style/values/computed/image.rs
index 8972774aa77..93fa627a41d 100644
--- a/components/style/values/computed/image.rs
+++ b/components/style/values/computed/image.rs
@@ -9,8 +9,8 @@
use cssparser::RGBA;
use std::f32::consts::PI;
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::{Either, None_};
use values::computed::{Angle, ComputedUrl, Context, Length, LengthOrPercentage, NumberOrPercentage, ToComputedValue};
#[cfg(feature = "gecko")]
@@ -99,8 +99,13 @@ impl GenericLineDirection for LineDirection {
}
}
- fn to_css<W>(&self, dest: &mut W, compat_mode: CompatMode) -> fmt::Result
- where W: fmt::Write
+ fn to_css<W>(
+ &self,
+ dest: &mut CssWriter<W>,
+ compat_mode: CompatMode,
+ ) -> fmt::Result
+ where
+ W: Write,
{
match *self {
LineDirection::Angle(ref angle) => angle.to_css(dest),
diff --git a/components/style/values/computed/inherited_box.rs b/components/style/values/computed/inherited_box.rs
index 2fa4dd819a5..f6fe6ad7bf9 100644
--- a/components/style/values/computed/inherited_box.rs
+++ b/components/style/values/computed/inherited_box.rs
@@ -4,8 +4,8 @@
//! Computed values for inherited box
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::specified::Angle;
/// An angle rounded and normalized per https://drafts.csswg.org/css-images/#propdef-image-orientation
@@ -31,7 +31,10 @@ impl Orientation {
}
impl ToCss for Orientation {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
// Should agree with Angle::to_css.
match *self {
Orientation::Angle0 => dest.write_str("0deg"),
@@ -60,7 +63,10 @@ impl ImageOrientation {
}
impl ToCss for ImageOrientation {
- fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
ImageOrientation::FromImage => dest.write_str("from-image"),
ImageOrientation::AngleWithFlipped(angle, flipped) => {
diff --git a/components/style/values/computed/length.rs b/components/style/values/computed/length.rs
index a0a92c713c2..49db7201a39 100644
--- a/components/style/values/computed/length.rs
+++ b/components/style/values/computed/length.rs
@@ -6,9 +6,9 @@
use app_units::Au;
use ordered_float::NotNaN;
-use std::fmt;
+use std::fmt::{self, Write};
use std::ops::{Add, Neg};
-use style_traits::ToCss;
+use style_traits::{CssWriter, ToCss};
use style_traits::values::specified::AllowedNumericType;
use super::{Number, ToComputedValue, Context, Percentage};
use values::{Auto, CSSFloat, Either, ExtremumLength, None_, Normal, specified};
@@ -203,7 +203,10 @@ impl From<LengthOrPercentageOrNone> for Option<CalcLengthOrPercentage> {
}
impl ToCss for CalcLengthOrPercentage {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
use num_traits::Zero;
let (length, percentage) = match (self.length, self.percentage) {
@@ -738,7 +741,10 @@ impl CSSPixelLength {
impl ToCss for CSSPixelLength {
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.0.to_css(dest)?;
dest.write_str("px")
}
diff --git a/components/style/values/computed/mod.rs b/components/style/values/computed/mod.rs
index 050d101a16b..a559f4fbe87 100644
--- a/components/style/values/computed/mod.rs
+++ b/components/style/values/computed/mod.rs
@@ -15,12 +15,13 @@ use properties::{ComputedValues, LonghandId, StyleBuilder};
use rule_cache::RuleCacheConditions;
#[cfg(feature = "servo")]
use servo_url::ServoUrl;
-use std::{f32, fmt};
use std::cell::RefCell;
+use std::f32;
+use std::fmt::{self, Write};
#[cfg(feature = "servo")]
use std::sync::Arc;
-use style_traits::ToCss;
-use style_traits::cursor::Cursor;
+use style_traits::{CssWriter, ToCss};
+use style_traits::cursor::CursorKind;
use super::{CSSFloat, CSSInteger};
use super::generics::{GreaterThanOrEqualToOne, NonNegative};
use super::generics::grid::{GridLine as GenericGridLine, TrackBreadth as GenericTrackBreadth};
@@ -61,6 +62,9 @@ pub use self::list::ListStyleType;
pub use self::outline::OutlineStyle;
pub use self::percentage::Percentage;
pub use self::position::{Position, GridAutoFlow, GridTemplateAreas};
+pub use self::pointing::Cursor;
+#[cfg(feature = "gecko")]
+pub use self::pointing::CursorImage;
pub use self::svg::{SVGLength, SVGOpacity, SVGPaint, SVGPaintKind};
pub use self::svg::{SVGPaintOrder, SVGStrokeDashArray, SVGWidth};
pub use self::svg::MozContextProperties;
@@ -90,6 +94,7 @@ pub mod length;
pub mod list;
pub mod outline;
pub mod percentage;
+pub mod pointing;
pub mod position;
pub mod rect;
pub mod svg;
@@ -404,7 +409,7 @@ trivial_to_computed_value!(u16);
trivial_to_computed_value!(u32);
trivial_to_computed_value!(Atom);
trivial_to_computed_value!(BorderStyle);
-trivial_to_computed_value!(Cursor);
+trivial_to_computed_value!(CursorKind);
trivial_to_computed_value!(Namespace);
trivial_to_computed_value!(String);
trivial_to_computed_value!(Box<str>);
@@ -527,7 +532,10 @@ pub struct ClipRect {
}
impl ToCss for ClipRect {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("rect(")?;
if let Some(top) = self.top {
top.to_css(dest)?;
@@ -623,7 +631,10 @@ impl ComputedUrl {
#[cfg(feature = "servo")]
impl ToCss for ComputedUrl {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let string = match *self {
ComputedUrl::Valid(ref url) => url.as_str(),
ComputedUrl::Invalid(ref invalid_string) => invalid_string,
diff --git a/components/style/values/computed/percentage.rs b/components/style/values/computed/percentage.rs
index 1bc28a13488..842019f03c8 100644
--- a/components/style/values/computed/percentage.rs
+++ b/components/style/values/computed/percentage.rs
@@ -5,7 +5,7 @@
//! Computed percentages.
use std::fmt;
-use style_traits::ToCss;
+use style_traits::{CssWriter, ToCss};
use values::{CSSFloat, serialize_percentage};
/// A computed percentage.
@@ -35,7 +35,7 @@ impl Percentage {
}
impl ToCss for Percentage {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
W: fmt::Write,
{
diff --git a/components/style/values/computed/pointing.rs b/components/style/values/computed/pointing.rs
new file mode 100644
index 00000000000..b14f22dec9c
--- /dev/null
+++ b/components/style/values/computed/pointing.rs
@@ -0,0 +1,140 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+//! Computed values for Pointing properties.
+//!
+//! https://drafts.csswg.org/css-ui/#pointing-keyboard
+
+use cssparser::Parser;
+use parser::{Parse, ParserContext};
+use selectors::parser::SelectorParseErrorKind;
+#[cfg(feature = "gecko")]
+use std::fmt::{self, Write};
+#[cfg(feature = "gecko")]
+use style_traits::{CssWriter, ToCss};
+use style_traits::ParseError;
+use style_traits::cursor::CursorKind;
+
+/// The computed value for the `cursor` property.
+///
+/// https://drafts.csswg.org/css-ui/#cursor
+pub use values::specified::pointing::Cursor;
+#[cfg(feature = "gecko")]
+pub use values::specified::pointing::CursorImage;
+#[cfg(feature = "gecko")]
+use values::specified::url::SpecifiedUrl;
+
+impl Cursor {
+ /// Set `cursor` to `auto`
+ #[cfg(feature = "servo")]
+ #[inline]
+ pub fn auto() -> Self {
+ Cursor(CursorKind::Auto)
+ }
+
+ /// Set `cursor` to `auto`
+ #[cfg(feature = "gecko")]
+ #[inline]
+ pub fn auto() -> Self {
+ Self {
+ images: vec![].into_boxed_slice(),
+ keyword: CursorKind::Auto
+ }
+ }
+}
+
+impl Parse for Cursor {
+ /// cursor: [auto | default | ...]
+ #[cfg(feature = "servo")]
+ fn parse<'i, 't>(
+ context: &ParserContext,
+ input: &mut Parser<'i, 't>
+ ) -> Result<Self, ParseError<'i>> {
+ Ok(Cursor(CursorKind::parse(context, input)?))
+ }
+
+ /// cursor: [<url> [<number> <number>]?]# [auto | default | ...]
+ #[cfg(feature = "gecko")]
+ fn parse<'i, 't>(
+ context: &ParserContext,
+ input: &mut Parser<'i, 't>
+ ) -> Result<Self, ParseError<'i>> {
+ let mut images = vec![];
+ loop {
+ match input.try(|input| CursorImage::parse_image(context, input)) {
+ Ok(mut image) => {
+ image.url.build_image_value();
+ images.push(image)
+ }
+ Err(_) => break,
+ }
+ input.expect_comma()?;
+ }
+ Ok(Self {
+ images: images.into_boxed_slice(),
+ keyword: CursorKind::parse(context, input)?,
+ })
+ }
+}
+
+#[cfg(feature = "gecko")]
+impl ToCss for Cursor {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
+ for url in &*self.images {
+ url.to_css(dest)?;
+ dest.write_str(", ")?;
+ }
+ self.keyword.to_css(dest)
+ }
+}
+
+impl Parse for CursorKind {
+ fn parse<'i, 't>(
+ _context: &ParserContext,
+ input: &mut Parser<'i, 't>
+ ) -> Result<Self, ParseError<'i>> {
+ let location = input.current_source_location();
+ let ident = input.expect_ident()?;
+ CursorKind::from_css_keyword(&ident)
+ .map_err(|_| location.new_custom_error(
+ SelectorParseErrorKind::UnexpectedIdent(ident.clone())))
+ }
+}
+
+#[cfg(feature = "gecko")]
+impl CursorImage {
+ fn parse_image<'i, 't>(
+ context: &ParserContext,
+ input: &mut Parser<'i, 't>
+ ) -> Result<Self, ParseError<'i>> {
+ Ok(Self {
+ url: SpecifiedUrl::parse(context, input)?,
+ // FIXME(emilio): Should use Number::parse to handle calc() correctly.
+ hotspot: match input.try(|input| input.expect_number()) {
+ Ok(number) => Some((number, input.expect_number()?)),
+ Err(_) => None,
+ },
+ })
+ }
+}
+
+#[cfg(feature = "gecko")]
+impl ToCss for CursorImage {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
+ self.url.to_css(dest)?;
+ if let Some((x, y)) = self.hotspot {
+ dest.write_str(" ")?;
+ x.to_css(dest)?;
+ dest.write_str(" ")?;
+ y.to_css(dest)?;
+ }
+ Ok(())
+ }
+}
diff --git a/components/style/values/computed/position.rs b/components/style/values/computed/position.rs
index ed6a308151f..abd3522382d 100644
--- a/components/style/values/computed/position.rs
+++ b/components/style/values/computed/position.rs
@@ -7,8 +7,8 @@
//!
//! [position]: https://drafts.csswg.org/css-backgrounds-3/#position
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::computed::{LengthOrPercentage, Percentage};
use values::generics::position::Position as GenericPosition;
pub use values::specified::position::{GridAutoFlow, GridTemplateAreas};
@@ -40,7 +40,10 @@ impl Position {
}
impl ToCss for Position {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.horizontal.to_css(dest)?;
dest.write_str(" ")?;
self.vertical.to_css(dest)
diff --git a/components/style/values/computed/text.rs b/components/style/values/computed/text.rs
index 27c198a46a5..123f735d513 100644
--- a/components/style/values/computed/text.rs
+++ b/components/style/values/computed/text.rs
@@ -6,8 +6,8 @@
#[cfg(feature = "servo")]
use properties::StyleBuilder;
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::{CSSInteger, CSSFloat};
use values::animated::ToAnimatedZero;
use values::computed::{NonNegativeLength, NonNegativeNumber};
@@ -66,7 +66,10 @@ impl TextOverflow {
}
impl ToCss for TextOverflow {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.sides_are_logical {
debug_assert!(self.first == TextOverflowSide::Clip);
self.second.to_css(dest)?;
@@ -80,7 +83,10 @@ impl ToCss for TextOverflow {
}
impl ToCss for TextDecorationLine {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut has_any = false;
macro_rules! write_value {
diff --git a/components/style/values/computed/time.rs b/components/style/values/computed/time.rs
index a90a0935a8e..cef128af4a8 100644
--- a/components/style/values/computed/time.rs
+++ b/components/style/values/computed/time.rs
@@ -4,8 +4,8 @@
//! Computed time values.
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::CSSFloat;
/// A computed `<time>` value.
@@ -36,9 +36,9 @@ impl Time {
}
impl ToCss for Time {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
self.seconds().to_css(dest)?;
dest.write_str("s")
diff --git a/components/style/values/generics/basic_shape.rs b/components/style/values/generics/basic_shape.rs
index a2f0eb08971..07881a3a103 100644
--- a/components/style/values/generics/basic_shape.rs
+++ b/components/style/values/generics/basic_shape.rs
@@ -5,8 +5,8 @@
//! CSS handling for the [`basic-shape`](https://drafts.csswg.org/css-shapes/#typedef-basic-shape)
//! types that are generic over their `ToCss` implementations.
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::animated::{Animate, Procedure, ToAnimatedZero};
use values::distance::{ComputeSquaredDistance, SquaredDistance};
use values::generics::border::BorderRadius;
@@ -152,7 +152,10 @@ impl<B, T, U> ToAnimatedZero for ShapeSource<B, T, U> {
impl<L> ToCss for InsetRect<L>
where L: ToCss + PartialEq
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("inset(")?;
self.rect.to_css(dest)?;
if let Some(ref radius) = self.round {
@@ -210,7 +213,10 @@ where
}
impl<L: ToCss> ToCss for Polygon<L> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("polygon(")?;
if self.fill != FillRule::default() {
self.fill.to_css(dest)?;
diff --git a/components/style/values/generics/border.rs b/components/style/values/generics/border.rs
index 9237d060ef0..00cfe33ab62 100644
--- a/components/style/values/generics/border.rs
+++ b/components/style/values/generics/border.rs
@@ -4,8 +4,8 @@
//! Generic types for CSS values related to borders.
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::generics::rect::Rect;
use values::generics::size::Size;
@@ -84,8 +84,9 @@ impl<N> From<N> for BorderImageSlice<N>
impl<N> ToCss for BorderImageSlice<N>
where N: PartialEq + ToCss,
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
self.offsets.to_css(dest)?;
if self.fill {
@@ -118,8 +119,13 @@ impl<L> BorderRadius<L>
{
/// Serialises two given rects following the syntax of the `border-radius``
/// property.
- pub fn serialize_rects<W>(widths: Rect<&L>, heights: Rect<&L>, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ pub fn serialize_rects<W>(
+ widths: Rect<&L>,
+ heights: Rect<&L>,
+ dest: &mut CssWriter<W>,
+ ) -> fmt::Result
+ where
+ W: Write,
{
widths.to_css(dest)?;
if widths.0 != heights.0 || widths.1 != heights.1 || widths.2 != heights.2 || widths.3 != heights.3 {
@@ -133,7 +139,10 @@ impl<L> BorderRadius<L>
impl<L> ToCss for BorderRadius<L>
where L: PartialEq + ToCss
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let BorderRadius {
top_left: BorderCornerRadius(ref tl),
top_right: BorderCornerRadius(ref tr),
diff --git a/components/style/values/generics/counters.rs b/components/style/values/generics/counters.rs
index c6ea4425a39..127f94ac45d 100644
--- a/components/style/values/generics/counters.rs
+++ b/components/style/values/generics/counters.rs
@@ -5,7 +5,7 @@
//! Generic types for counters-related CSS values.
use std::fmt;
-use style_traits::ToCss;
+use style_traits::{CssWriter, ToCss};
use values::CustomIdent;
/// A generic value for the `counter-increment` property.
@@ -27,7 +27,7 @@ where
I: ToCss,
{
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
W: fmt::Write,
{
diff --git a/components/style/values/generics/effects.rs b/components/style/values/generics/effects.rs
index ff77556d253..b4fcbb0c505 100644
--- a/components/style/values/generics/effects.rs
+++ b/components/style/values/generics/effects.rs
@@ -4,8 +4,8 @@
//! Generic types for CSS values related to effects.
-use std::fmt;
-use style_traits::values::{SequenceWriter, ToCss};
+use std::fmt::{self, Write};
+use style_traits::values::{CssWriter, SequenceWriter, ToCss};
#[cfg(feature = "gecko")]
use values::specified::url::SpecifiedUrl;
@@ -88,9 +88,9 @@ where
BlurShapeLength: ToCss,
ShapeLength: ToCss,
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
{
let mut writer = SequenceWriter::new(&mut *dest, " ");
diff --git a/components/style/values/generics/grid.rs b/components/style/values/generics/grid.rs
index 95e1f1d500e..dab8b0f3e9d 100644
--- a/components/style/values/generics/grid.rs
+++ b/components/style/values/generics/grid.rs
@@ -7,8 +7,9 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
-use std::{fmt, mem, usize};
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::{mem, usize};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::{CSSFloat, CustomIdent};
use values::computed::{Context, ToComputedValue};
use values::specified;
@@ -49,7 +50,10 @@ impl<Integer> ToCss for GridLine<Integer>
where
Integer: ToCss,
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.is_auto() {
return dest.write_str("auto")
}
@@ -230,7 +234,10 @@ impl<L: PartialEq> TrackSize<L> {
}
impl<L: ToCss> ToCss for TrackSize<L> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
TrackSize::Breadth(ref breadth) => breadth.to_css(dest),
TrackSize::Minmax(ref min, ref max) => {
@@ -315,10 +322,10 @@ pub fn concat_serialize_idents<W>(
suffix: &str,
slice: &[CustomIdent],
sep: &str,
- dest: &mut W,
+ dest: &mut CssWriter<W>,
) -> fmt::Result
where
- W: fmt::Write
+ W: Write,
{
if let Some((ref first, rest)) = slice.split_first() {
dest.write_str(prefix)?;
@@ -385,7 +392,10 @@ pub struct TrackRepeat<L, I> {
}
impl<L: ToCss, I: ToCss> ToCss for TrackRepeat<L, I> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("repeat(")?;
self.count.to_css(dest)?;
dest.write_str(", ")?;
@@ -503,7 +513,10 @@ pub struct TrackList<LengthOrPercentage, Integer> {
}
impl<L: ToCss, I: ToCss> ToCss for TrackList<L, I> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let auto_idx = match self.list_type {
TrackListType::Auto(i) => i as usize,
_ => usize::MAX,
@@ -614,7 +627,10 @@ impl Parse for LineNameList {
}
impl ToCss for LineNameList {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("subgrid")?;
let fill_idx = self.fill_idx.map(|v| v as usize).unwrap_or(usize::MAX);
for (i, names) in self.names.iter().enumerate() {
diff --git a/components/style/values/generics/image.rs b/components/style/values/generics/image.rs
index f7329cf4def..d74c05ae81d 100644
--- a/components/style/values/generics/image.rs
+++ b/components/style/values/generics/image.rs
@@ -10,8 +10,8 @@ use Atom;
use cssparser::serialize_identifier;
use custom_properties;
use servo_arc::Arc;
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
/// An [image].
///
@@ -143,7 +143,10 @@ pub struct PaintWorklet {
trivial_to_computed_value!(PaintWorklet);
impl ToCss for PaintWorklet {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("paint(")?;
serialize_identifier(&*self.name.to_string(), dest)?;
for argument in &self.arguments {
@@ -169,28 +172,23 @@ pub struct MozImageRect<NumberOrPercentage, MozImageRectUrl> {
}
impl<G, R, U> fmt::Debug for Image<G, R, U>
- where G: fmt::Debug, R: fmt::Debug, U: fmt::Debug + ToCss
+where
+ G: ToCss,
+ R: ToCss,
+ U: ToCss,
{
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- match *self {
- Image::Url(ref url) => url.to_css(f),
- Image::Gradient(ref grad) => grad.fmt(f),
- Image::Rect(ref rect) => rect.fmt(f),
- #[cfg(feature = "servo")]
- Image::PaintWorklet(ref paint_worklet) => paint_worklet.fmt(f),
- Image::Element(ref selector) => {
- f.write_str("-moz-element(#")?;
- serialize_identifier(&selector.to_string(), f)?;
- f.write_str(")")
- },
- }
+ self.to_css(&mut CssWriter::new(f))
}
}
impl<G, R, U> ToCss for Image<G, R, U>
where G: ToCss, R: ToCss, U: ToCss
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
Image::Url(ref url) => url.to_css(dest),
Image::Gradient(ref gradient) => gradient.to_css(dest),
@@ -209,7 +207,10 @@ impl<G, R, U> ToCss for Image<G, R, U>
impl<D, L, LoP, P, C, A> ToCss for Gradient<D, L, LoP, P, C, A>
where D: LineDirection, L: ToCss, LoP: ToCss, P: ToCss, C: ToCss, A: ToCss
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match self.compat_mode {
CompatMode::WebKit => dest.write_str("-webkit-")?,
CompatMode::Moz => dest.write_str("-moz-")?,
@@ -283,17 +284,17 @@ pub trait LineDirection {
fn points_downwards(&self, compat_mode: CompatMode) -> bool;
/// Serialises this direction according to the compatibility mode.
- fn to_css<W>(&self, dest: &mut W, compat_mode: CompatMode) -> fmt::Result
- where W: fmt::Write;
+ fn to_css<W>(&self, dest: &mut CssWriter<W>, compat_mode: CompatMode) -> fmt::Result
+ where W: Write;
}
impl<L> ToCss for Circle<L>
where
L: ToCss,
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
match *self {
Circle::Extent(ShapeExtent::FarthestCorner) |
diff --git a/components/style/values/generics/mod.rs b/components/style/values/generics/mod.rs
index c2a20081c98..263db6890d2 100644
--- a/components/style/values/generics/mod.rs
+++ b/components/style/values/generics/mod.rs
@@ -8,8 +8,9 @@
use counter_style::{Symbols, parse_counter_style_name};
use cssparser::Parser;
use parser::{Parse, ParserContext};
-use std::fmt;
-use style_traits::{Comma, OneOrMoreSeparated, ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{Comma, CssWriter, OneOrMoreSeparated, ParseError};
+use style_traits::{StyleParseErrorKind, ToCss};
use super::CustomIdent;
pub mod background;
@@ -144,7 +145,10 @@ impl<T> OneOrMoreSeparated for FontSettingTag<T> {
}
impl<T: ToCss> ToCss for FontSettingTag<T> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
use byteorder::{BigEndian, ByteOrder};
use std::str;
@@ -231,7 +235,10 @@ pub struct FontSettingTagInt(pub u32);
pub struct FontSettingTagFloat(pub f32);
impl ToCss for FontSettingTagInt {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match self.0 {
1 => Ok(()),
0 => dest.write_str(" off"),
@@ -273,7 +280,10 @@ impl Parse for FontSettingTagFloat {
}
impl ToCss for FontSettingTagFloat {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str(" ")?;
self.0.to_css(dest)
}
diff --git a/components/style/values/generics/rect.rs b/components/style/values/generics/rect.rs
index fd72fa5b805..028ca5b231e 100644
--- a/components/style/values/generics/rect.rs
+++ b/components/style/values/generics/rect.rs
@@ -6,8 +6,8 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
-use std::fmt;
-use style_traits::{ToCss, ParseError};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, ToCss};
/// A CSS value made of four components, where its `ToCss` impl will try to
/// serialize as few components as possible, like for example in `border-width`.
@@ -68,8 +68,9 @@ impl<T> Parse for Rect<T>
impl<T> ToCss for Rect<T>
where T: PartialEq + ToCss
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
self.0.to_css(dest)?;
let same_vertical = self.0 == self.2;
diff --git a/components/style/values/generics/size.rs b/components/style/values/generics/size.rs
index ed5b7a516f7..f8c691a9a23 100644
--- a/components/style/values/generics/size.rs
+++ b/components/style/values/generics/size.rs
@@ -7,8 +7,8 @@
use cssparser::Parser;
use euclid::Size2D;
use parser::ParserContext;
-use std::fmt;
-use style_traits::{ToCss, ParseError};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, ToCss};
use values::animated::ToAnimatedValue;
/// A generic size, for `border-*-radius` longhand properties, or
@@ -56,9 +56,9 @@ impl<L> ToCss for Size<L>
where L:
ToCss + PartialEq,
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W:
- fmt::Write
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
self.0.width.to_css(dest)?;
diff --git a/components/style/values/generics/svg.rs b/components/style/values/generics/svg.rs
index 0d0a60d61ce..f1c8278ee6e 100644
--- a/components/style/values/generics/svg.rs
+++ b/components/style/values/generics/svg.rs
@@ -6,8 +6,8 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
-use std::fmt;
-use style_traits::{ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::{Either, None_};
use values::computed::NumberOrPercentage;
use values::computed::length::LengthOrPercentage;
@@ -209,7 +209,10 @@ pub enum SVGStrokeDashArray<LengthType> {
}
impl<LengthType> ToCss for SVGStrokeDashArray<LengthType> where LengthType: ToCss {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match self {
&SVGStrokeDashArray::Values(ref values) => {
let mut iter = values.iter();
diff --git a/components/style/values/generics/transform.rs b/components/style/values/generics/transform.rs
index 06ec91c25a5..7c2bb57546e 100644
--- a/components/style/values/generics/transform.rs
+++ b/components/style/values/generics/transform.rs
@@ -7,8 +7,8 @@
use app_units::Au;
use euclid::{self, Rect, Transform3D};
use num_traits::Zero;
-use std::fmt;
-use style_traits::ToCss;
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ToCss};
use values::{computed, CSSFloat};
use values::computed::length::Length as ComputedLength;
use values::computed::length::LengthOrPercentage as ComputedLengthOrPercentage;
@@ -30,7 +30,8 @@ pub struct Matrix<T, U = T> {
#[allow(missing_docs)]
#[cfg_attr(rustfmt, rustfmt_skip)]
-#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
+#[css(comma, function = "matrix3d")]
+#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue, ToCss)]
pub struct Matrix3D<T, U = T, V = T> {
pub m11: T, pub m12: T, pub m13: T, pub m14: T,
pub m21: T, pub m22: T, pub m23: T, pub m24: T,
@@ -136,9 +137,9 @@ where
Integer: ToCss,
Number: ToCss,
{
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
match *self {
TimingFunction::Keyword(keyword) => keyword.to_css(dest),
@@ -191,7 +192,7 @@ impl TimingKeyword {
}
}
-#[derive(Clone, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
+#[derive(Clone, Debug, MallocSizeOf, PartialEq, ToComputedValue, ToCss)]
/// A single operation in the list of a `transform` value
pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, LengthOrPercentage, LoPoNumber> {
/// Represents a 2D 2x3 matrix.
@@ -200,31 +201,37 @@ pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, Leng
/// For `moz-transform`.
PrefixedMatrix(Matrix<Number, LoPoNumber>),
/// Represents a 3D 4x4 matrix.
- #[allow(missing_docs)]
Matrix3D(Matrix3D<Number>),
/// Represents a 3D 4x4 matrix with percentage and length values.
/// For `moz-transform`.
- #[allow(missing_docs)]
PrefixedMatrix3D(Matrix3D<Number, LoPoNumber, LengthOrNumber>),
/// A 2D skew.
///
/// If the second angle is not provided it is assumed zero.
///
/// Syntax can be skew(angle) or skew(angle, angle)
+ #[css(comma, function)]
Skew(Angle, Option<Angle>),
/// skewX(angle)
+ #[css(function = "skewX")]
SkewX(Angle),
/// skewY(angle)
+ #[css(function = "skewY")]
SkewY(Angle),
/// translate(x, y) or translate(x)
+ #[css(comma, function)]
Translate(LengthOrPercentage, Option<LengthOrPercentage>),
/// translateX(x)
+ #[css(function = "translateX")]
TranslateX(LengthOrPercentage),
/// translateY(y)
+ #[css(function = "translateY")]
TranslateY(LengthOrPercentage),
/// translateZ(z)
+ #[css(function = "translateZ")]
TranslateZ(Length),
/// translate3d(x, y, z)
+ #[css(comma, function = "translate3d")]
Translate3D(LengthOrPercentage, LengthOrPercentage, Length),
/// A 2D scaling factor.
///
@@ -234,28 +241,38 @@ pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, Leng
/// Negative values are allowed and flip the element.
///
/// Syntax can be scale(factor) or scale(factor, factor)
+ #[css(comma, function)]
Scale(Number, Option<Number>),
/// scaleX(factor)
+ #[css(function = "scaleX")]
ScaleX(Number),
/// scaleY(factor)
+ #[css(function = "scaleY")]
ScaleY(Number),
/// scaleZ(factor)
+ #[css(function = "scaleZ")]
ScaleZ(Number),
/// scale3D(factorX, factorY, factorZ)
+ #[css(comma, function = "scale3d")]
Scale3D(Number, Number, Number),
/// Describes a 2D Rotation.
///
/// In a 3D scene `rotate(angle)` is equivalent to `rotateZ(angle)`.
+ #[css(function)]
Rotate(Angle),
/// Rotation in 3D space around the x-axis.
+ #[css(function = "rotateX")]
RotateX(Angle),
/// Rotation in 3D space around the y-axis.
+ #[css(function = "rotateY")]
RotateY(Angle),
/// Rotation in 3D space around the z-axis.
+ #[css(function = "rotateZ")]
RotateZ(Angle),
/// Rotation in 3D space.
///
/// Generalization of rotateX, rotateY and rotateZ.
+ #[css(comma, function = "rotate3d")]
Rotate3D(Number, Number, Number, Angle),
/// Specifies a perspective projection matrix.
///
@@ -263,11 +280,14 @@ pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, Leng
/// [§ 13.1. 3D Transform Function](https://drafts.csswg.org/css-transforms-2/#funcdef-perspective).
///
/// The value must be greater than or equal to zero.
+ #[css(function)]
Perspective(Length),
/// A intermediate type for interpolation of mismatched transform lists.
#[allow(missing_docs)]
+ #[css(comma, function = "interpolatematrix")]
InterpolateMatrix {
#[compute(ignore_bound)]
+ #[css(ignore_bound)]
from_list: Transform<
TransformOperation<
Angle,
@@ -280,6 +300,7 @@ pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, Leng
>,
>,
#[compute(ignore_bound)]
+ #[css(ignore_bound)]
to_list: Transform<
TransformOperation<
Angle,
@@ -296,8 +317,10 @@ pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, Leng
},
/// A intermediate type for accumulation of mismatched transform lists.
#[allow(missing_docs)]
+ #[css(comma, function = "accumulatematrix")]
AccumulateMatrix {
#[compute(ignore_bound)]
+ #[css(ignore_bound)]
from_list: Transform<
TransformOperation<
Angle,
@@ -310,6 +333,7 @@ pub enum TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, Leng
>,
>,
#[compute(ignore_bound)]
+ #[css(ignore_bound)]
to_list: Transform<
TransformOperation<
Angle,
@@ -541,121 +565,10 @@ where
}
}
-#[cfg_attr(rustfmt, rustfmt_skip)]
-impl<Angle: ToCss + Copy, Number: ToCss + Copy, Length: ToCss,
- Integer: ToCss + Copy, LengthOrNumber: ToCss, LengthOrPercentage: ToCss, LoPoNumber: ToCss>
- ToCss for
- TransformOperation<Angle, Number, Length, Integer, LengthOrNumber, LengthOrPercentage, LoPoNumber> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- match *self {
- TransformOperation::Matrix(ref m) => m.to_css(dest),
- TransformOperation::PrefixedMatrix(ref m) => m.to_css(dest),
- TransformOperation::Matrix3D(Matrix3D {
- m11, m12, m13, m14,
- m21, m22, m23, m24,
- m31, m32, m33, m34,
- m41, m42, m43, m44,
- }) => {
- serialize_function!(dest, matrix3d(
- m11, m12, m13, m14,
- m21, m22, m23, m24,
- m31, m32, m33, m34,
- m41, m42, m43, m44,
- ))
- }
- TransformOperation::PrefixedMatrix3D(Matrix3D {
- m11, m12, m13, m14,
- m21, m22, m23, m24,
- m31, m32, m33, m34,
- ref m41, ref m42, ref m43, m44,
- }) => {
- serialize_function!(dest, matrix3d(
- m11, m12, m13, m14,
- m21, m22, m23, m24,
- m31, m32, m33, m34,
- m41, m42, m43, m44,
- ))
- }
- TransformOperation::Skew(ax, None) => {
- serialize_function!(dest, skew(ax))
- }
- TransformOperation::Skew(ax, Some(ay)) => {
- serialize_function!(dest, skew(ax, ay))
- }
- TransformOperation::SkewX(angle) => {
- serialize_function!(dest, skewX(angle))
- }
- TransformOperation::SkewY(angle) => {
- serialize_function!(dest, skewY(angle))
- }
- TransformOperation::Translate(ref tx, None) => {
- serialize_function!(dest, translate(tx))
- }
- TransformOperation::Translate(ref tx, Some(ref ty)) => {
- serialize_function!(dest, translate(tx, ty))
- }
- TransformOperation::TranslateX(ref tx) => {
- serialize_function!(dest, translateX(tx))
- }
- TransformOperation::TranslateY(ref ty) => {
- serialize_function!(dest, translateY(ty))
- }
- TransformOperation::TranslateZ(ref tz) => {
- serialize_function!(dest, translateZ(tz))
- }
- TransformOperation::Translate3D(ref tx, ref ty, ref tz) => {
- serialize_function!(dest, translate3d(tx, ty, tz))
- }
- TransformOperation::Scale(factor, None) => {
- serialize_function!(dest, scale(factor))
- }
- TransformOperation::Scale(sx, Some(sy)) => {
- serialize_function!(dest, scale(sx, sy))
- }
- TransformOperation::ScaleX(sx) => {
- serialize_function!(dest, scaleX(sx))
- }
- TransformOperation::ScaleY(sy) => {
- serialize_function!(dest, scaleY(sy))
- }
- TransformOperation::ScaleZ(sz) => {
- serialize_function!(dest, scaleZ(sz))
- }
- TransformOperation::Scale3D(sx, sy, sz) => {
- serialize_function!(dest, scale3d(sx, sy, sz))
- }
- TransformOperation::Rotate(theta) => {
- serialize_function!(dest, rotate(theta))
- }
- TransformOperation::RotateX(theta) => {
- serialize_function!(dest, rotateX(theta))
- }
- TransformOperation::RotateY(theta) => {
- serialize_function!(dest, rotateY(theta))
- }
- TransformOperation::RotateZ(theta) => {
- serialize_function!(dest, rotateZ(theta))
- }
- TransformOperation::Rotate3D(x, y, z, theta) => {
- serialize_function!(dest, rotate3d(x, y, z, theta))
- }
- TransformOperation::Perspective(ref length) => {
- serialize_function!(dest, perspective(length))
- }
- TransformOperation::InterpolateMatrix { ref from_list, ref to_list, progress } => {
- serialize_function!(dest, interpolatematrix(from_list, to_list, progress))
- }
- TransformOperation::AccumulateMatrix { ref from_list, ref to_list, count } => {
- serialize_function!(dest, accumulatematrix(from_list, to_list, count))
- }
- }
- }
-}
-
impl<T: ToCss> ToCss for Transform<T> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
if self.0.is_empty() {
return dest.write_str("none");
diff --git a/components/style/values/mod.rs b/components/style/values/mod.rs
index 1507f4fe3e1..601b5edc5ac 100644
--- a/components/style/values/mod.rs
+++ b/components/style/values/mod.rs
@@ -13,9 +13,9 @@ pub use cssparser::{RGBA, Token, Parser, serialize_identifier, CowRcStr, SourceL
use parser::{Parse, ParserContext};
use selectors::parser::SelectorParseErrorKind;
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt::{self, Debug};
+use std::fmt::{self, Debug, Write};
use std::hash;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
pub mod animated;
pub mod computed;
@@ -34,8 +34,9 @@ define_keyword_type!(Auto, "auto");
define_keyword_type!(Normal, "normal");
/// Serialize a normalized value into percentage.
-pub fn serialize_percentage<W>(value: CSSFloat, dest: &mut W)
- -> fmt::Result where W: fmt::Write
+pub fn serialize_percentage<W>(value: CSSFloat, dest: &mut CssWriter<W>) -> fmt::Result
+where
+ W: Write,
{
(value * 100.).to_css(dest)?;
dest.write_str("%")
@@ -109,7 +110,10 @@ impl CustomIdent {
}
impl ToCss for CustomIdent {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
serialize_identifier(&self.0.to_string(), dest)
}
}
@@ -180,7 +184,10 @@ impl Parse for KeyframesName {
}
impl ToCss for KeyframesName {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
KeyframesName::Ident(ref ident) => ident.to_css(dest),
KeyframesName::QuotedString(ref atom) => atom.to_string().to_css(dest),
diff --git a/components/style/values/specified/align.rs b/components/style/values/specified/align.rs
index ac2f7719d31..a0900d4dc33 100644
--- a/components/style/values/specified/align.rs
+++ b/components/style/values/specified/align.rs
@@ -11,8 +11,8 @@ use gecko_bindings::structs;
use parser::{Parse, ParserContext};
use selectors::parser::SelectorParseErrorKind;
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
bitflags! {
/// Constants shared by multiple CSS Box Alignment properties
@@ -71,7 +71,10 @@ bitflags! {
}
impl ToCss for AlignFlags {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let s = match *self & !AlignFlags::FLAG_BITS {
AlignFlags::AUTO => "auto",
AlignFlags::NORMAL => "normal",
@@ -209,7 +212,10 @@ impl AlignJustifyContent {
}
impl ToCss for AlignJustifyContent {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.primary().to_css(dest)?;
match self.fallback() {
AlignFlags::AUTO => {}
diff --git a/components/style/values/specified/angle.rs b/components/style/values/specified/angle.rs
index b776a69db3c..667f70b7869 100644
--- a/components/style/values/specified/angle.rs
+++ b/components/style/values/specified/angle.rs
@@ -7,8 +7,8 @@
use cssparser::{Parser, Token};
use parser::{ParserContext, Parse};
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ToCss, ParseError};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, ToCss};
use values::CSSFloat;
use values::computed::{Context, ToComputedValue};
use values::computed::angle::Angle as ComputedAngle;
@@ -27,7 +27,10 @@ pub struct Angle {
}
impl ToCss for Angle {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.was_calc {
dest.write_str("calc(")?;
}
diff --git a/components/style/values/specified/basic_shape.rs b/components/style/values/specified/basic_shape.rs
index e6d612c7ee7..c0fe8a16e6d 100644
--- a/components/style/values/specified/basic_shape.rs
+++ b/components/style/values/specified/basic_shape.rs
@@ -10,8 +10,8 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
use std::borrow::Cow;
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::computed::Percentage;
use values::generics::basic_shape::{Circle as GenericCircle};
use values::generics::basic_shape::{ClippingShape as GenericClippingShape, Ellipse as GenericEllipse};
@@ -171,7 +171,10 @@ impl Circle {
}
impl ToCss for Circle {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("circle(")?;
if GenericShapeRadius::ClosestSide != self.radius {
self.radius.to_css(dest)?;
@@ -213,7 +216,10 @@ impl Ellipse {
}
impl ToCss for Ellipse {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("ellipse(")?;
if self.semiaxis_x != ShapeRadius::default() || self.semiaxis_y != ShapeRadius::default() {
self.semiaxis_x.to_css(dest)?;
@@ -248,8 +254,12 @@ impl Parse for ShapeRadius {
/// are converted to percentages where possible. Only the two or four
/// value forms are used. In case of two keyword-percentage pairs,
/// the keywords are folded into the percentages
-fn serialize_basicshape_position<W>(position: &Position, dest: &mut W) -> fmt::Result
- where W: fmt::Write
+fn serialize_basicshape_position<W>(
+ position: &Position,
+ dest: &mut CssWriter<W>,
+) -> fmt::Result
+where
+ W: Write,
{
fn to_keyword_and_lop<S>(component: &PositionComponent<S>) -> (S, Cow<LengthOrPercentage>)
where S: Copy + Side
@@ -289,8 +299,11 @@ fn serialize_basicshape_position<W>(position: &Position, dest: &mut W) -> fmt::R
}
}
- fn write_pair<A, B, W>(a: &A, b: &B, dest: &mut W) -> fmt::Result
- where A: ToCss, B: ToCss, W: fmt::Write
+ fn write_pair<A, B, W>(a: &A, b: &B, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ A: ToCss,
+ B: ToCss,
+ W: Write,
{
a.to_css(dest)?;
dest.write_str(" ")?;
diff --git a/components/style/values/specified/box.rs b/components/style/values/specified/box.rs
index 8f046887fe4..54bb1385695 100644
--- a/components/style/values/specified/box.rs
+++ b/components/style/values/specified/box.rs
@@ -8,8 +8,8 @@ use Atom;
use cssparser::Parser;
use parser::{Parse, ParserContext};
use selectors::parser::SelectorParseErrorKind;
-use std::fmt;
-use style_traits::{ParseError, ToCss, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::CustomIdent;
use values::KeyframesName;
use values::generics::box_::AnimationIterationCount as GenericAnimationIterationCount;
@@ -289,9 +289,9 @@ impl AnimationName {
}
impl ToCss for AnimationName {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
match self.0 {
Some(ref name) => name.to_css(dest),
@@ -407,7 +407,10 @@ impl TouchAction {
}
impl ToCss for TouchAction {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
TouchAction::TOUCH_ACTION_NONE => dest.write_str("none"),
TouchAction::TOUCH_ACTION_AUTO => dest.write_str("auto"),
@@ -497,7 +500,10 @@ bitflags! {
}
impl ToCss for Contain {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.is_empty() {
return dest.write_str("none")
}
diff --git a/components/style/values/specified/calc.rs b/components/style/values/specified/calc.rs
index 4b70f800018..afab32f50cf 100644
--- a/components/style/values/specified/calc.rs
+++ b/components/style/values/specified/calc.rs
@@ -9,8 +9,8 @@
use cssparser::{Parser, Token, NumberOrPercentage, AngleOrNumber};
use parser::ParserContext;
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use style_traits::values::specified::AllowedNumericType;
use values::{CSSInteger, CSSFloat};
use values::computed;
@@ -89,7 +89,10 @@ impl ToCss for CalcLengthOrPercentage {
///
/// FIXME(emilio): Should this simplify away zeros?
#[allow(unused_assignments)]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
use num_traits::Zero;
let mut first_value = true;
diff --git a/components/style/values/specified/color.rs b/components/style/values/specified/color.rs
index 87ab21a3c67..a22a183cf49 100644
--- a/components/style/values/specified/color.rs
+++ b/components/style/values/specified/color.rs
@@ -12,9 +12,9 @@ use itoa;
use parser::{ParserContext, Parse};
#[cfg(feature = "gecko")]
use properties::longhands::system_colors::SystemColor;
-use std::fmt;
-use std::io::Write;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind, ValueParseErrorKind};
+use std::fmt::{self, Write};
+use std::io::Write as IoWrite;
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss, ValueParseErrorKind};
use super::AllowQuirks;
use values::computed::{Color as ComputedColor, Context, ToComputedValue};
use values::specified::calc::CalcNode;
@@ -187,7 +187,10 @@ impl Parse for Color {
}
impl ToCss for Color {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
Color::CurrentColor => CSSParserColor::CurrentColor.to_css(dest),
Color::Numeric { authored: Some(ref authored), .. } => dest.write_str(authored),
diff --git a/components/style/values/specified/font.rs b/components/style/values/specified/font.rs
index 9ecd11ea599..4905bed33b4 100644
--- a/components/style/values/specified/font.rs
+++ b/components/style/values/specified/font.rs
@@ -16,8 +16,8 @@ use parser::{Parse, ParserContext};
use properties::longhands::system_font::SystemFont;
#[allow(unused_imports)]
use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ToCss, StyleParseErrorKind, ParseError};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::CustomIdent;
use values::computed::{font as computed, Context, Length, NonNegativeLength, ToComputedValue};
use values::computed::font::{SingleFontFamily, FontFamilyList, FamilyName};
@@ -144,7 +144,10 @@ pub enum FontSize {
}
impl ToCss for FontSize {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
FontSize::Length(ref lop) => lop.to_css(dest),
FontSize::Keyword(info) => info.kw.to_css(dest),
@@ -243,7 +246,10 @@ impl MallocSizeOf for FontFamily {
}
impl ToCss for FontFamily {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
FontFamily::Values(ref v) => {
let mut iter = v.iter();
@@ -408,7 +414,10 @@ impl Default for KeywordSize {
}
impl ToCss for KeywordSize {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str(match *self {
KeywordSize::XXSmall => "xx-small",
KeywordSize::XSmall => "x-small",
@@ -824,7 +833,10 @@ impl VariantAlternatesList {
}
impl ToCss for VariantAlternatesList {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.0.is_empty() {
return dest.write_str("normal");
}
@@ -1031,7 +1043,10 @@ impl VariantEastAsian {
}
impl ToCss for VariantEastAsian {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.is_empty() {
return dest.write_str("normal")
}
@@ -1265,7 +1280,10 @@ impl VariantLigatures {
}
impl ToCss for VariantLigatures {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.is_empty() {
return dest.write_str("normal")
}
@@ -1506,7 +1524,10 @@ impl VariantNumeric {
}
impl ToCss for VariantNumeric {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.is_empty() {
return dest.write_str("normal")
}
@@ -1801,7 +1822,10 @@ impl Parse for FontSynthesis {
}
impl ToCss for FontSynthesis {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.weight && self.style {
dest.write_str("weight style")
} else if self.style {
@@ -1953,7 +1977,10 @@ impl Parse for XTextZoom {
}
impl ToCss for XTextZoom {
- fn to_css<W>(&self, _: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, _: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
Ok(())
}
}
@@ -1981,7 +2008,10 @@ impl Parse for XLang {
}
impl ToCss for XLang {
- fn to_css<W>(&self, _: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, _: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
Ok(())
}
}
diff --git a/components/style/values/specified/image.rs b/components/style/values/specified/image.rs
index 188b3239a7e..001e8c09976 100644
--- a/components/style/values/specified/image.rs
+++ b/components/style/values/specified/image.rs
@@ -16,8 +16,8 @@ use selectors::parser::SelectorParseErrorKind;
use servo_url::ServoUrl;
use std::cmp::Ordering;
use std::f32::consts::PI;
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::{Either, None_};
#[cfg(feature = "gecko")]
use values::computed::{Context, Position as ComputedPosition, ToComputedValue};
@@ -659,8 +659,13 @@ impl GenericsLineDirection for LineDirection {
}
}
- fn to_css<W>(&self, dest: &mut W, compat_mode: CompatMode) -> fmt::Result
- where W: fmt::Write
+ fn to_css<W>(
+ &self,
+ dest: &mut CssWriter<W>,
+ compat_mode: CompatMode,
+ ) -> fmt::Result
+ where
+ W: Write,
{
match *self {
LineDirection::Angle(angle) => {
diff --git a/components/style/values/specified/inherited_box.rs b/components/style/values/specified/inherited_box.rs
index 6d483c35fb2..85cdb8e18a2 100644
--- a/components/style/values/specified/inherited_box.rs
+++ b/components/style/values/specified/inherited_box.rs
@@ -7,8 +7,8 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
use std::f64::consts::PI;
-use std::fmt;
-use style_traits::{ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::computed;
use values::computed::{Context, Orientation, ToComputedValue};
use values::specified::Angle;
@@ -25,7 +25,10 @@ pub struct ImageOrientation {
}
impl ToCss for ImageOrientation {
- fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if let Some(angle) = self.angle {
angle.to_css(dest)?;
if self.flipped {
diff --git a/components/style/values/specified/list.rs b/components/style/values/specified/list.rs
index 0472f9a36f4..9acba5ca1e5 100644
--- a/components/style/values/specified/list.rs
+++ b/components/style/values/specified/list.rs
@@ -6,8 +6,8 @@
use cssparser::{Parser, Token};
use parser::{Parse, ParserContext};
-use std::fmt;
-use style_traits::{ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::{Either, None_};
#[cfg(feature = "gecko")]
use values::CustomIdent;
@@ -114,7 +114,10 @@ impl Parse for ListStyleImage {
pub struct Quotes(pub Box<[(Box<str>, Box<str>)]>);
impl ToCss for Quotes {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
let mut iter = self.0.iter();
match iter.next() {
diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs
index 40f463f26b0..4a0ae8f9cbf 100644
--- a/components/style/values/specified/mod.rs
+++ b/components/style/values/specified/mod.rs
@@ -13,8 +13,8 @@ use parser::{ParserContext, Parse};
use self::url::SpecifiedUrl;
#[allow(unused_imports)] use std::ascii::AsciiExt;
use std::f32;
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use style_traits::values::specified::AllowedNumericType;
use super::{Auto, CSSFloat, CSSInteger, Either, None_};
use super::computed::{Context, ToComputedValue};
@@ -57,6 +57,9 @@ pub use self::outline::OutlineStyle;
pub use self::rect::LengthOrNumberRect;
pub use self::percentage::Percentage;
pub use self::position::{Position, PositionComponent, GridAutoFlow, GridTemplateAreas};
+pub use self::pointing::Cursor;
+#[cfg(feature = "gecko")]
+pub use self::pointing::CursorImage;
pub use self::svg::{SVGLength, SVGOpacity, SVGPaint, SVGPaintKind};
pub use self::svg::{SVGPaintOrder, SVGStrokeDashArray, SVGWidth};
pub use self::svg::MozContextProperties;
@@ -90,6 +93,7 @@ pub mod length;
pub mod list;
pub mod outline;
pub mod percentage;
+pub mod pointing;
pub mod position;
pub mod rect;
pub mod source_size_list;
@@ -246,8 +250,9 @@ impl ToComputedValue for Number {
}
impl ToCss for Number {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
if self.calc_clamping_mode.is_some() {
dest.write_str("calc(")?;
@@ -472,8 +477,9 @@ impl ToComputedValue for Integer {
}
impl ToCss for Integer {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
if self.was_calc {
dest.write_str("calc(")?;
@@ -556,7 +562,10 @@ pub struct ClipRect {
impl ToCss for ClipRect {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("rect(")?;
if let Some(ref top) = self.top {
@@ -801,7 +810,10 @@ impl Attr {
}
impl ToCss for Attr {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str("attr(")?;
if let Some(ref ns) = self.namespace {
serialize_identifier(&ns.0.to_string(), dest)?;
diff --git a/components/style/values/specified/percentage.rs b/components/style/values/specified/percentage.rs
index 7d06d56ab6e..ec1e3093a89 100644
--- a/components/style/values/specified/percentage.rs
+++ b/components/style/values/specified/percentage.rs
@@ -7,8 +7,8 @@
use cssparser::{Parser, Token};
use parser::{Parse, ParserContext};
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ParseError, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, ToCss};
use style_traits::values::specified::AllowedNumericType;
use values::{CSSFloat, serialize_percentage};
use values::computed::{Context, ToComputedValue};
@@ -29,8 +29,9 @@ pub struct Percentage {
impl ToCss for Percentage {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write,
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
if self.calc_clamping_mode.is_some() {
dest.write_str("calc(")?;
diff --git a/components/style/values/specified/pointing.rs b/components/style/values/specified/pointing.rs
new file mode 100644
index 00000000000..8c8b34d93e9
--- /dev/null
+++ b/components/style/values/specified/pointing.rs
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+//! Specified values for Pointing properties.
+//!
+//! https://drafts.csswg.org/css-ui/#pointing-keyboard
+
+use style_traits::cursor::CursorKind;
+#[cfg(feature = "gecko")]
+use values::specified::url::SpecifiedUrl;
+
+/// The specified value for the `cursor` property.
+///
+/// https://drafts.csswg.org/css-ui/#cursor
+#[cfg(feature = "servo")]
+#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue, ToCss)]
+pub struct Cursor(pub CursorKind);
+
+/// The specified value for the `cursor` property.
+///
+/// https://drafts.csswg.org/css-ui/#cursor
+#[cfg(feature = "gecko")]
+#[derive(Clone, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
+pub struct Cursor {
+ /// The parsed images for the cursor.
+ pub images: Box<[CursorImage]>,
+ /// The kind of the cursor [default | help | ...].
+ pub keyword: CursorKind,
+}
+
+/// The specified value for the `image cursors`.
+#[cfg(feature = "gecko")]
+#[derive(Clone, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
+pub struct CursorImage {
+ /// The url to parse images from.
+ pub url: SpecifiedUrl,
+ /// The <x> and <y> coordinates.
+ pub hotspot: Option<(f32, f32)>,
+}
diff --git a/components/style/values/specified/position.rs b/components/style/values/specified/position.rs
index 0a0a42b837f..e20dafed010 100644
--- a/components/style/values/specified/position.rs
+++ b/components/style/values/specified/position.rs
@@ -11,10 +11,10 @@ use cssparser::Parser;
use hash::FnvHashMap;
use parser::{Parse, ParserContext};
use selectors::parser::SelectorParseErrorKind;
-use std::fmt;
+use std::fmt::{self, Write};
use std::ops::Range;
use str::HTML_SPACE_CHARACTERS;
-use style_traits::{ToCss, StyleParseErrorKind, ParseError};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::{Either, None_};
use values::computed::{CalcLengthOrPercentage, LengthOrPercentage as ComputedLengthOrPercentage};
use values::computed::{Context, Percentage, ToComputedValue};
@@ -142,7 +142,10 @@ impl Position {
}
impl ToCss for Position {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match (&self.horizontal, &self.vertical) {
(x_pos @ &PositionComponent::Side(_, Some(_)), &PositionComponent::Length(ref y_lop)) => {
x_pos.to_css(dest)?;
@@ -369,7 +372,10 @@ impl LegacyPosition {
}
impl ToCss for LegacyPosition {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.horizontal.to_css(dest)?;
dest.write_str(" ")?;
self.vertical.to_css(dest)
@@ -409,7 +415,10 @@ impl GridAutoFlow {
}
impl ToCss for GridAutoFlow {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
self.autoflow.to_css(dest)?;
if self.dense { dest.write_str(" dense")?; }
@@ -584,7 +593,10 @@ impl TemplateAreas {
}
impl ToCss for TemplateAreas {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
for (i, string) in self.strings.iter().enumerate() {
if i != 0 {
dest.write_str(" ")?;
diff --git a/components/style/values/specified/svg.rs b/components/style/values/specified/svg.rs
index b8fa6409a03..f5f89cfc4d7 100644
--- a/components/style/values/specified/svg.rs
+++ b/components/style/values/specified/svg.rs
@@ -6,8 +6,9 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
-use std::fmt;
-use style_traits::{CommaWithSpace, ParseError, Separator, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CommaWithSpace, CssWriter, ParseError, Separator};
+use style_traits::{StyleParseErrorKind, ToCss};
use values::CustomIdent;
use values::generics::svg as generic;
use values::specified::{LengthOrPercentage, NonNegativeLengthOrPercentage, NonNegativeNumber};
@@ -237,7 +238,10 @@ impl Parse for SVGPaintOrder {
}
impl ToCss for SVGPaintOrder {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
if self.0 == 0 {
return dest.write_str("normal")
}
diff --git a/components/style/values/specified/table.rs b/components/style/values/specified/table.rs
index a86fe0167fd..89f9941633d 100644
--- a/components/style/values/specified/table.rs
+++ b/components/style/values/specified/table.rs
@@ -7,7 +7,7 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
use std::fmt;
-use style_traits::{ToCss, StyleParseErrorKind, ParseError};
+use style_traits::{CssWriter, ToCss, StyleParseErrorKind, ParseError};
#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
/// span. for `<col span>` pres attr
@@ -21,7 +21,7 @@ impl Parse for XSpan {
}
impl ToCss for XSpan {
- fn to_css<W>(&self, _: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, _: &mut CssWriter<W>) -> fmt::Result where W: fmt::Write {
Ok(())
}
}
diff --git a/components/style/values/specified/text.rs b/components/style/values/specified/text.rs
index d9e05b50057..5db55dd7668 100644
--- a/components/style/values/specified/text.rs
+++ b/components/style/values/specified/text.rs
@@ -8,8 +8,8 @@ use cssparser::{Parser, Token};
use parser::{Parse, ParserContext};
use selectors::parser::SelectorParseErrorKind;
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use values::computed::{Context, ToComputedValue};
use values::computed::text::LineHeight as ComputedLineHeight;
use values::computed::text::TextOverflow as ComputedTextOverflow;
@@ -440,7 +440,10 @@ impl Parse for TextAlign {
}
impl ToCss for TextAlign {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
match *self {
TextAlign::Keyword(key) => key.to_css(dest),
#[cfg(feature = "gecko")]
diff --git a/components/style/values/specified/time.rs b/components/style/values/specified/time.rs
index bfc57d518dd..d91787b7ab2 100644
--- a/components/style/values/specified/time.rs
+++ b/components/style/values/specified/time.rs
@@ -7,8 +7,8 @@
use cssparser::{Parser, Token};
use parser::{ParserContext, Parse};
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
-use style_traits::{ToCss, ParseError, StyleParseErrorKind};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
use style_traits::values::specified::AllowedNumericType;
use values::CSSFloat;
use values::computed::{Context, ToComputedValue};
@@ -133,9 +133,9 @@ impl Parse for Time {
}
impl ToCss for Time {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where
- W: fmt::Write,
+ W: Write,
{
if self.was_calc {
dest.write_str("calc(")?;
diff --git a/components/style/values/specified/ui.rs b/components/style/values/specified/ui.rs
index 5d9321a5833..2d9d83d5cc3 100644
--- a/components/style/values/specified/ui.rs
+++ b/components/style/values/specified/ui.rs
@@ -6,8 +6,8 @@
use cssparser::Parser;
use parser::{Parse, ParserContext};
-use std::fmt;
-use style_traits::{ParseError, StyleParseErrorKind, ToCss};
+use std::fmt::{self, Write};
+use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss};
/// Specified value of `-moz-force-broken-image-icon`
#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)]
@@ -36,7 +36,10 @@ impl Parse for MozForceBrokenImageIcon {
}
impl ToCss for MozForceBrokenImageIcon {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
+ {
dest.write_str(if self.0 { "1" } else { "0" })
}
}
diff --git a/components/style_derive/to_css.rs b/components/style_derive/to_css.rs
index 12fad8f0d34..de48f4612e4 100644
--- a/components/style_derive/to_css.rs
+++ b/components/style_derive/to_css.rs
@@ -3,8 +3,9 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cg;
+use darling::{Error, FromMetaItem};
use quote::Tokens;
-use syn::DeriveInput;
+use syn::{self, DeriveInput, Ident};
use synstructure;
pub fn derive(input: DeriveInput) -> Tokens {
@@ -16,13 +17,13 @@ pub fn derive(input: DeriveInput) -> Tokens {
let input_attrs = cg::parse_input_attrs::<CssInputAttrs>(&input);
let style = synstructure::BindStyle::Ref.into();
let match_body = synstructure::each_variant(&input, &style, |bindings, variant| {
- let mut identifier = cg::to_css_identifier(variant.ident.as_ref());
+ let identifier = cg::to_css_identifier(variant.ident.as_ref());
let variant_attrs = cg::parse_variant_attrs::<CssVariantAttrs>(variant);
let separator = if variant_attrs.comma { ", " } else { " " };
if variant_attrs.dimension {
assert_eq!(bindings.len(), 1);
- assert!(!variant_attrs.function, "That makes no sense");
+ assert!(variant_attrs.function.is_none(), "That makes no sense");
}
let mut expr = if !bindings.is_empty() {
@@ -39,7 +40,10 @@ pub fn derive(input: DeriveInput) -> Tokens {
};
} else {
for binding in bindings {
- where_clause.add_trait_bound(&binding.field.ty);
+ let attrs = cg::parse_field_attrs::<CssFieldAttrs>(&binding.field);
+ if !attrs.ignore_bound {
+ where_clause.add_trait_bound(&binding.field.ty);
+ }
expr = quote! {
#expr
writer.item(#binding)?;
@@ -48,7 +52,7 @@ pub fn derive(input: DeriveInput) -> Tokens {
}
quote! {{
- let mut writer = ::style_traits::values::SequenceWriter::new(&mut *dest, #separator);
+ let mut writer = ::style_traits::values::SequenceWriter::new(dest, #separator);
#expr
Ok(())
}}
@@ -63,7 +67,8 @@ pub fn derive(input: DeriveInput) -> Tokens {
#expr?;
::std::fmt::Write::write_str(dest, #identifier)
}
- } else if variant_attrs.function {
+ } else if let Some(function) = variant_attrs.function {
+ let mut identifier = function.name.map_or(identifier, |name| name.to_string());
identifier.push_str("(");
expr = quote! {
::std::fmt::Write::write_str(dest, #identifier)?;
@@ -78,7 +83,10 @@ pub fn derive(input: DeriveInput) -> Tokens {
impl #impl_generics ::style_traits::ToCss for #name #ty_generics #where_clause {
#[allow(unused_variables)]
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result
+ fn to_css<W>(
+ &self,
+ dest: &mut ::style_traits::CssWriter<W>,
+ ) -> ::std::fmt::Result
where
W: ::std::fmt::Write
{
@@ -93,7 +101,10 @@ pub fn derive(input: DeriveInput) -> Tokens {
impls.append(quote! {
impl #impl_generics ::std::fmt::Debug for #name #ty_generics #where_clause {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
- ::style_traits::ToCss::to_css(self, f)
+ ::style_traits::ToCss::to_css(
+ self,
+ &mut ::style_traits::CssWriter::new(f),
+ )
}
}
});
@@ -106,15 +117,36 @@ pub fn derive(input: DeriveInput) -> Tokens {
#[derive(Default, FromDeriveInput)]
struct CssInputAttrs {
derive_debug: bool,
- function: bool,
+ function: Option<Function>,
comma: bool,
}
#[darling(attributes(css), default)]
#[derive(Default, FromVariant)]
struct CssVariantAttrs {
- function: bool,
+ function: Option<Function>,
iterable: bool,
comma: bool,
dimension: bool,
}
+
+#[darling(attributes(css), default)]
+#[derive(Default, FromField)]
+struct CssFieldAttrs {
+ ignore_bound: bool,
+}
+
+struct Function {
+ name: Option<Ident>,
+}
+
+impl FromMetaItem for Function {
+ fn from_word() -> Result<Self, Error> {
+ Ok(Self { name: None })
+ }
+
+ fn from_string(name: &str) -> Result<Self, Error> {
+ let name = syn::parse_ident(name).map_err(Error::custom)?;
+ Ok(Self { name: Some(name) })
+ }
+}
diff --git a/components/style_traits/cursor.rs b/components/style_traits/cursor.rs
index 28a575f1cca..3ffd2814382 100644
--- a/components/style_traits/cursor.rs
+++ b/components/style_traits/cursor.rs
@@ -4,7 +4,7 @@
//! A list of common mouse cursors per CSS3-UI § 8.1.1.
-use super::ToCss;
+use super::{CssWriter, ToCss};
macro_rules! define_cursor {
(
@@ -20,43 +20,46 @@ macro_rules! define_cursor {
#[cfg_attr(feature = "servo", derive(Deserialize, Serialize))]
#[repr(u8)]
#[allow(missing_docs)]
- pub enum Cursor {
+ pub enum CursorKind {
$( $c_variant = $c_value, )+
$( #[cfg(feature = "gecko")] $g_variant = $g_value, )+
}
- impl Cursor {
+ impl CursorKind {
/// Given a CSS keyword, get the corresponding cursor enum.
- pub fn from_css_keyword(keyword: &str) -> Result<Cursor, ()> {
+ pub fn from_css_keyword(keyword: &str) -> Result<Self, ()> {
match_ignore_ascii_case! { &keyword,
- $( $c_css => Ok(Cursor::$c_variant), )+
- $( #[cfg(feature = "gecko")] $g_css => Ok(Cursor::$g_variant), )+
+ $( $c_css => Ok(CursorKind::$c_variant), )+
+ $( #[cfg(feature = "gecko")] $g_css => Ok(CursorKind::$g_variant), )+
_ => Err(())
}
}
/// From the C u8 value, get the corresponding Cursor enum.
- pub fn from_u8(value: u8) -> Result<Cursor, ()> {
+ pub fn from_u8(value: u8) -> Result<Self, ()> {
match value {
- $( $c_value => Ok(Cursor::$c_variant), )+
- $( #[cfg(feature = "gecko")] $g_value => Ok(Cursor::$g_variant), )+
+ $( $c_value => Ok(CursorKind::$c_variant), )+
+ $( #[cfg(feature = "gecko")] $g_value => Ok(CursorKind::$g_variant), )+
_ => Err(())
}
}
}
- impl ToCss for Cursor {
- fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result where W: ::std::fmt::Write {
+ impl ToCss for CursorKind {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> ::std::fmt::Result where W: ::std::fmt::Write {
match *self {
- $( Cursor::$c_variant => dest.write_str($c_css), )+
- $( #[cfg(feature = "gecko")] Cursor::$g_variant => dest.write_str($g_css), )+
+ $(CursorKind::$c_variant => {
+ ::std::fmt::Write::write_str(dest, $c_css)
+ })+
+ $(#[cfg(feature = "gecko")] CursorKind::$g_variant => {
+ ::std::fmt::Write::write_str(dest, $g_css)
+ })+
}
}
}
}
}
-
define_cursor! {
common properties = [
"none" => None = 0,
@@ -94,12 +97,13 @@ define_cursor! {
"all-scroll" => AllScroll = 32,
"zoom-in" => ZoomIn = 33,
"zoom-out" => ZoomOut = 34,
+ "auto" => Auto = 35,
]
// gecko only properties
gecko properties = [
- "-moz-grab" => MozGrab = 35,
- "-moz-grabbing" => MozGrabbing = 36,
- "-moz-zoom-in" => MozZoomIn = 37,
- "-moz-zoom-out" => MozZoomOut = 38,
+ "-moz-grab" => MozGrab = 36,
+ "-moz-grabbing" => MozGrabbing = 37,
+ "-moz-zoom-in" => MozZoomIn = 38,
+ "-moz-zoom-out" => MozZoomOut = 39,
]
}
diff --git a/components/style_traits/lib.rs b/components/style_traits/lib.rs
index e0f1993c5a8..3988d2fa446 100644
--- a/components/style_traits/lib.rs
+++ b/components/style_traits/lib.rs
@@ -78,7 +78,7 @@ pub mod values;
#[macro_use]
pub mod viewport;
-pub use values::{Comma, CommaWithSpace, OneOrMoreSeparated, Separator, Space, ToCss};
+pub use values::{Comma, CommaWithSpace, CssWriter, OneOrMoreSeparated, Separator, Space, ToCss};
/// The error type for all CSS parsing routines.
pub type ParseError<'i> = cssparser::ParseError<'i, StyleParseErrorKind<'i>>;
diff --git a/components/style_traits/values.rs b/components/style_traits/values.rs
index 3e951548e6c..56574ac161d 100644
--- a/components/style_traits/values.rs
+++ b/components/style_traits/values.rs
@@ -34,7 +34,7 @@ use std::fmt::{self, Write};
/// implement `Debug` by a single call to `ToCss::to_css`.
pub trait ToCss {
/// Serialize `self` in CSS syntax, writing to `dest`.
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write;
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write;
/// Serialize `self` in CSS syntax and return a string.
///
@@ -42,27 +42,27 @@ pub trait ToCss {
#[inline]
fn to_css_string(&self) -> String {
let mut s = String::new();
- self.to_css(&mut s).unwrap();
+ self.to_css(&mut CssWriter::new(&mut s)).unwrap();
s
}
}
impl<'a, T> ToCss for &'a T where T: ToCss + ?Sized {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
(*self).to_css(dest)
}
}
impl ToCss for str {
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
serialize_string(self, dest)
}
}
impl ToCss for String {
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
serialize_string(self, dest)
}
}
@@ -72,11 +72,62 @@ where
T: ToCss,
{
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
self.as_ref().map_or(Ok(()), |value| value.to_css(dest))
}
}
+/// A writer tailored for serialising CSS.
+///
+/// Coupled with SequenceWriter, this allows callers to transparently handle
+/// things like comma-separated values etc.
+pub struct CssWriter<'w, W: 'w> {
+ inner: &'w mut W,
+ prefix: Option<&'static str>,
+}
+
+impl<'w, W> CssWriter<'w, W>
+where
+ W: Write,
+{
+ /// Creates a new `CssWriter`.
+ #[inline]
+ pub fn new(inner: &'w mut W) -> Self {
+ Self { inner, prefix: Some("") }
+ }
+}
+
+impl<'w, W> Write for CssWriter<'w, W>
+where
+ W: Write,
+{
+ #[inline]
+ fn write_str(&mut self, s: &str) -> fmt::Result {
+ if s.is_empty() {
+ return Ok(());
+ }
+ if let Some(prefix) = self.prefix.take() {
+ // We are going to write things, but first we need to write
+ // the prefix that was set by `SequenceWriter::item`.
+ if !prefix.is_empty() {
+ self.inner.write_str(prefix)?;
+ }
+ }
+ self.inner.write_str(s)
+ }
+
+ #[inline]
+ fn write_char(&mut self, c: char) -> fmt::Result {
+ if let Some(prefix) = self.prefix.take() {
+ // See comment in `write_str`.
+ if !prefix.is_empty() {
+ self.inner.write_str(prefix)?;
+ }
+ }
+ self.inner.write_char(c)
+ }
+}
+
#[macro_export]
macro_rules! serialize_function {
($dest: expr, $name: ident($( $arg: expr, )+)) => {
@@ -96,22 +147,23 @@ macro_rules! serialize_function {
}
/// Convenience wrapper to serialise CSS values separated by a given string.
-pub struct SequenceWriter<'a, W> {
- writer: TrackedWriter<W>,
- separator: &'a str,
+pub struct SequenceWriter<'a, 'b: 'a, W: 'b> {
+ inner: &'a mut CssWriter<'b, W>,
+ separator: &'static str,
}
-impl<'a, W> SequenceWriter<'a, W>
+impl<'a, 'b, W> SequenceWriter<'a, 'b, W>
where
- W: Write,
+ W: Write + 'b,
{
/// Create a new sequence writer.
#[inline]
- pub fn new(writer: W, separator: &'a str) -> Self {
- SequenceWriter {
- writer: TrackedWriter::new(writer),
- separator: separator,
+ pub fn new(inner: &'a mut CssWriter<'b, W>, separator: &'static str) -> Self {
+ if inner.prefix.is_none() {
+ // See comment in `item`.
+ inner.prefix = Some("");
}
+ Self { inner, separator }
}
/// Serialises a CSS value, writing any separator as necessary.
@@ -125,89 +177,34 @@ where
where
T: ToCss,
{
- if self.writer.has_written {
- item.to_css(&mut PrefixedWriter::new(&mut self.writer, self.separator))
- } else {
- item.to_css(&mut self.writer)
- }
- }
-}
-
-struct TrackedWriter<W> {
- writer: W,
- has_written: bool,
-}
-
-impl<W> TrackedWriter<W>
-where
- W: Write,
-{
- #[inline]
- fn new(writer: W) -> Self {
- TrackedWriter {
- writer: writer,
- has_written: false,
+ let old_prefix = self.inner.prefix;
+ if old_prefix.is_none() {
+ // If there is no prefix in the inner writer, a previous
+ // call to this method produced output, which means we need
+ // to write the separator next time we produce output again.
+ self.inner.prefix = Some(self.separator);
}
- }
-}
-
-impl<W> Write for TrackedWriter<W>
-where
- W: Write,
-{
- #[inline]
- fn write_str(&mut self, s: &str) -> fmt::Result {
- if !s.is_empty() {
- self.has_written = true;
- }
- self.writer.write_str(s)
- }
-
- #[inline]
- fn write_char(&mut self, c: char) -> fmt::Result {
- self.has_written = true;
- self.writer.write_char(c)
- }
-}
-
-struct PrefixedWriter<'a, W> {
- writer: W,
- prefix: Option<&'a str>,
-}
-
-impl<'a, W> PrefixedWriter<'a, W>
-where
- W: Write,
-{
- #[inline]
- fn new(writer: W, prefix: &'a str) -> Self {
- PrefixedWriter {
- writer: writer,
- prefix: Some(prefix),
- }
- }
-}
-
-impl<'a, W> Write for PrefixedWriter<'a, W>
-where
- W: Write,
-{
- #[inline]
- fn write_str(&mut self, s: &str) -> fmt::Result {
- if !s.is_empty() {
- if let Some(prefix) = self.prefix.take() {
- self.writer.write_str(prefix)?;
+ item.to_css(&mut self.inner)?;
+ match (old_prefix, self.inner.prefix) {
+ (_, None) => {
+ // This call produced output and cleaned up after itself.
+ }
+ (None, Some(p)) => {
+ // Some previous call to `item` produced output,
+ // but this one did not, prefix should be the same as
+ // the one we set.
+ debug_assert_eq!(self.separator, p);
+ // We clean up here even though it's not necessary just
+ // to be able to do all these assertion checks.
+ self.inner.prefix = None;
+ }
+ (Some(old), Some(new)) => {
+ // No previous call to `item` produced output, and this one
+ // either.
+ debug_assert_eq!(old, new);
}
}
- self.writer.write_str(s)
- }
-
- #[inline]
- fn write_char(&mut self, c: char) -> fmt::Result {
- if let Some(prefix) = self.prefix.take() {
- self.writer.write_str(prefix)?;
- }
- self.writer.write_char(c)
+ Ok(())
}
}
@@ -332,7 +329,7 @@ impl OneOrMoreSeparated for UnicodeRange {
}
impl<T> ToCss for Vec<T> where T: ToCss + OneOrMoreSeparated {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
let mut iter = self.iter();
iter.next().unwrap().to_css(dest)?;
for item in iter {
@@ -344,7 +341,7 @@ impl<T> ToCss for Vec<T> where T: ToCss + OneOrMoreSeparated {
}
impl<T> ToCss for Box<T> where T: ?Sized + ToCss {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where W: Write,
{
(**self).to_css(dest)
@@ -352,7 +349,7 @@ impl<T> ToCss for Box<T> where T: ?Sized + ToCss {
}
impl<T> ToCss for Arc<T> where T: ?Sized + ToCss {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where W: Write,
{
(**self).to_css(dest)
@@ -360,7 +357,7 @@ impl<T> ToCss for Arc<T> where T: ?Sized + ToCss {
}
impl ToCss for Au {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
self.to_f64_px().to_css(dest)?;
dest.write_str("px")
}
@@ -369,7 +366,7 @@ impl ToCss for Au {
macro_rules! impl_to_css_for_predefined_type {
($name: ty) => {
impl<'a> ToCss for $name {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: Write {
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result where W: Write {
::cssparser::ToCss::to_css(self, dest)
}
}
@@ -479,11 +476,11 @@ macro_rules! __define_css_keyword_enum__actual {
}
impl $crate::ToCss for $name {
- fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result
+ fn to_css<W>(&self, dest: &mut $crate::CssWriter<W>) -> ::std::fmt::Result
where W: ::std::fmt::Write
{
match *self {
- $( $name::$variant => dest.write_str($css) ),+
+ $( $name::$variant => ::std::fmt::Write::write_str(dest, $css) ),+
}
}
}
diff --git a/components/style_traits/viewport.rs b/components/style_traits/viewport.rs
index c3538e4416b..e2f8c6baf6f 100644
--- a/components/style_traits/viewport.rs
+++ b/components/style_traits/viewport.rs
@@ -4,11 +4,11 @@
//! Helper types for the `@viewport` rule.
-use {CSSPixel, PinchZoomFactor, ParseError, ToCss};
+use {CSSPixel, CssWriter, ParseError, PinchZoomFactor, ToCss};
use cssparser::Parser;
use euclid::TypedSize2D;
#[allow(unused_imports)] use std::ascii::AsciiExt;
-use std::fmt;
+use std::fmt::{self, Write};
define_css_keyword_enum!(UserZoom:
"zoom" => Zoom,
@@ -42,8 +42,9 @@ pub struct ViewportConstraints {
}
impl ToCss for ViewportConstraints {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
- where W: fmt::Write
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
+ where
+ W: Write,
{
dest.write_str("@viewport { width: ")?;
self.size.width.to_css(dest)?;
@@ -86,7 +87,7 @@ pub enum Zoom {
}
impl ToCss for Zoom {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result
+ fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
where W: fmt::Write,
{
match *self {
diff --git a/etc/ci/buildbot_steps.yml b/etc/ci/buildbot_steps.yml
index 041beec8b05..b80ed719e1f 100644
--- a/etc/ci/buildbot_steps.yml
+++ b/etc/ci/buildbot_steps.yml
@@ -1,6 +1,8 @@
env:
RUSTFLAGS: -Dwarnings
CARGO_INCREMENTAL: "0"
+ CCACHE: sccache
+ RUSTC_WRAPPER: sccache
mac-rel-wpt1:
- ./mach clean-nightlies --keep 3 --force
@@ -75,15 +77,15 @@ mac-nightly:
linux-rel-intermittent:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- - env CC=gcc-5 CXX=g++-5 ./mach build --release
+ - ./mach build --release
- ./etc/ci/check_intermittents.sh --log-raw intermittents.log
linux-rel-nogate:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- - env CC=gcc-5 CXX=g++-5 ./mach build --release
+ - ./mach build --release
- python ./etc/ci/chaos_monkey_test.py
- - env CC=gcc-5 CXX=g++-5 RUSTFLAGS= bash ./etc/ci/mutation_test.sh
+ - RUSTFLAGS= bash ./etc/ci/mutation_test.sh
mac-rel-intermittent:
- ./mach clean-nightlies --keep 3 --force
@@ -96,11 +98,11 @@ linux-dev:
- ./mach clean-cargo-cache --keep 3 --force
- ./mach test-tidy --no-progress --all
- ./mach test-tidy --no-progress --self-test
- - env CC=gcc-5 CXX=g++-5 ./mach build --dev
- - env CC=gcc-5 CXX=g++-5 ./mach test-unit
+ - ./mach build --dev
+ - ./mach test-unit
- ./mach package --dev
- - env CC=gcc-5 CXX=g++-5 ./mach build-cef
- - env CC=gcc-5 CXX=g++-5 ./mach build --dev --no-default-features --features default-except-unstable
+ - ./mach build-cef
+ - ./mach build --dev --no-default-features --features default-except-unstable
- ./mach build-geckolib
- ./mach test-stylo
- bash ./etc/ci/lockfile_changed.sh
@@ -110,7 +112,7 @@ linux-dev:
linux-rel-wpt:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- - env CC=gcc-5 CXX=g++-5 ./mach build --release --with-debug-assertions
+ - ./mach build --release --with-debug-assertions
- ./mach test-wpt-failure
- ./mach test-wpt --release --processes 24 --total-chunks 2 --this-chunk 1 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log --always-succeed
- ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default
@@ -119,7 +121,7 @@ linux-rel-wpt:
linux-rel-css:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- - env CC=gcc-5 CXX=g++-5 ./mach build --release --with-debug-assertions
+ - ./mach build --release --with-debug-assertions
- ./mach test-wpt --release --processes 24 --total-chunks 2 --this-chunk 2 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log --always-succeed
- ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default
- ./mach build-geckolib --release
@@ -130,7 +132,7 @@ linux-rel-css:
linux-nightly:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- - env CC=gcc-5 CXX=g++-5 ./mach build --release
+ - ./mach build --release
- ./mach package --release
- ./mach upload-nightly linux
- ./mach test-perf
diff --git a/ports/cef/eutil.rs b/ports/cef/eutil.rs
index 03d98d31e1c..06591618332 100644
--- a/ports/cef/eutil.rs
+++ b/ports/cef/eutil.rs
@@ -30,7 +30,7 @@ pub fn slice_to_str<F>(s: *const u8, l: usize, f: F) -> c_int where F: FnOnce(&s
/// All fields are initialized to zero. It is the caller's responsibility to ensure that the given
/// type is a CEF type with `cef_base_t` as its first member.
pub unsafe fn create_cef_object<Base,Extra>(size: size_t) -> *mut Base {
- let object = libc::calloc(1, (mem::size_of::<Base>() + mem::size_of::<Extra>())) as
+ let object = libc::calloc(1, mem::size_of::<Base>() + mem::size_of::<Extra>()) as
*mut cef_base_t;
(*object).size = size;
(*object).add_ref = Some(servo_add_ref as extern "C" fn(*mut cef_base_t) -> c_int);
diff --git a/ports/cef/window.rs b/ports/cef/window.rs
index 58e7507dff3..05b98e6dca9 100644
--- a/ports/cef/window.rs
+++ b/ports/cef/window.rs
@@ -33,7 +33,7 @@ use std::os::raw::{c_char, c_void};
use std::ptr;
use std::rc::Rc;
use servo_url::ServoUrl;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
use style_traits::DevicePixel;
#[cfg(target_os="linux")]
extern crate x11;
@@ -104,69 +104,68 @@ impl Window {
vec![WindowEvent::Idle]
}
- fn cursor_type_for_cursor(&self, cursor: Cursor) -> cef_cursor_type_t {
+ fn cursor_type_for_cursor(&self, cursor: CursorKind) -> cef_cursor_type_t {
match cursor {
- Cursor::None => return cef_cursor_type_t::CT_NONE,
- Cursor::ContextMenu => return cef_cursor_type_t::CT_CONTEXTMENU,
- Cursor::Grabbing => return cef_cursor_type_t::CT_GRABBING,
- Cursor::Crosshair => return cef_cursor_type_t::CT_CROSS,
- Cursor::Copy => return cef_cursor_type_t::CT_COPY,
- Cursor::Alias => return cef_cursor_type_t::CT_ALIAS,
- Cursor::Text => return cef_cursor_type_t::CT_IBEAM,
- Cursor::Grab | Cursor::AllScroll =>
- return cef_cursor_type_t::CT_GRAB,
- Cursor::NoDrop => return cef_cursor_type_t::CT_NODROP,
- Cursor::NotAllowed => return cef_cursor_type_t::CT_NOTALLOWED,
- Cursor::Pointer => return cef_cursor_type_t::CT_POINTER,
- Cursor::SResize => return cef_cursor_type_t::CT_SOUTHRESIZE,
- Cursor::WResize => return cef_cursor_type_t::CT_WESTRESIZE,
- Cursor::EwResize => return cef_cursor_type_t::CT_EASTWESTRESIZE,
- Cursor::ColResize => return cef_cursor_type_t::CT_COLUMNRESIZE,
- Cursor::EResize => return cef_cursor_type_t::CT_EASTRESIZE,
- Cursor::NResize => return cef_cursor_type_t::CT_NORTHRESIZE,
- Cursor::NsResize => return cef_cursor_type_t::CT_NORTHSOUTHRESIZE,
- Cursor::RowResize => return cef_cursor_type_t::CT_ROWRESIZE,
- Cursor::VerticalText => return cef_cursor_type_t::CT_VERTICALTEXT,
- _ => return cef_cursor_type_t::CT_POINTER,
+ CursorKind::None => cef_cursor_type_t::CT_NONE,
+ CursorKind::ContextMenu => cef_cursor_type_t::CT_CONTEXTMENU,
+ CursorKind::Grabbing => cef_cursor_type_t::CT_GRABBING,
+ CursorKind::Crosshair => cef_cursor_type_t::CT_CROSS,
+ CursorKind::Copy => cef_cursor_type_t::CT_COPY,
+ CursorKind::Alias => cef_cursor_type_t::CT_ALIAS,
+ CursorKind::Text => cef_cursor_type_t::CT_IBEAM,
+ CursorKind::Grab | CursorKind::AllScroll => cef_cursor_type_t::CT_GRAB,
+ CursorKind::NoDrop => cef_cursor_type_t::CT_NODROP,
+ CursorKind::NotAllowed => cef_cursor_type_t::CT_NOTALLOWED,
+ CursorKind::Pointer => cef_cursor_type_t::CT_POINTER,
+ CursorKind::SResize => cef_cursor_type_t::CT_SOUTHRESIZE,
+ CursorKind::WResize => cef_cursor_type_t::CT_WESTRESIZE,
+ CursorKind::EwResize => cef_cursor_type_t::CT_EASTWESTRESIZE,
+ CursorKind::ColResize => cef_cursor_type_t::CT_COLUMNRESIZE,
+ CursorKind::EResize => cef_cursor_type_t::CT_EASTRESIZE,
+ CursorKind::NResize => cef_cursor_type_t::CT_NORTHRESIZE,
+ CursorKind::NsResize => cef_cursor_type_t::CT_NORTHSOUTHRESIZE,
+ CursorKind::RowResize => cef_cursor_type_t::CT_ROWRESIZE,
+ CursorKind::VerticalText => cef_cursor_type_t::CT_VERTICALTEXT,
+ _ => cef_cursor_type_t::CT_POINTER,
}
}
/// Returns the Cocoa cursor for a CSS cursor. These match Firefox, except where Firefox
/// bundles custom resources (which we don't yet do).
#[cfg(target_os="macos")]
- fn cursor_handle_for_cursor(&self, cursor: Cursor) -> cef_cursor_handle_t {
+ fn cursor_handle_for_cursor(&self, cursor: CursorKind) -> cef_cursor_handle_t {
use cocoa::base::class;
unsafe {
match cursor {
- Cursor::None => return 0 as cef_cursor_handle_t,
- Cursor::ContextMenu => msg_send![class("NSCursor"), contextualMenuCursor],
- Cursor::Grabbing => msg_send![class("NSCursor"), closedHandCursor],
- Cursor::Crosshair => msg_send![class("NSCursor"), crosshairCursor],
- Cursor::Copy => msg_send![class("NSCursor"), dragCopyCursor],
- Cursor::Alias => msg_send![class("NSCursor"), dragLinkCursor],
- Cursor::Text => msg_send![class("NSCursor"), IBeamCursor],
- Cursor::Grab | Cursor::AllScroll =>
+ CursorKind::None => return 0 as cef_cursor_handle_t,
+ CursorKind::ContextMenu => msg_send![class("NSCursor"), contextualMenuCursor],
+ CursorKind::Grabbing => msg_send![class("NSCursor"), closedHandCursor],
+ CursorKind::Crosshair => msg_send![class("NSCursor"), crosshairCursor],
+ CursorKind::Copy => msg_send![class("NSCursor"), dragCopyCursor],
+ CursorKind::Alias => msg_send![class("NSCursor"), dragLinkCursor],
+ CursorKind::Text => msg_send![class("NSCursor"), IBeamCursor],
+ CursorKind::Grab | CursorKind::AllScroll =>
msg_send![class("NSCursor"), openHandCursor],
- Cursor::NoDrop | Cursor::NotAllowed =>
+ CursorKind::NoDrop | CursorKind::NotAllowed =>
msg_send![class("NSCursor"), operationNotAllowedCursor],
- Cursor::Pointer => msg_send![class("NSCursor"), pointingHandCursor],
- Cursor::SResize => msg_send![class("NSCursor"), resizeDownCursor],
- Cursor::WResize => msg_send![class("NSCursor"), resizeLeftCursor],
- Cursor::EwResize | Cursor::ColResize =>
+ CursorKind::Pointer => msg_send![class("NSCursor"), pointingHandCursor],
+ CursorKind::SResize => msg_send![class("NSCursor"), resizeDownCursor],
+ CursorKind::WResize => msg_send![class("NSCursor"), resizeLeftCursor],
+ CursorKind::EwResize | CursorKind::ColResize =>
msg_send![class("NSCursor"), resizeLeftRightCursor],
- Cursor::EResize => msg_send![class("NSCursor"), resizeRightCursor],
- Cursor::NResize => msg_send![class("NSCursor"), resizeUpCursor],
- Cursor::NsResize | Cursor::RowResize =>
+ CursorKind::EResize => msg_send![class("NSCursor"), resizeRightCursor],
+ CursorKind::NResize => msg_send![class("NSCursor"), resizeUpCursor],
+ CursorKind::NsResize | CursorKind::RowResize =>
msg_send![class("NSCursor"), resizeUpDownCursor],
- Cursor::VerticalText => msg_send![class("NSCursor"), IBeamCursorForVerticalLayout],
+ CursorKind::VerticalText => msg_send![class("NSCursor"), IBeamCursorForVerticalLayout],
_ => msg_send![class("NSCursor"), arrowCursor],
}
}
}
#[cfg(not(target_os="macos"))]
- fn cursor_handle_for_cursor(&self, _: Cursor) -> cef_cursor_handle_t {
+ fn cursor_handle_for_cursor(&self, _: CursorKind) -> cef_cursor_handle_t {
0
}
@@ -488,7 +487,7 @@ impl WindowMethods for Window {
// TODO(negge)
}
- fn set_cursor(&self, cursor: Cursor) {
+ fn set_cursor(&self, cursor: CursorKind) {
use types::{CefCursorInfo,cef_point_t,cef_size_t};
let browser = self.cef_browser.borrow();
if let Some(ref browser) = *browser {
diff --git a/ports/cef/wrappers.rs b/ports/cef/wrappers.rs
index 16beca788f9..707ad0e2355 100644
--- a/ports/cef/wrappers.rs
+++ b/ports/cef/wrappers.rs
@@ -199,7 +199,7 @@ cef_unimplemented_wrapper!(cef_string_t, String);
impl<'a> CefWrap<*const cef_string_t> for &'a [u16] {
fn to_c(buffer: &'a [u16]) -> *const cef_string_t {
unsafe {
- let ptr = libc::malloc(((buffer.len() + 1) * 2)) as *mut c_ushort;
+ let ptr = libc::malloc((buffer.len() + 1) * 2) as *mut c_ushort;
ptr::copy(buffer.as_ptr(), ptr, buffer.len());
*ptr.offset(buffer.len() as isize) = 0;
diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs
index 2ee79abc56c..ca344ac922d 100644
--- a/ports/geckolib/glue.rs
+++ b/ports/geckolib/glue.rs
@@ -6,7 +6,7 @@ use cssparser::{ParseErrorKind, Parser, ParserInput};
use cssparser::ToCss as ParserToCss;
use env_logger::LogBuilder;
use malloc_size_of::MallocSizeOfOps;
-use selectors::{Element, NthIndexCache};
+use selectors::NthIndexCache;
use selectors::matching::{MatchingContext, MatchingMode, matches_selector};
use servo_arc::{Arc, ArcBorrow, RawOffsetArc};
use smallvec::SmallVec;
@@ -122,7 +122,7 @@ use style::gecko_properties;
use style::invalidation::element::restyle_hints;
use style::media_queries::{Device, MediaList, parse_media_query_list};
use style::parser::{Parse, ParserContext, self};
-use style::properties::{CascadeFlags, ComputedValues, DeclarationSource, Importance};
+use style::properties::{ComputedValues, DeclarationSource, Importance};
use style::properties::{LonghandId, LonghandIdSet, PropertyDeclaration, PropertyDeclarationBlock, PropertyId};
use style::properties::{PropertyDeclarationId, ShorthandId};
use style::properties::{SourcePropertyDeclaration, StyleBuilder};
@@ -155,7 +155,7 @@ use style::values::distance::ComputeSquaredDistance;
use style::values::specified;
use style::values::specified::gecko::IntersectionObserverRootMargin;
use style::values::specified::source_size_list::SourceSizeList;
-use style_traits::{ParsingMode, StyleParseErrorKind, ToCss};
+use style_traits::{CssWriter, ParsingMode, StyleParseErrorKind, ToCss};
use super::error_reporter::ErrorReporter;
use super::stylesheet_loader::StylesheetLoader;
@@ -705,14 +705,11 @@ pub extern "C" fn Servo_AnimationValue_Serialize(value: RawServoAnimationValueBo
buffer: *mut nsAString)
{
let uncomputed_value = AnimationValue::as_arc(&value).uncompute();
- let mut string = String::new();
+ let buffer = unsafe { buffer.as_mut().unwrap() };
let rv = PropertyDeclarationBlock::with_one(uncomputed_value, Importance::Normal)
- .single_value_to_css(&get_property_id_from_nscsspropertyid!(property, ()), &mut string,
+ .single_value_to_css(&get_property_id_from_nscsspropertyid!(property, ()), buffer,
None, None /* No extra custom properties */);
debug_assert!(rv.is_ok());
-
- let buffer = unsafe { buffer.as_mut().unwrap() };
- buffer.assign_utf8(&string);
}
#[no_mangle]
@@ -734,7 +731,7 @@ pub extern "C" fn Servo_Shorthand_AnimationValues_Serialize(shorthand_property:
values.iter().map(|v| AnimationValue::as_arc(unsafe { &&*v.mRawPtr }).uncompute()).collect();
let mut string = String::new();
- let rv = shorthand.longhands_to_css(declarations.iter(), &mut string);
+ let rv = shorthand.longhands_to_css(declarations.iter(), &mut CssWriter::new(&mut string));
if rv.is_ok() {
let buffer = unsafe { buffer.as_mut().unwrap() };
buffer.assign_utf8(&string);
@@ -1829,7 +1826,7 @@ pub extern "C" fn Servo_Keyframe_GetKeyText(
result: *mut nsAString
) {
read_locked_arc(keyframe, |keyframe: &Keyframe| {
- keyframe.selector.to_css(unsafe { result.as_mut().unwrap() }).unwrap()
+ keyframe.selector.to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap()
})
}
@@ -1969,7 +1966,7 @@ pub extern "C" fn Servo_PageRule_SetStyle(rule: RawServoPageRuleBorrowed,
pub extern "C" fn Servo_SupportsRule_GetConditionText(rule: RawServoSupportsRuleBorrowed,
result: *mut nsAString) {
read_locked_arc(rule, |rule: &SupportsRule| {
- rule.condition.to_css(unsafe { result.as_mut().unwrap() }).unwrap();
+ rule.condition.to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap();
})
}
@@ -1977,7 +1974,7 @@ pub extern "C" fn Servo_SupportsRule_GetConditionText(rule: RawServoSupportsRule
pub extern "C" fn Servo_DocumentRule_GetConditionText(rule: RawServoDocumentRuleBorrowed,
result: *mut nsAString) {
read_locked_arc(rule, |rule: &DocumentRule| {
- rule.condition.to_css(unsafe { result.as_mut().unwrap() }).unwrap();
+ rule.condition.to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap();
})
}
@@ -1985,7 +1982,7 @@ pub extern "C" fn Servo_DocumentRule_GetConditionText(rule: RawServoDocumentRule
pub extern "C" fn Servo_FontFeatureValuesRule_GetFontFamily(rule: RawServoFontFeatureValuesRuleBorrowed,
result: *mut nsAString) {
read_locked_arc(rule, |rule: &FontFeatureValuesRule| {
- rule.font_family_to_css(unsafe { result.as_mut().unwrap() }).unwrap();
+ rule.font_family_to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap();
})
}
@@ -1993,7 +1990,7 @@ pub extern "C" fn Servo_FontFeatureValuesRule_GetFontFamily(rule: RawServoFontFe
pub extern "C" fn Servo_FontFeatureValuesRule_GetValueText(rule: RawServoFontFeatureValuesRuleBorrowed,
result: *mut nsAString) {
read_locked_arc(rule, |rule: &FontFeatureValuesRule| {
- rule.value_to_css(unsafe { result.as_mut().unwrap() }).unwrap();
+ rule.value_to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap();
})
}
@@ -2042,12 +2039,10 @@ pub extern "C" fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null:
page_decls,
);
- let cascade_flags = CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP;
- data.stylist.precomputed_values_for_pseudo_with_rule_node(
+ data.stylist.precomputed_values_for_pseudo_with_rule_node::<GeckoElement>(
&guards,
&pseudo,
parent_style_or_null.map(|x| &*x),
- cascade_flags,
&metrics,
rule_node
).into()
@@ -2223,7 +2218,7 @@ fn get_pseudo_style(
PseudoElementCascadeType::Eager => {
match *pseudo {
PseudoElement::FirstLetter => {
- styles.pseudos.get(&pseudo).and_then(|pseudo_styles| {
+ styles.pseudos.get(&pseudo).map(|pseudo_styles| {
// inherited_styles can be None when doing lazy resolution
// (e.g. for computed style) or when probing. In that case
// we just inherit from our element, which is what Gecko
@@ -2234,15 +2229,14 @@ fn get_pseudo_style(
let guards = StylesheetGuards::same(guard);
let metrics = get_metrics_provider_for_product();
let inputs = CascadeInputs::new_from_style(pseudo_styles);
- doc_data.stylist
- .compute_pseudo_element_style_with_inputs(
- &inputs,
- pseudo,
- &guards,
- Some(inherited_styles),
- &metrics,
- CascadeFlags::empty(),
- )
+ doc_data.stylist.compute_pseudo_element_style_with_inputs(
+ inputs,
+ pseudo,
+ &guards,
+ Some(inherited_styles),
+ &metrics,
+ Some(element),
+ )
})
},
_ => {
@@ -2677,16 +2671,11 @@ pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
let guard = global_style_data.shared_lock.read();
let decls = Locked::<PropertyDeclarationBlock>::as_arc(&declarations).read_with(&guard);
- let mut string = String::new();
-
let custom_properties = Locked::<PropertyDeclarationBlock>::arc_from_borrowed(&custom_properties);
let custom_properties = custom_properties.map(|block| block.read_with(&guard));
- let rv = decls.single_value_to_css(
- &property_id, &mut string, computed_values, custom_properties);
- debug_assert!(rv.is_ok());
-
let buffer = unsafe { buffer.as_mut().unwrap() };
- buffer.assign_utf8(&string);
+ let rv = decls.single_value_to_css(&property_id, buffer, computed_values, custom_properties);
+ debug_assert!(rv.is_ok());
}
#[no_mangle]
@@ -2706,7 +2695,7 @@ pub extern "C" fn Servo_SerializeFontValueForCanvas(
};
let mut string = String::new();
- let rv = longhands.to_css_for_canvas(&mut string);
+ let rv = longhands.to_css_for_canvas(&mut CssWriter::new(&mut string));
debug_assert!(rv.is_ok());
let buffer = unsafe { buffer.as_mut().unwrap() };
@@ -2933,7 +2922,7 @@ pub extern "C" fn Servo_DeclarationBlock_HasCSSWideKeyword(
#[no_mangle]
pub extern "C" fn Servo_MediaList_GetText(list: RawServoMediaListBorrowed, result: *mut nsAString) {
read_locked_arc(list, |list: &MediaList| {
- list.to_css(unsafe { result.as_mut().unwrap() }).unwrap();
+ list.to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap();
})
}
@@ -2989,7 +2978,7 @@ pub extern "C" fn Servo_MediaList_GetMediumAt(
) -> bool {
read_locked_arc(list, |list: &MediaList| {
if let Some(media_query) = list.media_queries.get(index as usize) {
- media_query.to_css(unsafe { result.as_mut().unwrap() }).unwrap();
+ media_query.to_css(&mut CssWriter::new(unsafe { result.as_mut().unwrap() })).unwrap();
true
} else {
false
@@ -3641,28 +3630,17 @@ pub extern "C" fn Servo_ReparentStyle(
let pseudo = style_to_reparent.pseudo();
let element = element.map(GeckoElement);
- let mut cascade_flags = CascadeFlags::empty();
- if style_to_reparent.is_anon_box() {
- cascade_flags.insert(CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP);
- }
- if let Some(element) = element {
- if element.is_link() {
- cascade_flags.insert(CascadeFlags::IS_LINK);
- if element.is_visited_link() && doc_data.visited_styles_enabled() {
- cascade_flags.insert(CascadeFlags::IS_VISITED_LINK);
- }
- };
- }
-
- doc_data.stylist.compute_style_with_inputs(
- &inputs,
+ doc_data.stylist.cascade_style_and_visited(
+ element,
pseudo.as_ref(),
+ inputs,
&StylesheetGuards::same(&guard),
Some(parent_style),
Some(parent_style_ignoring_first_line),
Some(layout_parent_style),
&metrics,
- cascade_flags,
+ /* rule_cache = */ None,
+ &mut RuleCacheConditions::default(),
).into()
}
@@ -4305,7 +4283,7 @@ pub extern "C" fn Servo_StyleSet_ResolveForDeclarations(
let declarations = Locked::<PropertyDeclarationBlock>::as_arc(&declarations);
- doc_data.stylist.compute_for_declarations(
+ doc_data.stylist.compute_for_declarations::<GeckoElement>(
&guards,
parent_style,
declarations.clone_arc(),
@@ -4396,13 +4374,13 @@ pub extern "C" fn Servo_GetCustomPropertyValue(
None => return false,
};
- let name = unsafe { Atom::from((&*name)) };
+ let name = unsafe { Atom::from(&*name) };
let computed_value = match custom_properties.get(&name) {
Some(v) => v,
None => return false,
};
- computed_value.to_css(unsafe { value.as_mut().unwrap() }).unwrap();
+ computed_value.to_css(&mut CssWriter::new(unsafe { value.as_mut().unwrap() })).unwrap();
true
}
diff --git a/ports/geckolib/tests/build.rs b/ports/geckolib/tests/build.rs
index 7712698c4b8..bfb20d5af4e 100644
--- a/ports/geckolib/tests/build.rs
+++ b/ports/geckolib/tests/build.rs
@@ -39,6 +39,21 @@ fn main() {
for line in r.lines() {
let s = line.unwrap();
for cap in matcher.captures_iter(&s) {
+ // This causes a mismatch in old libclangs (the ones that are
+ // used in linux32 mozilla-central) because it generates:
+ //
+ // *const nsTArray<*const RawServoStyleSet>
+ //
+ // Instead of:
+ //
+ // *const nsTArray<RawServoStyleSetBorrowed>
+ //
+ // Which is not a problem, but would cause this to not compile.
+ //
+ // Skip this until libclang is updated there.
+ if &cap[1] == "InvalidateStyleForDocStateChanges" {
+ continue;
+ }
w.write_all(format!(" [ Servo_{0}, bindings::Servo_{0} ];\n", &cap[1]).as_bytes()).unwrap();
}
}
diff --git a/ports/glutin/window.rs b/ports/glutin/window.rs
index cea115d6f89..1d34713923a 100644
--- a/ports/glutin/window.rs
+++ b/ports/glutin/window.rs
@@ -42,7 +42,7 @@ use std::rc::Rc;
use std::thread;
use std::time;
use style_traits::DevicePixel;
-use style_traits::cursor::Cursor;
+use style_traits::cursor::CursorKind;
#[cfg(target_os = "windows")]
use user32;
use webrender_api::{DeviceUintRect, DeviceUintSize, ScrollLocation};
@@ -1190,47 +1190,48 @@ impl WindowMethods for Window {
}
/// Has no effect on Android.
- fn set_cursor(&self, c: Cursor) {
+ fn set_cursor(&self, cursor: CursorKind) {
match self.kind {
WindowKind::Window(ref window) => {
use glutin::MouseCursor;
- let glutin_cursor = match c {
- Cursor::None => MouseCursor::NoneCursor,
- Cursor::Default => MouseCursor::Default,
- Cursor::Pointer => MouseCursor::Hand,
- Cursor::ContextMenu => MouseCursor::ContextMenu,
- Cursor::Help => MouseCursor::Help,
- Cursor::Progress => MouseCursor::Progress,
- Cursor::Wait => MouseCursor::Wait,
- Cursor::Cell => MouseCursor::Cell,
- Cursor::Crosshair => MouseCursor::Crosshair,
- Cursor::Text => MouseCursor::Text,
- Cursor::VerticalText => MouseCursor::VerticalText,
- Cursor::Alias => MouseCursor::Alias,
- Cursor::Copy => MouseCursor::Copy,
- Cursor::Move => MouseCursor::Move,
- Cursor::NoDrop => MouseCursor::NoDrop,
- Cursor::NotAllowed => MouseCursor::NotAllowed,
- Cursor::Grab => MouseCursor::Grab,
- Cursor::Grabbing => MouseCursor::Grabbing,
- Cursor::EResize => MouseCursor::EResize,
- Cursor::NResize => MouseCursor::NResize,
- Cursor::NeResize => MouseCursor::NeResize,
- Cursor::NwResize => MouseCursor::NwResize,
- Cursor::SResize => MouseCursor::SResize,
- Cursor::SeResize => MouseCursor::SeResize,
- Cursor::SwResize => MouseCursor::SwResize,
- Cursor::WResize => MouseCursor::WResize,
- Cursor::EwResize => MouseCursor::EwResize,
- Cursor::NsResize => MouseCursor::NsResize,
- Cursor::NeswResize => MouseCursor::NeswResize,
- Cursor::NwseResize => MouseCursor::NwseResize,
- Cursor::ColResize => MouseCursor::ColResize,
- Cursor::RowResize => MouseCursor::RowResize,
- Cursor::AllScroll => MouseCursor::AllScroll,
- Cursor::ZoomIn => MouseCursor::ZoomIn,
- Cursor::ZoomOut => MouseCursor::ZoomOut,
+ let glutin_cursor = match cursor {
+ CursorKind::Auto => MouseCursor::Default,
+ CursorKind::None => MouseCursor::NoneCursor,
+ CursorKind::Default => MouseCursor::Default,
+ CursorKind::Pointer => MouseCursor::Hand,
+ CursorKind::ContextMenu => MouseCursor::ContextMenu,
+ CursorKind::Help => MouseCursor::Help,
+ CursorKind::Progress => MouseCursor::Progress,
+ CursorKind::Wait => MouseCursor::Wait,
+ CursorKind::Cell => MouseCursor::Cell,
+ CursorKind::Crosshair => MouseCursor::Crosshair,
+ CursorKind::Text => MouseCursor::Text,
+ CursorKind::VerticalText => MouseCursor::VerticalText,
+ CursorKind::Alias => MouseCursor::Alias,
+ CursorKind::Copy => MouseCursor::Copy,
+ CursorKind::Move => MouseCursor::Move,
+ CursorKind::NoDrop => MouseCursor::NoDrop,
+ CursorKind::NotAllowed => MouseCursor::NotAllowed,
+ CursorKind::Grab => MouseCursor::Grab,
+ CursorKind::Grabbing => MouseCursor::Grabbing,
+ CursorKind::EResize => MouseCursor::EResize,
+ CursorKind::NResize => MouseCursor::NResize,
+ CursorKind::NeResize => MouseCursor::NeResize,
+ CursorKind::NwResize => MouseCursor::NwResize,
+ CursorKind::SResize => MouseCursor::SResize,
+ CursorKind::SeResize => MouseCursor::SeResize,
+ CursorKind::SwResize => MouseCursor::SwResize,
+ CursorKind::WResize => MouseCursor::WResize,
+ CursorKind::EwResize => MouseCursor::EwResize,
+ CursorKind::NsResize => MouseCursor::NsResize,
+ CursorKind::NeswResize => MouseCursor::NeswResize,
+ CursorKind::NwseResize => MouseCursor::NwseResize,
+ CursorKind::ColResize => MouseCursor::ColResize,
+ CursorKind::RowResize => MouseCursor::RowResize,
+ CursorKind::AllScroll => MouseCursor::AllScroll,
+ CursorKind::ZoomIn => MouseCursor::ZoomIn,
+ CursorKind::ZoomOut => MouseCursor::ZoomOut,
};
window.set_cursor(glutin_cursor);
}
diff --git a/python/servo/bootstrap_commands.py b/python/servo/bootstrap_commands.py
index 90391785698..47f56bb167c 100644
--- a/python/servo/bootstrap_commands.py
+++ b/python/servo/bootstrap_commands.py
@@ -189,7 +189,8 @@ class MachCommands(CommandBase):
if os.environ.get("CARGO_HOME", ""):
cargo_dir = os.environ.get("CARGO_HOME")
else:
- cargo_dir = path.join(self.context.topdir, ".cargo")
+ home_dir = os.path.expanduser("~")
+ cargo_dir = path.join(home_dir, ".cargo")
if not os.path.isdir(cargo_dir):
return
cargo_file = open(path.join(self.context.topdir, "Cargo.lock"))
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 03d567786f6..8ed67964bab 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -231,27 +231,27 @@ class MachCommands(CommandBase):
else:
test_patterns.append(test)
- in_crate_packages = []
-
- # Since the selectors tests have no corresponding selectors_tests crate in tests/unit,
- # we need to treat them separately from those that do.
- try:
- packages.remove('selectors')
- in_crate_packages += ["selectors"]
- except KeyError:
- pass
-
+ self_contained_tests = [
+ "gfx",
+ "layout",
+ "msg",
+ "net",
+ "net_traits",
+ "selectors",
+ "servo_config",
+ "servo_remutex",
+ ]
if not packages:
packages = set(os.listdir(path.join(self.context.topdir, "tests", "unit"))) - set(['.DS_Store'])
- in_crate_packages += ["selectors"]
+ packages |= set(self_contained_tests)
- # Since the selectors tests have no corresponding selectors_tests crate in tests/unit,
- # we need to treat them separately from those that do.
- try:
- packages.remove('selectors')
- in_crate_packages += ["selectors"]
- except KeyError:
- pass
+ in_crate_packages = []
+ for crate in self_contained_tests:
+ try:
+ packages.remove(crate)
+ in_crate_packages += [crate]
+ except KeyError:
+ pass
packages.discard('stylo')
@@ -264,7 +264,7 @@ class MachCommands(CommandBase):
env["PATH"] = "%s%s%s" % (path.dirname(self.get_binary_path(False, False)), os.pathsep, env["PATH"])
features = self.servo_features()
- if len(packages) > 0:
+ if len(packages) > 0 or len(in_crate_packages) > 0:
args = ["cargo", "bench" if bench else "test", "--manifest-path", self.servo_manifest()]
for crate in packages:
args += ["-p", "%s_tests" % crate]
@@ -872,7 +872,7 @@ testing/web-platform/mozilla/tests for Servo-only tests""" % reference_path)
def update_net_cookies(self):
cache_dir = path.join(self.config["tools"]["cache-dir"], "tests")
run_file = path.abspath(path.join(PROJECT_TOPLEVEL_PATH,
- "tests", "unit", "net",
+ "components", "net", "tests",
"cookie_http_state_utils.py"))
run_globals = {"__file__": run_file}
execfile(run_file, run_globals)
diff --git a/rust-toolchain b/rust-toolchain
index 4e28cf4072d..a80d36c679b 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1 +1 @@
-nightly-2018-01-14
+nightly-2018-01-21
diff --git a/servo-tidy.toml b/servo-tidy.toml
index 2f668675af8..a7230e35aee 100644
--- a/servo-tidy.toml
+++ b/servo-tidy.toml
@@ -38,14 +38,11 @@ num = [
packages = [
"bitflags",
"lazy_static",
- "mime",
- "semver",
- "toml",
- "unicase",
"winapi",
]
# Files that are ignored for all tidy and lint checks.
files = [
+ "./components/net/tests/parsable_mime/text",
# Mako does not lend itself easily to splitting long lines
"./components/style/properties/helpers/animated_properties.mako.rs",
# Helper macro where actually a pseudo-element per line makes sense.
@@ -63,7 +60,6 @@ files = [
"./tests/wpt/mozilla/tests/webgl",
# Ignore those files since the issues reported are on purpose
"./tests/html/bad-line-ends.html",
- "./tests/unit/net/parsable_mime/text",
"./tests/wpt/mozilla/tests/css/fonts",
"./tests/wpt/mozilla/tests/css/pre_with_tab.html",
"./tests/wpt/mozilla/tests/mozilla/textarea_placeholder.html",
diff --git a/tests/unit/gfx/Cargo.toml b/tests/unit/gfx/Cargo.toml
deleted file mode 100644
index 46495840ce0..00000000000
--- a/tests/unit/gfx/Cargo.toml
+++ /dev/null
@@ -1,16 +0,0 @@
-[package]
-name = "gfx_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "gfx_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-cssparser = "0.23.0"
-gfx = {path = "../../../components/gfx"}
-ipc-channel = "0.9"
-style = {path = "../../../components/style"}
diff --git a/tests/unit/gfx/lib.rs b/tests/unit/gfx/lib.rs
deleted file mode 100644
index a8120a50138..00000000000
--- a/tests/unit/gfx/lib.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#![cfg(test)]
-
-extern crate gfx;
-
-mod text_util;
diff --git a/tests/unit/layout/Cargo.toml b/tests/unit/layout/Cargo.toml
deleted file mode 100644
index d84754912db..00000000000
--- a/tests/unit/layout/Cargo.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "layout_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "layout_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-layout = {path = "../../../components/layout"}
-size_of_test = {path = "../../../components/size_of_test"}
diff --git a/tests/unit/layout/lib.rs b/tests/unit/layout/lib.rs
deleted file mode 100644
index d9e72841199..00000000000
--- a/tests/unit/layout/lib.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#[cfg(all(test, target_pointer_width = "64"))] extern crate layout;
-#[cfg(all(test, target_pointer_width = "64"))] #[macro_use] extern crate size_of_test;
-#[cfg(all(test, target_pointer_width = "64"))] mod size_of;
diff --git a/tests/unit/msg/Cargo.toml b/tests/unit/msg/Cargo.toml
deleted file mode 100644
index 89ee91d22c0..00000000000
--- a/tests/unit/msg/Cargo.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "msg_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "msg_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-msg = {path = "../../../components/msg"}
-size_of_test = {path = "../../../components/size_of_test"}
diff --git a/tests/unit/msg/lib.rs b/tests/unit/msg/lib.rs
deleted file mode 100644
index 62e591ef800..00000000000
--- a/tests/unit/msg/lib.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#[cfg(all(test, target_pointer_width = "64"))] extern crate msg;
-#[cfg(all(test, target_pointer_width = "64"))] #[macro_use] extern crate size_of_test;
-#[cfg(all(test, target_pointer_width = "64"))] mod size_of;
diff --git a/tests/unit/net/Cargo.toml b/tests/unit/net/Cargo.toml
deleted file mode 100644
index d113e239d18..00000000000
--- a/tests/unit/net/Cargo.toml
+++ /dev/null
@@ -1,28 +0,0 @@
-[package]
-name = "net_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "net_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-cookie = "0.10"
-devtools_traits = {path = "../../../components/devtools_traits"}
-flate2 = "0.2.0"
-hyper = "0.10"
-hyper-openssl = "0.2"
-hyper_serde = "0.8"
-ipc-channel = "0.9"
-msg = {path = "../../../components/msg"}
-net = {path = "../../../components/net"}
-net_traits = {path = "../../../components/net_traits"}
-profile_traits = {path = "../../../components/profile_traits"}
-servo_config = {path = "../../../components/config"}
-time = "0.1"
-unicase = "1.0"
-url = "1.2"
-servo_url = {path = "../../../components/url"}
diff --git a/tests/unit/net_traits/Cargo.toml b/tests/unit/net_traits/Cargo.toml
deleted file mode 100644
index 28da0a1d7c0..00000000000
--- a/tests/unit/net_traits/Cargo.toml
+++ /dev/null
@@ -1,13 +0,0 @@
-[package]
-name = "net_traits_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "net_traits_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-net_traits = {path = "../../../components/net_traits"}
diff --git a/tests/unit/servo_config/Cargo.toml b/tests/unit/servo_config/Cargo.toml
deleted file mode 100644
index dec49de186a..00000000000
--- a/tests/unit/servo_config/Cargo.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "servo_config_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "servo_config_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-servo_config = {path = "../../../components/config"}
-
diff --git a/tests/unit/servo_config/lib.rs b/tests/unit/servo_config/lib.rs
deleted file mode 100644
index dc2a6446848..00000000000
--- a/tests/unit/servo_config/lib.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#![cfg(test)]
-
-extern crate servo_config;
-
-mod opts;
-mod prefs;
diff --git a/tests/unit/servo_remutex/Cargo.toml b/tests/unit/servo_remutex/Cargo.toml
deleted file mode 100644
index 20782b623e2..00000000000
--- a/tests/unit/servo_remutex/Cargo.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "servo_remutex_tests"
-version = "0.0.1"
-authors = ["The Servo Project Developers"]
-license = "MPL-2.0"
-
-[lib]
-name = "servo_remutex_tests"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-servo_remutex = {path = "../../../components/remutex"}
-
diff --git a/tests/unit/style/media_queries.rs b/tests/unit/style/media_queries.rs
index 2cddcff5def..58b878bfb8d 100644
--- a/tests/unit/style/media_queries.rs
+++ b/tests/unit/style/media_queries.rs
@@ -279,8 +279,7 @@ fn test_mq_expressions() {
fn test_to_css() {
test_media_rule("@media print and (width: 43px) { }", |list, _| {
let q = &list.media_queries[0];
- let mut dest = String::new();
- assert_eq!(Ok(()), q.to_css(&mut dest));
+ let dest = q.to_css_string();
assert_eq!(dest, "print and (width: 43px)");
});
}
diff --git a/tests/unit/style/properties/serialization.rs b/tests/unit/style/properties/serialization.rs
index 7f8d6478c25..282051d8779 100644
--- a/tests/unit/style/properties/serialization.rs
+++ b/tests/unit/style/properties/serialization.rs
@@ -5,6 +5,7 @@
use properties::{parse, parse_input};
use style::computed_values::display::T as Display;
use style::properties::{PropertyDeclaration, Importance};
+use style::properties::declaration_block::PropertyDeclarationBlock;
use style::properties::parse_property_declaration_list;
use style::values::{CustomIdent, RGBA};
use style::values::generics::flex::FlexBasis;
@@ -15,6 +16,18 @@ use style::values::specified::url::SpecifiedUrl;
use style_traits::ToCss;
use stylesheets::block_from;
+trait ToCssString {
+ fn to_css_string(&self) -> String;
+}
+
+impl ToCssString for PropertyDeclarationBlock {
+ fn to_css_string(&self) -> String {
+ let mut css = String::new();
+ self.to_css(&mut css).unwrap();
+ css
+ }
+}
+
#[test]
fn property_declaration_block_should_serialize_correctly() {
use style::properties::longhands::overflow_x::SpecifiedValue as OverflowValue;
diff --git a/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini b/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini
index 3e76435960d..a812f00415f 100644
--- a/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini
+++ b/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini
@@ -18,6 +18,3 @@
[Invalid bits argument: "hello"]
expected: FAIL
- [Using object fileName]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 6c89d94229d..29e8265a446 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -79733,6 +79733,54 @@
{}
]
],
+ "css/CSS2/selectors/class-selector-009.xht": [
+ [
+ "/css/CSS2/selectors/class-selector-009.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-green-background.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/class-selector-010.xht": [
+ [
+ "/css/CSS2/selectors/class-selector-010.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-green-background.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/class-selector-011.xht": [
+ [
+ "/css/CSS2/selectors/class-selector-011.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-green-background.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/class-selector-012.xht": [
+ [
+ "/css/CSS2/selectors/class-selector-012.xht",
+ [
+ [
+ "/css/CSS2/selectors/class-selector-012-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/combinator-001.xht": [
[
"/css/CSS2/selectors/combinator-001.xht",
@@ -79973,6 +80021,42 @@
{}
]
],
+ "css/CSS2/selectors/first-child-selector-001.xht": [
+ [
+ "/css/CSS2/selectors/first-child-selector-001.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-child-selector-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-child-selector-002.xht": [
+ [
+ "/css/CSS2/selectors/first-child-selector-002.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-child-selector-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-child-selector-003.xht": [
+ [
+ "/css/CSS2/selectors/first-child-selector-003.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-this-text-should-be-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/first-letter-001.xht": [
[
"/css/CSS2/selectors/first-letter-001.xht",
@@ -85073,6 +85157,114 @@
{}
]
],
+ "css/CSS2/selectors/first-letter-selector-000.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-000.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-000-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-001.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-001.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-002.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-002.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-003.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-003.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-004.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-004.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-005.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-005.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-005-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-007.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-007.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-007-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-008.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-008.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-019.xht": [
+ [
+ "/css/CSS2/selectors/first-letter-selector-019.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/first-letter-selector-028.xht": [
[
"/css/CSS2/selectors/first-letter-selector-028.xht",
@@ -85253,6 +85445,54 @@
{}
]
],
+ "css/CSS2/selectors/first-line-pseudo-019.xht": [
+ [
+ "/css/CSS2/selectors/first-line-pseudo-019.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-this-text-should-be-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-line-pseudo-020.xht": [
+ [
+ "/css/CSS2/selectors/first-line-pseudo-020.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-this-text-should-be-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-line-pseudo-021.xht": [
+ [
+ "/css/CSS2/selectors/first-line-pseudo-021.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-this-text-should-be-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-line-selector-010.xht": [
+ [
+ "/css/CSS2/selectors/first-line-selector-010.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-005-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/first-line-selector-013.xht": [
[
"/css/CSS2/selectors/first-line-selector-013.xht",
@@ -85305,6 +85545,18 @@
{}
]
],
+ "css/CSS2/selectors/id-selector-002.xht": [
+ [
+ "/css/CSS2/selectors/id-selector-002.xht",
+ [
+ [
+ "/css/CSS2/reference/filler-text-below-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/id-selector-004.xht": [
[
"/css/CSS2/selectors/id-selector-004.xht",
@@ -85377,6 +85629,42 @@
{}
]
],
+ "css/CSS2/selectors/lang-selector-004.xht": [
+ [
+ "/css/CSS2/selectors/lang-selector-004.xht",
+ [
+ [
+ "/css/CSS2/selectors/lang-selector-004-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/lang-selector-005.xht": [
+ [
+ "/css/CSS2/selectors/lang-selector-005.xht",
+ [
+ [
+ "/css/CSS2/reference/filler-text-below-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/lang-selector-006.xht": [
+ [
+ "/css/CSS2/selectors/lang-selector-006.xht",
+ [
+ [
+ "/css/CSS2/reference/filler-text-below-green.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/pseudo-001.xht": [
[
"/css/CSS2/selectors/pseudo-001.xht",
@@ -85401,6 +85689,42 @@
{}
]
],
+ "css/CSS2/selectors/pseudo-006.xht": [
+ [
+ "/css/CSS2/selectors/pseudo-006.xht",
+ [
+ [
+ "/css/CSS2/selectors/first-letter-selector-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/pseudo-007.xht": [
+ [
+ "/css/CSS2/selectors/pseudo-007.xht",
+ [
+ [
+ "/css/CSS2/selectors/universal-selector-002-ref.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/pseudo-008.xht": [
+ [
+ "/css/CSS2/selectors/pseudo-008.xht",
+ [
+ [
+ "/css/CSS2/selectors/pseudo-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/selectors/pseudo-014.xht": [
[
"/css/CSS2/selectors/pseudo-014.xht",
@@ -87910,7 +88234,7 @@
"/css/CSS2/syntax/ident-003.xht",
[
[
- "/css/CSS2/syntax/ident-000-ref.xht",
+ "/css/CSS2/syntax/ident-003-ref.xht",
"=="
]
],
@@ -88109,18 +88433,6 @@
{}
]
],
- "css/CSS2/syntax/ident-020.xht": [
- [
- "/css/CSS2/syntax/ident-020.xht",
- [
- [
- "/css/CSS2/syntax/ident-000-ref.xht",
- "=="
- ]
- ],
- {}
- ]
- ],
"css/CSS2/syntax/ignored-rules-001.xht": [
[
"/css/CSS2/syntax/ignored-rules-001.xht",
@@ -89249,6 +89561,174 @@
{}
]
],
+ "css/CSS2/tables/caption-side-applies-to-001.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-001.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-002.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-002.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-003.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-003.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-005.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-005.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-006.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-006.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-007.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-007.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-008.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-009.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-009.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-010.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-010.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-011.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-011.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-012.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-012.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-013.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-013.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-014.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-014.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-015.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-015.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/tables/caption-side-applies-to-016.xht": [
[
"/css/CSS2/tables/caption-side-applies-to-016.xht",
@@ -89261,6 +89741,90 @@
{}
]
],
+ "css/CSS2/tables/caption-side-applies-to-017.xht": [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-017.xht",
+ [
+ [
+ "/css/CSS2/tables/caption-side-applies-to-017-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-001.xht": [
+ [
+ "/css/CSS2/tables/collapsing-border-model-001.xht",
+ [
+ [
+ "/css/CSS2/tables/collapsing-border-model-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-003.xht": [
+ [
+ "/css/CSS2/tables/collapsing-border-model-003.xht",
+ [
+ [
+ "/css/CSS2/tables/collapsing-border-model-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-004.xht": [
+ [
+ "/css/CSS2/tables/collapsing-border-model-004.xht",
+ [
+ [
+ "/css/CSS2/tables/collapsing-border-model-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-007.xht": [
+ [
+ "/css/CSS2/tables/collapsing-border-model-007.xht",
+ [
+ [
+ "/css/CSS2/tables/collapsing-border-model-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-008.xht": [
+ [
+ "/css/CSS2/tables/collapsing-border-model-008.xht",
+ [
+ [
+ "/css/CSS2/tables/collapsing-border-model-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-009.xht": [
+ [
+ "/css/CSS2/tables/collapsing-border-model-009.xht",
+ [
+ [
+ "/css/CSS2/tables/collapsing-border-model-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/tables/collapsing-border-model-010a.xht": [
[
"/css/CSS2/tables/collapsing-border-model-010a.xht",
@@ -90377,6 +90941,30 @@
{}
]
],
+ "css/CSS2/tables/row-visibility-001.xht": [
+ [
+ "/css/CSS2/tables/row-visibility-001.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/CSS2/tables/row-visibility-002.xht": [
+ [
+ "/css/CSS2/tables/row-visibility-002.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/tables/separated-border-model-003a.xht": [
[
"/css/CSS2/tables/separated-border-model-003a.xht",
@@ -92593,6 +93181,18 @@
{}
]
],
+ "css/CSS2/tables/table-cell-001.xht": [
+ [
+ "/css/CSS2/tables/table-cell-001.xht",
+ [
+ [
+ "/css/CSS2/reference/ref-filled-black-96px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/tables/table-column-rendering-001.xht": [
[
"/css/CSS2/tables/table-column-rendering-001.xht",
@@ -104481,6 +105081,18 @@
{}
]
],
+ "css/css-content/element-replacement.html": [
+ [
+ "/css/css-content/element-replacement.html",
+ [
+ [
+ "/css/css-content/element-replacement-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-display/display-contents-alignment-001.html": [
[
"/css/css-display/display-contents-alignment-001.html",
@@ -105081,6 +105693,18 @@
{}
]
],
+ "css/css-display/display-contents-text-inherit-002.html": [
+ [
+ "/css/css-display/display-contents-text-inherit-002.html",
+ [
+ [
+ "/css/css-display/display-contents-text-inherit-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-display/display-contents-text-inherit.html": [
[
"/css/css-display/display-contents-text-inherit.html",
@@ -123177,6 +123801,18 @@
{}
]
],
+ "css/css-scoping/css-scoping-shadow-nested-slot-display-override.html": [
+ [
+ "/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html",
+ [
+ [
+ "/css/css-scoping/reference/green-box.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-scoping/css-scoping-shadow-root-hides-children.html": [
[
"/css/css-scoping/css-scoping-shadow-root-hides-children.html",
@@ -146809,6 +147445,30 @@
{}
]
],
+ "css/css-values/lh-unit-001.html": [
+ [
+ "/css/css-values/lh-unit-001.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-values/lh-unit-002.html": [
+ [
+ "/css/css-values/lh-unit-002.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-values/vh-calc-support-pct.html": [
[
"/css/css-values/vh-calc-support-pct.html",
@@ -158769,6 +159429,18 @@
{}
]
],
+ "css/motion/offset-anchor-transform-box-fill-box.html": [
+ [
+ "/css/motion/offset-anchor-transform-box-fill-box.html",
+ [
+ [
+ "/css/motion/offset-anchor-transform-box-fill-box-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/motion/offset-path-ray.html": [
[
"/css/motion/offset-path-ray.html",
@@ -163197,6 +163869,30 @@
{}
]
],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html": [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html",
+ [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html": [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html",
+ [
+ [
+ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/vendor-imports/mozilla/mozilla-central-reftests/fonts3/font-size-adjust-zero-1.html": [
[
"/css/vendor-imports/mozilla/mozilla-central-reftests/fonts3/font-size-adjust-zero-1.html",
@@ -175941,6 +176637,30 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html",
+ [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html",
+ [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/semantics/embedded-content/the-audio-element/audio_001.htm": [
[
"/html/semantics/embedded-content/the-audio-element/audio_001.htm",
@@ -177561,6 +178281,54 @@
{}
]
],
+ "svg/path/closepath/segment-completing.svg": [
+ [
+ "/svg/path/closepath/segment-completing.svg",
+ [
+ [
+ "/svg/path/closepath/segment-completing-ref.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "svg/path/distance/pathLength-positive.svg": [
+ [
+ "/svg/path/distance/pathLength-positive.svg",
+ [
+ [
+ "/svg/path/distance/pathLength-positive-ref.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "svg/path/distance/pathLength-zero.svg": [
+ [
+ "/svg/path/distance/pathLength-zero.svg",
+ [
+ [
+ "/svg/path/distance/pathLength-zero-ref.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "svg/path/error-handling/render-until-error.svg": [
+ [
+ "/svg/path/error-handling/render-until-error.svg",
+ [
+ [
+ "/svg/path/error-handling/render-until-error-ref.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"svg/path/property/priority.svg": [
[
"/svg/path/property/priority.svg",
@@ -183003,11 +183771,6 @@
{}
]
],
- "WebCryptoAPI/WebCryptoAPI.idl": [
- [
- {}
- ]
- ],
"WebCryptoAPI/derive_bits_keys/ecdh_bits.js": [
[
{}
@@ -186388,6 +187151,16 @@
{}
]
],
+ "bluetooth/generate.py": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/generate_test.py": [
+ [
+ {}
+ ]
+ ],
"bluetooth/resources/bluetooth-helpers.js": [
[
{}
@@ -186398,6 +187171,101 @@
{}
]
],
+ "bluetooth/script-tests/base_test_html.template": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/characteristic/characteristic-is-removed.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/characteristic/descriptor-get-same-object.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/disconnect-called-before.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/disconnect-called-during-error.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/disconnect-called-during-success.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/disconnect-invalidates-objects.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/disconnected-device.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/discovery-complete-service-not-found.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/garbage-collection-ran-during-error.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/garbage-collection-ran-during-success.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/get-different-service-after-reconnection.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/get-same-object.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/invalid-service-name.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/no-permission-absent-service.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/no-permission-for-any-service.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/no-permission-present-service.js": [
+ [
+ {}
+ ]
+ ],
+ "bluetooth/script-tests/server/service-not-found.js": [
+ [
+ {}
+ ]
+ ],
"clear-site-data/support/echo-clear-site-data.py": [
[
{}
@@ -209008,6 +209876,11 @@
{}
]
],
+ "content-security-policy/prefetch-src/prefetch-header-allowed.html.headers": [
+ [
+ {}
+ ]
+ ],
"content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html.sub.headers": [
[
{}
@@ -209433,11 +210306,31 @@
{}
]
],
+ "content-security-policy/support/postmessage-pass-to-opener.html": [
+ [
+ {}
+ ]
+ ],
"content-security-policy/support/postmessage-pass.html": [
[
{}
]
],
+ "content-security-policy/support/prefetch-helper.js": [
+ [
+ {}
+ ]
+ ],
+ "content-security-policy/support/prefetch-subresource.css": [
+ [
+ {}
+ ]
+ ],
+ "content-security-policy/support/prefetch-subresource.css.headers": [
+ [
+ {}
+ ]
+ ],
"content-security-policy/support/report.py": [
[
{}
@@ -222358,6 +223251,11 @@
{}
]
],
+ "css/CSS2/selectors/class-selector-012-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/selectors/descendent-selector-002-ref.xht": [
[
{}
@@ -222373,6 +223271,16 @@
{}
]
],
+ "css/CSS2/selectors/first-child-selector-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-child-selector-002-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/selectors/first-letter-001-ref.xht": [
[
{}
@@ -224438,6 +225346,36 @@
{}
]
],
+ "css/CSS2/selectors/first-letter-selector-000-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-002-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-003-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-005-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/selectors/first-letter-selector-007-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/selectors/first-letter-selector-028-ref.xht": [
[
{}
@@ -224503,11 +225441,21 @@
{}
]
],
+ "css/CSS2/selectors/lang-selector-004-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/selectors/lang-selector-005.xht.headers": [
[
{}
]
],
+ "css/CSS2/selectors/pseudo-008-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/selectors/selectors-001-ref.xht": [
[
{}
@@ -225318,11 +226266,6 @@
{}
]
],
- "css/CSS2/syntax/support/.htaccess": [
- [
- {}
- ]
- ],
"css/CSS2/syntax/support/1x1-green.png": [
[
{}
@@ -225378,27 +226321,27 @@
{}
]
],
- "css/CSS2/syntax/support/at-charset-002.css": [
+ "css/CSS2/syntax/support/at-charset-001.css.headers": [
[
{}
]
],
- "css/CSS2/syntax/support/at-charset-003.css": [
+ "css/CSS2/syntax/support/at-charset-002.css": [
[
{}
]
],
- "css/CSS2/syntax/support/at-charset-004.css": [
+ "css/CSS2/syntax/support/at-charset-002.css.headers": [
[
{}
]
],
- "css/CSS2/syntax/support/at-charset-005.css": [
+ "css/CSS2/syntax/support/at-charset-003.css": [
[
{}
]
],
- "css/CSS2/syntax/support/at-charset-006.css": [
+ "css/CSS2/syntax/support/at-charset-003.css.headers": [
[
{}
]
@@ -225963,6 +226906,11 @@
{}
]
],
+ "css/CSS2/syntax/support/plaintext.css.headers": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/syntax/support/ring.png": [
[
{}
@@ -226178,6 +227126,46 @@
{}
]
],
+ "css/CSS2/tables/caption-side-applies-to-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-002-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-003-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-006-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-008-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/caption-side-applies-to-017-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/CSS2/tables/collapsing-border-model-003-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/CSS2/tables/column-visibility-004-ref.xht": [
[
{}
@@ -233038,6 +234026,16 @@
{}
]
],
+ "css/css-content/element-replacement-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/css-content/resources/rect.svg": [
+ [
+ {}
+ ]
+ ],
"css/css-counter-styles/OWNERS": [
[
{}
@@ -242963,6 +243961,11 @@
{}
]
],
+ "css/css-grid/alignment/support/style-change.js": [
+ [
+ {}
+ ]
+ ],
"css/css-grid/grid-definition/grid-template-columns-fit-content-001-ref.html": [
[
{}
@@ -243118,11 +244121,6 @@
{}
]
],
- "css/css-grid/support/style-change.js": [
- [
- {}
- ]
- ],
"css/css-grid/test-plan/index.html": [
[
{}
@@ -243683,6 +244681,11 @@
{}
]
],
+ "css/css-masking/parsing/resources/parsing-testcommon.js": [
+ [
+ {}
+ ]
+ ],
"css/css-masking/test-mask-ref.html": [
[
{}
@@ -244758,6 +245761,11 @@
{}
]
],
+ "css/css-paint-api/resources/html5.png": [
+ [
+ {}
+ ]
+ ],
"css/css-paint-api/style-background-image-ref.html": [
[
{}
@@ -246143,6 +247151,11 @@
{}
]
],
+ "css/css-shapes/parsing/resources/parsing-testcommon.js": [
+ [
+ {}
+ ]
+ ],
"css/css-shapes/shape-outside/shape-box/reference/shape-outside-box-001-ref.html": [
[
{}
@@ -252193,6 +253206,16 @@
{}
]
],
+ "css/css-typed-om/resources/1x1-green.png": [
+ [
+ {}
+ ]
+ ],
+ "css/css-typed-om/resources/testhelper.js": [
+ [
+ {}
+ ]
+ ],
"css/css-ui/OWNERS": [
[
{}
@@ -257793,6 +258816,11 @@
{}
]
],
+ "css/motion/offset-anchor-transform-box-fill-box-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/motion/offset-path-ray-ref.html": [
[
{}
@@ -261718,6 +262746,16 @@
{}
]
],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list": [
[
{}
@@ -264118,6 +265156,11 @@
{}
]
],
+ "docs/_running-tests/chrome_android.md": [
+ [
+ {}
+ ]
+ ],
"docs/_running-tests/index.md": [
[
{}
@@ -275548,6 +276591,11 @@
{}
]
],
+ "html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py": [
+ [
+ {}
+ ]
+ ],
"html/semantics/document-metadata/styling/.gitkeep": [
[
{}
@@ -275973,6 +277021,11 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt": [
+ [
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/resources/cues-no-separation.vtt": [
[
{}
@@ -276218,6 +277271,16 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html": [
+ [
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-helpers.js": [
[
{}
@@ -279463,6 +280526,11 @@
{}
]
],
+ "images/pattern.mp4": [
+ [
+ {}
+ ]
+ ],
"images/pattern.ogv": [
[
{}
@@ -279618,6 +280686,11 @@
{}
]
],
+ "interfaces/WebCryptoAPI.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/accelerometer.idl": [
[
{}
@@ -279663,6 +280736,11 @@
{}
]
],
+ "interfaces/gamepad.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/generic-sensor.idl": [
[
{}
@@ -279718,6 +280796,11 @@
{}
]
],
+ "interfaces/proximity.idl": [
+ [
+ {}
+ ]
+ ],
"interfaces/remoteplayback.idl": [
[
{}
@@ -279758,6 +280841,16 @@
{}
]
],
+ "interfaces/webxr.idl": [
+ [
+ {}
+ ]
+ ],
+ "interfaces/xhr.idl": [
+ [
+ {}
+ ]
+ ],
"intersection-observer/observer-in-iframe.html": [
[
{}
@@ -280133,6 +281226,11 @@
{}
]
],
+ "media-source/generate-config-change-tests.py": [
+ [
+ {}
+ ]
+ ],
"media-source/import_tests.sh": [
[
{}
@@ -284463,11 +285561,26 @@
{}
]
],
+ "resource-timing/resources/all_resource_types.htm": [
+ [
+ {}
+ ]
+ ],
+ "resource-timing/resources/blank_page_green.htm": [
+ [
+ {}
+ ]
+ ],
"resource-timing/resources/blue.png": [
[
{}
]
],
+ "resource-timing/resources/empty_script.js": [
+ [
+ {}
+ ]
+ ],
"resource-timing/resources/fake_responses.html": [
[
{}
@@ -284478,6 +285591,11 @@
{}
]
],
+ "resource-timing/resources/green_frame.htm": [
+ [
+ {}
+ ]
+ ],
"resource-timing/resources/gzip_xml.py": [
[
{}
@@ -284533,6 +285651,11 @@
{}
]
],
+ "resource-timing/resources/nested.css": [
+ [
+ {}
+ ]
+ ],
"resource-timing/resources/notify_parent.html": [
[
{}
@@ -284578,6 +285701,11 @@
{}
]
],
+ "resource-timing/resources/worker_with_images.js": [
+ [
+ {}
+ ]
+ ],
"resource-timing/test_resource_timing.js": [
[
{}
@@ -284703,6 +285831,846 @@
{}
]
],
+ "server-timing/resources/parsing/0.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/0.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/1.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/1.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/10.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/10.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/11.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/11.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/12.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/12.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/13.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/13.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/14.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/14.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/15.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/15.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/16.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/16.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/17.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/17.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/18.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/18.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/19.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/19.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/2.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/2.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/20.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/20.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/21.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/21.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/22.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/22.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/23.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/23.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/24.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/24.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/25.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/25.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/26.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/26.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/27.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/27.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/28.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/28.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/29.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/29.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/3.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/3.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/30.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/30.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/31.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/31.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/32.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/32.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/33.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/33.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/34.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/34.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/35.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/35.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/36.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/36.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/37.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/37.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/38.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/38.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/39.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/39.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/4.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/4.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/40.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/40.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/41.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/41.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/42.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/42.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/43.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/43.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/44.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/44.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/45.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/45.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/46.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/46.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/47.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/47.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/48.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/48.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/49.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/49.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/5.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/5.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/50.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/50.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/51.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/51.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/52.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/52.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/53.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/53.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/54.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/54.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/55.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/55.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/56.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/56.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/57.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/57.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/58.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/58.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/59.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/59.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/6.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/6.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/60.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/60.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/61.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/61.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/62.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/62.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/63.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/63.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/64.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/64.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/65.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/65.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/66.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/66.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/67.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/67.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/68.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/68.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/69.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/69.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/7.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/7.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/70.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/70.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/71.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/71.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/72.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/72.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/73.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/73.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/74.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/74.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/75.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/75.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/76.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/76.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/77.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/77.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/78.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/78.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/79.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/79.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/8.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/8.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/80.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/80.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/81.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/81.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/82.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/82.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/83.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/83.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/9.js": [
+ [
+ {}
+ ]
+ ],
+ "server-timing/resources/parsing/9.js.sub.headers": [
+ [
+ {}
+ ]
+ ],
"server-timing/test_server_timing.html.sub.headers": [
[
{}
@@ -286998,6 +288966,26 @@
{}
]
],
+ "svg/path/closepath/segment-completing-ref.svg": [
+ [
+ {}
+ ]
+ ],
+ "svg/path/distance/pathLength-positive-ref.svg": [
+ [
+ {}
+ ]
+ ],
+ "svg/path/distance/pathLength-zero-ref.svg": [
+ [
+ {}
+ ]
+ ],
+ "svg/path/error-handling/render-until-error-ref.svg": [
+ [
+ {}
+ ]
+ ],
"svg/path/property/priority-ref.svg": [
[
{}
@@ -287418,6 +289406,106 @@
{}
]
],
+ "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/dummy.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html": [
+ [
+ {}
+ ]
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html": [
+ [
+ {}
+ ]
+ ],
"upgrade-insecure-requests/support/pass.png": [
[
{}
@@ -298779,27 +300867,27 @@
}
]
],
- "WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js": [
+ "WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js": [
[
- "/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.html",
+ "/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.html",
{}
]
],
- "WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js": [
+ "WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js": [
[
- "/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.html",
+ "/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.html",
{}
]
],
- "WebCryptoAPI/derive_bits_keys/hkdf.worker.js": [
+ "WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js": [
[
- "/WebCryptoAPI/derive_bits_keys/hkdf.worker.html",
+ "/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.html",
{}
]
],
- "WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js": [
+ "WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js": [
[
- "/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.html",
+ "/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.html",
{
"timeout": "long"
}
@@ -298901,9 +300989,9 @@
}
]
],
- "WebCryptoAPI/digest/digest.worker.js": [
+ "WebCryptoAPI/digest/digest.https.worker.js": [
[
- "/WebCryptoAPI/digest/digest.worker.html",
+ "/WebCryptoAPI/digest/digest.https.worker.html",
{}
]
],
@@ -298915,27 +301003,27 @@
}
]
],
- "WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js": [
[
- "/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.html",
+ "/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.html",
{}
]
],
- "WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js": [
[
- "/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.html",
+ "/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.html",
{}
]
],
- "WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js": [
[
- "/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.html",
+ "/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.html",
{}
]
],
- "WebCryptoAPI/encrypt_decrypt/rsa.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js": [
[
- "/WebCryptoAPI/encrypt_decrypt/rsa.worker.html",
+ "/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.html",
{}
]
],
@@ -299317,39 +301405,33 @@
{}
]
],
- "WebCryptoAPI/idlharness.html": [
- [
- "/WebCryptoAPI/idlharness.html",
- {}
- ]
- ],
"WebCryptoAPI/idlharness.https.html": [
[
"/WebCryptoAPI/idlharness.https.html",
{}
]
],
- "WebCryptoAPI/idlharness.worker.js": [
+ "WebCryptoAPI/idlharness.https.worker.js": [
[
- "/WebCryptoAPI/idlharness.worker.html",
+ "/WebCryptoAPI/idlharness.https.worker.html",
{}
]
],
- "WebCryptoAPI/import_export/ec_importKey.worker.js": [
+ "WebCryptoAPI/import_export/ec_importKey.https.worker.js": [
[
- "/WebCryptoAPI/import_export/ec_importKey.worker.html",
+ "/WebCryptoAPI/import_export/ec_importKey.https.worker.html",
{}
]
],
- "WebCryptoAPI/import_export/rsa_importKey.worker.js": [
+ "WebCryptoAPI/import_export/rsa_importKey.https.worker.js": [
[
- "/WebCryptoAPI/import_export/rsa_importKey.worker.html",
+ "/WebCryptoAPI/import_export/rsa_importKey.https.worker.html",
{}
]
],
- "WebCryptoAPI/import_export/symmetric_importKey.worker.js": [
+ "WebCryptoAPI/import_export/symmetric_importKey.https.worker.js": [
[
- "/WebCryptoAPI/import_export/symmetric_importKey.worker.html",
+ "/WebCryptoAPI/import_export/symmetric_importKey.https.worker.html",
{}
]
],
@@ -299383,27 +301465,27 @@
{}
]
],
- "WebCryptoAPI/sign_verify/ecdsa.worker.js": [
+ "WebCryptoAPI/sign_verify/ecdsa.https.worker.js": [
[
- "/WebCryptoAPI/sign_verify/ecdsa.worker.html",
+ "/WebCryptoAPI/sign_verify/ecdsa.https.worker.html",
{}
]
],
- "WebCryptoAPI/sign_verify/hmac.worker.js": [
+ "WebCryptoAPI/sign_verify/hmac.https.worker.js": [
[
- "/WebCryptoAPI/sign_verify/hmac.worker.html",
+ "/WebCryptoAPI/sign_verify/hmac.https.worker.html",
{}
]
],
- "WebCryptoAPI/sign_verify/rsa_pkcs.worker.js": [
+ "WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js": [
[
- "/WebCryptoAPI/sign_verify/rsa_pkcs.worker.html",
+ "/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.html",
{}
]
],
- "WebCryptoAPI/sign_verify/rsa_pss.worker.js": [
+ "WebCryptoAPI/sign_verify/rsa_pss.https.worker.js": [
[
- "/WebCryptoAPI/sign_verify/rsa_pss.worker.html",
+ "/WebCryptoAPI/sign_verify/rsa_pss.https.worker.html",
{}
]
],
@@ -299447,9 +301529,9 @@
}
]
],
- "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js": [
+ "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js": [
[
- "/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.html",
+ "/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.html",
{
"timeout": "long"
}
@@ -299895,6 +301977,142 @@
{}
]
],
+ "bluetooth/characteristic/characteristicProperties.https.html": [
+ [
+ "/bluetooth/characteristic/characteristicProperties.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html": [
+ [
+ "/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html": [
+ [
+ "/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html": [
+ [
+ "/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/notifications/characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/notifications/characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html": [
+ [
+ "/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/readValue/characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/readValue/characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/readValue/event-is-fired.https.html": [
+ [
+ "/bluetooth/characteristic/readValue/event-is-fired.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/readValue/read-succeeds.https.html": [
+ [
+ "/bluetooth/characteristic/readValue/read-succeeds.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/readValue/read-updates-value.https.html": [
+ [
+ "/bluetooth/characteristic/readValue/read-updates-value.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/writeValue/characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html": [
+ [
+ "/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/writeValue/write-succeeds.https.html": [
+ [
+ "/bluetooth/characteristic/writeValue/write-succeeds.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/idl/idl-Bluetooth.html": [
[
"/bluetooth/idl/idl-Bluetooth.html",
@@ -300009,6 +302227,342 @@
}
]
],
+ "bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnected-device.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-get-same-object.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-get-same-object.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryService/gen-service-not-found.https.html": [
+ [
+ "/bluetooth/server/getPrimaryService/gen-service-not-found.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-same-object.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html": [
+ [
+ "/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/service/getCharacteristic/characteristic-found.https.html": [
[
"/bluetooth/service/getCharacteristic/characteristic-found.https.html",
@@ -300473,6 +303027,12 @@
{}
]
],
+ "content-security-policy/form-action/form-action-self-allowed-target-blank.html": [
+ [
+ "/content-security-policy/form-action/form-action-self-allowed-target-blank.html",
+ {}
+ ]
+ ],
"content-security-policy/form-action/form-action-src-allowed.sub.html": [
[
"/content-security-policy/form-action/form-action-src-allowed.sub.html",
@@ -301119,6 +303679,30 @@
{}
]
],
+ "content-security-policy/prefetch-src/prefetch-allowed.html": [
+ [
+ "/content-security-policy/prefetch-src/prefetch-allowed.html",
+ {}
+ ]
+ ],
+ "content-security-policy/prefetch-src/prefetch-blocked.html": [
+ [
+ "/content-security-policy/prefetch-src/prefetch-blocked.html",
+ {}
+ ]
+ ],
+ "content-security-policy/prefetch-src/prefetch-header-allowed.html": [
+ [
+ "/content-security-policy/prefetch-src/prefetch-header-allowed.html",
+ {}
+ ]
+ ],
+ "content-security-policy/prefetch-src/prefetch-header-blocked.html": [
+ [
+ "/content-security-policy/prefetch-src/prefetch-header-blocked.html",
+ {}
+ ]
+ ],
"content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html": [
[
"/content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html",
@@ -304717,6 +307301,42 @@
{}
]
],
+ "css/css-masking/parsing/clip-invalid.html": [
+ [
+ "/css/css-masking/parsing/clip-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-masking/parsing/clip-path-invalid.html": [
+ [
+ "/css/css-masking/parsing/clip-path-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-masking/parsing/clip-path-valid.html": [
+ [
+ "/css/css-masking/parsing/clip-path-valid.html",
+ {}
+ ]
+ ],
+ "css/css-masking/parsing/clip-rule-invalid.html": [
+ [
+ "/css/css-masking/parsing/clip-rule-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-masking/parsing/clip-rule-valid.html": [
+ [
+ "/css/css-masking/parsing/clip-rule-valid.html",
+ {}
+ ]
+ ],
+ "css/css-masking/parsing/clip-valid.html": [
+ [
+ "/css/css-masking/parsing/clip-valid.html",
+ {}
+ ]
+ ],
"css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html": [
[
"/css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html",
@@ -304939,6 +307559,42 @@
{}
]
],
+ "css/css-shapes/parsing/shape-image-threshold-invalid.html": [
+ [
+ "/css/css-shapes/parsing/shape-image-threshold-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-shapes/parsing/shape-image-threshold-valid.html": [
+ [
+ "/css/css-shapes/parsing/shape-image-threshold-valid.html",
+ {}
+ ]
+ ],
+ "css/css-shapes/parsing/shape-margin-invalid.html": [
+ [
+ "/css/css-shapes/parsing/shape-margin-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-shapes/parsing/shape-margin-valid.html": [
+ [
+ "/css/css-shapes/parsing/shape-margin-valid.html",
+ {}
+ ]
+ ],
+ "css/css-shapes/parsing/shape-outside-invalid.html": [
+ [
+ "/css/css-shapes/parsing/shape-outside-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-shapes/parsing/shape-outside-valid.html": [
+ [
+ "/css/css-shapes/parsing/shape-outside-valid.html",
+ {}
+ ]
+ ],
"css/css-shapes/shape-outside-invalid-001.html": [
[
"/css/css-shapes/shape-outside-invalid-001.html",
@@ -307123,6 +309779,36 @@
{}
]
],
+ "css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html",
+ {}
+ ]
+ ],
"css/css-typed-om/stylevalue-objects/interface.html": [
[
"/css/css-typed-om/stylevalue-objects/interface.html",
@@ -307153,12 +309839,222 @@
{}
]
],
+ "css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssPositionValue.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssPositionValue.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html",
+ {}
+ ]
+ ],
"css/css-typed-om/stylevalue-subclasses/cssKeywordValue-interface.html": [
[
"/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-interface.html",
{}
]
],
+ "css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html": [
+ [
+ "/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html": [
+ [
+ "/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html": [
+ [
+ "/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/get.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/has.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/append.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/get.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/has.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/set.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/test.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/update.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/append.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/get.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/has.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/set.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/update.tentative.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/interface.html": [
[
"/css/css-typed-om/the-stylepropertymap/interface.html",
@@ -307249,6 +310145,12 @@
{}
]
],
+ "css/css-values/lh-rlh-on-root-001.html": [
+ [
+ "/css/css-values/lh-rlh-on-root-001.html",
+ {}
+ ]
+ ],
"css/css-values/unset-value-storage.html": [
[
"/css/css-values/unset-value-storage.html",
@@ -308101,6 +311003,12 @@
{}
]
],
+ "css/cssom-view/scroll-no-layout-box.html": [
+ [
+ "/css/cssom-view/scroll-no-layout-box.html",
+ {}
+ ]
+ ],
"css/cssom-view/scrollIntoView-shadow.html": [
[
"/css/cssom-view/scrollIntoView-shadow.html",
@@ -314829,6 +317737,12 @@
{}
]
],
+ "fetch/security/redirect-to-url-with-credentials.https.html": [
+ [
+ "/fetch/security/redirect-to-url-with-credentials.https.html",
+ {}
+ ]
+ ],
"fullscreen/api/document-exit-fullscreen-active-document.html": [
[
"/fullscreen/api/document-exit-fullscreen-active-document.html",
@@ -318673,6 +321587,12 @@
{}
]
],
+ "html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html": [
+ [
+ "/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html",
+ {}
+ ]
+ ],
"html/semantics/document-metadata/styling/LinkStyle.html": [
[
"/html/semantics/document-metadata/styling/LinkStyle.html",
@@ -320051,6 +322971,18 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html",
+ {}
+ ]
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html",
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html": [
[
"/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html",
@@ -320069,6 +323001,18 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html",
+ {}
+ ]
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html",
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html": [
[
"/html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html",
@@ -327495,27 +330439,27 @@
{}
]
],
- "keyboard-lock/navigator-cancelKeyboardLock.https.html": [
+ "keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html": [
[
- "/keyboard-lock/navigator-cancelKeyboardLock.https.html",
+ "/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html",
{}
]
],
- "keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html": [
+ "keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html": [
[
- "/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html",
+ "/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html",
{}
]
],
- "keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html": [
+ "keyboard-lock/navigator-keyboardLock.https.html": [
[
- "/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html",
+ "/keyboard-lock/navigator-keyboardLock.https.html",
{}
]
],
- "keyboard-lock/navigator-requestKeyboardLock.https.html": [
+ "keyboard-lock/navigator-keyboardUnlock.https.html": [
[
- "/keyboard-lock/navigator-requestKeyboardLock.https.html",
+ "/keyboard-lock/navigator-keyboardUnlock.https.html",
{}
]
],
@@ -339409,6 +342353,12 @@
{}
]
],
+ "performance-timeline/po-takeRecords.html": [
+ [
+ "/performance-timeline/po-takeRecords.html",
+ {}
+ ]
+ ],
"performance-timeline/worker-with-performance-observer.html": [
[
"/performance-timeline/worker-with-performance-observer.html",
@@ -339667,9 +342617,9 @@
{}
]
],
- "proximity/idlharness.html": [
+ "proximity/idlharness.https.html": [
[
- "/proximity/idlharness.html",
+ "/proximity/idlharness.https.html",
{}
]
],
@@ -347991,12 +350941,66 @@
{}
]
],
+ "resource-timing/resource_dedicated_worker.html": [
+ [
+ "/resource-timing/resource_dedicated_worker.html",
+ {}
+ ]
+ ],
"resource-timing/resource_dynamic_insertion.html": [
[
"/resource-timing/resource_dynamic_insertion.html",
{}
]
],
+ "resource-timing/resource_frame_initiator_type.html": [
+ [
+ "/resource-timing/resource_frame_initiator_type.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_ignore_data_url.html": [
+ [
+ "/resource-timing/resource_ignore_data_url.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_ignore_failures.html": [
+ [
+ "/resource-timing/resource_ignore_failures.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_initiator_types.html": [
+ [
+ "/resource-timing/resource_initiator_types.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_memory_cached.sub.html": [
+ [
+ "/resource-timing/resource_memory_cached.sub.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_redirects.html": [
+ [
+ "/resource-timing/resource_redirects.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_reparenting.html": [
+ [
+ "/resource-timing/resource_reparenting.html",
+ {}
+ ]
+ ],
+ "resource-timing/resource_script_types.html": [
+ [
+ "/resource-timing/resource_script_types.html",
+ {}
+ ]
+ ],
"resource-timing/resource_subframe_self_navigation.html": [
[
"/resource-timing/resource_subframe_self_navigation.html",
@@ -348369,6 +351373,12 @@
{}
]
],
+ "server-timing/server_timing_header-parsing.html": [
+ [
+ "/server-timing/server_timing_header-parsing.html",
+ {}
+ ]
+ ],
"server-timing/test_server_timing.html": [
[
"/server-timing/test_server_timing.html",
@@ -351591,6 +354601,18 @@
{}
]
],
+ "svg/path/error-handling/bounding.svg": [
+ [
+ "/svg/path/error-handling/bounding.svg",
+ {}
+ ]
+ ],
+ "svg/path/interfaces/SVGAnimatedPathData-removed.svg": [
+ [
+ "/svg/path/interfaces/SVGAnimatedPathData-removed.svg",
+ {}
+ ]
+ ],
"svg/path/property/d-interpolation-discrete.svg": [
[
"/svg/path/property/d-interpolation-discrete.svg",
@@ -351621,6 +354643,12 @@
{}
]
],
+ "svg/types/elements/SVGGeometryElement-rect.svg": [
+ [
+ "/svg/types/elements/SVGGeometryElement-rect.svg",
+ {}
+ ]
+ ],
"svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html": [
[
"/svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html",
@@ -351979,6 +355007,12 @@
{}
]
],
+ "upgrade-insecure-requests/link-upgrade.sub.https.html": [
+ [
+ "/upgrade-insecure-requests/link-upgrade.sub.https.html",
+ {}
+ ]
+ ],
"upgrade-insecure-requests/websocket-upgrade.https.html": [
[
"/upgrade-insecure-requests/websocket-upgrade.https.html",
@@ -354129,6 +357163,12 @@
{}
]
],
+ "webrtc/RTCPeerConnection-track-stats.https.html": [
+ [
+ "/webrtc/RTCPeerConnection-track-stats.https.html",
+ {}
+ ]
+ ],
"webrtc/RTCPeerConnectionIceEvent-constructor.html": [
[
"/webrtc/RTCPeerConnectionIceEvent-constructor.html",
@@ -356853,6 +359893,12 @@
{}
]
],
+ "webxr/interfaces.https.html": [
+ [
+ "/webxr/interfaces.https.html",
+ {}
+ ]
+ ],
"webxr/webxr_availability.http.sub.html": [
[
"/webxr/webxr_availability.http.sub.html",
@@ -357987,6 +361033,36 @@
{}
]
],
+ "worklets/layout-worklet-credentials.https.html": [
+ [
+ "/worklets/layout-worklet-credentials.https.html",
+ {}
+ ]
+ ],
+ "worklets/layout-worklet-csp.https.html": [
+ [
+ "/worklets/layout-worklet-csp.https.html",
+ {}
+ ]
+ ],
+ "worklets/layout-worklet-import.https.html": [
+ [
+ "/worklets/layout-worklet-import.https.html",
+ {}
+ ]
+ ],
+ "worklets/layout-worklet-referrer.https.html": [
+ [
+ "/worklets/layout-worklet-referrer.https.html",
+ {}
+ ]
+ ],
+ "worklets/layout-worklet-service-worker-interception.https.html": [
+ [
+ "/worklets/layout-worklet-service-worker-interception.https.html",
+ {}
+ ]
+ ],
"worklets/paint-worklet-credentials.https.html": [
[
"/worklets/paint-worklet-credentials.https.html",
@@ -367047,30 +370123,6 @@
{}
]
],
- "css/CSS2/selectors/class-selector-009.xht": [
- [
- "/css/CSS2/selectors/class-selector-009.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/class-selector-010.xht": [
- [
- "/css/CSS2/selectors/class-selector-010.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/class-selector-011.xht": [
- [
- "/css/CSS2/selectors/class-selector-011.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/class-selector-012.xht": [
- [
- "/css/CSS2/selectors/class-selector-012.xht",
- {}
- ]
- ],
"css/CSS2/selectors/default-attribute-selector-005.xht": [
[
"/css/CSS2/selectors/default-attribute-selector-005.xht",
@@ -367095,78 +370147,12 @@
{}
]
],
- "css/CSS2/selectors/first-child-selector-001.xht": [
- [
- "/css/CSS2/selectors/first-child-selector-001.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-child-selector-002.xht": [
- [
- "/css/CSS2/selectors/first-child-selector-002.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-child-selector-003.xht": [
- [
- "/css/CSS2/selectors/first-child-selector-003.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-000.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-000.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-001.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-001.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-002.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-002.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-003.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-003.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-004.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-004.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-005.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-005.xht",
- {}
- ]
- ],
"css/CSS2/selectors/first-letter-selector-006.xht": [
[
"/css/CSS2/selectors/first-letter-selector-006.xht",
{}
]
],
- "css/CSS2/selectors/first-letter-selector-007.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-007.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-letter-selector-008.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-008.xht",
- {}
- ]
- ],
"css/CSS2/selectors/first-letter-selector-009.xht": [
[
"/css/CSS2/selectors/first-letter-selector-009.xht",
@@ -367227,12 +370213,6 @@
{}
]
],
- "css/CSS2/selectors/first-letter-selector-019.xht": [
- [
- "/css/CSS2/selectors/first-letter-selector-019.xht",
- {}
- ]
- ],
"css/CSS2/selectors/first-letter-selector-020.xht": [
[
"/css/CSS2/selectors/first-letter-selector-020.xht",
@@ -367335,24 +370315,6 @@
{}
]
],
- "css/CSS2/selectors/first-line-pseudo-019.xht": [
- [
- "/css/CSS2/selectors/first-line-pseudo-019.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-line-pseudo-020.xht": [
- [
- "/css/CSS2/selectors/first-line-pseudo-020.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/first-line-pseudo-021.xht": [
- [
- "/css/CSS2/selectors/first-line-pseudo-021.xht",
- {}
- ]
- ],
"css/CSS2/selectors/first-line-selector-001.xht": [
[
"/css/CSS2/selectors/first-line-selector-001.xht",
@@ -367401,12 +370363,6 @@
{}
]
],
- "css/CSS2/selectors/first-line-selector-010.xht": [
- [
- "/css/CSS2/selectors/first-line-selector-010.xht",
- {}
- ]
- ],
"css/CSS2/selectors/first-line-selector-011.xht": [
[
"/css/CSS2/selectors/first-line-selector-011.xht",
@@ -367437,48 +370393,6 @@
{}
]
],
- "css/CSS2/selectors/id-selector-002.xht": [
- [
- "/css/CSS2/selectors/id-selector-002.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/lang-selector-004.xht": [
- [
- "/css/CSS2/selectors/lang-selector-004.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/lang-selector-005.xht": [
- [
- "/css/CSS2/selectors/lang-selector-005.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/lang-selector-006.xht": [
- [
- "/css/CSS2/selectors/lang-selector-006.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/pseudo-006.xht": [
- [
- "/css/CSS2/selectors/pseudo-006.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/pseudo-007.xht": [
- [
- "/css/CSS2/selectors/pseudo-007.xht",
- {}
- ]
- ],
- "css/CSS2/selectors/pseudo-008.xht": [
- [
- "/css/CSS2/selectors/pseudo-008.xht",
- {}
- ]
- ],
"css/CSS2/syntax/case-sensitive-008.xht": [
[
"/css/CSS2/syntax/case-sensitive-008.xht",
@@ -370329,96 +373243,6 @@
{}
]
],
- "css/CSS2/tables/caption-side-applies-to-001.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-001.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-002.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-002.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-003.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-003.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-005.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-005.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-006.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-006.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-007.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-007.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-008.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-008.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-009.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-009.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-010.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-010.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-011.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-011.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-012.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-012.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-013.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-013.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-014.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-014.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-015.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-015.xht",
- {}
- ]
- ],
- "css/CSS2/tables/caption-side-applies-to-017.xht": [
- [
- "/css/CSS2/tables/caption-side-applies-to-017.xht",
- {}
- ]
- ],
"css/CSS2/tables/caption-side-example-001.xht": [
[
"/css/CSS2/tables/caption-side-example-001.xht",
@@ -370449,30 +373273,12 @@
{}
]
],
- "css/CSS2/tables/collapsing-border-model-001.xht": [
- [
- "/css/CSS2/tables/collapsing-border-model-001.xht",
- {}
- ]
- ],
"css/CSS2/tables/collapsing-border-model-002.xht": [
[
"/css/CSS2/tables/collapsing-border-model-002.xht",
{}
]
],
- "css/CSS2/tables/collapsing-border-model-003.xht": [
- [
- "/css/CSS2/tables/collapsing-border-model-003.xht",
- {}
- ]
- ],
- "css/CSS2/tables/collapsing-border-model-004.xht": [
- [
- "/css/CSS2/tables/collapsing-border-model-004.xht",
- {}
- ]
- ],
"css/CSS2/tables/collapsing-border-model-005.xht": [
[
"/css/CSS2/tables/collapsing-border-model-005.xht",
@@ -370485,24 +373291,6 @@
{}
]
],
- "css/CSS2/tables/collapsing-border-model-007.xht": [
- [
- "/css/CSS2/tables/collapsing-border-model-007.xht",
- {}
- ]
- ],
- "css/CSS2/tables/collapsing-border-model-008.xht": [
- [
- "/css/CSS2/tables/collapsing-border-model-008.xht",
- {}
- ]
- ],
- "css/CSS2/tables/collapsing-border-model-009.xht": [
- [
- "/css/CSS2/tables/collapsing-border-model-009.xht",
- {}
- ]
- ],
"css/CSS2/tables/collapsing-table-borders-001.xht": [
[
"/css/CSS2/tables/collapsing-table-borders-001.xht",
@@ -370983,18 +373771,6 @@
{}
]
],
- "css/CSS2/tables/row-visibility-001.xht": [
- [
- "/css/CSS2/tables/row-visibility-001.xht",
- {}
- ]
- ],
- "css/CSS2/tables/row-visibility-002.xht": [
- [
- "/css/CSS2/tables/row-visibility-002.xht",
- {}
- ]
- ],
"css/CSS2/tables/row-visibility-003.xht": [
[
"/css/CSS2/tables/row-visibility-003.xht",
@@ -371553,12 +374329,6 @@
{}
]
],
- "css/CSS2/tables/table-cell-001.xht": [
- [
- "/css/CSS2/tables/table-cell-001.xht",
- {}
- ]
- ],
"css/CSS2/tables/table-cell-002.xht": [
[
"/css/CSS2/tables/table-cell-002.xht",
@@ -378639,6 +381409,12 @@
{}
]
],
+ "css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html": [
+ [
+ "/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html",
+ {}
+ ]
+ ],
"css/css-values/absolute_length_units.html": [
[
"/css/css-values/absolute_length_units.html",
@@ -379439,7 +382215,7 @@
"support"
],
"./.travis.yml": [
- "3ded1c75d66882f00fe588318e373e802dddf15e",
+ "ae17735a06f31093f06a10b643099cbedaa3c459",
"support"
],
"./CONTRIBUTING.md": [
@@ -379467,7 +382243,7 @@
"support"
],
"./lint.whitelist": [
- "e2ff823a37fdb49a64d144ac380ac00ab4d35655",
+ "c55f23203c2e4b158dc13d25617031fcbb791744",
"support"
],
"./serve.py": [
@@ -381959,15 +384735,15 @@
"testharness"
],
"2dcontext/imagebitmap/common.js": [
- "9c16b63a9a724f46e543a32649c21f04c6540893",
+ "c20732ce1e92624a3d3982154d5aba92eba7adc1",
"support"
],
"2dcontext/imagebitmap/createImageBitmap-drawImage.html": [
- "d709088a1850b25a89a4ad5cd58a0c9387aa4840",
+ "ac183f2abd04f0561433083040190cdadb8ac86a",
"testharness"
],
"2dcontext/imagebitmap/createImageBitmap-invalid-args.html": [
- "0f8e0a2a9099ac869e2435dfe018bc1fb65ec71f",
+ "05ccfd7c45806ee919ccef8bb45c76c147bded63",
"testharness"
],
"2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html": [
@@ -383643,7 +386419,7 @@
"testharness"
],
"FileAPI/file/File-constructor.html": [
- "95198c8156dadc851d279a863b883c8befdc3930",
+ "68673d38dcf818edf59bbc5996d2aa1b2105a481",
"testharness"
],
"FileAPI/file/Worker-read-file-constructor.worker.js": [
@@ -383831,7 +386607,7 @@
"support"
],
"FileAPI/url/sandboxed-iframe.html": [
- "f7de4337c0f154668d24d85753daea9e4636ac52",
+ "b610b4d0f18472d9eb7ba50f68424e8731d9efff",
"testharness"
],
"FileAPI/url/unicode-origin.sub.html": [
@@ -383839,7 +386615,7 @@
"testharness"
],
"FileAPI/url/url-format.any.js": [
- "b2e72a48146973a4d2e95b815758d688c8acb2e0",
+ "b087f507b342f88240efcee2569da96fee469a5b",
"testharness"
],
"FileAPI/url/url-in-tags.window.js": [
@@ -385306,46 +388082,42 @@
"de7dd2ee8b4d23b5170349e7c2dc94862e5faed2",
"support"
],
- "WebCryptoAPI/WebCryptoAPI.idl": [
- "87b02fc82a1b204ac59a51932e58f9369b4a77c6",
- "support"
+ "WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js": [
+ "b5b14e550d5dbff9f63666b42bd46e29b5be8709",
+ "testharness"
],
"WebCryptoAPI/derive_bits_keys/ecdh_bits.js": [
"becf212639e53f6cae83994feeb2a2d0ecb6feeb",
"support"
],
- "WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js": [
- "b5b14e550d5dbff9f63666b42bd46e29b5be8709",
+ "WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js": [
+ "25bcc549b62ecc99df4e2af27753e311c3910e70",
"testharness"
],
"WebCryptoAPI/derive_bits_keys/ecdh_keys.js": [
"c030ebe3984538c73ee1fca4ec378e4356bccbf4",
"support"
],
- "WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js": [
- "25bcc549b62ecc99df4e2af27753e311c3910e70",
+ "WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js": [
+ "0ea6fb5e51a60e8a521da7a2853fde9a4ff2af8f",
"testharness"
],
"WebCryptoAPI/derive_bits_keys/hkdf.js": [
"7c50dfe98c29038cc758cf90d56cf4b328d1fc37",
"support"
],
- "WebCryptoAPI/derive_bits_keys/hkdf.worker.js": [
- "0ea6fb5e51a60e8a521da7a2853fde9a4ff2af8f",
- "testharness"
- ],
"WebCryptoAPI/derive_bits_keys/hkdf_vectors.js": [
"766a7184da406918e9dc6718125975a59d3d5d36",
"support"
],
+ "WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js": [
+ "1149c335951baa52b7d1ad3192292fb46176d491",
+ "testharness"
+ ],
"WebCryptoAPI/derive_bits_keys/pbkdf2.js": [
"dfd8eea5707720186820549837c8a1a319a8ecc4",
"support"
],
- "WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js": [
- "1149c335951baa52b7d1ad3192292fb46176d491",
- "testharness"
- ],
"WebCryptoAPI/derive_bits_keys/pbkdf2_vectors.js": [
"0a073cb726ad239110545eb3cecada2a0ce5daf7",
"support"
@@ -385398,14 +388170,14 @@
"5e776aa3f202bb72a328947983b020f03ba6ec4d",
"testharness"
],
+ "WebCryptoAPI/digest/digest.https.worker.js": [
+ "a9a6b7a15bf0b795729190a94bdda6ed1ddc013d",
+ "testharness"
+ ],
"WebCryptoAPI/digest/digest.js": [
"e68b81bd47af7373a63466ebe2fd13050d5d246d",
"support"
],
- "WebCryptoAPI/digest/digest.worker.js": [
- "a9a6b7a15bf0b795729190a94bdda6ed1ddc013d",
- "testharness"
- ],
"WebCryptoAPI/digest/test_digest.https.html": [
"1f5893b2c01a60e1e49b8ba5dee8f3d6507cc604",
"testharness"
@@ -385414,7 +388186,7 @@
"b05d96920d4ea99e4cd8cbcbb3c92251aac81963",
"support"
],
- "WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js": [
"348e7d6daf461c90ad2f141aee0ec5fb178e33d6",
"testharness"
],
@@ -385422,7 +388194,7 @@
"11b8c11b8fba29f1ce4dd9dc7ed7dd73ddb93322",
"support"
],
- "WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js": [
"aa500eac7a17c4994a84b63bac007199e989ddb7",
"testharness"
],
@@ -385430,7 +388202,7 @@
"bd8aa30846061ba3c1b99a73048ea17b5c9c0567",
"support"
],
- "WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js": [
+ "WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js": [
"fe553a2dbe69cc75c51f7951dbf3812b3522fcd5",
"testharness"
],
@@ -385438,14 +388210,14 @@
"09fe2fc446bd7a5f0039f4ec20d364cab6d6697d",
"support"
],
+ "WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js": [
+ "89c6a19f939936a2947a3a5acd9cf37929e46caa",
+ "testharness"
+ ],
"WebCryptoAPI/encrypt_decrypt/rsa.js": [
"49ddd58c86e0168917b8404d5a3f0ccf0715ef37",
"support"
],
- "WebCryptoAPI/encrypt_decrypt/rsa.worker.js": [
- "89c6a19f939936a2947a3a5acd9cf37929e46caa",
- "testharness"
- ],
"WebCryptoAPI/encrypt_decrypt/rsa_vectors.js": [
"e833d10f83ac5cff26e076371a545d60a8d37b8f",
"support"
@@ -385646,42 +388418,38 @@
"44475110f616c78bc04b93246f015e7a83e78fa7",
"testharness"
],
- "WebCryptoAPI/idlharness.html": [
- "f97da6e12fbd08b0fe93a6bc0fb9724053d147a8",
+ "WebCryptoAPI/idlharness.https.html": [
+ "a0ac6f063c49d9c14b614dee18b681968eee05ad",
"testharness"
],
- "WebCryptoAPI/idlharness.https.html": [
- "f97da6e12fbd08b0fe93a6bc0fb9724053d147a8",
+ "WebCryptoAPI/idlharness.https.worker.js": [
+ "2ef22c6a9f185492c5bca7e52b3a7a6b363a2e2f",
"testharness"
],
- "WebCryptoAPI/idlharness.worker.js": [
- "e3478f4259364d773dab9ca5e0c7194a0b78d5b3",
+ "WebCryptoAPI/import_export/ec_importKey.https.worker.js": [
+ "18e1f688107b6f2ec4d37f593567ec65ac95c9f9",
"testharness"
],
"WebCryptoAPI/import_export/ec_importKey.js": [
"9da62f7432c2bf0268189f3ba58d5f6910b8de09",
"support"
],
- "WebCryptoAPI/import_export/ec_importKey.worker.js": [
- "18e1f688107b6f2ec4d37f593567ec65ac95c9f9",
+ "WebCryptoAPI/import_export/rsa_importKey.https.worker.js": [
+ "4d67403cda8df77690309ac7e6ed1bff65ce0bc6",
"testharness"
],
"WebCryptoAPI/import_export/rsa_importKey.js": [
"7499196d47910b7e06ca369b008e74d8b0c85bfa",
"support"
],
- "WebCryptoAPI/import_export/rsa_importKey.worker.js": [
- "4d67403cda8df77690309ac7e6ed1bff65ce0bc6",
+ "WebCryptoAPI/import_export/symmetric_importKey.https.worker.js": [
+ "e9d9758d0478ecdf93a5fda9f196501e992de614",
"testharness"
],
"WebCryptoAPI/import_export/symmetric_importKey.js": [
"105065232cebaa7ceeb8436ce257b76c6db274e8",
"support"
],
- "WebCryptoAPI/import_export/symmetric_importKey.worker.js": [
- "e9d9758d0478ecdf93a5fda9f196501e992de614",
- "testharness"
- ],
"WebCryptoAPI/import_export/test_ec_importKey.https.html": [
"2c173849dd35c551b71983fb8efc20f650599da2",
"testharness"
@@ -385702,26 +388470,26 @@
"4df3813485b7277571d61ce38a5811729f91ddbe",
"testharness"
],
+ "WebCryptoAPI/sign_verify/ecdsa.https.worker.js": [
+ "bb414663a4a65e9b55028b0a7433753b3f749a95",
+ "testharness"
+ ],
"WebCryptoAPI/sign_verify/ecdsa.js": [
"55c99894ea3ba9186de1082c189f37f77dfe12e1",
"support"
],
- "WebCryptoAPI/sign_verify/ecdsa.worker.js": [
- "bb414663a4a65e9b55028b0a7433753b3f749a95",
- "testharness"
- ],
"WebCryptoAPI/sign_verify/ecdsa_vectors.js": [
"cc71e74a07a65072c004f262a987097aa68a8e75",
"support"
],
+ "WebCryptoAPI/sign_verify/hmac.https.worker.js": [
+ "725bbd226a49624a63d168a84ae63d73ce26d73c",
+ "testharness"
+ ],
"WebCryptoAPI/sign_verify/hmac.js": [
"de5464f41c68d7fd6f4c9cb0653c6e1d591344af",
"support"
],
- "WebCryptoAPI/sign_verify/hmac.worker.js": [
- "725bbd226a49624a63d168a84ae63d73ce26d73c",
- "testharness"
- ],
"WebCryptoAPI/sign_verify/hmac_vectors.js": [
"c7744822c4c292b4eccf623242f1dc46aaffb91e",
"support"
@@ -385730,7 +388498,7 @@
"b828453ea1f8db421bf08b02d3067f91b6867657",
"support"
],
- "WebCryptoAPI/sign_verify/rsa_pkcs.worker.js": [
+ "WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js": [
"a1a0de477cc1e275fa4e874112b11016099fb78d",
"testharness"
],
@@ -385738,7 +388506,7 @@
"1f10e9144cb5e08e5371d956c0410350f3a90b1e",
"support"
],
- "WebCryptoAPI/sign_verify/rsa_pss.worker.js": [
+ "WebCryptoAPI/sign_verify/rsa_pss.https.worker.js": [
"a0e46ac878fc7178cefb52e7e5a398d5e5b80f3b",
"testharness"
],
@@ -385778,14 +388546,14 @@
"2f0070bafc5079f3b70dd8da567fde0ea6bfb113",
"testharness"
],
+ "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js": [
+ "901c6df896c5f9bccd2e680fbd6fc56afce8d364",
+ "testharness"
+ ],
"WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.js": [
"963ed1da346e78fce5217210cd1608b88bea1172",
"support"
],
- "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js": [
- "901c6df896c5f9bccd2e680fbd6fc56afce8d364",
- "testharness"
- ],
"WebIDL/OWNERS": [
"f9c94ab08fa997459cba17e61d8cd00ee8b07b46",
"support"
@@ -386283,7 +389051,7 @@
"support"
],
"accelerometer/Accelerometer-disabled-by-feature-policy.https.html": [
- "37ec335921c5e3cb6011986e76da04254106f4f6",
+ "96e5a86bf78239f3aa4a79b32bb4308de0d5f60e",
"testharness"
],
"accelerometer/Accelerometer-disabled-by-feature-policy.https.html.headers": [
@@ -386291,15 +389059,15 @@
"support"
],
"accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "b03ee7c22f1dd78e2681632f2f67598da67a09cb",
+ "f20f89a31daf399a7946b928e8deca9651d38487",
"testharness"
],
"accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html": [
- "6f5a595f9ee8d8e0dcd29eae9816210846c43557",
+ "7ce8c39f0af6c932d1e6b6f75843c090f7274b80",
"testharness"
],
"accelerometer/Accelerometer-enabled-by-feature-policy.https.html": [
- "9997d07beb3ef1c711dcfd6308c58d11c938244d",
+ "dbda7cfa838c1f2d4296b545034d42f0064f331a",
"testharness"
],
"accelerometer/Accelerometer-enabled-by-feature-policy.https.html.headers": [
@@ -386307,7 +389075,7 @@
"support"
],
"accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html": [
- "3b4500e2ff0f8a3efae8ace952a8993ed3005bd6",
+ "b8fb07cdd23dce9690de719387b9d505382772f5",
"testharness"
],
"accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -386315,15 +389083,15 @@
"support"
],
"accelerometer/Accelerometer.https.html": [
- "c0ca55250886c6a8c6194b658ed362e8b10ccae3",
+ "3ff5f61b25c52142e9796f3903d7f2bcaa30314c",
"testharness"
],
"accelerometer/Accelerometer_insecure_context.html": [
- "ad29f70c8f506002154e6ffa430b87f5e5ae0923",
+ "82be1b9a5c6e75291fdc1aabe230af28e22823a8",
"testharness"
],
"accelerometer/Accelerometer_onerror-manual.https.html": [
- "f20acb4b4e2f774fc13c870f972aaa2ca82afd27",
+ "c82f9595dc2582b2da40549a358da1c3fc2ff820",
"manual"
],
"accelerometer/OWNERS": [
@@ -386459,15 +389227,15 @@
"support"
],
"ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "c062b275f18a69d092fe4f8d20d01f93a631556f",
+ "06862bb58d13bf4355cbe66cb7060c7a5ea4a750",
"testharness"
],
"ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html": [
- "e719162b3001f7a6ef307a1f3af9ac048a0f7ce3",
+ "acdf8d84bc3e8708af250d8825c93d130ade435f",
"testharness"
],
"ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html": [
- "605f76f34e24f91ca9e2a6538624ec89633c6d1a",
+ "da2cc1cc0de186731e38512219cdfaf8357b9301",
"testharness"
],
"ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html.headers": [
@@ -386475,7 +389243,7 @@
"support"
],
"ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html": [
- "6ed23575a7dc16c7044970d81d7768796e9968d4",
+ "2a7a1dadbf5d9d05116128633598da781f5f0003",
"testharness"
],
"ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -388659,11 +391427,11 @@
"testharness"
],
"beacon/beacon-common.sub.js": [
- "75bee9ae7588c181a9a4f3eb9bced109a0190bfc",
+ "67226dd8db05540bd79bf5d4983c51fc985ff906",
"support"
],
"beacon/beacon-cors.sub.window.js": [
- "1821072ced64052cea6d2fc3ccb73cfe23a4235e",
+ "378281325f0a8d02d32b584179577babfeb7b013",
"testharness"
],
"beacon/beacon-error.window.js": [
@@ -388723,7 +391491,7 @@
"support"
],
"beacon/resources/beacon.py": [
- "12c892f085e2498f4c4abfda2409c61b0243a27f",
+ "fb2e689ef46d36e3d17b99d9dfad3994110b2033",
"support"
],
"beacon/resources/content-type.py": [
@@ -388739,11 +391507,87 @@
"support"
],
"bluetooth/README.md": [
- "570b51035ed737c73da8b266cbe0eb658745286e",
+ "2406b51635145355309f8e8778a5669ff561813d",
+ "support"
+ ],
+ "bluetooth/characteristic/characteristicProperties.https.html": [
+ "65cc6c0367c0c2860677d2b22a8483c90eac6f2a",
+ "testharness"
+ ],
+ "bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html": [
+ "6ba1c71fa5c34f7b0321b5430fa79c75c907fc14",
+ "testharness"
+ ],
+ "bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html": [
+ "be7359ed375b28af9aab39c5b06ffbd0da1843bc",
+ "testharness"
+ ],
+ "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html": [
+ "fa068af0ac6d1629622f207b77ae95fe3f50b6cc",
+ "testharness"
+ ],
+ "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html": [
+ "82084e965ad35f176505631cb0b9007422bf3fd4",
+ "testharness"
+ ],
+ "bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html": [
+ "6a02e3fe8ca88b405e4183bc56c5f0bd2d6a426e",
+ "testharness"
+ ],
+ "bluetooth/characteristic/notifications/characteristic-is-removed.https.html": [
+ "f5b14288aad807a4aaaeee5c3ac24f8a43eb4589",
+ "testharness"
+ ],
+ "bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html": [
+ "4bb6355e47507c0e57498533d060106dda0051d4",
+ "testharness"
+ ],
+ "bluetooth/characteristic/readValue/characteristic-is-removed.https.html": [
+ "69e6a733b4d72a1f7f41b26d65fd874fa944aff5",
+ "testharness"
+ ],
+ "bluetooth/characteristic/readValue/event-is-fired.https.html": [
+ "ce736454ce04bcb34be9d1e76f77903ba3f3e805",
+ "testharness"
+ ],
+ "bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html": [
+ "1700dfa9ba6e1aa44d42630ef7ba61d4beeed330",
+ "testharness"
+ ],
+ "bluetooth/characteristic/readValue/read-succeeds.https.html": [
+ "a87d20692160f3a26fbfde8cfbc8750c0eeb7a65",
+ "testharness"
+ ],
+ "bluetooth/characteristic/readValue/read-updates-value.https.html": [
+ "e8daa0dedd43a87996093e5b2507a83572eadb43",
+ "testharness"
+ ],
+ "bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html": [
+ "97f5d01743721207c5addfb9625fd3da7c0c61e3",
+ "testharness"
+ ],
+ "bluetooth/characteristic/writeValue/characteristic-is-removed.https.html": [
+ "08efca72e1b522baf8f704f8589cf453b4c2b64b",
+ "testharness"
+ ],
+ "bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html": [
+ "62b4bd66196c9c833631916761b41e973aa2a554",
+ "testharness"
+ ],
+ "bluetooth/characteristic/writeValue/write-succeeds.https.html": [
+ "8dcaba2c0c6d277c006dd131f1f306918ac80c49",
+ "testharness"
+ ],
+ "bluetooth/generate.py": [
+ "ef112d89bc14d0e9ebbb457798609f6000a80935",
+ "support"
+ ],
+ "bluetooth/generate_test.py": [
+ "b8749e25c58da9a903feb5edc84c2d6ed8ebda67",
"support"
],
"bluetooth/idl/idl-Bluetooth.html": [
- "5d4d8278b1f24798765974c35777f70fcbfc9cfa",
+ "9ef91a8214b3a46278d8b9b442b34d9052342342",
"testharness"
],
"bluetooth/idl/idl-BluetoothUUID.html": [
@@ -388751,23 +391595,23 @@
"testharness"
],
"bluetooth/idl/idl-NavigatorBluetooth.html": [
- "9367593c5bfe07afb4629791cf6aab70460dcd4c",
+ "fa121bcbea3d19898a71f7dda79708ee941e4b6c",
"testharness"
],
"bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html": [
- "6e17536a0e3f9d9a0fe6ce075905954b23c83b00",
+ "850418b4a67df894ac4b21d2e5a18c5c266d03fd",
"testharness"
],
"bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html": [
- "e212d4609a7f295a564417a22c984c6ddeeeb0c3",
+ "e156278ff3af38ebc2695ffd3116039be7889e3e",
"testharness"
],
"bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html": [
- "899200ebcc741fd99b7c8a4e09cb6877c66c6bf5",
+ "c6e28d2c8509ea2f0e3633b2517ad68631119ffe",
"testharness"
],
"bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html": [
- "4478ad0afabf3adcd1f84e8165f1a3f185698974",
+ "50eaac3e0c94933fa995c102d53b6b00b3087ea6",
"testharness"
],
"bluetooth/resources/bluetooth-helpers.js": [
@@ -388775,59 +391619,303 @@
"support"
],
"bluetooth/resources/health-thermometer-iframe.html": [
- "badf5e78964f9979d6870c08fb78eb3987027c00",
+ "d42691b2621c13a28c3cfd675de4d95c8a585902",
+ "support"
+ ],
+ "bluetooth/script-tests/base_test_html.template": [
+ "abe5c81d5d9be9b0c6069ba0a465ca3efc24b442",
+ "support"
+ ],
+ "bluetooth/script-tests/characteristic/characteristic-is-removed.js": [
+ "7b7cd34d4c480e62fcde4667f50212cbae7f7b07",
+ "support"
+ ],
+ "bluetooth/script-tests/characteristic/descriptor-get-same-object.js": [
+ "2664262ff94976691ab7811e7b342cfd40e11190",
+ "support"
+ ],
+ "bluetooth/script-tests/server/disconnect-called-before.js": [
+ "3ea0ed09ee2197401437b4d89c335181b2983b17",
+ "support"
+ ],
+ "bluetooth/script-tests/server/disconnect-called-during-error.js": [
+ "43089297c181c29f633ed9dc574313aac34d4ba3",
+ "support"
+ ],
+ "bluetooth/script-tests/server/disconnect-called-during-success.js": [
+ "25835e2c53793ad800774de819b88939f12ebb82",
+ "support"
+ ],
+ "bluetooth/script-tests/server/disconnect-invalidates-objects.js": [
+ "0d113b9ec03ccb4f971710b06156cabc1f97e471",
+ "support"
+ ],
+ "bluetooth/script-tests/server/disconnected-device.js": [
+ "9b537f1e9d3b2416fcf27ff7c65c2a548693fc77",
+ "support"
+ ],
+ "bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js": [
+ "bd9f91f6dc624574f616f62295b3dbede30fdc84",
+ "support"
+ ],
+ "bluetooth/script-tests/server/discovery-complete-service-not-found.js": [
+ "3bd0c4c170efe30bfdbdbae30bfa6cf4563e5193",
+ "support"
+ ],
+ "bluetooth/script-tests/server/garbage-collection-ran-during-error.js": [
+ "e25a59e154898a964822190021cd6bd6f7784df8",
+ "support"
+ ],
+ "bluetooth/script-tests/server/garbage-collection-ran-during-success.js": [
+ "6bd2f4c2f0585ed078cef61b3867627bc0aeb682",
+ "support"
+ ],
+ "bluetooth/script-tests/server/get-different-service-after-reconnection.js": [
+ "4b4c9fcadb0ae28becc1888ffc0c738a898f15a5",
+ "support"
+ ],
+ "bluetooth/script-tests/server/get-same-object.js": [
+ "30382d56a15bb8b8a2825e265ddf00b489829151",
+ "support"
+ ],
+ "bluetooth/script-tests/server/invalid-service-name.js": [
+ "0c2b3d759291d4e247df131f82daa2be847cb1d9",
+ "support"
+ ],
+ "bluetooth/script-tests/server/no-permission-absent-service.js": [
+ "78388409359e9e5bc36b304865e6e14d30769e12",
+ "support"
+ ],
+ "bluetooth/script-tests/server/no-permission-for-any-service.js": [
+ "f9230d7d66815561f575ba55409f2ca4fc0a67b8",
+ "support"
+ ],
+ "bluetooth/script-tests/server/no-permission-present-service.js": [
+ "0f2e002be9842eb06f31f63de31c96fcd2820258",
+ "support"
+ ],
+ "bluetooth/script-tests/server/service-not-found.js": [
+ "b18022b48d354825fa747abda81bc870142d9c59",
"support"
],
"bluetooth/server/connect/connection-succeeds.https.html": [
- "16fe2bccd7e8f8f626222cc49c1df70401463f3a",
+ "167880b07f855325a35a81a8ea833b0d006c7957",
"testharness"
],
"bluetooth/server/connect/garbage-collection-ran-during-success.https.html": [
- "ff136c9e9b463cb8c545a6f51433743347a50db6",
+ "9186c8cef9bc2e170175b811cfd85f69883b14ec",
"testharness"
],
"bluetooth/server/connect/get-same-gatt-server.https.html": [
- "8f7a9a177770c9a44ed5e6fe8f3833ef18a60c1d",
+ "39cf93a9afa8cf4d377ed3746f5184cb61967b0e",
"testharness"
],
"bluetooth/server/device-same-object.https.html": [
- "13abe70e2d5bf768007a2c6e4119ebfe086d38aa",
+ "642394343df7f8d4aa924c330b57f2d4e891c3d5",
"testharness"
],
"bluetooth/server/disconnect/connect-disconnect-twice.https.html": [
- "04b2728be0ed8044629828f015b0d4f78dab6031",
+ "0a815341854fb89ba140dc66546cad449d997b42",
"testharness"
],
"bluetooth/server/disconnect/detach-gc.https.html": [
- "8e9e10665b091c6a7817e1b7d058e48c12163dbd",
+ "a0df0f4983e44466705e57bfcbcde8fc74c504dc",
"testharness"
],
"bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html": [
- "26efe3bc26f792baf0ff087d02730be62cc80f0b",
+ "06f821cc5fd28c776bbf2c2fc76ffdf80d66742d",
"testharness"
],
"bluetooth/server/disconnect/gc-detach.https.html": [
- "e673c3120276ffb6a4e8d03f47b049ff72ac0a9c",
+ "cba04d22660d31b5b9ad0d21b41f42d7761f5092",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html": [
+ "d1f9a8a640ae96589e7406e6c296137a08c4ea01",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html": [
+ "7eb6d88b2ac33e3426144ba374bc2b6730be1b01",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html": [
+ "013b1adff7a583f2706943edef16219a4ef12a50",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html": [
+ "babca3978d09c505ba002c5790142f45c09409f0",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-disconnected-device.https.html": [
+ "64579c81d08bf9753e4cdc319064b70d4e93c19d",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html": [
+ "ebb340c97a7dd41203889fb8514bce2202efa6b9",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html": [
+ "f2733d37d96e85581302f9cc65ea33fbd436c2f2",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html": [
+ "906d8a13230d427eb018b4bf65eb6800523c99bc",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html": [
+ "458c0b316c4e0bb06d0825dca372070d5961091e",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html": [
+ "cbd51c9175418a8c4bd031de3b2a2e4ef2ae7bb6",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-get-same-object.https.html": [
+ "a064dd7e8fe4137f0a7a83967907b88766f6466f",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html": [
+ "5728e27aba6861ddfc7cb4278b116ee9d94fbb7a",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html": [
+ "ed7a5e4ab959f5d8b5e72154c68e397128c4d071",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html": [
+ "86fab4a334c37e61ff9acbeafba071fd0aab5d30",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html": [
+ "46717e75f676ff426773a79c4c01b2412b2c70ee",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryService/gen-service-not-found.https.html": [
+ "9169ed84f3502d5e3e675d5e0e317d0d895b4ca7",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html": [
+ "ff1af939fa2b5b77523712a4281839349f00e43b",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html": [
+ "b579d5e4ea1762930d2831b082fa6d92810e59c3",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html": [
+ "5bf7c1c17795a136624b149d1c63c423de21a22d",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html": [
+ "c9b596491a06833d6dca56cd0dc92895056ccb45",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html": [
+ "a2e353e4812795ee397320add5faf764b0fcd776",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html": [
+ "22dc609a8be624fad4aeae9b29a280fd2524f180",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html": [
+ "962c58b5ebf1ec9b7f8801e666d0fb593a75f4bd",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html": [
+ "7ed5669e52a931920ad1e622b916e3ef9738813b",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html": [
+ "c240a2232591d9dde3501d8bf7476660e44f75bd",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html": [
+ "7bbf8a63ec4cf8b14e4cca6c34f92c861b73b78a",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html": [
+ "1c9ef6cbb708206b700a06b6d20441e7e4d08e3e",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html": [
+ "eed768bcd0f0b6cd0504a5e255176b53566cf50c",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html": [
+ "010e58796de1ddfa69a5861ed8f8361e0ff22338",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html": [
+ "a913ac938d4d0ae148f7165759e26aa9ad04f110",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html": [
+ "51fd1e4d6a25f7877c08d6415a8e5b5d4cab3bf2",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html": [
+ "1fdc6561901486f088f911cca14ec6ecf3d7ff98",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html": [
+ "eb6b10cb0f59a3eedeed6dd38ffd7d6bb5192dc8",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html": [
+ "159cf4869e074917cf01923fbdf41acab1bde40d",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html": [
+ "ad2f743b2dab04828ef996ce1912f9d03ddd9d36",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-get-same-object.https.html": [
+ "62d689a2a97e3f5d2bb22040faf3725d750caae0",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html": [
+ "878c93bcea918a0d008ab44552f7b26ff6f7a151",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html": [
+ "f96b80beb4c79a2bda3cc06bc11d6aa5fb392ada",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html": [
+ "96a195a1b25cf1985ccbc949431a28226f3ee684",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html": [
+ "618cf409fffba7679abe515982695db4bb1a5f68",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html": [
+ "3126e3b157670506442b0032de53e6d29e4c30f6",
+ "testharness"
+ ],
+ "bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html": [
+ "e9b4e0205d5d30589356aea481e469a746ee419a",
"testharness"
],
"bluetooth/service/getCharacteristic/characteristic-found.https.html": [
- "1861b9bde75f02ed8d7375b97946149ff1c4bf0a",
+ "53479f342ef4aab9a24aaaa4580a63b5e6bcd30b",
"testharness"
],
"bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html": [
- "be1a9c7d2cbc633430c07fd13006893dfc5b952b",
+ "cb0ff8a9913b54ef624a38d367d84b1656b2a536",
"testharness"
],
"bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html": [
- "3f2cb4123c32d9866c44e3946ae9f54410b6cf7b",
+ "b0fe70ff6c0f473079469a21984baf59143d51e9",
"testharness"
],
"bluetooth/service/getCharacteristics/characteristics-found.https.html": [
- "06831d211fb838073c73ca8daa842a833232e01d",
+ "3012c0752b641e8c8de994fbdb13ff2d3f7ea559",
"testharness"
],
"bluetooth/service/getCharacteristics/characteristics-not-found.https.html": [
- "4b57c4ec7579f4a9e625fb6b8a7cda50678b8a41",
+ "694b69270065eb15a7129f9359a2b71d90ed9226",
"testharness"
],
"clear-site-data/navigation-insecure.html": [
@@ -407106,6 +410194,10 @@
"888d3e58d3d094b767067e16494803af432ee057",
"testharness"
],
+ "content-security-policy/form-action/form-action-self-allowed-target-blank.html": [
+ "1a4146819d11ae72ddfe1f1eb319aef992af7dda",
+ "testharness"
+ ],
"content-security-policy/form-action/form-action-src-allowed.sub.html": [
"d0c2dcbb18201b72964f4da5f94b8c200fa02cad",
"testharness"
@@ -407690,6 +410782,26 @@
"cae24a6958eae450d1b21a47f4e13c407cac33be",
"testharness"
],
+ "content-security-policy/prefetch-src/prefetch-allowed.html": [
+ "8c88fefbffb6f5270b64cd8d81b405857a9c1123",
+ "testharness"
+ ],
+ "content-security-policy/prefetch-src/prefetch-blocked.html": [
+ "0c228cef4140a4a9ca5e7704cf4356e13e8f844a",
+ "testharness"
+ ],
+ "content-security-policy/prefetch-src/prefetch-header-allowed.html": [
+ "8b3e0d248e70c2d7587b0ff560f41a42b5bf92f4",
+ "testharness"
+ ],
+ "content-security-policy/prefetch-src/prefetch-header-allowed.html.headers": [
+ "81464314b28226f895ba738b0496b66f60e43b91",
+ "support"
+ ],
+ "content-security-policy/prefetch-src/prefetch-header-blocked.html": [
+ "55c94363465c252a3c24622a56020a8981e01f8e",
+ "testharness"
+ ],
"content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html": [
"7be3a72eb885841e8ccb674eeae3761f638adf2c",
"testharness"
@@ -408431,7 +411543,7 @@
"support"
],
"content-security-policy/support/checkReport.sub.js": [
- "50b8b274a0a846ad527c2a369ba870def28e45e6",
+ "06b0c4f4a36a7bd4d323d1920a1a3e2caa9b52dc",
"support"
],
"content-security-policy/support/document-write-alert-fail.js": [
@@ -408506,12 +411618,28 @@
"5ccfe2ec548aa6e16649c319c8252e608777fe64",
"support"
],
+ "content-security-policy/support/postmessage-pass-to-opener.html": [
+ "52e8144873f4a3eb414e4aa029dff4b97ea1f3d6",
+ "support"
+ ],
"content-security-policy/support/postmessage-pass.html": [
"ddfde964afded9ff5189c8c7554bcb2b1b1e5938",
"support"
],
+ "content-security-policy/support/prefetch-helper.js": [
+ "d64724d09dbd36c15c3cd097c1d1e65a44cfbf2a",
+ "support"
+ ],
+ "content-security-policy/support/prefetch-subresource.css": [
+ "e89eb14c8cee8b2c8711a5db7bd3fe3849ba136c",
+ "support"
+ ],
+ "content-security-policy/support/prefetch-subresource.css.headers": [
+ "f5821ebb091ec8effe575972e0ec086238b7beee",
+ "support"
+ ],
"content-security-policy/support/report.py": [
- "8cd779a8017cba678a565475271b892e8ed53e58",
+ "1ad83e152ddc0e2e840862ba6ffc81d73f969725",
"support"
],
"content-security-policy/support/resource.py": [
@@ -446979,52 +450107,56 @@
"reftest"
],
"css/CSS2/selectors/class-selector-001.xht": [
- "5648918099b8bb652d02b24475778f6c42747cca",
+ "f782cf42934491f229730c448f44c6bfe4fd25d0",
"reftest"
],
"css/CSS2/selectors/class-selector-002.xht": [
- "bf8e4920df3d0a43f5ec89c749234ef7c53e95a3",
+ "0847589d090e549aa9cb1353fb093ff9aac28334",
"reftest"
],
"css/CSS2/selectors/class-selector-003.xht": [
- "43ef23aec5bc549e172ae9ef7b48a43219618923",
+ "2e34022ef08f771c1d1da65e37b33745cc8bb285",
"reftest"
],
"css/CSS2/selectors/class-selector-004.xht": [
- "ac7dc5bb4e81a2f4cfe6e68c313eb3ed5481b4a6",
+ "1d6a32197d70f39d08afd1eebe34eff0c0564ddc",
"reftest"
],
"css/CSS2/selectors/class-selector-005.xht": [
- "3de44a047f43b471e90ed81fe5341dd4869923fa",
+ "31779ddbe67569ce616694ec32984f628e2fda4f",
"reftest"
],
"css/CSS2/selectors/class-selector-006.xht": [
- "2faa55faa4a6ef02f7f70ad691d4e122a245cb18",
+ "ad253e995f900cfa227bd5c60fc887a73a61b3d3",
"reftest"
],
"css/CSS2/selectors/class-selector-007.xht": [
- "0d2836c5d5cc65ef88865bac69a9935f82418d03",
+ "843e53a7f82dc6fae88bf491869256eef835742d",
"reftest"
],
"css/CSS2/selectors/class-selector-008.xht": [
- "428d5b4bcdfc689675e49b0a17795c2eca4da57e",
+ "a4eb1a6043f89e6dde3b6533a4b0fc23b6d83e6b",
"reftest"
],
"css/CSS2/selectors/class-selector-009.xht": [
- "6c422bc9f62331610cf53d2a309fbb4e24feea2d",
- "visual"
+ "d1169fd2567d73afa2fb5e82823367849b34b685",
+ "reftest"
],
"css/CSS2/selectors/class-selector-010.xht": [
- "e96a88870884d00155bf3a25f89982c86a068429",
- "visual"
+ "0b95a99da54820d1686a68ab4c5b24b29e300f07",
+ "reftest"
],
"css/CSS2/selectors/class-selector-011.xht": [
- "1a82978e5bd525e211e1885471264f9763530b74",
- "visual"
+ "483a463cd02fdfc4fa1c13d465394804850962c5",
+ "reftest"
+ ],
+ "css/CSS2/selectors/class-selector-012-ref.html": [
+ "d13cdb06ce469f4d9415baa7bf73ce49be781fc7",
+ "support"
],
"css/CSS2/selectors/class-selector-012.xht": [
- "6321e3da4d9d19849566a30d82c03d5e5a3c8058",
- "visual"
+ "1a2657f6a85ac5b36214d6017d95c706271c6419",
+ "reftest"
],
"css/CSS2/selectors/combinator-001.xht": [
"1fe5f1760fc25f31656459b8112907295696988f",
@@ -447142,17 +450274,25 @@
"9dbdc9af0cc734ba71d24babefc27789ff2dbfdb",
"reftest"
],
+ "css/CSS2/selectors/first-child-selector-001-ref.html": [
+ "6106c458659377bc6d1540b33bd13f92cd4e7859",
+ "support"
+ ],
"css/CSS2/selectors/first-child-selector-001.xht": [
- "f0c0419341b9f2f2677bef20c864d63ca3d19f06",
- "visual"
+ "73e0e50f7abc3b4016dac296b8efa80d132a195d",
+ "reftest"
+ ],
+ "css/CSS2/selectors/first-child-selector-002-ref.html": [
+ "fb0430966695bc0004d8ce980f9c5a588ab4bc65",
+ "support"
],
"css/CSS2/selectors/first-child-selector-002.xht": [
- "e8695799372216306711c0dd3f69e16e13e4c94d",
- "visual"
+ "a5d4c1c651bec9fcc9b3f182050d8e4fd44a2067",
+ "reftest"
],
"css/CSS2/selectors/first-child-selector-003.xht": [
- "d4f74f7eb20614c277950bb95741000116b2e048",
- "visual"
+ "89d82c26002157c9bce5059480d360efcf3f6e76",
+ "reftest"
],
"css/CSS2/selectors/first-letter-001-ref.xht": [
"a374dbdf5e818f625b3b24690ac52e2443edd330",
@@ -450506,41 +453646,65 @@
"7887d7447a6e83fa4a5cf62291b2550963fd09cd",
"reftest"
],
+ "css/CSS2/selectors/first-letter-selector-000-ref.html": [
+ "41c6e1a118791457c4fa366e64236079a676d0e2",
+ "support"
+ ],
"css/CSS2/selectors/first-letter-selector-000.xht": [
- "dde783ae8f5bad85a98aa2d0bba101c48d2c0403",
- "visual"
+ "354f7772a494e4f83e0ff346ef6c63e9a9cfd2aa",
+ "reftest"
+ ],
+ "css/CSS2/selectors/first-letter-selector-001-ref.html": [
+ "df974758e92b5745dc487c5a30901057848b79d7",
+ "support"
],
"css/CSS2/selectors/first-letter-selector-001.xht": [
- "dddd83cf893fe823c11dbce07f81ca8a98cad61b",
- "visual"
+ "8987f8880b711803af4deaac69c92d57afae2659",
+ "reftest"
+ ],
+ "css/CSS2/selectors/first-letter-selector-002-ref.html": [
+ "7bb98994faf5d24bd7b4abe1f7e13d4a9d473b5a",
+ "support"
],
"css/CSS2/selectors/first-letter-selector-002.xht": [
- "5e68f979ae695e92f5135a6b0cae0bfc4d784567",
- "visual"
+ "74c5c78870d8a776067e35c6542e64523b7685c0",
+ "reftest"
+ ],
+ "css/CSS2/selectors/first-letter-selector-003-ref.html": [
+ "addc58522c98706146deffc112a95be2b46992cf",
+ "support"
],
"css/CSS2/selectors/first-letter-selector-003.xht": [
- "fcfa7cf2aeb2926f568e4cc7732ad9e7d2998d8b",
- "visual"
+ "3417822d446e4d1e17a18b5041c44757b4cec7f8",
+ "reftest"
],
"css/CSS2/selectors/first-letter-selector-004.xht": [
- "faa17b3bfdcdbe249f70e47b5a338ce6036d712e",
- "visual"
+ "039d40f7b40087f4358ccca683fb178814a0dd99",
+ "reftest"
+ ],
+ "css/CSS2/selectors/first-letter-selector-005-ref.html": [
+ "d6c181a3a7bbf713c83ff4884d95e2da392cfbd0",
+ "support"
],
"css/CSS2/selectors/first-letter-selector-005.xht": [
- "403795228552dabcd7b74654fa8ab0a39aebe1e9",
- "visual"
+ "0bb54184e7895cd38b8b4f35336b0b7f0fec0a84",
+ "reftest"
],
"css/CSS2/selectors/first-letter-selector-006.xht": [
"bfd35783aee6b60dbe8c51a6359acc49a511b881",
"visual"
],
+ "css/CSS2/selectors/first-letter-selector-007-ref.html": [
+ "df406bb15f44fd0b5a976911c951a520dd03c6f2",
+ "support"
+ ],
"css/CSS2/selectors/first-letter-selector-007.xht": [
- "6cfa147b1579217d5039526a1394fed7526d5385",
- "visual"
+ "b3f74216dc8510efaebd0a6614b5d25a7de3e901",
+ "reftest"
],
"css/CSS2/selectors/first-letter-selector-008.xht": [
- "fd859cc37299e2b805f2ef686131b055cbc38e91",
- "visual"
+ "834b8447d99c8d7dec2a0be801121d5b1f263d0c",
+ "reftest"
],
"css/CSS2/selectors/first-letter-selector-009.xht": [
"21656d6c13cef9d55e67e254577120c1f8375a98",
@@ -450583,8 +453747,8 @@
"visual"
],
"css/CSS2/selectors/first-letter-selector-019.xht": [
- "2b718ea24e68c7e83706961ef62f3b112dd1dd2a",
- "visual"
+ "9da2d6dd4cfe451b00471ad6380edc7549b50407",
+ "reftest"
],
"css/CSS2/selectors/first-letter-selector-020.xht": [
"86e79eacf0e5a2ed4cd7266200583208412f88bc",
@@ -450747,7 +453911,7 @@
"reftest"
],
"css/CSS2/selectors/first-line-pseudo-017.xht": [
- "21853a26f2632750f953c4089896e5b63e332f82",
+ "3cdb96056d0565ee1dd083e380176e02515d651b",
"visual"
],
"css/CSS2/selectors/first-line-pseudo-018.xht": [
@@ -450755,16 +453919,16 @@
"reftest"
],
"css/CSS2/selectors/first-line-pseudo-019.xht": [
- "8c8b6c3ebd182d2e3f8b3706694681f6f4684844",
- "visual"
+ "c7653bfb7b9bc546f041f64dd20c6021dfc39e9d",
+ "reftest"
],
"css/CSS2/selectors/first-line-pseudo-020.xht": [
- "a11b4a2cbcd2f91ad8afe3f7dda40d35e69ac60d",
- "visual"
+ "b51d47dc42a15b868d1a3ae3d2834515b8f2d85a",
+ "reftest"
],
"css/CSS2/selectors/first-line-pseudo-021.xht": [
- "cc5386cda420799feab17dab36ba996646d81d82",
- "visual"
+ "af4f8bd5e6574cd622eecb56dd5945d15bdf57a1",
+ "reftest"
],
"css/CSS2/selectors/first-line-pseudo-README": [
"d135c53808c7b08a60dd28484545e37c7c2050a9",
@@ -450803,8 +453967,8 @@
"visual"
],
"css/CSS2/selectors/first-line-selector-010.xht": [
- "d6467bf0235b2ee9b183930125344f69aa37d00e",
- "visual"
+ "3601bf26d3674ce0407a1c369823bc677a6c9886",
+ "reftest"
],
"css/CSS2/selectors/first-line-selector-011.xht": [
"5580babec217ff169ab34fb93c6ef579165eed98",
@@ -450883,8 +454047,8 @@
"reftest"
],
"css/CSS2/selectors/id-selector-002.xht": [
- "680910791cac641da5e1cad7c54d3c92036166ec",
- "visual"
+ "97d323171ef3a0c571b6800c9db3d119cfab1506",
+ "reftest"
],
"css/CSS2/selectors/id-selector-004.xht": [
"49082e851cfe003e8e501c5a51c76f88a0b14e1e",
@@ -450914,21 +454078,25 @@
"b60d14eb9f201effc13b77446cd402322b8c51d2",
"reftest"
],
+ "css/CSS2/selectors/lang-selector-004-ref.html": [
+ "2f01fcfb8e87774c8862e0f69eadcd8002ff6834",
+ "support"
+ ],
"css/CSS2/selectors/lang-selector-004.xht": [
- "5dd95963da95ae8ec1ede71f317f0fb062bc98b0",
- "visual"
+ "4c288f74876a197f8e1942f9204e84264f5a391f",
+ "reftest"
],
"css/CSS2/selectors/lang-selector-005.xht": [
- "131ec3a98ac25150fada2724c87ce463297eb682",
- "visual"
+ "4ba7c718773b17a6b64b8b4464eea855622184c1",
+ "reftest"
],
"css/CSS2/selectors/lang-selector-005.xht.headers": [
"9d32780bb7dcc87f872222e49ca4aed4b437f5f4",
"support"
],
"css/CSS2/selectors/lang-selector-006.xht": [
- "80553c10655b0efa5c1d2bceffcace36e27a70e2",
- "visual"
+ "1e374a6c24b7c2c398ebb296c2e502103d81ed29",
+ "reftest"
],
"css/CSS2/selectors/link-visited-selector-001.xht": [
"f26ff1d0a8e15ac910bfa3e6e056e9804c4e125e",
@@ -450967,16 +454135,20 @@
"manual"
],
"css/CSS2/selectors/pseudo-006.xht": [
- "b5cd0c152a5ae4f5668523c7b6090cc772bc08ba",
- "visual"
+ "714289f41e5984c9aebe059ebd502020064329d0",
+ "reftest"
],
"css/CSS2/selectors/pseudo-007.xht": [
- "a45c61157960ee0068a2976d769ce869a1d1d5f7",
- "visual"
+ "644d39c5e4c8a0d3acadcf4e247edd3d40bcb9bb",
+ "reftest"
+ ],
+ "css/CSS2/selectors/pseudo-008-ref.html": [
+ "e03231cfc884e858dd3bde9a7750cc9c4ba6e261",
+ "support"
],
"css/CSS2/selectors/pseudo-008.xht": [
- "e7f76c8ff2cbc3784f3d54e4779166a80daf063f",
- "visual"
+ "a4aea999241a8822f383da0216445889acb9a146",
+ "reftest"
],
"css/CSS2/selectors/pseudo-009.xht": [
"f4a15140bd17de62eccdc2d4bb1e55885f878077",
@@ -451515,15 +454687,15 @@
"reftest"
],
"css/CSS2/syntax/at-charset-004.xht": [
- "abf22e6c2cb3a62a8cf0a769433944fe767645d6",
+ "4be54f24add87fa928e2a626b01bb386834464ef",
"reftest"
],
"css/CSS2/syntax/at-charset-005.xht": [
- "50e0b983c5b9da991749aca73b813f88ed66cecc",
+ "0d8fc695d9eec9ce8e7a2eca8a181781c4b8d5e2",
"reftest"
],
"css/CSS2/syntax/at-charset-006.xht": [
- "91255df72b78144f58619440c084c81f34096602",
+ "ccb61b4f7657b866fc73096c3d03edbd39a114a6",
"reftest"
],
"css/CSS2/syntax/at-charset-007.xht": [
@@ -452115,7 +455287,7 @@
"reftest"
],
"css/CSS2/syntax/comments-005.xht": [
- "68cac0bb97b4d05b56fae95131ead1723f303418",
+ "43df4d6db913c7044fd14f99235ed263a19894e5",
"reftest"
],
"css/CSS2/syntax/comments-006.xht": [
@@ -452475,7 +455647,7 @@
"support"
],
"css/CSS2/syntax/ident-003.xht": [
- "c60d9157d642240dba18739f3304b86a9acb0a09",
+ "5e1b8bfc9103962c40180bf61e72f0fab9568c8d",
"reftest"
],
"css/CSS2/syntax/ident-004.xht": [
@@ -452546,10 +455718,6 @@
"52344643762a293f247235ca1860a3d82b134009",
"reftest"
],
- "css/CSS2/syntax/ident-020.xht": [
- "dbc6a7c3921e6b50bc0a839ad5ba5c792cc70700",
- "reftest"
- ],
"css/CSS2/syntax/ignored-rules-001.xht": [
"07506eee3478a63ee68550c2d9a4305b49c3cbed",
"reftest"
@@ -452754,10 +455922,6 @@
"c51a03a807743f59e3027371ccfbd8e80235a485",
"support"
],
- "css/CSS2/syntax/support/.htaccess": [
- "7f6c0bd932e4c213e919689e54d80a3035151ee0",
- "support"
- ],
"css/CSS2/syntax/support/1x1-green.png": [
"51e7b6974a09eda6cb31337717c5eaeb9c44b443",
"support"
@@ -452802,24 +455966,24 @@
"bf760baf57311ad536ba734f29e7e89bf7b26131",
"support"
],
- "css/CSS2/syntax/support/at-charset-002.css": [
- "076ea5f1245eadb58678b486b40dec79ebbe7d15",
+ "css/CSS2/syntax/support/at-charset-001.css.headers": [
+ "8c0fa1a7ffc1f2a3a7d3b97d8080a8fa6ed43509",
"support"
],
- "css/CSS2/syntax/support/at-charset-003.css": [
- "a0fb89bd89da4327c1f4e0b84f76b6e598b556da",
+ "css/CSS2/syntax/support/at-charset-002.css": [
+ "076ea5f1245eadb58678b486b40dec79ebbe7d15",
"support"
],
- "css/CSS2/syntax/support/at-charset-004.css": [
- "a0fb89bd89da4327c1f4e0b84f76b6e598b556da",
+ "css/CSS2/syntax/support/at-charset-002.css.headers": [
+ "8c0fa1a7ffc1f2a3a7d3b97d8080a8fa6ed43509",
"support"
],
- "css/CSS2/syntax/support/at-charset-005.css": [
+ "css/CSS2/syntax/support/at-charset-003.css": [
"a0fb89bd89da4327c1f4e0b84f76b6e598b556da",
"support"
],
- "css/CSS2/syntax/support/at-charset-006.css": [
- "a0fb89bd89da4327c1f4e0b84f76b6e598b556da",
+ "css/CSS2/syntax/support/at-charset-003.css.headers": [
+ "8c0fa1a7ffc1f2a3a7d3b97d8080a8fa6ed43509",
"support"
],
"css/CSS2/syntax/support/at-charset-007.css": [
@@ -453270,6 +456434,10 @@
"250e49627027fb261bc023cad47a0ba5bdfcf188",
"support"
],
+ "css/CSS2/syntax/support/plaintext.css.headers": [
+ "4abca84cbd566bb501053408ca983b17b5eae889",
+ "support"
+ ],
"css/CSS2/syntax/support/ring.png": [
"11dd9e78a68b2fc5eb69c401920b43070751a569",
"support"
@@ -455518,69 +458686,93 @@
"4c8d8123470efe103c3041d1b07a9f4cc9fde6f1",
"visual"
],
+ "css/CSS2/tables/caption-side-applies-to-001-ref.html": [
+ "c7c39e671a33b41746184d0754f3f191b4c6d309",
+ "support"
+ ],
"css/CSS2/tables/caption-side-applies-to-001.xht": [
- "a33828fb6ef755cbd122adf8c36924297367a18e",
- "visual"
+ "8cfb1967c9f9f00ffc1ad0e4487ccc4f3d4d1eed",
+ "reftest"
+ ],
+ "css/CSS2/tables/caption-side-applies-to-002-ref.html": [
+ "9dc6fee0ede5482fc998e2b97795442853ed19a8",
+ "support"
],
"css/CSS2/tables/caption-side-applies-to-002.xht": [
- "60a1856140f8fa5cda9da3e00d26ac7965d3d049",
- "visual"
+ "a567cb5206e2927fcdf84074c4ab01066a26ee44",
+ "reftest"
+ ],
+ "css/CSS2/tables/caption-side-applies-to-003-ref.html": [
+ "31ba9c2a4e8006a3e056a0f1afb8575f925568cc",
+ "support"
],
"css/CSS2/tables/caption-side-applies-to-003.xht": [
- "c760b23d4d23bacc858484f7281901b788f4eb46",
- "visual"
+ "e38f584d9f50b6c63b5aba96d23985e4835361be",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-005.xht": [
- "5e4431bc587669fba72de3f6edebe61686a6ef88",
- "visual"
+ "83204fa51853aa755b7b2a0281e013d66712f290",
+ "reftest"
+ ],
+ "css/CSS2/tables/caption-side-applies-to-006-ref.html": [
+ "5c2277f81ef8b2ddf6bc7bd7c672a71e3eb8e198",
+ "support"
],
"css/CSS2/tables/caption-side-applies-to-006.xht": [
- "841a1d7586697e71d86899a77195db78f9a4400d",
- "visual"
+ "b7b930de8476845990e91763af72a02d7d2e5f1f",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-007.xht": [
- "d8a78135f717b130139affde9a9f0b25c0d7d499",
- "visual"
+ "0afcb39831c07ae9f2a2a7042fc9c1028d508a05",
+ "reftest"
+ ],
+ "css/CSS2/tables/caption-side-applies-to-008-ref.html": [
+ "fc5b655d43de07bf86f77884d3f53378ad487d77",
+ "support"
],
"css/CSS2/tables/caption-side-applies-to-008.xht": [
- "1b76e5c2f19ead45b1fb99cd69e79099b371e0f0",
- "visual"
+ "285b2351f9d1dc3abfbea064e9cae7fd7ecf9147",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-009.xht": [
- "7cfabbf9a7e8619d49c079c9b7bf1cebf880705e",
- "visual"
+ "c738519e99fe530224c794525dfa95d7ab324716",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-010.xht": [
- "92c3634c8b2a29dec357b324e358cdc024d2f4a5",
- "visual"
+ "ac4615f06a1b4b3659a9893893fdb7d6b2ed82df",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-011.xht": [
- "789d8b815d7c8cb1627e141c5032a90fc40191cf",
- "visual"
+ "5628655fd66d4975060558e1748b0f3e4b778e42",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-012.xht": [
- "06dbab8a12fbd4b2049f2676eee948842a34970b",
- "visual"
+ "5d0d8a6a96ea0ecd4cb1534f48562cd6f9b6e3d7",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-013.xht": [
- "6c2ce04226c1bb6d8b187716ea1df86d9a89d569",
- "visual"
+ "5c420a560262f1f64713fa6890a4f6ca3661bfe8",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-014.xht": [
- "983fd4da6c9eadabe93420bb049e552006d5ef52",
- "visual"
+ "9d756193fe6044cc0af10988ee8018200b1f6d6a",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-015.xht": [
- "18f6665adbaf40ac0c8b09ab39da281dc438d3f7",
- "visual"
+ "a11fcd0eced488fe19af503cd67c39e3cf4a6295",
+ "reftest"
],
"css/CSS2/tables/caption-side-applies-to-016.xht": [
"6852ac3b59e6a26fbe9670378986b1c7a28e9df2",
"reftest"
],
+ "css/CSS2/tables/caption-side-applies-to-017-ref.html": [
+ "6ac039c92d9dca1c5589e6043cf3d8664436823c",
+ "support"
+ ],
"css/CSS2/tables/caption-side-applies-to-017.xht": [
- "2cb060bbacb37e1b8a30894c76a878f0eac7b61d",
- "visual"
+ "b6b5c2fa8a4d21840ae52a9c1f5f62378c303993",
+ "reftest"
],
"css/CSS2/tables/caption-side-example-001.xht": [
"79311fa5fe281463fba7038c3a22f635a6d511a1",
@@ -455602,21 +458794,29 @@
"45732277d51f78c96aaccb811a8d0b80b63bbf20",
"visual"
],
+ "css/CSS2/tables/collapsing-border-model-001-ref.html": [
+ "307324990ad6d9ca2381fe54aae8b3a9a4ba84af",
+ "support"
+ ],
"css/CSS2/tables/collapsing-border-model-001.xht": [
- "3cdcfc78858fa0beb9fe6ef00d4261d821f1dd48",
- "visual"
+ "aebaa741e96a58b885f4e3c37df77d8c1ed1bac7",
+ "reftest"
],
"css/CSS2/tables/collapsing-border-model-002.xht": [
"90f06ee14259e475b5a644acbd31f8e6b52d8255",
"visual"
],
+ "css/CSS2/tables/collapsing-border-model-003-ref.html": [
+ "a3800cdbf2321ea23fee866753c96e401386560f",
+ "support"
+ ],
"css/CSS2/tables/collapsing-border-model-003.xht": [
- "a14eb152cfd413fbfae9693111bd4b36dd0ac8aa",
- "visual"
+ "5567414471f502b550d4c81bfb7b521d154359a3",
+ "reftest"
],
"css/CSS2/tables/collapsing-border-model-004.xht": [
- "5668da0f3f1115b41b9747dbb8dd95640f315e4a",
- "visual"
+ "5942b3adbbb03cc2e3060e0baf13f6853bcc9d34",
+ "reftest"
],
"css/CSS2/tables/collapsing-border-model-005.xht": [
"97306577aad589918d1b1febb83a609300ad3f18",
@@ -455627,16 +458827,16 @@
"visual"
],
"css/CSS2/tables/collapsing-border-model-007.xht": [
- "137fa735c948f369e502c20ec762df7a430e3f72",
- "visual"
+ "e38919cd16785ab2448678b3c25d20a104dcb6cb",
+ "reftest"
],
"css/CSS2/tables/collapsing-border-model-008.xht": [
- "571db2a677a174e10e668821c7c10ca102ff6d51",
- "visual"
+ "4a7575c04bde514dcf0c98795a1d9ec68617a810",
+ "reftest"
],
"css/CSS2/tables/collapsing-border-model-009.xht": [
- "d08d7959e15c817dca83f4bf85acfad643861d8b",
- "visual"
+ "eca3fb31b72cfcbc79d74a54be207afafcf2d57d",
+ "reftest"
],
"css/CSS2/tables/collapsing-border-model-010a.xht": [
"e439734ebbe198bbf77066db3275a58b1be686b3",
@@ -456519,12 +459719,12 @@
"support"
],
"css/CSS2/tables/row-visibility-001.xht": [
- "5f8962c6026581ddd659cb96617f79330ccae7ed",
- "visual"
+ "bf888162e2f031ba7fc148fa2620866edf024f15",
+ "reftest"
],
"css/CSS2/tables/row-visibility-002.xht": [
- "2496e438c6d776a3b8332bfc911f14d00aac53de",
- "visual"
+ "ce966c71fd29af94b2bab86c2a9faf8f2d630201",
+ "reftest"
],
"css/CSS2/tables/row-visibility-003.xht": [
"14f51e20306bcb7f01872f91f808cee5abe834b1",
@@ -457863,8 +461063,8 @@
"visual"
],
"css/CSS2/tables/table-cell-001.xht": [
- "55b32dcd32789ee78a131f5a8db78b5c7faeb807",
- "visual"
+ "4c60202579bc55ba74b03219d6fd6ebf92c9ed3d",
+ "reftest"
],
"css/CSS2/tables/table-cell-002.xht": [
"21ecd5040224235a46864e54acc2f70627672bd1",
@@ -473002,6 +476202,18 @@
"056b3597f3555c803c74a8f6277a06626efd12ea",
"reftest"
],
+ "css/css-content/element-replacement-ref.html": [
+ "f1ad3fca133b1b671e45ae1307fbe9454c40e3ec",
+ "support"
+ ],
+ "css/css-content/element-replacement.html": [
+ "f491ddf2b3062ea2f9b616c968c88b9cc95f22eb",
+ "reftest"
+ ],
+ "css/css-content/resources/rect.svg": [
+ "e0c37ea653aee58f962133219edc4484a734c6e0",
+ "support"
+ ],
"css/css-counter-styles/OWNERS": [
"820cad495f069d1badb3a727b9a2514269c6008e",
"support"
@@ -473926,6 +477138,10 @@
"073573175b4ef24f0ba26ae7456e161f775a7d40",
"reftest"
],
+ "css/css-display/display-contents-text-inherit-002.html": [
+ "4ab5c9c2b6c5a0c5e148e550ef16662e6b3575b0",
+ "reftest"
+ ],
"css/css-display/display-contents-text-inherit-ref.html": [
"b248e78a0255b923c4ed4aa269e65f53b6386bf4",
"support"
@@ -478551,19 +481767,19 @@
"reftest"
],
"css/css-fonts/font-variant-alternates-01-ref.html": [
- "fee60b0c399502744f3188df83c86f19d3fc6efc",
+ "2d7df070714d9efa07d70e434666ff4f780b55be",
"support"
],
"css/css-fonts/font-variant-alternates-01.html": [
- "e2360e9b1465384a6f29476838508af3b6ec71ab",
+ "445ff998bf052c1f04ab8e33002eedf391cb835d",
"reftest"
],
"css/css-fonts/font-variant-alternates-02-ref.html": [
- "7c8dd8a6f9a3d42fe04a90bef6c843351793539e",
+ "712b40e7dae774153502defd5206d4da8d592ccc",
"support"
],
"css/css-fonts/font-variant-alternates-02.html": [
- "7dce91351ff56b97ce966b102f6f00d0574fb63a",
+ "e9d74f02812d6b947fd88ffe91838cdae65df4cb",
"reftest"
],
"css/css-fonts/font-variant-alternates-03-ref.html": [
@@ -478571,7 +481787,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-03.html": [
- "a26b895506ba1d3f29b2343bb635867bc099f386",
+ "e4ab952f4a9c5f5421b3237f589c08c8f6c04509",
"reftest"
],
"css/css-fonts/font-variant-alternates-04-ref.html": [
@@ -478579,15 +481795,15 @@
"support"
],
"css/css-fonts/font-variant-alternates-04.html": [
- "157455c29dc696127ce5c3b45b581c5bd03b6909",
+ "09306fe9ff6d99d7226811c84702fe451b680e0a",
"reftest"
],
"css/css-fonts/font-variant-alternates-05-ref.html": [
- "9a2081e861f551b8b22ede7686ea8e6636f8e579",
+ "d426d7ac09177d75146fbb04cf13e4b2e7c6326a",
"support"
],
"css/css-fonts/font-variant-alternates-05.html": [
- "3c86787c1e81bc8db802428f5522bc7b5f15b8f9",
+ "a40b09abdd8a3f31100184f9f13b1c65d93d6abc",
"reftest"
],
"css/css-fonts/font-variant-alternates-06-ref.html": [
@@ -478595,7 +481811,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-06.html": [
- "ae40f2db209b804d7589ef03b69557e71995b9ae",
+ "eb87b2a0af758871cc856a9ec2aa4e976716c293",
"reftest"
],
"css/css-fonts/font-variant-alternates-07-ref.html": [
@@ -478603,7 +481819,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-07.html": [
- "8b44a336d7f7f6b69e401c86733e978b2bb52cfc",
+ "caf337f548657c4e188aa477ccec4b8149d092bf",
"reftest"
],
"css/css-fonts/font-variant-alternates-08-ref.html": [
@@ -478611,7 +481827,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-08.html": [
- "e67a8cc7e4b3de219f3862329f8b916fac7e8b90",
+ "f9fc6c2252064c94ba3e6120b3646faa0bb590f7",
"reftest"
],
"css/css-fonts/font-variant-alternates-09-ref.html": [
@@ -478619,7 +481835,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-09.html": [
- "5c00521c873d41c049acf23a9b8fa178def49636",
+ "75768372f5747e12bf569e40c1474f3341479552",
"reftest"
],
"css/css-fonts/font-variant-alternates-10-ref.html": [
@@ -478627,7 +481843,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-10.html": [
- "0cd86b6749badec6551407c069b211f262e8aec1",
+ "36ec29992f8a3de6a3679c8b89410c7c4fef6e41",
"reftest"
],
"css/css-fonts/font-variant-alternates-11-ref.html": [
@@ -478635,7 +481851,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-11.html": [
- "7d926b680fef01676946fb6dc16511f8a3cc1b6b",
+ "70b0db84986c8f982d0cc5fe08d997f7757924bc",
"reftest"
],
"css/css-fonts/font-variant-alternates-12-ref.html": [
@@ -478643,7 +481859,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-12.html": [
- "f180da31bb437d71b81fa2fe91a7ba46ee8f3060",
+ "c173b400c5c247aa13d400efe7a0b7d0440a498c",
"reftest"
],
"css/css-fonts/font-variant-alternates-13-ref.html": [
@@ -478651,7 +481867,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-13.html": [
- "cc84ecb5ca83bba5b95d6fab9761edd3985f297e",
+ "47ed224bd5c03bd2610521defe634776d25ae27f",
"reftest"
],
"css/css-fonts/font-variant-alternates-14-ref.html": [
@@ -478659,7 +481875,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-14.html": [
- "2f76c2d8eea0fa73be08ec1baf09c8603c410c0a",
+ "e5d952170c8e4e4ee507550f20e06f4f02358aa7",
"reftest"
],
"css/css-fonts/font-variant-alternates-15-ref.html": [
@@ -478667,7 +481883,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-15.html": [
- "b52acb2a3c7ea8b3a94efd4fec55651c76b63531",
+ "9ff98fb9ba0a0d8f7dd7eeba46f9fff0cded50d5",
"reftest"
],
"css/css-fonts/font-variant-alternates-16-ref.html": [
@@ -478675,7 +481891,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-16.html": [
- "37b2e733219908a78b72d5ccec71e3fd82d60d6e",
+ "438440aa6dcc401f66d6c9f271221b377e08f12f",
"reftest"
],
"css/css-fonts/font-variant-alternates-17-ref.html": [
@@ -478683,7 +481899,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-17.html": [
- "b42d28fb6df88c1f955080fedf7c60298c4caa64",
+ "9c7b3567045c4bce12d693df687120534e066c56",
"reftest"
],
"css/css-fonts/font-variant-alternates-18-ref.html": [
@@ -478691,7 +481907,7 @@
"support"
],
"css/css-fonts/font-variant-alternates-18.html": [
- "de45acb63b567c5318b014ebab07098ca8c317b6",
+ "b85b14eaf76f9c1b89a015b8a5aea9382f61e332",
"reftest"
],
"css/css-fonts/font-variant-alternates-parsing.html": [
@@ -485747,147 +488963,147 @@
"reftest"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-001.html": [
- "4d7695956abc3d5589e22ae6e2a8fb687a631698",
+ "6a98b19084f09099a83cd1e150dcc99e58967596",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-002.html": [
- "126a23ef4ad9fafe013f423de81ecad914dfc354",
+ "de9c39a8cf8a34cf3fabcc54250fce96f0da97f2",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-003.html": [
- "322cd468bd9e554b7152549b6a59f577ddc1f522",
+ "f900fe7f668b23d0263b8f6c0c75aa7e3cbd94db",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-004.html": [
- "5270072349ede83f9c4819d897205fdb0561675a",
+ "9bd03a88898d05c43c37746b14faeba4ec76fee1",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-005.html": [
- "9175d7ba9eab2525278bccc19ce67580629e1394",
+ "0cccd51996f9802335781decffff868a4952f7b1",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-006.html": [
- "a0b444c6bc8050b957fcf2dc0f01e9d9a2745b7f",
+ "eb27b625fe24bfa2c82782f135c5003b7626f55b",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-007.html": [
- "1a7924d186eaf96c34ef327b53eaad9dc232e59a",
+ "4ece5545866128327b8b5d4dd9375c65cab6def5",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-008.html": [
- "dc9642f2940dbd5cfd063c6618f3e582bf6f13b2",
+ "80962fbd4435119db662903b0a201286e9bf91cf",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-009.html": [
- "2b911d9a088e2498916f71d3fae6690ec9e7ae30",
+ "384f6b6b006da58c897b896c4f474b90e6dade1e",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-010.html": [
- "26a41689f987213e209f2e7a334d546c47c8120b",
+ "cc2954da9e8a924770e0802c132a8d5d05ff6a67",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-011.html": [
- "1039c62b02bf29117616070d7c69fa702be2a0d4",
+ "e1befaf27f4defef626b8c423f3a82f661160655",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-012.html": [
- "2f2f560cead46e8d4dc6a0199f34cbecd94a2545",
+ "84eb6de9bb892de373129df60f10bdf0cf9b59d8",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-013.html": [
- "24268a6bd064461d595f27fd19449e667767a153",
+ "f527bc3b0669b048268a8c59274150f3adeabd01",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-014.html": [
- "56936df344200f196bfad7149b04269b307c89e5",
+ "eee651407a75b74ba32d60312a347bef95a6501f",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-015.html": [
- "c0579a49665ae2b8125dfeb5d7bd1514cab24bbf",
+ "cccb3afaab2bb61b26229a5bb5713348c9d4a519",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-016.html": [
- "2aaf17aa7217d6eea98a6f39cc5f22676ff83514",
+ "661f7bbd9c211bb29f14bf9124676e40e44d21cd",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-017.html": [
- "bf62dfb709848b87734a19c033a4c74e9c868aff",
+ "c5aeba430655c90997b790b922ba7aaed087211b",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-018.html": [
- "2e7bb50061ee0af312a3249df5ff05313f61c80e",
+ "89abc2805c57b1c79b65288efbf82fb9f98fc31a",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-019.html": [
- "ed2833b2bd7b74425a7daa3f0f58394286dd1110",
+ "dd94f62a1bcf515c8667466ef2a4680089c9bef5",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-020.html": [
- "ae305d831dd2b461bfd8f2ca47c5e5d1d302485f",
+ "5e04f379860ecd2b7c6870d10444e0e022d30b9d",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-021.html": [
- "f649e11557664937aeb2a465d00563642afb7884",
+ "a3f885dd5ac3a87bf272d17fc996c9aba32e175a",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-022.html": [
- "d2e1f4a999a7377421ea4b9e8cb4b4ae5e320bbd",
+ "7b64b2643498ea16f3718f1f85de0c59374fed47",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-023.html": [
- "a223e17741b3a0ef6cd22e54466fc02fb4b77b8e",
+ "2cac611759cb41fe10ef080b459a23b93bfeb5d9",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-024.html": [
- "d5c7d56e74ab8f6b6986e272ef998dd0212abcc9",
+ "b379721b172702289188baf3bc86b1cc5d5e3793",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-025.html": [
- "725f50b1f9d3be9fb368ae613eae9377baf8d43f",
+ "3437429a0baacfc0770a28aee7e7c5922b83968a",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-026.html": [
- "a6370fe0c3e9f987f9a0766c93165ecefec85132",
+ "3b9c36585804926a99157ef5f1707b54318da971",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-027.html": [
- "f82bae8883376515e7faaa7f0ed667576f5fad37",
+ "e51d98a565264448dd2c39ac556bba8073236ab0",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-028.html": [
- "396f4f823eb6e2115a9d5ce390fbdb529e799063",
+ "4c5c94ae2ac166374725a53604f0b50a9b09fa34",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-029.html": [
- "411ed5d2577ac0c2839bbb829efc170ba7136c19",
+ "2c99765c101af32aff4ef16b615930a650db52f2",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-030.html": [
- "1d0ac6855db55908602d543660d9ae14a18edf1f",
+ "6c3e1b09a0a8e1268a3e2c513b7959972fee1632",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-031.html": [
- "97b2b7231b6f7f812c3ee8ff89317281b1ecfa6e",
+ "627a1e421cbcc93dbf5b5beb028482495aa96ea9",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-032.html": [
- "4c55498e0a14acdded1563a4890b18da9b464201",
+ "a3b9af60a41c8baa60f5ec891a56d3c2e075d6c1",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-033.html": [
- "222a1a659ae09f78641551a369a2bf4fc01f86eb",
+ "ab9eda7db315fdd67240c93d5544fe3230101509",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-034.html": [
- "f0ea292f1996f5635e2f8c382bb14baa71c1840d",
+ "1f506f17eeaf10ca4728c0b3b40ec825e85a4438",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-035.html": [
- "029a04b0ba3297c3b357454f2b5cba743dfcb90a",
+ "2bfd66cdd546bf0151c1aaa800903bf974a10b75",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-036.html": [
- "201ebb99796766165de76c4d762214102157129d",
+ "d9ab0bc1deb8a9a8b29c80b446ee9f7cb720d214",
"testharness"
],
"css/css-grid/alignment/grid-column-axis-alignment-positioned-items-001.html": [
@@ -486618,6 +489834,10 @@
"dc9d15b18538afb38790de51e31095ce9f93e0a9",
"reftest"
],
+ "css/css-grid/alignment/support/style-change.js": [
+ "021db5d6c4e974ab0c8d7e59666a785db03942c4",
+ "support"
+ ],
"css/css-grid/grid-definition/fr-unit-with-percentage.html": [
"0dc90f8d107fe96a35cd837a224d4a28dd971f92",
"reftest"
@@ -487326,10 +490546,6 @@
"6bb300b8baebf700481ea162fb7b41913fcca29c",
"support"
],
- "css/css-grid/support/style-change.js": [
- "a92e1d3f5be007d10fdf432bb198f87b00bdc35a",
- "support"
- ],
"css/css-grid/test-plan/index.html": [
"e633dc7584fbc7bfe99177aa5dd9fbd107a2d3f5",
"support"
@@ -488502,6 +491718,34 @@
"8853e79d6e9c3d262ebb38c569e97932f3b27cd4",
"support"
],
+ "css/css-masking/parsing/clip-invalid.html": [
+ "fad5d0257532a5c1572d41f83d045c92a6fe0d61",
+ "testharness"
+ ],
+ "css/css-masking/parsing/clip-path-invalid.html": [
+ "791ea3c564f629ed8d679499f5483e122ad9f602",
+ "testharness"
+ ],
+ "css/css-masking/parsing/clip-path-valid.html": [
+ "4ac5715cdba374d3b702157ffce4a0a45009995a",
+ "testharness"
+ ],
+ "css/css-masking/parsing/clip-rule-invalid.html": [
+ "5a7673c56ae29a10133ed1395ae1e61ee2a7dd81",
+ "testharness"
+ ],
+ "css/css-masking/parsing/clip-rule-valid.html": [
+ "9236b88f0ac03139210fe6f5fd5f9fa08a613c09",
+ "testharness"
+ ],
+ "css/css-masking/parsing/clip-valid.html": [
+ "e7805a38a0634d760bdc31e4c331da1a56582bc9",
+ "testharness"
+ ],
+ "css/css-masking/parsing/resources/parsing-testcommon.js": [
+ "b5cc6f7c0c7729328bbbc45ec2a8147dae8d8668",
+ "support"
+ ],
"css/css-masking/test-mask-ref.html": [
"6307ecf282b941dbe1475bdb603208f4140b2f26",
"support"
@@ -488947,11 +492191,11 @@
"reftest"
],
"css/css-multicol/multicol-nested-column-rule-001-ref.xht": [
- "d53e71b2a82e6d519fa7fffcc62ba832717cd7a5",
+ "ae91439c53426782f29ed92e1f75da836d978ba5",
"support"
],
"css/css-multicol/multicol-nested-column-rule-001.xht": [
- "7157a7f0a6dc740d9a12561118c2aa71923511c7",
+ "0dfe07fddd84a8eab8b0ed71e48cd40ab7117e7e",
"reftest"
],
"css/css-multicol/multicol-nested-margin-001-ref.xht": [
@@ -490159,11 +493403,11 @@
"reftest"
],
"css/css-paint-api/paint2d-image-ref.html": [
- "c71e0b960177b13614d2c11392c94ea155927ebe",
+ "d4abe5cfd1d2416da7e390d28bc359feac91a2e7",
"support"
],
"css/css-paint-api/paint2d-image.https.html": [
- "5df17bc61598b6687091b3da4b626ed0938cd89e",
+ "df6ce0e992726401b8b3eec1ee72029c2f113316",
"reftest"
],
"css/css-paint-api/paint2d-paths-ref.html": [
@@ -490298,6 +493542,10 @@
"4eee3e45f32779df4464132fa43717a3afc135b2",
"reftest"
],
+ "css/css-paint-api/resources/html5.png": [
+ "0b71ad4f2c95d41419082c2f1a2fc8370b14ebd2",
+ "support"
+ ],
"css/css-paint-api/style-background-image-ref.html": [
"0985e20363c8aac715c534ad59f1209889244fb0",
"support"
@@ -492946,6 +496194,10 @@
"7e780a2c98d134a62aeea85f8695c39bef1d63b5",
"reftest"
],
+ "css/css-scoping/css-scoping-shadow-nested-slot-display-override.html": [
+ "6779dddd0b63ddfcecf33584fd8196b43d698f5a",
+ "reftest"
+ ],
"css/css-scoping/css-scoping-shadow-root-hides-children.html": [
"ecf7c1427ea8556476506f618eef7ad25e11a2bf",
"reftest"
@@ -493094,6 +496346,34 @@
"b0841c5c1e328846aaa95376ae62178173cdf5a5",
"testharness"
],
+ "css/css-shapes/parsing/resources/parsing-testcommon.js": [
+ "b5cc6f7c0c7729328bbbc45ec2a8147dae8d8668",
+ "support"
+ ],
+ "css/css-shapes/parsing/shape-image-threshold-invalid.html": [
+ "72fb606c460752043db729e7157483fd01f7ce0b",
+ "testharness"
+ ],
+ "css/css-shapes/parsing/shape-image-threshold-valid.html": [
+ "040363d13bbed463d1e5e02fea84566da39853cb",
+ "testharness"
+ ],
+ "css/css-shapes/parsing/shape-margin-invalid.html": [
+ "678fe576221b82b6a85927de3337cef02f85da8d",
+ "testharness"
+ ],
+ "css/css-shapes/parsing/shape-margin-valid.html": [
+ "bf937f106b1d6e5b15abce0971da8773777a0ac0",
+ "testharness"
+ ],
+ "css/css-shapes/parsing/shape-outside-invalid.html": [
+ "024c4a2789493964b162397bc994b699274e1423",
+ "testharness"
+ ],
+ "css/css-shapes/parsing/shape-outside-valid.html": [
+ "5b90c13064455cff16f5a4d54a6343c76775f3cc",
+ "testharness"
+ ],
"css/css-shapes/shape-outside-invalid-001.html": [
"550e970032ac78ada40b7b8b3e7159c4160d60da",
"testharness"
@@ -507254,10 +510534,42 @@
"4bcfaa7a22cbe8fa2ca234583403d26bd520474c",
"testharness"
],
+ "css/css-typed-om/resources/1x1-green.png": [
+ "51e7b6974a09eda6cb31337717c5eaeb9c44b443",
+ "support"
+ ],
+ "css/css-typed-om/resources/testhelper.js": [
+ "08f2394f7dfa11460d1e67b8d0c6e556620bf65a",
+ "support"
+ ],
"css/css-typed-om/styleMap-update-function.html": [
"a1dee75d914b68753af742ce8e6dbbac0397a9a6",
"testharness"
],
+ "css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html": [
+ "162ce70613e78bb007ea24ea525ec78ef17cd3bd",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html": [
+ "65c2418988148bf9662f5f502bb4650cc6105a85",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html": [
+ "a52fdeadf8f0663e5e8f455e60a233da816e05ca",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html": [
+ "4bc704fca50d3a114fe0fde76b6030516662d43a",
+ "visual"
+ ],
+ "css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html": [
+ "9334ee684f4a2897f6a191d9217e63af5630cc0d",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html": [
+ "3a5ea9eef361accde1e0166d9defa186bae5c602",
+ "testharness"
+ ],
"css/css-typed-om/stylevalue-objects/interface.html": [
"5c9086db5b7f3a9d6e3109f1ce47385ad345f474",
"testharness"
@@ -507278,10 +510590,150 @@
"2b6761e72a7867218d2f9d9f780569b342c1d89c",
"testharness"
],
+ "css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html": [
+ "004752ad2e9682845697d668af158679031f65dc",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html": [
+ "9bcb4ff6461793d61925d173da7650230e3b4555",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssPositionValue.html": [
+ "155be052f2810afb0560b72e7c223293c02e61a8",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html": [
+ "d255d5d406d5620d4ed1cdd2979c7dc720475399",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html": [
+ "022aec2fac9ccdda36adf97bd47aa407e2825f6e",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html": [
+ "7ba0e1c9db3799bad925036de1da7c51fd102610",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html": [
+ "7b7fa7d06c5dcf614864bab0adef083359278ab6",
+ "testharness"
+ ],
"css/css-typed-om/stylevalue-subclasses/cssKeywordValue-interface.html": [
"53394d04d67fa9526240c2c0af8b71f54a60a0c3",
"testharness"
],
+ "css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html": [
+ "63600cc74e62ecbaf98bf786de17362764ec947e",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html": [
+ "236520d8ac6199066d1e082b9860f2381ff61be6",
+ "testharness"
+ ],
+ "css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html": [
+ "dc32e826e1f840c99f3b4bad4f03bd0f9573ce4e",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html": [
+ "f217ed58d7f56ea588aa942fddfec0322d557283",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/get.tentative.html": [
+ "caf3a345b03a2b929af25a8b360d5da9bb59fb5a",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html": [
+ "4393dba1aea1936ac0ff0f08ef6b5810eaaa8b6b",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html": [
+ "9e0018aed64fbca86d25f5ec466f88212ebd4906",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/has.tentative.html": [
+ "b7b16ab44745e235883303b8c495aa1ceb874d0c",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html": [
+ "71dc6c117d3b0e17ddcee46c9db11953197edb75",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/append.tentative.html": [
+ "6a408857cd88d03a4a00ee2127a3825380d2565f",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html": [
+ "0a2097381fd03a532db7e2b1fb85dd7a901fb011",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/get.tentative.html": [
+ "944052a99d1b5cc1a574c07339c33fdb6b1423d4",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html": [
+ "ba694cbe689837f183601aab4872c4525613ebd4",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html": [
+ "7cb65bf76de24fe33a48178f5193bc05c5ec3f44",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/has.tentative.html": [
+ "3299b5537f2d535988f2f6dac65b3eaba63833b2",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html": [
+ "3652cf0e25de23c04beadbaf2e4ddfffb244333d",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/set.tentative.html": [
+ "2e8b919993a68f96008f17a0e95c08d05434e6a6",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/test.tentative.html": [
+ "eca38801c677a07ebc5e15ec7d11a3338bf0ecc6",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/declared/update.tentative.html": [
+ "02eff9d89e280182fd065b63d71167041c6a8394",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/append.tentative.html": [
+ "df640de5b24c8276459a1a7fbc8a02cc97db6223",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html": [
+ "352917486fa593e0d3f6f645c9c67846aa303ed8",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/get.tentative.html": [
+ "28c506dae933e33e536f02e17b110cced9ea0278",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html": [
+ "a149643634642b6277c4ada8da9b712f40ccf9b5",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html": [
+ "5187e1eb4fb23b6b9a7fba8130d2649c4ea9152e",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/has.tentative.html": [
+ "89b6d05db8717f1bc1f82690706d849a57104ec7",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html": [
+ "e8317c96cea894eaa47d361ba5adbb15d237726e",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/set.tentative.html": [
+ "00d06230cd8f21d522ab895c853201f9910d0d90",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/inline/update.tentative.html": [
+ "30ee6179d77f18692867217c18852db94b1d10bb",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/interface.html": [
"73aac61c85d142f38b871ef21c8ce75bd468cf40",
"testharness"
@@ -509702,6 +513154,18 @@
"5e071d71a9cc355a62d0165b4ca2840ba0ab8c66",
"reftest"
],
+ "css/css-values/lh-rlh-on-root-001.html": [
+ "ecac1ab87e66bddd777f8799c11fde8909e2e408",
+ "testharness"
+ ],
+ "css/css-values/lh-unit-001.html": [
+ "441da6e10585655372496de1d640e8a41259dbc3",
+ "reftest"
+ ],
+ "css/css-values/lh-unit-002.html": [
+ "bc74010a3b7e81f008277cad91ba8adea5382787",
+ "reftest"
+ ],
"css/css-values/reference/200-200-green.html": [
"1ac64ebcfdbff6285f24dae29e32767646145082",
"support"
@@ -516726,6 +520190,10 @@
"966ebff69f91c0ea92f4bc2f943df9ef9dc3bcf9",
"testharness"
],
+ "css/cssom-view/scroll-no-layout-box.html": [
+ "8f423a757bd716c9c22e82fd2f35007d05982c08",
+ "testharness"
+ ],
"css/cssom-view/scrollIntoView-shadow.html": [
"3c4a18992105fd7bf19cbf29f0b6d80cb12ca98c",
"testharness"
@@ -518470,6 +521938,14 @@
"51a3f4808392b7bcce4f2569256c540a3be817dc",
"support"
],
+ "css/motion/offset-anchor-transform-box-fill-box-ref.html": [
+ "0cd13108479de1850b6457cce41fee37dcd022fc",
+ "support"
+ ],
+ "css/motion/offset-anchor-transform-box-fill-box.html": [
+ "bed35419a1cb479707bca1e4e23db725d1925da9",
+ "reftest"
+ ],
"css/motion/offset-path-ray-ref.html": [
"dfea2bd9cadf9d1b83e95bc2dbffef3539937ff1",
"support"
@@ -523546,8 +527022,24 @@
"471738f74a0754bea39a0d48ac71c75d26aa9130",
"reftest"
],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html": [
+ "0d84c9abc0971826e7ab6a4167c90075c052357f",
+ "support"
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html": [
+ "200c7bb0fb583bf4f7d6e85213be498cb88659ba",
+ "reftest"
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html": [
+ "f7656df52db5f8b601dd10c3b827f96c7f66b74b",
+ "support"
+ ],
+ "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html": [
+ "f741f790f2effdc45525e63863318540415824df",
+ "reftest"
+ ],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list": [
- "4dfb8e7cd5345f510d05ccf683cacdbed8c80bfa",
+ "a0d4a43edbe193d5e2cf2dc949b3e3ccf5726263",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/support/Ahem.ttf": [
@@ -529102,6 +532594,10 @@
"e1b4b49cbd7ea1fd703c7ab3814deee0669e9336",
"support"
],
+ "docs/_running-tests/chrome_android.md": [
+ "fab045301c74644f3feeed712b43707cac13db53",
+ "support"
+ ],
"docs/_running-tests/index.md": [
"15811229e77d2949a6cb5d1848cff7136d8f11af",
"support"
@@ -534854,6 +538350,10 @@
"678e1f80a090021a240933034d1a9206cddde8a4",
"testharness"
],
+ "fetch/security/redirect-to-url-with-credentials.https.html": [
+ "6eb9c75887afd084c12dee609dd4c4a7cf7a6a5e",
+ "testharness"
+ ],
"fetch/security/support/embedded-credential-window.sub.html": [
"09ab38acc0bc980af3e96a61390cd000885b2fe5",
"support"
@@ -535379,11 +538879,11 @@
"manual"
],
"gamepad/idlharness-manual.html": [
- "b7feb12fc02bc656eb41f406999481d204293c08",
+ "e570c8f2defac5b53f5f18fa3a09b184e8adb845",
"manual"
],
"gamepad/idlharness.html": [
- "cafa75af045a99b74e979b8905671d8b4bde107c",
+ "302f0796746f252a1a851d306d7e96cf86d7d402",
"testharness"
],
"gamepad/timestamp-manual.html": [
@@ -535403,7 +538903,7 @@
"support"
],
"generic-sensor/generic-sensor-tests.js": [
- "2209b4cc293aefecded2d325b664d494820d38af",
+ "22c64a2145caa9eeaf4e53243dc971d832a478e0",
"support"
],
"generic-sensor/idlharness.https.html": [
@@ -535471,7 +538971,7 @@
"testharness"
],
"geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html": [
- "ae1bdcf06fbf8dc8189950593b83bdd749e37880",
+ "f67a0c9e416e45326d7301c2a40c758029011738",
"testharness"
],
"geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html.headers": [
@@ -535479,15 +538979,15 @@
"support"
],
"geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "6b0ea48ea2fb1cb6b81348bf5e28618716a34166",
+ "fb033fd0f0d891e9b6ed2b54b835f8f06364643e",
"testharness"
],
"geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html": [
- "f1b108ddd2f5b1ea915410f4cdb28c2e1a812cf9",
+ "06e4487981f8e6e062d9e9fea14d52e64b6b5035",
"testharness"
],
"geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html": [
- "35fea3e77f992df2861bea97405e9c75f7a1f994",
+ "e8287121361749246b874207dcffb92e459dfbec",
"testharness"
],
"geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html.headers": [
@@ -535495,7 +538995,7 @@
"support"
],
"geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html": [
- "a9da2c50d4bde9eb24ef343979afcbc6547684e2",
+ "4222f48c8c2a932c5b65b6426bb9a0ad476ddd0c",
"testharness"
],
"geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -535523,7 +539023,7 @@
"testharness"
],
"gyroscope/Gyroscope-disabled-by-feature-policy.https.html": [
- "03457271ec8c254bf74f89afa7532a595b837404",
+ "bc6f85cb3506d3e3e062eef43dca88bf3a4ebe89",
"testharness"
],
"gyroscope/Gyroscope-disabled-by-feature-policy.https.html.headers": [
@@ -535531,15 +539031,15 @@
"support"
],
"gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "68df44bc71f1aaba74188f70dc916e9ee1dcc330",
+ "cc1f4082fa420a9076f929d88268f5a1d921a44a",
"testharness"
],
"gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html": [
- "e7c53323038c11a977e547ebe9d7ae94646f1a06",
+ "75429c87bbebd19df7b4edaddc5869c6202b3fab",
"testharness"
],
"gyroscope/Gyroscope-enabled-by-feature-policy.https.html": [
- "e4e170946a0289e8b1b6be83083aeeb92ddc4a8f",
+ "5129c05f9b226650a9b7fed4841871045525bf15",
"testharness"
],
"gyroscope/Gyroscope-enabled-by-feature-policy.https.html.headers": [
@@ -535547,7 +539047,7 @@
"support"
],
"gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html": [
- "f48401e0e04294624ebb864224a6d2126e849870",
+ "2603bd858929ae6f84ebbe0cce34c5417ccdae06",
"testharness"
],
"gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -535943,11 +539443,11 @@
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html": [
- "d1a0dcf7e544066d7d30454e9915fad22c6966dc",
+ "3924bc14b2b90880c939e384bf4b075531793a57",
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html": [
- "7feaab2a60b39d697819571136463ce26936d3db",
+ "4ceab904264ef4e4151a3fac41f662d83a80072e",
"testharness"
],
"html/browsers/browsing-the-web/history-traversal/contains.json": [
@@ -540115,7 +543615,7 @@
"testharness"
],
"html/dom/usvstring-reflection.html": [
- "c0f3943df125b3042abb5ef891e01f2b61fea0e5",
+ "a48e32b268a8117ed803c8ede806a879e1556d76",
"testharness"
],
"html/editing/.gitkeep": [
@@ -545862,6 +549362,14 @@
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
+ "html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html": [
+ "e30982d8f6490bfd4b3c124b281d13a1f93e0e18",
+ "testharness"
+ ],
+ "html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py": [
+ "fde4968951519e82db85aa8624470f5256e16396",
+ "support"
+ ],
"html/semantics/document-metadata/styling/.gitkeep": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
@@ -547122,6 +550630,10 @@
"fee519ec5f5afc13be7c7f5a4387e746135c3747",
"support"
],
+ "html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt": [
+ "c99c03bde6cc607a6b0c2b0831527bf8a3081e13",
+ "support"
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/resources/cues-no-separation.vtt": [
"251de0c5026da00c2b18469ee99924cf70ad1b4e",
"support"
@@ -547366,8 +550878,16 @@
"c8ab03c7d84d150befa8152e552d99e889ce4ec0",
"testharness"
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html": [
+ "32cb1d3aec235d98b1f4654bb81f2bafd24a2e56",
+ "testharness"
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html": [
+ "703a140689ca43502dd3e2922c9718034bc9f7fd",
+ "testharness"
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html": [
- "ac23d5be03b500a264d3bf919d88396e318b4e89",
+ "1ab49530360602eee786211576774956d8f5cc2b",
"testharness"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html": [
@@ -547378,6 +550898,30 @@
"688c592e8fc4b4dbc2d7d6ea16e17380c13f440a",
"testharness"
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [
+ "0fe944a0ec2df071f3d0ea5bfa8a69720d52af86",
+ "support"
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [
+ "5405472fee1eb767d8b95e64206737e238d60407",
+ "reftest"
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html": [
+ "e8bb477c297f47d5f39e25fcf232bd686bf9a36b",
+ "support"
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html": [
+ "18072ac5f58f1b84a8574432f9de44e44d4811c8",
+ "reftest"
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html": [
+ "135b766f1a8e76914ca9b96385465bbc0b086e9c",
+ "testharness"
+ ],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html": [
+ "3eea15ded06b5c4786f223993407c9d78ac40f96",
+ "testharness"
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html": [
"a87ad9da0dad43e1b68183feeabce59a5c864087",
"testharness"
@@ -551899,7 +555443,7 @@
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html": [
- "996d1aa45c5975e13ac0f1e9c9249b3d452ed2e2",
+ "3365d69d34e442962370a1f0ed22017876efe4fe",
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html": [
@@ -552967,7 +556511,7 @@
"testharness"
],
"html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html": [
- "4714117714f350db0174189e6fd2a5acf8280f0f",
+ "aff1352988cb70e52cff99e1fde379a807dd6984",
"testharness"
],
"html/semantics/text-level-semantics/the-a-element/resources/a-download-404.html": [
@@ -552983,7 +556527,7 @@
"support"
],
"html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html": [
- "e328666c9e386349db0cf51bee0838d2dcb83415",
+ "d51356778b9a9e87e79c33b64ea9cf31a091cb07",
"testharness"
],
"html/semantics/text-level-semantics/the-b-element/.gitkeep": [
@@ -554702,6 +558246,10 @@
"1f29964d20d88de0d659fd76b864b51681582870",
"support"
],
+ "images/pattern.mp4": [
+ "341b777522809f50a88b366566069ee7b77cba80",
+ "support"
+ ],
"images/pattern.ogv": [
"340a255f9e8e06dad2a766f4b3e7bb5e15bf697e",
"support"
@@ -554891,7 +558439,11 @@
"manual"
],
"interfaces/OWNERS": [
- "f9c94ab08fa997459cba17e61d8cd00ee8b07b46",
+ "b2cece17c61be3b2d6ebf3294c268ebf1061026e",
+ "support"
+ ],
+ "interfaces/WebCryptoAPI.idl": [
+ "87b02fc82a1b204ac59a51932e58f9369b4a77c6",
"support"
],
"interfaces/accelerometer.idl": [
@@ -554930,6 +558482,10 @@
"fda57b55aabdc54d674851851451c6c69c514ed1",
"support"
],
+ "interfaces/gamepad.idl": [
+ "89fa62f6e0d1fdb497ce6550804b57a5d4ee0d0f",
+ "support"
+ ],
"interfaces/generic-sensor.idl": [
"3b2cb524838f2274463664621fddc7c927ac95af",
"support"
@@ -554951,7 +558507,7 @@
"support"
],
"interfaces/html.idl": [
- "b93b108cc7ce46595b701a6631b5b8536f0e7eb2",
+ "5eead97f7b1cc2e511f268cb5a40011a33519bf0",
"support"
],
"interfaces/magnetometer.idl": [
@@ -554974,6 +558530,10 @@
"3a5f9a4e768409532916c751e7169c35ec0e23a8",
"support"
],
+ "interfaces/proximity.idl": [
+ "74f2bf81a497589e7b3ed323368df218a70925a3",
+ "support"
+ ],
"interfaces/remoteplayback.idl": [
"fc724b70bc1e1d30e538ee5154a99d4871414302",
"support"
@@ -555006,6 +558566,14 @@
"7b5749e1fece69552e0a8bfac7af401fac15394d",
"support"
],
+ "interfaces/webxr.idl": [
+ "7a275cb5317c967a1058cab3a711c9262abfbf59",
+ "support"
+ ],
+ "interfaces/xhr.idl": [
+ "5363c96002f96f796f4800b92f8748b1141f0821",
+ "support"
+ ],
"intersection-observer/bounding-box.html": [
"a3ac1b70ba26234b7c968055171e652f3a8a14d8",
"testharness"
@@ -555191,23 +558759,23 @@
"testharness"
],
"keyboard-lock/idlharness.https.html": [
- "bcaf4f063cd423d5fb0e1055761e8880e4b63220",
+ "4b41c1c46a8f7d2374d0ff9d796f3f938c1f74d8",
"testharness"
],
- "keyboard-lock/navigator-cancelKeyboardLock.https.html": [
- "5109eb45591bba9ce48d3db91fa02c0590397886",
+ "keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html": [
+ "ee6fe59233abea9325bf7f5e14c1472a72e45a11",
"testharness"
],
- "keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html": [
- "6a05080698fbeff768c4f5c85dbbc89cf3cfa09a",
+ "keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html": [
+ "02ad8f54b7cebed96553bd96bbd7e8fc0227d3b1",
"testharness"
],
- "keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html": [
- "79ed9f93e2f72bf8e11d04e25c6fa847c91971e4",
+ "keyboard-lock/navigator-keyboardLock.https.html": [
+ "572f4e827bc3807f4c71641e102d7bac9df3e391",
"testharness"
],
- "keyboard-lock/navigator-requestKeyboardLock.https.html": [
- "6f8091035f4aa18131c548a81cbe80ba328169c9",
+ "keyboard-lock/navigator-keyboardUnlock.https.html": [
+ "c4de12456714a34fb791b070304da31c99da080f",
"testharness"
],
"longtask-timing/OWNERS": [
@@ -555275,7 +558843,7 @@
"support"
],
"magnetometer/Magnetometer-disabled-by-feature-policy.https.html": [
- "e7c3f45ece750fd22149ea34ee968a6f7f795ac3",
+ "9af542095f2fcd57691c0432ef3248b04a0207a0",
"testharness"
],
"magnetometer/Magnetometer-disabled-by-feature-policy.https.html.headers": [
@@ -555283,15 +558851,15 @@
"support"
],
"magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "d9963541021955e037dec0b443e4a80f4ffe4ee0",
+ "47829ff5747eed99ba22e79b12ddfff288fd031e",
"testharness"
],
"magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html": [
- "2ff0ea0df581c878201bc89e05dfc3e82ffadc01",
+ "3b6314e9176a24976d9d882644c30f00554eed6d",
"testharness"
],
"magnetometer/Magnetometer-enabled-by-feature-policy.https.html": [
- "ef9490c36c40ee6fe2f1bb09c6fd30519d70796c",
+ "05128cdb7171ba230143e7b68b09968a484b602a",
"testharness"
],
"magnetometer/Magnetometer-enabled-by-feature-policy.https.html.headers": [
@@ -555299,7 +558867,7 @@
"support"
],
"magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html": [
- "3e96f42d58b119e42b261f0ae641f56a7c685f47",
+ "3240dafd2bc810dea0dc1ebc31728c86a29f2ec5",
"testharness"
],
"magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -555826,6 +559394,10 @@
"c446fd2ec7e9a940b66a297d9d6a5de9015dc42f",
"testharness"
],
+ "media-source/generate-config-change-tests.py": [
+ "044023540660d9b81484d1ae14851e13af907055",
+ "support"
+ ],
"media-source/import_tests.sh": [
"943d26f264d59f2a7c01db30f5d91e72dafa9935",
"support"
@@ -555935,7 +559507,7 @@
"testharness"
],
"media-source/mediasource-config-changes.js": [
- "08d405df023b14f73bb2490d5e8037feb7ae0ad2",
+ "9bafe96e2a478adf28b0c6fd4186d2bae588e921",
"support"
],
"media-source/mediasource-detach.html": [
@@ -555983,7 +559555,7 @@
"testharness"
],
"media-source/mediasource-play.html": [
- "fb9a01c9d1aeecec782726b347aeec7f703de07d",
+ "e9b1b8b37dc3e850e175383997fe68d6935af539",
"testharness"
],
"media-source/mediasource-preload.html": [
@@ -564255,7 +567827,7 @@
"manual"
],
"orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html": [
- "a87d0228b022235fd00eb345cc39f764afd8a64a",
+ "0c7657e32b46c64e5f050f04e40ccfc0dce32e47",
"testharness"
],
"orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html.headers": [
@@ -564263,15 +567835,15 @@
"support"
],
"orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "7b827dd86f0ec3fd63e7f37d90c9eb85a61be8e2",
+ "71a6966fb91f8ddfe15ee690c843e4621a3b4720",
"testharness"
],
"orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html": [
- "7bd1a53f63f8ce9cf4421dd173ee9772dd8ab739",
+ "9bbe39e1be4a669f31f0fb3960aca22d7d159c5e",
"testharness"
],
"orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html": [
- "8eaf4b91ba622a454a1f4bae08b5e59905b0deeb",
+ "9f110b8ceca3dd3ce3d2a9e2567d92a3fc6462bf",
"testharness"
],
"orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html.headers": [
@@ -564279,7 +567851,7 @@
"support"
],
"orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html": [
- "02840fd195f2891fcb9d2159e92dad004ec94608",
+ "c4404cf0b16c4d9ad15308392ecf52caee445b86",
"testharness"
],
"orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -564303,7 +567875,7 @@
"manual"
],
"orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html": [
- "721b7ba79a90408c073a00383e84966368602b0e",
+ "8c6c5f8f3bc4421f5143a3e4fab287564cf4907d",
"testharness"
],
"orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html.headers": [
@@ -564311,15 +567883,15 @@
"support"
],
"orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [
- "69bcd956cb76f80481eb867a34fc755f96963d4c",
+ "34a79c9033a41c0aceab3fa6a470dd5a76f2ac81",
"testharness"
],
"orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html": [
- "2c86a4a1a9d71e1ebc8909cedc3cd11a82d59db1",
+ "0e6260ccdaa8163b8db96516960be226a4d85ba7",
"testharness"
],
"orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html": [
- "14c83011b5ebcc04b64a3b958e272801f7cd2895",
+ "243b2d60d4c528a77e9cfb68fa256b35234e7346",
"testharness"
],
"orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html.headers": [
@@ -564327,7 +567899,7 @@
"support"
],
"orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html": [
- "a469f03dcf3ce4c8b93fe1498935c6507b1bde87",
+ "c9f234f6508fb778fdf91277bb8950c99479979d",
"testharness"
],
"orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [
@@ -564519,7 +568091,7 @@
"testharness"
],
"payment-request/PaymentRequestUpdateEvent/constructor.https.html": [
- "91210fe058e95195ff5f999a1540ce0f2914f552",
+ "2b47979bae7fcc90fa5162dd597d6e55c96f2c15",
"testharness"
],
"payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html": [
@@ -564607,7 +568179,7 @@
"testharness"
],
"payment-request/payment-request-abort-method.https.html": [
- "5c1ddf4e9e2a896036912983462f51f8ff6aa82b",
+ "30c62af4a05a4d83cbbd1e82d0df62bae9a85e96",
"testharness"
],
"payment-request/payment-request-canmakepayment-method.https.html": [
@@ -564615,7 +568187,7 @@
"testharness"
],
"payment-request/payment-request-constructor-crash.https.html": [
- "9983391839ed64c41f9a7ecfb48a9b4abe6b497c",
+ "383d1c3f9505ee63d504bee87e13efa90ba49f3d",
"testharness"
],
"payment-request/payment-request-constructor.https.html": [
@@ -564782,6 +568354,10 @@
"e06354c2fd72bb868f8964cbf9ab393b629a3789",
"testharness"
],
+ "performance-timeline/po-takeRecords.html": [
+ "e674c882ca331e48c92e6b9bf88d8b8a054316e4",
+ "testharness"
+ ],
"performance-timeline/resources/square.png": [
"f2f3c2b3cef895f514f595932b767299cd6dade0",
"support"
@@ -565155,7 +568731,7 @@
"testharness"
],
"pointerlock/movementX_Y_basic-manual.html": [
- "b8567207aa3112562738cc6ffd2f2e5e2af652c5",
+ "eb22c6fb2fbae178f2b662a09a9153635bdb17e6",
"manual"
],
"pointerlock/movementX_Y_no-jumps-manual.html": [
@@ -565567,7 +569143,7 @@
"support"
],
"presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html": [
- "9f18b9602f6866fd9b56ca4759a66b8624b05d17",
+ "f665499c4310075541d7eef79140e1386c651f36",
"support"
],
"presentation-api/receiving-ua/support/PresentationConnection_onclose_receiving-ua.html": [
@@ -565638,8 +569214,8 @@
"ba9b710aa4213f10edc7131a3879821f38f2ef19",
"support"
],
- "proximity/idlharness.html": [
- "8505e5ef30a561c82b7732fd24789387cf8f654e",
+ "proximity/idlharness.https.html": [
+ "25c63ad4caa047d13ef9be748d6c880df4193b0d",
"testharness"
],
"quirks/active-and-hover-manual.html": [
@@ -573323,11 +576899,47 @@
"testharness"
],
"resource-timing/resource_connection_reuse.html": [
- "8ab91aeb45b1db42af8c87681fcd793d71f05254",
+ "b20162d02cad807fc2b250b7d73042822fcb9030",
+ "testharness"
+ ],
+ "resource-timing/resource_dedicated_worker.html": [
+ "8a4f853bdffe110bc15c04aaed4d4436a5ea3a23",
"testharness"
],
"resource-timing/resource_dynamic_insertion.html": [
- "1b6e111056101c88623eda6148042c310a5b7a6d",
+ "a6cd75583f6363a83b18f1bc77d89821de344ff7",
+ "testharness"
+ ],
+ "resource-timing/resource_frame_initiator_type.html": [
+ "dcea1111a2c9a40a1d3de7246a5295e84dcf08b5",
+ "testharness"
+ ],
+ "resource-timing/resource_ignore_data_url.html": [
+ "f8513b4ae7cc26c07cea1c16d872e0594f05041c",
+ "testharness"
+ ],
+ "resource-timing/resource_ignore_failures.html": [
+ "c22e136e1c942a2fd652985a660ca0acd6c3a8b6",
+ "testharness"
+ ],
+ "resource-timing/resource_initiator_types.html": [
+ "b04269a158aadf5a178decc306481c15f2c310b0",
+ "testharness"
+ ],
+ "resource-timing/resource_memory_cached.sub.html": [
+ "7bd3af7679a4e628090bbc1e7114f416457144d6",
+ "testharness"
+ ],
+ "resource-timing/resource_redirects.html": [
+ "76f977ff494e0c7899b616909b0dab1832ed44c5",
+ "testharness"
+ ],
+ "resource-timing/resource_reparenting.html": [
+ "8df6e1b7d03e0480a24535124e72808f061b2bc1",
+ "testharness"
+ ],
+ "resource-timing/resource_script_types.html": [
+ "11ead0e7600ea288f78582f8ee194a903490e6e1",
"testharness"
],
"resource-timing/resource_subframe_self_navigation.html": [
@@ -573338,10 +576950,22 @@
"9e8051a2ff8fff72b36ed1cecb61f9e7bba29071",
"support"
],
+ "resource-timing/resources/all_resource_types.htm": [
+ "c7f698888c64e5b750fac45e22dbb85e5979b3c5",
+ "support"
+ ],
+ "resource-timing/resources/blank_page_green.htm": [
+ "2d6d55d85e17a9fe978db6dbe25ae35a599d5683",
+ "support"
+ ],
"resource-timing/resources/blue.png": [
"99949c515749e66f471c3589ee7a0ef518aaccb5",
"support"
],
+ "resource-timing/resources/empty_script.js": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
"resource-timing/resources/fake_responses.html": [
"c942abc1e8c1672935ffc8ce34821891345bacb9",
"support"
@@ -573350,6 +576974,10 @@
"09568d5f64474184cde594a47e26e374bcc8ac4d",
"support"
],
+ "resource-timing/resources/green_frame.htm": [
+ "08f8ca19b61ab0ac68014d5b406a952669fbe104",
+ "support"
+ ],
"resource-timing/resources/gzip_xml.py": [
"cf637a4389fd259dee3a2df56194a68b3744b4c6",
"support"
@@ -573394,6 +577022,10 @@
"f53513f6f47fd4a6d4994a4ef7d6e37d1777ea57",
"support"
],
+ "resource-timing/resources/nested.css": [
+ "b89daf15601a711f6046d9e2fe1cc43ae1f0fd27",
+ "support"
+ ],
"resource-timing/resources/notify_parent.html": [
"91790b717d0922dcd58237137c9728afbe488e46",
"support"
@@ -573430,6 +577062,10 @@
"59692fb2ebe890d65acba54aa2f814fcf9b46d39",
"support"
],
+ "resource-timing/resources/worker_with_images.js": [
+ "161473f1cd2157a69c506c80dba6ef25f76122ee",
+ "support"
+ ],
"resource-timing/single-entry-per-resource.html": [
"e23e9cab8d42a3bb6b0635cd3916d9131ccc6ba2",
"testharness"
@@ -573439,7 +577075,7 @@
"testharness"
],
"resource-timing/test_resource_timing.js": [
- "504f20a00b7be9c3b15666dfe34df02856a8bc72",
+ "a68dca4f542588b705f126df73dfad8c88c69506",
"support"
],
"screen-orientation/OWNERS": [
@@ -573750,8 +577386,684 @@
"ed768e3cc679a1fef5c47088443fdaec83838394",
"support"
],
+ "server-timing/resources/parsing/0.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/0.js.sub.headers": [
+ "17fa2c18304bcee509c7786fd34e456994360a10",
+ "support"
+ ],
+ "server-timing/resources/parsing/1.js": [
+ "1a6924ba411a7f92aef048336bd117ece499f90a",
+ "support"
+ ],
+ "server-timing/resources/parsing/1.js.sub.headers": [
+ "1f65859f60eea48564091b7f853e3a1c306d91fe",
+ "support"
+ ],
+ "server-timing/resources/parsing/10.js": [
+ "1a6924ba411a7f92aef048336bd117ece499f90a",
+ "support"
+ ],
+ "server-timing/resources/parsing/10.js.sub.headers": [
+ "adf8886166350be375d41de58da0d8a72ae8d2ce",
+ "support"
+ ],
+ "server-timing/resources/parsing/11.js": [
+ "1a6924ba411a7f92aef048336bd117ece499f90a",
+ "support"
+ ],
+ "server-timing/resources/parsing/11.js.sub.headers": [
+ "20c6f242511b2055249eb7bfb0e775af483a6c40",
+ "support"
+ ],
+ "server-timing/resources/parsing/12.js": [
+ "1c6ca0aa58035fba39cfe8284c04468787149469",
+ "support"
+ ],
+ "server-timing/resources/parsing/12.js.sub.headers": [
+ "802c68f944f30b273d71f59c77289e7d2a08becf",
+ "support"
+ ],
+ "server-timing/resources/parsing/13.js": [
+ "266ee41ae7b440ab43e87a087d10fa2b1e193a8f",
+ "support"
+ ],
+ "server-timing/resources/parsing/13.js.sub.headers": [
+ "144652b4740f0d42e3ff0685eaac5c4c1223ddfb",
+ "support"
+ ],
+ "server-timing/resources/parsing/14.js": [
+ "b45df4c8581d127f4738887a009611092e06fae9",
+ "support"
+ ],
+ "server-timing/resources/parsing/14.js.sub.headers": [
+ "ef0ce7496aecd6c2efc4eee9e8a2b35723f68dcd",
+ "support"
+ ],
+ "server-timing/resources/parsing/15.js": [
+ "57529824e71a124c2ff69e9153163de9f4c3433d",
+ "support"
+ ],
+ "server-timing/resources/parsing/15.js.sub.headers": [
+ "d686b34f5a4b3ca534ad55ca36a0c10775f21212",
+ "support"
+ ],
+ "server-timing/resources/parsing/16.js": [
+ "8d82b5abff0bfc1884a350836cb27c8b124129bd",
+ "support"
+ ],
+ "server-timing/resources/parsing/16.js.sub.headers": [
+ "aa781c76e32bfaa1a0e05cd2202b3e4e3ce28b35",
+ "support"
+ ],
+ "server-timing/resources/parsing/17.js": [
+ "b45df4c8581d127f4738887a009611092e06fae9",
+ "support"
+ ],
+ "server-timing/resources/parsing/17.js.sub.headers": [
+ "d8b7e49b673a39e6028b8aeb6241a3be5fa79935",
+ "support"
+ ],
+ "server-timing/resources/parsing/18.js": [
+ "e37a27e8de7cb0d7da20de4b4738f868321f4f7d",
+ "support"
+ ],
+ "server-timing/resources/parsing/18.js.sub.headers": [
+ "19ea20ca46a0dd73a0f22175c03ea1aa5bfdb560",
+ "support"
+ ],
+ "server-timing/resources/parsing/19.js": [
+ "945c0786a390786f6bc648fb80ffe2da2c14c4b1",
+ "support"
+ ],
+ "server-timing/resources/parsing/19.js.sub.headers": [
+ "602127ea29736860e5291c9243d2de54c06a1b7c",
+ "support"
+ ],
+ "server-timing/resources/parsing/2.js": [
+ "1bc5932490ce45826ee11e124924c9588b3e8c4d",
+ "support"
+ ],
+ "server-timing/resources/parsing/2.js.sub.headers": [
+ "49c763e3a400aaa6bc19e02188496a94b952b7f2",
+ "support"
+ ],
+ "server-timing/resources/parsing/20.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/20.js.sub.headers": [
+ "c9003e0ef6e05d0aa3066a06ae404da09d0d1ca8",
+ "support"
+ ],
+ "server-timing/resources/parsing/21.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/21.js.sub.headers": [
+ "babbb8839dae15581d70d50133b7e7dcecb72c60",
+ "support"
+ ],
+ "server-timing/resources/parsing/22.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/22.js.sub.headers": [
+ "60656825b940e844d5b658b15a558d4bf8aeb5a2",
+ "support"
+ ],
+ "server-timing/resources/parsing/23.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/23.js.sub.headers": [
+ "fb73ea7ff1d6c98cf18e8cdc9ae2106988a3c5cd",
+ "support"
+ ],
+ "server-timing/resources/parsing/24.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/24.js.sub.headers": [
+ "b63c644ae9025bce231ff4d3be572e4f5968d1e1",
+ "support"
+ ],
+ "server-timing/resources/parsing/25.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/25.js.sub.headers": [
+ "8761b10c42d5117d5917cd2bafff717f0a5e0d3a",
+ "support"
+ ],
+ "server-timing/resources/parsing/26.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/26.js.sub.headers": [
+ "a25b4947fb552c63ffc4bebcde9748d8b5d3654e",
+ "support"
+ ],
+ "server-timing/resources/parsing/27.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/27.js.sub.headers": [
+ "6256524e6218d7f1da03ffde037c3808cd09ee64",
+ "support"
+ ],
+ "server-timing/resources/parsing/28.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/28.js.sub.headers": [
+ "15bf03440d58c800a88a9bbc493889803e2962e1",
+ "support"
+ ],
+ "server-timing/resources/parsing/29.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/29.js.sub.headers": [
+ "d61f4f751e96db5f3fb2668d581fb04442545adf",
+ "support"
+ ],
+ "server-timing/resources/parsing/3.js": [
+ "1bc5932490ce45826ee11e124924c9588b3e8c4d",
+ "support"
+ ],
+ "server-timing/resources/parsing/3.js.sub.headers": [
+ "e37b008d0de07fdd300f0fef181cfaaac0c2ac9f",
+ "support"
+ ],
+ "server-timing/resources/parsing/30.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/30.js.sub.headers": [
+ "68899f453cbe896880b91add876a2dcf0aa7862c",
+ "support"
+ ],
+ "server-timing/resources/parsing/31.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/31.js.sub.headers": [
+ "23aa6e0121b3efbd010187aef45ec1e343dcc6f8",
+ "support"
+ ],
+ "server-timing/resources/parsing/32.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/32.js.sub.headers": [
+ "13f8e002a56499f19d248968d4da2446c457818c",
+ "support"
+ ],
+ "server-timing/resources/parsing/33.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/33.js.sub.headers": [
+ "3d4b4717629e4564e7e86a8b98eeee76b4278e2e",
+ "support"
+ ],
+ "server-timing/resources/parsing/34.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/34.js.sub.headers": [
+ "b34910643944972a5fd3cd4323c3e460b764acd6",
+ "support"
+ ],
+ "server-timing/resources/parsing/35.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/35.js.sub.headers": [
+ "f9055d1f55a5fdb38691374bd7de69b45d979e27",
+ "support"
+ ],
+ "server-timing/resources/parsing/36.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/36.js.sub.headers": [
+ "87fe726634ad6dae4e348db74a6c64fa19929638",
+ "support"
+ ],
+ "server-timing/resources/parsing/37.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/37.js.sub.headers": [
+ "39fd3379982b21de04a3c280ba4fcdfe84a4e55d",
+ "support"
+ ],
+ "server-timing/resources/parsing/38.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/38.js.sub.headers": [
+ "0b4fa5ed0edc8378cc8ce4c482a49f8a02b8dbd2",
+ "support"
+ ],
+ "server-timing/resources/parsing/39.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/39.js.sub.headers": [
+ "19af60081837aa38b2d14bbe55f1210d3dd75e72",
+ "support"
+ ],
+ "server-timing/resources/parsing/4.js": [
+ "b45df4c8581d127f4738887a009611092e06fae9",
+ "support"
+ ],
+ "server-timing/resources/parsing/4.js.sub.headers": [
+ "3449afe167f6e32a27f682e79ba8aa19d3e5be64",
+ "support"
+ ],
+ "server-timing/resources/parsing/40.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/40.js.sub.headers": [
+ "d822691ba762df6d798567a2610e9973bca07236",
+ "support"
+ ],
+ "server-timing/resources/parsing/41.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/41.js.sub.headers": [
+ "b72a4f5360c93e53338c25ba40e9993859424159",
+ "support"
+ ],
+ "server-timing/resources/parsing/42.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/42.js.sub.headers": [
+ "973f84b410e397abf7123fe86e03b14684b5b0fb",
+ "support"
+ ],
+ "server-timing/resources/parsing/43.js": [
+ "dcf2d8477422cfa60c7eb5da68629925fcc653e2",
+ "support"
+ ],
+ "server-timing/resources/parsing/43.js.sub.headers": [
+ "d6fba3c154dce3d074e1e38c744e291a0c4f9e51",
+ "support"
+ ],
+ "server-timing/resources/parsing/44.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/44.js.sub.headers": [
+ "c447cfda7cf55ee2384842b45a604412e403d8ec",
+ "support"
+ ],
+ "server-timing/resources/parsing/45.js": [
+ "72dcb467c3d7fb4a2491a0ba68b612a4033738f3",
+ "support"
+ ],
+ "server-timing/resources/parsing/45.js.sub.headers": [
+ "ba5cdefb1d89a1ab8b0a556f15ce1f7b722e9a45",
+ "support"
+ ],
+ "server-timing/resources/parsing/46.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/46.js.sub.headers": [
+ "aa0c172f597b9b669fb32823e2dc99147a164387",
+ "support"
+ ],
+ "server-timing/resources/parsing/47.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/47.js.sub.headers": [
+ "34fbb72ad299b3f8da81a55d3357b29b3fb19077",
+ "support"
+ ],
+ "server-timing/resources/parsing/48.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/48.js.sub.headers": [
+ "c893b1918c565f30f6afeac72507636c1181fc6b",
+ "support"
+ ],
+ "server-timing/resources/parsing/49.js": [
+ "6c2c1b45ab69ed8b1da28849accaa69a99d07340",
+ "support"
+ ],
+ "server-timing/resources/parsing/49.js.sub.headers": [
+ "11e6ee5677c66ee62c1c973f5a4a455e178666ef",
+ "support"
+ ],
+ "server-timing/resources/parsing/5.js": [
+ "b45df4c8581d127f4738887a009611092e06fae9",
+ "support"
+ ],
+ "server-timing/resources/parsing/5.js.sub.headers": [
+ "d8b7e49b673a39e6028b8aeb6241a3be5fa79935",
+ "support"
+ ],
+ "server-timing/resources/parsing/50.js": [
+ "71068640ee55f176c283ce788237e26059c043c5",
+ "support"
+ ],
+ "server-timing/resources/parsing/50.js.sub.headers": [
+ "4e80dc4689ac1622f9df3cfde8f2667c0c334b14",
+ "support"
+ ],
+ "server-timing/resources/parsing/51.js": [
+ "1c6ca0aa58035fba39cfe8284c04468787149469",
+ "support"
+ ],
+ "server-timing/resources/parsing/51.js.sub.headers": [
+ "1ff4aed6798c6dfe7b22e11ffbd7db7fbe2e248f",
+ "support"
+ ],
+ "server-timing/resources/parsing/52.js": [
+ "d0a406b076d345dc36d1792781bd078fb9b65ef3",
+ "support"
+ ],
+ "server-timing/resources/parsing/52.js.sub.headers": [
+ "1191714a3f2cdb14c10d7b7f7637bb7fb331826d",
+ "support"
+ ],
+ "server-timing/resources/parsing/53.js": [
+ "235f1ee6973489be765e8edec753b94c9f6d5773",
+ "support"
+ ],
+ "server-timing/resources/parsing/53.js.sub.headers": [
+ "ce3c065722c2f84b4ea8c958465db0cbfac3046a",
+ "support"
+ ],
+ "server-timing/resources/parsing/54.js": [
+ "235f1ee6973489be765e8edec753b94c9f6d5773",
+ "support"
+ ],
+ "server-timing/resources/parsing/54.js.sub.headers": [
+ "4d2f64fb627d52fb965fba226648b0078f90e732",
+ "support"
+ ],
+ "server-timing/resources/parsing/55.js": [
+ "2209fc9eff24dc4f0d7df2f31e5911dd4e05d78d",
+ "support"
+ ],
+ "server-timing/resources/parsing/55.js.sub.headers": [
+ "735e9c9e7e9b4a54a8da1f1ed1893c67a0e5e66e",
+ "support"
+ ],
+ "server-timing/resources/parsing/56.js": [
+ "1bc5932490ce45826ee11e124924c9588b3e8c4d",
+ "support"
+ ],
+ "server-timing/resources/parsing/56.js.sub.headers": [
+ "e44253ff3485c86895c3b3bcf60633d73136a0a9",
+ "support"
+ ],
+ "server-timing/resources/parsing/57.js": [
+ "235f1ee6973489be765e8edec753b94c9f6d5773",
+ "support"
+ ],
+ "server-timing/resources/parsing/57.js.sub.headers": [
+ "653481a7bb1305cc776531b990651fd5570ddaed",
+ "support"
+ ],
+ "server-timing/resources/parsing/58.js": [
+ "3fddff4eee055bf54f23be4ddd0e277cb79d492d",
+ "support"
+ ],
+ "server-timing/resources/parsing/58.js.sub.headers": [
+ "9f9c4e085f0bdc083314fb97d4f485fd7ccf259c",
+ "support"
+ ],
+ "server-timing/resources/parsing/59.js": [
+ "63d1c9fc862e586f387e1715c47c14075b9dc39e",
+ "support"
+ ],
+ "server-timing/resources/parsing/59.js.sub.headers": [
+ "86c7827becd92238fde74e13321031e48240f8e0",
+ "support"
+ ],
+ "server-timing/resources/parsing/6.js": [
+ "1c6ca0aa58035fba39cfe8284c04468787149469",
+ "support"
+ ],
+ "server-timing/resources/parsing/6.js.sub.headers": [
+ "2810bd2697637785f251aacb3af4704fe3b612fe",
+ "support"
+ ],
+ "server-timing/resources/parsing/60.js": [
+ "63d1c9fc862e586f387e1715c47c14075b9dc39e",
+ "support"
+ ],
+ "server-timing/resources/parsing/60.js.sub.headers": [
+ "8bd1fc4b0ede3ae2d20ecaa2f1133b2a7951b48b",
+ "support"
+ ],
+ "server-timing/resources/parsing/61.js": [
+ "3560177cc96b27c6ca4dfd3f4755685f067a9c77",
+ "support"
+ ],
+ "server-timing/resources/parsing/61.js.sub.headers": [
+ "2cb76e965e4e10e84dc39f7a367171209a7f1c58",
+ "support"
+ ],
+ "server-timing/resources/parsing/62.js": [
+ "3560177cc96b27c6ca4dfd3f4755685f067a9c77",
+ "support"
+ ],
+ "server-timing/resources/parsing/62.js.sub.headers": [
+ "6ca23860d81e08d87342e5fdc0bdc1b191dfb427",
+ "support"
+ ],
+ "server-timing/resources/parsing/63.js": [
+ "5c07fca48386d2d35c248c2053a7cb426ade6b7b",
+ "support"
+ ],
+ "server-timing/resources/parsing/63.js.sub.headers": [
+ "4296079454e413eabe5e48799183d37955b25f14",
+ "support"
+ ],
+ "server-timing/resources/parsing/64.js": [
+ "df2fb9e4e7999d2bda0c6e435b541fa37a55c788",
+ "support"
+ ],
+ "server-timing/resources/parsing/64.js.sub.headers": [
+ "162b4c31d0a7894d2d16a8000694171132384a27",
+ "support"
+ ],
+ "server-timing/resources/parsing/65.js": [
+ "5c07fca48386d2d35c248c2053a7cb426ade6b7b",
+ "support"
+ ],
+ "server-timing/resources/parsing/65.js.sub.headers": [
+ "889218df84c44751603a94f889abd7f0d4275408",
+ "support"
+ ],
+ "server-timing/resources/parsing/66.js": [
+ "df2fb9e4e7999d2bda0c6e435b541fa37a55c788",
+ "support"
+ ],
+ "server-timing/resources/parsing/66.js.sub.headers": [
+ "95a5d28f5fc8519b09676ac1fd92bfae2d3fe211",
+ "support"
+ ],
+ "server-timing/resources/parsing/67.js": [
+ "1a6924ba411a7f92aef048336bd117ece499f90a",
+ "support"
+ ],
+ "server-timing/resources/parsing/67.js.sub.headers": [
+ "8c13333e069ade7cd299d89d4f4e49ea0cc13aa8",
+ "support"
+ ],
+ "server-timing/resources/parsing/68.js": [
+ "b5b95d8349cbbc3b92edb61891608b04d004527b",
+ "support"
+ ],
+ "server-timing/resources/parsing/68.js.sub.headers": [
+ "3267edb59ffdfcb7994cad0b0b82fbd1f96295e0",
+ "support"
+ ],
+ "server-timing/resources/parsing/69.js": [
+ "235f1ee6973489be765e8edec753b94c9f6d5773",
+ "support"
+ ],
+ "server-timing/resources/parsing/69.js.sub.headers": [
+ "70735c24c164159739a7d33353715910b7058266",
+ "support"
+ ],
+ "server-timing/resources/parsing/7.js": [
+ "266ee41ae7b440ab43e87a087d10fa2b1e193a8f",
+ "support"
+ ],
+ "server-timing/resources/parsing/7.js.sub.headers": [
+ "4f66fcaa07aaf41da5597d9a051768239cf9046d",
+ "support"
+ ],
+ "server-timing/resources/parsing/70.js": [
+ "1a6924ba411a7f92aef048336bd117ece499f90a",
+ "support"
+ ],
+ "server-timing/resources/parsing/70.js.sub.headers": [
+ "eadacef5c09ddfe284c1b04eb88d1ee7b58406b7",
+ "support"
+ ],
+ "server-timing/resources/parsing/71.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/71.js.sub.headers": [
+ "262f7940893d9dc71881c4dd05a3abc632e164a6",
+ "support"
+ ],
+ "server-timing/resources/parsing/72.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/72.js.sub.headers": [
+ "86acd52721c5aaa6ed6069f192e8be53e61fa691",
+ "support"
+ ],
+ "server-timing/resources/parsing/73.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/73.js.sub.headers": [
+ "3cd0b25e1eda63ec48390f3aeb5e7b62afe64dab",
+ "support"
+ ],
+ "server-timing/resources/parsing/74.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/74.js.sub.headers": [
+ "3a340394523d7772baa452e4c02f1b428898d9a7",
+ "support"
+ ],
+ "server-timing/resources/parsing/75.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/75.js.sub.headers": [
+ "7776357b71f9ff29156489833884bd9263db23b0",
+ "support"
+ ],
+ "server-timing/resources/parsing/76.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/76.js.sub.headers": [
+ "62fc9db1810ab0c4c4154f91195cdb29d3e6ac4f",
+ "support"
+ ],
+ "server-timing/resources/parsing/77.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/77.js.sub.headers": [
+ "3b60dd6d0bf7c97a468d8a05afcadd29ec769349",
+ "support"
+ ],
+ "server-timing/resources/parsing/78.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/78.js.sub.headers": [
+ "66b4011969e248d9ab872bea30776b5e7bd72dfb",
+ "support"
+ ],
+ "server-timing/resources/parsing/79.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/79.js.sub.headers": [
+ "9496c56d010e4652f3d0a0ff628abaadeb717c15",
+ "support"
+ ],
+ "server-timing/resources/parsing/8.js": [
+ "e30f08cfab17bcd0229ebbf0da701f65a193485b",
+ "support"
+ ],
+ "server-timing/resources/parsing/8.js.sub.headers": [
+ "4aa86aa36c632e297433b03a6e63516679ff2cfb",
+ "support"
+ ],
+ "server-timing/resources/parsing/80.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/80.js.sub.headers": [
+ "bc541f7873810c93ade3ad836a38c4bfe12b7bdb",
+ "support"
+ ],
+ "server-timing/resources/parsing/81.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/81.js.sub.headers": [
+ "5bc9a24481b1d2f242d6361cda38d7325c83d6e5",
+ "support"
+ ],
+ "server-timing/resources/parsing/82.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/82.js.sub.headers": [
+ "32d55b5dd32ade7283d69fcf242e757d3dc7eb8f",
+ "support"
+ ],
+ "server-timing/resources/parsing/83.js": [
+ "4b374f4e2751e3c75af68df671c0287e41d617ae",
+ "support"
+ ],
+ "server-timing/resources/parsing/83.js.sub.headers": [
+ "ba24e1d89104fb25d5100dfa0b38388ca19ee9c1",
+ "support"
+ ],
+ "server-timing/resources/parsing/9.js": [
+ "30695307f7a50b46a799f3cf6f5763a359acc0ce",
+ "support"
+ ],
+ "server-timing/resources/parsing/9.js.sub.headers": [
+ "6a8feff546c8564268b238e01a0470588b4739e7",
+ "support"
+ ],
+ "server-timing/server_timing_header-parsing.html": [
+ "15768941cac8f5adeed09e6d204715d5fa59e5aa",
+ "testharness"
+ ],
"server-timing/test_server_timing.html": [
- "2c8420d5bc6ac45923f0c5cbc43c6bd88caa877c",
+ "7c778ca856e5cff0bbc785f59c9ccf1ec86456fb",
"testharness"
],
"server-timing/test_server_timing.html.sub.headers": [
@@ -577691,7 +582003,7 @@
"support"
],
"svg/OWNERS": [
- "13652f4cb17762fe755e81d2a015493ad1a6bc11",
+ "09ddeebeb4f8ad8622d76143f276d90a1d9aebdc",
"support"
],
"svg/README.md": [
@@ -577699,7 +582011,7 @@
"support"
],
"svg/extensibility/foreignObject/properties.svg": [
- "946999ca1917a5069103c025197c2903ab0bae64",
+ "974affbb2c135c9aaa7a3f27687157b5e1250a9f",
"testharness"
],
"svg/extensibility/interfaces/foreignObject-graphics.svg": [
@@ -580054,6 +584366,46 @@
"e7e8508ebb527e97e1f4e289652121b1d070c219",
"reftest"
],
+ "svg/path/closepath/segment-completing-ref.svg": [
+ "67576a75312e20803e4a67a479ce9e8262ccb341",
+ "support"
+ ],
+ "svg/path/closepath/segment-completing.svg": [
+ "62c6ecf218173f1273cbd2bd12f01dcf666170a4",
+ "reftest"
+ ],
+ "svg/path/distance/pathLength-positive-ref.svg": [
+ "051786ae8a8510f97dec152a88541f8d16c6767f",
+ "support"
+ ],
+ "svg/path/distance/pathLength-positive.svg": [
+ "33dc24b00e6ad879519fcfd593179ee2c1903006",
+ "reftest"
+ ],
+ "svg/path/distance/pathLength-zero-ref.svg": [
+ "b47a9aa3a1a5901e97a5f92d056221b8882a2a19",
+ "support"
+ ],
+ "svg/path/distance/pathLength-zero.svg": [
+ "91a81a96729daca9e421cf37a8aeb61dc743a857",
+ "reftest"
+ ],
+ "svg/path/error-handling/bounding.svg": [
+ "83b6c27ecc4ae4394040e15eff96cd178e281994",
+ "testharness"
+ ],
+ "svg/path/error-handling/render-until-error-ref.svg": [
+ "d6b80a84ade1979ab19debe5bf80d2262c08b097",
+ "support"
+ ],
+ "svg/path/error-handling/render-until-error.svg": [
+ "9583661d708ffcd2baeb2eff2e8585f767e5c232",
+ "reftest"
+ ],
+ "svg/path/interfaces/SVGAnimatedPathData-removed.svg": [
+ "bcdadce009a8238a4326e36051876a10bccccbea",
+ "testharness"
+ ],
"svg/path/property/d-interpolation-discrete.svg": [
"6e27bfe4467b16b9e8c29bb66894bbb9dfbaf077",
"testharness"
@@ -580118,6 +584470,10 @@
"42ecd7bc94a3379d920687c79c12e2d3c55b9e98",
"testharness"
],
+ "svg/types/elements/SVGGeometryElement-rect.svg": [
+ "08237002915323f41dd5590ce4226f95ae79f285",
+ "testharness"
+ ],
"svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html": [
"0f81d16badaade09929ca0b35faf89cc420ef199",
"testharness"
@@ -580750,6 +585106,90 @@
"22f2a05853efc4977d7c427f80898cd8671f3aaa",
"testharness"
],
+ "upgrade-insecure-requests/link-upgrade.sub.https.html": [
+ "0c7c3915c24e355f3353a242843c76bb17b13c62",
+ "testharness"
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html": [
+ "05d450051981b22ac2b9e903b60435ca695b3ad2",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html": [
+ "877348106949c192bd9eb0ce9c283e973d873ffd",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html": [
+ "41dc71d6369a07746a0151b16f2d2eb01029ccc6",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html": [
+ "eac4924c1057d4e5da7f8f128b7c7ee501b5f6e6",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html": [
+ "d02531c22a97a72d307b7dfb32c5f55f64ae0369",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html": [
+ "e90305f8a31486c4eea12415b7d04d731f17d1be",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html": [
+ "6510e3dc659975c1d4cd7826f683ca5d30b05afa",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html": [
+ "28f98b49860dcc8ba80cdd217adc15b3ed93be71",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html": [
+ "6c770a1da89f93c00a1ce22302dfbdddd4de6f99",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/dummy.html": [
+ "2409542664fbfec691cc4cc420a3a047524c4e22",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html": [
+ "d9a3b0b7aa254c929a89a75938c3b8115cfb7b39",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers": [
+ "658f2c2be22add1a5be72b1e19ba340d024a4832",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html": [
+ "d9a3b0b7aa254c929a89a75938c3b8115cfb7b39",
+ "support"
+ ],
+ "upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html": [
+ "ba4d17350d4e1fdb369e058240d4bb72b24f7175",
+ "support"
+ ],
"upgrade-insecure-requests/support/pass.png": [
"c06160c04726a02f1583caa0f380d632b6019179",
"support"
@@ -581075,7 +585515,7 @@
"manual"
],
"visual-viewport/viewport-resize-event-on-load-overflowing-page.html": [
- "cd13682091b00c182e570a87eac642613a3c05c2",
+ "2fe468f0e4460e201de84deeb1291e74e0757518",
"testharness"
],
"visual-viewport/viewport-scale-iframe-manual.html": [
@@ -583187,7 +587627,7 @@
"wdspec"
],
"webdriver/tests/sessions/new_session/invalid_capabilities.py": [
- "4caa08542f61ebe73c020d15d559704af037a97c",
+ "fcc36e5ca46cb8a9fb9927d5f618c7e9433a0260",
"wdspec"
],
"webdriver/tests/sessions/new_session/merge.py": [
@@ -583203,7 +587643,7 @@
"support"
],
"webdriver/tests/sessions/new_session/support/create.py": [
- "440d88462cc418e4d5e1df6f73074d3a722bd2fd",
+ "2c79b22324aa0c318522ac3930e314b4f2b32a86",
"support"
],
"webdriver/tests/sessions/status.py": [
@@ -583982,6 +588422,10 @@
"2a2e3f9ff0a5912fa260d7124f7f5a9c3862c533",
"testharness"
],
+ "webrtc/RTCPeerConnection-track-stats.https.html": [
+ "92fbaf0f4c596222975edae433725d616dac6082",
+ "testharness"
+ ],
"webrtc/RTCPeerConnectionIceEvent-constructor.html": [
"f273bd7fdfc883a15e8fb16fef5309061254c6cc",
"testharness"
@@ -584067,7 +588511,7 @@
"testharness"
],
"webrtc/RTCSctpTransport-maxMessageSize.html": [
- "95a1a701ff1ea46c782131dcd2012d3b4d5d57d2",
+ "4534a810f47cdca106f5300939acc36275222637",
"testharness"
],
"webrtc/RTCStats-helper.js": [
@@ -588334,6 +592778,10 @@
"13f9441d368248225df5adc3396a05061ba2924d",
"support"
],
+ "webxr/interfaces.https.html": [
+ "22e2278ab484ced51fd0a3880d2bfbf610650371",
+ "testharness"
+ ],
"webxr/resources/webxr_check.html": [
"3fa96e39a073bda2e813f0b2c2411c26b73d374e",
"support"
@@ -589434,6 +593882,26 @@
"395ebb855280779c248cc587141568fe0f089715",
"testharness"
],
+ "worklets/layout-worklet-credentials.https.html": [
+ "ffab9e5cdf8e3d1c759fa484512b24b45fca9cc8",
+ "testharness"
+ ],
+ "worklets/layout-worklet-csp.https.html": [
+ "217dfbcbc3f36128f3e984c44e20013cff3793dd",
+ "testharness"
+ ],
+ "worklets/layout-worklet-import.https.html": [
+ "33cf33b95b66020e10fef9515fce2956c27b75ba",
+ "testharness"
+ ],
+ "worklets/layout-worklet-referrer.https.html": [
+ "3de86e7b122d6e8403858279e280d7e6ea5af389",
+ "testharness"
+ ],
+ "worklets/layout-worklet-service-worker-interception.https.html": [
+ "4d3e8556924545768a0d59309a2460532c7192df",
+ "testharness"
+ ],
"worklets/paint-worklet-credentials.https.html": [
"fd0d5e0e34454755ddd693916476af809dfd9bb1",
"testharness"
@@ -589571,7 +594039,7 @@
"support"
],
"worklets/resources/worklet-test-utils.js": [
- "f05d557ba57bca35228a5ebbc418816cc3d01ee4",
+ "2984dfb09c88d7a1831a60d62c64c9b2ec2f6673",
"support"
],
"x-frame-options/deny.sub.html": [
@@ -590035,7 +594503,7 @@
"testharness"
],
"xhr/interfaces.html": [
- "a4c597d2bdb85e37ffe5f5ebba961d7f8a3aeb29",
+ "eb4babf67805d1d65bcbc44c6dcc1cb3ca793695",
"testharness"
],
"xhr/loadstart-and-state.html": [
@@ -591063,7 +595531,7 @@
"testharness"
],
"xhr/xmlhttprequest-sync-default-feature-policy.sub.html": [
- "a702c102155a1399c4a53477fc079d61b739976f",
+ "f83a057d1874e5e633c4529d3fac91249de652b3",
"testharness"
],
"xhr/xmlhttprequest-sync-not-hang-scriptloader-subframe.html": [
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini
new file mode 100644
index 00000000000..125c7716ec1
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini
@@ -0,0 +1,4 @@
+[ecdh_bits.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini
deleted file mode 100644
index 743a1f3083d..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[ecdh_bits.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini
new file mode 100644
index 00000000000..bc636df94ac
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini
@@ -0,0 +1,4 @@
+[ecdh_keys.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini
deleted file mode 100644
index 0549a4a14ef..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[ecdh_keys.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini
new file mode 100644
index 00000000000..e54642475b0
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini
@@ -0,0 +1,4 @@
+[hkdf.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini
deleted file mode 100644
index fca4b53e6ec..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[hkdf.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini
new file mode 100644
index 00000000000..325daee1a61
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini
@@ -0,0 +1,4 @@
+[pbkdf2.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini
deleted file mode 100644
index 5025f11f1bd..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[pbkdf2.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/digest/digest.https.worker.js.ini
index ee646a95f38..dfa563f1b05 100644
--- a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini
+++ b/tests/wpt/metadata/WebCryptoAPI/digest/digest.https.worker.js.ini
@@ -1,5 +1,4 @@
-[digest.worker.html]
- type: testharness
+[digest.https.worker.html]
[SHA-1 with empty source data]
expected: FAIL
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini
new file mode 100644
index 00000000000..664ebee2fcd
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini
@@ -0,0 +1,4 @@
+[aes_cbc.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini
deleted file mode 100644
index f8f6ca05743..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[aes_cbc.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini
new file mode 100644
index 00000000000..7a771aa25b3
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini
@@ -0,0 +1,4 @@
+[aes_ctr.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini
deleted file mode 100644
index e1abfe885c7..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[aes_ctr.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini
new file mode 100644
index 00000000000..c379308d01f
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini
@@ -0,0 +1,4 @@
+[aes_gcm.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini
deleted file mode 100644
index c93c214c856..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[aes_gcm.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini
new file mode 100644
index 00000000000..3ffc1d7c54f
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini
@@ -0,0 +1,4 @@
+[rsa.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini
deleted file mode 100644
index 3e796f70f7c..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[rsa.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini b/tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini
deleted file mode 100644
index 9cc87fa0988..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini
+++ /dev/null
@@ -1,275 +0,0 @@
-[idlharness.html]
- type: testharness
- [Crypto interface: attribute subtle]
- expected: FAIL
-
- [Crypto interface: crypto must inherit property "subtle" with the proper type (0)]
- expected: FAIL
-
- [CryptoKey interface: existence and properties of interface object]
- expected: FAIL
-
- [CryptoKey interface object length]
- expected: FAIL
-
- [CryptoKey interface object name]
- expected: FAIL
-
- [CryptoKey interface: existence and properties of interface prototype object]
- expected: FAIL
-
- [CryptoKey interface: existence and properties of interface prototype object's "constructor" property]
- expected: FAIL
-
- [CryptoKey interface: attribute type]
- expected: FAIL
-
- [CryptoKey interface: attribute extractable]
- expected: FAIL
-
- [CryptoKey interface: attribute algorithm]
- expected: FAIL
-
- [CryptoKey interface: attribute usages]
- expected: FAIL
-
- [SubtleCrypto interface: existence and properties of interface object]
- expected: FAIL
-
- [SubtleCrypto interface object length]
- expected: FAIL
-
- [SubtleCrypto interface object name]
- expected: FAIL
-
- [SubtleCrypto interface: existence and properties of interface prototype object]
- expected: FAIL
-
- [SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property]
- expected: FAIL
-
- [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier,CryptoKey,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation decrypt(AlgorithmIdentifier,CryptoKey,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation sign(AlgorithmIdentifier,CryptoKey,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation digest(AlgorithmIdentifier,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation generateKey(AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long)]
- expected: FAIL
-
- [SubtleCrypto interface: operation importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation exportKey(KeyFormat,CryptoKey)]
- expected: FAIL
-
- [SubtleCrypto interface: operation wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier)]
- expected: FAIL
-
- [SubtleCrypto interface: operation unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto must be primary interface of crypto.subtle]
- expected: FAIL
-
- [Stringification of crypto.subtle]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "encrypt" with the proper type (0)]
- expected: FAIL
-
- [SubtleCrypto interface: calling encrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "decrypt" with the proper type (1)]
- expected: FAIL
-
- [SubtleCrypto interface: calling decrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "sign" with the proper type (2)]
- expected: FAIL
-
- [SubtleCrypto interface: calling sign(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "verify" with the proper type (3)]
- expected: FAIL
-
- [SubtleCrypto interface: calling verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "digest" with the proper type (4)]
- expected: FAIL
-
- [SubtleCrypto interface: calling digest(AlgorithmIdentifier,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "generateKey" with the proper type (5)]
- expected: FAIL
-
- [SubtleCrypto interface: calling generateKey(AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "deriveKey" with the proper type (6)]
- expected: FAIL
-
- [SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits" with the proper type (7)]
- expected: FAIL
-
- [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "importKey" with the proper type (8)]
- expected: FAIL
-
- [SubtleCrypto interface: calling importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "exportKey" with the proper type (9)]
- expected: FAIL
-
- [SubtleCrypto interface: calling exportKey(KeyFormat,CryptoKey) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "wrapKey" with the proper type (10)]
- expected: FAIL
-
- [SubtleCrypto interface: calling wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey" with the proper type (11)]
- expected: FAIL
-
- [SubtleCrypto interface: calling unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [Crypto interface: crypto must inherit property "subtle" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)]
- expected: FAIL
-
- [SubtleCrypto interface: operation importKey(KeyFormat, [object Object\],[object Object\], AlgorithmIdentifier, boolean, [object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey)]
- expected: FAIL
-
- [SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)]
- expected: FAIL
-
- [SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "sign(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling sign(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "digest(AlgorithmIdentifier, BufferSource)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling digest(AlgorithmIdentifier, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "generateKey(AlgorithmIdentifier, boolean, [object Object\])" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling generateKey(AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object\])" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "importKey(KeyFormat, [object Object\],[object Object\], AlgorithmIdentifier, boolean, [object Object\])" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling importKey(KeyFormat, [object Object\],[object Object\], AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "exportKey(KeyFormat, CryptoKey)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling exportKey(KeyFormat, CryptoKey) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\])" with the proper type]
- expected: FAIL
-
- [SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/idlharness.https.worker.js.ini
index a6e580bf852..e3db073d83c 100644
--- a/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini
+++ b/tests/wpt/metadata/WebCryptoAPI/idlharness.https.worker.js.ini
@@ -1,12 +1,11 @@
-[idlharness.worker.html]
- type: testharness
+[idlharness.https.worker.html]
[ArrayBuffer interface: existence and properties of interface object]
expected: FAIL
[Crypto interface: attribute subtle]
expected: FAIL
- [Crypto interface: crypto must inherit property "subtle" with the proper type (0)]
+ [Crypto interface: crypto must inherit property "subtle" with the proper type]
expected: FAIL
[CryptoKey interface: existence and properties of interface object]
@@ -51,123 +50,6 @@
[SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
- [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier,CryptoKey,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation decrypt(AlgorithmIdentifier,CryptoKey,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation sign(AlgorithmIdentifier,CryptoKey,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation digest(AlgorithmIdentifier,BufferSource)]
- expected: FAIL
-
- [SubtleCrypto interface: operation generateKey(AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long)]
- expected: FAIL
-
- [SubtleCrypto interface: operation importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto interface: operation exportKey(KeyFormat,CryptoKey)]
- expected: FAIL
-
- [SubtleCrypto interface: operation wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier)]
- expected: FAIL
-
- [SubtleCrypto interface: operation unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\])]
- expected: FAIL
-
- [SubtleCrypto must be primary interface of crypto.subtle]
- expected: FAIL
-
- [Stringification of crypto.subtle]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "encrypt" with the proper type (0)]
- expected: FAIL
-
- [SubtleCrypto interface: calling encrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "decrypt" with the proper type (1)]
- expected: FAIL
-
- [SubtleCrypto interface: calling decrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "sign" with the proper type (2)]
- expected: FAIL
-
- [SubtleCrypto interface: calling sign(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "verify" with the proper type (3)]
- expected: FAIL
-
- [SubtleCrypto interface: calling verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "digest" with the proper type (4)]
- expected: FAIL
-
- [SubtleCrypto interface: calling digest(AlgorithmIdentifier,BufferSource) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "generateKey" with the proper type (5)]
- expected: FAIL
-
- [SubtleCrypto interface: calling generateKey(AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "deriveKey" with the proper type (6)]
- expected: FAIL
-
- [SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits" with the proper type (7)]
- expected: FAIL
-
- [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "importKey" with the proper type (8)]
- expected: FAIL
-
- [SubtleCrypto interface: calling importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "exportKey" with the proper type (9)]
- expected: FAIL
-
- [SubtleCrypto interface: calling exportKey(KeyFormat,CryptoKey) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "wrapKey" with the proper type (10)]
- expected: FAIL
-
- [SubtleCrypto interface: calling wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey" with the proper type (11)]
- expected: FAIL
-
- [SubtleCrypto interface: calling unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError]
- expected: FAIL
-
- [Crypto interface: crypto must inherit property "subtle" with the proper type]
- expected: FAIL
-
[SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)]
expected: FAIL
@@ -204,6 +86,12 @@
[SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\])]
expected: FAIL
+ [SubtleCrypto must be primary interface of crypto.subtle]
+ expected: FAIL
+
+ [Stringification of crypto.subtle]
+ expected: FAIL
+
[SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type]
expected: FAIL
diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.https.worker.js.ini
index 50b89ab7222..fae2ee1aab4 100644
--- a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini
+++ b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.https.worker.js.ini
@@ -1,5 +1,4 @@
-[ec_importKey.worker.html]
- type: testharness
+[ec_importKey.https.worker.html]
[Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])]
expected: FAIL
diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.https.worker.js.ini
index 9f6f25dcca9..2fd43aa59ca 100644
--- a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini
+++ b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.https.worker.js.ini
@@ -1,5 +1,4 @@
-[rsa_importKey.worker.html]
- type: testharness
+[rsa_importKey.https.worker.html]
[Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])]
expected: FAIL
diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js.ini
index d974812e8f6..6bd59d55e6a 100644
--- a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini
+++ b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js.ini
@@ -1,5 +1,4 @@
-[symmetric_importKey.worker.html]
- type: testharness
+[symmetric_importKey.https.worker.html]
[Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])]
expected: FAIL
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini
new file mode 100644
index 00000000000..13165c83f73
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini
@@ -0,0 +1,4 @@
+[ecdsa.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini
deleted file mode 100644
index 856c25ade29..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[ecdsa.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini
new file mode 100644
index 00000000000..73a0f727de1
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini
@@ -0,0 +1,4 @@
+[hmac.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini
deleted file mode 100644
index 100da1c1d18..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[hmac.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini
new file mode 100644
index 00000000000..0e3c8e7e9fc
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini
@@ -0,0 +1,4 @@
+[rsa_pkcs.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini
deleted file mode 100644
index 1c96d8b79d9..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[rsa_pkcs.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini
new file mode 100644
index 00000000000..319d9233d87
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini
@@ -0,0 +1,4 @@
+[rsa_pss.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini
deleted file mode 100644
index 67beab0d8f2..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[rsa_pss.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini
new file mode 100644
index 00000000000..be805a3f24e
--- /dev/null
+++ b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini
@@ -0,0 +1,4 @@
+[wrapKey_unwrapKey.https.worker.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini
deleted file mode 100644
index 350cc245816..00000000000
--- a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[wrapKey_unwrapKey.worker.html]
- type: testharness
- [Untitled]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/CSS2/fonts/font-variant-applies-to-005.xht.ini b/tests/wpt/metadata/css/CSS2/fonts/font-variant-applies-to-005.xht.ini
deleted file mode 100644
index 466614c4127..00000000000
--- a/tests/wpt/metadata/css/CSS2/fonts/font-variant-applies-to-005.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[font-variant-applies-to-005.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/lists/list-style-applies-to-012.xht.ini b/tests/wpt/metadata/css/CSS2/lists/list-style-applies-to-012.xht.ini
deleted file mode 100644
index 0bc7d42a181..00000000000
--- a/tests/wpt/metadata/css/CSS2/lists/list-style-applies-to-012.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[list-style-applies-to-012.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/lists/list-style-type-applies-to-012.xht.ini b/tests/wpt/metadata/css/CSS2/lists/list-style-type-applies-to-012.xht.ini
deleted file mode 100644
index 185c50e8f99..00000000000
--- a/tests/wpt/metadata/css/CSS2/lists/list-style-type-applies-to-012.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[list-style-type-applies-to-012.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini
new file mode 100644
index 00000000000..fb274076bf4
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini
new file mode 100644
index 00000000000..f71d075b3df
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini
new file mode 100644
index 00000000000..48f477d036d
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini
new file mode 100644
index 00000000000..faf827cccdb
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini
new file mode 100644
index 00000000000..c006021a56a
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini
new file mode 100644
index 00000000000..ec4af304cb4
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini
new file mode 100644
index 00000000000..b32a0c68330
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini
new file mode 100644
index 00000000000..b2ba32649d8
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini
new file mode 100644
index 00000000000..013dba5388f
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini
new file mode 100644
index 00000000000..5154b39f398
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini
new file mode 100644
index 00000000000..d69bffd166e
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini
@@ -0,0 +1,2 @@
+[lang-selector-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini
new file mode 100644
index 00000000000..cc564d2ee4b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini
@@ -0,0 +1,2 @@
+[lang-selector-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini
new file mode 100644
index 00000000000..5711ca8dbeb
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini
@@ -0,0 +1,2 @@
+[pseudo-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini
deleted file mode 100644
index 27f0f13e2d5..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[at-charset-002.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini
deleted file mode 100644
index c4be000564e..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[at-charset-003.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini
deleted file mode 100644
index 3810fc2cbb5..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[at-charset-004.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini
deleted file mode 100644
index b62d77d28bb..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[at-charset-005.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini
deleted file mode 100644
index 766ebc92d41..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[at-charset-006.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini
deleted file mode 100644
index 2dbde103d07..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[comments-005.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini
deleted file mode 100644
index d7149bb085e..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[content-type-000.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini
deleted file mode 100644
index ab1272afba9..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[ident-003.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini
deleted file mode 100644
index 0226043d1ed..00000000000
--- a/tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[ident-020.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini b/tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini
new file mode 100644
index 00000000000..fb449a5f070
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini
new file mode 100644
index 00000000000..abddf3911b3
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini
new file mode 100644
index 00000000000..7fb8503eead
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini
new file mode 100644
index 00000000000..3b8a5b0dc8b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini
new file mode 100644
index 00000000000..321f7ff4b22
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini
new file mode 100644
index 00000000000..762c5baed53
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini b/tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini
new file mode 100644
index 00000000000..723b6885faa
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini
@@ -0,0 +1,2 @@
+[row-visibility-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini b/tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini
new file mode 100644
index 00000000000..61fbc5acc76
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini
@@ -0,0 +1,2 @@
+[row-visibility-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/flexbox_inline.html.ini b/tests/wpt/metadata/css/css-flexbox/flexbox_inline.html.ini
new file mode 100644
index 00000000000..ec520ac0f8c
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/flexbox_inline.html.ini
@@ -0,0 +1,2 @@
+[flexbox_inline.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini b/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini
index 3831f0146ff..297270704ff 100644
--- a/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini
+++ b/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini
@@ -6,12 +6,12 @@
[.flexbox 2]
expected: FAIL
- [.flexbox 3]
- expected: FAIL
-
[.flexbox 5]
expected: FAIL
[.flexbox 6]
expected: FAIL
+ [.flexbox 4]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini b/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini
index e86530f2c96..785b94a7bb4 100644
--- a/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini
+++ b/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini
@@ -2,9 +2,6 @@
[.flexbox 2]
expected: FAIL
- [.flexbox 3]
- expected: FAIL
-
[.flexbox 4]
expected: FAIL
@@ -29,6 +26,9 @@
[.flexbox 12]
expected: FAIL
- [.flexbox 13]
+ [.flexbox 1]
+ expected: FAIL
+
+ [.flexbox 11]
expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini b/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini
index e0077cbfc6a..88274c494fe 100644
--- a/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini
+++ b/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini
@@ -1,16 +1,10 @@
[position-absolute-001.html]
- [.flexbox 1]
- expected: FAIL
-
[.flexbox 2]
expected: FAIL
[.flexbox 3]
expected: FAIL
- [.flexbox 4]
- expected: FAIL
-
[.flexbox 5]
expected: FAIL
@@ -26,18 +20,12 @@
[.flexbox 10]
expected: FAIL
- [.flexbox 11]
- expected: FAIL
-
[.flexbox 12]
expected: FAIL
[.flexbox 13]
expected: FAIL
- [.flexbox 14]
- expected: FAIL
-
[.flexbox 15]
expected: FAIL
@@ -56,9 +44,6 @@
[.flexbox 21]
expected: FAIL
- [.flexbox 22]
- expected: FAIL
-
[.flexbox 23]
expected: FAIL
@@ -80,9 +65,6 @@
[.flexbox 31]
expected: FAIL
- [.flexbox 32]
- expected: FAIL
-
[.flexbox 33]
expected: FAIL
@@ -128,9 +110,6 @@
[.flexbox 51]
expected: FAIL
- [.flexbox 52]
- expected: FAIL
-
[.flexbox 53]
expected: FAIL
@@ -182,18 +161,12 @@
[.flexbox 70]
expected: FAIL
- [.flexbox 71]
- expected: FAIL
-
[.flexbox 72]
expected: FAIL
[.flexbox 73]
expected: FAIL
- [.flexbox 74]
- expected: FAIL
-
[.flexbox 75]
expected: FAIL
@@ -212,18 +185,12 @@
[.flexbox 80]
expected: FAIL
- [.flexbox 81]
- expected: FAIL
-
[.flexbox 82]
expected: FAIL
[.flexbox 83]
expected: FAIL
- [.flexbox 84]
- expected: FAIL
-
[.flexbox 85]
expected: FAIL
@@ -239,18 +206,12 @@
[.flexbox 90]
expected: FAIL
- [.flexbox 91]
- expected: FAIL
-
[.flexbox 92]
expected: FAIL
[.flexbox 93]
expected: FAIL
- [.flexbox 94]
- expected: FAIL
-
[.flexbox 95]
expected: FAIL
@@ -269,9 +230,6 @@
[.flexbox 101]
expected: FAIL
- [.flexbox 102]
- expected: FAIL
-
[.flexbox 103]
expected: FAIL
@@ -293,9 +251,6 @@
[.flexbox 111]
expected: FAIL
- [.flexbox 112]
- expected: FAIL
-
[.flexbox 113]
expected: FAIL
@@ -314,3 +269,48 @@
[.flexbox 119]
expected: FAIL
+ [.flexbox 9]
+ expected: FAIL
+
+ [.flexbox 19]
+ expected: FAIL
+
+ [.flexbox 27]
+ expected: FAIL
+
+ [.flexbox 30]
+ expected: FAIL
+
+ [.flexbox 37]
+ expected: FAIL
+
+ [.flexbox 40]
+ expected: FAIL
+
+ [.flexbox 47]
+ expected: FAIL
+
+ [.flexbox 50]
+ expected: FAIL
+
+ [.flexbox 69]
+ expected: FAIL
+
+ [.flexbox 89]
+ expected: FAIL
+
+ [.flexbox 99]
+ expected: FAIL
+
+ [.flexbox 107]
+ expected: FAIL
+
+ [.flexbox 110]
+ expected: FAIL
+
+ [.flexbox 117]
+ expected: FAIL
+
+ [.flexbox 120]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini b/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini
index de14e31ec4a..5f64104f3aa 100644
--- a/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini
+++ b/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini
@@ -1,7 +1,4 @@
[position-absolute-002.html]
- [.flexbox 1]
- expected: FAIL
-
[.flexbox 2]
expected: FAIL
@@ -23,3 +20,6 @@
[.flexbox 8]
expected: FAIL
+ [.flexbox 9]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini b/tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini
new file mode 100644
index 00000000000..2f0ac1423d2
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini
@@ -0,0 +1,13 @@
+[lh-rlh-on-root-001.html]
+ [2lh in line-height on root]
+ expected: FAIL
+
+ [2rlh in line-height on root]
+ expected: FAIL
+
+ [2lh in font-size on root]
+ expected: FAIL
+
+ [2rlh in font-size on root]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/lh-unit-001.html.ini b/tests/wpt/metadata/css/css-values/lh-unit-001.html.ini
new file mode 100644
index 00000000000..b53f95bdbb4
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/lh-unit-001.html.ini
@@ -0,0 +1,2 @@
+[lh-unit-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-values/lh-unit-002.html.ini b/tests/wpt/metadata/css/css-values/lh-unit-002.html.ini
new file mode 100644
index 00000000000..bad542144c5
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/lh-unit-002.html.ini
@@ -0,0 +1,2 @@
+[lh-unit-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini b/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini
new file mode 100644
index 00000000000..f903b9d7fa3
--- /dev/null
+++ b/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini
@@ -0,0 +1,4 @@
+[redirect-to-url-with-credentials.https.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini b/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini
index 17ebf0277ff..1e3ff756963 100644
--- a/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini
+++ b/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini
@@ -20,3 +20,6 @@
[Document URLs: unpaired surrogate codepoint should be replaced with U+FFFD]
expected: FAIL
+ [location.href : unpaired surrogate codepoint should be replaced with U+FFFD]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini
new file mode 100644
index 00000000000..ccaf4df2de3
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini
@@ -0,0 +1,7 @@
+[conditionally-block-rendering-on-link-media-attr.html]
+ [Only the style sheet loaded via a link element whose media attribute matches the environment should block following script execution]
+ expected: FAIL
+
+ [Both style sheets loaded via the link elements should be registered as style sheets for the document after 2 seconds]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini
index 6b0ad4e3e0f..91b6048e419 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini
@@ -51,27 +51,75 @@
[video/ogg with and without codecs]
expected: FAIL
- [audio/mp4 (optional)]
+ [video/x-new-fictional-format]
expected: FAIL
- [audio/ogg (optional)]
+ [audio/mp4; codecs="mp4a.40.2" (optional)]
expected: FAIL
- [audio/wav (optional)]
+ [audio/mp4 with bogus codec]
expected: FAIL
- [audio/webm (optional)]
+ [audio/ogg; codecs="opus" (optional)]
expected: FAIL
- [video/3gpp (optional)]
+ [audio/ogg; codecs="vorbis" (optional)]
expected: FAIL
- [video/mp4 (optional)]
+ [audio/ogg with bogus codec]
expected: FAIL
- [video/ogg (optional)]
+ [audio/wav; codecs="1" (optional)]
expected: FAIL
- [video/webm (optional)]
+ [audio/wav with bogus codec]
+ expected: FAIL
+
+ [audio/webm with bogus codec]
+ expected: FAIL
+
+ [audio/webm with and without codecs]
+ expected: FAIL
+
+ [video/3gpp with bogus codec]
+ expected: FAIL
+
+ [video/3gpp with and without codecs]
+ expected: FAIL
+
+ [video/mp4; codecs="mp4a.40.2" (optional)]
+ expected: FAIL
+
+ [video/mp4; codecs="avc1.42E01E" (optional)]
+ expected: FAIL
+
+ [video/mp4; codecs="avc1.4D401E" (optional)]
+ expected: FAIL
+
+ [video/mp4; codecs="avc1.58A01E" (optional)]
+ expected: FAIL
+
+ [video/mp4; codecs="avc1.64001E" (optional)]
+ expected: FAIL
+
+ [video/mp4 with bogus codec]
+ expected: FAIL
+
+ [video/ogg; codecs="opus" (optional)]
+ expected: FAIL
+
+ [video/ogg; codecs="vorbis" (optional)]
+ expected: FAIL
+
+ [video/ogg; codecs="theora" (optional)]
+ expected: FAIL
+
+ [video/ogg with bogus codec]
+ expected: FAIL
+
+ [video/webm with bogus codec]
+ expected: FAIL
+
+ [video/webm with and without codecs]
expected: FAIL
diff --git a/tests/wpt/metadata/mozilla-sync b/tests/wpt/metadata/mozilla-sync
index 48dce5e5051..5ae6f54c5e9 100644
--- a/tests/wpt/metadata/mozilla-sync
+++ b/tests/wpt/metadata/mozilla-sync
@@ -1,2 +1,2 @@
-local: 9187c9a093860d9f3c31b5a5f402458aa4a607cb
-upstream: 1b93a7d98bc4849fa8f365d9bd13fb2a0448c6e1
+local: 1f6a864ab5372fe4f59b1a4c3db7cf8e7a79b06d
+upstream: 08e864fd23048d707cc42bed8538e644d8dec950
diff --git a/tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini b/tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini
new file mode 100644
index 00000000000..7ea09b3295f
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini
@@ -0,0 +1,4 @@
+[po-takeRecords.html]
+ [Test PerformanceObserver's takeRecords()]
+ expected: FAIL
+
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index 9f3589df210..22bc7212f2e 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -12478,6 +12478,11 @@
{}
]
],
+ "mozilla/resources/http-cache-trickle.py": [
+ [
+ {}
+ ]
+ ],
"mozilla/resources/http-cache.js": [
[
{}
@@ -32655,6 +32660,12 @@
{}
]
],
+ "css/issue_18544_flow_list_crash.html": [
+ [
+ "/_mozilla/css/issue_18544_flow_list_crash.html",
+ {}
+ ]
+ ],
"css/matchMedia.html": [
[
"/_mozilla/css/matchMedia.html",
@@ -33245,6 +33256,12 @@
{}
]
],
+ "mozilla/http-cache-xhr.html": [
+ [
+ "/_mozilla/mozilla/http-cache-xhr.html",
+ {}
+ ]
+ ],
"mozilla/http-cache.html": [
[
"/_mozilla/mozilla/http-cache.html",
@@ -63320,6 +63337,10 @@
"863e3c8c5ffa1627a20f51e89b7eca884ea381dd",
"reftest"
],
+ "css/issue_18544_flow_list_crash.html": [
+ "9e41b681e414db9bd5f3fc75210de12a6e660c28",
+ "testharness"
+ ],
"css/jpeg_normal.html": [
"4e9d02f232492b55f8e6b71046b392c4dc2c9fb6",
"reftest"
@@ -66348,6 +66369,10 @@
"592f69ee432ba5bc7a2f2649e72e083d21393496",
"testharness"
],
+ "mozilla/http-cache-xhr.html": [
+ "d4747fdc9ec6acc50718c13a668451987a44d219",
+ "testharness"
+ ],
"mozilla/http-cache.html": [
"33827dc9bdb0efcbcae4f730086693be315cfc14",
"testharness"
@@ -72024,8 +72049,12 @@
"78686147f85e4146e7fc58c1f67a613f65b099a2",
"support"
],
+ "mozilla/resources/http-cache-trickle.py": [
+ "48f4e32ec2e1c1b6d47e89254045b398c1d84d40",
+ "support"
+ ],
"mozilla/resources/http-cache.js": [
- "c6b1ee9def26d4e12a1b93e551c225f82b4717c2",
+ "4bf71e1f328e778990eb756741a3be58f4f57ef6",
"support"
],
"mozilla/resources/iframe_contentDocument_inner.html": [
diff --git a/tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini b/tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini
new file mode 100644
index 00000000000..794b50d9245
--- /dev/null
+++ b/tests/wpt/mozilla/meta/mozilla/http-cache-xhr.html.ini
@@ -0,0 +1,2 @@
+[http-cache-xhr.html]
+ type: testharness
diff --git a/tests/wpt/mozilla/tests/css/issue_18544_flow_list_crash.html b/tests/wpt/mozilla/tests/css/issue_18544_flow_list_crash.html
new file mode 100644
index 00000000000..9ef57cad02a
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/issue_18544_flow_list_crash.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Issue 18544 - Flow list crash</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div style="position:fixed"></div>
+<script>
+ async_test(function(test) {
+ window.onload = test.step_func_done(function() {
+ document.body.children[0].style['column-count'] = 1;
+ document.body.offsetTop;
+ assert_true(true, "Did not crash");
+ });
+ });
+</script>
+
diff --git a/tests/wpt/mozilla/tests/mozilla/http-cache-xhr.html b/tests/wpt/mozilla/tests/mozilla/http-cache-xhr.html
new file mode 100644
index 00000000000..2e1bf9bae7e
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/http-cache-xhr.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script>
+<script src="resources/http-cache.js"></script>
+<script>
+ var test = async_test('The response from an aborted XHR request should not be cached');
+ test.step(function() {
+ var client = new XMLHttpRequest();
+ var requests = [
+ {
+ response_status: [200, 'OK'],
+ "response_headers": [
+ ['Expires', http_date(100000)],
+ ['Last-Modified', http_date(0)]
+ ],
+ response_body: '12'
+ },
+ {
+ response_status: [200, 'OK'],
+ "response_headers": [
+ ['Expires', http_date(100000)],
+ ['Last-Modified', http_date(0)]
+ ],
+ response_body: '12'
+ }
+ ];
+ var uuid = token();
+ var url = make_url(uuid, requests, 0);
+ url += '&trickle=true';
+ client.onprogress = test.step_func(function() {
+ var client2 = new XMLHttpRequest();
+ client2.onloadend = test.step_func(function(event) {
+ server_state(uuid).then(test.step_func(function(state){
+ // Two server hits for two requests, no caching.
+ assert_equals(state.length, 2);
+ // The empty, aborted response.
+ assert_equals(client.response, "");
+ // The complete, non-aborted, response.
+ assert_equals(client2.response, "12");
+ test.done();
+ }));
+ });
+ client.onabort = test.step_func(function() {
+ client2.open("GET", url);
+ client2.send();
+ });
+ client.abort();
+ });
+ client.open("GET", url);
+ client.send();
+ });
+</script>
+</head>
+</html>
diff --git a/tests/wpt/mozilla/tests/mozilla/resources/http-cache-trickle.py b/tests/wpt/mozilla/tests/mozilla/resources/http-cache-trickle.py
new file mode 100644
index 00000000000..e9f5fad1781
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/resources/http-cache-trickle.py
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+import time
+from json import JSONEncoder, JSONDecoder
+from base64 import b64decode
+
+
+def main(request, response):
+ uuid = request.GET.first("token", None)
+ if "querystate" in request.GET:
+ response.headers.set("Content-Type", "text/plain")
+ return JSONEncoder().encode(request.server.stash.take(uuid))
+
+ server_state = request.server.stash.take(uuid)
+ if not server_state:
+ server_state = []
+
+ requests = JSONDecoder().decode(b64decode(request.GET.first("info", "")))
+ config = requests[len(server_state)]
+
+ state = dict()
+ state["request_method"] = request.method
+ state["request_headers"] = dict([[h.lower(), request.headers[h]] for h in request.headers])
+ server_state.append(state)
+ request.server.stash.put(uuid, server_state)
+
+ note_headers = ['content-type', 'access-control-allow-origin', 'last-modified', 'etag']
+ noted_headers = {}
+ for header in config.get('response_headers', []):
+ if header[0].lower() in ["location", "content-location"]: # magic!
+ header[1] = "%s&target=%s" % (request.url, header[1])
+ response.headers.set(header[0], header[1])
+ if header[0].lower() in note_headers:
+ noted_headers[header[0].lower()] = header[1]
+
+ if "access-control-allow-origin" not in noted_headers:
+ response.headers.set("Access-Control-Allow-Origin", "*")
+ if "content-type" not in noted_headers:
+ response.headers.set("Content-Type", "text/plain")
+ response.headers.set("Server-Request-Count", len(server_state))
+
+ code, phrase = config.get("response_status", [200, "OK"])
+
+ if request.headers.get("If-Modified-Since", False) == noted_headers.get('last-modified', True):
+ code, phrase = [304, "Not Modified"]
+ if request.headers.get("If-None-Match", False) == noted_headers.get('etag', True):
+ code, phrase = [304, "Not Modified"]
+
+ response.status = (code, phrase)
+
+ if request.GET.first("trickle", None):
+ response.write_status_headers()
+ for byte in config.get("response_body", uuid):
+ response.writer.write_content(byte)
+ time.sleep(1)
+
+ content = config.get("response_body", uuid)
+ if code in [204, 304]:
+ return ""
+ else:
+ return content
diff --git a/tests/wpt/mozilla/tests/mozilla/resources/http-cache.js b/tests/wpt/mozilla/tests/mozilla/resources/http-cache.js
index 34aaacf536f..b7f92a93f13 100644
--- a/tests/wpt/mozilla/tests/mozilla/resources/http-cache.js
+++ b/tests/wpt/mozilla/tests/mozilla/resources/http-cache.js
@@ -40,11 +40,11 @@ function make_url(uuid, requests, idx) {
if ("query_arg" in requests[idx]) {
arg = "&target=" + requests[idx].query_arg;
}
- return "/fetch/http-cache/resources/http-cache.py?token=" + uuid + "&info=" + btoa(JSON.stringify(requests)) + arg;
+ return "resources/http-cache-trickle.py?token=" + uuid + "&info=" + btoa(JSON.stringify(requests)) + arg;
}
function server_state(uuid) {
- return fetch("/fetch/http-cache/resources/http-cache.py?querystate&token=" + uuid)
+ return fetch("resources/http-cache-trickle.py?querystate&token=" + uuid)
.then(function(response) {
return response.text();
}).then(function(text) {
diff --git a/tests/wpt/web-platform-tests/.travis.yml b/tests/wpt/web-platform-tests/.travis.yml
index f5db6cac09e..287c6337cbd 100644
--- a/tests/wpt/web-platform-tests/.travis.yml
+++ b/tests/wpt/web-platform-tests/.travis.yml
@@ -87,7 +87,7 @@ matrix:
apt:
packages:
- libnss3-tools
- env: JOB=wpt_integration TOXENV=py27 SCRIPT=tools/ci/ci_wpt.sh
+ env: JOB=wpt_integration TOXENV=py27,py27-flake8 SCRIPT=tools/ci/ci_wpt.sh
exclude:
- env: # exclude empty env from the top-level above
allow_failures:
diff --git a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js
index cd2a801994c..4e5b9a88833 100644
--- a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js
+++ b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js
@@ -38,7 +38,8 @@ function makeVideo() {
video.oncanplaythrough = function() {
resolve(video);
};
- video.src = "/images/pattern.ogv";
+ video.onerror = reject;
+ video.src = getVideoURI("/images/pattern");
});
}
diff --git a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
index 98b656e78b4..d527b4c2adb 100644
--- a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
+++ b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
@@ -4,6 +4,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/canvas-tests.js"></script>
+<script src="/common/media.js"></script>
<script src="common.js"></script>
<link rel="stylesheet" href="/common/canvas-tests.css">
<body>
diff --git a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html
index 1fe71856fc4..12f9974a687 100644
--- a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html
+++ b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html
@@ -1,6 +1,7 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/media.js"></script>
<script src="common.js"></script>
<script>
diff --git a/tests/wpt/web-platform-tests/FileAPI/file/File-constructor.html b/tests/wpt/web-platform-tests/FileAPI/file/File-constructor.html
index 9c1a940662a..646ed99c212 100644
--- a/tests/wpt/web-platform-tests/FileAPI/file/File-constructor.html
+++ b/tests/wpt/web-platform-tests/FileAPI/file/File-constructor.html
@@ -47,7 +47,7 @@ test_first_argument(["bits", new Blob(["bits"]), new Blob(), new Uint8Array([0x5
test_first_argument([12], 2, "Number in fileBits");
test_first_argument([[1,2,3]], 5, "Array in fileBits");
test_first_argument([{}], 15, "Object in fileBits"); // "[object Object]"
-test_first_argument([document], 21, "HTMLDocument in fileBits"); // "[object HTMLDocument]"
+test_first_argument([document.body], 24, "HTMLBodyElement in fileBits"); // "[object HTMLBodyElement]"
test_first_argument([to_string_obj], 8, "Object with toString in fileBits");
test_first_argument({[Symbol.iterator]() {
let i = 0;
@@ -88,7 +88,7 @@ test_second_argument("dummy/foo", "dummy:foo", "Using special character in fileN
test_second_argument(null, "null", "Using null fileName");
test_second_argument(1, "1", "Using number fileName");
test_second_argument('', '', "Using empty string fileName");
-test_second_argument(document, '[object HTMLDocument]', "Using object fileName");
+test_second_argument(document.body, '[object HTMLBodyElement]', "Using object fileName");
// testing the third argument
[
diff --git a/tests/wpt/web-platform-tests/FileAPI/url/sandboxed-iframe.html b/tests/wpt/web-platform-tests/FileAPI/url/sandboxed-iframe.html
index e7a8a15daa9..3eca08da8a4 100644
--- a/tests/wpt/web-platform-tests/FileAPI/url/sandboxed-iframe.html
+++ b/tests/wpt/web-platform-tests/FileAPI/url/sandboxed-iframe.html
@@ -9,7 +9,6 @@
<script>
const iframe_scripts = [
- '/resources/testharness.js',
'resources/fetch-tests.js',
'url-format.any.js',
'url-with-xhr.any.js',
@@ -18,6 +17,8 @@ const iframe_scripts = [
];
let html = '<!doctype html>\n<meta charset="utf-8">\n<body>\n';
+html = html + '<script src="/resources/testharness.js"></' + 'script>\n';
+html = html + '<script>setup({"explicit_timeout": true});</' + 'script>\n';
for (const script of iframe_scripts)
html = html + '<script src="' + script + '"></' + 'script>\n';
@@ -27,4 +28,4 @@ frame.setAttribute('style', 'display:none;');
fetch_tests_from_window(frame.contentWindow);
-</script> \ No newline at end of file
+</script>
diff --git a/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js b/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js
index 88b82ce9b67..d485bfaac61 100644
--- a/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js
+++ b/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js
@@ -2,7 +2,7 @@ const blob = new Blob(['test']);
const file = new File(['test'], 'name');
test(() => {
- const url_count = 10000;
+ const url_count = 5000;
let list = [];
for (let i = 0; i < url_count; ++i)
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js
index 8ff0ac3053c..8ff0ac3053c 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js
index 488d60216fc..488d60216fc 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js
index b98b0f3502b..b98b0f3502b 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js
index 1ab68d29efc..1ab68d29efc 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.https.worker.js
index 9b1072e1dd8..9b1072e1dd8 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js
index c0c0395fc32..c0c0395fc32 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js
index 6577525ee21..6577525ee21 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js
index 7a14b69a752..7a14b69a752 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js
index b0163262af9..b0163262af9 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html
deleted file mode 100644
index 53faef26d4d..00000000000
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<meta charset=utf-8>
-<title>IDL check of WebCrypto</title>
-<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#crypto-interface">
-
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/resources/WebIDLParser.js></script>
-<script src=/resources/idlharness.js></script>
-</head>
-<body>
-
-<h1 class="instructions">Description</h1>
-
-<p class="instructions">This test verifies that the implementations of the WebCrypto API match with its WebIDL definition.</p>
-
-<div id='log'></div>
-
-<script>
-var file_input;
-setup(function() {
- var idl_array = new IdlArray();
-
- var request = new XMLHttpRequest();
- request.open("GET", "WebCryptoAPI.idl");
- request.send();
- request.onload = function() {
- var idls = request.responseText;
-
- idl_array.add_idls(idls);
-
- idl_array.add_objects({"Crypto":["crypto"], "SubtleCrypto":["crypto.subtle"]});
-
- idl_array.test();
- done();
- };
-}, {explicit_done: true});
-</script>
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html
index 53faef26d4d..c4fd0f34092 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html
@@ -24,7 +24,7 @@ setup(function() {
var idl_array = new IdlArray();
var request = new XMLHttpRequest();
- request.open("GET", "WebCryptoAPI.idl");
+ request.open("GET", "../interfaces/WebCryptoAPI.idl");
request.send();
request.onload = function() {
var idls = request.responseText;
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.worker.js
index ba033014e8f..b4bbdda4b29 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.worker.js
@@ -2,7 +2,7 @@ importScripts("/resources/testharness.js");
importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js");
var request = new XMLHttpRequest();
-request.open("GET", "WebCryptoAPI.idl");
+request.open("GET", "../interfaces/WebCryptoAPI.idl");
request.send();
request.onload = function() {
var idl_array = new IdlArray();
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.https.worker.js
index 698df52e9d3..698df52e9d3 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker.js
index 3b2435be010..3b2435be010 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js
index bedd082da49..bedd082da49 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.https.worker.js
index f379d466784..f379d466784 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.https.worker.js
index 79d8f21d730..79d8f21d730 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js
index 6b4dbee7987..6b4dbee7987 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js
index fdf7b998d95..fdf7b998d95 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js
index 4cf813ba5bf..4cf813ba5bf 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js
+++ b/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html
index d849db13359..9476efb6a0f 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Accelerometer Feature Policy Test: Disabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index 7306ed58ce6..aa8ea10eb0b 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Accelerometer Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html
index 1ee0f42a510..860a027b55b 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Accelerometer Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html
index 6dc33c829ca..889047a0703 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Accelerometer Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html
index fddbca0f5bb..bf458529e84 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Accelerometer Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html
index 2a9bc543cdf..9563270fcda 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html
@@ -11,5 +11,6 @@
runGenericSensorTests(Accelerometer);
runGenericSensorTests(GravitySensor);
+runGenericSensorTests(LinearAccelerationSensor);
</script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html
index 96eeef2daf7..ff1f0832c31 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html
@@ -7,7 +7,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/generic-sensor/generic-sensor-tests.js"></script>
<div id="log"></div>
-<h2>Precondition</h2>
+<h2>Note:</h2>
<ol>
<li>
Run test in an insecure context, e.g. http://example.com/.
@@ -17,5 +17,6 @@
runGenericSensorInsecureContext("Accelerometer");
runGenericSensorInsecureContext("GravitySensor");
+runGenericSensorInsecureContext("LinearAccelerationSensor");
</script>
diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html
index 8778693ccb2..f69b1b6ce5c 100644
--- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html
+++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html
@@ -17,5 +17,6 @@
runGenericSensorOnerror(Accelerometer);
runGenericSensorOnerror(GravitySensor);
+runGenericSensorOnerror(LinearAccelerationSensor);
</script>
diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index f5d4b0fdde8..84bee557186 100644
--- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AmbientLightSensor Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html
index 13de3f8b4ee..a9810128956 100644
--- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AmbientLightSensor Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html
index f2c2c3bbae1..e4ce2566bf0 100644
--- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AmbientLightSensor Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html
index 33d36cb44e7..bb2c4a61841 100644
--- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AmbientLightSensor Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js b/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js
index de3846b6cbc..ed7f81ad9ff 100644
--- a/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js
+++ b/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js
@@ -39,6 +39,10 @@ var emptyFormDataTest = { id: "EmptyFormData", data: CreateEmptyFormDataPayload(
var smallFormDataTest = { id: "SmallFormData", data: CreateFormDataFromPayload(smallPayload) };
var mediumFormDataTest = { id: "MediumFormData", data: CreateFormDataFromPayload(mediumPayload) };
var largeFormDataTest = { id: "LargeFormData", data: CreateFormDataFromPayload(largePayload) };
+var smallSafeContentTypeEncodedTest = { id: "SmallSafeContentTypeEncoded", data: new Blob([smallPayload], { type: 'application/x-www-form-urlencoded' }) };
+var smallSafeContentTypeFormTest = { id: "SmallSafeContentTypeForm", data: new FormData() };
+var smallSafeContentTypeTextTest = { id: "SmallSafeContentTypeText", data: new Blob([smallPayload], { type: 'text/plain' }) };
+var smallCORSContentTypeTextTest = { id: "SmallCORSContentTypeText", data: new Blob([smallPayload], { type: 'text/html' }) };
// We don't test maxFormData because the extra multipart separators make it difficult to
// calculate a maxPayload.
@@ -57,7 +61,9 @@ var allTests = [].concat(stringTests, stringMaxTest, blobTests, blobMaxTest, buf
// This special cross section of test cases is meant to provide a slimmer but reasonably-
// representative set of tests for parameterization across variables (e.g. redirect codes,
// cors modes, etc.)
-var sampleTests = [noDataTest, nullDataTest, undefinedDataTest, smallStringTest, smallBlobTest, smallBufferSourceTest, smallFormDataTest];
+var sampleTests = [noDataTest, nullDataTest, undefinedDataTest, smallStringTest, smallBlobTest, smallBufferSourceTest, smallFormDataTest, smallSafeContentTypeEncodedTest, smallSafeContentTypeFormTest, smallSafeContentTypeTextTest];
+
+var preflightTests = [smallCORSContentTypeTextTest];
// Build a test lookup table, which is useful when instructing a web worker or an iframe
// to run a test, so that we don't have to marshal the entire test case across a process boundary.
diff --git a/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js b/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js
index ddfdfbfa0a2..f4bccf177e3 100644
--- a/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js
+++ b/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js
@@ -38,4 +38,30 @@
runTests(sampleTests);
});
+// Now test a cross-origin request that doesn't use a safelisted Content-Type and ensure
+// we are applying the proper restrictions. Since a non-safelisted Content-Type request
+// header is used there should be a preflight/options request and we should only succeed
+// send the payload if the proper CORS headers are used.
+{
+ // Implement the self.buildId extension to identify the parameterized
+ // test in the report.
+ self.buildId = function (baseId) {
+ return `${baseId}-PREFLIGHT-ALLOW`;
+ };
+
+ // Implement the self.buildBaseUrl and self.buildTargetUrl extensions
+ // to change the target URL to use a cross-origin domain name.
+ self.buildBaseUrl = function (baseUrl) {
+ return "http://{{domains[www]}}:{{ports[http][0]}}";
+ };
+
+ // Implement the self.buildTargetUrl extension to append a directive
+ // to the handler, that it should return CORS headers for the preflight we expect.
+ self.buildTargetUrl = function (targetUrl) {
+ return `${targetUrl}&origin=http://{{host}}:{{ports[http][0]}}&credentials=true&preflightExpected=true`;
+ }
+
+ runTests(preflightTests);
+}
+
done(); \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/beacon/resources/beacon.py b/tests/wpt/web-platform-tests/beacon/resources/beacon.py
index afa522a2a91..5f2553d3c4d 100644
--- a/tests/wpt/web-platform-tests/beacon/resources/beacon.py
+++ b/tests/wpt/web-platform-tests/beacon/resources/beacon.py
@@ -60,40 +60,52 @@ def main(request, response):
# with the unique session id, in order to retrieve a range of results
# later knowing the index range.
test_idx = request.GET.first("tidx")
-
- test_data_key = build_stash_key(session_id, test_idx)
test_data = { "id": test_id, "error": None }
- payload = ""
- if "Content-Type" in request.headers and \
- "form-data" in request.headers["Content-Type"]:
- if "payload" in request.POST:
- # The payload was sent as a FormData.
- payload = request.POST.first("payload")
+ # Only store the actual POST requests, not any preflight/OPTIONS requests we may get.
+ if request.method == "POST":
+ test_data_key = build_stash_key(session_id, test_idx)
+
+ payload = ""
+ if "Content-Type" in request.headers and \
+ "form-data" in request.headers["Content-Type"]:
+ if "payload" in request.POST:
+ # The payload was sent as a FormData.
+ payload = request.POST.first("payload")
+ else:
+ # A FormData was sent with an empty payload.
+ pass
else:
- # A FormData was sent with an empty payload.
- pass
- else:
- # The payload was sent as either a string, Blob, or BufferSource.
- payload = request.body
-
- payload_parts = filter(None, payload.split(":"))
- if len(payload_parts) > 0:
- payload_size = int(payload_parts[0])
-
- # Confirm the payload size sent matches with the number of characters sent.
- if payload_size != len(payload_parts[1]):
- test_data["error"] = "expected %d characters but got %d" % (payload_size, len(payload_parts[1]))
+ # The payload was sent as either a string, Blob, or BufferSource.
+ payload = request.body
+
+ payload_parts = filter(None, payload.split(":"))
+ if len(payload_parts) > 0:
+ payload_size = int(payload_parts[0])
+
+ # Confirm the payload size sent matches with the number of characters sent.
+ if payload_size != len(payload_parts[1]):
+ test_data["error"] = "expected %d characters but got %d" % (payload_size, len(payload_parts[1]))
+ else:
+ # Confirm the payload contains the correct characters.
+ for i in range(0, payload_size):
+ if payload_parts[1][i] != "*":
+ test_data["error"] = "expected '*' at index %d but got '%s''" % (i, payload_parts[1][i])
+ break
+
+ # Store the result in the stash so that it can be retrieved
+ # later with a 'stat' command.
+ request.server.stash.put(test_data_key, test_data)
+ elif request.method == "OPTIONS":
+ # If we expect a preflight, then add the cors headers we expect, otherwise log an error as we shouldn't
+ # send a preflight for all requests.
+ if "preflightExpected" in request.GET:
+ response.headers.set("Access-Control-Allow-Headers", "content-type")
+ response.headers.set("Access-Control-Allow-Methods", "POST")
else:
- # Confirm the payload contains the correct characters.
- for i in range(0, payload_size):
- if payload_parts[1][i] != "*":
- test_data["error"] = "expected '*' at index %d but got '%s''" % (i, payload_parts[1][i])
- break
-
- # Store the result in the stash so that it can be retrieved
- # later with a 'stat' command.
- request.server.stash.put(test_data_key, test_data)
+ test_data_key = build_stash_key(session_id, test_idx)
+ test_data["error"] = "Preflight not expected."
+ request.server.stash.put(test_data_key, test_data)
elif command == "stat":
test_idx_min = int(request.GET.first("tidx_min"))
test_idx_max = int(request.GET.first("tidx_max"))
diff --git a/tests/wpt/web-platform-tests/bluetooth/README.md b/tests/wpt/web-platform-tests/bluetooth/README.md
index 593967ee089..869dd4af446 100644
--- a/tests/wpt/web-platform-tests/bluetooth/README.md
+++ b/tests/wpt/web-platform-tests/bluetooth/README.md
@@ -10,3 +10,39 @@ The Chromium implementation is provided by
`../resources/chromium/web-bluetooth-test.js`.
[Web Bluetooth Testing API]: https://docs.google.com/document/d/1Nhv_oVDCodd1pEH_jj9k8gF4rPGb_84VYaZ9IG8M_WY/
+
+# Generated gen-* files from generator.py
+
+`generator.py` builds `gen-*.html` tests using templates in
+`script-tests/*/*.js`.
+
+The subdirectory structure in `bluetooth/script-test/*` is recreated into
+`bluetooth/*`. The generator expands each CALL function from templates
+into new leaf directories and files.
+
+Example:
+
+`script-tests/server/get-same-object.js` contains:
+
+```
+gattServer.CALLS([
+ getPrimaryService('heart_rate')|
+ getPrimaryServices()|
+ getPrimaryServices('heart_rate')[UUID]]),
+```
+
+Generating:
+
+```
+server/getPrimaryService/gen-get-same-object.html
+server/getPrimaryServices/gen-get-same-object.html
+server/getPrimaryServices/gen-get-same-object-with-uuid.html
+```
+
+Usage:
+
+```
+$ python generate.py
+```
+
+More details documented in `generate.py`. \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html
new file mode 100644
index 00000000000..d20d435999f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'HeartRate device properties';
+
+bluetooth_test(() => getHealthThermometerService()
+ .then(({service}) => Promise.all([
+ service.getCharacteristic('temperature_measurement'),
+ service.getCharacteristic('measurement_interval')]))
+ .then(([temperature_measurement, measurement_interval]) => {
+ let tm_expected_properties =
+ new TestCharacteristicProperties(['indicate']);
+ assert_properties_equal(temperature_measurement.properties,
+ tm_expected_properties);
+
+ let mi_expected_properties =
+ new TestCharacteristicProperties(['read', 'write', 'indicate']);
+ assert_properties_equal(measurement_interval.properties,
+ mi_expected_properties);
+ }), test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html
new file mode 100644
index 00000000000..02aaeccb022
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html
@@ -0,0 +1,25 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.getDescriptor(user_description.name), expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html
new file mode 100644
index 00000000000..52b39c1e0cb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html
@@ -0,0 +1,39 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getDescriptor should return the same object.';
+let characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic} = _))
+ .then(() => Promise.all([
+ characteristic.getDescriptor(user_description.alias),
+ characteristic.getDescriptor(user_description.name),
+ characteristic.getDescriptor(user_description.uuid)
+ ]))
+ .then(descriptors_arrays => {
+ assert_true(descriptors_arrays.length > 0)
+
+ // Convert to arrays if necessary.
+ for (let i = 0; i < descriptors_arrays.length; i++) {
+ descriptors_arrays[i] = [].concat(descriptors_arrays[i]);
+ }
+
+ for (let i = 1; i < descriptors_arrays.length; i++) {
+ assert_equals(descriptors_arrays[0].length,
+ descriptors_arrays[i].length);
+ }
+
+ let base_set = new Set(descriptors_arrays[0]);
+ for (let descriptors of descriptors_arrays) {
+ descriptors.forEach(descriptor => assert_true(base_set.has(descriptor)));
+ }
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html
new file mode 100644
index 00000000000..c00d4cf5783
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html
@@ -0,0 +1,25 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.getDescriptors(user_description.name), expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html
new file mode 100644
index 00000000000..a29548f3656
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html
@@ -0,0 +1,25 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.getDescriptors(), expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html
new file mode 100644
index 00000000000..20df1d08002
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html
@@ -0,0 +1,39 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getDescriptors should return the same object.';
+let characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic} = _))
+ .then(() => Promise.all([
+ characteristic.getDescriptors(user_description.alias),
+ characteristic.getDescriptors(user_description.name),
+ characteristic.getDescriptors(user_description.uuid)
+ ]))
+ .then(descriptors_arrays => {
+ assert_true(descriptors_arrays.length > 0)
+
+ // Convert to arrays if necessary.
+ for (let i = 0; i < descriptors_arrays.length; i++) {
+ descriptors_arrays[i] = [].concat(descriptors_arrays[i]);
+ }
+
+ for (let i = 1; i < descriptors_arrays.length; i++) {
+ assert_equals(descriptors_arrays[0].length,
+ descriptors_arrays[i].length);
+ }
+
+ let base_set = new Set(descriptors_arrays[0]);
+ for (let descriptors of descriptors_arrays) {
+ descriptors.forEach(descriptor => assert_true(base_set.has(descriptor)));
+ }
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html
new file mode 100644
index 00000000000..35f5ee974fc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic is removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => fake_characteristic.remove())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.startNotifications(),
+ expected,
+ 'Characteristic got removed.')),
+ test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html
new file mode 100644
index 00000000000..c0d4328a0e4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Add multiple event listeners then readValue().';
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => fake_characteristic.setNextReadResponse(GATT_SUCCESS, [0,1,2]))
+ .then(() => assert_promise_resolves_after_event(
+ characteristic,
+ 'readValue',
+ 'characteristicvaluechanged',
+ 3 /* attach 3 listeners */))
+ .then(results => {
+ let read_value = new Uint8Array(results[0].buffer);
+ let event_values = results.slice(1).map(v => new Uint8Array(v.buffer));
+ for (let event_value of event_values) {
+ assert_equals(event_value.buffer, read_value.buffer);
+ assert_array_equals(event_value, read_value);
+ }
+ }), test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html
new file mode 100644
index 00000000000..3c963c3c9fd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => fake_characteristic.remove())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.readValue(),
+ expected,
+ 'Characteristic got removed.')),
+ test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html
new file mode 100644
index 00000000000..a217bdd36aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Reading a characteristic should fire an event.';
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => fake_characteristic.setNextReadResponse(
+ GATT_SUCCESS, [0, 1, 2]))
+ .then(() => assert_promise_resolves_after_event(
+ characteristic,
+ 'readValue',
+ 'characteristicvaluechanged'))
+ .then(results => new Promise(resolve => {
+ let read_value = new Uint8Array(results[0].buffer);
+ let event_value = new Uint8Array(results[1].buffer);
+ assert_equals(event_value.buffer, read_value.buffer);
+ assert_array_equals(event_value, read_value);
+ resolve();
+ })), test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html
new file mode 100644
index 00000000000..a80bccfe469
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html
@@ -0,0 +1,25 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.readValue(), expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html
new file mode 100644
index 00000000000..4dca3ed5a57
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A read request succeeds and returns the characteristic\'s ' +
+ 'value.';
+const EXPECTED_VALUE = [0, 1, 2];
+
+let characteristic, fake_characteristic;
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => fake_characteristic.setNextReadResponse(
+ GATT_SUCCESS,
+ EXPECTED_VALUE))
+ .then(() => characteristic.readValue())
+ .then(value => assert_array_equals(
+ new Uint8Array(value.buffer),
+ EXPECTED_VALUE)),
+ test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html
new file mode 100644
index 00000000000..11bb9391b62
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Succesful read should update characteristic.value';
+const EXPECTED_VALUE = [0, 1, 2];
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => assert_equals(characteristic.value, null))
+ .then(() => fake_characteristic.setNextReadResponse(
+ GATT_SUCCESS, EXPECTED_VALUE))
+ .then(() => characteristic.readValue())
+ .then(() => assert_array_equals(
+ new Uint8Array(characteristic.value.buffer),
+ EXPECTED_VALUE)),
+ test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html
new file mode 100644
index 00000000000..d9a9594320d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html
@@ -0,0 +1,25 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.startNotifications(), expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html
new file mode 100644
index 00000000000..f79c21916fb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => fake_characteristic.remove())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.writeValue(new ArrayBuffer(1 /* length */)),
+ expected,
+ 'Characteristic got removed.')),
+ test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html
new file mode 100644
index 00000000000..16520704630
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html
@@ -0,0 +1,25 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.writeValue(new Uint8Array(1)), expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html
new file mode 100644
index 00000000000..f2cf577e4f9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A regular write request to a writable characteristic ' +
+ 'should succeed.';
+let typed_array = Uint8Array.of(1, 2);
+let array_buffer = Uint8Array.of(3, 4).buffer;
+let data_view = new DataView(new ArrayBuffer(2));
+let characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic, fake_characteristic} = _))
+ .then(() => new Promise(resolve => {
+ data_view.setUint8(0, 5);
+ data_view.setUint8(1, 6);
+ resolve();
+ }))
+ .then(() => fake_characteristic.getLastWrittenValue())
+ .then(last_value => assert_true(last_value === null))
+
+ .then(() => fake_characteristic.setNextWriteResponse(GATT_SUCCESS))
+ .then(() => characteristic.writeValue(typed_array))
+ .then(() => fake_characteristic.getLastWrittenValue())
+ .then(last_value => assert_array_equals(last_value, [1, 2]))
+
+ .then(() => fake_characteristic.setNextWriteResponse(GATT_SUCCESS))
+ .then(() => characteristic.writeValue(array_buffer))
+ .then(() => fake_characteristic.getLastWrittenValue())
+ .then(last_value => assert_array_equals(last_value, [3, 4]))
+
+ .then(() => fake_characteristic.setNextWriteResponse(GATT_SUCCESS))
+ .then(() => characteristic.writeValue(data_view))
+ .then(() => fake_characteristic.getLastWrittenValue())
+ .then(last_value => assert_array_equals(last_value, [5, 6])),
+ test_desc);
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/generate.py b/tests/wpt/web-platform-tests/bluetooth/generate.py
new file mode 100644
index 00000000000..034ca22c619
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/generate.py
@@ -0,0 +1,189 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# TODO(509038): Delete the file in LayoutTests/bluetooth after all the script
+# tests have been migrated to this directory.
+"""Generator script for Web Bluetooth LayoutTests.
+
+For each script-tests/X.js creates the following test files depending on the
+contents of X.js
+- getPrimaryService/X.html
+- getPrimaryServices/X.html
+- getPrimaryServices/X-with-uuid.html
+
+script-tests/X.js files should contain "CALLS([variation1 | variation2 | ...])"
+tokens that indicate what files to generate. Each variation in CALLS([...])
+should corresponds to a js function call and its arguments. Additionally a
+variation can end in [UUID] to indicate that the generated file's name should
+have the -with-uuid suffix.
+
+The PREVIOUS_CALL token will be replaced with the function that replaced CALLS.
+
+The FUNCTION_NAME token will be replaced with the name of the function that
+replaced CALLS.
+
+For example, for the following template file:
+
+// script-tests/example.js
+promise_test(() => {
+ return navigator.bluetooth.requestDevice(...)
+ .then(device => device.gatt.CALLS([
+ getPrimaryService('heart_rate')|
+ getPrimaryServices('heart_rate')[UUID]]))
+ .then(device => device.gatt.PREVIOUS_CALL);
+}, 'example test for FUNCTION_NAME');
+
+this script will generate:
+
+// getPrimaryService/example.html
+promise_test(() => {
+ return navigator.bluetooth.requestDevice(...)
+ .then(device => device.gatt.getPrimaryService('heart_rate'))
+ .then(device => device.gatt.getPrimaryService('heart_rate'));
+}, 'example test for getPrimaryService');
+
+// getPrimaryServices/example-with-uuid.html
+promise_test(() => {
+ return navigator.bluetooth.requestDevice(...)
+ .then(device => device.gatt.getPrimaryServices('heart_rate'))
+ .then(device => device.gatt.getPrimaryServices('heart_rate'));
+}, 'example test for getPrimaryServices');
+
+Run
+$ python //third_party/WebKit/LayoutTests/bluetooth/generate.py
+and commit the generated files.
+"""
+
+import fnmatch
+import os
+import re
+import sys
+import logging
+
+TEMPLATES_DIR = 'script-tests'
+
+
+class GeneratedTest:
+
+ def __init__(self, data, path, template):
+ self.data = data
+ self.path = path
+ self.template = template
+
+
+def GetGeneratedTests():
+ """Yields a GeneratedTest for each call in templates in script-tests."""
+ bluetooth_tests_dir = os.path.dirname(os.path.realpath(__file__))
+
+ # Read Base Test Template.
+ base_template_file_handle = open(
+ os.path.join(
+ bluetooth_tests_dir,
+ TEMPLATES_DIR,
+ 'base_test_html.template'
+ ), 'r')
+ base_template_file_data = base_template_file_handle.read().decode('utf-8')
+ base_template_file_handle.close()
+
+ # Get Templates.
+
+ template_path = os.path.join(bluetooth_tests_dir, TEMPLATES_DIR)
+
+ available_templates = []
+ for root, _, files in os.walk(template_path):
+ for template in files:
+ if template.endswith('.js'):
+ available_templates.append(os.path.join(root, template))
+
+ # Generate Test Files
+ for template in available_templates:
+ # Read template
+ template_file_handle = open(template, 'r')
+ template_file_data = template_file_handle.read().decode('utf-8')
+ template_file_handle.close()
+
+ template_name = os.path.splitext(os.path.basename(template))[0]
+
+ # Find function names in multiline pattern: CALLS( [ function_name,function_name2[UUID] ])
+ result = re.search(
+ r'CALLS\(' + # CALLS(
+ r'[^\[]*' + # Any characters not [, allowing for new lines.
+ r'\[' + # [
+ r'(.*?)' + # group matching: function_name(), function_name2[UUID]
+ r'\]\)', # adjacent closing characters: ])
+ template_file_data, re.MULTILINE | re.DOTALL)
+
+ if result is None:
+ raise Exception('Template must contain \'CALLS\' tokens')
+
+ new_test_file_data = base_template_file_data.replace('TEST',
+ template_file_data)
+ # Replace CALLS([...]) with CALLS so that we don't have to replace the
+ # CALLS([...]) for every new test file.
+ new_test_file_data = new_test_file_data.replace(result.group(), 'CALLS')
+
+ # Replace 'PREVIOUS_CALL' with 'CALLS' so that we can replace it while
+ # replacing CALLS.
+ new_test_file_data = new_test_file_data.replace('PREVIOUS_CALL', 'CALLS')
+
+ for call in result.group(1).split('|'):
+ # Parse call
+ call = call.strip()
+ function_name, args, uuid_suffix = re.search(r'(.*?)\((.*)\)(\[UUID\])?', call).groups()
+
+ # Replace template tokens
+ call_test_file_data = new_test_file_data
+ call_test_file_data = call_test_file_data.replace('CALLS', '{}({})'.format(function_name, args))
+ call_test_file_data = call_test_file_data.replace('FUNCTION_NAME', function_name)
+
+ # Get test file name
+ group_dir = os.path.basename(os.path.abspath(os.path.join(template, os.pardir)))
+
+ call_test_file_name = 'gen-{}{}.https.html'.format(template_name, '-with-uuid' if uuid_suffix else '')
+ call_test_file_path = os.path.join(bluetooth_tests_dir, group_dir, function_name, call_test_file_name)
+
+ yield GeneratedTest(call_test_file_data, call_test_file_path, template)
+
+def main():
+ logging.basicConfig(level=logging.INFO)
+ previous_generated_files = set()
+ current_path = os.path.dirname(os.path.realpath(__file__))
+ for root, _, filenames in os.walk(current_path):
+ for filename in fnmatch.filter(filenames, 'gen-*.https.html'):
+ previous_generated_files.add(os.path.join(root, filename))
+
+ generated_files = set()
+ for generated_test in GetGeneratedTests():
+ prev_len = len(generated_files)
+ generated_files.add(generated_test.path)
+ if prev_len == len(generated_files):
+ logging.info('Generated the same test twice for template:\n%s',
+ generated_test.template)
+
+ # Create or open test file
+ directory = os.path.dirname(generated_test.path)
+ if not os.path.exists(directory):
+ os.makedirs(directory)
+ test_file_handle = open(generated_test.path, 'wb')
+
+ # Write contents
+ test_file_handle.write(generated_test.data.encode('utf-8'))
+ test_file_handle.close()
+
+ new_generated_files = generated_files - previous_generated_files
+ if len(new_generated_files) != 0:
+ logging.info('Newly generated tests:')
+ for generated_file in new_generated_files:
+ logging.info(generated_file)
+
+ obsolete_files = previous_generated_files - generated_files
+ if len(obsolete_files) != 0:
+ logging.warning('The following files might be obsolete:')
+ for generated_file in obsolete_files:
+ logging.warning(generated_file)
+
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/tests/wpt/web-platform-tests/bluetooth/generate_test.py b/tests/wpt/web-platform-tests/bluetooth/generate_test.py
new file mode 100755
index 00000000000..881f7dbcb73
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/generate_test.py
@@ -0,0 +1,56 @@
+#!/usr/bin/python
+
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# TODO(50903): Delete the file in LayoutTests/bluetooth after all the tests have
+# been migrated to this directory.
+"""Test that the set of gen-* files is the same as the generated files."""
+
+import fnmatch
+import os
+import sys
+import generate
+import logging
+
+UPDATE_TIP = 'To update the generated tests, run:\n' \
+ '$ python third_party/WebKit/LayoutTests/bluetooth/generate.py'
+
+
+def main():
+ logging.basicConfig(level=logging.INFO)
+ logging.info(UPDATE_TIP)
+ generated_files = set()
+ # Tests data in gen-* files is the same as the data generated.
+ for generated_test in generate.GetGeneratedTests():
+ generated_files.add(generated_test.path)
+ try:
+ with open(generated_test.path, 'r') as f:
+ data = f.read().decode('utf-8')
+ if data != generated_test.data:
+ logging.error('%s does not match template', generated_test.path)
+ return -1
+ except IOError, e:
+ if e.errno == 2:
+ logging.error('Missing generated test:\n%s\nFor template:\n%s',
+ generated_test.path,
+ generated_test.template)
+ return -1
+
+ # Tests that there are no obsolete generated files.
+ previous_generated_files = set()
+ current_path = os.path.dirname(os.path.realpath(__file__))
+ for root, _, filenames in os.walk(current_path):
+ for filename in fnmatch.filter(filenames, 'gen-*.https.html'):
+ previous_generated_files.add(os.path.join(root, filename))
+
+ if previous_generated_files != generated_files:
+ logging.error('There are extra generated tests. Please remove them.')
+ for test_path in previous_generated_files - generated_files:
+ logging.error('%s', test_path)
+ return -1
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html b/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html
index b0263f980a8..2835236d3b5 100644
--- a/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html
+++ b/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html
@@ -4,6 +4,7 @@
<script src="/resources/testharnessreport.js"></script>
<script>
'use strict';
+const test_desc = 'Bluetooth IDL test';
test(() => {
assert_throws(new TypeError(), () => new Bluetooth(),
@@ -14,6 +15,5 @@ test(() => {
// Bluetooth implements BluetoothDiscovery;
assert_true('requestDevice' in navigator.bluetooth);
assert_equals(navigator.bluetooth.requestDevice.length, 0);
-}, 'Bluetooth IDL test');
-
+}, test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html b/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html
index 9449cf1ec88..b8649f11abe 100644
--- a/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html
+++ b/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html
@@ -3,6 +3,7 @@
<script src="/resources/testharnessreport.js"></script>
<script>
'use strict';
+const test_desc = '[SameObject] test for navigator.bluetooth';
test(() => {
assert_true('bluetooth' in navigator,
@@ -11,5 +12,5 @@ test(() => {
test(() => {
assert_equals(navigator.bluetooth, navigator.bluetooth);
-}, '[SameObject] test for navigator.bluetooth');
+}, test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html
index 56e905c6140..033570d842e 100644
--- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html
@@ -6,12 +6,11 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return setUpPreconnectedDevice({name: ''})
+const test_desc = 'Device with empty name and no UUIDs nearby. Should be ' +
+ 'found if acceptAllDevices is true.';
+
+bluetooth_test(() => setUpPreconnectedDevice({name: ''})
.then(() => requestDeviceWithTrustedClick({acceptAllDevices: true}))
- .then(device => {
- assert_equals(device.name, '');
- });
-}, 'Device with empty name and no UUIDs nearby. Should be found if ' +
- 'acceptAllDevices is true.');
+ .then(device => assert_equals(device.name, '')),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html
index 8c271df5005..d990dbf05b4 100644
--- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html
@@ -5,13 +5,12 @@
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
-bluetooth_test(() => {
- let device_name = 'LE Device';
- return setUpPreconnectedDevice({name: device_name})
+const test_desc = 'A device with name and no UUIDs nearby. Should be found if ' +
+ 'acceptAllDevices is true.';
+const name = 'LE Device';
+
+bluetooth_test(() => setUpPreconnectedDevice({name: name})
.then(() => requestDeviceWithTrustedClick({acceptAllDevices: true}))
- .then(device => {
- assert_equals(device.name, device_name);
- });
-}, 'A device with name and no UUIDs nearby. Should be found if ' +
- 'acceptAllDevices is true.');
+ .then(device => assert_equals(device.name, name)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html
index adf77ba23ef..5a1dca7c97b 100644
--- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html
@@ -6,15 +6,17 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getHealthThermometerDevice({acceptAllDevices: true})
+const test_desc = 'requestDevice called with acceptAllDevices: true and ' +
+ 'with no optionalServices. Should not get access to any services.';
+const expected = new DOMException(
+ 'Origin is not allowed to access any service. ' +
+ 'Tip: Add the service UUID to \'optionalServices\' in ' +
+ 'requestDevice() options. https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({acceptAllDevices: true})
.then(({device}) => assert_promise_rejects_with_message(
device.gatt.getPrimaryServices(),
- new DOMException(
- 'Origin is not allowed to access any service. ' +
- 'Tip: Add the service UUID to \'optionalServices\' in ' +
- 'requestDevice() options. https://goo.gl/HxfxSQ',
- 'SecurityError')));
-}, 'requestDevice called with acceptAllDevices: true and with no ' +
- 'optionalServices. Should not get access to any services.');
+ expected)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html
index e202e741f97..3c0f4c1164b 100644
--- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html
@@ -9,19 +9,18 @@
const test_desc = 'requestDevice called with acceptAllDevices: true and with ' +
'optionalServices. Should get access to services.';
-bluetooth_test(() =>
- getTwoHealthThermometerServicesDevice()
- .then(() => requestDeviceWithTrustedClick({
- acceptAllDevices: true,
- optionalServices: ['health_thermometer']
- }))
- .then(device => device.gatt.connect())
- .then(gattServer => gattServer.getPrimaryServices())
- .then(services => {
- assert_equals(services.length, 2);
- services.forEach(service => {
- assert_equals(service.uuid,
- BluetoothUUID.getService('health_thermometer'));
- });
-}), test_desc);
+bluetooth_test(() => getTwoHealthThermometerServicesDevice()
+ .then(() => requestDeviceWithTrustedClick({
+ acceptAllDevices: true,
+ optionalServices: ['health_thermometer']
+ }))
+ .then(device => device.gatt.connect())
+ .then(gattServer => gattServer.getPrimaryServices())
+ .then(services => {
+ assert_equals(services.length, 2);
+ services.forEach(service => {
+ assert_equals(service.uuid,
+ BluetoothUUID.getService('health_thermometer'));
+ });
+ }), test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html b/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html
index ac577ad5ef2..c94ba55bbfd 100644
--- a/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html
+++ b/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html
@@ -4,27 +4,27 @@ let device;
function requestDeviceWithOptionsAndConnect(options) {
return navigator.bluetooth.requestDevice(options)
- .then(device => device.gatt.connect());
+ .then(device => device.gatt.connect());
}
window.onmessage = messageEvent => {
switch (messageEvent.data.type) {
case 'RequestAndConnect':
requestDeviceWithOptionsAndConnect(messageEvent.data.options)
- .then(gatt => {
- device = gatt.device;
- parent.postMessage('Connected', '*');
- }).catch(err => {
- parent.postMessage(`FAIL: ${err}`, '*');
- });
+ .then(gatt => {
+ device = gatt.device;
+ parent.postMessage('Connected', '*');
+ }).catch(err => {
+ parent.postMessage(`FAIL: ${err}`, '*');
+ });
break;
case 'DiscoverServices':
requestDeviceWithOptionsAndConnect(messageEvent.data.options)
- .then(gatt => gatt.getPrimaryServices())
- .then(() => parent.postMessage('DiscoveryComplete', '*'))
- .catch(err => {
- parent.postMessage(`FAIL: ${err}`, '*');
- });
+ .then(gatt => gatt.getPrimaryServices())
+ .then(() => parent.postMessage('DiscoveryComplete', '*'))
+ .catch(err => {
+ parent.postMessage(`FAIL: ${err}`, '*');
+ });
break;
default:
parent.postMessage(`FAIL: Bad message type: ${messageEvent.data.type}`,
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template b/tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template
new file mode 100644
index 00000000000..714333c5e13
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template
@@ -0,0 +1,10 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+TEST
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js
new file mode 100644
index 00000000000..8ff747c588d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js
@@ -0,0 +1,22 @@
+'use strict';
+const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
+const expected = new DOMException('GATT Characteristic no longer exists.',
+ 'InvalidStateError');
+let fake_peripheral, characteristic, fake_characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
+ .then(() => characteristic.getDescriptor(user_description.name))
+ .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
+ .then(() => fake_characteristic.remove())
+ .then(() => fake_peripheral.simulateGATTServicesChanged())
+ .then(() => assert_promise_rejects_with_message(
+ characteristic.CALLS([
+ getDescriptor(user_description.name)|
+ getDescriptors(user_description.name)[UUID]|
+ getDescriptors()|
+ readValue()|
+ writeValue(new Uint8Array(1))|
+ startNotifications()
+ ]), expected)),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js
new file mode 100644
index 00000000000..4e6bc3519bc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js
@@ -0,0 +1,32 @@
+'use strict';
+const test_desc = 'Calls to FUNCTION_NAME should return the same object.';
+let characteristic;
+
+bluetooth_test(() => getMeasurementIntervalCharacteristic()
+ .then(_ => ({characteristic} = _))
+ .then(() => Promise.all([
+ characteristic.CALLS([
+ getDescriptor(user_description.alias)|
+ getDescriptors(user_description.alias)
+ ]),
+ characteristic.FUNCTION_NAME(user_description.name),
+ characteristic.FUNCTION_NAME(user_description.uuid)
+ ]))
+ .then(descriptors_arrays => {
+ assert_true(descriptors_arrays.length > 0)
+
+ // Convert to arrays if necessary.
+ for (let i = 0; i < descriptors_arrays.length; i++) {
+ descriptors_arrays[i] = [].concat(descriptors_arrays[i]);
+ }
+
+ for (let i = 1; i < descriptors_arrays.length; i++) {
+ assert_equals(descriptors_arrays[0].length,
+ descriptors_arrays[i].length);
+ }
+
+ let base_set = new Set(descriptors_arrays[0]);
+ for (let descriptors of descriptors_arrays) {
+ descriptors.forEach(descriptor => assert_true(base_set.has(descriptor)));
+ }
+ }), test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js
new file mode 100644
index 00000000000..fabc74ffb30
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js
@@ -0,0 +1,22 @@
+'use strict';
+const test_desc = 'disconnect() called before FUNCTION_NAME. ' +
+ 'Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.disconnect())
+ .then(() => assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]]),
+ expected)),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js
new file mode 100644
index 00000000000..edabb07bccb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js
@@ -0,0 +1,22 @@
+'use strict';
+const test_desc = 'disconnect() called during a FUNCTION_NAME ' +
+ 'call that fails. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.', 'NetworkError');
+let device;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(_ => ({device} = _))
+ .then(() => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]
+ ]),
+ expected)
+ device.gatt.disconnect();
+ return promise;
+ }),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js
new file mode 100644
index 00000000000..84157a0693b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js
@@ -0,0 +1,23 @@
+'use strict';
+const test_desc = 'disconnect() called during a FUNCTION_NAME call that ' +
+ 'succeeds. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]
+ ]),
+ expected);
+ device.gatt.disconnect();
+ return promise;
+ }), test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js
new file mode 100644
index 00000000000..995fda34411
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js
@@ -0,0 +1,39 @@
+'use strict';
+const test_desc = 'Calls on services after we disconnect and connect again. '+
+ 'Should reject with InvalidStateError.';
+let device, services;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]]))
+ // Convert to array if necessary.
+ .then(s => services = [].concat(s))
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => {
+ let promises = Promise.resolve();
+ for (let service of services) {
+ let error = new DOMException(
+ `Service with UUID ${service.uuid} is no longer valid. Remember ` +
+ `to retrieve the service again after reconnecting.`,
+ 'InvalidStateError');
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristic('measurement_interval'),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics(),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics('measurement_interval'),
+ error));
+ }
+ return promises;
+ }), test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js
new file mode 100644
index 00000000000..2b6011642b6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js
@@ -0,0 +1,20 @@
+'use strict';
+const test_desc = 'FUNCTION_NAME called before connecting. Reject with ' +
+ 'NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]
+ ]),
+ expected)),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js
new file mode 100644
index 00000000000..e9e972359a7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js
@@ -0,0 +1,25 @@
+'use strict';
+const test_desc = 'Request for absent service without permission. Should ' +
+ 'Reject with SecurityError even if services have been discovered already.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService(glucose.alias)|
+ getPrimaryServices(glucose.alias)[UUID]
+ ]), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.FUNCTION_NAME(glucose.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.FUNCTION_NAME(glucose.uuid), expected)])),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js
new file mode 100644
index 00000000000..6b745d7e2a8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js
@@ -0,0 +1,16 @@
+'use strict';
+const test_desc = 'Request for absent service. Must reject with ' +
+ 'NotFoundError even when the services have previously been discovered.';
+
+bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['glucose']})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('glucose')|
+ getPrimaryServices('glucose')[UUID]
+ ]),
+ new DOMException(
+ `No Services matching UUID ${glucose.uuid} found in Device.`,
+ 'NotFoundError'))),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js
new file mode 100644
index 00000000000..35e838e92e7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js
@@ -0,0 +1,25 @@
+'use strict';
+const test_desc = 'Garbage Collection ran during a FUNCTION_NAME ' +
+ 'call that failed. Should not crash.'
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect first ' +
+ 'with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]
+ ]),
+ expected);
+ // Disconnect called to clear attributeInstanceMap and allow the
+ // object to get garbage collected.
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js
new file mode 100644
index 00000000000..7976bbd990b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js
@@ -0,0 +1,24 @@
+'use strict';
+const test_desc = 'Garbage Collection ran during a FUNCTION_NAME call that ' +
+ 'succeeds. Should not crash.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. ' +
+ '(Re)connect first with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer') |
+ getPrimaryServices() |
+ getPrimaryServices('health_thermometer')[UUID]]),
+ expected);
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js
new file mode 100644
index 00000000000..e72128a76ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js
@@ -0,0 +1,35 @@
+'use strict';
+const test_desc = 'Calls to FUNCTION_NAME after a disconnection should return ' +
+ 'a different object.';
+let device, services_first_connection, services_second_connection;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]]))
+ .then(services => services_first_connection = services)
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => device.gatt.PREVIOUS_CALL)
+ .then(services => services_second_connection = services)
+ .then(() => {
+ // Convert to arrays if necessary.
+ services_first_connection = [].concat(services_first_connection);
+ services_second_connection = [].concat(services_second_connection);
+
+ assert_equals(services_first_connection.length,
+ services_second_connection.length);
+
+ let first_connection_set = new Set(services_first_connection);
+ let second_connection_set = new Set(services_second_connection);
+
+ // The two sets should be disjoint.
+ let common_services = services_first_connection.filter(
+ val => second_connection_set.has(val));
+ assert_equals(common_services.length, 0);
+ }), test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js
new file mode 100644
index 00000000000..3b3bdd19d20
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js
@@ -0,0 +1,33 @@
+'use strict';
+const test_desc = 'Calls to FUNCTION_NAME should return the same object.';
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']})
+ .then(({device}) => Promise.all([
+ device.gatt.CALLS([
+ getPrimaryService('health_thermometer')|
+ getPrimaryServices()|
+ getPrimaryServices('health_thermometer')[UUID]]),
+ device.gatt.PREVIOUS_CALL]))
+ .then(([services_first_call, services_second_call]) => {
+ // Convert to arrays if necessary.
+ services_first_call = [].concat(services_first_call);
+ services_second_call = [].concat(services_second_call);
+
+ assert_equals(services_first_call.length, services_second_call.length);
+
+ let first_call_set = new Set(services_first_call);
+ assert_equals(services_first_call.length, first_call_set.size);
+ let second_call_set = new Set(services_second_call);
+ assert_equals(services_second_call.length, second_call_set.size);
+
+ services_first_call.forEach(service => {
+ assert_true(second_call_set.has(service))
+ });
+
+ services_second_call.forEach(service => {
+ assert_true(first_call_set.has(service));
+ });
+ }), test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js
new file mode 100644
index 00000000000..56e67f0ac13
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js
@@ -0,0 +1,22 @@
+'use strict';
+const test_desc = 'Wrong Service name. Reject with TypeError.';
+const expected = new DOMException(
+ "Failed to execute 'FUNCTION_NAME' on " +
+ "'BluetoothRemoteGATTServer': Invalid Service name: " +
+ "'wrong_name'. It must be a valid UUID alias (e.g. 0x1234), " +
+ "UUID (lowercase hex characters e.g. " +
+ "'00001234-0000-1000-8000-00805f9b34fb'), " +
+ "or recognized standard name from " +
+ "https://www.bluetooth.com/specifications/gatt/services" +
+ " e.g. 'alert_notification'.",
+ 'TypeError');
+
+bluetooth_test(() => getHealthThermometerDevice()
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('wrong_name')|
+ getPrimaryServices('wrong_name')
+ ]),
+ expected,
+ 'Wrong Service name passed.')),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js
new file mode 100644
index 00000000000..9bab3be8046
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js
@@ -0,0 +1,23 @@
+'use strict';
+const test_desc = 'Request for absent service without permission. ' +
+ 'Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service UUID ' +
+ 'to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService(glucose.alias)|
+ getPrimaryServices(glucose.alias)[UUID]
+ ]), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.FUNCTION_NAME(glucose.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.FUNCTION_NAME(glucose.uuid), expected)])),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js
new file mode 100644
index 00000000000..52b07cc48ba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js
@@ -0,0 +1,17 @@
+'use strict';
+const test_desc = 'Request for present service without permission to access ' +
+ 'any service. Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access any service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({acceptAllDevices: true})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('heart_rate')|
+ getPrimaryServices()|
+ getPrimaryServices('heart_rate')[UUID]]),
+ expected)),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js
new file mode 100644
index 00000000000..67081ae56be
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js
@@ -0,0 +1,22 @@
+'use strict';
+const test_desc = 'Request for present service without permission. ' +
+ 'Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service UUID ' +
+ 'to \'optionalServices\' in requestDevice() options. https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService(generic_access.alias)|
+ getPrimaryServices(generic_access.alias)[UUID]
+ ]), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.FUNCTION_NAME(generic_access.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.FUNCTION_NAME(generic_access.uuid), expected)])),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js
new file mode 100644
index 00000000000..0fd2dace787
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js
@@ -0,0 +1,16 @@
+'use strict';
+const test_desc = 'Request for absent service. Reject with NotFoundError.';
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['glucose']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.CALLS([
+ getPrimaryService('glucose')|
+ getPrimaryServices('glucose')[UUID]
+ ]),
+ new DOMException(
+ `No Services matching UUID ${glucose.uuid} found in Device.`,
+ 'NotFoundError'))),
+ test_desc);
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html
index 8b158862d3b..aebd681c2ad 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html
@@ -6,12 +6,14 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getDiscoveredHealthThermometerDevice()
- .then(({device, fake_peripheral}) => {
- return fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS})
- .then(() => device.gatt.connect())
- .then(gatt => assert_true(gatt.connected));
- });
-}, 'Device will connect');
+const test_desc = 'Device will connect';
+let device, fake_peripheral;
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(() =>
+ fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ .then(gatt => assert_true(gatt.connected)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html
index 3d83683e0eb..f70befcb4b4 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html
@@ -6,17 +6,17 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getDiscoveredHealthThermometerDevice()
- .then(({device, fake_peripheral}) => {
- return fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS})
- .then(() => {
- // Don't return the promise and let |device| go out of scope
- // so that it gets garbage collected.
- device.gatt.connect();
- });
- })
- .then(runGarbageCollection)
-}, 'Garbage Collection ran during a connect call that succeeds. ' +
- 'Should not crash.');
+const test_desc = 'Garbage Collection ran during a connect call that ' +
+ 'succeeds. Should not crash.';
+let device, fake_peripheral;
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(() =>
+ fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
+ // Don't return the promise and let |device| go out of scope
+ // so that it gets garbage collected.
+ .then(() => device.gatt.connect())
+ .then(runGarbageCollection),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html b/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html
index 09e3ac522e5..c3e35532835 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html
@@ -6,20 +6,20 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getDiscoveredHealthThermometerDevice()
- .then(({device, fake_peripheral}) => {
- return fake_peripheral
- .setNextGATTConnectionResponse({code: HCI_SUCCESS})
- .then(() => device.gatt.connect())
- .then(gatt1 => {
- // No second response is necessary because an ATT Bearer
- // already exists from the first connection.
- // See https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattserver-connect
- // step 5.1.
- return device.gatt.connect().then(gatt2 => [gatt1, gatt2]);
- });
- })
- .then(([gatt1, gatt2]) => assert_equals(gatt1, gatt2));
-}, 'Multiple connects should return the same gatt object.');
+const test_desc = 'Multiple connects should return the same gatt object.';
+let device, fake_peripheral;
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(() =>
+ fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ // No second response is necessary because an ATT Bearer
+ // already exists from the first connection.
+ // See https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattserver-connect
+ // step 5.1.
+ .then(gatt1 => device.gatt.connect()
+ .then(gatt2 => [gatt1, gatt2]))
+ .then(([gatt1, gatt2]) => assert_equals(gatt1, gatt2)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html
index 89590fa147c..cfd4bc5a202 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html
@@ -6,14 +6,14 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getDiscoveredHealthThermometerDevice()
- .then(({device, fake_peripheral}) => {
- return fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS})
- .then(() => device.gatt.connect());
- })
- .then(gatt => {
- assert_equals(gatt.device, gatt.device);
- });
-}, "[SameObject] test for BluetoothRemoteGATTServer's device.");
+const test_desc = '[SameObject] test for BluetoothRemoteGATTServer\'s device.';
+let device, fake_peripheral;
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(() =>
+ fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ .then(gatt => assert_equals(gatt.device, gatt.device)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html
index 65ed1aa2b8a..e0d8439ab66 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html
@@ -12,18 +12,18 @@ let device, fake_peripheral;
// TODO(569716): Test that the disconnect signal was sent to the device.
bluetooth_test(() => getDiscoveredHealthThermometerDevice()
- .then(_ => ({device, fake_peripheral} = _))
- .then(() => fake_peripheral.setNextGATTConnectionResponse({
- code: HCI_SUCCESS,
- }))
- .then(() => device.gatt.connect()
- .then(gattServer => {
- gattServer.disconnect();
- assert_false(gattServer.connected);
- })
- .then(() => device.gatt.connect())
- .then(gattServer => {
- gattServer.disconnect();
- assert_false(gattServer.connected);
- })), test_desc);
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(() => fake_peripheral.setNextGATTConnectionResponse({
+ code: HCI_SUCCESS,
+ }))
+ .then(() => device.gatt.connect()
+ .then(gattServer => {
+ gattServer.disconnect();
+ assert_false(gattServer.connected);
+ })
+ .then(() => device.gatt.connect())
+ .then(gattServer => {
+ gattServer.disconnect();
+ assert_false(gattServer.connected);
+ })), test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html
index 030abf783f0..8b1459db192 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html
@@ -11,26 +11,26 @@ const test_desc = 'Detach frame then garbage collect. We shouldn\'t crash.';
let iframe = document.createElement('iframe');
bluetooth_test(() => setUpConnectableHealthThermometerDevice()
- // 1. Load the iframe.
- .then(() => new Promise(resolve => {
- iframe.src = '/bluetooth/resources/health-thermometer-iframe.html';
- document.body.appendChild(iframe);
- iframe.addEventListener('load', resolve);
- }))
- // 2. Connect device, detach the iframe, and run garbage collection.
- .then(() => new Promise(resolve => {
- callWithTrustedClick(() => {
- iframe.contentWindow.postMessage({
- type: 'RequestAndConnect',
- options: {filters: [{services: ['health_thermometer']}]}
- }, '*');
- });
+ // 1. Load the iframe.
+ .then(() => new Promise(resolve => {
+ iframe.src = '/bluetooth/resources/health-thermometer-iframe.html';
+ document.body.appendChild(iframe);
+ iframe.addEventListener('load', resolve);
+ }))
+ // 2. Connect device, detach the iframe, and run garbage collection.
+ .then(() => new Promise(resolve => {
+ callWithTrustedClick(() => {
+ iframe.contentWindow.postMessage({
+ type: 'RequestAndConnect',
+ options: {filters: [{services: ['health_thermometer']}]}
+ }, '*');
+ });
- window.onmessage = messageEvent => {
- assert_equals(messageEvent.data, 'Connected');
- iframe.remove();
- runGarbageCollection().then(resolve);
- }
-})), test_desc)
+ window.onmessage = messageEvent => {
+ assert_equals(messageEvent.data, 'Connected');
+ iframe.remove();
+ runGarbageCollection().then(resolve);
+ }
+ })), test_desc)
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html
index d0e830496fe..5dada7a9c99 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html
@@ -12,15 +12,15 @@ let device, fake_peripheral;
// TODO(569716): Test that the disconnect signal was sent to the device.
bluetooth_test(() => getDiscoveredHealthThermometerDevice()
- .then(_ => ({device, fake_peripheral} = _))
- .then(() => fake_peripheral.setNextGATTConnectionResponse({
- code: HCI_SUCCESS,
- }))
- .then(() => device.gatt.connect())
- .then(gattServer => {
- gattServer.disconnect();
- assert_false(gattServer.connected);
- gattServer.disconnect();
- assert_false(gattServer.connected);
-}), test_desc);
+ .then(_ => ({device, fake_peripheral} = _))
+ .then(() => fake_peripheral.setNextGATTConnectionResponse({
+ code: HCI_SUCCESS,
+ }))
+ .then(() => device.gatt.connect())
+ .then(gattServer => {
+ gattServer.disconnect();
+ assert_false(gattServer.connected);
+ gattServer.disconnect();
+ assert_false(gattServer.connected);
+ }), test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html
index d95c52d38c4..04ccedeb5e9 100644
--- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html
@@ -11,28 +11,28 @@ const test_desc = 'Garbage collect then detach frame. We shouldn\'t crash.';
let iframe = document.createElement('iframe');
bluetooth_test(() => setUpConnectableHealthThermometerDevice()
- // 1. Load the iframe.
- .then((f) => new Promise(resolve => {
- iframe.src = '/bluetooth/resources/health-thermometer-iframe.html';
- document.body.appendChild(iframe);
- iframe.addEventListener('load', resolve);
- }))
- // 2. Connect device, run garbage collection, and detach iframe.
- .then(() => new Promise(resolve => {
- callWithTrustedClick(() => {
- iframe.contentWindow.postMessage({
- type: 'RequestAndConnect',
- options: {filters: [{services: ['health_thermometer']}]}
- }, '*');
- });
-
- window.onmessage = messageEvent => {
- assert_equals(messageEvent.data, 'Connected');
- runGarbageCollection().then(() => {
- iframe.remove();
- resolve();
+ // 1. Load the iframe.
+ .then((f) => new Promise(resolve => {
+ iframe.src = '/bluetooth/resources/health-thermometer-iframe.html';
+ document.body.appendChild(iframe);
+ iframe.addEventListener('load', resolve);
+ }))
+ // 2. Connect device, run garbage collection, and detach iframe.
+ .then(() => new Promise(resolve => {
+ callWithTrustedClick(() => {
+ iframe.contentWindow.postMessage({
+ type: 'RequestAndConnect',
+ options: {filters: [{services: ['health_thermometer']}]}
+ }, '*');
});
- }
-})), test_desc)
+
+ window.onmessage = messageEvent => {
+ assert_equals(messageEvent.data, 'Connected');
+ runGarbageCollection().then(() => {
+ iframe.remove();
+ resolve();
+ });
+ }
+ })), test_desc)
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html
new file mode 100644
index 00000000000..8a7e08f139f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called before getPrimaryService. ' +
+ 'Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.disconnect())
+ .then(() => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('health_thermometer'),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html
new file mode 100644
index 00000000000..6656ff16a14
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html
@@ -0,0 +1,28 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called during a getPrimaryService ' +
+ 'call that fails. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.', 'NetworkError');
+let device;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(_ => ({device} = _))
+ .then(() => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('health_thermometer'),
+ expected)
+ device.gatt.disconnect();
+ return promise;
+ }),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html
new file mode 100644
index 00000000000..760be97ebd8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called during a getPrimaryService call that ' +
+ 'succeeds. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('health_thermometer'),
+ expected);
+ device.gatt.disconnect();
+ return promise;
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html
new file mode 100644
index 00000000000..4c3c577fcc5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html
@@ -0,0 +1,46 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls on services after we disconnect and connect again. '+
+ 'Should reject with InvalidStateError.';
+let device, services;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryService('health_thermometer'))
+ // Convert to array if necessary.
+ .then(s => services = [].concat(s))
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => {
+ let promises = Promise.resolve();
+ for (let service of services) {
+ let error = new DOMException(
+ `Service with UUID ${service.uuid} is no longer valid. Remember ` +
+ `to retrieve the service again after reconnecting.`,
+ 'InvalidStateError');
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristic('measurement_interval'),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics(),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics('measurement_interval'),
+ error));
+ }
+ return promises;
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html
new file mode 100644
index 00000000000..abfd1a9c2da
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html
@@ -0,0 +1,26 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'getPrimaryService called before connecting. Reject with ' +
+ 'NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('health_thermometer'),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html
new file mode 100644
index 00000000000..098eec4113b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html
@@ -0,0 +1,32 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service without permission. Should ' +
+ 'Reject with SecurityError even if services have been discovered already.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(glucose.alias), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(glucose.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(glucose.uuid), expected)])),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html
new file mode 100644
index 00000000000..233a45adf06
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html
@@ -0,0 +1,23 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service. Must reject with ' +
+ 'NotFoundError even when the services have previously been discovered.';
+
+bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['glucose']})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('glucose'),
+ new DOMException(
+ `No Services matching UUID ${glucose.uuid} found in Device.`,
+ 'NotFoundError'))),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html
new file mode 100644
index 00000000000..ab93d334818
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html
@@ -0,0 +1,31 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Garbage Collection ran during a getPrimaryService ' +
+ 'call that failed. Should not crash.'
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect first ' +
+ 'with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('health_thermometer'),
+ expected);
+ // Disconnect called to clear attributeInstanceMap and allow the
+ // object to get garbage collected.
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html
new file mode 100644
index 00000000000..647aa504a20
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html
@@ -0,0 +1,31 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Garbage Collection ran during a getPrimaryService call that ' +
+ 'succeeds. Should not crash.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. ' +
+ '(Re)connect first with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('health_thermometer'),
+ expected);
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html
new file mode 100644
index 00000000000..f09e4e65c27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html
@@ -0,0 +1,42 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getPrimaryService after a disconnection should return ' +
+ 'a different object.';
+let device, services_first_connection, services_second_connection;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryService('health_thermometer'))
+ .then(services => services_first_connection = services)
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => device.gatt.getPrimaryService('health_thermometer'))
+ .then(services => services_second_connection = services)
+ .then(() => {
+ // Convert to arrays if necessary.
+ services_first_connection = [].concat(services_first_connection);
+ services_second_connection = [].concat(services_second_connection);
+
+ assert_equals(services_first_connection.length,
+ services_second_connection.length);
+
+ let first_connection_set = new Set(services_first_connection);
+ let second_connection_set = new Set(services_second_connection);
+
+ // The two sets should be disjoint.
+ let common_services = services_first_connection.filter(
+ val => second_connection_set.has(val));
+ assert_equals(common_services.length, 0);
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html
new file mode 100644
index 00000000000..35893d24a60
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html
@@ -0,0 +1,40 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getPrimaryService should return the same object.';
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']})
+ .then(({device}) => Promise.all([
+ device.gatt.getPrimaryService('health_thermometer'),
+ device.gatt.getPrimaryService('health_thermometer')]))
+ .then(([services_first_call, services_second_call]) => {
+ // Convert to arrays if necessary.
+ services_first_call = [].concat(services_first_call);
+ services_second_call = [].concat(services_second_call);
+
+ assert_equals(services_first_call.length, services_second_call.length);
+
+ let first_call_set = new Set(services_first_call);
+ assert_equals(services_first_call.length, first_call_set.size);
+ let second_call_set = new Set(services_second_call);
+ assert_equals(services_second_call.length, second_call_set.size);
+
+ services_first_call.forEach(service => {
+ assert_true(second_call_set.has(service))
+ });
+
+ services_second_call.forEach(service => {
+ assert_true(first_call_set.has(service));
+ });
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html
new file mode 100644
index 00000000000..f055cb30751
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Wrong Service name. Reject with TypeError.';
+const expected = new DOMException(
+ "Failed to execute 'getPrimaryService' on " +
+ "'BluetoothRemoteGATTServer': Invalid Service name: " +
+ "'wrong_name'. It must be a valid UUID alias (e.g. 0x1234), " +
+ "UUID (lowercase hex characters e.g. " +
+ "'00001234-0000-1000-8000-00805f9b34fb'), " +
+ "or recognized standard name from " +
+ "https://www.bluetooth.com/specifications/gatt/services" +
+ " e.g. 'alert_notification'.",
+ 'TypeError');
+
+bluetooth_test(() => getHealthThermometerDevice()
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('wrong_name'),
+ expected,
+ 'Wrong Service name passed.')),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html
new file mode 100644
index 00000000000..ced2bc653c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html
@@ -0,0 +1,30 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service without permission. ' +
+ 'Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service UUID ' +
+ 'to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(glucose.alias), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(glucose.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(glucose.uuid), expected)])),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html
new file mode 100644
index 00000000000..99d5c234044
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html
@@ -0,0 +1,24 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for present service without permission to access ' +
+ 'any service. Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access any service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({acceptAllDevices: true})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('heart_rate'),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html
new file mode 100644
index 00000000000..2a578365e03
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for present service without permission. ' +
+ 'Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service UUID ' +
+ 'to \'optionalServices\' in requestDevice() options. https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(generic_access.alias), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(generic_access.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService(generic_access.uuid), expected)])),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html
new file mode 100644
index 00000000000..aca14c5fd40
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html
@@ -0,0 +1,23 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service. Reject with NotFoundError.';
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['glucose']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryService('glucose'),
+ new DOMException(
+ `No Services matching UUID ${glucose.uuid} found in Device.`,
+ 'NotFoundError'))),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html
new file mode 100644
index 00000000000..bdf55a6a0aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called before getPrimaryServices. ' +
+ 'Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.disconnect())
+ .then(() => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('health_thermometer'),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html
new file mode 100644
index 00000000000..45f13382f3c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called before getPrimaryServices. ' +
+ 'Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.disconnect())
+ .then(() => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html
new file mode 100644
index 00000000000..d7cb43725ed
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html
@@ -0,0 +1,28 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called during a getPrimaryServices ' +
+ 'call that fails. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.', 'NetworkError');
+let device;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(_ => ({device} = _))
+ .then(() => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('health_thermometer'),
+ expected)
+ device.gatt.disconnect();
+ return promise;
+ }),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html
new file mode 100644
index 00000000000..27440af9162
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html
@@ -0,0 +1,28 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called during a getPrimaryServices ' +
+ 'call that fails. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.', 'NetworkError');
+let device;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(_ => ({device} = _))
+ .then(() => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected)
+ device.gatt.disconnect();
+ return promise;
+ }),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html
new file mode 100644
index 00000000000..7b9955ade44
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called during a getPrimaryServices call that ' +
+ 'succeeds. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('health_thermometer'),
+ expected);
+ device.gatt.disconnect();
+ return promise;
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html
new file mode 100644
index 00000000000..4b09bce4eee
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'disconnect() called during a getPrimaryServices call that ' +
+ 'succeeds. Reject with NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => {
+ let promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected);
+ device.gatt.disconnect();
+ return promise;
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html
new file mode 100644
index 00000000000..2ef6b5904ac
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html
@@ -0,0 +1,46 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls on services after we disconnect and connect again. '+
+ 'Should reject with InvalidStateError.';
+let device, services;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryServices('health_thermometer'))
+ // Convert to array if necessary.
+ .then(s => services = [].concat(s))
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => {
+ let promises = Promise.resolve();
+ for (let service of services) {
+ let error = new DOMException(
+ `Service with UUID ${service.uuid} is no longer valid. Remember ` +
+ `to retrieve the service again after reconnecting.`,
+ 'InvalidStateError');
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristic('measurement_interval'),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics(),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics('measurement_interval'),
+ error));
+ }
+ return promises;
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html
new file mode 100644
index 00000000000..bc21ea1f2db
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html
@@ -0,0 +1,46 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls on services after we disconnect and connect again. '+
+ 'Should reject with InvalidStateError.';
+let device, services;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryServices())
+ // Convert to array if necessary.
+ .then(s => services = [].concat(s))
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => {
+ let promises = Promise.resolve();
+ for (let service of services) {
+ let error = new DOMException(
+ `Service with UUID ${service.uuid} is no longer valid. Remember ` +
+ `to retrieve the service again after reconnecting.`,
+ 'InvalidStateError');
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristic('measurement_interval'),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics(),
+ error));
+ promises = promises.then(() =>
+ assert_promise_rejects_with_message(
+ service.getCharacteristics('measurement_interval'),
+ error));
+ }
+ return promises;
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html
new file mode 100644
index 00000000000..0a87bce2d03
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html
@@ -0,0 +1,26 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'getPrimaryServices called before connecting. Reject with ' +
+ 'NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('health_thermometer'),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html
new file mode 100644
index 00000000000..dbc4428665c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html
@@ -0,0 +1,26 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'getPrimaryServices called before connecting. Reject with ' +
+ 'NetworkError.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' +
+ 'first with `device.gatt.connect`.',
+ 'NetworkError');
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html
new file mode 100644
index 00000000000..460b94d2565
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html
@@ -0,0 +1,32 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service without permission. Should ' +
+ 'Reject with SecurityError even if services have been discovered already.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+let device;
+
+bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(glucose.alias), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(glucose.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(glucose.uuid), expected)])),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html
new file mode 100644
index 00000000000..38e0d455b46
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html
@@ -0,0 +1,23 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service. Must reject with ' +
+ 'NotFoundError even when the services have previously been discovered.';
+
+bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['glucose']})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('glucose'),
+ new DOMException(
+ `No Services matching UUID ${glucose.uuid} found in Device.`,
+ 'NotFoundError'))),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html
new file mode 100644
index 00000000000..31ab862e82c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html
@@ -0,0 +1,31 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Garbage Collection ran during a getPrimaryServices ' +
+ 'call that failed. Should not crash.'
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect first ' +
+ 'with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('health_thermometer'),
+ expected);
+ // Disconnect called to clear attributeInstanceMap and allow the
+ // object to get garbage collected.
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html
new file mode 100644
index 00000000000..a79060adc56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html
@@ -0,0 +1,31 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Garbage Collection ran during a getPrimaryServices ' +
+ 'call that failed. Should not crash.'
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. (Re)connect first ' +
+ 'with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getEmptyHealthThermometerDevice()
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected);
+ // Disconnect called to clear attributeInstanceMap and allow the
+ // object to get garbage collected.
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html
new file mode 100644
index 00000000000..b6f0e4a3eef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html
@@ -0,0 +1,31 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Garbage Collection ran during a getPrimaryServices call that ' +
+ 'succeeds. Should not crash.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. ' +
+ '(Re)connect first with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('health_thermometer'),
+ expected);
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html
new file mode 100644
index 00000000000..baf7865b2f5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html
@@ -0,0 +1,31 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Garbage Collection ran during a getPrimaryServices call that ' +
+ 'succeeds. Should not crash.';
+const expected = new DOMException(
+ 'GATT Server is disconnected. Cannot retrieve services. ' +
+ '(Re)connect first with `device.gatt.connect`.',
+ 'NetworkError');
+let promise;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => {
+ promise = assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected);
+ device.gatt.disconnect();
+ return runGarbageCollection();
+ })
+ .then(() => promise),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html
new file mode 100644
index 00000000000..b87a24a5e0e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html
@@ -0,0 +1,42 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getPrimaryServices after a disconnection should return ' +
+ 'a different object.';
+let device, services_first_connection, services_second_connection;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryServices('health_thermometer'))
+ .then(services => services_first_connection = services)
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => device.gatt.getPrimaryServices('health_thermometer'))
+ .then(services => services_second_connection = services)
+ .then(() => {
+ // Convert to arrays if necessary.
+ services_first_connection = [].concat(services_first_connection);
+ services_second_connection = [].concat(services_second_connection);
+
+ assert_equals(services_first_connection.length,
+ services_second_connection.length);
+
+ let first_connection_set = new Set(services_first_connection);
+ let second_connection_set = new Set(services_second_connection);
+
+ // The two sets should be disjoint.
+ let common_services = services_first_connection.filter(
+ val => second_connection_set.has(val));
+ assert_equals(common_services.length, 0);
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html
new file mode 100644
index 00000000000..9ed3c50e6be
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html
@@ -0,0 +1,42 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getPrimaryServices after a disconnection should return ' +
+ 'a different object.';
+let device, services_first_connection, services_second_connection;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryServices())
+ .then(services => services_first_connection = services)
+ .then(() => device.gatt.disconnect())
+ .then(() => device.gatt.connect())
+ .then(() => device.gatt.getPrimaryServices())
+ .then(services => services_second_connection = services)
+ .then(() => {
+ // Convert to arrays if necessary.
+ services_first_connection = [].concat(services_first_connection);
+ services_second_connection = [].concat(services_second_connection);
+
+ assert_equals(services_first_connection.length,
+ services_second_connection.length);
+
+ let first_connection_set = new Set(services_first_connection);
+ let second_connection_set = new Set(services_second_connection);
+
+ // The two sets should be disjoint.
+ let common_services = services_first_connection.filter(
+ val => second_connection_set.has(val));
+ assert_equals(common_services.length, 0);
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html
new file mode 100644
index 00000000000..9d213d5dfd8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html
@@ -0,0 +1,40 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getPrimaryServices should return the same object.';
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']})
+ .then(({device}) => Promise.all([
+ device.gatt.getPrimaryServices('health_thermometer'),
+ device.gatt.getPrimaryServices('health_thermometer')]))
+ .then(([services_first_call, services_second_call]) => {
+ // Convert to arrays if necessary.
+ services_first_call = [].concat(services_first_call);
+ services_second_call = [].concat(services_second_call);
+
+ assert_equals(services_first_call.length, services_second_call.length);
+
+ let first_call_set = new Set(services_first_call);
+ assert_equals(services_first_call.length, first_call_set.size);
+ let second_call_set = new Set(services_second_call);
+ assert_equals(services_second_call.length, second_call_set.size);
+
+ services_first_call.forEach(service => {
+ assert_true(second_call_set.has(service))
+ });
+
+ services_second_call.forEach(service => {
+ assert_true(first_call_set.has(service));
+ });
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html
new file mode 100644
index 00000000000..258bda0ec68
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html
@@ -0,0 +1,40 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Calls to getPrimaryServices should return the same object.';
+let device;
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['generic_access']})
+ .then(({device}) => Promise.all([
+ device.gatt.getPrimaryServices(),
+ device.gatt.getPrimaryServices()]))
+ .then(([services_first_call, services_second_call]) => {
+ // Convert to arrays if necessary.
+ services_first_call = [].concat(services_first_call);
+ services_second_call = [].concat(services_second_call);
+
+ assert_equals(services_first_call.length, services_second_call.length);
+
+ let first_call_set = new Set(services_first_call);
+ assert_equals(services_first_call.length, first_call_set.size);
+ let second_call_set = new Set(services_second_call);
+ assert_equals(services_second_call.length, second_call_set.size);
+
+ services_first_call.forEach(service => {
+ assert_true(second_call_set.has(service))
+ });
+
+ services_second_call.forEach(service => {
+ assert_true(first_call_set.has(service));
+ });
+ }), test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html
new file mode 100644
index 00000000000..c497a0ab119
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Wrong Service name. Reject with TypeError.';
+const expected = new DOMException(
+ "Failed to execute 'getPrimaryServices' on " +
+ "'BluetoothRemoteGATTServer': Invalid Service name: " +
+ "'wrong_name'. It must be a valid UUID alias (e.g. 0x1234), " +
+ "UUID (lowercase hex characters e.g. " +
+ "'00001234-0000-1000-8000-00805f9b34fb'), " +
+ "or recognized standard name from " +
+ "https://www.bluetooth.com/specifications/gatt/services" +
+ " e.g. 'alert_notification'.",
+ 'TypeError');
+
+bluetooth_test(() => getHealthThermometerDevice()
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('wrong_name'),
+ expected,
+ 'Wrong Service name passed.')),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html
new file mode 100644
index 00000000000..0251ea02fbf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html
@@ -0,0 +1,30 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service without permission. ' +
+ 'Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service UUID ' +
+ 'to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(glucose.alias), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(glucose.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(glucose.uuid), expected)])),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html
new file mode 100644
index 00000000000..332f016ea45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html
@@ -0,0 +1,24 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for present service without permission to access ' +
+ 'any service. Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access any service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({acceptAllDevices: true})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('heart_rate'),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html
new file mode 100644
index 00000000000..34d7043caf6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html
@@ -0,0 +1,24 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for present service without permission to access ' +
+ 'any service. Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access any service. Tip: Add the service ' +
+ 'UUID to \'optionalServices\' in requestDevice() options. ' +
+ 'https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({acceptAllDevices: true})
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(),
+ expected)),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html
new file mode 100644
index 00000000000..1f3f291a129
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html
@@ -0,0 +1,29 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for present service without permission. ' +
+ 'Reject with SecurityError.';
+const expected = new DOMException(
+ 'Origin is not allowed to access the service. Tip: Add the service UUID ' +
+ 'to \'optionalServices\' in requestDevice() options. https://goo.gl/HxfxSQ',
+ 'SecurityError');
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}]
+ })
+ .then(({device}) => Promise.all([
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(generic_access.alias), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(generic_access.name), expected),
+ assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices(generic_access.uuid), expected)])),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html
new file mode 100644
index 00000000000..cb5e0941f66
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html
@@ -0,0 +1,23 @@
+<!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py -->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Request for absent service. Reject with NotFoundError.';
+
+bluetooth_test(() => getHealthThermometerDevice({
+ filters: [{services: ['health_thermometer']}],
+ optionalServices: ['glucose']
+ })
+ .then(({device}) => assert_promise_rejects_with_message(
+ device.gatt.getPrimaryServices('glucose'),
+ new DOMException(
+ `No Services matching UUID ${glucose.uuid} found in Device.`,
+ 'NotFoundError'))),
+ test_desc);
+
+</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html
index 9cf34c202f2..9746f4b058c 100644
--- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html
@@ -6,24 +6,24 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getHealthThermometerDevice()
- .then(({device}) => device.gatt.getPrimaryService('health_thermometer'))
- .then(service => {
- return Promise.all([
+const test_desc = 'Request for characteristic. Should return right ' +
+ 'characteristic.';
+let device, service;
+
+bluetooth_test(() => getHealthThermometerDevice()
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryService('health_thermometer'))
+ .then(_ => service = _)
+ .then(() => Promise.all([
service.getCharacteristic(measurement_interval.alias),
service.getCharacteristic(measurement_interval.name),
- service.getCharacteristic(measurement_interval.uuid)])
- .then(characteristics => {
- characteristics.forEach(characteristic => {
- assert_equals(
- characteristic.uuid, measurement_interval.uuid,
- 'Characteristic UUID should be the same as requested UUID.');
- assert_equals(
- characteristic.service, service,
- 'Characteristic service should be the same as service.');
- });
- });
- });
-}, 'Request for characteristic. Should return right characteristic');
+ service.getCharacteristic(measurement_interval.uuid)]))
+ .then(characteristics => characteristics.forEach(characteristic => {
+ assert_equals(
+ characteristic.uuid, measurement_interval.uuid,
+ 'Characteristic UUID should be the same as requested UUID.');
+ assert_equals(
+ characteristic.service, service,
+ 'Characteristic service should be the same as service.');
+ })), test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html
index 48c3c28e02a..5620f2c9245 100644
--- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html
@@ -6,13 +6,19 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getHIDDevice({filters: [{services: ['device_information']}]})
- .then(({device}) => device.gatt.getPrimaryService('device_information'))
+const test_desc = 'The Device Information service is composed of blocklisted ' +
+ 'characteristics so we shouldn\'t find any.';
+const expected = new DOMException('No Characteristics found in service.',
+ 'NotFoundError');
+let device;
+
+bluetooth_test(() => getHIDDevice({
+ filters: [{services: ['device_information']}]
+ })
+ .then(_ => ({device} = _))
+ .then(() => device.gatt.getPrimaryService('device_information'))
.then(service => assert_promise_rejects_with_message(
service.getCharacteristics(),
- new DOMException('No Characteristics found in service.',
- 'NotFoundError')));
-}, 'The Device Information service is composed of blocklisted ' +
- 'characteristics so we shouldn\'t find any.');
+ expected)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html
index 868476a88c9..9139ae10f89 100644
--- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html
@@ -6,43 +6,39 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getDiscoveredHealthThermometerDevice()
- .then(({device, fake_peripheral}) => {
- // Setup a device with two measurement intervals.
- return fake_peripheral.setNextGATTConnectionResponse({
- code: HCI_SUCCESS})
- .then(() => device.gatt.connect())
- .then(() => fake_peripheral.addFakeService({
- uuid: 'health_thermometer'}))
- .then(fake_health_thermometer => Promise.all([
- fake_health_thermometer.addFakeCharacteristic({
- uuid: 'measurement_interval',
- properties: ['read', 'write', 'indicate']}),
- fake_health_thermometer.addFakeCharacteristic({
- uuid: 'measurement_interval',
- properties: ['read', 'write', 'indicate']}),
- fake_health_thermometer.addFakeCharacteristic({
- uuid: 'temperature_measurement',
- properties: ['indicate']})
- ]))
- .then(() => fake_peripheral.setNextGATTDiscoveryResponse({
- code: HCI_SUCCESS}))
- .then(() => device.gatt.getPrimaryService('health_thermometer'))
- // Actual test starts.
- .then((service) => Promise.all([
- service.getCharacteristics(measurement_interval.alias),
- service.getCharacteristics(measurement_interval.name),
- service.getCharacteristics(measurement_interval.uuid)]))
- .then(characteristics_arrays => {
- characteristics_arrays.forEach(characteristics => {
- assert_equals(characteristics.length, 2);
- assert_equals(characteristics[0].uuid,
- measurement_interval.uuid);
- assert_equals(characteristics[1].uuid,
- measurement_interval.uuid);
- });
- });
- });
-}, 'Find characteristics with UUID in service.');
+const test_desc = 'Find characteristics with UUID in service.';
+let device, fake_peripheral;
+
+bluetooth_test(() => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _ ))
+ // Setup a device with two measurement intervals.
+ .then(() =>
+ fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ .then(() => fake_peripheral.addFakeService({uuid: 'health_thermometer'}))
+ .then(fake_health_thermometer => Promise.all([
+ fake_health_thermometer.addFakeCharacteristic({
+ uuid: 'measurement_interval',
+ properties: ['read', 'write', 'indicate']}),
+ fake_health_thermometer.addFakeCharacteristic({
+ uuid: 'measurement_interval',
+ properties: ['read', 'write', 'indicate']}),
+ fake_health_thermometer.addFakeCharacteristic({
+ uuid: 'temperature_measurement',
+ properties: ['indicate']})
+ ]))
+ .then(() =>
+ fake_peripheral.setNextGATTDiscoveryResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.getPrimaryService('health_thermometer'))
+ // Actual test starts.
+ .then(service => Promise.all([
+ service.getCharacteristics(measurement_interval.alias),
+ service.getCharacteristics(measurement_interval.name),
+ service.getCharacteristics(measurement_interval.uuid)]))
+ .then(characteristics_arrays => characteristics_arrays.forEach(
+ characteristics => {
+ assert_equals(characteristics.length, 2);
+ assert_equals(characteristics[0].uuid, measurement_interval.uuid);
+ assert_equals(characteristics[1].uuid, measurement_interval.uuid);
+ })), test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html
index b1b0fb4e648..952e3e6b5e9 100644
--- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html
@@ -6,44 +6,43 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getDiscoveredHealthThermometerDevice()
- .then(({device, fake_peripheral}) => {
- // Setup a device with two measurement intervals.
- return fake_peripheral.setNextGATTConnectionResponse({
- code: HCI_SUCCESS})
- .then(() => device.gatt.connect())
- .then(() => fake_peripheral.addFakeService({
- uuid: 'health_thermometer'}))
- .then(fake_health_thermometer => Promise.all([
- fake_health_thermometer.addFakeCharacteristic({
- uuid: 'measurement_interval',
- properties: ['read', 'write', 'indicate']}),
- fake_health_thermometer.addFakeCharacteristic({
- uuid: 'measurement_interval',
- properties: ['read', 'write', 'indicate']}),
- fake_health_thermometer.addFakeCharacteristic({
- uuid: 'temperature_measurement',
- properties: ['indicate']})
- ]))
- .then(() => fake_peripheral.setNextGATTDiscoveryResponse({
- code: HCI_SUCCESS}))
- .then(() => device.gatt.getPrimaryService('health_thermometer'))
- // Actual test starts.
- .then(service => service.getCharacteristics())
- .then(characteristics => {
- // Expect three characteristic instances.
- assert_equals(characteristics.length, 3);
+const test_desc = 'Find all characteristics in a service.';
+let device, fake_peripheral;
- let uuid_set = new Set(characteristics.map(c => c.uuid));
- // Two of the expected characteristics are 'measurement_interval',
- // so only 2 unique UUID.
- assert_equals(uuid_set.size, 2);
- assert_true(uuid_set.has(BluetoothUUID.getCharacteristic(
- 'measurement_interval')));
- assert_true(uuid_set.has(BluetoothUUID.getCharacteristic(
- 'temperature_measurement')));
- });
- });
-}, 'Find all characteristics in a service.');
+bluetooth_test(() => getDiscoveredHealthThermometerDevice()
+ .then(_ => ({device, fake_peripheral} = _))
+ // Setup a device with two measurement intervals.
+ .then(() =>
+ fake_peripheral.setNextGATTConnectionResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.connect())
+ .then(() => fake_peripheral.addFakeService({uuid: 'health_thermometer'}))
+ .then(fake_health_thermometer => Promise.all([
+ fake_health_thermometer.addFakeCharacteristic({
+ uuid: 'measurement_interval',
+ properties: ['read', 'write', 'indicate']}),
+ fake_health_thermometer.addFakeCharacteristic({
+ uuid: 'measurement_interval',
+ properties: ['read', 'write', 'indicate']}),
+ fake_health_thermometer.addFakeCharacteristic({
+ uuid: 'temperature_measurement',
+ properties: ['indicate']})
+ ]))
+ .then(() =>
+ fake_peripheral.setNextGATTDiscoveryResponse({code: HCI_SUCCESS}))
+ .then(() => device.gatt.getPrimaryService('health_thermometer'))
+ // Actual test starts.
+ .then(service => service.getCharacteristics())
+ .then(characteristics => {
+ // Expect three characteristic instances.
+ assert_equals(characteristics.length, 3);
+
+ let uuid_set = new Set(characteristics.map(c => c.uuid));
+ // Two of the expected characteristics are 'measurement_interval',
+ // so only 2 unique UUID.
+ assert_equals(uuid_set.size, 2);
+ assert_true(uuid_set.has(BluetoothUUID.getCharacteristic(
+ 'measurement_interval')));
+ assert_true(uuid_set.has(BluetoothUUID.getCharacteristic(
+ 'temperature_measurement')));
+ }), test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html
index f9c8efbfd74..6401740681a 100644
--- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html
+++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html
@@ -6,11 +6,15 @@
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
-bluetooth_test(() => {
- return getEmptyHealthThermometerService()
- .then(({service}) => assert_promise_rejects_with_message(
- service.getCharacteristics(),
- new DOMException('No Characteristics found in service.',
- 'NotFoundError')))
-}, 'Request for absent characteristics. Reject with NotFoundError.');
+const test_desc = 'Request for absent characteristics. Reject with ' +
+ 'NotFoundError.';
+const expected = new DOMException('No Characteristics found in service.',
+ 'NotFoundError');
+let service;
+
+bluetooth_test(() => getEmptyHealthThermometerService()
+ .then(_ => ({service} = _))
+ .then(() => assert_promise_rejects_with_message(
+ service.getCharacteristics(), expected)),
+ test_desc);
</script>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html b/tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html
new file mode 100644
index 00000000000..673174c1f03
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<meta http-equiv="Content-Security-Policy" content="form-action 'self'">
+</head>
+
+<body>
+ <form action='/content-security-policy/support/postmessage-pass-to-opener.html'
+ id='form_id'
+ target="_blank">
+ </form>
+
+ <p>
+ Test that "form-action 'self'" works correctly when the form uses
+ target="_blank". If this test passes, a new window must open after pressing
+ "submit".
+ </p>
+</body>
+
+<script>
+ async_test(t => {
+ document.addEventListener('securitypolicyviolation', function(e) {
+ t.unreached_func("Form submission was blocked.");
+ });
+
+ window.addEventListener('message', function(event) {
+ t.done();
+ })
+
+ window.addEventListener("load", function() {
+ document.getElementById("form_id").submit();
+ });
+ }, "The form submission should not be blocked by the iframe's CSP.");
+</script>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html
new file mode 100644
index 00000000000..e103a9fb246
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Security-Policy" content="prefetch-src 'self'">
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <script src='/content-security-policy/support/testharness-helper.js'></script>
+ <script src='/content-security-policy/support/prefetch-helper.js'></script>
+ <script>
+ async_test(t => {
+ let url = window.origin + '/content-security-policy/support/pass.png';
+
+ let link = document.createElement('link');
+ link.rel = 'prefetch';
+ link.href = url;
+
+ assert_link_prefetches(t, link);
+ }, 'Prefetch succeeds when allowed by prefetch-src');
+ </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html
new file mode 100644
index 00000000000..890a65f82cf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Security-Policy" content="prefetch-src 'none';">
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <script src='/content-security-policy/support/testharness-helper.js'></script>
+ <script src='/content-security-policy/support/prefetch-helper.js'></script>
+ <script>
+ async_test(t => {
+ let url = window.origin + '/content-security-policy/support/fail.png';
+
+ let link = document.createElement('link');
+ link.rel = 'prefetch';
+ link.href = url;
+
+ assert_link_does_not_prefetch(t, link);
+ }, "Blocked prefetch generates report.");
+ </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html
new file mode 100644
index 00000000000..dd8071b66ee
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <!-- Headers:
+ Content-Security-Policy: prefetch-src 'self'
+ Link: </content-security-policy/support/pass.png>;rel=prefetch
+ -->
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <script src='/content-security-policy/support/testharness-helper.js'></script>
+ <script src='/content-security-policy/support/prefetch-helper.js'></script>
+ <script>
+ async_test(t => {
+ let url = window.origin + '/content-security-policy/support/pass.png';
+ assert_no_csp_event_for_url(t, url);
+
+ waitUntilResourceDownloaded(url)
+ .then(t.step_func_done());
+ }, 'Prefetch via `Link` header succeeds when allowed by prefetch-src');
+ </script>
+</head>
+<body>
+</body>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers
new file mode 100644
index 00000000000..2b1d42a8d16
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers
@@ -0,0 +1,2 @@
+Content-Security-Policy: prefetch-src 'self'
+Link: </content-security-policy/support/pass.png>;rel=prefetch
diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html
new file mode 100644
index 00000000000..382c99a80d3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Security-Policy" content="prefetch-src 'none'">
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <script src='/content-security-policy/support/testharness-helper.js'></script>
+ <script src='/content-security-policy/support/prefetch-helper.js'></script>
+ <script>
+ async_test(t => {
+ let url = window.origin + '/content-security-policy/support/fail.png';
+ waitUntilCSPEventForURL(t, url)
+ .then(t.step_func_done(e => {
+ assert_equals(e.violatedDirective, 'prefetch-src');
+ assert_resource_not_downloaded(t, url);
+ }));
+
+ // Load a stylesheet that tries to trigger a prefetch:
+ let link = document.createElement('link');
+ link.rel = 'stylesheet';
+ link.href = '/content-security-policy/support/prefetch-subresource.css';
+ document.head.appendChild(link);
+ }, 'Prefetch via `Link` header succeeds when allowed by prefetch-src');
+ </script>
+</head>
+<body>
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js b/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js
index ba179d6bab4..7e5417b5e68 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js
+++ b/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js
@@ -13,9 +13,16 @@
var reportValue = "{{GET[reportValue]}}";
var reportExists = "{{GET[reportExists]}}";
var noCookies = "{{GET[noCookies]}}";
+ var reportCookieName = "{{GET[reportCookieName]}}"
+ var testName = "{{GET[testName]}}"
+ var cookiePresent = "{{GET[cookiePresent]}}"
+ var reportCount = "{{GET[reportCount]}}"
var location = window.location;
- var thisTestName = location.pathname.split('/')[location.pathname.split('/').length - 1].split('.')[0];
+ if (reportCookieName == "") {
+ // fallback on test file name if cookie name not specified
+ reportCookieName = location.pathname.split('/')[location.pathname.split('/').length - 1].split('.')[0];
+ }
var reportID = "";
@@ -24,7 +31,7 @@
var cookieName = cookies[i].split('=')[0].trim();
var cookieValue = cookies[i].split('=')[1].trim();
- if (cookieName == thisTestName) {
+ if (cookieName == reportCookieName) {
reportID = cookieValue;
var cookieToDelete = cookieName + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=" + document.location.pathname.substring(0, document.location.pathname.lastIndexOf('/') + 1);
document.cookie = cookieToDelete;
@@ -33,9 +40,10 @@
}
var timeout = document.querySelector("meta[name=timeout][content=long]") ? 50 : 5;
- var reportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=take&timeout=" + timeout + "&reportID=" + reportID;
+ var reportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_report&timeout=" + timeout + "&reportID=" + reportID;
- var reportTest = async_test("Violation report status OK.");
+ if (testName == "") testName = "Violation report status OK.";
+ var reportTest = async_test(testName);
function assert_field_value(field, value, field_name) {
assert_true(field.indexOf(value.split(" ")[0]) != -1,
@@ -77,17 +85,38 @@
report.send();
});
- if (noCookies) {
- var cookieTest = async_test("No cookies sent with report.");
+ if (noCookies || cookiePresent) {
+ var cookieTest = async_test("Test report cookies.");
var cookieReport = new XMLHttpRequest();
cookieReport.onload = cookieTest.step_func(function () {
- var data = JSON.parse(cookieReport.responseText);
- assert_equals(data.reportCookies, "None");
- cookieTest.done();
+ var data = JSON.parse(cookieReport.responseText);
+ if (noCookies) {
+ assert_equals(data.reportCookies, "None", "Report should not contain any cookies");
+ }
+
+ if (cookiePresent) {
+ assert_true(data.reportCookies.hasOwnProperty(cookiePresent), "Report should contain cookie: " + cookiePresent);
+ }
+ cookieTest.done();
});
- var cReportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=cookies&timeout=" + timeout + "&reportID=" + reportID;
+ var cReportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_cookies&timeout=" + timeout + "&reportID=" + reportID;
cookieReport.open("GET", cReportLocation, true);
cookieReport.send();
- };
+ }
+
+ if (reportCount != "") {
+ var reportCountTest = async_test("Test number of sent reports.");
+ var reportCountReport = new XMLHttpRequest();
+ reportCountReport.onload = reportCountTest.step_func(function () {
+ var data = JSON.parse(reportCountReport.responseText);
+
+ assert_equals(data.report_count, reportCount, "Report count was not what was expected.");
+
+ reportCountTest.done();
+ });
+ var cReportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_count&timeout=" + timeout + "&reportID=" + reportID;
+ reportCountReport.open("GET", cReportLocation, true);
+ reportCountReport.send();
+ }
})();
diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html b/tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html
new file mode 100644
index 00000000000..e1bdf7102f2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html
@@ -0,0 +1,3 @@
+<script>
+ window.top.opener.postMessage('PASS', '*');
+</script>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js
new file mode 100644
index 00000000000..db6d87593df
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js
@@ -0,0 +1,65 @@
+test(t => {
+ assert_true(document.createElement('link').relList.supports('prefetch'));
+}, "Browser supports prefetch.");
+
+test(t => {
+ assert_true(!!window.PerformanceResourceTiming);
+}, "Browser supports performance APIs.");
+
+async function waitUntilResourceDownloaded(url) {
+ await new Promise((resolve, reject) => {
+ if (performance.getEntriesByName(url).length >= 1)
+ resolve();
+
+ let observer = new PerformanceObserver(list => {
+ list.getEntries().forEach(entry => {
+ if (entry.name == url) {
+ resolve();
+ }
+ });
+ });
+ });
+}
+
+async function assert_resource_not_downloaded(test, url) {
+ if (performance.getEntriesByName(url).length >= 1) {
+ (test.unreached_func(`'${url}' should not have downloaded.`))();
+ }
+}
+
+function assert_link_prefetches(test, link) {
+ assert_no_csp_event_for_url(test, link.href);
+
+ link.onerror = test.unreached_func('onerror should not fire.');
+
+ // Test is finished when either the `load` event fires, or we get a performance
+ // entry showing that the resource loaded successfully.
+ link.onload = test.step_func(test.step_func_done());
+ waitUntilResourceDownloaded(link.href).then(test.step_func_done());
+
+ document.head.appendChild(link);
+}
+
+function assert_link_does_not_prefetch(test, link) {
+ let cspEvent = false;
+ let errorEvent = false;
+
+ waitUntilCSPEventForURL(test, link.href)
+ .then(test.step_func(e => {
+ cspEvent = true;
+ assert_equals(e.violatedDirective, "prefetch-src");
+ assert_equals(e.effectiveDirective, "prefetch-src");
+
+ if (errorEvent)
+ test.done();
+ }));
+
+ link.onerror = test.step_func(e => {
+ errorEvent = true;
+ if (cspEvent)
+ test.done();
+ });
+ link.onload = test.unreached_func('onload should not fire.');
+
+ document.head.appendChild(link);
+}
diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css
new file mode 100644
index 00000000000..4c4fa464420
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css
@@ -0,0 +1,3 @@
+/* This CSS file sends some headers:
+ * Link: </content-security-policy/support/fail.png>;rel=prefetch
+ */
diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers
new file mode 100644
index 00000000000..eaf7b166385
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers
@@ -0,0 +1 @@
+Link: </content-security-policy/support/fail.png>;rel=prefetch
diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/report.py b/tests/wpt/web-platform-tests/content-security-policy/support/report.py
index 193315fa07b..3b249f30b3e 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/support/report.py
+++ b/tests/wpt/web-platform-tests/content-security-policy/support/report.py
@@ -2,33 +2,61 @@ import time
import json
import re
+def retrieve_from_stash(request, key, timeout, default_value):
+ t0 = time.time()
+ while time.time() - t0 < timeout:
+ time.sleep(0.5)
+ value = request.server.stash.take(key=key)
+ if value is not None:
+ return value
+
+ return default_value
+
def main(request, response):
- op = request.GET.first("op");
- key = request.GET.first("reportID")
+ op = request.GET.first("op");
+ key = request.GET.first("reportID")
+ cookie_key = re.sub('^....', 'cccc', key)
+ count_key = re.sub('^....', 'dddd', key)
- if op == "take":
- timeout = float(request.GET.first("timeout"))
- t0 = time.time()
- while time.time() - t0 < timeout:
- time.sleep(0.5)
- value = request.server.stash.take(key=key)
- if value is not None:
- return [("Content-Type", "application/json")], value
+ try:
+ timeout = request.GET.first("timeout")
+ except:
+ timeout = 0.5
+ timeout = float(timeout)
- return [("Content-Type", "application/json")], json.dumps({'error': 'No such report.' , 'guid' : key})
+ if op == "retrieve_report":
+ return [("Content-Type", "application/json")], retrieve_from_stash(request, key, timeout, json.dumps({'error': 'No such report.' , 'guid' : key}))
- if op == "cookies":
- cval = request.server.stash.take(key=re.sub('^...', 'ccc', key))
- if cval is None:
- cval = "\"None\""
+ if op == "retrieve_cookies":
+ return [("Content-Type", "application/json")], "{ \"reportCookies\" : " + str(retrieve_from_stash(request, cookie_key, timeout, "\"None\"")) + "}"
- return [("Content-Type", "application/json")], "{ \"reportCookies\" : " + cval + "}"
+ if op == "retrieve_count":
+ return [("Content-Type", "application/json")], json.dumps({'report_count': str(retrieve_from_stash(request, count_key, timeout, 0))})
- if hasattr(request, 'Cookies'):
- request.server.stash.put(key=re.sub('^...', 'ccc', key), value=request.Cookies)
+ # save cookies
+ if hasattr(request, 'cookies') and len(request.cookies.keys()) > 0:
+ # convert everything into strings and dump it into a dict so it can be jsoned
+ temp_cookies_dict = {}
+ for dict_key in request.cookies.keys():
+ temp_cookies_dict[str(dict_key)] = str(request.cookies.get_list(dict_key))
+ with request.server.stash.lock:
+ request.server.stash.take(key=cookie_key)
+ request.server.stash.put(key=cookie_key, value=json.dumps(temp_cookies_dict))
- report = request.body
- report.rstrip()
+ # save latest report
+ report = request.body
+ report.rstrip()
+ with request.server.stash.lock:
request.server.stash.take(key=key)
request.server.stash.put(key=key, value=report)
- return [("Content-Type", "text/plain")], "Recorded report " + report
+
+ with request.server.stash.lock:
+ # increment report count
+ count = request.server.stash.take(key=count_key)
+ if count is None:
+ count = 0
+ count += 1
+ request.server.stash.put(key=count_key, value=count)
+
+ # return acknowledgement report
+ return [("Content-Type", "text/plain")], "Recorded report " + report
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht
index 43179e6ce7c..825ab5ab2ee 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Class selectors with only a partial match of 'class' attribute</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/no-red-filler-text-ref.xht"/>
<meta name="flags" content="" />
<meta name="assert" content="Class selector need to match any or all of the values in the 'class' attribute." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht
index 7005634602f..1aac525555f 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Class selectors with a type</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/filler-text-below-green.xht"/>
<meta name="flags" content="" />
<meta name="assert" content="Class selector with a type, match the appropriate element." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht
index 9ed65d01135..f09716610fe 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Class selectors without a type</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/filler-text-below-green.xht"/>
<meta name="flags" content="" />
<meta name="assert" content="Class selector without a type, match the appropriate element." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht
index 29b22615681..c7faefbce17 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Invalid class selectors with a space between the "." and the class name</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/no-red-filler-text-ref.xht"/>
<meta name="flags" content="invalid" />
<meta name="assert" content="The attribute value of a class selector followed by white space is invalid." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht
index ee809f3809e..a62adaee1cc 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Invalid class selectors with a carriage return between the "." and the class name</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/no-red-filler-text-ref.xht"/>
<meta name="flags" content="invalid" />
<meta name="assert" content="The attribute value of a class selector followed by white space is invalid." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht
index 2010fb8267b..c55443a9176 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Multiple class selectors</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/filler-text-below-green.xht"/>
<meta name="flags" content="" />
<meta name="assert" content="All class names in the selector need to match all of the 'class' attribute values." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht
index e336bf4c9de..c27f3f2edd5 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Multiple class selectors and missing class values</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/no-red-filler-text-ref.xht"/>
<meta name="flags" content="" />
<meta name="assert" content="All class names in the selector need to match all of the 'class' attribute values." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht
index 375a6d6ca0d..b4ceabb6a02 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/class/001.html" type="text/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
<link rel="match" href="../reference/ref-this-text-should-be-green.xht" />
<style type="text/css">
.teST { color: green; }
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-009.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-009.xht
index 29baaa748c8..cba3e082894 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-009.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-009.xht
@@ -5,13 +5,15 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/class/002.html" type="text/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
+ <link rel="match" href="../reference/ref-green-background.xht" />
<style type="text/css">
p { background: green; color: white; }
.fail.test { background: red; color: yellow; }
</style>
</head>
<body>
- <p class="pass test">This line should be green.</p>
+ <p class="pass test">This should have a green background.</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht
index 99f3ebc7bf2..e0fd5bc19a3 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht
@@ -5,13 +5,15 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/class/003.html" type="text/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
+ <link rel="match" href="../reference/ref-green-background.xht" />
<style type="text/css">
p { background: red; color: yellow; }
.pass.test { background: green; color: white; }
</style>
</head>
<body>
- <p class="pass test">This line should be green.</p>
+ <p class="pass test">This should have a green background.</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht
index 2af242bde6a..ac49276ec29 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht
@@ -5,13 +5,15 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/class/004.html" type="text/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
+ <link rel="match" href="../reference/ref-green-background.xht" />
<style type="text/css">
p { background: red; color: yellow; }
.pass { background: green; color: white; }
</style>
</head>
<body>
- <p class="pass test">This line should be green.</p>
+ <p class="pass test">This should have a green background.</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html
new file mode 100644
index 00000000000..52f9a3abcec
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ p {
+ color: white;
+ background: green;
+ }
+</style>
+<body>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+ <p>This line should be green.</p>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht
index b822f1b2e7b..ea57e2b8a51 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht
@@ -5,6 +5,8 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/class/005.html" type="text/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#class-html" />
+ <link rel="help" href="https://www.w3.org/TR/selectors/#class-html" />
+ <link rel="match" href="class-selector-012-ref.html" />
<style type="text/css">
p { background: red; color: yellow; }
.test { background: green; color: white; }
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001-ref.html
new file mode 100644
index 00000000000..8aa67fa12a6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ .green {
+ color: green;
+ }
+</style>
+<body>
+ <div class="green">Filler Text</div>
+ <div>Filler Text</div>
+ <p>Test passes if the first "Filler Text" above is green and the second one is black.</p>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht
index e8d4e6613fe..9f60cdc59e2 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-child pseudo-class</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-child" />
+ <link rel="match" href="first-child-selector-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="First-child pseudo-class matches only the first element of its type." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002-ref.html
new file mode 100644
index 00000000000..c2ee2e78bf8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ .green {
+ color: green;
+ }
+</style>
+<body>
+ Filler Text
+ <div class="green">Filler Text</div>
+ <div>Filler Text</div>
+ <p>Test passes if the second line of "Filler Text" above is green and the first and third lines are black.</p>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht
index 588d8f931c9..d2c6512daba 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-child pseudo-class with text node</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-child" />
+ <link rel="match" href="first-child-selector-002-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="First-child pseudo-class matches only the first element of its type ignoring text nodes." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-003.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-003.xht
index c779c8bd0e9..a02e002777d 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-003.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-003.xht
@@ -5,12 +5,13 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/child/001.xml" type="application/xhtml+xml"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-child" />
+ <link rel="match" href="../reference/ref-this-text-should-be-green.xht" />
<style type="text/css">
- html { color: green; }
- html:first-child { color: red ! important; }
+ html { color: red; }
+ :root:first-child { color: green; }
</style>
</head>
<body>
- <p>This should be green.</p>
+ <p>This text should be green.</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html
new file mode 100644
index 00000000000..ea97ba2a174
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ div {
+ color: green;
+ font: 2em sans-serif;
+ }
+</style>
+<body>
+ <p>This next line should be green:</p>
+ <div>TESTING</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht
index 1b2b6fff4d6..0fdef1893b9 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/first-letter/001.xml" type="application/xhtml+xml"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-000-ref.html" />
<style type="text/css">
.test { float: left; font: 2em sans-serif; }
.test:first-letter { color: green; }
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001-ref.html
new file mode 100644
index 00000000000..625c2f5c151
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ span {
+ color: green;
+ }
+</style>
+<body>
+ <p>Test passes if the letter "F" below is green.</p>
+ <div><span>F</span>iller Text</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht
index c386e3ef897..7ae5c3a05b1 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter pseudo-element</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The :first-letter pseudo-element matches the first letter in a given element." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002-ref.html
new file mode 100644
index 00000000000..39d40455a75
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<body>
+ <p>Test passes if there is no red visible on the page.</p>
+ <div><img alt="15x15 blue box" src="support/blue15x15.png" />Filler Text</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002.xht
index 3c556851715..982c64dbc2f 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-002.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter pseudo-element with image missing alt text</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-002-ref.html" />
<meta name="flags" content="image" />
<meta name="assert" content="If there is preceding content (an image) or alt text the :first-letter pseudo-element does not match the first letter." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003-ref.html
new file mode 100644
index 00000000000..a818e1a7d51
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ span {
+ color: green;
+ }
+</style>
+<body>
+ <p>Test passes if the number "4" below is green.</p>
+ <div><span>4</span>2 Filler Text</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht
index 42ea44590b4..876f2ef7711 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter as a digit</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-003-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The ':first-letter' applies if the first letter is a digit." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-004.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-004.xht
index 9ac95877594..e350c74c9c4 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-004.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-004.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter and :before</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="If an element has ':before' or ':after' content, the ':first-letter applies to the first letter of the element including that content." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005-ref.html
new file mode 100644
index 00000000000..d64537c2388
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<body>
+ <p>Test passes if there is no red visible on the page.</p>
+ <div><br />Filler Text</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005.xht
index 3d0a622fb0e..7f0c7dc936c 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-005.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter with leading line break</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-005-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The first letter occurs on the first formatted line." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007-ref.html
new file mode 100644
index 00000000000..4c2801b0aaa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ span {
+ color: green;
+ }
+</style>
+<body>
+ <p>Test passes if the letter "F" below is green.</p>
+ <table>
+ <tr>
+ <td><span>F</span>iller Text</td>
+ </tr>
+ </table>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht
index 45b7bb06101..2f19c5d58d8 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter with table cell elements</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-007-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The :first-letter pseudo-element applies to table-cells." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-008.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-008.xht
index 8380838f084..e7c9b660674 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-008.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-008.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter with inline-block elements</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The first-letter pseudo-element applies to inline-block elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-019.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-019.xht
index 228308a2d98..115d71698be 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-019.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-019.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter in descendents</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-letter" />
+ <link rel="match" href="first-letter-selector-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="A user agent acts as if the fictional start tag of the first-letter pseudo-element is just before the first text of the element, even if that first text is in a descendant." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-017.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-017.xht
index f6e9033c19d..9f43eca8066 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-017.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-017.xht
@@ -12,6 +12,6 @@
</style>
</head>
<body>
- <p><span>This sentence should have a green background.</span></p>
+ <p><span>This should have a green background.</span></p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht
index c1bb6cddd44..3c29e0383aa 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht
@@ -6,11 +6,12 @@
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/first-line/003.xml" type="application/xhtml+xml"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/first-line/003.html" type="type/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="../reference/ref-this-text-should-be-green.xht" />
<style type="text/css">
:first-line { color: green; }
</style>
</head>
<body>
- <p>This line should be green.</p>
+ <p>This text should be green.</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht
index 63acd1cc710..d0c8ddcc0f3 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht
@@ -6,11 +6,12 @@
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/first-line/004.xml" type="application/xhtml+xml"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/first-line/004.html" type="type/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="../reference/ref-this-text-should-be-green.xht" />
<style type="text/css">
*:first-line { color: green; }
</style>
</head>
<body>
- <p>This line should be green.</p>
+ <p>This text should be green.</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht
index af425a0306e..d071fc00047 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch"/>
<link rel="alternate" href="http://www.hixie.ch/tests/adhoc/css/selectors/first-line/005.html" type="type/html"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="../reference/ref-this-text-should-be-green.xht" />
<style type="text/css">
p { color: red; }
p:first-line { color: green; }
@@ -12,6 +13,6 @@
</style>
</head>
<body>
- <p><span>This line should be green.</span></p>
+ <p><span>This text should be green.</span></p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht
index b64f927593a..bbfa65201e3 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-line after a BR</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="first-letter-selector-005-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The :first-line pseudo-element start tag is inserted right after the start tag of the block element." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/id-selector-002.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/id-selector-002.xht
index 315b91639d5..8d82b3e4caa 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/id-selector-002.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/id-selector-002.xht
@@ -4,6 +4,7 @@
<title>CSS Test: ID selector syntax - Begins with hyphen</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#id-selectors" />
+ <link rel="match" href="../reference/filler-text-below-green.xht" />
<meta name="flags" content="" />
<meta name="assert" content="Identifier selectors starting with a hyphen are valid." />
<style type="text/css">
@@ -18,7 +19,7 @@
</style>
</head>
<body>
- <p>Test passes if there is no red visible on the page.</p>
+ <p>Test passes if the "Filler Text" below is green.</p>
<div id="-div1">Filler Text</div>
</body>
</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html
new file mode 100644
index 00000000000..6f57dfc3917
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<style>
+ div {
+ color: green;
+ }
+</style>
+<body>
+ <p>Test passes if the "Filler Text" below is green.</p>
+ <div>Filler Text
+ <p>Filler Text</p>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht
index 4b8ec89ddc4..d15c8eb502b 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Inherited lang attribute selected</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#lang" />
+ <link rel="match" href="lang-selector-004-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Lang attribute is inherited and lang selector works on children." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-005.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-005.xht
index f149d7e36cc..916028cc6b5 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-005.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-005.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Lang selector and document language set via server's content-language</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#lang" />
+ <link rel="match" href="../reference/filler-text-below-green.xht" />
<meta name="flags" content="http" />
<meta name="assert" content="Lang attribute is selectable when specified by HTTP header." />
<style type="text/css">
@@ -18,7 +19,6 @@
</style>
</head>
<body>
- <p id="prerequisite">PREREQUISITE: Set the page "content-language" header to "fr" (French).</p>
<p>Test passes if the "Filler Text" below is green.</p>
<div>Filler Text</div>
</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht
index 244639c544d..e647695a5a0 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Lang selector and document language set via meta tag</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#lang" />
+ <link rel="match" href="../reference/filler-text-below-green.xht" />
<meta name="flags" content="" />
<meta http-equiv="content-language" content="fr" />
<meta name="assert" content="Lang attribute is selectable when specified in a meta tag." />
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht
index be667b078e3..d0bd9f9820d 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-letter pseudo-element case sensitivity</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="first-letter-selector-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="First-letter is case-insensitive." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-007.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-007.xht
index 1daca918e05..e00770959f3 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-007.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-007.xht
@@ -4,6 +4,7 @@
<title>CSS Test: First-child pseudo-element case sensitivity</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="universal-selector-002-ref.xht" />
<meta name="flags" content="" />
<meta name="assert" content="First-child is case-insensitive." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008-ref.html
new file mode 100644
index 00000000000..8297dc3d74e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Reftest Reference</title>
+<body>
+ <p>Test passes if the words "Filler Text" are below.</p>
+ <div>Filler Text</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008.xht
index 41c009e986e..be85608cf52 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-008.xht
@@ -4,6 +4,7 @@
<title>CSS Test: After and before case sensitivity</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo" />
+ <link rel="match" href="pseudo-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="After and before are case-insensitive." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-004.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-004.xht
index 7789f4880a2..6d23331e954 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-004.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-004.xht
@@ -8,7 +8,7 @@
<meta name="flags" content="http" />
<meta name="assert" content="The HTTP charset setting overrides the referring document's code page." />
<style type="text/css">
- @import "support/at-charset-004.css";
+ @import "support/at-charset-003.css";
div
{
color: red;
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-005.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-005.xht
index ba952a6e67f..d76f64f6505 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-005.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-005.xht
@@ -9,7 +9,7 @@
<meta name="assert" content="The HTTP charset setting overrides the charset designation in the referring document's meta tag." />
<meta http-equiv="Content-Type" content="text/html; windows-1252" />
<style type="text/css">
- @import "support/at-charset-005.css";
+ @import "support/at-charset-003.css";
div
{
color: red;
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-006.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-006.xht
index beba4fc56c1..d78b378b1a9 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-006.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/at-charset-006.xht
@@ -8,7 +8,7 @@
<meta name="flags" content="http" />
<meta name="assert" content="The HTTP charset setting overrides the charset of referring document." />
<style type="text/css">
- @import "support/at-charset-006.css";
+ @import "support/at-charset-003.css";
div
{
color: red;
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/comments-005.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/comments-005.xht
index a7f22b21775..c192689a1b8 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/comments-005.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/comments-005.xht
@@ -16,7 +16,7 @@
</style>
</head>
<body>
- <p>Test passes if "Filler Text" is green.</p>
+ <p>Test passes if the "Filler Text" below is green.</p>
<div>Filler Text</div>
</body>
</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht
index 3002a970cb5..e09d9700693 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht
@@ -5,7 +5,7 @@
<link rel="author" title="L. David Baron" href="https://dbaron.org/"/>
<link rel="author" title="Ray Kiddy" href="mailto:ray@ganymede.org"/>
<link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#characters"/>
- <link rel="match" href="ident-000-ref.xht"/>
+ <link rel="match" href="ident-003-ref.xht"/>
<meta name="flags" content="invalid"/>
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-020.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-020.xht
deleted file mode 100644
index d6cb0c98ea1..00000000000
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-020.xht
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>CSS Test: Invalid Identifiers (starting with double -) as Classes and IDs</title>
- <link rel="author" title="L. David Baron" href="https://dbaron.org/"/>
- <link rel="help" href="http://www.w3.org/TR/CSS21/syndata.html#characters"/>
- <link rel="match" href="ident-000-ref.xht"/>
-
- <meta name="flags" content="invalid" />
- <style type="text/css">
-
- .one { color: green; background: white; }
- .--ident, .one { color: red; }
-
- .two { color: green; background: white; }
- #--ident, .two { color: red; }
-
- </style>
-
- </head>
- <body>
-
- <p class="one">This should be green.</p>
- <p class="two">This should be green.</p>
-
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess
deleted file mode 100644
index 7760371a4d9..00000000000
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess
+++ /dev/null
@@ -1,40 +0,0 @@
-<Files ~ "^plaintext.css$">
-ForceType text/plain
-</Files>
-
-<files character-encoding-031.css>
-AddCharset iso-8859-1 .css
-</files>
-
-<files character-encoding-032.css>
-AddCharset iso-8859-11 .css
-</files>
-
-<files character-encoding-033.css>
-AddCharset iso-8859-5 .css
-</files>
-
-<files character-encoding-034.css>
-AddCharset iso-8859-6 .css
-</files>
-
-<files character-encoding-035.css>
-AddCharset iso-8859-7 .css
-</files>
-
-<files character-encoding-036.css>
-AddCharset iso-8859-8 .css
-</files>
-
-<files character-encoding-037.css>
-AddCharset koi8-r .css
-</files>
-
-<files ~ '^at-charset-07[1234567]\.css$'>
-RemoveCharset .css
-</files>
-
-<files character-encoding-041.css>
-AddCharset utf-16be .css
-</files>
-
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers
new file mode 100644
index 00000000000..b2d94d06995
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers
@@ -0,0 +1 @@
+Content-Type: text/css; charset=Shift_JIS
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers
new file mode 100644
index 00000000000..b2d94d06995
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers
@@ -0,0 +1 @@
+Content-Type: text/css; charset=Shift_JIS
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers
new file mode 100644
index 00000000000..b2d94d06995
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers
@@ -0,0 +1 @@
+Content-Type: text/css; charset=Shift_JIS
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css
deleted file mode 100644
index a9b14d8dfb8..00000000000
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css
+++ /dev/null
@@ -1,4 +0,0 @@
-.a, #div2
-{
- color: green;
-} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css
deleted file mode 100644
index a9b14d8dfb8..00000000000
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css
+++ /dev/null
@@ -1,4 +0,0 @@
-.a, #div2
-{
- color: green;
-} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css
deleted file mode 100644
index a9b14d8dfb8..00000000000
--- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css
+++ /dev/null
@@ -1,4 +0,0 @@
-.a, #div2
-{
- color: green;
-} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers
new file mode 100644
index 00000000000..a1f9e38d909
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers
@@ -0,0 +1 @@
+Content-Type: text/plain
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html
new file mode 100644
index 00000000000..117b41c2ab2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<body>
+ <p>Test passes if the words "Filler Text" below are all on the same line.</p>
+ <div>Filler Text Filler Text Filler Text</div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht
index d228b357b10..d575df64825 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: inline' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002-ref.html
new file mode 100644
index 00000000000..e60406befe7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ .blue {
+ background: blue;
+ }
+</style>
+<body>
+ <p>Test passes if there are three lines of "Filler Text" below and the middle line has a blue background.</p>
+ <div>Filler Text</div>
+ <div class="blue">Filler Text</div>
+ <div>Filler Text</div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht
index 4e8334e5870..bc7fd55873d 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-002-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: block' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003-ref.html
new file mode 100644
index 00000000000..87bda4a9575
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ div {
+ margin-left: 2em;
+ }
+ .orange {
+ background: orange;
+ display: list-item;
+ }
+</style>
+<body>
+ <p>Test passes if there are three lines of "Filler Text" below and if the middle "Filler Text" has a orange background and a marker bullet on its left-hand side. The marker bullet should not have an orange background.</p>
+ <div>Filler Text</div>
+ <div class="orange">Filler Text</div>
+ <div>Filler Text</div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht
index 032e0c3e631..546dfd60f59 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-003-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: list-item' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-005.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-005.xht
index aa2a9af496f..8fbc0596c32 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-005.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-005.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: inline-block' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006-ref.html
new file mode 100644
index 00000000000..3426468f22d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ .box {
+ background: blue;
+ height: 1in;
+ width: 2in;
+ }
+</style>
+<body>
+ <p>Test passes if the "Filler Text" below is below the box.</p>
+ <div class="box"></div>
+ <div>Filler Text</div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht
index 28bdfdb0ccf..917f13e863a 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-006-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-007.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-007.xht
index 607dfe7eaab..939967eb6c1 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-007.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-007.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-006-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: inline-table' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008-ref.html
new file mode 100644
index 00000000000..7e2af4562f5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ .box {
+ background: blue;
+ height: 1in;
+ width: 2in;
+ }
+</style>
+<body>
+ <p>Test passes if the "Filler Text" below is above the box.</p>
+ <div>Filler Text</div>
+ <div class="box"></div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht
index d6fe5e43149..c7b3644967b 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-row-group' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-009.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-009.xht
index d45d9366607..de99f441873 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-009.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-009.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-header-group' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-010.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-010.xht
index 75afc688ba3..b37aa9470af 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-010.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-010.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-footer-group' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-011.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-011.xht
index 3db6e29a583..6f9f53bf046 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-011.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-011.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-column' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-012.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-012.xht
index a1cb7c0633c..1a65da40698 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-012.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-012.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-row' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-013.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-013.xht
index 3e4353e61a0..26360ab4e20 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-013.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-013.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-column-group' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-014.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-014.xht
index cd89de75e96..f55d8b78a51 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-014.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-014.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-008-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side does not apply to 'display: table-cell' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-015.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-015.xht
index f26658cb754..414db631448 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-015.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-015.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-006-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side applies to 'display: table-caption' elements." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017-ref.html
new file mode 100644
index 00000000000..4a19d9c9f3f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ div {
+ background: blue;
+ width: 2in;
+ }
+ .box {
+ height: 1in;
+ }
+</style>
+<body>
+ <p>Test passes if the "Filler Text" below is inside the box.</p>
+ <div>Filler Text</div>
+ <div class="box"></div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht
index 4ebbe1d2b83..20f7e76bd7d 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#caption-position" />
+ <link rel="match" href="caption-side-applies-to-017-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Caption-side applies to 'display: inherit' elements which do not inherit the value of 'table-caption'." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001-ref.html
new file mode 100644
index 00000000000..38308df01aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ div {
+ height: 120px;
+ width: 220px;
+ }
+ .orange {
+ background: orange;
+ }
+ .blue {
+ background: blue;
+ }
+</style>
+<body>
+ <p>Test passes if the orange and blue boxes below are the same width.</p>
+ <div class="orange"></div>
+ <div class="blue"></div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht
index 90e706e087a..4501b584f39 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Collapsing borders model row width equation (auto layout)</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#collapsing-borders" />
+ <link rel="match" href="collapsing-border-model-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The user agent adheres to the collapsing border model row width equation in auto table layout." />
<style type="text/css">
@@ -22,7 +23,7 @@
#div1
{
background: orange;
- height: 110px;
+ height: 120px;
width: 220px;
}
</style>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html
new file mode 100644
index 00000000000..c9c30c2a3d5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference</title>
+<style>
+ div {
+ height: 1.5in;
+ width: 100px;
+ }
+ .orange {
+ background: orange;
+ }
+ .blue {
+ background: blue;
+ width: 50px;
+ float: right;
+ }
+</style>
+<body>
+ <p>Test passes if the orange and blue boxes below are the same height.</p>
+ <div class="orange"><div class="blue"></div></div>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht
index 9a0b5f05c9d..8616e697cd1 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Top table border width under collapsing borders model</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#collapsing-borders" />
+ <link rel="match" href="collapsing-border-model-003-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The top border width of the table is half of the maximum collapsed top border width." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-004.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-004.xht
index 41e158f4a86..fa7c3c9196c 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-004.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-004.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Tables under the collapsing borders model don't have padding</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#collapsing-borders" />
+ <link rel="match" href="collapsing-border-model-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="Padding doesn't apply to a table under the collapsing border model." />
<style type="text/css">
@@ -23,7 +24,7 @@
#div1
{
background: orange;
- height: 110px;
+ height: 120px;
width: 220px;
}
</style>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht
index d48fdffb66d..6fe47429e84 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Left table border width under collapsing borders model</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#collapsing-borders" />
+ <link rel="match" href="collapsing-border-model-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The left border width of the table is half of the first cell's collapsed left border width." />
<style type="text/css">
@@ -14,21 +15,22 @@
}
col
{
- width: 1in;
+ width: 165px;
}
td, #div1
{
- height: 1in;
+ height: 120px;
}
td
{
- border-left: 1in solid blue;
+ width: 110px;
+ border-left: 110px solid blue;
padding: 0;
}
#div1
{
background: orange;
- width: 1.5in;
+ width: 220px;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht
index 65746589a26..23a4b31c14a 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Right table border width under collapsing borders model</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#collapsing-borders" />
+ <link rel="match" href="collapsing-border-model-001-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The right border width of the table is half of the collapsed right border width of the last cell of the first row." />
<style type="text/css">
@@ -14,21 +15,22 @@
}
col
{
- width: 1in;
+ width: 165px;
}
td, #div1
{
- height: 1in;
+ height: 120px;
}
td
{
- border-right: 1in solid blue;
+ width: 110px;
+ border-right: 110px solid blue;
padding: 0;
}
#div1
{
background: orange;
- width: 1.5in;
+ width: 220px;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht
index dfd35f2d6ac..6f0b864b694 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Bottom table border width under collapsing borders model</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#collapsing-borders" />
+ <link rel="match" href="collapsing-border-model-003-ref.html" />
<meta name="flags" content="" />
<meta name="assert" content="The bottom border width of the table is half of the maximum collapsed bottom border width." />
<style type="text/css">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-001.xht
index 010318e2fad..4f91f23bc7b 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Row and the 'visibility' property</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#dynamic-effects" />
+ <link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
<meta name="flags" content="" />
<meta name="assert" content="A 'visibility' value of 'collapse' applies to table rows." />
<style type="text/css">
@@ -27,13 +28,13 @@
.cell
{
display: table-cell;
- height: 1in;
- width: 1in;
+ height: 100px;
+ width: 100px;
}
</style>
</head>
<body>
- <p>Test passes if there is no red visible on the page.</p>
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="table">
<div id="row1">
<div class="cell"></div>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht
index 5242ecdfa88..5b6309c2dd6 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Row group and the 'visibility' property</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#dynamic-effects" />
+ <link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
<meta name="flags" content="" />
<meta name="assert" content="The 'visibility' value of 'collapse' applies to table row groups." />
<style type="text/css">
@@ -31,13 +32,13 @@
.cell
{
display: table-cell;
- height: 1in;
- width: 1in;
+ height: 100px;
+ width: 100px;
}
</style>
</head>
<body>
- <p>Test passes if there is no red visible on the page.</p>
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="table">
<div id="rowgroup1">
<div id="row">
diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht
index 3f095742f8a..3b64c7ac306 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Table-cell</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#table-display" />
+ <link rel="match" href="../reference/ref-filled-black-96px-square.xht" />
<meta name="flags" content="" />
<meta name="assert" content="An element with 'display: table-cell' is rendered as if it were a table cell." />
<style type="text/css">
@@ -19,13 +20,13 @@
{
background: black;
display: table-cell;
- height: 2em;
- width: 2em;
+ height: 48px;
+ width: 48px;
}
</style>
</head>
<body>
- <p>Test passes if there is a square below.</p>
+ <p>Test passes if there is a filled black square.</p>
<div class="table">
<div class="tr">
<div class="td"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html b/tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html
new file mode 100644
index 00000000000..d301f1d6a1b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<title>Reference for the content CSS attribute can replace an element's contents</title>
+
+<img src='resources/rect.svg' />
diff --git a/tests/wpt/web-platform-tests/css/css-content/element-replacement.html b/tests/wpt/web-platform-tests/css/css-content/element-replacement.html
new file mode 100644
index 00000000000..a78e9f713b2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-content/element-replacement.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>The content CSS attribute can replace an element's contents</title>
+<link rel="match" href="element-replacement-ref.html" />
+<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property" />
+<meta name="assert" content"This test checks that the CSS content propertly can replace a normal element's contents" />
+
+<style>
+p {
+ margin: 0;
+ content: url('resources/rect.svg');
+}
+</style>
+
+<p>This text should not be visible</p>
diff --git a/tests/wpt/web-platform-tests/css/css-content/resources/rect.svg b/tests/wpt/web-platform-tests/css/css-content/resources/rect.svg
new file mode 100644
index 00000000000..d5de6b4c9da
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-content/resources/rect.svg
@@ -0,0 +1,3 @@
+<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <rect x="0" y="0" width="100" height="100" fill="green" />
+</svg>
diff --git a/tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html b/tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html
new file mode 100644
index 00000000000..51bf96846c7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Display: Apply white-space property of display:contents element to inline children</title>
+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-display-3/#valdef-display-contents">
+<link rel="match" href="display-contents-text-inherit-ref.html">
+<p>The words "Two" and "lines" should not be on the same line.</p>
+<div id="div" style="background-color:red">
+ <span style="display:contents;white-space:pre-line">Two
+ lines
+ </span>
+</div>
+<script>
+ document.body.offsetTop;
+ div.style.backgroundColor = "transparent";
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html
index 4bde365dcf2..0ded6cd76cc 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html
@@ -10,17 +10,15 @@
}
.test {
font-family: fwf;
- font-size: 3em;
+ font-size: 2em;
line-height: 1.1;
}
</style>
<body>
-<!-- very minimal test, only tests hist, does not test salt or stylistic sets -->
-
-<p>Test passes if the three lines below are identical, with one cross (✗)</p>
+<p>Test passes if the three lines below are identical, with twenty crosses (✗).</p>
<section class="test">
- <p class="ref">B</p>
- <p class="ref">B</p>
- <p class="ref">B</p>
-</section> \ No newline at end of file
+ <p class="ref">BBBBBBBBBBBBBBBBBBBB</p>
+ <p class="ref">BBBBBBBBBBBBBBBBBBBB</p>
+ <p class="ref">BBBBBBBBBBBBBBBBBBBB</p>
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html
index 89cfe2ba447..0cdd2f5ac15 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html
@@ -28,10 +28,9 @@
</style>
<body>
-<p>Test passes if the three lines below are identical, with twenty crosses (✗)
-<!--, followed by one check mark (✓)-->. </p>
+<p>Test passes if the three lines below are identical, with twenty crosses (✗).</p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
- <p class="low">Xnophijklmqrstuvwxyz</p>
- <p class="ref">BBBBBBBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+ <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="low">Xnophijklmqrstuvwxyz</p>
+ <p class="ref">BBBBBBBBBBBBBBBBBBBB</p>
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html
index d27ffa25b76..a74c5206c0c 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html
@@ -10,7 +10,7 @@
}
.test {
font-family: fwf;
- font-size: 3em;
+ font-size: 2em;
line-height: 1.1;
}
</style>
@@ -18,9 +18,9 @@
<!-- very minimal test, only tests hist, does not test salt or stylistic sets -->
-<p>Test passes if the three lines below are identical, with onecheck mark (✓). </p>
+<p>Test passes if the three lines below are identical, with one check mark (✓) followed by nineteen crosses (✗). </p>
<section class="test">
- <p class="ref">A</p>
- <p class="ref">A</p>
- <p class="ref">A</p>
-</section> \ No newline at end of file
+ <p class="ref">ABBBBBBBBBBBBBBBBBBB</p>
+ <p class="ref">ABBBBBBBBBBBBBBBBBBB</p>
+ <p class="ref">ABBBBBBBBBBBBBBBBBBB</p>
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html
index b9f777ea3f0..dfc76b9396d 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html
@@ -20,7 +20,7 @@
.high {
font-variant-alternates: historical-forms;
}
- .low {
+ .low {
font-feature-settings: "hist" on, "salt" 00, "ss01" off, "ss02" off, "ss03" off,
"cv01" off, "cv02" off, "cv03" off, "swsh" 00, "cswh" 00, "ornm" 00, "nalt" 00;
}
@@ -29,7 +29,7 @@
<p>Test passes if the three lines below are identical, with one check mark (✓) followed by nineteen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">ABBBBBBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html
index 6b2eba9b838..491b732d02c 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with one cross (✗), one check mark (✓) followed by eighteen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BABBBBBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html
index 35b9940fb8c..526b616dafe 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with two crosses (✗), one check mark (✓) followed by seventeen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBABBBBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html
index 7cb557e20c0..49427186bee 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html
@@ -16,9 +16,9 @@
</style>
<body>
-<p>Test passes if the three lines below are identical, with two crosses (✗), one check mark (✓) followed by seventeen crosses (✗). </p>
+<p>Test passes if the three lines below are identical, with three crosses (✗), one check mark (✓) followed by sixteen crosses (✗). </p>
<section class="test">
<p class="ref">BBBABBBBBBBBBBBBBBBB</p>
<p class="ref">BBBABBBBBBBBBBBBBBBB</p>
<p class="ref">BBBABBBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html
index 4f900ccca53..eca5a3dc6ad 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html
@@ -35,9 +35,9 @@
</style>
<body>
-<p>Test passes if the three lines below are identical, with two crosses (✗), one check mark (✓) followed by seventeen crosses (✗). </p>
+<p>Test passes if the three lines below are identical, with three crosses (✗), one check mark (✓) followed by sixteen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBABBBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html
index fe15c21e298..bf41b92a52c 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with four crosses (✗), one check mark (✓) followed by fifteen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBABBBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html
index 70c11383589..54359c277a5 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with five crosses (✗), one check mark (✓) followed by fourteen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBABBBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html
index 3228adbd9ea..5c5545cf8ed 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with six crosses (✗), one check mark (✓) followed by thirteen crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBABBBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html
index 71fda689bc8..6c98e62a56c 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with seven crosses (✗), one check mark (✓) followed by twelve crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBABBBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html
index d4054ac8f6d..3e30504f2b8 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with eight crosses (✗), one check mark (✓) followed by eleven crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBABBBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html
index 19e38ed616e..0a8a2d72003 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with nine crosses (✗), one check mark (✓) followed by ten crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBABBBBBBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html
index a0061a408e7..458840d7564 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with ten crosses (✗), one check mark (✓), two crosses (✗), one check mark (✓) followed by six crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBABBABBBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html
index b9fdd496d6b..67b7e680a9d 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with eleven crosses (✗), one check mark (✓), two crosses (✗), one check mark (✓) followed by five crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBBABBABBBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html
index 1d57c2c3f92..0f78a5aca80 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with twelve crosses (✗), one check mark (✓), two crosses (✗), one check mark (✓) followed by four crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBBBABBABBBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html
index 95ec0fa041d..1c003a8e3cf 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with sixteen crosses (✗), one check mark (✓) followed by three crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBBBBBBBABBB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html
index 21215ddf401..176d8ff13e4 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with seventeen crosses (✗), one check mark (✓) followed by two crosses (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBBBBBBBBABB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html
index abbe8738fe5..558e2f45d04 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with eighteen crosses (✗), one check mark (✓) followed by one cross (✗). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBBBBBBBBBAB</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html
index f58ab12fd1e..109ff58d954 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html
@@ -37,7 +37,7 @@
<p>Test passes if the three lines below are identical, with nineteen crosses (✗), then one check mark (✓). </p>
<section class="test">
- <p class="high">Xnophijklmqrstuvwxyz</p>
+ <p class="high">Xnophijklmqrstuvwxyz</p>
<p class="low">Xnophijklmqrstuvwxyz</p>
<p class="ref">BBBBBBBBBBBBBBBBBBBA</p>
-</section> \ No newline at end of file
+</section>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html
index c5c2cf50cec..2dec3c769a5 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 200);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html
index f0dc1530aee..4463ebf121f 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-height", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html
index 3ae1ba13638..f9e1c873fbd 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 200);
grid.style.alignItems = "normal";
evaluateStyleChange(item, "after", "data-expected-height", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html
index 12ca38d6078..ab532206f6a 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 200);
grid.style.alignItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-height", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html
index e76a1525d59..3002c174e84 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "normal";
evaluateStyleChange(item, "after", "data-expected-height", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html
index 662260131fe..cf44e9f57b4 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 200);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html
index 300ace54588..f8aa2da3fd2 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-height", 80);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html
index e3a8b47031b..24af744b95a 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 80);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html
index 3f7d675b9ce..bb33c4a2c2c 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "normal";
evaluateStyleChange(item, "after", "data-expected-height", 80);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html
index fc284b015a7..876fdcd124d 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 80);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html
index 1367dd4d707..ff184f16174 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 200);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html
index cebc217f9b4..b9a9d9b43d3 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-height", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html
index b606c03be41..356220b336b 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 200);
grid.style.alignItems = "normal";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html
index 61d6365c7d3..3561ae3d80f 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-height", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html
index b264e36cd31..c56c1397553 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "normal";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html
index 86d5226946a..7815a05718f 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html
index 543bd0af941..c8a2ed8b2cc 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 100);
grid.style.alignItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-height", 80);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html
index 33aaa6bf29e..547e6a42984 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-height", 80);
grid.style.alignItems = "start";
evaluateStyleChange(item, "after", "data-expected-height", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html
index c98144c6e3d..53139cbe585 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 200);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 120);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html
index d2fab320763..0b6a26f11d6 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 120);
grid.style.justifyItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-width", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html
index 1a40142f49f..7b68964227f 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 200);
grid.style.alignItems = "normal";
evaluateStyleChange(item, "after", "data-expected-width", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html
index 3ea469befdd..e4f9e7c3a2d 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 200);
grid.style.justifyItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-width", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html
index e78986de53f..a1bfe9c0673 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 120);
grid.style.justifyItems = "normal";
evaluateStyleChange(item, "after", "data-expected-width", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html
index 9f6c49c16b6..6d3136e00c6 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 200);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 120);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html
index 471c2ef1148..917d1109a45 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 120);
grid.style.justifyItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-width", 80);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html
index facad8a4d28..382ef2523e2 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 80);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 120);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html
index dc9c092797b..0bdedf74dcf 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 120);
grid.style.justifyItems = "normal";
evaluateStyleChange(item, "after", "data-expected-width", 80);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html
index 870538a332f..0def10e2b6e 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 80);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 120);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html
index cb067b652c7..766db6baa37 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 200);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html
index c7033bb6b8f..3db3b8319f0 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 100);
grid.style.justifyItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-width", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html
index 55bffbe1c6c..7b0c26d644d 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 200);
grid.style.justifyItems = "normal";
evaluateStyleChange(item, "after", "data-expected-width", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html
index 006cb6a6a95..d161e19b018 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 100);
grid.style.justifyItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-width", 200);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html
index 157f43bbac9..92a74561889 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 100);
grid.style.justifyItems = "normal";
evaluateStyleChange(item, "after", "data-expected-width", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html
index 6dbd653c067..78314406fe3 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 100);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html
index fbd8e6f8773..4293670f199 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 100);
grid.style.justifyItems = "stretch";
evaluateStyleChange(item, "after", "data-expected-width", 80);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html
index 018b13c95dd..23b01906619 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html
@@ -26,12 +26,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
-<script src="../support/style-change.js"></script>
+<script src="support/style-change.js"></script>
<script>
function runTest() {
evaluateStyleChange(item, "before", "data-expected-width", 80);
grid.style.justifyItems = "start";
evaluateStyleChange(item, "after", "data-expected-width", 100);
+ done();
}
</script>
<body onload="runTest()">
diff --git a/tests/wpt/web-platform-tests/css/css-grid/support/style-change.js b/tests/wpt/web-platform-tests/css/css-grid/alignment/support/style-change.js
index 636b08a3a01..5619394da2b 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/support/style-change.js
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/support/style-change.js
@@ -1,5 +1,5 @@
function evaluateStyleChange(element, phase, expectedProperty, expectedResult) {
element.className += " " + phase;
element.setAttribute(expectedProperty, expectedResult);
- checkLayout("." + phase);
+ checkLayout("." + phase, false);
}
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html
new file mode 100644
index 00000000000..1ac795be56b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Masking Module Level 1: parsing clip with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#clip-property">
+<meta name="assert" content="clip supports only the grammar 'rect() | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("clip", "none");
+test_invalid_value("clip", "rect(10px, 20px, 30px)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html
new file mode 100644
index 00000000000..3f5940a5f87
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Masking Module Level 1: parsing clip-path with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-clip-path">
+<meta name="assert" content="clip-path supports only the grammar '<clip-source> | [ <basic-shape> || <geometry-box> ] | none'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("clip-path", "auto");
+test_invalid_value("clip-path", "ray(0deg)");
+
+test_invalid_value("clip-path", "inset()");
+test_invalid_value("clip-path", "inset(123)");
+test_invalid_value("clip-path", "inset(1% 2% 3% 4% 5%)");
+test_invalid_value("clip-path", "inset(round 0)");
+test_invalid_value("clip-path", "inset(0px round)");
+test_invalid_value("clip-path", "inset(0px round 123)");
+test_invalid_value("clip-path", "inset(0px round 1% 2% 3% 4% 5%)");
+test_invalid_value("clip-path", "inset(0px round / 1px)");
+test_invalid_value("clip-path", "inset(10px round -20px)");
+test_invalid_value("clip-path", "inset(30% round -40%)");
+
+test_invalid_value("clip-path", "circle(123)");
+test_invalid_value("clip-path", "circle(at)");
+test_invalid_value("clip-path", "circle(10% 20%)");
+test_invalid_value("clip-path", "circle(-10px at 20px 30px)");
+test_invalid_value("clip-path", "circle(-10% at 20% 30%)");
+test_invalid_value("clip-path", "circle(1% 2% at 0% 100%)");
+
+test_invalid_value("clip-path", "ellipse(farthest-side at)");
+test_invalid_value("clip-path", "ellipse(1% 2% top right)");
+test_invalid_value("clip-path", "ellipse(3% at 100% 0%)");
+test_invalid_value("clip-path", "ellipse(10% -20% at 30% 40%)");
+test_invalid_value("clip-path", "ellipse(-50px 60px at 70% 80%)");
+
+test_invalid_value("clip-path", "polygon(1%)");
+
+test_invalid_value("clip-path", "unknown-box");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html
new file mode 100644
index 00000000000..d7b2785907a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Masking Module Level 1: parsing clip-path with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-clip-path">
+<meta name="assert" content="clip-path supports the full grammar '<clip-source> | [ <basic-shape> || <geometry-box> ] | none'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("clip-path", "none");
+
+// <basic-shape>
+test_valid_value("clip-path", "inset(100%)");
+test_valid_value("clip-path", "inset(0 1px)", "inset(0px 1px)");
+test_valid_value("clip-path", "inset(0px 1px 2%)");
+test_valid_value("clip-path", "inset(0px 1px 2% 3em)");
+test_valid_value("clip-path", "inset(0px round 100%)");
+test_valid_value("clip-path", "inset(0px round 0 1px)", "inset(0px round 0px 1px)");
+test_valid_value("clip-path", "inset(0px round 0px 1px 2%)");
+test_valid_value("clip-path", "inset(0px round 0px 1px 2% 3em)");
+test_valid_value("clip-path", "inset(10px round 20% / 0px 1px 2% 3em)");
+
+test_valid_value("clip-path", "circle()", "circle(at 50% 50%)");
+test_valid_value("clip-path", "circle(1px)", "circle(1px at 50% 50%)");
+test_valid_value("clip-path", "circle(closest-side)", "circle(at 50% 50%)");
+test_valid_value("clip-path", "circle(at 10% 20%)");
+test_valid_value("clip-path", "circle(farthest-side at center top)", "circle(farthest-side at 50% 0%)");
+test_valid_value("clip-path", "circle(4% at top right)", "circle(4% at 100% 0%)");
+
+test_valid_value("clip-path", "ellipse()", "ellipse(at 50% 50%)");
+test_valid_value("clip-path", "ellipse(1px closest-side)", "ellipse(1px at 50% 50%)");
+test_valid_value("clip-path", "ellipse(at 10% 20%)");
+test_valid_value("clip-path", "ellipse(farthest-side 4% at bottom left)", "ellipse(farthest-side 4% at 0% 100%)");
+
+test_valid_value("clip-path", "polygon(1% 2%)");
+test_valid_value("clip-path", "polygon(nonzero, 1px 2px, 3em 4em)", "polygon(1px 2px, 3em 4em)");
+test_valid_value("clip-path", "polygon(evenodd, 1px 2px, 3em 4em, 5pt 6%)");
+
+// <geometry-box>
+test_valid_value("clip-path", "border-box");
+test_valid_value("clip-path", "padding-box");
+test_valid_value("clip-path", "content-box");
+test_valid_value("clip-path", "margin-box");
+test_valid_value("clip-path", "fill-box");
+test_valid_value("clip-path", "stroke-box");
+test_valid_value("clip-path", "view-box");
+
+// basic-shape> <geometry-box>
+test_valid_value("clip-path", "circle(7% at 8% 9%) border-box");
+
+// <geometry-box> basic-shape>
+test_valid_value("clip-path", "border-box circle(7% at 8% 9%)");
+
+// <clip-source>
+test_valid_value("clip-path", "url(https://example.com/)", ["url(https://example.com/)", "url(\"https://example.com/\")"]);
+test_valid_value("clip-path", "url(\"https://example.com/\")", ["url(https://example.com/)", "url(\"https://example.com/\")"]);
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html
new file mode 100644
index 00000000000..10f6aeef256
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Masking Module Level 1: parsing clip-rule with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-clip-rule">
+<meta name="assert" content="clip-rule supports only the grammar 'nonzero | evenodd'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("clip-rule", "auto");
+test_invalid_value("clip-rule", "1");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html
new file mode 100644
index 00000000000..db22680cb14
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Masking Module Level 1: parsing clip-rule with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-clip-rule">
+<meta name="assert" content="clip-rule supports the full grammar 'nonzero | evenodd'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("clip-rule", "nonzero");
+test_valid_value("clip-rule", "evenodd");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html
new file mode 100644
index 00000000000..24bb782d332
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Masking Module Level 1: parsing clip with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#clip-property">
+<meta name="assert" content="clip supports the full grammar 'rect() | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("clip", "auto");
+test_valid_value("clip", "rect(10px, 20px, -30px, 40px)", ["rect(10px, 20px, -30px, 40px)", "rect(10px 20px -30px 40px)"]);
+test_valid_value("clip", "rect(10%, -20%, auto, auto)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js b/tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js
new file mode 100644
index 00000000000..9427f53d81b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js
@@ -0,0 +1,39 @@
+'use strict';
+
+// serializedValue can be the expected serialization of value,
+// or an array of permitted serializations,
+// or omitted if value should serialize as value.
+function test_valid_value(property, value, serializedValue) {
+ if (arguments.length < 3)
+ serializedValue = value;
+
+ var stringifiedValue = JSON.stringify(value);
+
+ test(function(){
+ var div = document.createElement('div');
+ div.style[property] = value;
+ assert_not_equals(div.style[property], "", "property should be set");
+
+ var div = document.createElement('div');
+ div.style[property] = value;
+ var readValue = div.style[property];
+ if (serializedValue instanceof Array)
+ assert_true(serializedValue.includes(readValue), "serialization should be sound");
+ else
+ assert_equals(readValue, serializedValue, "serialization should be canonical");
+
+ div.style[property] = readValue;
+ assert_equals(div.style[property], readValue, "serialization should round-trip");
+
+ }, "e.style['" + property + "'] = " + stringifiedValue + " should set the property value");
+}
+
+function test_invalid_value(property, value) {
+ var stringifiedValue = JSON.stringify(value);
+
+ test(function(){
+ var div = document.createElement('div');
+ div.style[property] = value;
+ assert_equals(div.style[property], "");
+ }, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value");
+}
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht
index e373c9a60b6..495ca5d52e4 100644
--- a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht
@@ -7,6 +7,6 @@
<meta name="flags" content="" />
</head>
<body>
- <div style="font: 1.25em/1 Ahem; width:12em; height:3em; margin-left:12em; border-left:1em solid blue; border-right:1em solid blue;"></div>
+ <div style="font: 1.25em/1 Ahem; width:8em; height:3em; margin-left:9em; border-left:1em solid blue; border-right:1em solid blue;"></div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht
index 322551e185f..78fde1fbf9e 100644
--- a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht
@@ -18,7 +18,7 @@
{
column-rule: blue solid 1em;
font: 1.25em/1 Ahem;
- width: 36em;
+ width: 26em;
}
/*
@@ -26,47 +26,47 @@
N == 3;
W == max(0, (available-width - ((N - 1) * column-gap)) / N);
- W == max(0, (42em - ((3 - 1) * 3em)) / 3);
- W == max(0, (42em - (2 * 3em)) / 3);
- W == max(0, (42em - 6em) / 3);
- W == max(0, 36em / 3);
- W == max(0, 12em);
- W == 12em;
+ W == max(0, (26em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (26em - (2 * 1em)) / 3);
+ W == max(0, (26em - 2em) / 3);
+ W == max(0, 24em / 3);
+ W == max(0, 8em);
+ W == 8em;
So, the first column-rule should be at:
1.0em : margin-left of outer div
- 12.0em : width of 1st column box
- 1.0em : (3.0em / 2) - (1.0em / 2) : left edge of 1st column-rule
+ 8.0em : width of 1st column box
+ 0.0em : (1.0em / 2) - (1.0em / 2) : left edge of 1st column-rule
=========
- 14.0em
+ 9.0em
The 2nd column-rule should be at:
1.0em : margin-left of outer div
- 12.0em : width of 1st column box
- 3.0em : first column-gap
- 12.0em : width of 2nd column box
- 1.0em : (3.0em / 2) - (1.0em / 2) : left edge of 2nd column-rule
+ 8.0em : width of 1st column box
+ 1.0em : first -moz-column-gap
+ 8.0em : width of 2nd column box
+ 0.0em : (1.0em / 2) - (1.0em / 2) : left edge of 2nd column-rule
=========
- 29.0em
+ 18.0em
The height of column rule depends on number of line boxes in
each outer column box which depends on number of line boxes
in each inner column box. So:
- 12em : width of each outer column box
+ 8em : width of each outer column box
-
2em : horizontal margin of each div inside
=======
- 10em : width of each inner multi-column elements
+ 6em : width of each inner multi-column elements
N == 3;
- W == max(0, (available-width - ((N - 1) * column-gap)) / N);
- W == max(0, (10em - ((3 - 1) * 3em)) / 3);
- W == max(0, (10em - (2 * 3em)) / 3);
- W == max(0, (10em - 6em) / 3);
+ W == max(0, (available-width - ((N - 1) * -column-gap)) / N);
+ W == max(0, (6em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (6em - (2 * 1em)) / 3);
+ W == max(0, (6em - 2em) / 3);
W == max(0, 4em / 3);
W == max(0, 1.33333em);
W == 1.33333em;
@@ -90,7 +90,7 @@
widows: 1;
column-count: 3;
- column-gap: 3em;
+ column-gap: 1em;
}
]]></style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html
index 31c9f3f5f03..90c62e5421b 100644
--- a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html
@@ -1,12 +1,15 @@
<!DOCTYPE html>
-<canvas id="canvas" width="300" height="300"></canvas>
-
-<script>
- var canvas = document.getElementById("canvas");
- var ctx = canvas.getContext("2d");
- var img = new Image;
- img.src = "resources/html5.png";
- img.onload = function() {
- ctx.drawImage(img, 0, 0);
- };
-</script>
+<html>
+<style>
+div {
+ width: 300px;
+ height: 300px;
+ background-image: url("./resources/html5.png");
+ background-repeat: no-repeat;
+ background-color: green;
+}
+</style>
+<body>
+<div></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html
index 5dc7ebf8a8f..ba8943012c2 100644
--- a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html
+++ b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html
@@ -2,12 +2,12 @@
<html class="reftest-wait">
<link rel="match" href="paint2d-image-ref.html">
<style>
- #output {
- width: 300px;
- height: 300px;
- background-image: paint(image);
- border-image: url("resources/html5.png");
- }
+#output {
+ width: 300px;
+ height: 300px;
+ background-image: paint(image);
+ border-image: url("./resources/html5.png");
+}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/css-paint-tests.js"></script>
@@ -17,6 +17,8 @@
registerPaint('image', class {
static get inputProperties() { return [ 'border-image-source' ]; };
paint(ctx, geom, styleMap) {
+ ctx.fillStyle = 'green';
+ ctx.fillRect(0, 0, geom.width, geom.height);
ctx.drawImage(styleMap.get('border-image-source'), 0, 0);
}
});
diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.png b/tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.png
new file mode 100644
index 00000000000..e34419263f9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html b/tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html
new file mode 100644
index 00000000000..f194e469f05
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<title>CSS Scoping: Dynamically overriding nested slot display value</title>
+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#slots-in-shadow-tree">
+<link rel="match" href="reference/green-box.html"/>
+<style>
+ #outerHost {
+ width: 100px;
+ height: 100px;
+ background: red;
+ }
+</style>
+<p>Test passes if you see a single 100px by 100px green box below.</p>
+<div id="outerHost"> </div>
+<script>
+ let outerRoot = outerHost.attachShadow({mode:"open"});
+ outerRoot.innerHTML = '<div id="innerHost"><slot></slot></div>';
+ let innerHost = outerRoot.querySelector("#innerHost");
+ let innerRoot = innerHost.attachShadow({mode:"open"});
+ innerRoot.innerHTML = '<slot style="display:none; border:solid 50px green"></slot>';
+ document.body.offsetTop;
+ innerRoot.querySelector("slot").style.display = "block";
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js b/tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js
new file mode 100644
index 00000000000..9427f53d81b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js
@@ -0,0 +1,39 @@
+'use strict';
+
+// serializedValue can be the expected serialization of value,
+// or an array of permitted serializations,
+// or omitted if value should serialize as value.
+function test_valid_value(property, value, serializedValue) {
+ if (arguments.length < 3)
+ serializedValue = value;
+
+ var stringifiedValue = JSON.stringify(value);
+
+ test(function(){
+ var div = document.createElement('div');
+ div.style[property] = value;
+ assert_not_equals(div.style[property], "", "property should be set");
+
+ var div = document.createElement('div');
+ div.style[property] = value;
+ var readValue = div.style[property];
+ if (serializedValue instanceof Array)
+ assert_true(serializedValue.includes(readValue), "serialization should be sound");
+ else
+ assert_equals(readValue, serializedValue, "serialization should be canonical");
+
+ div.style[property] = readValue;
+ assert_equals(div.style[property], readValue, "serialization should round-trip");
+
+ }, "e.style['" + property + "'] = " + stringifiedValue + " should set the property value");
+}
+
+function test_invalid_value(property, value) {
+ var stringifiedValue = JSON.stringify(value);
+
+ test(function(){
+ var div = document.createElement('div');
+ div.style[property] = value;
+ assert_equals(div.style[property], "");
+ }, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value");
+}
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html
new file mode 100644
index 00000000000..e3871d869b4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Shapes Module Level 1: parsing shape-image-threshold with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#shape-image-threshold-property">
+<meta name="assert" content="shape-image-threshold supports only the grammar '<number>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("shape-image-threshold", "auto");
+test_invalid_value("shape-image-threshold", "10px");
+test_invalid_value("shape-image-threshold", "100%");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html
new file mode 100644
index 00000000000..5b77db8e507
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Shapes Module Level 1: parsing shape-image-threshold with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#shape-image-threshold-property">
+<meta name="assert" content="shape-image-threshold supports the full grammar '<number>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("shape-image-threshold", "12.5");
+test_valid_value("shape-image-threshold", "-7");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html
new file mode 100644
index 00000000000..4f3b4f26fb7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Shapes Module Level 1: parsing shape-margin with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#shape-margin-property">
+<meta name="assert" content="shape-margin supports only the grammar '<length> | <percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("shape-margin", "none");
+test_invalid_value("shape-margin", "10");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html
new file mode 100644
index 00000000000..68634b6b97a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Shapes Module Level 1: parsing shape-margin with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#shape-margin-property">
+<meta name="assert" content="shape-margin supports the full grammar '<length> | <percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("shape-margin", "0", "0px");
+test_valid_value("shape-margin", "10px");
+test_valid_value("shape-margin", "20em");
+test_valid_value("shape-margin", "37.5%");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html
new file mode 100644
index 00000000000..9f541cf2930
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Shapes Module Level 1: parsing shape-outside with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#shape-outside-property">
+<meta name="assert" content="shape-outside supports only the grammar 'none | [ <basic-shape> || <shape-box> ] | <image>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("shape-outside", "auto");
+test_invalid_value("shape-outside", "ray(0deg)");
+
+test_invalid_value("shape-outside", "inset()");
+test_invalid_value("shape-outside", "inset(123)");
+test_invalid_value("shape-outside", "inset(1% 2% 3% 4% 5%)");
+test_invalid_value("shape-outside", "inset(round 0)");
+test_invalid_value("shape-outside", "inset(0px round)");
+test_invalid_value("shape-outside", "inset(0px round 123)");
+test_invalid_value("shape-outside", "inset(0px round 1% 2% 3% 4% 5%)");
+test_invalid_value("shape-outside", "inset(0px round / 1px)");
+test_invalid_value("shape-outside", "inset(10px round -20px)");
+test_invalid_value("shape-outside", "inset(30% round -40%)");
+
+test_invalid_value("shape-outside", "circle(123)");
+test_invalid_value("shape-outside", "circle(at)");
+test_invalid_value("shape-outside", "circle(10% 20%)");
+test_invalid_value("shape-outside", "circle(-10px at 20px 30px)");
+test_invalid_value("shape-outside", "circle(-10% at 20% 30%)");
+test_invalid_value("shape-outside", "circle(1% 2% at 0% 100%)");
+
+test_invalid_value("shape-outside", "ellipse(farthest-side at)");
+test_invalid_value("shape-outside", "ellipse(1% 2% top right)");
+test_invalid_value("shape-outside", "ellipse(3%)");
+test_invalid_value("shape-outside", "ellipse(3% at 100% 0%)");
+test_invalid_value("shape-outside", "ellipse(10% -20% at 30% 40%)");
+test_invalid_value("shape-outside", "ellipse(-50px 60px at 70% 80%)");
+
+test_invalid_value("shape-outside", "polygon(1%)");
+
+// <geometry-box> other than <shape-box>
+test_invalid_value("shape-outside", "fill-box");
+test_invalid_value("shape-outside", "stroke-box");
+test_invalid_value("shape-outside", "view-box");
+
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html
new file mode 100644
index 00000000000..ae0e0bfe29e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Shapes Module Level 1: parsing shape-outside with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#shape-outside-property">
+<meta name="assert" content="shape-outside supports the full grammar 'none | [ <basic-shape> || <shape-box> ] | <image>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("shape-outside", "none");
+
+// <basic-shape>
+test_valid_value("shape-outside", "inset(100%)");
+test_valid_value("shape-outside", "inset(0 1px)", "inset(0px 1px)");
+test_valid_value("shape-outside", "inset(0px 1px 2%)");
+test_valid_value("shape-outside", "inset(0px 1px 2% 3em)");
+test_valid_value("shape-outside", "inset(0px round 100%)");
+test_valid_value("shape-outside", "inset(0px round 0 1px)", "inset(0px round 0px 1px)");
+test_valid_value("shape-outside", "inset(0px round 0px 1px 2%)");
+test_valid_value("shape-outside", "inset(0px round 0px 1px 2% 3em)");
+test_valid_value("shape-outside", "inset(10px round 20% / 0px 1px 2% 3em)");
+
+test_valid_value("shape-outside", "circle()", "circle(at 50% 50%)");
+test_valid_value("shape-outside", "circle(1px)", "circle(1px at 50% 50%)");
+test_valid_value("shape-outside", "circle(closest-side)", "circle(at 50% 50%)");
+test_valid_value("shape-outside", "circle(at 10% 20%)");
+test_valid_value("shape-outside", "circle(farthest-side at center top)", "circle(farthest-side at 50% 0%)");
+test_valid_value("shape-outside", "circle(4% at top right)", "circle(4% at 100% 0%)");
+
+test_valid_value("shape-outside", "ellipse()", "ellipse(at 50% 50%)");
+test_valid_value("shape-outside", "ellipse(3% 2%)", "ellipse(3% 2% at 50% 50%)");
+test_valid_value("shape-outside", "ellipse(closest-side 1px)", "ellipse(closest-side 1px at 50% 50%)");
+test_valid_value("shape-outside", "ellipse(at 10% 20%)");
+test_valid_value("shape-outside", "ellipse(farthest-side 4% at bottom left)", "ellipse(farthest-side 4% at 0% 100%)");
+
+test_valid_value("shape-outside", "polygon(1% 2%)");
+test_valid_value("shape-outside", "polygon(nonzero, 1px 2px, 3em 4em)", "polygon(1px 2px, 3em 4em)");
+test_valid_value("shape-outside", "polygon(evenodd, 1px 2px, 3em 4em, 5pt 6%)");
+
+// <shape-box>
+test_valid_value("shape-outside", "border-box");
+test_valid_value("shape-outside", "padding-box");
+test_valid_value("shape-outside", "content-box");
+test_valid_value("shape-outside", "margin-box");
+
+// basic-shape> <shape-box>
+test_valid_value("shape-outside", "circle(7% at 8% 9%) border-box");
+
+// <shape-box> basic-shape>
+test_valid_value("shape-outside", "border-box circle(7% at 8% 9%)");
+
+// <image>
+// Spec is silent about url serialization.
+// Blink, Edge, Firefox add quotes. WebKit removes quotes.
+test_valid_value("shape-outside", "url(https://example.com/)", ["url(https://example.com/)", "url(\"https://example.com/\")"]);
+test_valid_value("shape-outside", "url(\"https://example.com/\")", ["url(https://example.com/)", "url(\"https://example.com/\")"]);
+test_valid_value("shape-outside", "cross-fade(url(\"https://example.com/\"), green)");
+test_valid_value("shape-outside", "linear-gradient(yellow, blue)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.png b/tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js b/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js
new file mode 100644
index 00000000000..50b93302525
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js
@@ -0,0 +1,146 @@
+// Compares two CSSStyleValues to check if they're the same type
+// and have the same attributes.
+function assert_style_value_equals(a, b) {
+ if (a == null || b == null) {
+ assert_equals(a, b);
+ return;
+ }
+
+ assert_equals(a.constructor.name, b.constructor.name);
+ const className = a.constructor.name;
+ switch (className) {
+ case 'CSSKeywordValue':
+ assert_equals(a.value, b.value);
+ break;
+ case 'CSSUnitValue':
+ assert_approx_equals(a.value, b.value, 1e-6);
+ assert_equals(a.unit, b.unit);
+ break;
+ case 'CSSMathSum':
+ case 'CSSMathProduct':
+ case 'CSSMathMin':
+ case 'CSSMathMax':
+ assert_style_value_array_equals(a.values, b.values);
+ break;
+ case 'CSSMathInvert':
+ case 'CSSMathNegate':
+ assert_style_value_equals(a.value, b.value);
+ break;
+ case 'CSSUnparsedValue':
+ assert_style_value_array_equals(a, b);
+ break;
+ case 'CSSVariableReferenceValue':
+ assert_equals(a.variable, b.variable);
+ assert_style_value_equals(a.fallback, b.fallback);
+ break;
+ case 'CSSPositionValue':
+ assert_style_value_equals(a.x, b.x);
+ assert_style_value_equals(a.y, b.y);
+ break;
+ case 'CSSTransformValue':
+ assert_style_value_array_equals(a, b);
+ break;
+ case 'CSSRotation':
+ assert_style_value_equals(a.angle, b.angle);
+ // fallthrough
+ case 'CSSTranslation':
+ case 'CSSScale':
+ assert_style_value_equals(a.x, b.x);
+ assert_style_value_equals(a.y, b.y);
+ assert_style_value_equals(a.z, b.z);
+ assert_style_value_equals(a.is2D, b.is2D);
+ break;
+ case 'CSSSkew':
+ assert_style_value_equals(a.ax, b.ax);
+ assert_style_value_equals(a.ay, b.ay);
+ break;
+ case 'CSSPerspective':
+ assert_style_value_equals(a.length, b.length);
+ break;
+ case 'CSSMatrixComponent':
+ assert_matrix_approx_equals(a.matrix, b.matrix, 1e-6);
+ break;
+ case 'CSSURLImageValue':
+ assert_equals(a.instrinsicWidth, b.instrinsicWidth);
+ assert_equals(a.instrinsicHeight, b.instrinsicHeight);
+ assert_equals(a.instrinsicRatio, b.instrinsicRatio);
+ assert_equals(a.url, b.url);
+ break;
+ default:
+ assert_equals(a, b);
+ break;
+ }
+}
+
+// Compares two arrays of CSSStyleValues to check if every element is equal
+function assert_style_value_array_equals(a, b) {
+ assert_equals(a.length, b.length);
+ for (let i = 0; i < a.length; i++) {
+ assert_style_value_equals(a[i], b[i]);
+ }
+}
+
+const gValidUnits = [
+ 'number', 'percent', 'em', 'ex', 'ch',
+ 'ic', 'rem', 'lh', 'rlh', 'vw',
+ 'vh', 'vi', 'vb', 'vmin', 'vmax',
+ 'cm', 'mm', 'Q', 'in', 'pt',
+ 'pc', 'px', 'deg', 'grad', 'rad',
+ 'turn', 's', 'ms', 'Hz', 'kHz',
+ 'dpi', 'dpcm', 'dppx', 'fr',
+];
+
+// Creates a new div element with specified inline style |cssText|.
+// The created element is deleted during test cleanup.
+function createDivWithStyle(test, cssText) {
+ let element = document.createElement('div');
+ element.style = cssText || '';
+ document.body.appendChild(element);
+ test.add_cleanup(() => {
+ element.remove();
+ });
+ return element;
+}
+
+// Creates a new div element with inline style |cssText| and returns
+// its inline style property map.
+function createInlineStyleMap(test, cssText) {
+ return createDivWithStyle(test, cssText).attributeStyleMap;
+}
+
+// Creates a new div element with inline style |cssText| and returns
+// its computed style property map.
+function createComputedStyleMap(test, cssText) {
+ return createDivWithStyle(test, cssText).computedStyleMap();
+}
+
+// Creates a new style element with a rule |cssText| and returns
+// its declared style property map.
+function createDeclaredStyleMap(test, cssText) {
+ const style = document.createElement('style');
+ document.head.appendChild(style);
+ const rule = style.sheet.cssRules[style.sheet.insertRule('#test { ' + cssText + '}')];
+ test.add_cleanup(() => {
+ style.remove();
+ });
+ return rule.attributeStyleMap;
+}
+
+// Creates a new element with background image set to |imageValue|
+// and returns a new Image element that can be used to attach
+// event listeners regarding the image.
+function loadImageResource(test, imageValue) {
+ // Set a CSSURLImageValue on an element so it can be loaded.
+ let styleMap = createInlineStyleMap(test, '');
+ styleMap.set('background-image', imageValue);
+
+ // add a new Image element to know if the image resource has been loaded
+ let image = new Image();
+ image.src = imageValue.url;
+ return image;
+}
+
+function assert_matrix_approx_equals(actual, expected, epsilon) {
+ assert_array_approx_equals(
+ actual.toFloat64Array(), expected.toFloat64Array(), epsilon);
+}
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html
new file mode 100644
index 00000000000..d118dda4a2b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Identifier normalization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#normalize-ident">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(() => {
+ assert_style_value_equals(CSSStyleValue.parse('width', 'auto'),
+ new CSSKeywordValue('auto'));
+}, 'CSS identifiers are normalized from String to CSSKeywordValues');
+
+test(t => {
+ assert_style_value_equals(
+ createDivWithStyle(t, 'width: auto').attributeStyleMap.get('width'),
+ new CSSKeywordValue('auto'));
+}, 'CSS identifiers are normalized from CSSOM to CSSKeywordValues');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html
new file mode 100644
index 00000000000..1ba07606a2a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html
@@ -0,0 +1,49 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Numeric normalization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#normalize-numeric">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+function test_numeric_normalization(test, property, cssText, expected) {
+ assert_style_value_equals(CSSNumericValue.parse(cssText), expected);
+ assert_style_value_equals(CSSStyleValue.parse(property, cssText), expected);
+ assert_style_value_equals(
+ createInlineStyleMap(test, property + ': ' + cssText).get(property),
+ expected);
+}
+
+test(t => {
+ test_numeric_normalization(t, 'line-height', '3.14', CSS.number(3.14));
+}, 'Normalizing a <number> returns a number CSSUnitValue');
+
+test(t => {
+ test_numeric_normalization(t, 'width', '3.14%', CSS.percent(3.14));
+}, 'Normalizing a <percentage> returns a percent CSSUnitValue');
+
+test(t => {
+ test_numeric_normalization(t, 'width', '3.14px', CSS.px(3.14));
+}, 'Normalizing a <dimension> returns a CSSUnitValue with the correct unit');
+
+test(t => {
+ test_numeric_normalization(t, 'z-index', '0', CSS.number(0));
+}, 'Normalizing a <number> with a unitless zero returns 0');
+
+test(t => {
+ test_numeric_normalization(t, 'width',
+ 'calc(1px + calc(1px) + calc(1px * 2) + 1%)',
+ new CSSMathSum(CSS.px(4), CSS.percent(1)));
+}, 'Normalizing a <calc> returns simplified expression');
+
+test(t => {
+ assert_style_value_equals(CSSStyleValue.parse('width', '0px'), CSS.px(0));
+ assert_style_value_equals(
+ createInlineStyleMap(t, 'width: 0').get('width'),
+ CSS.px(0));
+}, 'Normalizing a <dimension> with a unitless zero returns 0px');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html
new file mode 100644
index 00000000000..d5082aa0b25
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSSResourceValue normalization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#resourcevalue-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gTestUrl = '../resources/1x1-green.png';
+const gBadTestUrl = document.location.href;
+
+async_test(t => {
+ const result = CSSStyleValue.parse('background-image', 'url("' + gTestUrl + '")');
+ assert_equals(result.constructor.name, 'CSSURLImageValue');
+ assert_equals(result.intrinsicWidth, null);
+ assert_equals(result.intrinsicHeight, null);
+ assert_equals(result.intrinsicRatio, null);
+ assert_equals(result.state, 'unloaded');
+
+ let image = loadImageResource(t, result);
+ image.addEventListener('load', t.step_func_done(() => {
+ assert_equals(result.url, gTestUrl);
+ assert_equals(result.state, 'loaded');
+ assert_equals(result.intrinsicWidth, 1);
+ assert_equals(result.intrinsicHeight, 1);
+ assert_equals(result.intrinsicRatio, 1);
+ }));
+}, 'Normalizing a valid <url> returns a CSSURLImageValue that eventually loads');
+
+async_test(t => {
+ const result = CSSStyleValue.parse('background-image', 'url("' + gBadTestUrl + '")');
+ assert_equals(result.constructor.name, 'CSSURLImageValue');
+
+ let image = loadImageResource(t, result);
+ image.addEventListener('error', t.step_func_done(() => {
+ assert_equals(result.url, gBadTestUrl);
+ assert_equals(result.state, 'error');
+ assert_equals(result.intrinsicWidth, null);
+ assert_equals(result.intrinsicHeight, null);
+ assert_equals(result.intrinsicRatio, null);
+ }));
+}, 'Normalizing a bad <url> returns a CSSURLImageValue in error state');
+
+test(t => {
+ const result = CSSStyleValue.parse('background-image', 'linear-gradient(red, orange)');
+ assert_equals(result.constructor.name, 'CSSImageValue');
+ assert_equals(result.state, 'loaded');
+ assert_equals(result.intrinsicWidth, null);
+ assert_equals(result.intrinsicHeight, null);
+ assert_equals(result.intrinsicRatio, null);
+}, 'Normalizing a <gradient> returns a CSSImageValue');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html
new file mode 100644
index 00000000000..33113805414
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html
@@ -0,0 +1,63 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Normalization of raw CSS tokens tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#normalize-tokens">
+<script src="//resources/testharness.js"></script>
+<script src="//resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+function assert_string_normalizes_to(test, property, str, expected) {
+ // From string
+ assert_style_value_equals(CSSStyleValue.parse(property, str), expected);
+ // From CSSOM
+ assert_style_value_equals(
+ createInlineStyleMap(test, property + ':' + str).get(property),
+ expected
+ );
+}
+
+const gTestCases = [
+ {
+ value: 'var(--A)',
+ expectedResult: [
+ new CSSVariableReferenceValue('--A'),
+ ]
+ },
+ {
+ value: 'var(--A, 1em)',
+ expectedResult: [
+ new CSSVariableReferenceValue('--A', new CSSUnparsedValue(' 1em')),
+ ]
+ },
+ {
+ value: 'var(--A, var(--B))',
+ expectedResult: [
+ new CSSVariableReferenceValue('--A', new CSSUnparsedValue(' ', new CSSVariableReferenceValue('--B'))),
+ ]
+ },
+ {
+ value: 'calc(42px + var(--foo, 15em) + var(--bar, var(--far) + 15px))',
+ expectedResult: [
+ 'calc(42px + ',
+ new CSSVariableReferenceValue('--foo', new CSSUnparsedValue(' 15em')),
+ ' + ',
+ new CSSVariableReferenceValue('--bar', new CSSUnparsedValue(' ', new CSSVariableReferenceValue('--far'), ' + 15px')),
+ ')',
+ ]
+ },
+];
+
+for (const {value, expectedResult} of gTestCases) {
+ test(t => {
+ assert_string_normalizes_to(t, 'color', value, new CSSUnparsedValue(...expectedResult));
+ }, 'Normalizing "' + value + '" on a CSS property returns correct CSSUnparsedValue');
+
+ test(t => {
+ assert_string_normalizes_to(t, '--X', value, new CSSUnparsedValue(...expectedResult));
+ }, 'Normalizing "' + value + '" on a custom property returns correct CSSUnparsedValue');
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html
new file mode 100644
index 00000000000..15f67429edb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html
@@ -0,0 +1,67 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSSPositionValue normalization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#positionvalue-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gSingleTestCases = [
+ { cssText: 'left', x: CSS.percent(0), y: CSS.percent(50) },
+ { cssText: 'right', x: CSS.percent(100), y: CSS.percent(50) },
+ { cssText: 'center', x: CSS.percent(50), y: CSS.percent(50) },
+ { cssText: 'top', x: CSS.percent(50), y: CSS.percent(0) },
+ { cssText: 'bottom', x: CSS.percent(50), y: CSS.percent(100) },
+ { cssText: '3.14px', x: CSS.px(3.14), y: CSS.percent(50) },
+ { cssText: '25%', x: CSS.percent(25), y: CSS.percent(50) },
+];
+
+const gXTestCases = [
+ { cssText: 'left', x: CSS.percent(0), type: 'ident' },
+ { cssText: 'center', x: CSS.percent(50), type: 'ident' },
+ { cssText: 'right', x: CSS.percent(100), type: 'ident' },
+ { cssText: '3.14px', x: CSS.px(3.14), type: 'length' },
+ { cssText: '10%', x: CSS.percent(10), type: 'length' },
+ { cssText: 'calc(1px + 1em)', x: new CSSMathSum(CSS.px(1), CSS.em(1)), type: 'length' },
+ { cssText: 'left 3.14px', x: CSS.px(3.14), type: 'offset' },
+ { cssText: 'right 3.14px', x: CSS.percent(100).sub(CSS.px(3.14)), type: 'offset' },
+];
+
+const gYTestCases = [
+ { cssText: 'top', y: CSS.percent(0), type: 'ident' },
+ { cssText: 'center', y: CSS.percent(50), type: 'ident' },
+ { cssText: 'bottom', y: CSS.percent(100), type: 'ident' },
+ { cssText: '3.14px', y: CSS.px(3.14), type: 'length' },
+ { cssText: '10%', y: CSS.percent(10), type: 'length' },
+ { cssText: 'calc(1px + 1em)', y: new CSSMathSum(CSS.px(1), CSS.em(1)), type: 'length' },
+ { cssText: 'top 3.14px', y: CSS.px(3.14), type: 'offset' },
+ { cssText: 'bottom 3.14px', y: CSS.percent(100).sub(CSS.px(3.14)), type: 'offset' },
+];
+
+for (const {cssText, x, y} of gSingleTestCases) {
+ test(t => {
+ const styleMap = createInlineStyleMap(t, 'object-position: ' + cssText);
+ assert_style_value_equals(styleMap.get('object-position'), new CSSPositionValue(x, y));
+ }, 'CSS <position> value "' + cssText + '" normalizes to CSSPositionValue');
+}
+
+for (const {cssText: xCssText, x, type: xType} of gXTestCases) {
+ for (const {cssText: yCssText, y, type: yType} of gYTestCases) {
+ const cssText = xCssText + ' ' + yCssText;
+
+ // Can't have things like left 10px 20px
+ if ((xType == 'offset' && yType == 'length') ||
+ (xType == 'length' && yType == 'offset'))
+ continue;
+
+ test(t => {
+ const styleMap = createInlineStyleMap(t, 'object-position: ' + cssText);
+ assert_style_value_equals(styleMap.get('object-position'), new CSSPositionValue(x, y));
+ }, 'CSS <position> value "' + cssText + '" normalizes to CSSPositionValue');
+ }
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html
new file mode 100644
index 00000000000..5725f4677d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html
@@ -0,0 +1,175 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Transform normalization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#transformvalue-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/comparisons.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+function test_transform_normalization(test, cssText, expected) {
+ assert_style_value_equals(CSSStyleValue.parse('transform', cssText), expected);
+ assert_style_value_equals(
+ createInlineStyleMap(test, 'transform: ' + cssText).get('transform'),
+ expected);
+}
+
+test(t => {
+ test_transform_normalization(t, 'matrix(1, 2, 3, 4, 5, 6)',
+ new CSSTransformValue([
+ new CSSMatrixComponent(new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6]))
+ ]));
+}, 'Normalizing a matrix() returns a CSSMatrixComponent');
+
+test(t => {
+ test_transform_normalization(t,
+ 'matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)',
+ new CSSTransformValue([
+ new CSSMatrixComponent(new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]))
+ ]));
+}, 'Normalizing a matrix3d() returns a CSSMatrixComponent');
+
+const gTestCases = [
+ {
+ cssText: 'translate(1px)',
+ expected: new CSSTranslation(CSS.px(1), CSS.px(0)),
+ desc: 'translate() with X'
+ },
+ {
+ cssText: 'translate(1%, 1px)',
+ expected: new CSSTranslation(CSS.percent(1), CSS.px(1)),
+ desc: 'translate() with X and Y'
+ },
+ {
+ cssText: 'translateX(1%)',
+ expected: new CSSTranslation(CSS.percent(1), CSS.px(0)),
+ desc: 'translateX()'
+ },
+ {
+ cssText: 'translateY(1px)',
+ expected: new CSSTranslation(CSS.px(0), CSS.px(1)),
+ desc: 'translateY()'
+ },
+ {
+ cssText: 'translate3d(1px, 2%, 3px)',
+ expected: new CSSTranslation(CSS.px(1), CSS.percent(2), CSS.px(3)),
+ desc: 'translate3d()'
+ },
+ {
+ cssText: 'translateZ(1px)',
+ expected: new CSSTranslation(CSS.px(0), CSS.px(0), CSS.px(1)),
+ desc: 'translateZ()'
+ },
+ {
+ cssText: 'scale(2)',
+ expected: new CSSScale(CSS.number(2), CSS.number(2)),
+ desc: 'scale() with one argument'
+ },
+ {
+ cssText: 'scale(2, 3)',
+ expected: new CSSScale(CSS.number(2), CSS.number(3)),
+ desc: 'scale() with two arguments'
+ },
+ {
+ cssText: 'scaleX(2)',
+ expected: new CSSScale(CSS.number(2), CSS.number(1)),
+ desc: 'scaleX()'
+ },
+ {
+ cssText: 'scaleY(2)',
+ expected: new CSSScale(CSS.number(1), CSS.number(2)),
+ desc: 'scaleY()'
+ },
+ {
+ cssText: 'scale3d(1, 2, 3)',
+ expected: new CSSScale(CSS.number(1), CSS.number(2), CSS.number(3)),
+ desc: 'scale3d()'
+ },
+ {
+ cssText: 'scaleZ(2)',
+ expected: new CSSScale(CSS.number(1), CSS.number(1), CSS.number(2)),
+ desc: 'scaleZ()'
+ },
+ {
+ cssText: 'rotate(90deg)',
+ expected: new CSSRotation(CSS.deg(90)),
+ desc: 'rotate()'
+ },
+ {
+ cssText: 'rotate3d(1, 2, 3, 90deg)',
+ expected: new CSSRotation(CSS.number(1), CSS.number(2), CSS.number(3), CSS.deg(90)),
+ desc: 'rotate3d()'
+ },
+ {
+ cssText: 'rotateX(90deg)',
+ expected: new CSSRotation(CSS.number(1), CSS.number(0), CSS.number(0), CSS.deg(90)),
+ desc: 'rotateX()'
+ },
+ {
+ cssText: 'rotateY(90deg)',
+ expected: new CSSRotation(CSS.number(0), CSS.number(1), CSS.number(0), CSS.deg(90)),
+ desc: 'rotateY()'
+ },
+ {
+ cssText: 'rotateZ(90deg)',
+ expected: new CSSRotation(CSS.number(0), CSS.number(0), CSS.number(1), CSS.deg(90)),
+ desc: 'rotateZ()'
+ },
+ {
+ cssText: 'skew(90deg)',
+ expected: new CSSSkew(CSS.deg(90), CSS.deg(0)),
+ desc: 'skew() with only X'
+ },
+ {
+ cssText: 'skew(90deg, 45deg)',
+ expected: new CSSSkew(CSS.deg(90), CSS.deg(45)),
+ desc: 'skew() with X and Y'
+ },
+ {
+ cssText: 'skewX(90deg)',
+ expected: new CSSSkew(CSS.deg(90), CSS.deg(0)),
+ desc: 'skewX()'
+ },
+ {
+ cssText: 'skewY(90deg)',
+ expected: new CSSSkew(CSS.deg(0), CSS.deg(90)),
+ desc: 'skewY()'
+ },
+ {
+ cssText: 'perspective(1px)',
+ expected: new CSSPerspective(CSS.px(1)),
+ desc: 'perspective()'
+ },
+];
+
+for (const {cssText, expected, desc} of gTestCases) {
+ test(t => {
+ test_transform_normalization(t, cssText, new CSSTransformValue([expected]));
+ }, 'Normalizing a ' + desc + ' returns a ' + expected.constructor.name);
+}
+
+test(t => {
+ test_transform_normalization(t,
+ 'translate(1px) rotateX(90deg) perspective(1px) skew(90deg) scale3d(1, 2, 3)',
+ new CSSTransformValue([
+ new CSSTranslation(CSS.px(1), CSS.px(0)),
+ new CSSRotation(CSS.number(1), CSS.number(0), CSS.number(0), CSS.deg(90)),
+ new CSSPerspective(CSS.px(1)),
+ new CSSSkew(CSS.deg(90), CSS.deg(0)),
+ new CSSScale(CSS.number(1), CSS.number(2), CSS.number(3)),
+ ]));
+}, 'Normalizing a <transform-list> returns a CSSTransformValue containing all the transforms');
+
+test(t => {
+ test_transform_normalization(t,
+ 'translate(calc(1px + 1em)) perspective(calc(1px + 1em))',
+ new CSSTransformValue([
+ new CSSTranslation(new CSSMathSum(CSS.px(1), CSS.em(1)), CSS.px(0)),
+ new CSSPerspective(new CSSMathSum(CSS.px(1), CSS.em(1))),
+ ]));
+}, 'Normalizing transforms with calc values contains CSSMathValues');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html
new file mode 100644
index 00000000000..1e2041d80dc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSKeywordValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#unparsedvalue-serialization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(() => {
+ assert_equals(new CSSKeywordValue('auto').toString(), 'auto');
+ assert_equals(new CSSKeywordValue('inherit').toString(), 'inherit');
+ assert_equals(new CSSKeywordValue('lemon').toString(), 'lemon');
+}, 'CSSKeywordValue constructed from IDL serializes correctly');
+
+test(() => {
+ assert_equals(new CSSKeywordValue(' Hello World').toString(), CSS.escape(' Hello World'));
+ assert_equals(new CSSKeywordValue('3').toString(), CSS.escape('3'));
+}, 'CSSKeywordValue constructed from IDL serializes to escaped strings');
+
+test(() => {
+ let result = CSSStyleValue.parse('width', 'auto');
+ result.value = 'lemon';
+ assert_equals(result.toString(), 'lemon');
+}, 'CSSKeywordValue from DOMString modified through "value" setter serializes correctly');
+
+test(t => {
+ let result = createInlineStyleMap(t, 'width: auto').get('width');
+ result.value = 'lemon';
+ assert_equals(result.toString(), 'lemon');
+}, 'CSSKeywordValue from CSSOM modified through "value" setter serializes correctly');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html
new file mode 100644
index 00000000000..6ce739b6943
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html
@@ -0,0 +1,81 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSMathValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#calc-serialization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<script>
+'use strict';
+
+const gTestCases = [
+ {
+ value: new CSSMathSum(CSS.px(1)),
+ cssText: 'calc(1px)',
+ desc: 'CSSMathSum with 1 argument'
+ },
+ {
+ value: new CSSMathSum(CSS.px(1), CSS.px(2)),
+ cssText: 'calc(1px + 2px)',
+ desc: 'CSSMathSum with 2 arguments'
+ },
+ {
+ value: new CSSMathSum(CSS.px(1), CSS.px(2), CSS.px(3)),
+ cssText: 'calc((1px + 2px) + 3px)',
+ desc: 'CSSMathSum with more than 2 arguments'
+ },
+ {
+ value: new CSSMathProduct(CSS.px(1)),
+ cssText: 'calc(1px)',
+ desc: 'CSSMathProduct with 1 argument'
+ },
+ {
+ value: new CSSMathProduct(CSS.px(1), 2),
+ cssText: 'calc(1px * 2)',
+ desc: 'CSSMathProduct with 2 arguments'
+ },
+ {
+ value: new CSSMathProduct(CSS.px(1), 2, 3),
+ cssText: 'calc((1px * 2) * 3)',
+ desc: 'CSSMathProduct with more than 2 arguments'
+ },
+];
+
+for (const {value, cssText, desc} of gTestCases) {
+ test(() => {
+ assert_equals(value.toString(), cssText);
+ }, desc + ' serializes correctly');
+}
+
+// TODO(crbug.com/782103): Convert these to actual tests once we have spec
+// for these. For now, let's just test that they don't crash.
+const gInvalidTestCases = [
+ {
+ value: new CSSMathProduct(CSS.px(1), CSS.s(1)),
+ desc: 'CSSMathProduct of two different base types'
+ },
+ {
+ value: new CSSMathMax(CSS.px(2), CSS.px(1)),
+ desc: 'CSSMathMax'
+ },
+ {
+ value: new CSSMathMin(CSS.px(1), CSS.px(2)),
+ desc: 'CSSMathMin'
+ },
+ {
+ value: new CSSMathNegate(CSS.px(1)),
+ desc: 'CSSMathNegate'
+ },
+ {
+ value: new CSSMathInvert(CSS.px(1)),
+ desc: 'CSSMathInvert'
+ },
+];
+
+for (const {value, desc} of gInvalidTestCases) {
+ test(() => {
+ value.toString();
+ }, 'Serializing ' + desc + ' does not crash');
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html
new file mode 100644
index 00000000000..c93b2f1a9b4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSPositionValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#positionvalue-serialization">
+<meta name="assert" content="Test CSSPositionValues are serialized by concatenating their coordinate values" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(() => {
+ assert_equals(new CSSPositionValue(CSS.px(1), CSS.percent(-3.14)).toString(), '1px -3.14%');
+}, 'CSSPositionValue with length and percent serializes by concantenating x and y');
+
+test(() => {
+ let result = CSSStyleValue.parse('object-position', '1px 1px');
+ result.x = CSS.percent(-3.14);
+ assert_equals(result.toString(), '-3.14% 1px');
+}, 'CSSPositionValue from DOMString modified by "x" setter serializes to its new value');
+
+test(() => {
+ let result = CSSStyleValue.parse('object-position', '1px 1px');
+ result.y = CSS.percent(-3.14);
+ assert_equals(result.toString(), '1px -3.14%');
+}, 'CSSPositionValue from DOMString modified by "y" setter serializes to its new value');
+
+test(t => {
+ let result = createInlineStyleMap(t, 'object-position: 1px 1px').get('object-position');
+ result.x = CSS.percent(-3.14);
+ assert_equals(result.toString(), '-3.14% 1px');
+}, 'CSSPositionValue from CSSOM modified by "x" setter serializes to its new value');
+
+test(t => {
+ let result = createInlineStyleMap(t, 'object-position: 1px 1px').get('object-position');
+ result.y = CSS.percent(-3.14);
+ assert_equals(result.toString(), '1px -3.14%');
+}, 'CSSPositionValue from CSSOM modified by "y" setter serializes to its new value');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html
new file mode 100644
index 00000000000..5f09cfdc77e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html
@@ -0,0 +1,115 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSTransformValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#positionvalue-serialization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<script>
+'use strict';
+
+const gTestCases = [
+ {
+ value: new CSSTranslation(CSS.percent(1), CSS.px(1)),
+ cssText: 'translate(1%, 1px)',
+ desc: 'CSSTranslation with 2 arguments'
+ },
+ {
+ value: new CSSTranslation(CSS.px(1), CSS.percent(2), CSS.px(3)),
+ cssText: 'translate3d(1px, 2%, 3px)',
+ desc: 'CSSTranslation with 3 arguments'
+ },
+ {
+ value: new CSSScale(CSS.number(2), CSS.number(3)),
+ cssText: 'scale(2, 3)',
+ desc: 'CSSScale with 2 arguments'
+ },
+ {
+ value: new CSSScale(CSS.number(1), CSS.number(2), CSS.number(3)),
+ cssText: 'scale3d(1, 2, 3)',
+ desc: 'CSSScale with 3 arguments'
+ },
+ {
+ value: new CSSRotation(CSS.deg(90)),
+ cssText: 'rotate(90deg)',
+ desc: 'CSSRotation with 1 argument'
+ },
+ {
+ value: new CSSRotation(CSS.number(1), CSS.number(2), CSS.number(3), CSS.deg(90)),
+ cssText: 'rotate3d(1, 2, 3, 90deg)',
+ desc: 'CSSRotation with 4 arguments'
+ },
+ {
+ value: new CSSSkew(CSS.deg(90), CSS.deg(45)),
+ cssText: 'skew(90deg, 45deg)',
+ desc: 'CSSSkew'
+ },
+ {
+ value: new CSSPerspective(CSS.px(1)),
+ cssText: 'perspective(1px)',
+ desc: 'CSSPerspective'
+ },
+ {
+ value: new CSSTransformValue([new CSSPerspective(CSS.px(1))]),
+ cssText: 'perspective(1px)',
+ desc: 'CSSTransformValue with a single transform'
+ },
+ {
+ value: new CSSTransformValue([
+ new CSSTranslation(CSS.px(1), CSS.px(0)),
+ new CSSRotation(CSS.deg(90)),
+ new CSSPerspective(CSS.px(1)),
+ new CSSSkew(CSS.deg(90), CSS.deg(45)),
+ new CSSScale(CSS.number(1), CSS.number(2), CSS.number(3)),
+ ]),
+ cssText: 'translate(1px, 0px) rotate(90deg) perspective(1px) skew(90deg, 45deg) scale3d(1, 2, 3)',
+ desc: 'CSSTransformValue with multiple transforms'
+ },
+ {
+ value: new CSSTransformValue([
+ new CSSTranslation(new CSSMathSum(CSS.px(1), CSS.em(1)), CSS.px(0)),
+ new CSSRotation(new CSSMathSum(CSS.deg(90), CSS.turn(1))),
+ new CSSPerspective(new CSSMathSum(CSS.px(1), CSS.em(1))),
+ new CSSSkew(new CSSMathProduct(CSS.deg(90), 2), new CSSMathProduct(CSS.turn(1), 2)),
+ new CSSScale(
+ new CSSMathProduct(CSS.number(1), CSS.number(2)),
+ new CSSMathSum(CSS.number(1), CSS.number(1)),
+ new CSSMathProduct(CSS.number(3))
+ ),
+ ]),
+ cssText: 'translate(calc(1px + 1em), 0px) rotate(calc(90deg + 1turn)) perspective(calc(1px + 1em)) skew(calc(90deg * 2), calc(1turn * 2)) scale3d(calc(1 * 2), calc(1 + 1), calc(3))',
+ desc: 'CSSTransformValue containing CSSMathValues'
+ },
+ {
+ value: new CSSMatrixComponent(new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6])),
+ cssText: 'matrix(1, 2, 3, 4, 5, 6)',
+ desc: 'CSSMatrixComponent with 6 elements'
+ },
+ {
+ value: new CSSMatrixComponent(new DOMMatrixReadOnly([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])),
+ cssText: 'matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)',
+ desc: 'CSSMatrixComponent with 16 elements'
+ },
+];
+
+for (const {value, cssText, desc} of gTestCases) {
+ test(() => {
+ assert_equals(value.toString(), cssText);
+ }, desc + ' serializes correctly');
+}
+
+test(() => {
+ let result = new CSSTransformValue([
+ new CSSTranslation(CSS.px(1), CSS.px(2), CSS.px(3)),
+ new CSSRotation(1, 2, 3, CSS.deg(90)),
+ new CSSScale(1, 2, 3),
+ ]);
+
+ for (const transform of result) {
+ transform.is2D = true;
+ }
+
+ assert_equals(result.toString(), 'translate(1px, 2px) rotate(90deg) scale(1, 2)');
+}, 'CSSTransformValue with updated is2D serializes as 2D transforms');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html
new file mode 100644
index 00000000000..652e0e61350
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSUnitValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#numericvalue-serialization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(() => {
+ assert_equals(new CSSUnitValue(3.14, 'px').toString(), '3.14px');
+ assert_equals(CSS.px(3.14).toString(), '3.14px');
+}, 'CSSUnitValue with length unit constructed from IDL serializes correctly');
+
+test(() => {
+ assert_equals(new CSSUnitValue(3.14, 'percent').toString(), '3.14%');
+ assert_equals(CSS.percent(3.14).toString(), '3.14%');
+}, 'CSSUnitValue with unit "percent" constructed from IDL serializes correctly');
+
+test(() => {
+ assert_equals(new CSSUnitValue(3.14, 'number').toString(), '3.14');
+ assert_equals(CSS.number(3.14).toString(), '3.14');
+}, 'CSSUnitValue with unit "number" constructed from IDL serializes correctly');
+
+test(() => {
+ assert_equals(new CSSUnitValue(3, 'number').toString(), '3');
+}, 'CSSUnitValue with integer values constructed from IDL serializes correctly');
+
+test(() => {
+ let result = CSSStyleValue.parse('width', '1px');
+ result.value = 3.14;
+ assert_equals(result.toString(), '3.14px');
+}, 'CSSKeywordValue from DOMString modified by "value" setter serializes correctly');
+
+test(() => {
+ let result = CSSStyleValue.parse('width', '1px');
+ result.unit = 's';
+ assert_equals(result.toString(), '1s');
+}, 'CSSKeywordValue from DOMString modified by "unit" setter serializes correctly');
+
+test(t => {
+ let result = createInlineStyleMap(t, 'width: 1px').get('width');
+ result.value = 3.14;
+ assert_equals(result.toString(), '3.14px');
+}, 'CSSKeywordValue from CSSOM modified by "value" setter serializes correctly');
+
+test(t => {
+ let result = createInlineStyleMap(t, 'width: 1px').get('width');
+ result.unit = 's';
+ assert_equals(result.toString(), '1s');
+}, 'CSSKeywordValue from CSSOM modified by "unit" setter serializes correctly');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html
new file mode 100644
index 00000000000..8b7a8681244
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSUnparsedValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#unparsedvalue-serialization">
+<meta name="assert" content="Test CSSUnparsedValue are serialized by concatenating its contents" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<div id="tag">
+<script>
+'use strict';
+
+test(() => {
+ assert_equals(new CSSUnparsedValue('lem', 'on', 'ade').toString(), 'lemonade');
+}, 'CSSUnparsedValue containing strings serializes to its concatenated contents');
+
+test(() => {
+ assert_equals(new CSSUnparsedValue(
+ new CSSVariableReferenceValue('--A',
+ new CSSUnparsedValue(new CSSVariableReferenceValue('--B'))),
+ new CSSVariableReferenceValue('--C')).toString(),
+ 'var(--A,var(--B))var(--C)');
+}, 'CSSUnparsedValue containing variable references serializes its ' +
+ 'concatenated contents');
+
+test(() => {
+ assert_equals(new CSSUnparsedValue('foo', 'bar ',
+ new CSSVariableReferenceValue('--A',
+ new CSSUnparsedValue('baz ',
+ new CSSVariableReferenceValue('--B'), 'lemon')),
+ new CSSVariableReferenceValue('--C',
+ new CSSUnparsedValue('ade'))).toString(),
+ 'foobar var(--A,baz var(--B)lemon)var(--C,ade)');
+}, 'CSSUnparsedValue containing mix of strings and variable references ' +
+ 'serializes to its concatenated contents');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html
new file mode 100644
index 00000000000..c97ed0d1b41
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>IDL-constructed CSSURLImageValue serialization tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#urlimagevalue-serialization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/testhelper.js"></script>
+<script>
+'use strict';
+
+test(() => {
+ assert_equals(new CSSURLImageValue('http://foo.bar').toString(), 'url("http://foo.bar")');
+}, 'CSSUrlImageValue constructed from IDL serializes correctly');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html
new file mode 100644
index 00000000000..b6b0de59e75
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSSKeywordValue Error Handling</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#csskeywordvalue">
+<meta name="assert" content="Test CSSKeywordValue constructor and attributes error handling" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(() => {
+ assert_throws(new TypeError(), () => new CSSKeywordValue(''));
+}, 'Constructing CSSKeywordValue with an empty string throws a TypeError');
+
+test(() => {
+ let result = new CSSKeywordValue('lemon');
+ assert_throws(new TypeError(), () => result.value = '');
+ assert_equals(result.value, 'lemon');
+}, 'Updating CSSKeywordValue.value with an empty string throws a TypeError');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html
new file mode 100644
index 00000000000..fe163681ee9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSSKeywordValue</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#csskeywordvalue">
+<meta name="assert" content="Test CSSKeywordValue constructor and attributes" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+const gTestArguments = [
+ { keyword: 'initial', description: 'a CSS wide keyword' },
+ { keyword: 'auto', description: 'a CSS keyword' },
+ { keyword: 'lemon', description: 'an unsupported CSS keyword' },
+ { keyword: '3! + 4@', description: 'a string containing multiple tokens' },
+ { keyword: '☺', description: 'a unicode string' },
+];
+
+for (const {keyword, description} of gTestArguments) {
+ test(() => {
+ const result = new CSSKeywordValue(keyword);
+
+ assert_not_equals(result, null,
+ 'A CSSKeywordValue should be created');
+ assert_equals(result.value, keyword,
+ 'Value attribute should be same as passed in the constructor');
+ }, 'CSSKeywordValue can be constructed from ' + description);
+
+ test(() => {
+ let result = new CSSKeywordValue('auto');
+ result.value = keyword;
+
+ assert_equals(result.value, keyword,
+ 'Value attribute should be same as passed in the setter');
+ }, 'CSSKeywordValue.value can be updated to ' + description);
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html
new file mode 100644
index 00000000000..0ea8632ce48
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>CSSPositionValue IDL</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#positionvalue-objects">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script type="text/plain" id="idl">
+[Constructor(CSSNumericValue x, CSSNumericValue y)]
+interface CSSPositionValue : CSSStyleValue {
+ attribute CSSNumericValue x;
+ attribute CSSNumericValue y;
+};
+</script>
+<script>
+'use strict';
+const idlArray = new IdlArray();
+idlArray.add_untested_idls('interface CSSStyleValue { stringifier; };');
+idlArray.add_untested_idls('interface CSSNumericValue : CSSStyleValue { };');
+idlArray.add_idls(document.getElementById('idl').textContent);
+idlArray.add_objects({
+ CSSPositionValue: ['new CSSPositionValue(new CSSUnitValue(0, "px"), new CSSUnitValue(0, "px"))']
+});
+idlArray.test();
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html
new file mode 100644
index 00000000000..d2a68e7d001
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html
@@ -0,0 +1,71 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Computed StylePropertyMap tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#computed-stylepropertymapreadonly-objects">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<style>#target { height: 10px; --foo: auto; }</style>
+<div style="width: 50px">
+ <div id="target" style="top: 5px; --bar: 5; width: 50%;"></div>
+</div>
+<script>
+'use strict';
+
+const target = document.getElementById('target');
+const styleMap = target.computedStyleMap();
+
+// FIXME(crbug.com/788904): Test currently fails because the 'content' property returns
+// incorrect initial CSS value.
+test(() => {
+ const computedStyle = [...getComputedStyle(target)].sort();
+ const properties = styleMap.getProperties();
+
+ // Two extra entries for custom properties
+ assert_equals(properties.length, computedStyle.length + 2);
+ for (let i = 0; i < computedStyle.length; i++) {
+ assert_equals(properties[i], computedStyle[i]);
+ assert_not_equals(styleMap.get(computedStyle[i]), null);
+ assert_not_equals(styleMap.getAll(computedStyle[i]).length, 0);
+ assert_true(styleMap.has(computedStyle[i]));
+ }
+}, 'Computed StylePropertyMap contains every CSS property');
+
+test(() => {
+ const result = styleMap.get('height');
+ assert_style_value_equals(result, CSS.px(10));
+}, 'Computed StylePropertyMap contains CSS property declarations in style rules');
+
+test(() => {
+ const result = styleMap.get('--foo');
+ assert_style_value_equals(result, new CSSUnparsedValue(' auto'));
+}, 'Computed StylePropertyMap contains custom property declarations in style rules');
+
+test(() => {
+ const result = styleMap.get('top');
+ assert_style_value_equals(result, CSS.px(5));
+}, 'Computed StylePropertyMap contains CSS property declarations in inline styles');
+
+test(() => {
+ const result = styleMap.get('--bar');
+ assert_style_value_equals(result, new CSSUnparsedValue(' 5'));
+}, 'Computed StylePropertyMap contains custom property declarations in inline rules');
+
+test(() => {
+ const computedStyle = getComputedStyle(target);
+ assert_equals(computedStyle.width, '25px');
+
+ const result = styleMap.get('width');
+ assert_style_value_equals(result, CSS.percent(50));
+}, 'Computed StylePropertyMap contains computed values and not resolved values');
+
+test(t => {
+ let target = createDivWithStyle(t, 'width: 10px');
+ const styleMap = target.attributeStyleMap;
+ assert_style_value_equals(styleMap.get('width'), CSS.px(10));
+
+ target.style.width = '20px';
+ assert_style_value_equals(styleMap.get('width'), CSS.px(20));
+}, 'Computed StylePropertyMap is live');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html
new file mode 100644
index 00000000000..98a519ad827
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.get tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createComputedStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.get('lemon'));
+}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--foo: auto');
+ assert_equals(styleMap.get('--Foo'), null);
+}, 'Calling StylePropertyMap.get with a custom property not in the property model returns null');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; height: 20px');
+ assert_style_value_equals(styleMap.get('width'), CSS.px(10));
+}, 'Calling StylePropertyMap.get with a valid property returns the correct entry');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'height: 20px; width: 10px;');
+ assert_style_value_equals(styleMap.get('wIdTh'), CSS.px(10));
+}, 'StylePropertyMap.get with a valid property in mixed case returns the correct entry');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--foo: auto; --bar: 10px');
+ assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
+}, 'Calling StylePropertyMap.get with a valid custom property returns the correct entry');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 10px;');
+ assert_style_value_equals(styleMap.get('transition-duration'), CSS.s(1));
+}, 'Calling StylePropertyMap.get with a list-valued property returns only the first value');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html
new file mode 100644
index 00000000000..cd8dcd0c693
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.getAll tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createComputedStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.getAll('lemon'));
+}, 'Calling StylePropertyMap.getAll with an unsupported property throws a TypeError');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--foo: auto');
+ assert_style_value_array_equals(styleMap.getAll('--Foo'), []);
+}, 'Calling StylePropertyMap.getAll with a custom property not in the property model returns an empty list');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; height: 20px');
+ assert_style_value_array_equals(styleMap.getAll('width'), [CSS.px(10)]);
+}, 'Calling StylePropertyMap.getAll with a valid property returns a single element list with the correct entry');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'height: 20px; width: 10px');
+ assert_style_value_array_equals(styleMap.getAll('wIdTh'), [CSS.px(10)]);
+}, 'StylePropertyMap.getAll is case-insensitive');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--foo: auto; --bar: 10px');
+ assert_style_value_array_equals(styleMap.getAll('--foo'), [new CSSUnparsedValue(' auto')]);
+}, 'Calling StylePropertyMap.getAll with a valid custom property returns a single element list with the correct entry');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 20px');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+}, 'Calling StylePropertyMap.getAll with a list-valued property returns all the values');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html
new file mode 100644
index 00000000000..3c63c918697
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.getProperties tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-getproperties">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--A: A; width: 0px; --C: C; transition-duration: 1s, 2s; color: red; --B: B;');
+ const expectedProperties = [...getComputedStyle(document.body)].sort().concat('--A', '--B', '--C');
+ assert_array_equals(styleMap.getProperties(), expectedProperties);
+}, 'StylePropertyMap.getProperties returns property names in correct order');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html
new file mode 100644
index 00000000000..6992689caaf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.has tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#check-if-stylepropertymap-has-a-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createComputedStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.has('lemon'));
+}, 'Calling StylePropertyMap.has with an unsupported property throws a TypeError');
+
+const gTestCases = [
+ { property: '--Foo', expected: false, desc: 'a custom property not in the property model' },
+ { property: 'width', expected: true, desc: 'a valid property' },
+ { property: 'wIdTh', expected: true, desc: 'a valid property in mixed case' },
+ { property: '--foo', expected: true, desc: 'a valid custom property' },
+ { property: 'transition-duration', expected: true, desc: 'a valid list-valued property' },
+];
+
+for (const {property, expected, desc} of gTestCases) {
+ test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; --foo: auto; transition-duration: 1s, 2s');
+ assert_equals(styleMap.has(property), expected);
+ }, 'Calling StylePropertyMap.has with ' + desc + ' returns ' + expected);
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html
new file mode 100644
index 00000000000..07d59d82995
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap iterable tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#the-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+function findInStyleMap(styleMap, property) {
+ const index = [...styleMap.keys()].indexOf(property);
+ if (index == -1)
+ return null;
+ return [...styleMap.values()][index];
+}
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--A: A; width: 10px; --C: C; transition-duration: 1s, 2s; color: red; --B: B;');
+ const expectedKeys = [...getComputedStyle(document.body)].sort().concat('--A', '--B', '--C');
+ assert_array_equals([...styleMap.keys()], expectedKeys);
+}, 'StylePropertyMap iterates properties in correct order');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 20px');
+ assert_style_value_equals(findInStyleMap(styleMap, 'width'), CSS.px(10));
+}, 'StylePropertyMap iterator returns CSS properties with the correct CSSStyleValue');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 20px');
+ assert_style_value_array_equals(findInStyleMap(styleMap, 'transition-duration'), [CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap iterator returns list-valued properties with the correct CSSStyleValue');
+
+test(t => {
+ const styleMap = createComputedStyleMap(t, '--A: A; --C: C; color: red; --B: B;');
+ assert_style_value_equals(findInStyleMap(styleMap, '--A'), new CSSUnparsedValue(' A'));
+ assert_style_value_equals(findInStyleMap(styleMap, '--B'), new CSSUnparsedValue(' B'));
+ assert_style_value_equals(findInStyleMap(styleMap, '--C'), new CSSUnparsedValue(' C'));
+}, 'StylePropertyMap iterator returns custom properties with the correct CSSStyleValue');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html
new file mode 100644
index 00000000000..ce18b80faaf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.append tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#append-to-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gInvalidTestCases = [
+ { property: 'lemon', values: ['ade'], desc: 'an unsupported property name' },
+ { property: null, values: ['foo'], desc: 'an null property name' },
+ { property: 'width', values: ['10px'], desc: 'a property that is not list valued' },
+ { property: 'transition-duration', values: [CSS.px(10)], desc: 'an invalid CSSStyleValue' },
+ { property: 'transition-duration', values: ['10px'], desc: 'an invalid String value' },
+ { property: 'transition-duration', values: [CSS.s(1), '10px', CSS.px(10)], desc: 'a mix of valid and invalid values' },
+];
+
+for (const {property, values, desc} of gInvalidTestCases) {
+ test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.append(property, ...values));
+ }, 'Calling StylePropertyMap.append with ' + desc + ' throws TypeError');
+}
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.append('transition-duration', CSS.s(1), '2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'),
+ [CSS.s(1), CSS.s(2)]);
+
+ styleMap.append('transition-duration', '3s', CSS.s(4));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'),
+ [CSS.s(1), CSS.s(2), CSS.s(3), CSS.s(4)]);
+}, 'Appending a list-valued property with CSSStyleValue or String updates its values');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.append('transition-duration', '1s, 2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'),
+ [CSS.s(1), CSS.s(2)]);
+
+ styleMap.append('transition-duration', '3s, 4s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'),
+ [CSS.s(1), CSS.s(2), CSS.s(3), CSS.s(4)]);
+}, 'Appending a list-valued property with list-valued string updates its values');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, 'transition-duration: 5s, 10s');
+
+ styleMap.append('tRaNsItIoN-dUrAtIoN', '1s', CSS.s(2));
+ const result = styleMap.getAll('transition-duration');
+ assert_style_value_array_equals(result,
+ [CSS.s(5), CSS.s(10), CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap.append is case-insensitive');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html
new file mode 100644
index 00000000000..96c1e3e8ff6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html
@@ -0,0 +1,76 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Declared StylePropertyMap tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#declared-stylepropertymap-objects">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<style>
+div {
+ height: 10px;
+ width: 50%;
+ width: 'lemon';
+ --foo: auto;
+ transition-duration: 1s, 2s;
+ color: 10;
+}
+
+#target {
+ height: 20px;
+ --foo: 1s;
+ width: 10%;
+}
+</style>
+<div style="width: 50px">
+ <div id="target" style="top: 5px; --bar: auto;"></div>
+</div>
+<script>
+'use strict';
+
+const target = document.getElementById('target');
+const styleMap = document.styleSheets[0].rules[0].attributeStyleMap;
+
+test(() => {
+ const properties = styleMap.getProperties();
+ assert_array_equals(properties, ['height', 'transition-duration', 'width', '--foo']);
+}, 'Declared StylePropertyMap only contains properties in the style rule');
+
+test(() => {
+ assert_style_value_equals(styleMap.get('height'), CSS.px(10));
+}, 'Declared StylePropertyMap contains CSS property declarations in style rules');
+
+test(() => {
+ assert_equals(styleMap.get('top'), null);
+ assert_equals(styleMap.get('--bar'), null);
+}, 'Declared StylePropertyMap does not contain inline styles');
+
+test(() => {
+ assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
+}, 'Declared StylePropertyMap contains custom property declarations');
+
+test(() => {
+ assert_equals(styleMap.get('color'), null);
+}, 'Declared StylePropertyMap does not contain properties with invalid values');
+
+test(() => {
+ assert_style_value_equals(styleMap.get('width'), CSS.percent(50));
+}, 'Declared StylePropertyMap contains properties with their last valid value');
+
+test(() => {
+ const style = document.createElement('style');
+ document.head.appendChild(style);
+
+ style.sheet.insertRule('.test { width: 10px; }');
+ let rule = style.sheet.rules[0];
+
+ let styleMap = rule.attributeStyleMap;
+ assert_style_value_equals(styleMap.get('width'), CSS.px(10));
+
+ rule.style.width = '20px';
+ assert_style_value_equals(styleMap.get('width'), CSS.px(20));
+
+ styleMap.set('width', CSS.px(30));
+ assert_equals(rule.cssText, '.test { width: 30px; }');
+}, 'Declared StylePropertyMap is live');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html
new file mode 100644
index 00000000000..e50fb6ea9ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.get tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.get('lemon'));
+}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t);
+ assert_equals(styleMap.get('height'), null);
+}, 'Calling StylePropertyMap.get with a property not in the property model returns null');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--foo: auto');
+ assert_equals(styleMap.get('--Foo'), null);
+}, 'Calling StylePropertyMap.get with a custom property not in the property model returns null');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'width: 10px; height: 20px');
+ assert_style_value_equals(styleMap.get('width'), CSS.px(10));
+}, 'Calling StylePropertyMap.get with a valid property returns the correct entry');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'height: 20px; width: 10px;');
+ assert_style_value_equals(styleMap.get('wIdTh'), CSS.px(10));
+}, 'StylePropertyMap.get with a valid property in mixed case returns the correct entry');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--foo: auto; --bar: 10px');
+ assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
+}, 'Calling StylePropertyMap.get with a valid custom property returns the correct entry');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 10px;');
+ assert_style_value_equals(styleMap.get('transition-duration'), CSS.s(1));
+}, 'Calling StylePropertyMap.get with a list-valued property returns only the first value');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html
new file mode 100644
index 00000000000..5fe635c7134
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.getAll tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.getAll('lemon'));
+}, 'Calling StylePropertyMap.getAll with an unsupported property throws a TypeError');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t);
+ assert_style_value_array_equals(styleMap.getAll('height'), []);
+}, 'Calling StylePropertyMap.getAll with a property not in the property model returns an empty list');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--foo: auto');
+ assert_style_value_array_equals(styleMap.getAll('--Foo'), []);
+}, 'Calling StylePropertyMap.getAll with a custom property not in the property model returns an empty list');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'width: 10px; height: 20px');
+ assert_style_value_array_equals(styleMap.getAll('width'), [CSS.px(10)]);
+}, 'Calling StylePropertyMap.getAll with a valid property returns a single element list with the correct entry');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'height: 20px; width: 10px');
+ assert_style_value_array_equals(styleMap.getAll('wIdTh'), [CSS.px(10)]);
+}, 'StylePropertyMap.getAll is case-insensitive');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--foo: auto; --bar: 10px');
+ assert_style_value_array_equals(styleMap.getAll('--foo'), [new CSSUnparsedValue(' auto')]);
+}, 'Calling StylePropertyMap.getAll with a valid custom property returns a single element list with the correct entry');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 20px');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+}, 'Calling StylePropertyMap.getAll with a list-valued property returns all the values');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html
new file mode 100644
index 00000000000..0f59a60c002
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.getProperties tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-getproperties">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '');
+ assert_array_equals(styleMap.getProperties(), []);
+}, 'Calling StylePropertyMap.getProperties on an empty property model returns a zero-length array');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--A: A; width: 0px; --C: C; transition-duration: 1s, 2s; color: red; --B: B;');
+ assert_array_equals(styleMap.getProperties(),
+ ['color', 'transition-duration', 'width', '--A', '--B', '--C']);
+}, 'StylePropertyMap.getProperties returns CSS properties in alphabetical order then custom properties by codepoint');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html
new file mode 100644
index 00000000000..7304f802d84
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.has tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#check-if-stylepropertymap-has-a-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.has('lemon'));
+}, 'Calling StylePropertyMap.has with an unsupported property throws a TypeError');
+
+const gTestCases = [
+ { property: 'height', expected: false, desc: 'a property not in the property model' },
+ { property: '--Foo', expected: false, desc: 'a custom property not in the property model' },
+ { property: 'width', expected: true, desc: 'a valid property' },
+ { property: 'wIdTh', expected: true, desc: 'a valid property in mixed case' },
+ { property: '--foo', expected: true, desc: 'a valid custom property' },
+ { property: 'transition-duration', expected: true, desc: 'a valid list-valued property' },
+];
+
+for (const {property, expected, desc} of gTestCases) {
+ test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'width: 10px; --foo: auto; transition-duration: 1s, 2s');
+ assert_equals(styleMap.has(property), expected);
+ }, 'Calling StylePropertyMap.has with ' + desc + ' returns ' + expected);
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html
new file mode 100644
index 00000000000..be61e2520f3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap iterable tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#the-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '');
+ assert_array_equals([...styleMap.entries()], []);
+}, 'Iterating over an empty StylePropertyMap gives a zero-length array');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--A: A; width: 10px; --C: C; transition-duration: 1s, 2s; color: red; --B: B;');
+ assert_array_equals([...styleMap.keys()],
+ ['color', 'transition-duration', 'width', '--A', '--B', '--C']);
+}, 'StylePropertyMap iterates properties in correct order');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'height: 5px; width: 10px;');
+ const keys = [...styleMap.keys()], values = [...styleMap.values()];
+
+ assert_array_equals(keys, ['height', 'width']);
+ assert_style_value_array_equals(values, [CSS.px(5), CSS.px(10)]);
+}, 'StylePropertyMap iterator returns CSS properties with the correct CSSStyleValue');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, 'transition-duration: 1s, 2s');
+ const keys = [...styleMap.keys()], values = [...styleMap.values()];
+
+ assert_array_equals(keys, ['transition-duration']);
+ assert_style_value_array_equals(values[0], [CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap iterator returns list-valued properties with the correct CSSStyleValue');
+
+test(t => {
+ const styleMap = createDeclaredStyleMap(t, '--A: A; --B: B; --C: C');
+ const keys = [...styleMap.keys()], values = [...styleMap.values()];
+
+ assert_array_equals(keys, ['--A', '--B', '--C']);
+ assert_style_value_array_equals(values, [
+ new CSSUnparsedValue(' A'),
+ new CSSUnparsedValue(' B'),
+ new CSSUnparsedValue(' C'),
+ ])
+}, 'StylePropertyMap iterator returns custom properties with the correct CSSStyleValue');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html
new file mode 100644
index 00000000000..fe4cced258f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html
@@ -0,0 +1,81 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.set</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#set-a-value-on-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gInvalidTestCases = [
+ { property: 'lemon', values: ['ade'], desc: 'an unsupported property name' },
+ { property: null, values: ['foo'], desc: 'an null property name' },
+ { property: 'width', values: [CSS.deg(0)], desc: 'an invalid CSSStyleValue' },
+ { property: 'width', values: ['10s'], desc: 'an invalid String' },
+];
+
+for (const {property, values, desc} of gInvalidTestCases) {
+ test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.set(property, ...values));
+ }, 'Setting a StylePropertyMap with ' + desc + ' throws TypeError');
+}
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.set('width', CSS.px(10), CSS.px(10)));
+}, 'Setting a non list-valued property with multiple arguments throws TypeError');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.set('width', '1s, 2s'));
+}, 'Setting a non list-valued property with list-valued string throws TypeError');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.set('width', CSS.px(10));
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(10));
+
+ styleMap.set('width', '20px');
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(20));
+}, 'Setting a property with CSSStyleValue or String updates its value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.set('transition-duration', CSS.s(1), '2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+
+ styleMap.set('transition-duration', '3s', CSS.s(4));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(3), CSS.s(4)]);
+}, 'Setting a list-valued property with CSSStyleValue or String updates its values');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.set('transition-duration', '1s, 2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+}, 'Setting a list-valued property with a list-valued string updates its value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.set('--foo', new CSSUnparsedValue('auto'));
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('auto'));
+
+ styleMap.set('--foo', '20px');
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('20px'));
+}, 'Setting a custom property with CSSStyleValue or String updates its value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, 'transition-duration: 5s, 10s');
+
+ styleMap.set('tRaNsItIoN-dUrAtIoN', '1s', CSS.s(2));
+ const result = styleMap.getAll('transition-duration');
+ assert_style_value_array_equals(result, [CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap.set is case-insensitive');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html
new file mode 100644
index 00000000000..c171769dc17
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Declared StylePropertyMap tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#declared-stylepropertymap-objects">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<style>
+#target { width: 100px; height: 100px; background: red; }
+</style>
+<body>
+<div id="target">
+<script>
+'use strict';
+
+test(() => {
+ let rule = document.styleSheets[0].rules[0];
+ rule.attributeStyleMap.set('width', CSS.px(200));
+ assert_equals(getComputedStyle(target).width, '200px')
+ rule.attributeStyleMap.set('width', CSS.px(150));
+ assert_equals(getComputedStyle(target).width, '150px')
+});
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html
new file mode 100644
index 00000000000..a5ee95e66de
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html
@@ -0,0 +1,88 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.update tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#update-a-value-in-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gInvalidTestCases = [
+ { property: 'lemon', value: 'ade', desc: 'an unsupported property name' },
+ { property: null, value: 'foo', desc: 'an null property name' },
+ { property: 'width', value: CSS.deg(0), desc: 'an invalid CSSStyleValue' },
+ { property: 'width', value: '10px', desc: 'a String' },
+];
+
+for (const {property, value, desc} of gInvalidTestCases) {
+ test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.update(property, () => value));
+ }, 'Updating a StylePropertyMap with ' + desc + ' throws TypeError');
+}
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.update('width', () => CSS.px(10));
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(10));
+
+ styleMap.update('width', () => CSS.px(20));
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(20));
+}, 'Updating a property with CSSStyleValue updates its value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.update('transition-duration', () => CSS.s(1));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1)]);
+
+ styleMap.update('transition-duration', () => CSS.s(2));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(2)]);
+}, 'Updating a list-valued property with CSSStyleValue updates its value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+
+ styleMap.update('--foo', () => new CSSUnparsedValue('auto'));
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('auto'));
+
+ styleMap.update('--foo', () => new CSSUnparsedValue('20px'));
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('20px'));
+}, 'Updating a custom property with CSSStyleValue updates its value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, '');
+ styleMap.update('width', oldValue => {
+ assert_equals(oldValue, null);
+ return CSS.px(10);
+ });
+}, 'Calling StylePropertyMap.update on an empty property model calls update function with null');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, 'width: 10px');
+ styleMap.update('width', oldValue => {
+ assert_style_value_equals(oldValue, CSS.px(10));
+ return CSS.px(20);
+ });
+}, 'Calling StylePropertyMap.update on an existing property calls update function with old value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, 'transition-duration: 1s, 2s');
+ styleMap.update('transition-duration', oldValue => {
+ assert_style_value_equals(oldValue, CSS.s(1));
+ return CSS.s(2);
+ });
+}, 'Calling StylePropertyMap.update on an existing list-valued property calls update function with first value');
+
+test(t => {
+ let styleMap = createDeclaredStyleMap(t, 'width: 10px');
+
+ styleMap.update('wIdTh', () => CSS.px(20));
+ const result = styleMap.get('width');
+ assert_style_value_equals(result, CSS.px(20));
+}, 'StylePropertyMap.update is case-insensitive');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html
new file mode 100644
index 00000000000..9573b7967c5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.append tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#append-to-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gInvalidTestCases = [
+ { property: 'lemon', values: ['ade'], desc: 'an unsupported property name' },
+ { property: null, values: ['foo'], desc: 'an null property name' },
+ { property: 'width', values: ['10px'], desc: 'a property that is not list valued' },
+ { property: 'transition-duration', values: [CSS.px(10)], desc: 'an invalid CSSStyleValue' },
+ { property: 'transition-duration', values: ['10px'], desc: 'an invalid String value' },
+ { property: 'transition-duration', values: [CSS.s(1), '10px', CSS.px(10)], desc: 'a mix of valid and invalid values' },
+];
+
+for (const {property, values, desc} of gInvalidTestCases) {
+ test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.append(property, ...values));
+ }, 'Calling StylePropertyMap.append with ' + desc + ' throws TypeError');
+}
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.append('transition-duration', CSS.s(1), '2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+
+ styleMap.append('transition-duration', '3s', CSS.s(4));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2), CSS.s(3), CSS.s(4)]);
+}, 'Appending a list-valued property with CSSStyleValue or String updates its values');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.append('transition-duration', '1s, 2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+
+ styleMap.append('transition-duration', '3s, 4s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2), CSS.s(3), CSS.s(4)]);
+}, 'Appending a list-valued property with list-valued string updates its values');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, 'transition-duration: 5s, 10s');
+
+ styleMap.append('tRaNsItIoN-dUrAtIoN', '1s', CSS.s(2));
+ const result = styleMap.getAll('transition-duration');
+ assert_style_value_array_equals(result, [CSS.s(5), CSS.s(10), CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap.append is case-insensitive');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html
new file mode 100644
index 00000000000..1f6ec74aad7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.delete tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#delete-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.delete('lemon'));
+ assert_throws(new TypeError(), () => styleMap.delete(null));
+}, 'Calling StylePropertyMap.delete with an unsupported property name throws a TypeError');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '');
+ assert_false(styleMap.has('width'));
+ styleMap.delete('width');
+ assert_false(styleMap.has('width'));
+}, 'Deleting a property not in a StylePropertyMap is a no-op');
+
+const gTestCases = [
+ { style: 'width: 10px', property: 'width', desc: 'a property' },
+ { style: '--foo: auto', property: '--foo', desc: 'a custom property' },
+ { style: 'transition-duration: 1s, 2s, 3s', property: 'transition-duration', desc: 'a list-valued property' },
+ { style: 'width: 10px', property: 'wIdTh', desc: 'a mixed-case property' },
+];
+
+for (const {style, property, desc} of gTestCases) {
+ test(t => {
+ const styleMap = createInlineStyleMap(t, style);
+ assert_true(styleMap.has(property));
+ styleMap.delete(property);
+ assert_false(styleMap.has(property));
+ }, 'Deleting ' + desc + ' in the property model removes it from the property model');
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html
new file mode 100644
index 00000000000..6494a26d1bf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.get tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createInlineStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.get('lemon'));
+}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t);
+ assert_equals(styleMap.get('height'), null);
+}, 'Calling StylePropertyMap.get with a property not in the property model returns null');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--foo: auto');
+ assert_equals(styleMap.get('--Foo'), null);
+}, 'Calling StylePropertyMap.get with a custom property not in the property model returns null');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'width: 10px; height: 20px');
+ assert_style_value_equals(styleMap.get('width'), CSS.px(10));
+}, 'Calling StylePropertyMap.get with a valid property returns the correct entry');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'height: 20px; width: 10px;');
+ assert_style_value_equals(styleMap.get('wIdTh'), CSS.px(10));
+}, 'StylePropertyMap.get with a valid property in mixed case returns the correct entry');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--foo: auto; --bar: 10px');
+ assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
+}, 'Calling StylePropertyMap.get with a valid custom property returns the correct entry');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 10px;');
+ assert_style_value_equals(styleMap.get('transition-duration'), CSS.s(1));
+}, 'Calling StylePropertyMap.get with a list-valued property returns only the first value');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html
new file mode 100644
index 00000000000..62cbec37c1f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.getAll tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createInlineStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.getAll('lemon'));
+}, 'Calling StylePropertyMap.getAll with an unsupported property throws a TypeError');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t);
+ assert_style_value_array_equals(styleMap.getAll('height'), []);
+}, 'Calling StylePropertyMap.getAll with a property not in the property model returns an empty list');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--foo: auto');
+ assert_style_value_array_equals(styleMap.getAll('--Foo'), []);
+}, 'Calling StylePropertyMap.getAll with a custom property not in the property model returns an empty list');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'width: 10px; height: 20px');
+ assert_style_value_array_equals(styleMap.getAll('width'), [CSS.px(10)]);
+}, 'Calling StylePropertyMap.getAll with a valid property returns a single element list with the correct entry');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'height: 20px; width: 10px');
+ assert_style_value_array_equals(styleMap.getAll('wIdTh'), [CSS.px(10)]);
+}, 'StylePropertyMap.getAll is case-insensitive');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--foo: auto; --bar: 10px');
+ assert_style_value_array_equals(styleMap.getAll('--foo'), [new CSSUnparsedValue(' auto')]);
+}, 'Calling StylePropertyMap.getAll with a valid custom property returns a single element list with the correct entry');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 20px');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+}, 'Calling StylePropertyMap.getAll with a list-valued property returns all the values');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html
new file mode 100644
index 00000000000..a6dfade280d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.getProperties tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-getproperties">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '');
+ assert_array_equals(styleMap.getProperties(), []);
+}, 'Calling StylePropertyMap.getProperties on an empty property model returns a zero-length array');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--A: A; width: 0px; --C: C; transition-duration: 1s, 2s; color: red; --B: B;');
+ assert_array_equals(styleMap.getProperties(),
+ ['color', 'transition-duration', 'width', '--A', '--B', '--C']);
+}, 'StylePropertyMap.getProperties returns property names in correct order');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html
new file mode 100644
index 00000000000..1f4e4f90bbf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.has tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#check-if-stylepropertymap-has-a-property">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createInlineStyleMap(t);
+ assert_throws(new TypeError(), () => styleMap.has('lemon'));
+}, 'Calling StylePropertyMap.has with an unsupported property throws a TypeError');
+
+const gTestCases = [
+ { property: 'height', expected: false, desc: 'a property not in the property model' },
+ { property: '--Foo', expected: false, desc: 'a custom property not in the property model' },
+ { property: 'width', expected: true, desc: 'a valid property' },
+ { property: 'wIdTh', expected: true, desc: 'a valid property in mixed case' },
+ { property: '--foo', expected: true, desc: 'a valid custom property' },
+ { property: 'transition-duration', expected: true, desc: 'a valid list-valued property' },
+];
+
+for (const {property, expected, desc} of gTestCases) {
+ test(t => {
+ const styleMap = createInlineStyleMap(t, 'width: 10px; --foo: auto; transition-duration: 1s, 2s');
+ assert_equals(styleMap.has(property), expected);
+ }, 'Calling StylePropertyMap.has with ' + desc + ' returns ' + expected);
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html
new file mode 100644
index 00000000000..cbf76d8901f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap iterable tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#the-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '');
+ assert_array_equals([...styleMap.entries()], []);
+}, 'Iterating over an empty StylePropertyMap gives a zero-length array');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--A: A; width: 10px; --C: C; transition-duration: 1s, 2s; color: red; --B: B;');
+ assert_array_equals([...styleMap.keys()],
+ ['color', 'transition-duration', 'width', '--A', '--B', '--C']);
+}, 'StylePropertyMap iterates properties in correct order');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'height: 5px; width: 10px;');
+ const keys = [...styleMap.keys()], values = [...styleMap.values()];
+
+ assert_array_equals(keys, ['height', 'width']);
+ assert_style_value_array_equals(values, [CSS.px(5), CSS.px(10)]);
+}, 'StylePropertyMap iterator returns CSS properties with the correct CSSStyleValue');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, 'transition-duration: 1s, 2s');
+ const keys = [...styleMap.keys()], values = [...styleMap.values()];
+
+ assert_array_equals(keys, ['transition-duration']);
+ assert_style_value_array_equals(values[0], [CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap iterator returns list-valued properties with the correct CSSStyleValue');
+
+test(t => {
+ const styleMap = createInlineStyleMap(t, '--A: A; --B: B; --C: C');
+ const keys = [...styleMap.keys()], values = [...styleMap.values()];
+
+ assert_array_equals(keys, ['--A', '--B', '--C']);
+ assert_style_value_array_equals(values, [
+ new CSSUnparsedValue(' A'),
+ new CSSUnparsedValue(' B'),
+ new CSSUnparsedValue(' C'),
+ ])
+}, 'StylePropertyMap iterator returns custom properties with the correct CSSStyleValue');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html
new file mode 100644
index 00000000000..dc8ccc57bcc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html
@@ -0,0 +1,81 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.set</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#set-a-value-on-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gInvalidTestCases = [
+ { property: 'lemon', values: ['ade'], desc: 'an unsupported property name' },
+ { property: null, values: ['foo'], desc: 'an null property name' },
+ { property: 'width', values: [CSS.deg(0)], desc: 'an invalid CSSStyleValue' },
+ { property: 'width', values: ['10s'], desc: 'an invalid String' },
+];
+
+for (const {property, values, desc} of gInvalidTestCases) {
+ test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.set(property, ...values));
+ }, 'Setting a StylePropertyMap with ' + desc + ' throws TypeError');
+}
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.set('width', CSS.px(10), CSS.px(10)));
+}, 'Setting a non list-valued property with multiple arguments throws TypeError');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.set('width', '1s, 2s'));
+}, 'Setting a non list-valued property with list-valued string throws TypeError');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.set('width', CSS.px(10));
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(10));
+
+ styleMap.set('width', '20px');
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(20));
+}, 'Setting a property with CSSStyleValue or String updates its value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.set('transition-duration', CSS.s(1), '2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+
+ styleMap.set('transition-duration', '3s', CSS.s(4));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(3), CSS.s(4)]);
+}, 'Setting a list-valued property with CSSStyleValue or String updates its values');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.set('transition-duration', '1s, 2s');
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1), CSS.s(2)]);
+}, 'Setting a list-valued property with a list-valued string updates its value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.set('--foo', new CSSUnparsedValue('auto'));
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('auto'));
+
+ styleMap.set('--foo', '20px');
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('20px'));
+}, 'Setting a custom property with CSSStyleValue or String updates its value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, 'transition-duration: 5s, 10s');
+
+ styleMap.set('tRaNsItIoN-dUrAtIoN', '1s', CSS.s(2));
+ const result = styleMap.getAll('transition-duration');
+ assert_style_value_array_equals(result, [CSS.s(1), CSS.s(2)]);
+}, 'StylePropertyMap.set is case-insensitive');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html
new file mode 100644
index 00000000000..ac2d83411c9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html
@@ -0,0 +1,88 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>StylePropertyMap.update tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#update-a-value-in-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<script>
+'use strict';
+
+const gInvalidTestCases = [
+ { property: 'lemon', value: 'ade', desc: 'an unsupported property name' },
+ { property: null, value: 'foo', desc: 'an null property name' },
+ { property: 'width', value: CSS.deg(0), desc: 'an invalid CSSStyleValue' },
+ { property: 'width', value: '10px', desc: 'a String' },
+];
+
+for (const {property, value, desc} of gInvalidTestCases) {
+ test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ assert_throws(new TypeError(), () => styleMap.update(property, () => value));
+ }, 'Updating a StylePropertyMap with ' + desc + ' throws TypeError');
+}
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.update('width', () => CSS.px(10));
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(10));
+
+ styleMap.update('width', () => CSS.px(20));
+ assert_style_value_array_equals(styleMap.get('width'), CSS.px(20));
+}, 'Updating a property with CSSStyleValue updates its value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.update('transition-duration', () => CSS.s(1));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1)]);
+
+ styleMap.update('transition-duration', () => CSS.s(2));
+ assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(2)]);
+}, 'Updating a list-valued property with CSSStyleValue updates its value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+
+ styleMap.update('--foo', () => new CSSUnparsedValue('auto'));
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('auto'));
+
+ styleMap.update('--foo', () => new CSSUnparsedValue('20px'));
+ assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue('20px'));
+}, 'Updating a custom property with CSSStyleValue updates its value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, '');
+ styleMap.update('width', oldValue => {
+ assert_equals(oldValue, null);
+ return CSS.px(10);
+ });
+}, 'Calling StylePropertyMap.update on an empty property model calls update function with null');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, 'width: 10px');
+ styleMap.update('width', oldValue => {
+ assert_style_value_equals(oldValue, CSS.px(10));
+ return CSS.px(20);
+ });
+}, 'Calling StylePropertyMap.update on an existing property calls update function with old value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, 'transition-duration: 1s, 2s');
+ styleMap.update('transition-duration', oldValue => {
+ assert_style_value_equals(oldValue, CSS.s(1));
+ return CSS.s(2);
+ });
+}, 'Calling StylePropertyMap.update on an existing list-valued property calls update function with first value');
+
+test(t => {
+ let styleMap = createInlineStyleMap(t, 'width: 10px');
+
+ styleMap.update('wIdTh', () => CSS.px(20));
+ const result = styleMap.get('width');
+ assert_style_value_equals(result, CSS.px(20));
+}, 'StylePropertyMap.update is case-insensitive');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html b/tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html
new file mode 100644
index 00000000000..228da4e3897
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Values and Units Test: using lh and rlh units on the root element</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#font-relative-lengths">
+<style>
+#measure_me { position: absolute; }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id=measure_me>&nbsp;</div>
+
+<script>
+ function get_root_font_size() {
+ return parseFloat(window.getComputedStyle(window.document.documentElement).fontSize);
+ }
+ function get_root_line_height() {
+ /* getComputedStyle returns the computed value (not the used value) for the line-height property,
+ and the computed value of line-height:normal is normal,
+ so we cannot just query the value fo the proerty directly on the root element.
+ However the height of an abspos that only contains a single character from the first available font
+ and doesn't have any ancestor that changes the font-size or line-height property
+ gives us an indirect way to measure the root line-height in px.
+ */
+ return parseFloat(window.getComputedStyle(document.getElementById("measure_me")).height);
+ }
+
+ window.document.documentElement.style="font-size: initial; line-height:initial;";
+ initial_f_s = get_root_font_size();
+ initial_l_h = get_root_line_height();
+
+ test(function() {
+ window.document.documentElement.style="font-size: 142px; line-height: 1lh;";
+ l_h = get_root_line_height();
+ assert_approx_equals( l_h, initial_l_h, 1, "the lh unit on the root element's line-height property uses font metrics corresponding to the initial values of the font or line-height properties");
+ }, "lh in line-height on root");
+
+ test(function() {
+ window.document.documentElement.style="font-size: 142px; line-height: 1rlh;";
+ l_h = get_root_line_height();
+ assert_approx_equals( l_h, initial_l_h, 1, "the rlh unit on the root element's line-height property uses font metrics corresponding to the initial values of the font or line-height properties");
+ }, "rlh in line-height on root");
+
+ test(function() {
+ window.document.documentElement.style="font-size: 1lh; line-height: 142px;";
+ f_s = get_root_font_size();
+ assert_approx_equals( f_s, initial_f_s, 1, "the lh unit on the root element's font-size property uses font metrics corresponding to the initial values of the font or line-height properties");
+ }, "lh in font-size on root");
+
+ test(function() {
+ window.document.documentElement.style="font-size: 1rlh; line-height: 142px;";
+ f_s = get_root_font_size();
+ assert_approx_equals( f_s, initial_f_s, 1, "the rlh unit on the root element's font-size property uses font metrics corresponding to the initial values of the font or line-height properties");
+
+ }, "rlh in font-size on root");
+
+
+ test(function() {
+ window.document.documentElement.style="font-size: 142px; line-height: 2lh;";
+ l_h = get_root_line_height();
+ assert_approx_equals( l_h, initial_l_h * 2, 1, "the lh unit on the root element's line-height property actually works as a unit and doesn't merely cause a fallback that doesn't take the number of units into account");
+ }, "2lh in line-height on root");
+
+ test(function() {
+ window.document.documentElement.style="font-size: 142px; line-height: 2rlh;";
+ l_h = get_root_line_height();
+ assert_approx_equals( l_h, initial_l_h * 2, 1, "the rlh unit on the root element's line-height property actually works as a unit and doesn't merely cause a fallback that doesn't take the number of units into account");
+ }, "2rlh in line-height on root");
+
+ test(function() {
+ window.document.documentElement.style="font-size: 2lh; line-height: 142px;";
+ f_s = get_root_font_size();
+ assert_approx_equals( f_s, initial_f_s * 2, 1, "the lh unit on the root element's font-size property actually works as a unit and doesn't merely cause a fallback that doesn't take the number of units into account");
+ }, "2lh in font-size on root");
+
+ test(function() {
+ window.document.documentElement.style="font-size: 2rlh; line-height: 142px;";
+ f_s = get_root_font_size();
+ assert_approx_equals( f_s, initial_f_s * 2, 1, "the rlh unit on the root element's font-size property actually works as a unit and doesn't merely cause a fallback that doesn't take the number of units into account");
+
+ }, "2rlh in font-size on root");
+
+ /*make the test result page readable again*/
+ window.document.documentElement.style="font-size: initial; line-height: initial;";
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html b/tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html
new file mode 100644
index 00000000000..f7a6fc9551b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Values and Units Test: using lh in line-height</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#font-relative-lengths">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="The lh unit resolves against the parent when used in the line-height property.">
+<style>
+div {
+ font-size: 50px;
+ line-height: 1;
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+aside {
+ background: green;
+ font-size: 42px; /* number doesn't matter, as long as it's neither 100 nor 50 */
+ line-height: 2lh;
+}
+
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div><aside>&nbsp;</aside></div>
diff --git a/tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html b/tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html
new file mode 100644
index 00000000000..316637a18a9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Values and Units Test: using lh in font-size</title>
+<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#font-relative-lengths">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="The lh unit resolves against the parent when used in the font-size property.">
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ background: red;
+ line-height: 50px;
+}
+aside {
+ background: green;
+ height: 1em;
+ line-height: 42px; /* number doesn't matter, as long as it's neither 50 nor 100*/
+ font-size: 2lh;
+}
+
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div><aside>&nbsp;</aside></div>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/scroll-no-layout-box.html b/tests/wpt/web-platform-tests/css/cssom-view/scroll-no-layout-box.html
new file mode 100644
index 00000000000..cc67ce76ed9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom-view/scroll-no-layout-box.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>cssom-view - Scrolling element with no layout box</title>
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-scroll">
+<link rel="help" href="https://drafts.csswg.org/cssom-view/#css-layout-box">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div style="display: none">
+ <div id="elem"></div>
+</div>
+
+<script>
+test(() => {
+ const elem = document.getElementById('elem');
+ elem.scroll(1, 2);
+
+ assert_equals(elem.scrollTop, 0, "scrollTop should be unchanged");
+ assert_equals(elem.scrollLeft, 0, "scrollLeft should be unchanged");
+}, "scrolling an element with no CSS layout box should have no effect");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html
new file mode 100644
index 00000000000..f718ea6abfb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<div style="width: 100px; height: 100px; background-color: green"></div>
diff --git a/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html
new file mode 100644
index 00000000000..563ffdaf1a1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<title>CSS Motion Path: offset-anchor with transform-box: fill-box</title>
+<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-anchor-property">
+<link rel="match" href="offset-anchor-transform-box-fill-box-ref.html">
+<meta name="assert" content="Tests offset-anchor together with a fill-box transform-box">
+<style>
+#target {
+ transform-box: fill-box;
+ transform-origin: 50% 50%;
+ offset-anchor: 25% 25%;
+ offset-path: path("M75,-25v100");
+ offset-distance: 50%;
+}
+</style>
+<svg width="400" height="400">
+ <rect width="100" height="100" fill="red"/>
+ <rect id="target" x="150" y="100" width="100" height="100" fill="green"/>
+</svg>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html
new file mode 100644
index 00000000000..5f8bcaf539f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<title>CSS Test Reference</title>
+<meta charset="utf-8">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<style>
+.parent {
+ position: fixed;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 200px;
+ height: 200px;
+ background: yellow;
+}
+
+.child {
+ position: absolute;
+ left: 50px;
+ top: 50px;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<div class="parent"><div class="child"></div></div>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html
new file mode 100644
index 00000000000..1edfdb04caa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<title>CSS Test: Absolutely positioned children of flex container with CSS align</title>
+<meta charset="utf-8">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1386654">
+<link rel="match" href="position-absolute-containing-block-001-ref.html">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<style>
+.parent {
+ position: fixed;
+ top: 0;
+ left: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 200px;
+ height: 200px;
+ background: yellow;
+}
+
+.child {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<div class="parent"><div class="child"></div></div>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html
new file mode 100644
index 00000000000..90ee38856cc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<title>CSS Test Reference</title>
+<meta charset="utf-8">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<style>
+.parent {
+ position: fixed;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 200px;
+ height: 200px;
+ background: yellow;
+}
+
+.child {
+ position: absolute;
+ left: 60px;
+ top: 60px;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<div class="parent"><div class="child"></div></div>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html
new file mode 100644
index 00000000000..aecbf0b4c99
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<title>CSS Test: Absolutely positioned children of flex container with CSS align</title>
+<meta charset="utf-8">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1386654">
+<link rel="match" href="position-absolute-containing-block-002-ref.html">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<style>
+.parent {
+ position: fixed;
+ top: 0;
+ left: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 180px;
+ height: 180px;
+
+ /* Expand the background area to 200px, without touching the content-box,
+ which is what flex absolute children should be aligned relative to. */
+ border-top: 5px solid yellow;
+ padding-top: 15px;
+ border-left: 5px solid yellow;
+ padding-left: 15px;
+
+ background: yellow;
+}
+
+.child {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<div class="parent"><div class="child"></div></div>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list
index bff3a67a796..3e20fefed4f 100644
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list
@@ -213,3 +213,7 @@
== flexbox-single-line-clamp-1.html flexbox-single-line-clamp-1-ref.html
== flexbox-single-line-clamp-2.html flexbox-single-line-clamp-2-ref.html
== flexbox-single-line-clamp-3.html flexbox-single-line-clamp-3-ref.html
+
+# Flexbox as an absolute containing block.
+== position-absolute-containing-block-001.html position-absolute-containing-block-001-ref.html
+== position-absolute-containing-block-002.html position-absolute-containing-block-002-ref.html
diff --git a/tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md b/tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md
new file mode 100644
index 00000000000..f707995033d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md
@@ -0,0 +1,35 @@
+To run WPT on Chrome on an android device, some additional set up is required.
+First until we find a better way, we need to root the android device and update
+the /etc/hosts file to include
+
+```
+127.0.0.1 web-platform.test
+127.0.0.1 www.web-platform.test
+127.0.0.1 www1.web-platform.test
+127.0.0.1 www2.web-platform.test
+127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test
+127.0.0.1 xn--lve-6lad.web-platform.test
+0.0.0.0 nonexistent-origin.web-platform.test
+```
+
+Next, we need to start adb and reverse forward the web-platform.tests ports
+
+```
+adb start-server
+```
+
+Add any ports that you need based on your config. For example:
+```
+adb reverse tcp:8000 tcp:8000
+adb reverse tcp:8001 tcp:8001
+adb reverse tcp:8081 tcp:8081
+adb reverse tcp:8444 tcp:8444
+adb reverse tcp:9001 tcp:9001
+adb reverse tcp:9444 tcp:9444
+```
+
+After this, we may run wpt with the `chrome_android` product
+
+```
+./wpt run chrome_android <test>
+```
diff --git a/tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html b/tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html
new file mode 100644
index 00000000000..c5c32d3963e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html
@@ -0,0 +1,69 @@
+<html>
+<header>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/get-host-info.sub.js"></script>
+</header>
+<body>
+<script>
+var host = get_host_info();
+
+var sameOriginImageURL = "/common/redirect.py?location=" + host.HTTPS_ORIGIN_WITH_CREDS + "/service-workers/service-worker/resources/fetch-access-control.py?ACAOrigin= " + host.HTTPS_ORIGIN + "%26PNGIMAGE%26ACACredentials=true";
+var imageURL = "/common/redirect.py?location=" + host.HTTPS_REMOTE_ORIGIN_WITH_CREDS + "/service-workers/service-worker/resources/fetch-access-control.py?ACAOrigin= " + host.HTTPS_ORIGIN + "%26PNGIMAGE%26ACACredentials=true";
+var frameURL = "/common/redirect.py?location=" + host.HTTPS_REMOTE_ORIGIN_WITH_CREDS + "/common/blank.html";
+
+promise_test((test) => {
+ return fetch(imageURL, {mode: "no-cors"});
+}, "No CORS fetch after a redirect with an URL containing credentials");
+
+promise_test((test) => {
+ return promise_rejects(test, new TypeError, fetch(imageURL, {mode: "cors"}));
+}, "CORS fetch after a redirect with a cross origin URL containing credentials");
+
+promise_test((test) => {
+ return fetch(sameOriginImageURL, {mode: "cors"});
+}, "CORS fetch after a redirect with a same origin URL containing credentials");
+
+promise_test((test) => {
+ return new Promise((resolve, reject) => {
+ var image = new Image();
+ image.onload = resolve;
+ image.onerror = (e) => reject(e);
+ image.src = imageURL;
+ });
+}, "Image loading after a redirect with an URL containing credentials");
+
+promise_test((test) => {
+ return new Promise((resolve, reject) => {
+ var image = new Image();
+ image.crossOrigin = "use-credentials";
+ image.onerror = resolve;
+ image.onload = () => reject("Image should not load");
+ image.src = imageURL;
+ });
+}, "CORS Image loading after a redirect with a cross origin URL containing credentials");
+
+promise_test((test) => {
+ return new Promise((resolve, reject) => {
+ var image = new Image();
+ image.crossOrigin = "use-credentials";
+ image.onload = resolve;
+ image.onerror = (e) => reject(e);
+ image.src = sameOriginImageURL;
+ });
+}, "CORS Image loading after a redirect with a same origin URL containing credentials");
+
+promise_test(async (test) => {
+ var iframe = document.createElement("iframe");
+ document.body.appendChild(iframe);
+ await new Promise((resolve, reject) => {
+ iframe.src = frameURL;
+ iframe.onload = resolve;
+ iframe.onerror = (e) => reject(e);
+ test.step_timeout(() => reject("Frame loading timed out"), 5000);
+ });
+ document.body.removeChild(iframe);
+}, "Frame loading after a redirect with an URL containing credentials");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html b/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html
index 3b96073790c..8bb740af724 100644
--- a/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html
+++ b/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html
@@ -1,78 +1,32 @@
<!doctype html>
-<html>
-<head>
<title>Manual Gamepad IDL tests</title>
-<link rel="help" href="https://w3c.github.io/gamepad/#gamepad-interface">
-<link rel="help" href="https://w3c.github.io/gamepad/#gamepadbutton-interface">
-<link rel="help" href="https://w3c.github.io/gamepad/#gamepadevent-interface">
-<link rel="help" href="https://w3c.github.io/gamepad/#navigator-interface-extension">
+<link rel="help" href="https://w3c.github.io/gamepad/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
+<p id="instructions">This test requires a gamepad. Connect one and press any button to start the test.</p>
<script>
-setup({explicit_done: true, explicit_timeout: true});
+"use strict";
+
+setup({explicit_timeout: true});
+
+promise_test(async t => {
+ const eventWatcher = new EventWatcher(t, window, "gamepadconnected");
+ let e = await eventWatcher.wait_for("gamepadconnected");
+ const idl_array = new IdlArray();
+ const gamepad_idl = await fetch("/interfaces/gamepad.idl").then(r => r.text());
+
+ idl_array.add_untested_idls('interface Event {};');
+ idl_array.add_untested_idls('interface Navigator {};');
+ idl_array.add_idls(gamepad_idl);
-addEventListener("gamepadconnected", function (e) {
- var idl_array = new IdlArray();
- idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
- idl_array.add_idls(document.getElementById("idl").textContent);
idl_array.add_objects({
GamepadEvent: [e],
Gamepad: [e.gamepad],
GamepadButton: [e.gamepad.buttons[0]],
- Navigator: ["navigator"],
+ Navigator: ["navigator"]
});
idl_array.test();
- done();
-});
+}, "Test IDL implementation of Gamepad API");
</script>
-</head>
-<body>
-<pre id="untested_idl" style="display: none">
-interface Navigator {
-};
-
-interface Event {
-};
-</pre>
-<pre id="idl" style="display: none">
-interface Gamepad {
- readonly attribute DOMString id;
- readonly attribute long index;
- readonly attribute boolean connected;
- readonly attribute DOMHighResTimeStamp timestamp;
- readonly attribute GamepadMappingType mapping;
- readonly attribute FrozenArray<double> axes;
- readonly attribute FrozenArray<GamepadButton> buttons;
-};
-
-enum GamepadMappingType {
- "",
- "standard"
-};
-
-interface GamepadButton {
- readonly attribute boolean pressed;
- readonly attribute double value;
-};
-
-[Constructor(DOMString type, optional GamepadEventInit eventInitDict)]
-interface GamepadEvent : Event
-{
- readonly attribute Gamepad? gamepad;
-};
-
-dictionary GamepadEventInit : EventInit
-{
- Gamepad? gamepad = null;
-};
-
-partial interface Navigator {
- Gamepad[] getGamepads();
-};
-</pre>
-<p id="instructions">This test requires a gamepad. Connect one and press any button to start the test.</p>
-<div id="log"></div>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/gamepad/idlharness.html b/tests/wpt/web-platform-tests/gamepad/idlharness.html
index e78a56be498..833449d72b6 100644
--- a/tests/wpt/web-platform-tests/gamepad/idlharness.html
+++ b/tests/wpt/web-platform-tests/gamepad/idlharness.html
@@ -1,6 +1,4 @@
<!doctype html>
-<html>
-<head>
<title>Gamepad IDL tests</title>
<link rel="help" href="https://w3c.github.io/gamepad/#gamepad-interface">
<link rel="help" href="https://w3c.github.io/gamepad/#gamepadbutton-interface">
@@ -10,61 +8,21 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
-</head>
-<body>
-<pre id="untested_idl" style="display: none">
-interface Navigator {
-};
-
-interface Event {
-};
-</pre>
-<pre id="idl" style="display: none">
-interface Gamepad {
- readonly attribute DOMString id;
- readonly attribute long index;
- readonly attribute boolean connected;
- readonly attribute DOMHighResTimeStamp timestamp;
- readonly attribute GamepadMappingType mapping;
- readonly attribute FrozenArray<double> axes;
- readonly attribute FrozenArray<GamepadButton> buttons;
-};
-
-enum GamepadMappingType {
- "",
- "standard"
-};
-
-interface GamepadButton {
- readonly attribute boolean pressed;
- readonly attribute double value;
-};
+<script>
+"use strict";
-[Constructor(DOMString type, optional GamepadEventInit eventInitDict)]
-interface GamepadEvent : Event
-{
- readonly attribute Gamepad? gamepad;
-};
+promise_test(async () => {
+ const idl_array = new IdlArray();
+ const gamepad_idl = await fetch("/interfaces/gamepad.idl").then(r => r.text());
-dictionary GamepadEventInit : EventInit
-{
- Gamepad? gamepad = null;
-};
+ idl_array.add_untested_idls('interface Event {};');
+ idl_array.add_untested_idls('interface Navigator {};');
+ idl_array.add_idls(gamepad_idl);
-partial interface Navigator {
- sequence<Gamepad?> getGamepads();
-};
-</pre>
-<script>
-var idl_array = new IdlArray();
-idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
-idl_array.add_idls(document.getElementById("idl").textContent);
-idl_array.add_objects({
+ idl_array.add_objects({
GamepadEvent: [new GamepadEvent("something")],
- Navigator: ["navigator"],
+ Navigator: ["navigator"]
});
-idl_array.test();
+ idl_array.test();
+}, "Test IDL implementation of Gamepad API");
</script>
-<div id="log"></div>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js b/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js
index cde23741d68..59cb3e3f5b8 100644
--- a/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js
+++ b/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js
@@ -146,6 +146,25 @@ function runGenericSensorTests(sensorType) {
promise_test(async t => {
const sensor = new sensorType();
const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]);
+ sensor.start();
+
+ await sensorWatcher.wait_for("reading");
+ assert_true(sensor.hasReading);
+ const timestamp = sensor.timestamp;
+ sensor.stop();
+ assert_false(sensor.hasReading);
+
+ sensor.start();
+ await sensorWatcher.wait_for("reading");
+ assert_true(sensor.hasReading);
+ assert_greater_than(timestamp, 0);
+ assert_greater_than(sensor.timestamp, timestamp);
+ sensor.stop();
+ }, `${sensorType.name}: Test that fresh reading is fetched on start()`);
+
+ promise_test(async t => {
+ const sensor = new sensorType();
+ const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]);
const visibilityChangeWatcher = new EventWatcher(t, document, "visibilitychange");
sensor.start();
@@ -159,8 +178,69 @@ function runGenericSensorTests(sensorType) {
win.close();
sensor.stop();
- assert_array_equals(cachedSensor1, cachedSensor2);
+ assert_object_equals(cachedSensor1, cachedSensor2);
}, `${sensorType.name}: sensor readings can not be fired on the background tab`);
+
+ promise_test(async t => {
+ const fastSensor = new sensorType({frequency: 30});
+ const slowSensor = new sensorType({frequency: 5});
+ slowSensor.start();
+
+ const fastCounter = await new Promise((resolve, reject) => {
+ let fastCounter = 0;
+ let slowCounter = 0;
+
+ fastSensor.onreading = () => {
+ fastCounter++;
+ }
+ slowSensor.onreading = () => {
+ slowCounter++;
+ if (slowCounter == 1) {
+ fastSensor.start();
+ } else if (slowCounter == 3) {
+ fastSensor.stop();
+ slowSensor.stop();
+ resolve(fastCounter);
+ }
+ }
+ fastSensor.onerror = reject;
+ slowSensor.onerror = reject;
+ });
+ assert_greater_than(fastCounter, 2,
+ "Fast sensor overtakes the slow one");
+ }, `${sensorType.name}: frequency hint works`);
+
+ promise_test(async t => {
+ // Create a focused editbox inside a cross-origin iframe,
+ // sensor notification must suspend.
+ const iframeSrc = 'data:text/html;charset=utf-8,<html><body>'
+ + '<input type="text" autofocus></body></html>';
+ const iframe = document.createElement('iframe');
+ iframe.src = encodeURI(iframeSrc);
+
+ const sensor = new sensorType();
+ const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]);
+ sensor.start();
+
+ await sensorWatcher.wait_for("reading");
+ assert_reading_not_null(sensor);
+ const cachedTimestamp = sensor.timestamp;
+ const cachedSensor1 = reading_to_array(sensor);
+
+ const iframeWatcher = new EventWatcher(t, iframe, "load");
+ document.body.appendChild(iframe);
+ await iframeWatcher.wait_for("load");
+ const cachedSensor2 = reading_to_array(sensor);
+ assert_array_equals(cachedSensor1, cachedSensor2);
+
+ iframe.remove();
+ await sensorWatcher.wait_for("reading");
+ const cachedSensor3 = reading_to_array(sensor);
+ assert_greater_than(sensor.timestamp, cachedTimestamp);
+
+ sensor.stop();
+ }, `${sensorType.name}: sensor receives suspend / resume notifications when\
+ cross-origin subframe is focused`);
}
function runGenericSensorInsecureContext(sensorType) {
diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html
index 7d5d47fe6c6..9680b875d62 100644
--- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>GeolocationSensor Feature Policy Test: Disabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index 62c5d456f0c..66b7832e45f 100644
--- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>GeolocationSensor Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html
index 1e5bfb36a2b..5ea2518af63 100644
--- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>GeolocationSensor Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html
index afe935efeb0..46ef9b7ce86 100644
--- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>GeolocationSensor Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html
index 46be7fba6f6..1694ed00fdf 100644
--- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>GeolocationSensor Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html
index 70add9b38bd..de4aee2dacc 100644
--- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Gyroscope Feature Policy Test: Disabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index 6d8c48645ed..3c831bb7c7e 100644
--- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Gyroscope Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html
index 07624624ce7..46473c3a9d0 100644
--- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Gyroscope Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html
index 1f1418b2014..95eee330b39 100644
--- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Gyroscope Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html
index 19ab572b382..ae5a63d1484 100644
--- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Gyroscope Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html
index d7fae15c35a..f1be0439df3 100644
--- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html
@@ -6,25 +6,21 @@
<pre id="step_log"></pre>
<iframe id="test"></iframe>
<script>
-
var t = async_test(undefined, {timeout:10000});
var f = document.getElementById("test");
var l = document.getElementById("step_log");
-var navigated = false;
log = function(t) {l.textContent += ("\n" + t)}
var steps = [
function() {f.src = "browsing_context_name-1.html"},
function() {
- navigated = true;
assert_equals(f.contentWindow.name, "test", "Initial load");
setTimeout(next, 0);
},
function() {f.src = "browsing_context_name-3.html"},
function() {
- var navigated = true;
- assert_equals(f.contentWindow.name, "test3", "Initial load");
+ assert_equals(f.contentWindow.name, "test3", "After navigation 1");
setTimeout(next, 0);
},
function() {f.src = f.src.replace("http://", "http://www.").replace("browsing_context_name-3", "browsing_context_name-2");},
@@ -33,10 +29,10 @@ var steps = [
},
function() {history.go(-2); setTimeout(next, 500)},
function() {
- assert_equals(f.contentWindow.name, "test3", "After navigation");
+ assert_equals(f.contentWindow.name, "test3", "After navigation 2");
t.done();
}
-].map(function(x) {return t.step_func(function() {log("Step " + step); x()})});
+].map(function(x) {return t.step_func(function() {log("Step " + step + " " + f.contentWindow.location); x()})});
var step = 0;
next = t.step_func(function() {steps[step++]()});
diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html
index ea4cd0c602e..88b05789de4 100644
--- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html
+++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html
@@ -9,31 +9,28 @@
var t = async_test(undefined, {timeout:10000});
var f = document.getElementById("test");
var l = document.getElementById("step_log");
-var navigated = false;
log = function(t) {l.textContent += ("\n" + t)}
var steps = [
function() {f.src = "browsing_context_name-1.html"},
function() {
- navigated = true;
assert_equals(f.contentWindow.name, "test", "Initial load");
setTimeout(next, 0);
},
function() {f.src = "browsing_context_name-3.html"},
function() {
- var navigated = true;
- assert_equals(f.contentWindow.name, "test3", "Initial load");
+ assert_equals(f.contentWindow.name, "test3", "After navigation 1");
setTimeout(next, 0);
},
function() {f.src = f.src.replace("http://", "http://www.").replace("browsing_context_name-1", "browsing_context_name-2");},
function() {f.src = f.src.replace("http://www.", "http://").replace("browsing_context_name-2", "browsing_context_name-4");},
function() {
- assert_equals(f.contentWindow.name, "test3", "After navigation");
+ assert_equals(f.contentWindow.name, "test3", "After navigation 2");
history.go(-3); setTimeout(next, 500)
},
function() {
- assert_equals(f.contentWindow.name, "test3", "After navigation");
+ assert_equals(f.contentWindow.name, "test3", "After navigation 3");
t.done();
}
].map(function(x) {return t.step_func(function() {log("Step " + step + " " + f.contentWindow.location); x()})});
diff --git a/tests/wpt/web-platform-tests/html/dom/usvstring-reflection.html b/tests/wpt/web-platform-tests/html/dom/usvstring-reflection.html
index 0f5559af1ae..7b408e08136 100644
--- a/tests/wpt/web-platform-tests/html/dom/usvstring-reflection.html
+++ b/tests/wpt/web-platform-tests/html/dom/usvstring-reflection.html
@@ -10,7 +10,14 @@
test(() => {
location.hash = '\uD999';
assert_equals(location.hash, '#%EF%BF%BD');
-}, "location : unpaired surrogate codepoint should be replaced with U+FFFD");
+}, "location.hash : unpaired surrogate codepoint should be replaced with U+FFFD");
+
+test(() => {
+ var w = window.open("about:blank#\uD800");
+ assert_equals(w.location.href, 'about:blank#%EF%BF%BD');
+ w.location.href = 'about:blank#\uD999';
+ assert_equals(w.location.href, 'about:blank#%EF%BF%BD');
+}, "location.href : unpaired surrogate codepoint should be replaced with U+FFFD");
test(() => {
var w = window.open("about:blank#\uD800");
diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html b/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html
new file mode 100644
index 00000000000..33049822c46
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+
+<link rel=stylesheet href=stylesheet.py>
+<link rel=stylesheet media="screen and (max-width:10px)" href=stylesheet.py?stylesNotMatchingEnvironment&delay=2>
+<h1>Dominic Farolino</h1>
+<script>
+ function styleExists(styleText) {
+ for (let styleRule of document.styleSheets) {
+ let currentStyleText = styleRule.cssRules["0"].cssText;
+ if (currentStyleText == styleText) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ test(() => {
+ const h1 = document.querySelector('h1');
+ const computedColor = getComputedStyle(h1).color;
+ const expectedColor = "rgb(128, 0, 128)";
+
+ assert_equals(computedColor, expectedColor);
+ assert_true(styleExists("h1 { color: purple; }")); // first style sheet
+ assert_false(styleExists("h1 { color: brown; }")); // second style sheet (should not be loaded yet)
+ }, "Only the style sheet loaded via a link element whose media attribute matches the environment should block following script execution");
+
+ const secondStylesheetTest = async_test("Both style sheets loaded via the link elements should be registered as style sheets for the document after 2 seconds");
+ secondStylesheetTest.step_timeout(() => {
+ assert_true(styleExists("h1 { color: purple; }")); // first style sheet
+ assert_true(styleExists("h1 { color: brown; }")); // second style sheet (loaded now!)
+ secondStylesheetTest.done();
+ }, 3000);
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py b/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py
new file mode 100644
index 00000000000..9befce9e60c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py
@@ -0,0 +1,10 @@
+from time import sleep
+def main(request, response):
+ if "delay" in request.GET:
+ delay = int(request.GET["delay"])
+ sleep(delay)
+
+ if "stylesNotMatchingEnvironment" in request.GET:
+ return 'h1 {color: brown;}'
+ else:
+ return 'h1 {color: purple;}'
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt
new file mode 100644
index 00000000000..fd6d484f888
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt
@@ -0,0 +1,14 @@
+WEBVTT
+Cues that have overlapping time ranges.
+
+1
+00:00:01.000 --> 00:00:02.000
+Bear is Coming!!!!!
+
+2
+00:00:02.500 --> 00:00:03.500
+I said Bear is coming!!!!
+
+3
+00:00:04.000 --> 00:00:05.000
+I said Bear is coming now!!!! \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html
new file mode 100644
index 00000000000..e2f78900a75
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<title>Enter, Exit events for a cue with negative duration</title>
+<script src="/common/media.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<video>
+ <script>
+ async_test(function(t) {
+ var video = document.querySelector("video");
+ var track = video.addTextTrack("subtitles");
+
+ // Add a cue with negative duration.
+ var cue = new VTTCue(1, -10, "Sausage?");
+ track.addCue(cue);
+ assert_equals(track.cues.length, 1);
+
+ // Verify that enter and exit events are fired.
+ var enterEvent = false;
+ cue.onenter = t.step_func(function() {
+ enterEvent = true;
+ });
+ cue.onexit = t.step_func_done(function() {
+ assert_true(enterEvent);
+ });
+
+ video.src = getVideoURI("/media/test");
+ video.play();
+ });
+ </script>
+</video> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html
new file mode 100644
index 00000000000..ebd7877f78a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<title>Enter, Exit events for cues with negative timestamps</title>
+<script src="/common/media.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<video>
+ <script>
+ async_test(function(t) {
+ var video = document.querySelector("video");
+ var track = video.addTextTrack("subtitles");
+
+ // Add cue with negative startTime.
+ var cue = new VTTCue(-10, 1, "Sausage?");
+ track.addCue(cue);
+ assert_equals(track.cues.length, 1);
+ cue.onenter = t.step_func(function() {
+ cue.onexit = t.step_func_done();
+ });
+
+ // Add cue with negative startTime and negative endTime.
+ // This cue should never be active.
+ var missedCue = new VTTCue(-110, -3.4, "Pepperoni?");
+ track.addCue(missedCue);
+ assert_equals(track.cues.length, 2);
+ missedCue.onenter = t.unreached_func();
+ missedCue.onexit = t.unreached_func();
+
+ video.src = getVideoURI("/media/test");
+ video.play();
+ });
+ </script>
+</video> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html
index c63d55062ee..5dc54ed25bf 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html
@@ -9,25 +9,33 @@
var testTrack = document.querySelector("track");
testTrack.onload = t.step_func_done(function() {
+ var cues = testTrack.track.cues;
assert_equals(testTrack.track.cues.length, 4);
// Add cue with negative startTime.
var cue = new VTTCue(-3439332606, 3.4, "Sausage?");
testTrack.track.addCue(cue);
- assert_equals(testTrack.track.cues.length, 5);
+ assert_equals(cues.length, 5);
// Add cue with negative startTime and negative endTime.
cue = new VTTCue(-110, -3.4, "Pepperoni?");
testTrack.track.addCue(cue);
- assert_equals(testTrack.track.cues.length, 6);
+ assert_equals(cues.length, 6);
// Set startTime and endTime to negative values.
- var testCue = testTrack.track.cues[2];
+ var testCue = cues[2];
assert_equals(testCue.startTime, 0);
testCue.startTime = -5;
assert_equals(testCue.startTime, -5);
assert_equals(testCue.endTime, 30.5);
testCue.endTime = -3439332606;
assert_equals(testCue.endTime, -3439332606);
+
+ // Check negative cues ordering.
+ testCue = cues[3];
+ assert_equals(testCue.startTime, 31);
+ testCue.startTime = -200;
+ // Verify that this cue is moved to 2nd position.
+ assert_equals(cues[1].startTime, -200);
});
});
</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html
new file mode 100644
index 00000000000..8354041eb2a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<script src="/common/reftest-wait.js"></script>
+<style>
+.container {
+ position: relative;
+ display: inline-block;
+ width: 320px;
+ height: 240px;
+}
+.cue {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ overflow: hidden;
+}
+.cue > span {
+ font-family: sans-serif;
+ background: green;
+ color: green;
+ font-size: 120px;
+ padding: 2px;
+}
+</style>
+<div class="container">
+ <video autoplay onplaying="this.onplaying = null; this.pause(); takeScreenshot();">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ </video>
+ <div class="cue"><span>PAS</span></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html
new file mode 100644
index 00000000000..d3dcee10373
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<script src="/common/reftest-wait.js"></script>
+<link rel="match" href="track-cue-rendering-line-doesnt-fit-ref.html">
+<script>
+function addCue(track, cueData) {
+ var cue = new VTTCue(0, 10, 'XXX');
+ for (var prop in cueData)
+ cue[prop] = cueData[prop];
+ track.addCue(cue);
+}
+</script>
+<style>
+video::cue {
+ font-size: 120px;
+ color: green;
+ background-color: green;
+}
+</style>
+<video autoplay onplaying="this.onplaying = null; this.pause(); takeScreenshot();">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ <script>
+ var video = document.querySelector("video");
+ var track = video.addTextTrack('subtitles');
+ addCue(track, { line: 0, align: 'start', text: 'PAS' });
+ // This cue will not fit, and will not be displayed.
+ addCue(track, { line: 1, align: 'start', text: 'FAI' });
+ track.mode = 'showing';
+ </script>
+</video>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html
new file mode 100644
index 00000000000..39461350b08
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<script src="/common/reftest-wait.js"></script>
+<style>
+.container {
+ transform: translate(1px, 0px);
+ position: relative;
+ display: inline-block;
+ width: 320px;
+ height: 240px;
+}
+.cue {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ overflow: hidden;
+ text-align: start;
+}
+.cue > span {
+ font-family: sans-serif;
+ background: green;
+ color: green;
+ font-size: 50px;
+ padding: 2px;
+}
+</style>
+<div class="container">
+ <video autoplay onplaying="this.onplaying = null; this.pause(); takeScreenshot();">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ </video>
+ <div class="cue"><span>XXX</span></div>
+</div>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html
new file mode 100644
index 00000000000..69ca92e845b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<script src="/common/reftest-wait.js"></script>
+<link rel="match" href="track-cue-rendering-transformed-video-ref.html">
+<style>
+video {
+ transform: translate(1px, 0px);
+}
+video::cue {
+ font-size: 50px;
+ color: green;
+ background-color: green;
+}
+</style>
+<video autoplay onplaying="this.onplaying = null; this.pause(); takeScreenshot();">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ <script>
+ var video = document.querySelector('video');
+ var track = video.addTextTrack('subtitles');
+ var cue = new VTTCue(0, 10, 'XXX');
+ cue.align = 'start';
+ cue.line = 0;
+ track.addCue(cue);
+ track.mode = 'showing';
+ </script>
+</video>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html
new file mode 100644
index 00000000000..b9c8412bab0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>TextTrack's cues are indexed and updated in order during video playback</title>
+<script src="/common/media.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<video>
+ <track src="resources/cues-chrono-order.vtt" kind="captions" default>
+ <script>
+ // Use the cuechange event on TextTrack.
+ async_test(function(t) {
+ var video = document.querySelector("video");
+ var testTrack = document.querySelector("track");
+
+ video.src = getVideoURI("/media/test");
+ video.oncanplaythrough = t.step_func(attemptTests);
+
+ function attemptTests() {
+ assert_equals(testTrack.track.cues.length, 3);
+ testTrack.oncuechange = t.step_func(cueChangedFromTrackElement);
+ video.play();
+ }
+
+ var currentCueIndex;
+ var cueChangeCount = 0;
+ function cueChangedFromTrackElement() {
+ currentCueIndex = Math.floor(cueChangeCount / 2);
+ currentCue = event.target.track.cues[currentCueIndex];
+ if (cueChangeCount % 2 == 0) {
+ // Cue entered.
+ assert_equals(currentCue, testTrack.track.activeCues[0]);
+ assert_equals(currentCue.id, (currentCueIndex + 1).toString());
+ }
+
+ ++cueChangeCount;
+ if (cueChangeCount == testTrack.track.cues.length * 2)
+ t.done();
+ }
+ });
+ </script>
+</video> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html
new file mode 100644
index 00000000000..970666793a7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<title>TextTrack's cues are indexed and updated in order during video playback</title>
+<script src="/common/media.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<video>
+ <track src="resources/cues-chrono-order.vtt" kind="captions" default>
+ <script>
+ // Use the enter and exit events on TextTrackCue.
+ async_test(function(t) {
+ var video = document.querySelector("video");
+ var testTrack = document.querySelector("track");
+
+ video.src = getVideoURI("/media/test");
+
+ video.oncanplaythrough = t.step_func(attemptTests);
+
+ function attemptTests() {
+ assert_equals(testTrack.track.cues.length, 3);
+ for (var i = 0; i < testTrack.track.cues.length; i++) {
+ testTrack.track.cues[i].onenter = t.step_func(cueEntered);
+ testTrack.track.cues[i].onexit = t.step_func(cueExited);
+ }
+ video.play();
+ }
+
+ var cueCount = 0;
+ function cueEntered() {
+ var currentCue = event.target;
+
+ // This cue is the currently active cue.
+ assert_equals(currentCue, testTrack.track.activeCues[0]);
+ assert_equals(currentCue.id, (cueCount + 1).toString());
+ }
+
+ function cueExited() {
+ ++cueCount;
+ if (cueCount == testTrack.track.cues.length)
+ t.done();
+ }
+ });
+ </script>
+</video> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html
index e03fcc0ecbb..8fa2b8b8d3f 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html
@@ -28,4 +28,4 @@
<script type="module" src="./cycle-unresolvable-a.js"
onerror="unreachable()" onload="log.push(2)"></script>
<script type="module" src="./cycle-unresolvable.js"
- onerror="unreachable()" onload="log.push(3)" async></script>
+ onerror="unreachable()" onload="log.push(3)"></script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html
index 8946eaab4eb..5af9a5e4c02 100644
--- a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html
+++ b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html
@@ -32,6 +32,10 @@ test(function() {
assert_equals(element.relList.length, 2);
assert_equals(element.relList[0], "first");
assert_equals(element.relList[1], "second");
+ // Test that relList is [SameObject].
+ let savedRelList = element.relList;
+ element.rel = "something";
+ assert_equals(element.relList, savedRelList);
// Test that supports() is returning true for valid values
// and false for invalid ones.
diff --git a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html
index 1c818760a11..1099819cd94 100644
--- a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html
+++ b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html
@@ -32,6 +32,10 @@ test(function() {
assert_equals(element.relList.length, 2);
assert_equals(element.relList[0], "first");
assert_equals(element.relList[1], "second");
+ // Test that relList is [SameObject].
+ let savedRelList = element.relList;
+ element.rel = "something";
+ assert_equals(element.relList, savedRelList);
// Test that supports() is returning true for valid values
// and false for invalid ones.
diff --git a/tests/wpt/web-platform-tests/images/pattern.mp4 b/tests/wpt/web-platform-tests/images/pattern.mp4
new file mode 100644
index 00000000000..c866bfedf91
--- /dev/null
+++ b/tests/wpt/web-platform-tests/images/pattern.mp4
Binary files differ
diff --git a/tests/wpt/web-platform-tests/interfaces/OWNERS b/tests/wpt/web-platform-tests/interfaces/OWNERS
index 7ccc510535f..8a9a649b729 100644
--- a/tests/wpt/web-platform-tests/interfaces/OWNERS
+++ b/tests/wpt/web-platform-tests/interfaces/OWNERS
@@ -1,4 +1,3 @@
@domenic
@jensl
-@tobie
@yuki3
diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/WebCryptoAPI.idl b/tests/wpt/web-platform-tests/interfaces/WebCryptoAPI.idl
index 132c6d076ca..132c6d076ca 100644
--- a/tests/wpt/web-platform-tests/WebCryptoAPI/WebCryptoAPI.idl
+++ b/tests/wpt/web-platform-tests/interfaces/WebCryptoAPI.idl
diff --git a/tests/wpt/web-platform-tests/interfaces/gamepad.idl b/tests/wpt/web-platform-tests/interfaces/gamepad.idl
new file mode 100644
index 00000000000..0f7ca2c4702
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/gamepad.idl
@@ -0,0 +1,33 @@
+interface Gamepad {
+ readonly attribute DOMString id;
+ readonly attribute long index;
+ readonly attribute boolean connected;
+ readonly attribute DOMHighResTimeStamp timestamp;
+ readonly attribute GamepadMappingType mapping;
+ readonly attribute FrozenArray<double> axes;
+ readonly attribute FrozenArray<GamepadButton> buttons;
+};
+
+interface GamepadButton {
+ readonly attribute boolean pressed;
+ readonly attribute boolean touched;
+ readonly attribute double value;
+};
+
+enum GamepadMappingType {
+ "",
+ "standard",
+};
+
+partial interface Navigator {
+ sequence<Gamepad?> getGamepads();
+};
+
+[Constructor(GamepadEventInit eventInitDict)]
+interface GamepadEvent : Event {
+ readonly attribute Gamepad gamepad;
+};
+
+dictionary GamepadEventInit : EventInit {
+ required Gamepad gamepad;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/html.idl b/tests/wpt/web-platform-tests/interfaces/html.idl
index e272fb823bc..b2a1ec30d82 100644
--- a/tests/wpt/web-platform-tests/interfaces/html.idl
+++ b/tests/wpt/web-platform-tests/interfaces/html.idl
@@ -1133,7 +1133,7 @@ dictionary AssignedNodesOptions {
boolean flatten = false;
};
-typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
+typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext) RenderingContext;
[Exposed=Window,
HTMLConstructor]
diff --git a/tests/wpt/web-platform-tests/interfaces/proximity.idl b/tests/wpt/web-platform-tests/interfaces/proximity.idl
new file mode 100644
index 00000000000..89397290544
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/proximity.idl
@@ -0,0 +1,6 @@
+[Constructor(optional SensorOptions sensorOptions), SecureContext, Exposed=Window]
+interface ProximitySensor : Sensor {
+ readonly attribute double? distance;
+ readonly attribute double? max;
+ readonly attribute boolean? near;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl
new file mode 100644
index 00000000000..4d16ddbe282
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl
@@ -0,0 +1,180 @@
+[SecureContext, Exposed=Window] interface XR : EventTarget {
+ // Methods
+ Promise<XRDevice?> requestDevice();
+
+ // Events
+ attribute EventHandler ondevicechange;
+};
+
+[SecureContext]
+partial interface Navigator {
+ [SameObject] readonly attribute XR xr;
+};
+
+[SecureContext, Exposed=Window] interface XRDevice : EventTarget {
+ // Attributes
+ readonly attribute boolean external;
+
+ // Methods
+ Promise<void> supportsSession(optional XRSessionCreationOptions options);
+ Promise<XRSession> requestSession(optional XRSessionCreationOptions options);
+};
+
+dictionary XRSessionCreationOptions {
+ boolean exclusive = false;
+ XRPresentationContext outputContext;
+};
+
+[SecureContext, Exposed=Window] interface XRSession : EventTarget {
+ // Attributes
+ readonly attribute XRDevice device;
+ readonly attribute boolean exclusive;
+ readonly attribute XRPresentationContext outputContext;
+
+ attribute double depthNear;
+ attribute double depthFar;
+ attribute XRLayer baseLayer;
+
+ // Methods
+ Promise<XRFrameOfReference> requestFrameOfReference(XRFrameOfReferenceType type, optional XRFrameOfReferenceOptions options);
+
+ long requestAnimationFrame(XRFrameRequestCallback callback);
+ void cancelAnimationFrame(long handle);
+
+ Promise<void> end();
+
+ // Events
+ attribute EventHandler onblur;
+ attribute EventHandler onfocus;
+ attribute EventHandler onresetpose;
+ attribute EventHandler onend;
+};
+
+callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRPresentationFrame frame);
+
+[SecureContext, Exposed=Window] interface XRPresentationFrame {
+ readonly attribute FrozenArray<XRView> views;
+
+ XRDevicePose? getDevicePose(XRCoordinateSystem coordinateSystem);
+};
+
+[SecureContext, Exposed=Window] interface XRCoordinateSystem : EventTarget {
+ Float32Array? getTransformTo(XRCoordinateSystem other);
+};
+
+enum XRFrameOfReferenceType {
+ "headModel",
+ "eyeLevel",
+ "stage",
+};
+
+dictionary XRFrameOfReferenceOptions {
+ boolean disableStageEmulation = false;
+ double stageEmulationHeight = 0.0;
+};
+
+[SecureContext, Exposed=Window] interface XRFrameOfReference : XRCoordinateSystem {
+ readonly attribute XRStageBounds? bounds;
+ readonly attribute double emulatedHeight;
+
+ attribute EventHandler onboundschange;
+};
+
+[SecureContext, Exposed=Window] interface XRStageBounds {
+ readonly attribute FrozenArray<XRStageBoundsPoint> geometry;
+};
+
+[SecureContext, Exposed=Window] interface XRStageBoundsPoint {
+ readonly attribute double x;
+ readonly attribute double z;
+};
+
+enum XREye {
+ "left",
+ "right"
+};
+
+[SecureContext, Exposed=Window] interface XRView {
+ readonly attribute XREye eye;
+ readonly attribute Float32Array projectionMatrix;
+
+ XRViewport? getViewport(XRLayer layer);
+};
+
+[SecureContext, Exposed=Window] interface XRViewport {
+ readonly attribute long x;
+ readonly attribute long y;
+ readonly attribute long width;
+ readonly attribute long height;
+};
+
+[SecureContext, Exposed=Window] interface XRDevicePose {
+ readonly attribute Float32Array poseModelMatrix;
+
+ Float32Array getViewMatrix(XRView view);
+};
+
+[SecureContext, Exposed=Window] interface XRLayer {};
+
+typedef (WebGLRenderingContext or
+ WebGL2RenderingContext) XRWebGLRenderingContext;
+
+dictionary XRWebGLLayerInit {
+ boolean antialias = true;
+ boolean depth = false;
+ boolean stencil = false;
+ boolean alpha = true;
+ boolean multiview = false;
+ double framebufferScaleFactor;
+};
+
+[SecureContext, Exposed=Window, Constructor(XRSession session,
+ XRWebGLRenderingContext context,
+ optional XRWebGLLayerInit layerInit)]
+interface XRWebGLLayer : XRLayer {
+ // Attributes
+ readonly attribute XRWebGLRenderingContext context;
+
+ readonly attribute boolean antialias;
+ readonly attribute boolean depth;
+ readonly attribute boolean stencil;
+ readonly attribute boolean alpha;
+ readonly attribute boolean multiview;
+
+ readonly attribute WebGLFramebuffer framebuffer;
+ readonly attribute unsigned long framebufferWidth;
+ readonly attribute unsigned long framebufferHeight;
+
+ // Methods
+ void requestViewportScaling(double viewportScaleFactor);
+};
+
+partial dictionary WebGLContextAttributes {
+ XRDevice compatibleXRDevice = null;
+};
+
+partial interface mixin WebGLRenderingContextBase {
+ Promise<void> setCompatibleXRDevice(XRDevice device);
+};
+
+[SecureContext, Exposed=Window] interface XRPresentationContext {
+ readonly attribute HTMLCanvasElement canvas;
+};
+
+[SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)]
+interface XRSessionEvent : Event {
+ readonly attribute XRSession session;
+};
+
+dictionary XRSessionEventInit : EventInit {
+ required XRSession session;
+};
+
+[SecureContext, Exposed=Window, Constructor(DOMString type, XRCoordinateSystemEventInit eventInitDict)]
+interface XRCoordinateSystemEvent : Event {
+ readonly attribute XRCoordinateSystem coordinateSystem;
+};
+
+dictionary XRCoordinateSystemEventInit : EventInit {
+ required XRCoordinateSystem coordinateSystem;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/xhr.idl b/tests/wpt/web-platform-tests/interfaces/xhr.idl
new file mode 100644
index 00000000000..707e3550962
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/xhr.idl
@@ -0,0 +1,91 @@
+/*[Exposed=(Window,Worker)]*/
+interface XMLHttpRequestEventTarget : EventTarget {
+ // event handlers
+ attribute EventHandler onloadstart;
+ attribute EventHandler onprogress;
+ attribute EventHandler onabort;
+ attribute EventHandler onerror;
+ attribute EventHandler onload;
+ attribute EventHandler ontimeout;
+ attribute EventHandler onloadend;
+};
+
+/*[Exposed=(Window,Worker)]*/
+interface XMLHttpRequestUpload : XMLHttpRequestEventTarget {
+};
+
+enum XMLHttpRequestResponseType {
+ "",
+ "arraybuffer",
+ "blob",
+ "document",
+ "json",
+ "text"
+};
+
+[Constructor/*,
+ Exposed=(Window,Worker)*/]
+interface XMLHttpRequest : XMLHttpRequestEventTarget {
+ // event handler
+ attribute EventHandler onreadystatechange;
+
+ // states
+ const unsigned short UNSENT = 0;
+ const unsigned short OPENED = 1;
+ const unsigned short HEADERS_RECEIVED = 2;
+ const unsigned short LOADING = 3;
+ const unsigned short DONE = 4;
+ readonly attribute unsigned short readyState;
+
+ // request
+ void open(ByteString method, USVString url);
+ void open(ByteString method, USVString url, boolean async, optional USVString? username = null, optional USVString? password = null);
+ void setRequestHeader(ByteString name, ByteString value);
+ attribute unsigned long timeout;
+ attribute boolean withCredentials;
+ readonly attribute XMLHttpRequestUpload upload;
+ void send(optional (Document or BodyInit)? body = null);
+ void abort();
+
+ // response
+ readonly attribute USVString responseURL;
+ readonly attribute unsigned short status;
+ readonly attribute ByteString statusText;
+ ByteString? getResponseHeader(ByteString name);
+ ByteString getAllResponseHeaders();
+ void overrideMimeType(DOMString mime);
+ attribute XMLHttpRequestResponseType responseType;
+ readonly attribute any response;
+ readonly attribute USVString responseText;
+ [Exposed=Window] readonly attribute Document? responseXML;
+};
+
+typedef (File or USVString) FormDataEntryValue;
+
+[Constructor(optional HTMLFormElement form)/*,
+ Exposed=(Window,Worker)*/]
+interface FormData {
+ void append(USVString name, Blob value, optional USVString filename);
+ void append(USVString name, USVString value);
+ void delete(USVString name);
+ FormDataEntryValue? get(USVString name);
+ sequence<FormDataEntryValue> getAll(USVString name);
+ boolean has(USVString name);
+ void set(USVString name, Blob value, optional USVString filename);
+ void set(USVString name, USVString value);
+ /*iterable<USVString, FormDataEntryValue>;*/
+};
+
+[Constructor(DOMString type, optional ProgressEventInit eventInitDict)/*,
+ Exposed=(Window,Worker)*/]
+interface ProgressEvent : Event {
+ readonly attribute boolean lengthComputable;
+ readonly attribute unsigned long long loaded;
+ readonly attribute unsigned long long total;
+};
+
+dictionary ProgressEventInit : EventInit {
+ boolean lengthComputable = false;
+ unsigned long long loaded = 0;
+ unsigned long long total = 0;
+};
diff --git a/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html b/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html
index 4e06d57b6a3..9caa379f4f6 100644
--- a/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html
+++ b/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html
@@ -14,7 +14,7 @@ interface Navigator {
};
</pre>
<!--
- The reason of the failure of requestKeyboardLock test looks like a code defect in
+ The reason of the failure of keyboardLock test looks like a code defect in
idlharness.js. media-capabilities/idlharness.html is also impacted by this
issue. See https://codereview.chromium.org/2805763004/#ps620001, which
includes a potential fix.
@@ -22,8 +22,8 @@ interface Navigator {
-->
<pre id="idl" style="display: none">
partial interface Navigator {
- [SecureContext] Promise<void> requestKeyboardLock(optional sequence<DOMString> keyCodes = []);
- [SecureContext] void cancelKeyboardLock();
+ [SecureContext] Promise<void> keyboardLock(optional sequence<DOMString> keyCodes = []);
+ [SecureContext] void keyboardUnlock();
};
</pre>
<script>
diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html
index 8e84d14d465..d553c064d50 100644
--- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html
+++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html
@@ -5,11 +5,11 @@
'use strict';
promise_test((t) => {
- const p1 = navigator.requestKeyboardLock(['a', 'b']);
- const p2 = navigator.requestKeyboardLock(['c', 'd']);
+ const p1 = navigator.keyboardLock(['a', 'b']);
+ const p2 = navigator.keyboardLock(['c', 'd']);
return promise_rejects(t, null, p2,
- 'requestKeyboardLock() should only be ' +
+ 'keyboardLock() should only be ' +
'executed if another request has finished.');
-}, 'Keyboard Lock requestKeyboardLock twice in parallel');
+}, 'Keyboard Lock keyboardLock twice in parallel');
</script>
diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html
index 30f49054495..7670be4f383 100644
--- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html
+++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html
@@ -5,10 +5,10 @@
'use strict';
promise_test(() => {
- return navigator.requestKeyboardLock(['a', 'b'])
+ return navigator.keyboardLock(['a', 'b'])
.then(() => {
- return navigator.requestKeyboardLock(['c', 'd']);
+ return navigator.keyboardLock(['c', 'd']);
});
-}, 'Keyboard Lock requestKeyboardLock twice sequentially');
+}, 'Keyboard Lock keyboardLock twice sequentially');
</script>
diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html
index e6e0121e75e..6711decc121 100644
--- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock.https.html
+++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html
@@ -5,9 +5,9 @@
'use strict';
promise_test(() => {
- const p = navigator.requestKeyboardLock(['a', 'b']);
+ const p = navigator.keyboardLock(['a', 'b']);
assert_true(p instanceof Promise);
return p;
-}, 'Keyboard Lock requestKeyboardLock');
+}, 'Keyboard Lock keyboardLock');
</script>
diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-cancelKeyboardLock.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html
index 10fd50d3a79..ceb7a968949 100644
--- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-cancelKeyboardLock.https.html
+++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html
@@ -5,8 +5,8 @@
'use strict';
test(() => {
- assert_equals(navigator.cancelKeyboardLock(),
+ assert_equals(navigator.keyboardUnlock(),
undefined);
-}, 'Keyboard Lock cancelKeyboardLock');
+}, 'Keyboard Lock keyboardUnlock');
</script>
diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist
index dcabf436c52..b8728fefc35 100644
--- a/tests/wpt/web-platform-tests/lint.whitelist
+++ b/tests/wpt/web-platform-tests/lint.whitelist
@@ -38,6 +38,7 @@ TRAILING WHITESPACE: webaudio/*
TRAILING WHITESPACE: WebIDL/*
TRAILING WHITESPACE: webvtt/*
TRAILING WHITESPACE: encoding/legacy*/*
+TRAILING WHITESPACE: server-timing/resources/parsing/*.sub.headers
## File types that should never be checked ##
diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html
index f24b2b35646..56a1cc4f0f9 100644
--- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Magnetometer Feature Policy Test: Disabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index 08369810f5f..b5f6798e248 100644
--- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Magnetometer Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html
index 0086222cbc7..6cad267b6f5 100644
--- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Magnetometer Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html
index 7f8ce1a9675..24e2554bca2 100644
--- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Magnetometer Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html
index a967576eafc..59dfef5bf20 100644
--- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>Magnetometer Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/media-source/generate-config-change-tests.py b/tests/wpt/web-platform-tests/media-source/generate-config-change-tests.py
new file mode 100755
index 00000000000..4edb925b448
--- /dev/null
+++ b/tests/wpt/web-platform-tests/media-source/generate-config-change-tests.py
@@ -0,0 +1,226 @@
+#!/usr/bin/python
+# Copyright (C) 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""
+This is a script that generates the content and HTML files for Media Source
+codec config change LayoutTests.
+"""
+import json
+import os
+
+DURATION = 2
+MEDIA_FORMATS = ['webm', 'mp4']
+ENCODE_SETTINGS = [
+ ## Video-only files
+ # Frame rate changes
+ {'fs': '320x240', 'fr': 24, 'kfr': 8, 'c': '#ff0000', 'vbr': 128, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0},
+ {'fs': '320x240', 'fr': 30, 'kfr': 10, 'c': '#ff0000', 'vbr': 128, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0},
+ # Frame size change
+ {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ff00', 'vbr': 128, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0},
+ # Bitrate change
+ {'fs': '320x240', 'fr': 30, 'kfr': 10, 'c': '#ff00ff', 'vbr': 256, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0},
+
+ ## Audio-only files
+ # Bitrate/Codebook changes
+ {'fs': '0x0', 'fr': 0, 'kfr': 0, 'c': '#000000', 'vbr': 0, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000},
+ {'fs': '0x0', 'fr': 0, 'kfr': 0, 'c': '#000000', 'vbr': 0, 'abr': 192, 'asr': 44100, 'ach': 1, 'afreq': 4000},
+
+ ## Audio-Video files
+ # Frame size change.
+ {'fs': '320x240', 'fr': 30, 'kfr': 10, 'c': '#ff0000', 'vbr': 256, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000},
+ {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ff00', 'vbr': 256, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000},
+ # Audio bitrate change.
+ {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ff00', 'vbr': 256, 'abr': 192, 'asr': 44100, 'ach': 1, 'afreq': 4000},
+ # Video bitrate change.
+ {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ffff', 'vbr': 512, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000},
+]
+
+CONFIG_CHANGE_TESTS = [
+ ["v-framerate", 0, 1, "Tests %s video-only frame rate changes."],
+ ["v-framesize", 1, 2, "Tests %s video-only frame size changes."],
+ ["v-bitrate", 1, 3, "Tests %s video-only bitrate changes."],
+ ["a-bitrate", 4, 5, "Tests %s audio-only bitrate changes."],
+ ["av-framesize", 6, 7, "Tests %s frame size changes in multiplexed content."],
+ ["av-audio-bitrate", 7, 8, "Tests %s audio bitrate changes in multiplexed content."],
+ ["av-video-bitrate", 7, 9, "Tests %s video bitrate changes in multiplexed content."]
+]
+
+CODEC_INFO = {
+ "mp4": {"audio": "mp4a.40.2", "video": "avc1.4D4001"},
+ "webm": {"audio": "vorbis", "video": "vp8"}
+}
+
+HTML_TEMPLATE = """<!DOCTYPE html>
+<html>
+ <head>
+ <script src="/w3c/resources/testharness.js"></script>
+ <script src="/w3c/resources/testharnessreport.js"></script>
+ <script src="mediasource-util.js"></script>
+ <script src="mediasource-config-changes.js"></script>
+ <link rel="stylesheet" href="/w3c/resources/testharness.css">
+ </head>
+ <body>
+ <div id="log"></div>
+ <script>
+ mediaSourceConfigChangeTest("%(media_format)s", "%(idA)s", "%(idB)s", "%(description)s");
+ </script>
+ </body>
+</html>
+"""
+
+def run(cmd_line):
+ os.system(" ".join(cmd_line))
+
+def generate_manifest(filename, media_filename, media_format, has_audio, has_video):
+ major_type = "audio"
+ if has_video:
+ major_type = "video"
+
+ codecs = []
+ if has_video:
+ codecs.append(CODEC_INFO[media_format]["video"])
+
+ if has_audio:
+ codecs.append(CODEC_INFO[media_format]["audio"])
+
+ mimetype = "%s/%s;codecs=\"%s\"" % (major_type, media_format, ",".join(codecs))
+
+ manifest = { 'url': media_filename, 'type': mimetype}
+
+ f = open(filename, "wb")
+ f.write(json.dumps(manifest, indent=4, separators=(',', ': ')))
+ f.close()
+
+def generate_test_html(media_format, config_change_tests, encoding_ids):
+ for test_info in config_change_tests:
+ filename = "../../media-source/mediasource-config-change-%s-%s.html" % (media_format, test_info[0])
+ html = HTML_TEMPLATE % {'media_format': media_format,
+ 'idA': encoding_ids[test_info[1]],
+ 'idB': encoding_ids[test_info[2]],
+ 'description': test_info[3] % (media_format)}
+ f = open(filename, "wb")
+ f.write(html)
+ f.close()
+
+
+def main():
+ encoding_ids = []
+
+ for media_format in MEDIA_FORMATS:
+ run(["mkdir ", media_format])
+
+ for settings in ENCODE_SETTINGS:
+ video_bitrate = settings['vbr']
+ has_video = (video_bitrate > 0)
+
+ audio_bitrate = settings['abr']
+ has_audio = (audio_bitrate > 0)
+ bitrate = video_bitrate + audio_bitrate
+
+ frame_size = settings['fs']
+ frame_rate = settings['fr']
+ keyframe_rate = settings['kfr']
+ color = settings['c']
+
+ sample_rate = settings['asr']
+ channels = settings['ach']
+ frequency = settings['afreq']
+
+ cmdline = ["ffmpeg", "-y"]
+
+ id_prefix = ""
+ id_params = ""
+ if has_audio:
+ id_prefix += "a"
+ id_params += "-%sHz-%sch" % (sample_rate, channels)
+
+ channel_layout = "FC"
+ sin_func = "sin(%s*2*PI*t)" % frequency
+ func = sin_func
+ if channels == 2:
+ channel_layout += "|BC"
+ func += "|" + sin_func
+
+ cmdline += ["-f", "lavfi", "-i", "aevalsrc=\"%s:s=%s:c=%s:d=%s\"" % (func, sample_rate, channel_layout, DURATION)]
+
+ if has_video:
+ id_prefix += "v"
+ id_params += "-%s-%sfps-%skfr" % (frame_size, frame_rate, keyframe_rate)
+
+ cmdline += ["-f", "lavfi", "-i", "color=%s:duration=%s:size=%s:rate=%s" % (color, DURATION, frame_size, frame_rate)]
+
+ if has_audio:
+ cmdline += ["-b:a", "%sk" % audio_bitrate]
+
+ if has_video:
+ cmdline += ["-b:v", "%sk" % video_bitrate]
+ cmdline += ["-keyint_min", "%s" % keyframe_rate]
+ cmdline += ["-g", "%s" % keyframe_rate]
+
+
+ textOverlayInfo = "'drawtext=fontfile=Mono:fontsize=32:text=Time\\\\:\\\\ %{pts}"
+ textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=32:text=Size\\\\:\\\\ %s" % (frame_size)
+ textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=64:text=Bitrate\\\\:\\\\ %s" % (bitrate)
+ textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=96:text=FrameRate\\\\:\\\\ %s" % (frame_rate)
+ textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=128:text=KeyFrameRate\\\\:\\\\ %s" % (keyframe_rate)
+
+ if has_audio:
+ textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=160:text=SampleRate\\\\:\\\\ %s" % (sample_rate)
+ textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=192:text=Channels\\\\:\\\\ %s" % (channels)
+
+ textOverlayInfo += "'"
+ cmdline += ["-vf", textOverlayInfo]
+
+ encoding_id = "%s-%sk%s" % (id_prefix, bitrate, id_params)
+
+ if len(encoding_ids) < len(ENCODE_SETTINGS):
+ encoding_ids.append(encoding_id)
+
+ filename_base = "%s/test-%s" % (media_format, encoding_id)
+ media_filename = filename_base + "." + media_format
+ manifest_filename = filename_base + "-manifest.json"
+
+ cmdline.append(media_filename)
+ run(cmdline)
+
+ # Remux file so it conforms to MSE bytestream requirements.
+ if media_format == "webm":
+ tmp_filename = media_filename + ".tmp"
+ run(["mse_webm_remuxer", media_filename, tmp_filename])
+ run(["mv", tmp_filename, media_filename])
+ elif media_format == "mp4":
+ run(["MP4Box", "-dash", "250", "-rap", media_filename])
+ run(["mv", filename_base + "_dash.mp4", media_filename])
+ run(["rm", filename_base + "_dash.mpd"])
+
+ generate_manifest(manifest_filename, media_filename, media_format, has_audio, has_video)
+ generate_test_html(media_format, CONFIG_CHANGE_TESTS, encoding_ids)
+
+if '__main__' == __name__:
+ main()
diff --git a/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js b/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js
index ea99b8ba5e4..b28aa90f1f3 100644
--- a/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js
+++ b/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js
@@ -68,9 +68,10 @@ function mediaSourceConfigChangeTest(directory, idA, idB, description)
assert_false(sourceBuffer.updating, "updating");
// Truncate the presentation to a duration of 2 seconds.
+ // First, explicitly remove the media beyond 2 seconds.
sourceBuffer.remove(2, Infinity);
- assert_true(sourceBuffer.updating, "updating");
+ assert_true(sourceBuffer.updating, "sourceBuffer.updating during range removal");
test.expectEvent(sourceBuffer, 'updatestart', 'sourceBuffer');
test.expectEvent(sourceBuffer, 'update', 'sourceBuffer');
test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
@@ -78,11 +79,13 @@ function mediaSourceConfigChangeTest(directory, idA, idB, description)
test.waitForExpectedEvents(function()
{
- assert_false(sourceBuffer.updating, "updating");
+ assert_false(sourceBuffer.updating, "sourceBuffer.updating prior to duration reduction");
assert_greater_than(mediaSource.duration, 2, "duration");
- // Truncate the presentation to a duration of 2 seconds.
+ // Complete the truncation of presentation to 2 second
+ // duration.
mediaSource.duration = 2;
+ assert_false(sourceBuffer.updating, "sourceBuffer.updating synchronously after duration reduction");
test.expectEvent(mediaElement, "durationchange");
});
diff --git a/tests/wpt/web-platform-tests/media-source/mediasource-play.html b/tests/wpt/web-platform-tests/media-source/mediasource-play.html
index 5bbfa29d7e8..62fb04681ae 100644
--- a/tests/wpt/web-platform-tests/media-source/mediasource-play.html
+++ b/tests/wpt/web-platform-tests/media-source/mediasource-play.html
@@ -19,15 +19,20 @@
test.expectEvent(sourceBuffer, 'update', 'sourceBuffer');
test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
+ assert_false(sourceBuffer.updating, "sourceBuffer.updating");
+
sourceBuffer.appendBuffer(mediaData);
+ assert_true(sourceBuffer.updating, "sourceBuffer.updating");
+
test.waitForExpectedEvents(function()
{
- assert_false(sourceBuffer.updating, "updating");
+ assert_false(sourceBuffer.updating, "sourceBuffer.updating");
- sourceBuffer.remove(1, Infinity);
+ // Truncate the buffered media to about 1 second duration.
+ sourceBuffer.remove(1, +Infinity);
- assert_true(sourceBuffer.updating, "updating");
+ assert_true(sourceBuffer.updating, "sourceBuffer.updating");
test.expectEvent(sourceBuffer, 'updatestart', 'sourceBuffer');
test.expectEvent(sourceBuffer, 'update', 'sourceBuffer');
test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
@@ -38,6 +43,7 @@
assert_false(sourceBuffer.updating, "updating");
assert_greater_than(mediaSource.duration, 1, "duration");
+ // Complete truncation of duration to 1 second.
mediaSource.duration = 1;
test.expectEvent(mediaElement, "durationchange");
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html
index cec214bbc26..ccefe2ea23e 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AbsoluteOrientationSensor Feature Policy Test: Disabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index 2a5debec2cc..6aed47d4ddf 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AbsoluteOrientationSensor Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html
index 0b5698f168a..51bbba1cae4 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AbsoluteOrientationSensor Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html
index 80ed027b09f..c0b4cc8ed30 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AbsoluteOrientationSensor Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html
index 6e3e4d49ca7..9ce51ab6448 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>AbsoluteOrientationSensor Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html
index 2c6318fb6af..9296af8ea6c 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>RelativeOrientationSensor Feature Policy Test: Disabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
index 71d261f0ea9..01b45b09935 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>RelativeOrientationSensor Feature Policy Test: Enabled by attribute redirect on load</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html
index 88c023d6249..1bf41196663 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>RelativeOrientationSensor Feature Policy Test: Enabled by attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html
index 7ec65e0609d..7ea2fb50f3b 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>RelativeOrientationSensor Feature Policy Test: Enabled</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html
index 4828d0bc905..6d677bf0d42 100644
--- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html
+++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<body>
+<title>RelativeOrientationSensor Feature Policy Test: Enabled on self origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
index eb58b6a7ece..fd66493bf4f 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
@@ -22,7 +22,7 @@ test(() => {
try {
new PaymentRequestUpdateEvent("test");
} catch (err) {
- assert_true(false, `Unexpected exception: ${err.message}`);
+ assert_unreached(`Unexpected exception: ${err.message}`);
}
}, "PaymentRequestUpdateEvent can be constructed in secure-context");
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html
index 8fc4bafcf04..cfcdb75a66b 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html
@@ -43,7 +43,7 @@ promise_test(async t => {
try {
await request.abort();
} catch (err) {
- assert_true(false, "Unexpected promise rejection: " + err.message);
+ assert_unreached("Unexpected promise rejection: " + err.message);
}
// The request is now "closed", so...
await promise_rejects(t, "InvalidStateError", request.abort());
@@ -55,7 +55,7 @@ promise_test(async t => {
try {
await request.abort();
} catch (err) {
- assert_true(false, "Unexpected promise rejection: " + err.message);
+ assert_unreached("Unexpected promise rejection: " + err.message);
}
await promise_rejects(t, "AbortError", acceptPromise);
// As request is now "closed", trying to show it will fail
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html
index 1d0b88d2a1c..1325681a4ac 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html
@@ -81,7 +81,7 @@ test(() => {
try {
new PaymentRequest(evilMethods, defaultDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, let's add an abusive amount of methods.
while (evilMethods.length < ABUSIVE_AMOUNT) {
@@ -92,7 +92,6 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if there is an abusive number of payment methods in the methodData sequence");
// PaymentMethodData.supportedMethods
@@ -102,18 +101,19 @@ test(() => {
try {
new PaymentRequest([{ supportedMethods }], defaultDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we make supportedMethods super large
- const evilMethodData = [{
- supportedMethods: supportedMethods.repeat(ABUSIVE_AMOUNT),
- }];
+ const evilMethodData = [
+ {
+ supportedMethods: supportedMethods.repeat(ABUSIVE_AMOUNT),
+ },
+ ];
try {
new PaymentRequest(evilMethodData, defaultDetails);
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if PaymentMethodData.supportedMethods is an abusive length");
// PaymentDetailsInit.id
@@ -126,7 +126,7 @@ test(() => {
Object.assign({}, defaultDetails, { id })
);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we make the id super large;
const evilDetails = Object.assign({}, defaultDetails, {
@@ -137,7 +137,6 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if the request id has an abusive length");
// PaymentDetailsInit.total.label
@@ -147,7 +146,7 @@ test(() => {
try {
new PaymentRequest(defaultMethods, evilDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we make the label super large;
evilDetails.total = {
@@ -159,7 +158,6 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if PaymentDetailsInit.total.label is an abusive length");
test(() => {
@@ -168,7 +166,7 @@ test(() => {
try {
new PaymentRequest(defaultMethods, evilDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we can use evilAmount
evilDetails.total = evilAmount;
@@ -177,7 +175,6 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if total.amount.value is an abusive length");
for (const [prop, defaultValue] of [
@@ -191,7 +188,7 @@ for (const [prop, defaultValue] of [
try {
new PaymentRequest(defaultMethods, evilDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
while (evilDetails[prop].length < ABUSIVE_AMOUNT) {
evilDetails[prop] = evilDetails[prop].concat(evilDetails[prop]);
@@ -202,7 +199,6 @@ for (const [prop, defaultValue] of [
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, `Don't crash if details.${prop} has an abusive number of items`);
}
@@ -214,7 +210,7 @@ test(() => {
try {
new PaymentRequest(defaultMethods, evilDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we make the label super large;
evilShippingOption.label = "l".repeat(ABUSIVE_AMOUNT);
@@ -223,7 +219,6 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if PaymentShippingOptions.label is an abusive length");
test(() => {
@@ -234,7 +229,7 @@ test(() => {
try {
new PaymentRequest(defaultMethods, evilDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we make use of evilAmount;
evilShippingOption.amount = evilAmount;
@@ -243,7 +238,6 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if the PaymentShippingOptions.amount.value is an abusive length");
test(() => {
@@ -254,7 +248,7 @@ test(() => {
try {
new PaymentRequest(defaultMethods, evilDetails);
} catch (err) {
- assert_true(false, "failed smoke test: " + err.stack);
+ assert_unreached("failed smoke test: " + err.stack);
}
// Now, we make the label super large;
evilDisplayItem.label = "l".repeat(ABUSIVE_AMOUNT);
@@ -263,8 +257,5 @@ test(() => {
} catch (err) {
assert_equals(err.name, "TypeError", "must be a TypeError");
}
- assert_true(true, "Didn't crash");
}, "Don't crash if PaymentItem.label is an abusive length");
-
-
</script>
diff --git a/tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html b/tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html
new file mode 100644
index 00000000000..eb660f7125a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>PerformanceObserver: takeRecords</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="performanceobservers.js"></script>
+<script>
+ async_test(function (t) {
+ const observer = new PerformanceObserver(function (entryList, observer) {
+ assert_unreached('This callback should not have been called.')
+ });
+ let entries = observer.takeRecords();
+ checkEntries(entries, [], 'No records before observe');
+ observer.observe({entryTypes: ['mark']});
+ assert_equals(typeof(observer.takeRecords), 'function');
+ entries = observer.takeRecords();
+ checkEntries(entries, [], 'No records just from observe');
+ performance.mark('a');
+ performance.mark('b');
+ entries = observer.takeRecords();
+ checkEntries(entries, [
+ {entryType: 'mark', name: 'a'},
+ {entryType: 'mark', name: 'b'}
+ ]);
+ performance.mark('c');
+ performance.mark('d');
+ performance.mark('e');
+ entries = observer.takeRecords();
+ checkEntries(entries, [
+ {entryType: 'mark', name: 'c'},
+ {entryType: 'mark', name: 'd'},
+ {entryType: 'mark', name: 'e'}
+ ]);
+ entries = observer.takeRecords();
+ checkEntries(entries, [], 'No entries right after takeRecords');
+ observer.disconnect();
+ t.done();
+ }, "Test PerformanceObserver's takeRecords()");
+</script>
diff --git a/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html b/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html
index 1e8fc1f53aa..c058d24a6e5 100644
--- a/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html
+++ b/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html
@@ -30,14 +30,14 @@
<div id="status-log">Waiting... Click to start loging.</div>
<div class="data-log">
- <table>
- <tr><td></td><td>X</td><td>Y</td></tr>
- <tr><td>client_init:</td><td id="clientX_init-log">X</td><td id="clientY_init-log">Y</td></tr>
- <tr><td>client_last:</td><td id="clientX_last-log">X</td><td id="clientY_last-log">Y</td></tr>
- <tr><td>client_delta:</td><td id="clientX_delta-log">X</td><td id="clientY_delta-log">Y</td></tr>
- <tr><td>movement_sum:</td><td id="movementX_sum-log">X</td><td id="movementY_sum-log">Y</td></tr>
- <tr><td>movement:</td><td id="movementX-log">X</td><td id="movementY-log">Y</td></tr>
- </table>
+ <table>
+ <tr><td></td><td>X</td><td>Y</td></tr>
+ <tr><td>screen_init:</td><td id="screenX_init-log">X</td><td id="screenY_init-log">Y</td></tr>
+ <tr><td>screen_last:</td><td id="screenX_last-log">X</td><td id="screenY_last-log">Y</td></tr>
+ <tr><td>screen_delta:</td><td id="screenX_delta-log">X</td><td id="screenY_delta-log">Y</td></tr>
+ <tr><td>movement_sum:</td><td id="movementX_sum-log">X</td><td id="movementY_sum-log">Y</td></tr>
+ <tr><td>movement:</td><td id="movementX-log">X</td><td id="movementY-log">Y</td></tr>
+ </table>
</div>
<hr/>
@@ -49,16 +49,16 @@
movementY_log = document.querySelector('#movementY-log'),
movementX_sum_log = document.querySelector('#movementX_sum-log'),
movementY_sum_log = document.querySelector('#movementY_sum-log'),
- clientX_init_log = document.querySelector('#clientX_init-log'),
- clientY_init_log = document.querySelector('#clientY_init-log'),
- clientX_last_log = document.querySelector('#clientX_last-log'),
- clientY_last_log = document.querySelector('#clientY_last-log');
- clientX_delta_log = document.querySelector('#clientX_delta-log'),
- clientY_delta_log = document.querySelector('#clientY_delta-log');
+ screenX_init_log = document.querySelector('#screenX_init-log'),
+ screenY_init_log = document.querySelector('#screenY_init-log'),
+ screenX_last_log = document.querySelector('#screenX_last-log'),
+ screenY_last_log = document.querySelector('#screenY_last-log');
+ screenX_delta_log = document.querySelector('#screenX_delta-log'),
+ screenY_delta_log = document.querySelector('#screenY_delta-log');
var click_counter = 0;
- var clientX_init, clientY_init, movementX, movementY, movementX_sum, movementY_sum, clientX_last, clientY_last;
+ var screenX_init, screenY_init, movementX, movementY, movementX_sum, movementY_sum, screenX_last, screenY_last;
var movementX_Y_inside_window_Test = async_test("Test that movementX/Y = eNow.screenX/Y-ePrevious.screenX/Y.");
@@ -72,11 +72,9 @@
case 2:
status_log.innerHTML = "inside window: done";
- // approximately(+/- 10)
- // a little drift should be tollerated
movementX_Y_inside_window_Test.step(function() {
- assert_equals(movementX_sum, clientX_last - clientX_init, "sum of movementX = clientX_init - clientX_last");
- assert_equals(movementY_sum, clientY_last - clientY_init, "sum of movementY = clientY_init - clientY_last");
+ assert_equals(movementX_sum, screenX_last - screenX_init, "sum of movementX = screenX_last - screenX_init");
+ assert_equals(movementY_sum, screenY_last - screenY_init, "sum of movementY = screenY_last - screenY_init");
});
movementX_Y_inside_window_Test.done();
break;
@@ -88,32 +86,39 @@
movementY = e.movementY;
if(click_counter === 1) {
- if(!clientX_init) {
- clientX_init = e.clientX;
- clientY_init = e.clientY;
- movementX_sum = movementX;
- movementY_sum = movementY;
+ if(!screenX_init) {
+ screenX_init = screenX_last = e.screenX;
+ screenY_init = screenY_last = e.screenY;
+ movementX_sum = 0;
+ movementY_sum = 0;
}
+ else {
+ movementX_sum += movementX;
+ movementY_sum += movementY;
- movementX_sum += movementX;
- movementY_sum += movementY;
+ screenX_delta = e.screenX - screenX_last;
+ screenY_delta = e.screenY - screenY_last;
- clientX_last = e.clientX;
- clientY_last = e.clientY;
- clientX_delta = clientX_last - clientX_init;
- clientY_delta = clientY_last - clientY_init;
+ movementX_Y_inside_window_Test.step(function() {
+ assert_equals(movementX, screenX_delta, "movementX = screen_delta");
+ assert_equals(movementY, screenY_delta, "movementY = screen_delta");
+ });
- updateData();
+ screenX_last = e.screenX;
+ screenY_last = e.screenY;
+
+ updateData();
+ }
}
});
function updateData() {
- clientX_init_log.innerHTML = clientX_init;
- clientY_init_log.innerHTML = clientY_init;
- clientX_last_log.innerHTML = clientX_last;
- clientY_last_log.innerHTML = clientY_last;
- clientX_delta_log.innerHTML = clientX_delta;
- clientY_delta_log.innerHTML = clientY_delta;
+ screenX_init_log.innerHTML = screenX_init;
+ screenY_init_log.innerHTML = screenY_init;
+ screenX_last_log.innerHTML = screenX_last;
+ screenY_last_log.innerHTML = screenY_last;
+ screenX_delta_log.innerHTML = screenX_delta;
+ screenY_delta_log.innerHTML = screenY_delta;
movementX_log.innerHTML = movementX;
movementY_log.innerHTML = movementY;
movementX_sum_log.innerHTML = movementX_sum;
diff --git a/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html b/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html
index f1afb684cb0..74d8dfa0ed6 100644
--- a/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html
+++ b/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html
@@ -31,7 +31,7 @@
return receiver.connectionList.then(list => {
connections = list.connections;
if (action === 'close') {
- assert_true(connections.length === number - 1 && connections.includes(connection),
+ assert_true(connections.length === number - 1 && !connections.includes(connection),
'A closed presentation connection is removed from the set of presentation controllers.');
} else if (action === 'connect') {
assert_true(connections.length === number + 1 && connections.includes(connection),
diff --git a/tests/wpt/web-platform-tests/proximity/idlharness.html b/tests/wpt/web-platform-tests/proximity/idlharness.html
deleted file mode 100644
index 4e30cca04ad..00000000000
--- a/tests/wpt/web-platform-tests/proximity/idlharness.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>Proximity Events IDL tests</title>
-<link rel="author" title="Intel" href="http://www.intel.com">
-<link rel="help" href="http://www.w3.org/TR/proximity/">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<style>
- pre {
- display: none;
- }
-</style>
-<div id="log"></div>
-
-<pre id="untested_idl">
-[Global=Window, Exposed=Window]
-interface Window {
-};
-
-interface Event {
-};
-
-dictionary EventInit {
-};
-</pre>
-
-<pre id='idl'>
-partial interface Window {
- attribute EventHandler ondeviceproximity;
- attribute EventHandler onuserproximity;
-};
-
-dictionary DeviceProximityEventInit : EventInit {
- double value;
- double min;
- double max;
-};
-
-[Constructor (DOMString type, optional DeviceProximityEventInit eventInitDict)]
-interface DeviceProximityEvent : Event {
- readonly attribute unrestricted double value;
- readonly attribute unrestricted double min;
- readonly attribute unrestricted double max;
-};
-
-dictionary UserProximityEventInit : EventInit {
- boolean near;
-};
-
-[Constructor (DOMString type, optional UserProximityEventInit eventInitDict)]
-interface UserProximityEvent : Event {
- readonly attribute boolean near;
-};
-</pre>
-
-<script>
-(function() {
- "use strict";
- var idl_array = new IdlArray();
- // replace 'EventHandler' and 'unrestricted double' unrecognised by idlharness.js
- var idls = document.getElementById('idl').textContent.replace(/EventHandler/g, 'Function?').replace(/unrestricted double/g, 'double');
-
- idl_array.add_untested_idls(document.getElementById('untested_idl').textContent);
- idl_array.add_idls(idls);
-
- idl_array.add_objects({
- Window: ['window'],
- DeviceProximityEvent: ['new DeviceProximityEvent("foo")'],
- UserProximityEvent: ['new UserProximityEvent("foo")']
- });
-
- idl_array.test();
-})();
-</script>
-
diff --git a/tests/wpt/web-platform-tests/proximity/idlharness.https.html b/tests/wpt/web-platform-tests/proximity/idlharness.https.html
new file mode 100644
index 00000000000..2bfc7d1db3f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/proximity/idlharness.https.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Proximity Sensor IDL tests</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://w3c.github.io/proximity/">
+<link rel="help" href="https://w3c.github.io/sensors/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script>
+"use strict";
+
+function doTest([dom, generic_sensor, proximity]) {
+ const idl_array = new IdlArray();
+ idl_array.add_untested_idls(dom);
+ idl_array.add_untested_idls('interface EventHandler {};');
+ idl_array.add_idls(generic_sensor, { only: ['Sensor'] });
+ idl_array.add_idls(proximity);
+ idl_array.add_objects({
+ ProximitySensor: ['new ProximitySensor();']
+ });
+ idl_array.test();
+}
+
+function fetchText(url) {
+ return fetch(url).then((response) => response.text());
+}
+
+promise_test(() => {
+ return Promise.all([
+ "/interfaces/dom.idl",
+ "/interfaces/generic-sensor.idl",
+ "/interfaces/proximity.idl",
+ ].map(fetchText)).then(doTest);
+}, "Test IDL implementation of Proximity Sensor");
+</script>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html
index c918802bf32..d2bcab912ed 100644
--- a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html
@@ -11,12 +11,12 @@
<script src="resources/webperftestharnessextension.js"></script>
<script>
setup({explicit_done: true});
-var iframe;
-var d;
-var body;
+let iframe;
+let d;
+let body;
-// explicitly test the namespace before we start testing
-test_namespace("getEntriesByType");
+// Explicitly test the namespace before we start testing.
+test_namespace('getEntriesByType');
function setup_iframe() {
iframe = document.getElementById('frameContext');
@@ -30,17 +30,17 @@ function onload_test() {
done();
return;
}
- var context = new PerformanceContext(iframe.contentWindow.performance);
- var entries = context.getEntriesByType('resource');
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
- // when a persistent connection is used, follow-on resources should be included as PerformanceResourceTiming objects
+ // When a persistent connection is used, follow-on resources should be included as PerformanceResourceTiming objects.
test_equals(entries.length, 2, 'There should be 2 PerformanceEntries');
if (entries.length >= 2) {
- // when a persistent connection is used, for the resource that reuses the socket, connectStart and connectEnd should have the same value as fetchStart
- var entry = entries[1];
- test_equals(entry.fetchStart, entry.connectStart, "connectStart and fetchStart should be the same");
- test_equals(entry.fetchStart, entry.connectEnd, "connectEnd and fetchStart should be the same");
+ // When a persistent connection is used, for the resource that reuses the socket, connectStart and connectEnd should have the same value as fetchStart.
+ const entry = entries[1];
+ test_equals(entry.fetchStart, entry.connectStart, 'connectStart and fetchStart should be the same');
+ test_equals(entry.fetchStart, entry.connectEnd, 'connectEnd and fetchStart should be the same');
}
done();
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_dedicated_worker.html b/tests/wpt/web-platform-tests/resource-timing/resource_dedicated_worker.html
new file mode 100644
index 00000000000..6d27245ab9c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_dedicated_worker.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing in dedicated workers</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<link rel="stylesheet" href="resources/resource_timing_test0.css" />
+<script>
+setup({explicit_done: true});
+const worker = new Worker("resources/worker_with_images.js");
+worker.onmessage = function(event) {
+ const context = new PerformanceContext(window.performance);
+ const entries = context.getEntriesByType('resource');
+ test_equals(entries.length, 6, "There should be six entries: 4 scripts, 1 stylesheet, and the worker itself");
+ done();
+}
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that resources requested by dedicated workers don't appear in the main document.</p>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html b/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html
index c669a383803..de3c3d015d1 100644
--- a/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html
@@ -10,27 +10,27 @@
<script src="resources/webperftestharness.js"></script>
<script src="resources/webperftestharnessextension.js"></script>
<script>
-// explicitly test the namespace before we start testing
+// Explicitly test the namespace before we start testing.
test_namespace("getEntriesByType");
-var iframe;
+let iframe;
function setup_iframe() {
iframe = document.getElementById('frameContext');
- var d = iframe.contentWindow.document;
- var body = d.createElement('body');
+ const d = iframe.contentWindow.document;
+ const body = d.createElement('body');
d.getElementsByTagName('html')[0].appendChild(body);
- var style = d.createElement('link');
+ const style = d.createElement('link');
style.rel = 'stylesheet';
style.href = 'resource_timing_test0.css';
body.appendChild(style);
- var image = d.createElement('img');
+ const image = d.createElement('img');
image.src = 'resource_timing_test0.png';
body.appendChild(image);
- var subframe = d.createElement('iframe');
+ const subframe = d.createElement('iframe');
subframe.src = 'inject_resource_test.html';
body.appendChild(subframe);
}
@@ -39,13 +39,13 @@ function onload_test() {
done();
return;
}
- var context = new PerformanceContext(iframe.contentWindow.performance);
- var entries = context.getEntriesByType('resource');
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
- var index = window.location.pathname.lastIndexOf('/');
- var pathname = window.location.pathname.substring(0, index) + '/';
+ const index = window.location.pathname.lastIndexOf('/');
+ const pathname = window.location.pathname.substring(0, index) + '/';
- var expected_entries = { };
+ let expected_entries = { };
expected_entries[ pathname + 'resources/resource_timing_test0.css' ] = 'link',
expected_entries[ pathname + 'resources/resource_timing_test0.png' ] = 'img',
expected_entries[ pathname + 'resources/inject_resource_test.html' ] = 'iframe',
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_frame_initiator_type.html b/tests/wpt/web-platform-tests/resource-timing/resource_frame_initiator_type.html
new file mode 100644
index 00000000000..f6471988624
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_frame_initiator_type.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing frame initiator type</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+setup({explicit_done: true});
+
+function onload_test() {
+ const iframe = document.getElementById('frameContext');
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+
+ const index = window.location.pathname.lastIndexOf('/');
+ const pathname = window.location.pathname.substring(0, index) +
+ '/resources/blank_page_green.htm';
+ const expected_entries = {};
+ expected_entries[pathname] = 'frame';
+
+ test_resource_entries(entries, expected_entries);
+ done();
+}
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that the frame initiator type is represented.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/green_frame.htm" style="width: 250px; height: 250px;"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html
new file mode 100644
index 00000000000..f8ca2f1187e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing ignores requests for data: URIs</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+let iframe;
+function setup_iframe() {
+ const iframe_content = '<img src="data:image/gif;base64,R0lGODlhAQABAIAAAOTm7AAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></img>';
+ iframe = document.getElementById('frameContext');
+ iframe.contentWindow.document.write(iframe_content);
+}
+function onload_test() {
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+ test_true(entries.length == 0, "entries.length == 0");
+}
+window.setup_iframe = setup_iframe;
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that resources with data: URIs aren't present in the Resource Timing buffer.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/inject_resource_test.html"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html
new file mode 100644
index 00000000000..fa9e411ea98
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing ignores failed resources</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+let iframe;
+function setup_iframe() {
+ const iframe_content = '<img src="resources/non-existing-file.png"></img>';
+ iframe = document.getElementById('frameContext');
+ iframe.contentWindow.document.write(iframe_content);
+}
+function onload_test() {
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+ test_true(entries.length == 0, "entries.length == 0");
+}
+window.setup_iframe = setup_iframe;
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that failed resources aren't present in the Resource Timing buffer.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/inject_resource_test.html"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html b/tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html
new file mode 100644
index 00000000000..b7c4c8b257e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing initiator types</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+setup({explicit_done: true, timeout: 30000});
+
+let background_loaded = false;
+let page_loaded = false;
+let ol_font_loaded = false;
+let ul_font_loaded = false;
+let xhr_loaded = false;
+
+function check_finished() {
+ if (!ul_font_loaded) {
+ ul_font_loaded = check_font_loaded('ul');
+ }
+ if (!ol_font_loaded) {
+ ol_font_loaded = check_font_loaded('ol');
+ }
+ if (page_loaded && ol_font_loaded && ul_font_loaded && background_loaded && xhr_loaded) {
+ perform_test();
+ } else {
+ step_timeout(check_finished, 100);
+ }
+}
+
+function check_font_loaded(type) {
+ const width_var_name = 'original_width_' + type;
+ const element_var_name = 'element_' + type;
+ if (!this.hasOwnProperty(width_var_name)) {
+ const d = document.getElementById('frameContext').contentWindow.document;
+ const list = d.createElement(type);
+ const li = d.createElement('li');
+ li.innerHTML = 'width_test';
+ list.appendChild(li);
+ d.getElementsByTagName('body')[0].appendChild(list);
+ this[element_var_name] = list;
+ this[width_var_name] = li.offsetHeight;
+ }
+ return this[width_var_name] != this[element_var_name].offsetHeight;
+}
+
+function onload_test() {
+ page_loaded = true;
+
+ const image = document.createElement('img');
+ image.src = 'resources/blue.png?id=n1';
+ background_loaded = image.complete;
+ if (!background_loaded) {
+ image.onload = function() {
+ background_loaded = true;
+ }
+ }
+
+ step_timeout(check_finished, 100);
+}
+
+function perform_test() {
+ const context = new PerformanceContext(document.getElementById('frameContext').contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+
+ const index = window.location.pathname.lastIndexOf('/');
+ const pathname = window.location.pathname.substring(0, index) + '/resources/';
+ const font_pathname = window.location.pathname.substring(0, index - 15) + 'fonts/Ahem.ttf';
+
+ let expected_entries = {};
+ expected_entries[font_pathname] = 'css';
+ expected_entries[pathname + 'resource_timing_test0.png'] = 'img';
+ expected_entries[pathname + 'blank_page_green.htm'] = 'iframe';
+ expected_entries[pathname + 'empty_script.js'] = 'script';
+ expected_entries[pathname + 'resource_timing_test0.css?id=embed'] = 'embed';
+ expected_entries[pathname + 'resource_timing_test0.css?id=n1'] = 'css';
+ expected_entries[font_pathname + '?id=n1'] = 'css';
+ expected_entries[pathname + 'blue.png?id=1'] = 'css';
+ expected_entries[pathname + 'blue.png?id=2'] = 'css';
+ expected_entries[pathname + 'blue.png?id=async_xhr'] = 'xmlhttprequest';
+ expected_entries[pathname + 'blue.png?id=body'] = 'body';
+ expected_entries[pathname + 'blue.png?id=input'] = 'input';
+ expected_entries[pathname + 'blue.png?id=n1'] = 'css';
+ expected_entries[pathname + 'blue.png?id=object'] = 'object';
+ expected_entries[pathname + 'blue.png?id=poster'] = 'video';
+ expected_entries[pathname + 'nested.css'] = 'link';
+
+ test_resource_entries(entries, expected_entries);
+ done();
+}
+
+window.on_test_body_created = check_finished;
+window.on_async_xhr_done = function() {
+ xhr_loaded = true;
+ check_finished();
+}
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that all of the initiator types are represented.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/all_resource_types.htm" style="width: 250px; height: 250px;"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html b/tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html
new file mode 100644
index 00000000000..236f69fba72
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing memory cached resources</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+setup({explicit_done: true});
+let d;
+let iframe;
+let iframeBody;
+let count = 0;
+function onload_prep() {
+ iframe = document.getElementById('frameContext');
+ d = iframe.contentWindow.document;
+ iframeBody = d.body;
+
+ const image = d.createElement('img');
+ image.addEventListener('load', function() {
+ step_timeout(onload_test, 0); });
+ image.src = 'blue.png?id=cached';
+ iframeBody.appendChild(image);
+
+ const image2 = d.createElement('img');
+ image2.addEventListener('load', function() {
+ step_timeout(onload_test, 0); });
+ image2.src = 'blue.png?id=cached';
+ iframeBody.appendChild(image2);
+}
+
+function onload_test() {
+ ++count;
+ if (count < 2)
+ return;
+
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+ test_equals(entries.length, 1, "There should be only one entry");
+
+ const index = window.location.pathname.lastIndexOf('/');
+ const pathname = window.location.pathname.substring(0, index);
+ let expected_entries = {};
+ expected_entries[pathname + '/resources/blue.png?id=cached'] = 'img';
+ test_resource_entries(entries, expected_entries);
+ test_greater_than(entries[0].requestStart, 0, 'requestStart should be non-zero on the same-origin request');
+ test_greater_or_equals(entries[0].responseEnd, entries[0].startTime, 'responseEnd should not be before startTime');
+ test_greater_or_equals(entries[0].duration, 0, 'duration should not be negative');
+
+ context.clearResourceTimings();
+ start_crossorigin_test();
+}
+function start_crossorigin_test() {
+ const image3 = d.createElement('img');
+ image3.addEventListener("load", function() { step_timeout(finish_crossorigin_test, 0); });
+ image3.src = 'http://{{domains[www1]}}:{{ports[http][1]}}{{location[path]}}/../resources/blue.png?id=cached';
+ iframeBody.appendChild(image3);
+}
+function finish_crossorigin_test() {
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+ test_equals(entries.length, 1, 'There should be one entry in second test');
+ test_true(entries[0].name.startsWith('http://{{domains[www1]}}:{{ports[http][1]}}'), 'Entry name should start with cross-origin domain');
+ test_true(entries[0].name.endsWith('/resources/blue.png?id=cached'), 'Entry name should end with file name');
+ test_equals(entries[0].requestStart, 0, 'requestStart should be 0 on the cross-origin request');
+ done();
+}
+window.setup_iframe = () => {};
+window.addEventListener('load', onload_prep);
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that a memory cached resource appears in the buffer once.</p>
+<div id="log"></div>
+<iframe id="frameContext" src="resources/inject_resource_test.html"></iframe>
+<img src="resources/blue.png?id=cached"></img>
+<img src="http://{{domains[www1]}}:{{ports[http][1]}}{{location[path]}}/../resources/blue.png?id=cached"></img>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html b/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html
new file mode 100644
index 00000000000..606662afda4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing redirect names</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+let iframe;
+function setup_iframe() {
+ const iframe_content =
+ '<link rel="stylesheet" href="/common/redirect.py?location=/resource-timing/resources/resource_timing_test0.css"></link>' +
+ '<img src="/common/redirect.py?location=/resource-timing/resources/blue.png"></img>' +
+ '<iframe src="/common/redirect.py?location=/resource-timing/resources/blank_page_green.htm"></iframe>' +
+ '<script src="/common/redirect.py?location=/resource-timing/resources/empty_script.js"></scr' + 'ipt>' +
+ '<scr' + 'ipt>' +
+ 'const xhr = new XMLHttpRequest;' +
+ 'xhr.open("GET", "/common/redirect.py?location=/resource-timing/resources/blank_page_green.htm?id=xhr", false);' +
+ 'xhr.send();' +
+ '</scr' + 'ipt>';
+ iframe = document.getElementById('frameContext');
+ iframe.contentWindow.document.write(iframe_content);
+}
+function onload_test() {
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+
+ const index = window.location.pathname.lastIndexOf('resource-timing');
+ const pathname = window.location.pathname.substring(0, index) +
+ 'common/redirect.py?location=/resource-timing/resources/';
+ let expected_entries = {};
+ expected_entries[pathname + 'resource_timing_test0.css'] = 'link';
+ expected_entries[pathname + 'blue.png'] = 'img';
+ expected_entries[pathname + 'blank_page_green.htm'] = 'iframe';
+ expected_entries[pathname + 'empty_script.js'] = 'script';
+ expected_entries[pathname + 'blank_page_green.htm?id=xhr'] = 'xmlhttprequest';
+
+ test_resource_entries(entries, expected_entries);
+}
+window.setup_iframe = setup_iframe;
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that redirects do not alter the URL.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/inject_resource_test.html"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html b/tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html
new file mode 100644
index 00000000000..7d4947fa770
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing reparenting elements</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+let iframe;
+function setup_iframe() {
+ iframe = document.getElementById('frameContext');
+ const d = iframe.contentWindow.document;
+ const iframeBody = d.createElement('body');
+
+ const move_to_parent = d.createElement('img');
+ move_to_parent.src = 'blue.png?id=move_to_parent';
+ iframeBody.appendChild(move_to_parent);
+ iframeBody.removeChild(move_to_parent);
+
+ const parentBody = document.getElementsByTagName('body')[0];
+ parentBody.appendChild(move_to_parent);
+
+ const move_to_child = document.createElement('img');
+ move_to_child.src = 'blue.png?id=move_to_child';
+ parentBody.appendChild(move_to_child);
+ parentBody.removeChild(move_to_child);
+ iframeBody.appendChild(move_to_child);
+}
+function onload_test() {
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+
+ const index = window.location.pathname.lastIndexOf('/');
+ const pathname = window.location.pathname.substring(0, index);
+ let expected_entries = {};
+ expected_entries[pathname + '/resources/blue.png?id=move_to_child'] = 'img';
+
+ test_resource_entries(entries, expected_entries);
+}
+window.setup_iframe = setup_iframe;
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that reparenting an element doesn't change the initiator document.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/inject_resource_test.html"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_script_types.html b/tests/wpt/web-platform-tests/resource-timing/resource_script_types.html
new file mode 100644
index 00000000000..898fa0cee2c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_script_types.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing script initiator types</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webperftestharness.js"></script>
+<script src="resources/webperftestharnessextension.js"></script>
+<script>
+setup({explicit_done: true});
+let iframe;
+function setup_iframe() {
+ const iframe_content =
+ '<script src="empty_script.js?id=1"></scr' + 'ipt>' +
+ '<script src="empty_script.js?id=2" async></scr' + 'ipt>' +
+ '<script src="empty_script.js?id=3" async=false></scr' + 'ipt>' +
+ '<script src="empty_script.js?id=4" defer></scr' + 'ipt>' +
+ '<script>' +
+ 'document.write("<script src=\\"empty_script.js?id=5\\"></scr" + "ipt>");' +
+ 'const s1 = document.createElement("script");' +
+ 's1.src = "empty_script.js?id=6";' +
+ 'document.getElementsByTagName("head")[0].appendChild(s1);' +
+ 'const s2 = document.createElement("script");' +
+ 's2.src = "empty_script.js?id=7";' +
+ 's2.async = true;' +
+ 'document.getElementsByTagName("head")[0].appendChild(s2);' +
+ 'const s3 = document.createElement("script");' +
+ 's3.src = "empty_script.js?id=8";' +
+ 's3.async = false;' +
+ 'document.getElementsByTagName("head")[0].appendChild(s3);' +
+ 'const s4 = document.createElement("script");' +
+ 's4.src = "empty_script.js?id=9";' +
+ 's4.defer = true;' +
+ 'document.getElementsByTagName("head")[0].appendChild(s4);' +
+ '</scr' + 'ipt>';
+ iframe = document.getElementById('frameContext');
+ iframe.contentWindow.document.write(iframe_content);
+}
+function onload_test() {
+ const context = new PerformanceContext(iframe.contentWindow.performance);
+ const entries = context.getEntriesByType('resource');
+
+ const index = window.location.pathname.lastIndexOf('/');
+ const pathname = window.location.pathname.substring(0, index) +
+ '/resources/empty_script.js?id=';
+ let expected_entries = {};
+ expected_entries[pathname + '1'] = 'script';
+ expected_entries[pathname + '2'] = 'script';
+ expected_entries[pathname + '3'] = 'script';
+ expected_entries[pathname + '4'] = 'script';
+ expected_entries[pathname + '5'] = 'script';
+ expected_entries[pathname + '6'] = 'script';
+ expected_entries[pathname + '7'] = 'script';
+ expected_entries[pathname + '8'] = 'script';
+ expected_entries[pathname + '9'] = 'script';
+
+ test_resource_entries(entries, expected_entries);
+ done();
+}
+window.setup_iframe = setup_iframe;
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test validates that all of the different types of script loads are reported with the correct initiator.</p>
+<div id="log"></div>
+<iframe id="frameContext" onload="onload_test();" src="resources/inject_resource_test.html"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm b/tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm
new file mode 100644
index 00000000000..41789d869cf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <title>All Resource Types Test Page</title>
+ </head>
+ <body background='blue.png?id=body'>
+ <script>
+ if (window.parent.hasOwnProperty('on_test_body_created'))
+ window.parent.on_test_body_created();
+ </script>
+ <link rel="stylesheet" href="nested.css"></link>
+ <img src="resource_timing_test0.png"></img>
+ <iframe src="blank_page_green.htm" width="100px" height="100px"></iframe>
+ <script src="empty_script.js"></script>
+ <script>
+ var async_xhr = new XMLHttpRequest;
+ async_xhr.open('GET', 'blue.png?id=async_xhr', true);
+ async_xhr.onreadystatechange = function() {
+ if (async_xhr.readyState == 4 && async_xhr.status == 200 && parent.hasOwnProperty('on_async_xhr_done'))
+ parent.on_async_xhr_done();
+ }
+ async_xhr.send();
+ </script>
+ <style>
+ @font-face {
+ font-family: remoteFontAhem;
+ src: url('/fonts/Ahem.ttf');
+ }
+ iframe {
+ background: url('blue.png?id=1');
+ }
+ ul {
+ font-family: remoteFontAhem;
+ list-style-image: url('blue.png?id=2');
+ }
+ </style>
+ <ul>
+ <li>Test</li>
+ </ul>
+ <ol>
+ <li>Test</li>
+ </ol>
+ <embed src="resource_timing_test0.css?id=embed" type="text/css"></embed>
+ <input type="image" src="blue.png?id=input"></input>
+ <object type="image/png" data="blue.png?id=object"></object>
+ <video poster="blue.png?id=poster"></video>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm b/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm
new file mode 100644
index 00000000000..b8a1947b77e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <title>Green Test Page</title>
+ </head>
+ <body style="background-color:#00FF00;">
+ <h1>Placeholder</h1>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/empty_script.js b/tests/wpt/web-platform-tests/resource-timing/resources/empty_script.js
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resources/empty_script.js
diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm b/tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm
new file mode 100644
index 00000000000..c91f44abf32
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <frameset>
+ <frame src="blank_page_green.htm">
+ </frameset>
+ </head>
+</html>
diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/nested.css b/tests/wpt/web-platform-tests/resource-timing/resources/nested.css
new file mode 100644
index 00000000000..90d61b04acc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resources/nested.css
@@ -0,0 +1,10 @@
+@import "resource_timing_test0.css?id=n1";
+
+@font-face {
+ font-family: remoteFont;
+ src: url('/fonts/Ahem.ttf?id=n1');
+}
+ol {
+ font-family: remoteFont;
+ list-style-image: url('blue.png?id=n1');
+}
diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js b/tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js
new file mode 100644
index 00000000000..2d7688fcf99
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js
@@ -0,0 +1,21 @@
+let numComplete = 0;
+
+function checkDone() {
+ ++numComplete;
+ if (numComplete == 2) {
+ postMessage('');
+ }
+}
+
+function makeRequest(request) {
+ var xhr = new XMLHttpRequest;
+ xhr.open('get', request, true);
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState == 4) {
+ checkDone();
+ }
+ }
+ xhr.send();
+}
+makeRequest('blue.png');
+makeRequest('resource_timing_test0.png');
diff --git a/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js b/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js
index 51a3d2c1fc5..8e729e01356 100644
--- a/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js
+++ b/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js
@@ -183,7 +183,9 @@ function resource_load(expected)
});
t["timing_attrs"].step(function test() {
- var actual = window.performance.getEntriesByName(expected.name)[0];
+ const entries = window.performance.getEntriesByName(expected.name);
+ assert_equals(entries.length, 1, 'There should be a single matching entry');
+ const actual = entries[0];
// Debugging bug 1263428
// Feel free to remove/overwrite this piece of code
@@ -191,18 +193,18 @@ function resource_load(expected)
assert_true(false, "actual: "+JSON.stringify(actual));
}
- assert_equals(actual.redirectStart, 0, "redirectStart time");
- assert_equals(actual.redirectEnd, 0, "redirectEnd time");
+ assert_equals(actual.redirectStart, 0, 'redirectStart should be 0');
+ assert_equals(actual.redirectEnd, 0, 'redirectEnd should be 0');
assert_true(actual.secureConnectionStart == undefined ||
- actual.secureConnectionStart == 0, "secureConnectionStart time");
- assert_equals(actual.fetchStart, actual.startTime, "fetchStart is equal to startTime");
- assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, "domainLookupStart after fetchStart");
- assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, "domainLookupEnd after domainLookupStart");
- assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, "connectStart after domainLookupEnd");
- assert_greater_than_equal(actual.connectEnd, actual.connectStart, "connectEnd after connectStart");
- assert_greater_than_equal(actual.requestStart, actual.connectEnd, "requestStart after connectEnd");
- assert_greater_than_equal(actual.responseStart, actual.requestStart, "responseStart after requestStart");
- assert_greater_than_equal(actual.responseEnd, actual.responseStart, "responseEnd after responseStart");
+ actual.secureConnectionStart == 0, 'secureConnectionStart should be 0 or undefined');
+ assert_equals(actual.fetchStart, actual.startTime, 'fetchStart is equal to startTime');
+ assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, 'domainLookupStart after fetchStart');
+ assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, 'domainLookupEnd after domainLookupStart');
+ assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, 'connectStart after domainLookupEnd');
+ assert_greater_than_equal(actual.connectEnd, actual.connectStart, 'connectEnd after connectStart');
+ assert_greater_than_equal(actual.requestStart, actual.connectEnd, 'requestStart after connectEnd');
+ assert_greater_than_equal(actual.responseStart, actual.requestStart, 'responseStart after requestStart');
+ assert_greater_than_equal(actual.responseEnd, actual.responseStart, 'responseEnd after responseStart');
this.done();
});
diff --git a/tests/wpt/web-platform-tests/resources/check-layout-th.js b/tests/wpt/web-platform-tests/resources/check-layout-th.js
index 9b83df74ef2..928b0cf2a10 100644
--- a/tests/wpt/web-platform-tests/resources/check-layout-th.js
+++ b/tests/wpt/web-platform-tests/resources/check-layout-th.js
@@ -171,7 +171,6 @@ window.checkLayout = function(selectorList, callDone = true)
}
var nodes = document.querySelectorAll(selectorList);
nodes = Array.prototype.slice.call(nodes);
- nodes.reverse();
var checkedLayout = false;
Array.prototype.forEach.call(nodes, function(node) {
test(function(t) {
diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js
index 08d97b57223..23b8651bb13 100644
--- a/tests/wpt/web-platform-tests/resources/testharness.js
+++ b/tests/wpt/web-platform-tests/resources/testharness.js
@@ -1257,11 +1257,22 @@ policies and contribution forms [3].
if (e instanceof AssertionError) {
throw e;
}
+
+ assert(typeof e === "object",
+ "assert_throws", description,
+ "${func} threw ${e} with type ${type}, not an object",
+ {func:func, e:e, type:typeof e});
+
+ assert(e !== null,
+ "assert_throws", description,
+ "${func} threw null, not an object",
+ {func:func});
+
if (code === null) {
throw new AssertionError('Test bug: need to pass exception to assert_throws()');
}
if (typeof code === "object") {
- assert(typeof e == "object" && "name" in e && e.name == code.name,
+ assert("name" in e && e.name == code.name,
"assert_throws", description,
"${func} threw ${actual} (${actual_name}) expected ${expected} (${expected_name})",
{func:func, actual:e, actual_name:e.name,
@@ -1340,8 +1351,7 @@ policies and contribution forms [3].
var required_props = { code: name_code_map[name] };
if (required_props.code === 0 ||
- (typeof e == "object" &&
- "name" in e &&
+ ("name" in e &&
e.name !== e.name.toUpperCase() &&
e.name !== "DOMException")) {
// New style exception: also test the name property.
@@ -1353,13 +1363,8 @@ policies and contribution forms [3].
//in. It might be an instanceof the appropriate interface on some
//unknown other window. TODO: Work around this somehow?
- assert(typeof e == "object",
- "assert_throws", description,
- "${func} threw ${e} with type ${type}, not an object",
- {func:func, e:e, type:typeof e});
-
for (var prop in required_props) {
- assert(typeof e == "object" && prop in e && e[prop] == required_props[prop],
+ assert(prop in e && e[prop] == required_props[prop],
"assert_throws", description,
"${func} threw ${e} that is not a DOMException " + code + ": property ${prop} is equal to ${actual}, expected ${expected}",
{func:func, e:e, prop:prop, actual:e[prop], expected:required_props[prop]});
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers
new file mode 100644
index 00000000000..6f9cb19400b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing:
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js
new file mode 100644
index 00000000000..220cf1aa28d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers
new file mode 100644
index 00000000000..d5ebb5fbffc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js
new file mode 100644
index 00000000000..220cf1aa28d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers
new file mode 100644
index 00000000000..fc2300f8749
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ;
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js
new file mode 100644
index 00000000000..220cf1aa28d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers
new file mode 100644
index 00000000000..d5ed699c5c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ,
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js
new file mode 100644
index 00000000000..c32491d0c01
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4,"desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers
new file mode 100644
index 00000000000..7b89b475bdc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ; dur = 123.4 ; desc = description
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js
new file mode 100644
index 00000000000..9b767142e5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers
new file mode 100644
index 00000000000..dcb056faa88
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric ; desc = description ; dur = 123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js
new file mode 100644
index 00000000000..153607bfc56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers
new file mode 100644
index 00000000000..7ebf8c3bfde
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc = "description"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js
new file mode 100644
index 00000000000..311cabe5535
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric1","dur":12.3,"desc":"description1"},{"name":"metric2","dur":45.6,"desc":"description2"},{"name":"metric3","dur":78.9,"desc":"description3"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers
new file mode 100644
index 00000000000..0389e997904
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;dur=12.3;desc=description1,metric2;dur=45.6;desc=description2,metric3;dur=78.9;desc=description3
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js
new file mode 100644
index 00000000000..ab8597f9170
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric1"},{"name":"metric2"},{"name":"metric3"},{"name":"metric4"},{"name":"metric5"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers
new file mode 100644
index 00000000000..b618a89de9a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1,metric2 ,metric3, metric4 , metric5
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js
new file mode 100644
index 00000000000..153607bfc56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers
new file mode 100644
index 00000000000..c083f605b37
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="description"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js
new file mode 100644
index 00000000000..592475128d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"\t description \t"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers
new file mode 100644
index 00000000000..aa51ae040ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=" description "
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js
new file mode 100644
index 00000000000..d8cc6b72f5a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"descr\"iption"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers
new file mode 100644
index 00000000000..d097b920299
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="descr\"iption"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js
new file mode 100644
index 00000000000..6fd97fa66df
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers
new file mode 100644
index 00000000000..14eb2f07748
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers
new file mode 100644
index 00000000000..9b131fcb90a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers
new file mode 100644
index 00000000000..7134be2654a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers
new file mode 100644
index 00000000000..465a36b600f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers
new file mode 100644
index 00000000000..3b76de4a05c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers
new file mode 100644
index 00000000000..c54a4d85f52
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers
new file mode 100644
index 00000000000..752441eb90d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers
new file mode 100644
index 00000000000..60dbdbb0471
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers
new file mode 100644
index 00000000000..feff2c042d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers
new file mode 100644
index 00000000000..3ca9b6b2603
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers
new file mode 100644
index 00000000000..ae0b8912905
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js
new file mode 100644
index 00000000000..6fd97fa66df
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers
new file mode 100644
index 00000000000..8c6fb60f310
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur="123.4"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers
new file mode 100644
index 00000000000..24906f3c823
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers
new file mode 100644
index 00000000000..aaceb6babf4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers
new file mode 100644
index 00000000000..59e01cfa940
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers
new file mode 100644
index 00000000000..d81429ecad0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers
new file mode 100644
index 00000000000..bfb889515d9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers
new file mode 100644
index 00000000000..ff41d80b69b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers
new file mode 100644
index 00000000000..a702069f7d7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\"\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers
new file mode 100644
index 00000000000..ecc3756393e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\\""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers
new file mode 100644
index 00000000000..b13d9f419f6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers
new file mode 100644
index 00000000000..02972236567
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js
new file mode 100644
index 00000000000..153607bfc56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers
new file mode 100644
index 00000000000..e929723eed6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=description
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers
new file mode 100644
index 00000000000..9dd5cd4a76d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\""\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers
new file mode 100644
index 00000000000..c5a006cd4a1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=\"""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers
new file mode 100644
index 00000000000..8a04d7c7f67
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js
new file mode 100644
index 00000000000..b318cb7299b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"\\"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers
new file mode 100644
index 00000000000..8208c16ff31
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers
new file mode 100644
index 00000000000..e50f42b3777
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\"\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js
new file mode 100644
index 00000000000..993a69024cf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"\""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers
new file mode 100644
index 00000000000..055df4fbd48
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="\""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers
new file mode 100644
index 00000000000..5d7ef807f6c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""\\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers
new file mode 100644
index 00000000000..f52c6e8ae27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""\"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers
new file mode 100644
index 00000000000..9eeadd38d39
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="""\
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js
new file mode 100644
index 00000000000..107695e9d27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers
new file mode 100644
index 00000000000..2dbff3ca6cc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=""""
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js
new file mode 100644
index 00000000000..153607bfc56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers
new file mode 100644
index 00000000000..c083f605b37
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="description"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js
new file mode 100644
index 00000000000..61ec6915722
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":12.3,"desc":"description1"},{"name":"metric","dur":45.6,"desc":"description2"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers
new file mode 100644
index 00000000000..c8ac573fa21
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=12.3;desc=description1,metric;dur=45.6;desc=description2
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js
new file mode 100644
index 00000000000..c32491d0c01
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4,"desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers
new file mode 100644
index 00000000000..5825a547c92
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;DuR=123.4;DeSc=description
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js
new file mode 100644
index 00000000000..6617af51776
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"MeTrIc","desc":"DeScRiPtIoN"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers
new file mode 100644
index 00000000000..f5fcff981c3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: MeTrIc;desc=DeScRiPtIoN
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js
new file mode 100644
index 00000000000..40faf4106ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers
new file mode 100644
index 00000000000..3de0f19046d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=foo
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js
new file mode 100644
index 00000000000..40faf4106ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers
new file mode 100644
index 00000000000..78f670422c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur="foo"
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js
new file mode 100644
index 00000000000..4e2b14bbddd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric1","desc":"description","dur":123.4},{"name":"metric2"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers
new file mode 100644
index 00000000000..578232a4ab7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;foo=bar;desc=description;foo=bar;dur=123.4;foo=bar,metric2
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js
new file mode 100644
index 00000000000..6fd97fa66df
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers
new file mode 100644
index 00000000000..8a220ab50aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=123.4;dur=567.8
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js
new file mode 100644
index 00000000000..40faf4106ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers
new file mode 100644
index 00000000000..2614e2034cd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=foo;dur=567.8
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js
new file mode 100644
index 00000000000..13250bbbc53
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description1"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers
new file mode 100644
index 00000000000..e5ef56948b9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=description1;desc=description2
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js
new file mode 100644
index 00000000000..0282f7d51eb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":0,"desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers
new file mode 100644
index 00000000000..5b44836e706
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur;dur=123.4;desc=description
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js
new file mode 100644
index 00000000000..c32491d0c01
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4,"desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers
new file mode 100644
index 00000000000..5dbc9d65524
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=123.4;desc=description
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js
new file mode 100644
index 00000000000..0282f7d51eb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":0,"desc":"description"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers
new file mode 100644
index 00000000000..bfbddf111a9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur=;dur=123.4;desc=description
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js
new file mode 100644
index 00000000000..62b744cc143
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers
new file mode 100644
index 00000000000..6d605ad8570
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc;desc=description;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js
new file mode 100644
index 00000000000..62b744cc143
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers
new file mode 100644
index 00000000000..182a81a7bfd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=;desc=description;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js
new file mode 100644
index 00000000000..839f8064e6f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"d1","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers
new file mode 100644
index 00000000000..8e9b117988b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=d1 d2;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js
new file mode 100644
index 00000000000..d64ea0a9dd1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric1","desc":"d1"},{"name":"metric2"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers
new file mode 100644
index 00000000000..b1dd0cc5b49
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;desc=d1 d2,metric2
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js
new file mode 100644
index 00000000000..839f8064e6f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"d1","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers
new file mode 100644
index 00000000000..63946cdd084
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="d1" d2;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js
new file mode 100644
index 00000000000..d64ea0a9dd1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric1","desc":"d1"},{"name":"metric2"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers
new file mode 100644
index 00000000000..bddbb2cbb6c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1;desc="d1" d2,metric2
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js
new file mode 100644
index 00000000000..220cf1aa28d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers
new file mode 100644
index 00000000000..5fe55cc32ad
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric== ""foo;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js
new file mode 100644
index 00000000000..4077b26a610
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric1"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers
new file mode 100644
index 00000000000..27dabbe090a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric1== ""foo,metric2
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js
new file mode 100644
index 00000000000..40faf4106ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers
new file mode 100644
index 00000000000..55282410e7e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;dur foo=12
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js
new file mode 100644
index 00000000000..9b767142e5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers
new file mode 100644
index 00000000000..c6369005d8e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc=description;dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js
new file mode 100644
index 00000000000..220cf1aa28d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers
new file mode 100644
index 00000000000..aa8f70bd90c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;foo dur=12
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers
new file mode 100644
index 00000000000..26fcf28e39e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing:
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers
new file mode 100644
index 00000000000..74e059fd74c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers
new file mode 100644
index 00000000000..eeaebdf48f1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: [
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers
new file mode 100644
index 00000000000..b4f3c562f6b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ]
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers
new file mode 100644
index 00000000000..9a3684d48e3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ;
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers
new file mode 100644
index 00000000000..79cbd0c4d59
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ,
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers
new file mode 100644
index 00000000000..888fa71e64b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =;
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers
new file mode 100644
index 00000000000..fc40e706cde
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ;=
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers
new file mode 100644
index 00000000000..0516c4cc057
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =,
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js
new file mode 100644
index 00000000000..8581efd93ec
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"aB3!#$%&'*+-.^_`|~"}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers
new file mode 100644
index 00000000000..1d1bb026dd9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: aB3!#$%&'*+-.^_`|~
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers
new file mode 100644
index 00000000000..03b3909f558
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ,=
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers
new file mode 100644
index 00000000000..680d2a2422e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ;,
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers
new file mode 100644
index 00000000000..7ab1448b88e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: ,;
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js
new file mode 100644
index 00000000000..8de2c019353
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers
new file mode 100644
index 00000000000..bd079bc62a7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: =;,
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js
new file mode 100644
index 00000000000..e03b07a2af1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js
@@ -0,0 +1 @@
+testServerTiming(document.currentScript.src, [{"name":"metric","desc":"descr;,=iption","dur":123.4}])
diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers
new file mode 100644
index 00000000000..c385706d334
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers
@@ -0,0 +1 @@
+Server-Timing: metric;desc="descr;,=iption";dur=123.4
diff --git a/tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html b/tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html
new file mode 100644
index 00000000000..a598a715b82
--- /dev/null
+++ b/tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!--
+tests generated by:
+ https://github.com/cvazac/generate-server-timing-tests
+-->
+
+<head>
+ <meta charset='utf-8' />
+ <script src="/resources/testharness.js"></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <script src="/common/performance-timeline-utils.js"></script>
+ <script>
+ setup({explicit_done: true})
+ function testServerTiming(resource, expectedResults) {
+ const {serverTiming} = performance.getEntriesByName(resource)[0]
+ const fileName = resource.substring(resource.lastIndexOf('/') + 1)
+ test_equals(serverTiming.length, expectedResults.length, `${fileName} - count (${serverTiming.length} ?== ${expectedResults.length})`)
+
+ expectedResults.forEach(function(expectedResult, i) {
+ const dur = expectedResult.dur || 0
+ const desc = expectedResult.desc || ''
+ const index = expectedResults.length === 1 ? '' : `[${i}].`
+ test_equals(expectedResult.name, serverTiming[i].name,
+ `${fileName} - ${index}name (${expectedResult.name} ?== ${serverTiming[i].name})`)
+ test_equals(dur, serverTiming[i].duration,
+ `${fileName} - ${index}duration (${dur} ?== ${serverTiming[i].duration})`)
+ test_equals(desc, serverTiming[i].description,
+ `${fileName} - ${index}description (${desc} ?== ${serverTiming[i].description})`)
+ })
+ }
+ for (let i = 0; i <= 83; i++) {
+ var script = document.createElement('script')
+ script.src = `./resources/parsing/${i}.js`
+ document.getElementsByTagName('head')[0].appendChild(script)
+ }
+ window.addEventListener('load', done)
+ </script>
+</head>
diff --git a/tests/wpt/web-platform-tests/server-timing/test_server_timing.html b/tests/wpt/web-platform-tests/server-timing/test_server_timing.html
index fa100301f14..2d43aa2d43b 100644
--- a/tests/wpt/web-platform-tests/server-timing/test_server_timing.html
+++ b/tests/wpt/web-platform-tests/server-timing/test_server_timing.html
@@ -3,7 +3,6 @@
<meta charset='utf-8' />
<script src="/resources/testharness.js"></script>
<script src='/resources/testharnessreport.js'></script>
- <script src='resources/webperftestharness.js'></script>
<script src="/common/performance-timeline-utils.js"></script>
<script>
setup({explicit_done: true})
diff --git a/tests/wpt/web-platform-tests/svg/OWNERS b/tests/wpt/web-platform-tests/svg/OWNERS
index 852a7475d52..54ae635434f 100644
--- a/tests/wpt/web-platform-tests/svg/OWNERS
+++ b/tests/wpt/web-platform-tests/svg/OWNERS
@@ -2,3 +2,4 @@
@nikosandronikos
@boggydigital
@ewilligers
+@AmeliaBR
diff --git a/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/properties.svg b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/properties.svg
index a89e1e59597..b92a6d1d15b 100644
--- a/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/properties.svg
+++ b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/properties.svg
@@ -23,29 +23,34 @@
<script><![CDATA[
test(function() {
var first = document.getElementById('first');
- var second = document.getElementById('second');
- var third = document.getElementById('third');
- var fourth = document.getElementById('fourth');
-
assert_equals(getComputedStyle(first).x, "0px");
assert_equals(getComputedStyle(first).y, "0px");
assert_equals(getComputedStyle(first).width, "auto");
assert_equals(getComputedStyle(first).height, "auto");
+ }, 'width and height default to auto');
+ test(function() {
+ var second = document.getElementById('second');
assert_equals(getComputedStyle(second).x, "10px");
assert_equals(getComputedStyle(second).y, "20px");
assert_equals(getComputedStyle(second).width, "30px");
assert_equals(getComputedStyle(second).height, "40px");
+ }, 'style rules are applied');
+ test(function() {
+ var third = document.getElementById('third');
assert_equals(getComputedStyle(third).x, "50px");
assert_equals(getComputedStyle(third).y, "60px");
assert_equals(getComputedStyle(third).width, "70px");
assert_equals(getComputedStyle(third).height, "80px");
+ }, 'attributes set properties');
+ test(function() {
+ var fourth = document.getElementById('fourth');
assert_equals(getComputedStyle(fourth).x, "10px");
assert_equals(getComputedStyle(fourth).y, "20px");
assert_equals(getComputedStyle(fourth).width, "30px");
assert_equals(getComputedStyle(fourth).height, "40px");
- });
+ }, 'style rules override attributes');
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg
new file mode 100644
index 00000000000..cc068cefe32
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ width="300" height="200">
+ <style>
+ path {
+ stroke: blue;
+ }
+ </style>
+ <path d="M 10 10 z m 20 70 h 10 v 10 h -10 l 0 -10 M 70 30 q 20 0 20 20 t -20 20 t -20 -20 T 70 30" />
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg
new file mode 100644
index 00000000000..5b72c494b3b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml"
+ width="300" height="200">
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#paths-PathDataClosePathCommand"/>
+ <h:link rel="match" href="segment-completing-ref.svg"/>
+ <h:meta name="assert" content="initial subpath point used to complete segment."/>
+ </metadata>
+ <style>
+ path {
+ stroke: blue;
+ }
+ </style>
+ <path d="M 10 10 z m 20 70 h 10 v 10 h -10 l z M 70 30 q 20 0 20 20 t -20 20 t -20 -20 T z" />
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg
new file mode 100644
index 00000000000..9a9a1a8d473
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg
@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="300" height="200" viewBox="0 0 300 200">
+
+ <defs>
+ <path id="track" stroke="lightblue" fill="none"
+ d="M 50 50 h 200"/>
+ </defs>
+
+ <g>
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="0%">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,50)">
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="50%">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,100)">
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="-50%">The quick brown fox</textPath>
+ </text>
+ </g>
+
+</svg>
+
diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg
new file mode 100644
index 00000000000..b40d6b82b55
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg
@@ -0,0 +1,39 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="300" height="200" viewBox="0 0 300 200">
+
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/paths.html#PathLengthAttribute"/>
+ <h:link rel="match" href="pathLength-positive-ref.svg"/>
+ <h:meta name="assert" content="pathLength scales distance along the path"/>
+ </metadata>
+
+ <defs>
+ <path id="track" stroke="lightblue" fill="none"
+ d="M 50 50 h 200" pathLength="2"/>
+ </defs>
+
+ <g>
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="0">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,50)">
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="1">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,100)">
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="-1">The quick brown fox</textPath>
+ </text>
+ </g>
+
+</svg>
+
diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg
new file mode 100644
index 00000000000..d5556add663
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="300" height="200" viewBox="0 0 300 200">
+
+ <defs>
+ <path id="track" stroke="lightblue" fill="none"
+ d="M 50 50 h 200"/>
+ </defs>
+
+ <g>
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="0%">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,50)">
+ <use xlink:href="#track"/>
+ </g>
+
+ <g transform="translate(0,100)">
+ <use xlink:href="#track"/>
+ </g>
+
+</svg>
+
diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg
new file mode 100644
index 00000000000..4ae0b836f7f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg
@@ -0,0 +1,39 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="300" height="200" viewBox="0 0 300 200">
+
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/paths.html#PathLengthAttribute"/>
+ <h:link rel="match" href="pathLength-zero-ref.svg"/>
+ <h:meta name="assert" content="A value of zero is valid and must be treated as a scaling factor of infinity."/>
+ </metadata>
+
+ <defs>
+ <path id="track" stroke="lightblue" fill="none"
+ d="M 50 50 h 200" pathLength="0"/>
+ </defs>
+
+ <g>
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="0">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,50)">
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="1">The quick brown fox</textPath>
+ </text>
+ </g>
+
+ <g transform="translate(0,100)">
+ <use xlink:href="#track"/>
+ <text font-family="sans-serif" font-size="28">
+ <textPath xlink:href="#track" startOffset="-1">The quick brown fox</textPath>
+ </text>
+ </g>
+
+</svg>
+
diff --git a/tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg b/tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg
new file mode 100644
index 00000000000..85c089b25ba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml">
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#paths-PathDataErrorHandling"/>
+ <h:meta name="assert" content="render up to (but not including) the first error"/>
+ </metadata>
+ <g id="container">
+ <path transform="translate(90,10)" />
+ <path transform="translate(80,20)" d="none" />
+ <path transform="translate(70,30)" d="# invalid" />
+ <path transform="translate(60,40)" d="m 0 0 l 3 -4 z # ignored suffix v 123" />
+ <path transform="translate(50,50)" d="" />
+ <path transform="translate(40,60)" d="m 0 0 l -9 11 -123 z # ignore last l parameter" />
+ <polygon transform="translate(20,80)" />
+ <polyline transform="translate(10,90)" />
+ </g>
+ <h:script src="/resources/testharness.js"/>
+ <h:script src="/resources/testharnessreport.js"/>
+ <script><![CDATA[
+ test(function() {
+ var container = document.getElementById('container');
+ var bbox = container.getBBox();
+
+ // The rendered paths are "m 0 0 l 3 -4 z" and "m 0 0 l -9 11"
+ assert_equals(bbox.x, 31);
+ assert_equals(bbox.y, 36);
+
+ assert_equals(bbox.width, 32);
+ assert_equals(bbox.height, 35);
+ });
+ ]]></script>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg
new file mode 100644
index 00000000000..dd2d7c32a6b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ width="100" height="100">
+ <style>
+ path {
+ stroke: lime;
+ }
+ </style>
+ <g id="container">
+ <path transform="translate(60,40)" d="m 0 0 l 3 -4 z" />
+ <path transform="translate(40,60)" d="m 0 0 l -9 11" />
+ </g>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg
new file mode 100644
index 00000000000..6b8a50b4f2f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml"
+ width="100" height="100">
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#paths-PathDataErrorHandling"/>
+ <h:link rel="match" href="render-until-error-ref.svg"/>
+ <h:meta name="assert" content="render up to (but not including) the first error"/>
+ </metadata>
+ <style>
+ path {
+ stroke: lime;
+ }
+ </style>
+ <g id="container">
+ <path transform="translate(90,10)" />
+ <path transform="translate(80,20)" d="none" />
+ <path transform="translate(70,30)" d="# invalid" />
+ <path transform="translate(60,40)" d="m 0 0 l 3 -4 z # ignored suffix v 123" />
+ <path transform="translate(50,50)" d="" />
+ <path transform="translate(40,60)" d="m 0 0 l -9 11 -123 z # ignore last l parameter" />
+ <polygon transform="translate(20,80)" />
+ <polyline transform="translate(10,90)" />
+ </g>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg b/tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg
new file mode 100644
index 00000000000..d321b8b0011
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml">
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#changes-paths"/>
+ <h:link rel="help" href="https://www.w3.org/TR/SVG11/paths.html#InterfaceSVGAnimatedPathData"/>
+ <h:meta name="assert" content="SVGAnimatedPathData interface is not supported."/>
+ </metadata>
+ <path id="track" d="m 10 20 h 30"/>
+ <h:script src="/resources/testharness.js"/>
+ <h:script src="/resources/testharnessreport.js"/>
+ <script><![CDATA[
+ test(function() {
+ assert_true(window.SVGAnimatedPathData === undefined);
+
+ var track = document.getElementById('track');
+ assert_equals(track.__proto__, SVGPathElement.prototype);
+ assert_true(track.pathSegList === undefined);
+ assert_true(track.normalizedPathSegList === undefined);
+ assert_true(track.animatedPathSegList === undefined);
+ assert_true(track.animatedNormalizedPathSegList === undefined);
+ });
+ ]]></script>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg b/tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg
new file mode 100644
index 00000000000..5391d91ad5a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml">
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGGeometryElement"/>
+ <h:meta name="assert" content="SVGGeometryElement members work for rect elements."/>
+ </metadata>
+ <style>
+ rect {
+ stroke-width: 10;
+ }
+ </style>
+ <rect id="box" x="50" y="50" width="200" height="100" pathLength="6"/>
+ <h:script src="/resources/testharness.js"/>
+ <h:script src="/resources/testharnessreport.js"/>
+ <script><![CDATA[
+ test(function() {
+ var box = document.getElementById('box');
+
+ assert_equals(box.pathLength.baseVal, 6);
+
+ assert_equals(box.getTotalLength(), 600);
+
+ assert_equals(box.getPointAtLength(210).x, 250);
+ assert_equals(box.getPointAtLength(210).y, 60);
+ }, 'getTotalLength and getPointAtLength do not take pathLength into account');
+ ]]></script>
+</svg>
diff --git a/tests/wpt/web-platform-tests/tools/ci/check_stability.py b/tests/wpt/web-platform-tests/tools/ci/check_stability.py
index 169962a55e6..322a52140a2 100644
--- a/tests/wpt/web-platform-tests/tools/ci/check_stability.py
+++ b/tests/wpt/web-platform-tests/tools/ci/check_stability.py
@@ -132,11 +132,6 @@ def get_sha1():
return git("rev-parse", "HEAD").strip()
-def install_wptrunner():
- """Install wptrunner."""
- call("pip", "install", wptrunner_root)
-
-
def deepen_checkout(user):
"""Convert from a shallow checkout to a full one"""
fetch_args = [user, "+refs/heads/*:refs/remotes/origin/*"]
diff --git a/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh b/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh
index 6c74a251244..7a54d85ff0a 100755
--- a/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh
+++ b/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh
@@ -16,6 +16,7 @@ fi
if [[ $(./wpt test-jobs --includes wptrunner_unittest; echo $?) -eq 0 ]]; then
if [ $TOXENV == "py27" ] || [ $TOXENV == "pypy" ]; then
+ TOXENV="$TOXENV,py27-flake8"
cd tools/wptrunner
tox
fi
diff --git a/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py b/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py
index 5ceeb0b5f72..523f544b7c4 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py
@@ -70,8 +70,8 @@ class XMLParser(object):
def _end(self, tag):
return self._target.end(_fixname(tag))
- def _external(self, context, base, systemId, publicId):
- if publicId in {
+ def _external(self, context, base, system_id, public_id):
+ if public_id in {
"-//W3C//DTD XHTML 1.0 Transitional//EN",
"-//W3C//DTD XHTML 1.1//EN",
"-//W3C//DTD XHTML 1.0 Strict//EN",
diff --git a/tests/wpt/web-platform-tests/tools/manifest/manifest.py b/tests/wpt/web-platform-tests/tools/manifest/manifest.py
index b153798d6f9..e466e6ff56a 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/manifest.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/manifest.py
@@ -2,7 +2,7 @@ import json
import os
import re
from collections import defaultdict
-from six import iteritems, itervalues, viewkeys
+from six import iteritems, itervalues, viewkeys, string_types
from .item import ManualTest, WebdriverSpecTest, Stub, RefTestNode, RefTest, TestharnessTest, SupportFile, ConformanceCheckerTest, VisualTest
from .log import get_logger
@@ -20,14 +20,6 @@ class ManifestVersionMismatch(ManifestError):
pass
-def sourcefile_items(args):
- tests_root, url_base, rel_path, status = args
- source_file = SourceFile(tests_root,
- rel_path,
- url_base)
- return rel_path, source_file.manifest_items()
-
-
class Manifest(object):
def __init__(self, url_base="/"):
assert url_base is not None
@@ -221,7 +213,7 @@ def load(tests_root, manifest):
logger = get_logger()
# "manifest" is a path or file-like object.
- if isinstance(manifest, basestring):
+ if isinstance(manifest, string_types):
if os.path.exists(manifest):
logger.debug("Opening manifest at %s" % manifest)
else:
diff --git a/tests/wpt/web-platform-tests/tools/runner/report.py b/tests/wpt/web-platform-tests/tools/runner/report.py
index f4b3fa71661..952df08b805 100644
--- a/tests/wpt/web-platform-tests/tools/runner/report.py
+++ b/tests/wpt/web-platform-tests/tools/runner/report.py
@@ -1,3 +1,5 @@
+# flake8: noqa
+
from __future__ import print_function
import argparse
diff --git a/tests/wpt/web-platform-tests/tools/sslutils/base.py b/tests/wpt/web-platform-tests/tools/sslutils/base.py
index e78e1385c7b..237ae5f23cc 100644
--- a/tests/wpt/web-platform-tests/tools/sslutils/base.py
+++ b/tests/wpt/web-platform-tests/tools/sslutils/base.py
@@ -1,9 +1,3 @@
-def get_logger(name="ssl"):
- logger = structured.get_default_logger(name)
- if logger is None:
- logger = structured.structuredlog.StructuredLogger(name)
- return logger
-
class NoSSLEnvironment(object):
ssl_enabled = False
diff --git a/tests/wpt/web-platform-tests/tools/tox.ini b/tests/wpt/web-platform-tests/tools/tox.ini
index b154c471d6f..159a934eb1a 100644
--- a/tests/wpt/web-platform-tests/tools/tox.ini
+++ b/tests/wpt/web-platform-tests/tools/tox.ini
@@ -3,8 +3,12 @@ envlist = py27,py36,pypy
skipsdist=True
[testenv]
+# flake8 versions should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
deps =
- flake8
+ flake8==3.5.0
+ pycodestyle==2.3.1
+ pyflakes==1.6.0
+ pep8-naming==0.4.1
pytest
pytest-cov
mock
@@ -19,6 +23,28 @@ passenv =
HYPOTHESIS_PROFILE
[flake8]
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E901,F401,F821,F841
+# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
+select = E,W,F,N
+# E128: continuation line under-indented for visual indent
+# E129: visually indented line with same indent as next logical line
+# E221: multiple spaces before operator
+# E226: missing whitespace around arithmetic operator
+# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
+# E251: unexpected spaces around keyword / parameter equals
+# E265: block comment should start with ‘# ‘
+# E302: expected 2 blank lines, found 0
+# E303: too many blank lines (3)
+# E305: expected 2 blank lines after end of function or class
+# E402: module level import not at top of file
+# E731: do not assign a lambda expression, use a def
+# E901: SyntaxError or IndentationError
+# W601: .has_key() is deprecated, use ‘in’
+# F401: module imported but unused
+# F403: ‘from module import *’ used; unable to detect undefined names
+# F405: name may be undefined, or defined from star imports: module
+# F841: local variable name is assigned to but never used
+# N801: class names should use CapWords convention
+# N802: function name should be lowercase
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802
max-line-length = 141
exclude = .tox,html5lib,third_party/py,third_party/pytest,third_party/funcsigs,third_party/attrs,third_party/pluggy/,pywebsocket,six,_venv,webencodings,wptserve/docs,wptserve/tests/functional/docroot/,wpt,wptrunner
diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py
index ec7d6deccba..622c5fce76a 100644
--- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py
+++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py
@@ -4,6 +4,8 @@ import error
import protocol
import transport
+from six import string_types
+
from mozlog import get_default_logger
logger = get_default_logger()
@@ -313,7 +315,7 @@ class Cookies(object):
cookie = {"name": name,
"value": None}
- if isinstance(name, (str, unicode)):
+ if isinstance(name, string_types):
cookie["value"] = value
elif hasattr(value, "value"):
cookie["value"] = value.value
diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py
index 80f358c8b0a..ea0c793accb 100644
--- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py
+++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py
@@ -16,7 +16,7 @@ class Encoder(json.JSONEncoder):
return [self.default(x) for x in obj]
elif isinstance(obj, webdriver.Element):
return {webdriver.Element.identifier: obj.id}
- return super(ProtocolEncoder, self).default(obj)
+ return super(Encoder, self).default(obj)
class Decoder(json.JSONDecoder):
diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py
deleted file mode 100644
index 2e0b722abab..00000000000
--- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py
+++ /dev/null
@@ -1,18 +0,0 @@
-class ServoExtensionCommands(object):
- def __init__(self, session):
- self.session = session
-
- @command
- def get_prefs(self, *prefs):
- body = {"prefs": list(prefs)}
- return self.session.send_command("POST", "servo/prefs/get", body)
-
- @command
- def set_prefs(self, prefs):
- body = {"prefs": prefs}
- return self.session.send_command("POST", "servo/prefs/set", body)
-
- @command
- def reset_prefs(self, *prefs):
- body = {"prefs": list(prefs)}
- return self.session.send_command("POST", "servo/prefs/reset", body)
diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py
index b198b194b38..d62271fe957 100644
--- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py
+++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py
@@ -4,6 +4,7 @@ import urlparse
import error
+from six import text_type
"""Implements HTTP transport for the WebDriver wire protocol."""
@@ -135,7 +136,7 @@ class HTTPWireProtocol(object):
except ValueError:
raise ValueError("Failed to encode request body as JSON:\n"
"%s" % json.dumps(body, indent=2))
- if isinstance(payload, unicode):
+ if isinstance(payload, text_type):
payload = body.encode("utf-8")
if headers is None:
diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py
index 40d94d53179..c6cc38afd67 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/browser.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py
@@ -4,9 +4,12 @@ import platform
import re
import shutil
import stat
+import subprocess
+import sys
from abc import ABCMeta, abstractmethod
from ConfigParser import RawConfigParser
from distutils.spawn import find_executable
+from io import BytesIO
from utils import call, get, untar, unzip
@@ -278,6 +281,61 @@ class Chrome(Browser):
logger.critical("dbus not running and can't be started")
sys.exit(1)
+class ChromeAndroid(Browser):
+ """Chrome-specific interface for android.
+
+ Includes installation, webdriver installation, and wptrunner setup methods.
+ """
+
+ product = "chrome_android"
+ requirements = "requirements_chrome_android.txt"
+
+ def install(self, dest=None):
+ raise NotImplementedError
+
+ def platform_string(self):
+ raise NotImplementedError
+
+ def find_webdriver(self):
+ return find_executable("chromedriver")
+
+ def install_webdriver(self, dest=None):
+ """Install latest Webdriver."""
+ if dest is None:
+ dest = os.pwd
+ latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip()
+ url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_%s.zip" % (latest,
+ self.platform_string())
+ unzip(get(url).raw, dest)
+
+ path = find_executable("chromedriver", dest)
+ st = os.stat(path)
+ os.chmod(path, st.st_mode | stat.S_IEXEC)
+ return path
+
+ def version(self, root):
+ raise NotImplementedError
+
+ def prepare_environment(self):
+ # https://bugs.chromium.org/p/chromium/issues/detail?id=713947
+ logger.debug("DBUS_SESSION_BUS_ADDRESS %s" % os.environ.get("DBUS_SESSION_BUS_ADDRESS"))
+ if "DBUS_SESSION_BUS_ADDRESS" not in os.environ:
+ if find_executable("dbus-launch"):
+ logger.debug("Attempting to start dbus")
+ dbus_conf = subprocess.check_output(["dbus-launch"])
+ logger.debug(dbus_conf)
+
+ # From dbus-launch(1):
+ #
+ # > When dbus-launch prints bus information to standard output,
+ # > by default it is in a simple key-value pairs format.
+ for line in dbus_conf.strip().split("\n"):
+ key, _, value = line.partition("=")
+ os.environ[key] = value
+ else:
+ logger.critical("dbus not running and can't be started")
+ sys.exit(1)
+
class Opera(Browser):
"""Opera-specific interface.
diff --git a/tests/wpt/web-platform-tests/tools/wpt/install.py b/tests/wpt/web-platform-tests/tools/wpt/install.py
index 408744a4a40..d779651c990 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/install.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/install.py
@@ -39,8 +39,3 @@ def install(name, component, destination):
subclass = getattr(browser, name.title())
sys.stdout.write('Now installing %s %s...\n' % (name, component))
getattr(subclass(), method)(dest=destination)
-
-
-if __name__ == '__main__':
- args = parser.parse_args()
- run(None, **vars(args))
diff --git a/tests/wpt/web-platform-tests/tools/wpt/markdown.py b/tests/wpt/web-platform-tests/tools/wpt/markdown.py
index 87018910ac1..8b5ff8079df 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/markdown.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/markdown.py
@@ -38,18 +38,3 @@ def table(headings, data, log):
for row in data:
log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols))
log("")
-
-
-def err_string(results_dict, iterations):
- """Create and return string with errors from test run."""
- rv = []
- total_results = sum(results_dict.values())
- for key, value in sorted(results_dict.items()):
- rv.append("%s%s" %
- (key, ": %s/%s" % (value, iterations) if value != iterations else ""))
- if total_results < iterations:
- rv.append("MISSING: %s/%s" % (iterations - total_results, iterations))
- rv = ", ".join(rv)
- if is_inconsistent(results_dict, iterations):
- rv = "**%s**" % rv
- return rv
diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py
index d1e3e49519c..f3fbcbdefb0 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/run.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/run.py
@@ -223,6 +223,28 @@ class Chrome(BrowserSetup):
else:
raise WptrunError("Unable to locate or install chromedriver binary")
+class ChromeAndroid(BrowserSetup):
+ name = "chrome_android"
+ browser_cls = browser.ChromeAndroid
+
+ def setup_kwargs(self, kwargs):
+ if kwargs["webdriver_binary"] is None:
+ webdriver_binary = self.browser.find_webdriver()
+
+ if webdriver_binary is None:
+ install = self.prompt_install("chromedriver")
+
+ if install:
+ print("Downloading chromedriver")
+ webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path)
+ else:
+ print("Using webdriver binary %s" % webdriver_binary)
+
+ if webdriver_binary:
+ kwargs["webdriver_binary"] = webdriver_binary
+ else:
+ raise WptrunError("Unable to locate or install chromedriver binary")
+
class Opera(BrowserSetup):
name = "opera"
@@ -321,6 +343,7 @@ class Servo(BrowserSetup):
product_setup = {
"firefox": Firefox,
"chrome": Chrome,
+ "chrome_android": ChromeAndroid,
"edge": Edge,
"ie": InternetExplorer,
"servo": Servo,
diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py
new file mode 100644
index 00000000000..f2dd012087c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py
@@ -0,0 +1,7 @@
+from tools.wpt import stability
+
+def test_is_inconsistent():
+ assert stability.is_inconsistent({"PASS": 10}, 10) is False
+ assert stability.is_inconsistent({"PASS": 9}, 10) is True
+ assert stability.is_inconsistent({"PASS": 9, "FAIL": 1}, 10) is True
+ assert stability.is_inconsistent({"PASS": 8, "FAIL": 1}, 10) is True
diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py
index d3402174c1a..127ed188f3e 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py
@@ -10,7 +10,8 @@ import pytest
from tools.wpt import wpt
-# Tests currently don't work on Windows for path reasons
+pytestmark = pytest.mark.skipif(os.name == "nt",
+ reason="Tests currently don't work on Windows for path reasons")
def test_missing():
with pytest.raises(SystemExit):
@@ -25,6 +26,9 @@ def test_help():
assert excinfo.value.code == 0
+@pytest.mark.slow
+@pytest.mark.system_dependent
+@pytest.mark.remote_network
def test_run_firefox():
# TODO: It seems like there's a bug in argparse that makes this argument order required
# should try to work around that
@@ -44,6 +48,8 @@ def test_run_firefox():
del os.environ["MOZ_HEADLESS"]
+@pytest.mark.slow
+@pytest.mark.system_dependent
def test_run_chrome():
with pytest.raises(SystemExit) as excinfo:
wpt.main(argv=["run", "--yes", "--no-pause", "--binary-arg", "headless",
@@ -52,6 +58,8 @@ def test_run_chrome():
assert excinfo.value.code == 0
+@pytest.mark.slow
+@pytest.mark.remote_network
def test_install_chromedriver():
chromedriver_path = os.path.join(wpt.localpaths.repo_root, "_venv", "bin", "chromedriver")
if os.path.exists(chromedriver_path):
@@ -63,6 +71,8 @@ def test_install_chromedriver():
os.unlink(chromedriver_path)
+@pytest.mark.slow
+@pytest.mark.remote_network
def test_install_firefox():
fx_path = os.path.join(wpt.localpaths.repo_root, "_venv", "firefox")
if os.path.exists(fx_path):
@@ -109,6 +119,8 @@ def test_files_changed_ignore_rules():
assert compile_ignore_rule("foobar/baz/**").pattern == "^foobar/baz/.*$"
+@pytest.mark.slow # this updates the manifest
+@pytest.mark.system_dependent
def test_tests_affected(capsys):
# This doesn't really work properly for random commits because we test the files in
# the current working directory for references to the changed files, not the ones at
@@ -121,6 +133,8 @@ def test_tests_affected(capsys):
assert "html/browsers/offline/appcache/workers/appcache-worker.html" in out
+@pytest.mark.slow
+@pytest.mark.system_dependent
def test_serve():
def test():
s = socket.socket()
diff --git a/tests/wpt/web-platform-tests/tools/wpt/tox.ini b/tests/wpt/web-platform-tests/tools/wpt/tox.ini
index 5836a52ffa9..229bc4bfc5c 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/tox.ini
+++ b/tests/wpt/web-platform-tests/tools/wpt/tox.ini
@@ -1,10 +1,9 @@
[tox]
-envlist = py27
+envlist = py27,py27-flake8
skipsdist=True
[testenv]
deps =
- flake8
pytest
pytest-cov
hypothesis
@@ -13,9 +12,41 @@ deps =
-r{toxinidir}/../wptrunner/requirements_firefox.txt
commands =
- pytest --cov
- flake8
+ pytest --cov {posargs}
+
+[testenv:py27-flake8]
+# flake8 versions should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
+deps =
+ flake8==3.5.0
+ pycodestyle==2.3.1
+ pyflakes==1.6.0
+ pep8-naming==0.4.1
+
+commands =
+ flake8 {posargs}
[flake8]
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E901,F401,F821,F841
+# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
+select = E,W,F,N
+# E128: continuation line under-indented for visual indent
+# E129: visually indented line with same indent as next logical line
+# E221: multiple spaces before operator
+# E226: missing whitespace around arithmetic operator
+# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
+# E251: unexpected spaces around keyword / parameter equals
+# E265: block comment should start with ‘# ‘
+# E302: expected 2 blank lines, found 0
+# E303: too many blank lines (3)
+# E305: expected 2 blank lines after end of function or class
+# E402: module level import not at top of file
+# E731: do not assign a lambda expression, use a def
+# E901: SyntaxError or IndentationError
+# W601: .has_key() is deprecated, use ‘in’
+# F401: module imported but unused
+# F403: ‘from module import *’ used; unable to detect undefined names
+# F405: name may be undefined, or defined from star imports: module
+# F841: local variable name is assigned to but never used
+# N801: class names should use CapWords convention
+# N802: function name should be lowercase
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802
max-line-length = 141
diff --git a/tests/wpt/web-platform-tests/tools/wpt/utils.py b/tests/wpt/web-platform-tests/tools/wpt/utils.py
index e1f4cd4bb5c..e8edc0be493 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/utils.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/utils.py
@@ -27,7 +27,7 @@ class Kwargs(dict):
value = value()
if not value:
if err_fn is not None:
- return err_fn(kwargs, "Failed to find %s" % desc)
+ return err_fn(self, "Failed to find %s" % desc)
else:
return
self[name] = value
diff --git a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py
index 8f36aa93585..b8454c979c2 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py
@@ -1,4 +1,5 @@
import os
+import shutil
import sys
import logging
from distutils.spawn import find_executable
@@ -21,7 +22,7 @@ class Virtualenv(object):
def create(self):
if os.path.exists(self.path):
shutil.rmtree(self.path)
- call(self.virtualenv, self.path)
+ call(self.virtualenv, self.path, "-p", sys.executable)
@property
def bin_path(self):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in b/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in
index 2be4d915be1..70839237889 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in
@@ -1,6 +1,5 @@
exclude MANIFEST.in
include requirements.txt
-include wptrunner/browsers/b2g_setup/*
include wptrunner.default.ini
include wptrunner/testharness_runner.html
include wptrunner/*.js
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/README.rst b/tests/wpt/web-platform-tests/tools/wptrunner/README.rst
index 780518aae11..834e07ee41d 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/README.rst
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/README.rst
@@ -23,7 +23,7 @@ The ``wptrunner`` command takes multiple options, of which the
following are most significant:
``--product`` (defaults to `firefox`)
- The product to test against: `b2g`, `chrome`, `firefox`, or `servo`.
+ The product to test against: `chrome`, `firefox`, or `servo`.
``--binary`` (required if product is `firefox` or `servo`)
The path to a binary file for the product (browser) to test against.
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py b/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py
index 0c717f56536..b58f313e946 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py
@@ -186,22 +186,22 @@ htmlhelp_basename = 'wptrunnerdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
+ # The paper size ('letterpaper' or 'a4paper').
+ #'papersize': 'letterpaper',
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
+ # The font size ('10pt', '11pt' or '12pt').
+ #'pointsize': '10pt',
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
+ # Additional stuff for the LaTeX preamble.
+ #'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- ('index', 'wptrunner.tex', u'wptrunner Documentation',
- u'James Graham', 'manual'),
+ ('index', 'wptrunner.tex', u'wptrunner Documentation',
+ u'James Graham', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -244,9 +244,9 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- ('index', 'wptrunner', u'wptrunner Documentation',
- u'James Graham', 'wptrunner', 'One line description of project.',
- 'Miscellaneous'),
+ ('index', 'wptrunner', u'wptrunner Documentation',
+ u'James Graham', 'wptrunner', 'One line description of project.',
+ 'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst
index 8e74a4320c8..258cca6eca9 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst
@@ -54,7 +54,7 @@ A test run is started using the ``wptrunner`` command. The command
takes multiple options, of which the following are most significant:
``--product`` (defaults to `firefox`)
- The product to test against: `b2g`, `chrome`, `firefox`, or `servo`.
+ The product to test against: `chrome`, `firefox`, or `servo`.
``--binary`` (required if product is `firefox` or `servo`)
The path to a binary file for the product (browser) to test against.
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt
new file mode 100644
index 00000000000..a2f54425f3e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt
@@ -0,0 +1,2 @@
+mozprocess >= 0.19
+selenium >= 2.41.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/setup.py b/tests/wpt/web-platform-tests/tools/wptrunner/setup.py
index 7ec189fefd9..7da51418327 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/setup.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/setup.py
@@ -53,13 +53,12 @@ setup(name=PACKAGE_NAME,
"config.json",
"wptrunner.default.ini",
"browsers/server-locations.txt",
- "browsers/b2g_setup/*",
"browsers/sauce_setup/*",
"prefs/*"]},
include_package_data=True,
data_files=[("requirements", requirements_files)],
install_requires=deps
- )
+ )
if "install" in sys.argv:
path = os.path.relpath(os.path.join(sys.prefix, "requirements"), os.curdir)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py b/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py
index 034e317bd52..622934a42b0 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py
@@ -156,7 +156,8 @@ def main():
run(config, args)
except Exception:
if args.pdb:
- import pdb, traceback
+ import pdb
+ import traceback
print traceback.format_exc()
pdb.post_mortem()
else:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini b/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini
index 790970409f3..fa6aa3f7129 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini
@@ -2,7 +2,7 @@
xfail_strict=true
[tox]
-envlist = {py27,pypy}-{base,b2g,chrome,firefox,servo}
+envlist = {py27,pypy}-{base,chrome,firefox,servo},py27-flake8
[testenv]
deps =
@@ -15,3 +15,40 @@ deps =
servo: -r{toxinidir}/requirements_servo.txt
commands = pytest --cov
+
+[testenv:py27-flake8]
+# flake8 versions should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
+deps =
+ flake8==3.5.0
+ pycodestyle==2.3.1
+ pyflakes==1.6.0
+ pep8-naming==0.4.1
+
+commands =
+ flake8
+
+[flake8]
+# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
+select = E,W,F,N
+# E128: continuation line under-indented for visual indent
+# E129: visually indented line with same indent as next logical line
+# E221: multiple spaces before operator
+# E226: missing whitespace around arithmetic operator
+# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
+# E251: unexpected spaces around keyword / parameter equals
+# E265: block comment should start with ‘# ‘
+# E302: expected 2 blank lines, found 0
+# E303: too many blank lines (3)
+# E305: expected 2 blank lines after end of function or class
+# E402: module level import not at top of file
+# E731: do not assign a lambda expression, use a def
+# E901: SyntaxError or IndentationError
+# W601: .has_key() is deprecated, use ‘in’
+# F401: module imported but unused
+# F403: ‘from module import *’ used; unable to detect undefined names
+# F405: name may be undefined, or defined from star imports: module
+# F841: local variable name is assigned to but never used
+# N801: class names should use CapWords convention
+# N802: function name should be lowercase
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802
+max-line-length = 141
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py
index a5c25335742..1e74863b733 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py
@@ -23,6 +23,7 @@ module global scope.
"""
product_list = ["chrome",
+ "chrome_android",
"edge",
"firefox",
"ie",
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip
deleted file mode 100644
index f9cbd5300ad..00000000000
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip
+++ /dev/null
Binary files differ
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py
new file mode 100644
index 00000000000..9e53bc660e2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py
@@ -0,0 +1,98 @@
+from .base import Browser, ExecutorBrowser, require_arg
+from ..webdriver_server import ChromeDriverServer
+from ..executors import executor_kwargs as base_executor_kwargs
+from ..executors.executorselenium import (SeleniumTestharnessExecutor,
+ SeleniumRefTestExecutor)
+from ..executors.executorchrome import ChromeDriverWdspecExecutor
+
+
+__wptrunner__ = {"product": "chrome_android",
+ "check_args": "check_args",
+ "browser": "ChromeAndroidBrowser",
+ "executor": {"testharness": "SeleniumTestharnessExecutor",
+ "reftest": "SeleniumRefTestExecutor",
+ "wdspec": "ChromeDriverWdspecExecutor"},
+ "browser_kwargs": "browser_kwargs",
+ "executor_kwargs": "executor_kwargs",
+ "env_extras": "env_extras",
+ "env_options": "env_options"}
+
+
+def check_args(**kwargs):
+ require_arg(kwargs, "webdriver_binary")
+
+
+def browser_kwargs(test_type, run_info_data, **kwargs):
+ return {"binary": kwargs["binary"],
+ "webdriver_binary": kwargs["webdriver_binary"],
+ "webdriver_args": kwargs.get("webdriver_args")}
+
+
+def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
+ **kwargs):
+ from selenium.webdriver import DesiredCapabilities
+
+ executor_kwargs = base_executor_kwargs(test_type, server_config,
+ cache_manager, **kwargs)
+ executor_kwargs["close_after_done"] = True
+ capabilities = dict(DesiredCapabilities.CHROME.items())
+ capabilities["chromeOptions"] = {}
+ # required to start on mobile
+ capabilities["chromeOptions"]["androidPackage"] = "com.android.chrome"
+
+ for (kwarg, capability) in [("binary", "binary"), ("binary_args", "args")]:
+ if kwargs[kwarg] is not None:
+ capabilities["chromeOptions"][capability] = kwargs[kwarg]
+ if test_type == "testharness":
+ capabilities["useAutomationExtension"] = False
+ capabilities["excludeSwitches"] = ["enable-automation"]
+ if test_type == "wdspec":
+ capabilities["chromeOptions"]["w3c"] = True
+ executor_kwargs["capabilities"] = capabilities
+ return executor_kwargs
+
+
+def env_extras(**kwargs):
+ return []
+
+
+def env_options():
+ return {"host": "web-platform.test",
+ "bind_hostname": "true"}
+
+
+class ChromeAndroidBrowser(Browser):
+ """Chrome is backed by chromedriver, which is supplied through
+ ``wptrunner.webdriver.ChromeDriverServer``.
+ """
+
+ def __init__(self, logger, binary, webdriver_binary="chromedriver",
+ webdriver_args=None):
+ """Creates a new representation of Chrome. The `binary` argument gives
+ the browser binary to use for testing."""
+ Browser.__init__(self, logger)
+ self.binary = binary
+ self.server = ChromeDriverServer(self.logger,
+ binary=webdriver_binary,
+ args=webdriver_args)
+
+ def start(self, **kwargs):
+ self.server.start(block=False)
+
+ def stop(self, force=False):
+ self.server.stop(force=force)
+
+ def pid(self):
+ return self.server.pid
+
+ def is_alive(self):
+ # TODO(ato): This only indicates the driver is alive,
+ # and doesn't say anything about whether a browser session
+ # is active.
+ return self.server.is_alive()
+
+ def cleanup(self):
+ self.stop()
+
+ def executor_browser(self):
+ return ExecutorBrowser, {"webdriver_url": self.server.url}
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py
index b324bccd91e..6d1f58d3791 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -96,15 +96,15 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
executor_kwargs["reftest_internal"] = kwargs["reftest_internal"]
executor_kwargs["reftest_screenshot"] = kwargs["reftest_screenshot"]
if test_type == "wdspec":
- fxOptions = {}
+ options = {}
if kwargs["binary"]:
- fxOptions["binary"] = kwargs["binary"]
+ options["binary"] = kwargs["binary"]
if kwargs["binary_args"]:
- fxOptions["args"] = kwargs["binary_args"]
- fxOptions["prefs"] = {
+ options["args"] = kwargs["binary_args"]
+ options["prefs"] = {
"network.dns.localDomains": ",".join(hostnames)
}
- capabilities["moz:firefoxOptions"] = fxOptions
+ capabilities["moz:firefoxOptions"] = options
if kwargs["certutil_binary"] is None:
capabilities["acceptInsecureCerts"] = True
if capabilities:
@@ -364,7 +364,7 @@ class FirefoxBrowser(Browser):
env[env_var] = (os.path.pathsep.join([certutil_dir, env[env_var]])
if env_var in env else certutil_dir).encode(
- sys.getfilesystemencoding() or 'utf-8', 'replace')
+ sys.getfilesystemencoding() or 'utf-8', 'replace')
def certutil(*args):
cmd = [self.certutil_binary] + list(args)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py
index 553372f390e..13f5827194d 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py
@@ -28,10 +28,10 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
**kwargs):
from selenium.webdriver import DesiredCapabilities
- ieOptions = {}
- ieOptions["requireWindowFocus"] = True
+ options = {}
+ options["requireWindowFocus"] = True
capabilities = {}
- capabilities["se:ieOptions"] = ieOptions
+ capabilities["se:ieOptions"] = options
executor_kwargs = base_executor_kwargs(test_type, server_config,
cache_manager, **kwargs)
executor_kwargs["close_after_done"] = True
@@ -51,7 +51,7 @@ class InternetExplorerBrowser(Browser):
def __init__(self, logger, webdriver_binary, webdriver_args=None):
Browser.__init__(self, logger)
- self.server = InterentExplorerDriverServer(self.logger,
+ self.server = InternetExplorerDriverServer(self.logger,
binary=webdriver_binary,
args=webdriver_args)
self.webdriver_host = "localhost"
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
index 874595cbff3..711534180dc 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
@@ -61,7 +61,7 @@ def get_ssl_kwargs(**kwargs):
elif kwargs["ssl_type"] == "pregenerated":
args = {"host_key_path": kwargs["host_key_path"],
"host_cert_path": kwargs["host_cert_path"],
- "ca_cert_path": kwargs["ca_cert_path"]}
+ "ca_cert_path": kwargs["ca_cert_path"]}
else:
args = {}
return args
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
index d87e4ab9924..7178b2e28c3 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
@@ -13,7 +13,7 @@ here = os.path.split(__file__)[0]
# Extra timeout to use after internal test timeout at which the harness
# should force a timeout
-extra_timeout = 5 # seconds
+extra_timeout = 5 # seconds
def executor_kwargs(test_type, server_config, cache_manager, **kwargs):
@@ -67,8 +67,8 @@ class TestharnessResultConverter(object):
(result_url, test.url))
harness_result = test.result_cls(self.harness_codes[status], message)
return (harness_result,
- [test.subtest_result_cls(name, self.test_codes[status], message, stack)
- for name, status, message, stack in subtest_results])
+ [test.subtest_result_cls(st_name, self.test_codes[st_status], st_message, st_stack)
+ for st_name, st_status, st_message, st_stack in subtest_results])
testharness_result_converter = TestharnessResultConverter()
@@ -124,7 +124,7 @@ class TestExecutor(object):
self.debug_info = debug_info
self.last_environment = {"protocol": "http",
"prefs": {}}
- self.protocol = None # This must be set in subclasses
+ self.protocol = None # This must be set in subclasses
@property
def logger(self):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py
index 2d0dc914d10..30930c3c2f9 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py
@@ -304,7 +304,7 @@ class ExecuteAsyncScriptRun(object):
self.result_flag = threading.Event()
def run(self):
- index = self.url.rfind("/storage/");
+ index = self.url.rfind("/storage/")
if index != -1:
# Clear storage
self.protocol.clear_origin(self.url)
@@ -503,7 +503,7 @@ class MarionetteRefTestExecutor(RefTestExecutor):
assert viewport_size is None
assert dpi is None
- timeout = self.timeout_multiplier * test.timeout if self.debug_info is None else None
+ timeout = self.timeout_multiplier * test.timeout if self.debug_info is None else None
test_url = self.test_url(test)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
index 2e84ab6fd65..f905fac81e1 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
@@ -51,7 +51,7 @@ class SeleniumProtocol(Protocol):
self.webdriver = webdriver.Remote(command_executor=RemoteConnection(self.url.strip("/"),
resolve_ip=False),
desired_capabilities=self.capabilities)
- except:
+ except Exception:
self.logger.warning(
"Connecting to Selenium failed:\n%s" % traceback.format_exc())
else:
@@ -64,7 +64,7 @@ class SeleniumProtocol(Protocol):
else:
try:
self.after_connect()
- except:
+ except Exception:
print >> sys.stderr, traceback.format_exc()
self.logger.warning(
"Failed to connect to navigate initial page")
@@ -76,7 +76,7 @@ class SeleniumProtocol(Protocol):
self.logger.debug("Hanging up on Selenium session")
try:
self.webdriver.quit()
- except:
+ except Exception:
pass
del self.webdriver
@@ -103,7 +103,7 @@ class SeleniumProtocol(Protocol):
def wait(self):
while True:
try:
- self.webdriver.execute_async_script("");
+ self.webdriver.execute_async_script("")
except exceptions.TimeoutException:
pass
except (socket.timeout, exceptions.NoSuchWindowException,
@@ -220,7 +220,7 @@ class SeleniumTestharnessExecutor(TestharnessExecutor):
win_s = webdriver.execute_script("return window['%s'];" % self.window_id)
win_obj = json.loads(win_s)
test_window = win_obj["window-fcc6-11e5-b4f8-330a88ab9d7f"]
- except:
+ except Exception:
after = webdriver.window_handles
if len(after) == 2:
test_window = next(iter(set(after) - set([parent])))
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py
index 33ff10df928..ca8ec8a7eb5 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py
@@ -28,7 +28,7 @@ from .executormarionette import WdspecRun
pytestrunner = None
webdriver = None
-extra_timeout = 5 # seconds
+extra_timeout = 5 # seconds
hosts_text = """127.0.0.1 web-platform.test
127.0.0.1 www.web-platform.test
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
index af09da6f178..ed7afaf1028 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
@@ -43,7 +43,7 @@ class ServoWebDriverProtocol(Protocol):
self.session = webdriver.Session(self.host, self.port,
extension=webdriver.servo.ServoCommandExtensions)
self.session.start()
- except:
+ except Exception:
self.logger.warning(
"Connecting with WebDriver failed:\n%s" % traceback.format_exc())
else:
@@ -60,7 +60,7 @@ class ServoWebDriverProtocol(Protocol):
self.logger.debug("Hanging up on WebDriver session")
try:
self.session.end()
- except:
+ except Exception:
pass
def is_alive(self):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py
index fd3f82aeb11..1d3c173928f 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py
@@ -247,8 +247,8 @@ class TestNode(ManifestItem):
boolean_properties=self.root.boolean_properties)
except ConditionError as e:
if stability is not None:
- self.set("disabled", stability or "unstable", e.cond.children[0])
- self.new_disabled = True
+ self.set("disabled", stability or "unstable", e.cond.children[0])
+ self.new_disabled = True
else:
print "Conflicting test results for %s, cannot update" % self.root.test_path
return
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py
index 923ac790733..9c31e4279ef 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py
@@ -355,7 +355,7 @@ def load_expected(test_manifest, metadata_path, test_path, tests, property_order
# Remove expected data for tests that no longer exist
for test in expected_manifest.iterchildren():
- if not test.id in tests_by_id:
+ if test.id not in tests_by_id:
test.remove()
# Add tests that don't have expected data
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py
index 6eb060485c2..e1709c5749a 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py
@@ -274,6 +274,6 @@ def check_stability(logger, repeat_loop=10, repeat_restart=5, chaos_mode=True, m
write_summary(logger, step_results, "FAIL")
return 1
- step_results.append((desc, "PASS"))
+ step_results.append((desc, "PASS"))
write_summary(logger, step_results, "PASS")
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py
index 0eb78bb884f..199ed6c2666 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py
@@ -93,7 +93,7 @@ class EqualTimeChunker(TestChunker):
for i, (test_type, test_path, tests) in enumerate(manifest_items):
test_dir = tuple(os.path.split(test_path)[0].split(os.path.sep)[:3])
- if not test_dir in by_dir:
+ if test_dir not in by_dir:
by_dir[test_dir] = PathData(test_dir)
data = by_dir[test_dir]
@@ -261,7 +261,7 @@ class EqualTimeChunker(TestChunker):
return self.paths.popleft()
@property
- def badness(self_):
+ def badness(self_): # noqa: N805
"""Badness metric for this chunk"""
return self._badness(self_.time)
@@ -587,6 +587,7 @@ class TestSource(object):
self.current_metadata = None
@abstractmethod
+ # noqa: N805
#@classmethod (doesn't compose with @abstractmethod)
def make_queue(cls, tests, **kwargs):
pass
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py
index 75f4825f952..85ffbe3741a 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py
@@ -195,7 +195,7 @@ class BrowserManager(object):
self.logger.debug("Starting browser with settings %r" % self.browser_settings)
self.browser.start(**self.browser_settings)
self.browser_pid = self.browser.pid()
- except:
+ except Exception:
self.logger.warning("Failure during init %s" % traceback.format_exc())
if self.init_timer is not None:
self.init_timer.cancel()
@@ -566,7 +566,7 @@ class TestRunnerManager(threading.Thread):
expected = test.expected()
status = file_result.status if file_result.status != "EXTERNAL-TIMEOUT" else "TIMEOUT"
- if file_result.status in ("TIMEOUT", "EXTERNAL-TIMEOUT"):
+ if file_result.status in ("TIMEOUT", "EXTERNAL-TIMEOUT"):
if self.browser.check_for_crashes():
status = "CRASH"
@@ -585,8 +585,8 @@ class TestRunnerManager(threading.Thread):
restart_before_next = (test.restart_after or
file_result.status in ("CRASH", "EXTERNAL-TIMEOUT") or
- ((subtest_unexpected or is_unexpected)
- and self.restart_on_unexpected))
+ ((subtest_unexpected or is_unexpected) and
+ self.restart_on_unexpected))
if (self.pause_after_test or
(self.pause_on_unexpected and (subtest_unexpected or is_unexpected))):
@@ -689,7 +689,7 @@ class TestRunnerManager(threading.Thread):
break
else:
if cmd == "log":
- self.log(*data)
+ self.log(*data)
else:
self.logger.warning("%r: %r" % (cmd, data))
while True:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py
index 808b81606ae..e7d41f3b420 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py
@@ -42,15 +42,13 @@ class HostsTest(unittest.TestCase):
192.168.1.1 another_host another_alias
""","""127.0.0.1 localhost alias
192.168.1.1 another_host another_alias
-"""
-)
+""")
def test_multiple_same_name(self):
# The semantics are that we overwrite earlier entries with the same name
self.do_test("""127.0.0.1 \tlocalhost alias
192.168.1.1 localhost another_alias""","""192.168.1.1 localhost another_alias
-"""
-)
+""")
if __name__ == "__main__":
unittest.main()
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py
index 497cb34ad0c..99dac6bcccc 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py
@@ -44,4 +44,3 @@ def main():
assert structuredlog.get_default_logger() is not None
success = run_update(logger, **args)
sys.exit(0 if success else 1)
-
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py
index c1bff854349..f2660e5a33e 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py
@@ -109,7 +109,7 @@ class UpdateCheckout(Step):
state.sync["branch"],
state.local_branch)
sync_path = os.path.abspath(sync_tree.root)
- if not sync_path in sys.path:
+ if sync_path not in sys.path:
from update import setup_paths
setup_paths(sync_path)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py
index 01df0b4f94a..279ddba1f6f 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py
@@ -75,7 +75,7 @@ class HgTree(object):
kwargs["repo"] = path
try:
hg("root", **kwargs)
- except:
+ except Exception:
return False
return True
@@ -155,7 +155,7 @@ class GitTree(object):
kwargs["repo"] = path
try:
git("rev-parse", "--show-toplevel", **kwargs)
- except:
+ except Exception:
return False
return True
@@ -305,8 +305,8 @@ class GitTree(object):
def paths(self):
"""List paths in the tree"""
- repo_paths = [self.root] + [os.path.join(self.root, path)
- for path in self.submodules()]
+ repo_paths = [self.root] + [os.path.join(self.root, path)
+ for path in self.submodules()]
rv = []
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py
index 16d53afc8be..a51312d3937 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py
@@ -15,7 +15,7 @@ def vcs(bin_name):
repo = kwargs.pop("repo", None)
log_error = kwargs.pop("log_error", True)
if kwargs:
- raise TypeError, kwargs
+ raise TypeError(kwargs)
args = list(args)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py
index fc853bfb97e..7b78898344f 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py
@@ -72,7 +72,7 @@ class WebDriverServer(object):
"Waiting for server to become accessible: %s" % self.url)
try:
wait_for_service((self.host, self.port))
- except:
+ except Exception:
self.logger.error(
"WebDriver HTTP server was not accessible "
"within the timeout:\n%s" % traceback.format_exc())
@@ -125,8 +125,6 @@ class SeleniumServer(WebDriverServer):
class ChromeDriverServer(WebDriverServer):
- default_base_path = "/"
-
def __init__(self, logger, binary="chromedriver", port=None,
base_path="", args=None):
WebDriverServer.__init__(
@@ -138,8 +136,6 @@ class ChromeDriverServer(WebDriverServer):
cmd_arg("url-base", self.base_path) if self.base_path else ""] + self._args
class EdgeDriverServer(WebDriverServer):
- default_base_path = "/"
-
def __init__(self, logger, binary="microsoftwebdriver.exe", port=None,
base_path="", args=None):
WebDriverServer.__init__(
@@ -147,8 +143,7 @@ class EdgeDriverServer(WebDriverServer):
def make_command(self):
return [self.binary,
- cmd_arg("port", str(self.port)),
- cmd_arg("url-base", self.base_path) if self.base_path else ""] + self._args
+ "--port=%s" % str(self.port)] + self._args
class OperaDriverServer(ChromeDriverServer):
def __init__(self, logger, binary="operadriver", port=None,
@@ -157,17 +152,6 @@ class OperaDriverServer(ChromeDriverServer):
self, logger, binary, port=port, base_path=base_path, args=args)
-class EdgeDriverServer(WebDriverServer):
- def __init__(self, logger, binary="MicrosoftWebDriver.exe", port=None,
- base_path="", host="localhost", args=None):
- WebDriverServer.__init__(
- self, logger, binary, host=host, port=port, args=args)
-
- def make_command(self):
- return [self.binary,
- "--port=%s" % str(self.port)] + self._args
-
-
class InternetExplorerDriverServer(WebDriverServer):
def __init__(self, logger, binary="IEDriverServer.exe", port=None,
base_path="", host="localhost", args=None):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
index b232462d915..ad18e424cd5 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
@@ -28,7 +28,7 @@ def require_arg(kwargs, name, value_func=None):
if value_func is None:
value_func = lambda x: x is not None
- if not name in kwargs or not value_func(kwargs[name]):
+ if name not in kwargs or not value_func(kwargs[name]):
print >> sys.stderr, "Missing required argument %s" % name
sys.exit(1)
@@ -97,7 +97,8 @@ scheme host and port.""")
test_selection_group.add_argument("--skip-timeout", action="store_true",
help="Skip tests that are expected to time out")
test_selection_group.add_argument("--tag", action="append", dest="tags",
- help="Labels applied to tests to include in the run. Labels starting dir: are equivalent to top-level directories.")
+ help="Labels applied to tests to include in the run. "
+ "Labels starting dir: are equivalent to top-level directories.")
debugging_group = parser.add_argument_group("Debugging")
debugging_group.add_argument('--debugger', const="__default__", nargs="?",
@@ -479,7 +480,8 @@ def create_parser_update(product_choices=None):
help="Don't create a VCS commit containing the changes.")
parser.add_argument("--sync", dest="sync", action="store_true", default=False,
help="Sync the tests with the latest from upstream (implies --patch)")
- parser.add_argument("--ignore-existing", action="store_true", help="When updating test results only consider results from the logfiles provided, not existing expectations.")
+ parser.add_argument("--ignore-existing", action="store_true",
+ help="When updating test results only consider results from the logfiles provided, not existing expectations.")
parser.add_argument("--stability", nargs="?", action="store", const="unstable", default=None,
help=("Reason for disabling tests. When updating test results, disable tests that have "
"inconsistent results across many runs with the given reason."))
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py
index 6db2cbbbb47..6908ea4c1e0 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py
@@ -211,15 +211,15 @@ class TokenizerTest(unittest.TestCase):
""")
def test_atom_1(self):
- self.compare(r"""key: @True
+ self.compare(r"""key: @True
""")
def test_atom_2(self):
- self.compare(r"""key: @False
+ self.compare(r"""key: @False
""")
def test_atom_3(self):
- self.compare(r"""key: @Reset
+ self.compare(r"""key: @Reset
""")
def test_atom_4(self):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py
index 88176c5a169..a64ce0c7bb7 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py
@@ -145,8 +145,7 @@ class TokenizerTest(unittest.TestCase):
(token_types.string, r"\nb")])
def test_list_0(self):
- self.compare(
-"""
+ self.compare("""
key: []""",
[(token_types.string, "key"),
(token_types.separator, ":"),
@@ -154,8 +153,7 @@ key: []""",
(token_types.list_end, "]")])
def test_list_1(self):
- self.compare(
-"""
+ self.compare("""
key: [a, "b"]""",
[(token_types.string, "key"),
(token_types.separator, ":"),
@@ -165,8 +163,7 @@ key: [a, "b"]""",
(token_types.list_end, "]")])
def test_list_2(self):
- self.compare(
-"""
+ self.compare("""
key: [a,
b]""",
[(token_types.string, "key"),
@@ -177,8 +174,7 @@ key: [a,
(token_types.list_end, "]")])
def test_list_3(self):
- self.compare(
-"""
+ self.compare("""
key: [a, #b]
c]""",
[(token_types.string, "key"),
@@ -199,18 +195,16 @@ key: [a, #b]
c]""")
def test_list_6(self):
- self.compare(
-"""key: [a , b]""",
- [(token_types.string, "key"),
- (token_types.separator, ":"),
- (token_types.list_start, "["),
- (token_types.string, "a"),
- (token_types.string, "b"),
- (token_types.list_end, "]")])
+ self.compare("""key: [a , b]""",
+ [(token_types.string, "key"),
+ (token_types.separator, ":"),
+ (token_types.list_start, "["),
+ (token_types.string, "a"),
+ (token_types.string, "b"),
+ (token_types.list_end, "]")])
def test_expr_0(self):
- self.compare(
-"""
+ self.compare("""
key:
if cond == 1: value""",
[(token_types.string, "key"),
@@ -224,8 +218,7 @@ key:
(token_types.string, "value")])
def test_expr_1(self):
- self.compare(
-"""
+ self.compare("""
key:
if cond == 1: value1
value2""",
@@ -241,8 +234,7 @@ key:
(token_types.string, "value2")])
def test_expr_2(self):
- self.compare(
-"""
+ self.compare("""
key:
if cond=="1": value""",
[(token_types.string, "key"),
@@ -256,8 +248,7 @@ key:
(token_types.string, "value")])
def test_expr_3(self):
- self.compare(
-"""
+ self.compare("""
key:
if cond==1.1: value""",
[(token_types.string, "key"),
@@ -271,8 +262,7 @@ key:
(token_types.string, "value")])
def test_expr_4(self):
- self.compare(
- """
+ self.compare("""
key:
if cond==1.1 and cond2 == "a": value""",
[(token_types.string, "key"),
@@ -290,8 +280,7 @@ key:
(token_types.string, "value")])
def test_expr_5(self):
- self.compare(
-"""
+ self.compare("""
key:
if (cond==1.1 ): value""",
[(token_types.string, "key"),
@@ -307,8 +296,7 @@ key:
(token_types.string, "value")])
def test_expr_6(self):
- self.compare(
-"""
+ self.compare("""
key:
if "\\ttest": value""",
[(token_types.string, "key"),
@@ -322,27 +310,26 @@ key:
def test_expr_7(self):
with self.assertRaises(parser.ParseError):
self.tokenize(
-"""
+ """
key:
if 1A: value""")
def test_expr_8(self):
with self.assertRaises(parser.ParseError):
self.tokenize(
-"""
+ """
key:
if 1a: value""")
def test_expr_9(self):
with self.assertRaises(parser.ParseError):
self.tokenize(
-"""
+ """
key:
if 1.1.1: value""")
def test_expr_10(self):
- self.compare(
-"""
+ self.compare("""
key:
if 1.: value""",
[(token_types.string, "key"),
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
index 637cbe57b6f..6677902a49a 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
@@ -307,7 +307,8 @@ def main():
return start(**kwargs)
except Exception:
if kwargs["pdb"]:
- import pdb, traceback
+ import pdb
+ import traceback
print traceback.format_exc()
pdb.post_mortem()
else:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
index d283e854205..9f4c1bed135 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
@@ -356,7 +356,7 @@ class ReftestTest(Test):
return node
def update_metadata(self, metadata):
- if not "url_count" in metadata:
+ if "url_count" not in metadata:
metadata["url_count"] = defaultdict(int)
for reference, _ in self.references:
# We assume a naive implementation in which a url with multiple
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst b/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst
index 39e98ab4f5e..8faeee489c9 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst
+++ b/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst
@@ -12,8 +12,8 @@ This would serve bytes 1 to 199, inclusive, of foo.txt with the HTTP status
code 404.
.. note::
- Pipes are only applied to static files, and will not work if applied to
- other types of handlers, such as Python File Handlers.
+ If you write directly to the response socket using ResponseWriter,
+ or when using the asis handler, only the trickle pipe will affect the response.
There are several built-in pipe functions, and it is possible to add
more using the `@pipe` decorator on a function, if required.
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py
index bd38f2ef18f..147ad156225 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py
@@ -1,9 +1,11 @@
import os
import unittest
import time
+import json
import pytest
+wptserve = pytest.importorskip("wptserve")
from .base import TestUsingServer, doc_root
@@ -82,5 +84,72 @@ class TestTrickle(TestUsingServer):
self.assertEqual(resp.info()["Pragma"], "no-cache")
self.assertEqual(resp.info()["Expires"], "0")
+class TestPipesWithVariousHandlers(TestUsingServer):
+ def test_with_python_file_handler(self):
+ resp = self.request("/test_string.py", query="pipe=slice(null,2)")
+ self.assertEqual(resp.read(), "PA")
+
+ def test_with_python_func_handler(self):
+ @wptserve.handlers.handler
+ def handler(request, response):
+ return "PASS"
+ route = ("GET", "/test/test_pipes_1/", handler)
+ self.server.router.register(*route)
+ resp = self.request(route[1], query="pipe=slice(null,2)")
+ self.assertEqual(resp.read(), "PA")
+
+ def test_with_python_func_handler_using_response_writer(self):
+ @wptserve.handlers.handler
+ def handler(request, response):
+ response.writer.write_content("PASS")
+ route = ("GET", "/test/test_pipes_1/", handler)
+ self.server.router.register(*route)
+ resp = self.request(route[1], query="pipe=slice(null,2)")
+ # slice has not been applied to the response, because response.writer was used.
+ self.assertEqual(resp.read(), "PASS")
+
+ def test_header_pipe_with_python_func_using_response_writer(self):
+ @wptserve.handlers.handler
+ def handler(request, response):
+ response.writer.write_content("CONTENT")
+ route = ("GET", "/test/test_pipes_1/", handler)
+ self.server.router.register(*route)
+ resp = self.request(route[1], query="pipe=header(X-TEST,FAIL)")
+ # header pipe was ignored, because response.writer was used.
+ self.assertFalse(resp.info().get("X-TEST"))
+ self.assertEqual(resp.read(), "CONTENT")
+
+ def test_with_json_handler(self):
+ @wptserve.handlers.json_handler
+ def handler(request, response):
+ return json.dumps({'data': 'PASS'})
+ route = ("GET", "/test/test_pipes_2/", handler)
+ self.server.router.register(*route)
+ resp = self.request(route[1], query="pipe=slice(null,2)")
+ self.assertEqual(resp.read(), '"{')
+
+ def test_slice_with_as_is_handler(self):
+ resp = self.request("/test.asis", query="pipe=slice(null,2)")
+ self.assertEqual(202, resp.getcode())
+ self.assertEqual("Giraffe", resp.msg)
+ self.assertEqual("PASS", resp.info()["X-Test"])
+ # slice has not been applied to the response, because response.writer was used.
+ self.assertEqual("Content", resp.read())
+
+ def test_headers_with_as_is_handler(self):
+ resp = self.request("/test.asis", query="pipe=header(X-TEST,FAIL)")
+ self.assertEqual(202, resp.getcode())
+ self.assertEqual("Giraffe", resp.msg)
+ # header pipe was ignored.
+ self.assertEqual("PASS", resp.info()["X-TEST"])
+ self.assertEqual("Content", resp.read())
+
+ def test_trickle_with_as_is_handler(self):
+ t0 = time.time()
+ resp = self.request("/test.asis", query="pipe=trickle(1:d2:5:d1:r2)")
+ t1 = time.time()
+ self.assertTrue('Content' in resp.read())
+ self.assertGreater(6, t1-t0)
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py
index c962a6cd80a..7cd8479855d 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py
@@ -237,6 +237,7 @@ class PythonScriptHandler(object):
if "main" in environ:
handler = FunctionHandler(environ["main"])
handler(request, response)
+ wrap_pipeline(path, request, response)
else:
raise HTTPException(500, "No main function in script %s" % path)
except IOError:
@@ -267,6 +268,7 @@ class FunctionHandler(object):
else:
content = rv
response.content = content
+ wrap_pipeline('', request, response)
#The generic name here is so that this can be used as a decorator
@@ -309,6 +311,7 @@ class AsIsHandler(object):
try:
with open(path) as f:
response.writer.write_content(f.read())
+ wrap_pipeline(path, request, response)
response.close_connection = True
except IOError:
raise HTTPException(404)
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py
index 7203815b70c..b71c8afa309 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py
@@ -6,6 +6,7 @@ import types
import uuid
from cStringIO import StringIO
+from six import text_type
def resolve_content(response):
return b"".join(item for item in response.iter_content(read_file=True))
@@ -276,18 +277,18 @@ def slice(request, response, start, end=None):
class ReplacementTokenizer(object):
- def ident(scanner, token):
+ def ident(self, token):
return ("ident", token)
- def index(scanner, token):
+ def index(self, token):
token = token[1:-1]
try:
token = int(token)
except ValueError:
- token = unicode(token, "utf8")
+ token = token.decode('utf8')
return ("index", token)
- def var(scanner, token):
+ def var(self, token):
token = token[:-1]
return ("var", token)
@@ -425,7 +426,7 @@ def template(request, content, escape_type="html"):
#Should possibly support escaping for other contexts e.g. script
#TODO: read the encoding of the response
- return escape_func(unicode(value)).encode("utf-8")
+ return escape_func(text_type(value)).encode("utf-8")
template_regexp = re.compile(r"{{([^}]*)}}")
new_content = template_regexp.sub(config_replacement, content)
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py
index 50ff00dde94..20b7b426996 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py
@@ -9,6 +9,8 @@ import socket
from .constants import response_codes
from .logger import get_logger
+from six import string_types, binary_type, text_type
+
missing = object()
class Response(object):
@@ -400,7 +402,7 @@ class ResponseWriter(object):
if name.lower() not in self._headers_seen:
self.write_header(name, f())
- if (type(self._response.content) in (str, unicode) and
+ if (isinstance(self._response.content, string_types) and
"content-length" not in self._headers_seen):
#Would be nice to avoid double-encoding here
self.write_header("Content-Length", len(self.encode(self._response.content)))
@@ -457,9 +459,9 @@ class ResponseWriter(object):
def encode(self, data):
"""Convert unicode to bytes according to response.encoding."""
- if isinstance(data, str):
+ if isinstance(data, binary_type):
return data
- elif isinstance(data, unicode):
+ elif isinstance(data, text_type):
return data.encode(self._response.encoding)
else:
raise ValueError
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py
index 2a83bd8097e..f9ed238624b 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py
@@ -110,14 +110,15 @@ class WebTestServer(ThreadingMixIn, BaseHTTPServer.HTTPServer):
# Ensure that we don't hang on shutdown waiting for requests
daemon_threads = True
- def __init__(self, server_address, RequestHandlerClass, router, rewriter, bind_hostname,
+ def __init__(self, server_address, request_handler_cls,
+ router, rewriter, bind_hostname,
config=None, use_ssl=False, key_file=None, certificate=None,
encrypt_after_connect=False, latency=None, **kwargs):
"""Server for HTTP(s) Requests
:param server_address: tuple of (server_name, port)
- :param RequestHandlerClass: BaseHTTPRequestHandler-like class to use for
+ :param request_handler_cls: BaseHTTPRequestHandler-like class to use for
handling requests.
:param router: Router instance to use for matching requests to handler
@@ -161,7 +162,7 @@ class WebTestServer(ThreadingMixIn, BaseHTTPServer.HTTPServer):
hostname_port = ("",server_address[1])
#super doesn't work here because BaseHTTPServer.HTTPServer is old-style
- BaseHTTPServer.HTTPServer.__init__(self, hostname_port, RequestHandlerClass, **kwargs)
+ BaseHTTPServer.HTTPServer.__init__(self, hostname_port, request_handler_cls, **kwargs)
if config is not None:
Server.config = config
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py
index b6bd6eed442..69fa4418383 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py
@@ -2,7 +2,8 @@ import base64
import json
import os
import uuid
-from multiprocessing.managers import BaseManager, DictProxy
+import threading
+from multiprocessing.managers import AcquirerProxy, BaseManager, DictProxy
class ServerDictManager(BaseManager):
shared_data = {}
@@ -13,11 +14,13 @@ def _get_shared():
ServerDictManager.register("get_dict",
callable=_get_shared,
proxytype=DictProxy)
+ServerDictManager.register('Lock', threading.Lock, AcquirerProxy)
class ClientDictManager(BaseManager):
pass
ClientDictManager.register("get_dict")
+ClientDictManager.register("Lock")
class StashServer(object):
def __init__(self, address=None, authkey=None):
@@ -53,6 +56,22 @@ def start_server(address=None, authkey=None):
return (manager, manager._address, manager._authkey)
+class LockWrapper(object):
+ def __init__(self, lock):
+ self.lock = lock
+
+ def acquire(self):
+ self.lock.acquire()
+
+ def release(self):
+ self.lock.release()
+
+ def __enter__(self):
+ self.acquire()
+
+ def __exit__(self, *args, **kwargs):
+ self.release()
+
#TODO: Consider expiring values after some fixed time for long-running
#servers
@@ -81,21 +100,23 @@ class Stash(object):
"""
_proxy = None
+ lock = None
def __init__(self, default_path, address=None, authkey=None):
self.default_path = default_path
- self.data = self._get_proxy(address, authkey)
+ self._get_proxy(address, authkey)
+ self.data = Stash._proxy
def _get_proxy(self, address=None, authkey=None):
if address is None and authkey is None:
Stash._proxy = {}
+ Stash.lock = threading.Lock()
if Stash._proxy is None:
manager = ClientDictManager(address, authkey)
manager.connect()
Stash._proxy = manager.get_dict()
-
- return Stash._proxy
+ Stash.lock = LockWrapper(manager.Lock())
def _wrap_key(self, key, path):
if path is None:
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html
new file mode 100644
index 00000000000..6b315c83df7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+
+ <body>
+ <script>
+ const test_data = [
+ {
+ url : './link-upgrade/basic-link-no-upgrade.sub.html',
+ done_message : 'basic-link-no-upgrade',
+ },
+ {
+ url : './link-upgrade/basic-link-upgrade.sub.html',
+ done_message : 'basic-link-upgrade',
+ },
+ {
+ url : './link-upgrade/iframe-link-upgrade.sub.html',
+ done_message : 'iframe-link-upgrade',
+ },
+ {
+ url : './link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html',
+ done_message : 'iframe-top-navigation-no-upgrade-1',
+ },
+ {
+ url : './link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html',
+ done_message : 'iframe-top-navigation-no-upgrade-2',
+ },
+ {
+ url : './link-upgrade/iframe-top-navigation-upgrade-1.sub.html',
+ done_message : 'iframe-top-navigation-upgrade-1',
+ },
+ {
+ url : './link-upgrade/iframe-top-navigation-upgrade-2.sub.html',
+ done_message : 'iframe-top-navigation-upgrade-2',
+ },
+ {
+ url : './link-upgrade/iframe-top-navigation-upgrade-meta.sub.html',
+ done_message : 'iframe-top-navigation-upgrade-meta',
+ },
+ ];
+ for(let i = 0; i<test_data.length; i+=1) {
+ let data = test_data[i];
+ let test = async_test(data.url);
+ test.step(function() {
+ let w = window.open(data.url, data.url);
+ this.add_cleanup(() => w.close());
+ assert_true(w != undefined, "Popup must not be blocked");
+
+ window.addEventListener("message", event => {
+ if (event.data == data.done_message)
+ test.done();
+ });
+ });
+
+ test.step_timeout(function(){test.force_timeout()}, 5000);
+ }
+ </script>
+ </body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html
new file mode 100644
index 00000000000..c1a600f525e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html
@@ -0,0 +1,19 @@
+<html>
+ <title>Upgrade Insecure Requests: link no upgrade.</title>
+ <head>
+ <script>
+ function click() {
+ document.getElementById("link").click();
+ }
+ </script>
+ </head>
+ <body onload="click()">
+ <!--
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number. So if
+ the url is upgraded, the url becomes invalid (https over the http port).
+ The expected behavior is that the url is not upgraded and the page loads.
+ -->
+ <a id="link"
+ href="http://{{domains[www]}}:{{ports[http][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html?message=basic-link-no-upgrade"> Click me </a>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html
new file mode 100644
index 00000000000..ef41d3e9c7f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html
@@ -0,0 +1,19 @@
+<html>
+ <title>Upgrade Insecure Requests: link upgrade.</title>
+ <head>
+ <script>
+ function click() {
+ document.getElementById("link").click();
+ }
+ </script>
+ </head>
+ <body onload="click()">
+ <!--
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number, so we
+ specify this non-existent URL ('http' over https port). If UPGRADE doesn't
+ work, it won't load. The expected behavior is that the url is upgraded and
+ the page loads.
+ -->
+ <a id="link" href="http://{{host}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html?message=basic-link-upgrade"> Click me </a>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html
new file mode 100644
index 00000000000..ed058b61545
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html
@@ -0,0 +1,11 @@
+<!--
+ This document has set "Content-Security-Policy: upgrade-insecure-requests". It
+ contains an iframe. This iframe clicks on a link to the same host. The link
+ must be upgraded.
+
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number. So if
+ the url is not upgraded, the url is invalid (http over the https port).
+ The expected behavior is that the url is upgraded and the page loads.
+-->
+<iframe src= "./resources/click-on-link.sub.html?url=http://{{host}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html%3Fmessage=iframe-link-upgrade">
+</iframe>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html
new file mode 100644
index 00000000000..1b514e2da72
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <title>Upgrade Insecure Requests: top-frame navigation inside iframe (no upgrade expected)</title>
+ </head>
+ <body>
+ <!--
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number. So if the
+ url is upgraded, the url becomes invalid (https over the http port). The
+ expected behavior is that the url is not upgraded and the page loads.
+ -->
+ <iframe
+ sandbox="allow-scripts allow-top-navigation"
+ src="https://{{domains[www]}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html?url=http://{{domains[www]}}:{{ports[http][1]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html%3Fmessage=iframe-top-navigation-no-upgrade-1"
+ ></iframe>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html
new file mode 100644
index 00000000000..386a86fdbdb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <title>Upgrade Insecure Requests: top-frame navigation inside iframe (no upgrade expected)</title>
+ </head>
+ <body>
+ <!--
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number. So if the
+ url is upgraded, the url becomes invalid (https over the http port). The
+ expected behavior is that the url is not upgraded and the page loads.
+ -->
+ <iframe
+ sandbox="allow-scripts allow-top-navigation"
+ src="https://{{domains[www]}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html?url=http://{{host}}:{{ports[http][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html%3Fmessage=iframe-top-navigation-no-upgrade-2"
+ ></iframe>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html
new file mode 100644
index 00000000000..13c76e82c86
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ <title>Upgrade Insecure Requests: top-frame navigation inside iframe (upgrade expected)</title>
+ </head>
+ <body>
+ <!--
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number, so we
+ specify this non-existent URL ('http' over https port). If UPGRADE doesn't
+ work, it won't load. The expected behavior is that the url is upgraded and
+ the page loads.
+ -->
+ <iframe
+ sandbox="allow-scripts allow-top-navigation"
+ src="https://{{domains[www]}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html?url=http://{{host}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html%3Fmessage=iframe-top-navigation-upgrade-1"
+ ></iframe>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html
new file mode 100644
index 00000000000..651d76d93b5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ <title>Upgrade Insecure Requests: top-frame navigation inside iframe (upgrade expected)</title>
+ </head>
+ <body>
+ <!--
+ This is a bit of a hack. UPGRADE doesn't upgrade the port number, so we
+ specify this non-existent URL ('http' over https port). If UPGRADE doesn't
+ work, it won't load. The expected behavior is that the url is upgraded and
+ the page loads.
+ -->
+ <iframe
+ sandbox="allow-scripts allow-top-navigation"
+ src="https://{{domains[www]}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html?url=http://{{domains[www]}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html%3Fmessage=iframe-top-navigation-upgrade-2"
+ ></iframe>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html
new file mode 100644
index 00000000000..e43050eb5b3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html
@@ -0,0 +1,31 @@
+<html>
+ <head>
+ <title>Upgrade Insecure Requests: top-frame navigation inside iframe (upgrade expected)</title>
+ <script>
+ function iframe_onload() {
+ var iframe = document.getElementsByTagName("iframe")[0];
+ iframe.onload = null;
+
+ // Enable upgrade-insecure-requests dynamically.
+ var meta = document.createElement('meta');
+ meta.httpEquiv = "Content-Security-Policy";
+ meta.content = "upgrade-insecure-requests";
+ document.getElementsByTagName('head')[0].appendChild(meta);
+
+ // This is a bit of a hack. UPGRADE doesn't upgrade the port number,
+ // so we specify this non-existent URL ('http' over port https port). If
+ // UPGRADE doesn't work, it won't load. The expected behavior is that
+ // the url is upgraded and the page loads.
+ iframe.src =
+ "https://{{domains[www]}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html?url=http://{{host}}:{{ports[https][0]}}/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html%3Fmessage=iframe-top-navigation-upgrade-meta"
+ }
+ </script>
+ </head>
+ <body>
+ <iframe
+ sandbox = "allow-scripts allow-top-navigation"
+ src = "./resources/dummy.html"
+ onload = "iframe_onload()"
+ ></iframe>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html
new file mode 100644
index 00000000000..d2899c8873f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html
@@ -0,0 +1,10 @@
+<body>
+ coucou
+ <a href="{{GET[url]}}">Click me</a>
+</body>
+
+<script>
+ window.addEventListener("load", function() {
+ document.getElementsByTagName("a")[0].click();
+ })
+</script>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html
new file mode 100644
index 00000000000..1c56b516659
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html
@@ -0,0 +1 @@
+I am not an interesting file...
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html
new file mode 100644
index 00000000000..35332900d18
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html
@@ -0,0 +1,5 @@
+<script>
+ window.addEventListener("load", function() {
+ window.top.location.href = "{{GET[url]}}";
+ })
+</script>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html
new file mode 100644
index 00000000000..35332900d18
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html
@@ -0,0 +1,5 @@
+<script>
+ window.addEventListener("load", function() {
+ window.top.location.href = "{{GET[url]}}";
+ })
+</script>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html
new file mode 100644
index 00000000000..5cf2df57323
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html
@@ -0,0 +1,3 @@
+<script>
+ top.opener.postMessage("{{GET[message]}}", "*");
+</script>
diff --git a/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html b/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html
index b0603c8752d..c4b36879ad1 100644
--- a/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html
+++ b/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html
@@ -26,11 +26,13 @@
});
window.addEventListener('load', function() {
- requestAnimationFrame(
- t.step_func_done(function() {
- var isOverlay = calculateScrollbarThickness() == 0;
- assert_equals(numViewResizes, isOverlay ? 0 : 1);
- }));
+ requestAnimationFrame(function() {
+ requestAnimationFrame(
+ t.step_func_done(function() {
+ var isOverlay = calculateScrollbarThickness() == 0;
+ assert_equals(numViewResizes, isOverlay ? 0 : 1);
+ }));
+ });
});
}
</script>
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py
index 88da4f110cf..52f258243fa 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py
@@ -37,7 +37,7 @@ invalid_data = [
{"proxyType": 1}, {"proxyType": []}, {"proxyType": {"value": "system"}},
{" proxyType": "system"}, {"proxyType ": "system"}, {"proxyType ": " system"},
{"proxyType": "system "}]),
- ("timeouts", [1, [], "{}", {}, False, {"pageLOAD": 10}, {"page load": 10},
+ ("timeouts", [1, [], "{}", False, {"pageLOAD": 10}, {"page load": 10},
{"page load": 10}, {"pageLoad": "10"}, {"pageLoad": {"value": 10}},
{"invalid": 10}, {"pageLoad": -1}, {"pageLoad": 2**64},
{"pageLoad": None}, {"pageLoad": 1.1}, {"pageLoad": 10, "invalid": 10},
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py
index 75ac3e8dc41..231199d120f 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py
@@ -6,6 +6,10 @@ valid_data = [
("platformName", [None]),
("pageLoadStrategy", ["none", "eager", "normal", None]),
("proxy", [None]),
+ ("timeouts", [{"script": 0, "pageLoad": 2.0, "implicit": 2**64 - 1},
+ {"script": 50, "pageLoad": 25},
+ {"script": 500},
+ {}]),
("unhandledPromptBehavior", ["dismiss", "accept", None]),
("test:extension", [True, "abc", 123, [], {"key": "value"}, None]),
]
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html
new file mode 100644
index 00000000000..db177aebe38
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html
@@ -0,0 +1,403 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>RTCPeerConnection.prototype.getStats</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="RTCPeerConnection-helper.js"></script>
+<script src="dictionary-helper.js"></script>
+<script src="RTCStats-helper.js"></script>
+<script>
+ 'use strict';
+
+ // The following helper functions are called from RTCPeerConnection-helper.js:
+ // doSignalingHandshake
+ // getUserMediaTracksAndStreams
+
+ // The following helper functions are called from RTCStats-helper.js
+ // (depends on dictionary-helper.js):
+ // validateRtcStats
+
+ async_test(t => {
+ const pc = new RTCPeerConnection();
+ let track;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ track = tracks[0];
+ pc.addTrack(track);
+ return pc.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', track.id);
+ assert_true(trackStats != null, 'Has stats for track');
+ // TODO(hbos): Here and elsewhere, validateRtcStats() only tests id,
+ // timestamp and type is correct type. Should validate based on stats type
+ // but it expects both audio and video members.
+ // https://github.com/w3c/web-platform-tests/issues/9010
+ validateRtcStats(report, trackStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'addTrack() without setLocalDescription() yields track stats');
+
+ async_test(t => {
+ const pc = new RTCPeerConnection();
+ let stream;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ let track = tracks[0];
+ stream = streams[0];
+ pc.addTrack(track, stream);
+ return pc.getStats();
+ }))
+ .then(t.step_func(report => {
+ let streamStats = findStatsByTypeAndId(report, 'stream', stream.id);
+ assert_true(streamStats != null, 'Has stats for stream');
+ validateRtcStats(report, streamStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'addTrack() without setLocalDescription() yields media stream stats');
+
+ async_test(t => {
+ const pc = new RTCPeerConnection();
+ let track;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ track = tracks[0];
+ pc.addTrack(track);
+ return pc.createOffer();
+ }))
+ .then(t.step_func(offer => {
+ return pc.setLocalDescription(offer);
+ }))
+ .then(t.step_func(() => {
+ return pc.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', track.id);
+ assert_true(trackStats != null, 'Has stats for track');
+ validateRtcStats(report, trackStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'addTrack() with setLocalDescription() yields track stats');
+
+ async_test(t => {
+ const pc = new RTCPeerConnection();
+ let stream;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ let track = tracks[0];
+ stream = streams[0];
+ pc.addTrack(track, stream);
+ return pc.createOffer();
+ }))
+ .then(t.step_func(offer => {
+ return pc.setLocalDescription(offer);
+ }))
+ .then(t.step_func(() => {
+ return pc.getStats();
+ }))
+ .then(t.step_func(report => {
+ let streamStats = findStatsByTypeAndId(report, 'stream', stream.id);
+ assert_true(streamStats != null, 'Has stats for stream');
+ validateRtcStats(report, streamStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'addTrack() with setLocalDescription() yields media stream stats');
+
+ async_test(t => {
+ const pc = new RTCPeerConnection();
+ let track;
+ let stream;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ track = tracks[0];
+ stream = streams[0];
+ pc.addTrack(track, stream);
+ return pc.createOffer();
+ }))
+ .then(t.step_func(offer => {
+ return pc.setLocalDescription(offer);
+ }))
+ .then(t.step_func(() => {
+ return pc.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', track.id);
+ let streamStats = findStatsByTypeAndId(report, 'stream', stream.id);
+ assert_true(trackStats != null && streamStats != null,
+ 'Has stats for track and stream');
+ assert_array_equals(streamStats.trackIds, [ trackStats.id ],
+ 'streamStats.trackIds == [ trackStats.id ]');
+ validateRtcStats(report, trackStats);
+ validateRtcStats(report, streamStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'addTrack(): Media stream stats references track stats');
+
+ // TODO(hbos): addStream() is legacy API not in the spec. Based on discussion
+ // whether to standardize in legacy section, consider removing this test or
+ // keeping it until addTrack() has wide support.
+ // https://github.com/w3c/webrtc-pc/issues/1705
+ // https://github.com/w3c/webrtc-pc/issues/1125
+ async_test(t => {
+ const pc = new RTCPeerConnection();
+ let track;
+ let stream;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ track = tracks[0];
+ stream = streams[0];
+ stream.addTrack(track);
+ pc.addStream(stream);
+ return pc.createOffer();
+ }))
+ .then(t.step_func(offer => {
+ return pc.setLocalDescription(offer);
+ }))
+ .then(t.step_func(() => {
+ return pc.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', track.id);
+ let streamStats = findStatsByTypeAndId(report, 'stream', stream.id);
+ assert_true(trackStats != null && streamStats != null,
+ 'Has stats for track and stream');
+ assert_array_equals(streamStats.trackIds, [ trackStats.id ],
+ 'streamStats.trackIds == [ trackStats.id ]');
+ validateRtcStats(report, trackStats);
+ validateRtcStats(report, streamStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'Legacy addStream(): Media stream stats references track stats');
+
+ async_test(t => {
+ const caller = new RTCPeerConnection();
+ const callee = new RTCPeerConnection();
+ let sendingTrack;
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ sendingTrack = tracks[0];
+ caller.addTrack(sendingTrack);
+ return doSignalingHandshake(caller, callee);
+ }))
+ .then(t.step_func(() => {
+ return caller.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', sendingTrack.id);
+ assert_true(trackStats != null, 'Has stats for sending track');
+ let outboundStats = findStatsByTypeAndMember(report, 'outbound-rtp',
+ 'trackId', trackStats.id);
+ assert_true(outboundStats != null, 'Has stats for outbound RTP stream');
+ validateRtcStats(report, trackStats);
+ validateRtcStats(report, outboundStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'O/A exchange yields outbound RTP stream stats for sending track');
+
+ async_test(t => {
+ const caller = new RTCPeerConnection();
+ const callee = new RTCPeerConnection();
+ let receivingTrack;
+ callee.ontrack = trackEvent => {
+ assert_true(receivingTrack == undefined, 'ontrack has not fired before');
+ receivingTrack = trackEvent.track;
+ };
+ return getUserMediaTracksAndStreams(1)
+ .then(t.step_func(([tracks, streams]) => {
+ caller.addTrack(tracks[0]);
+ return doSignalingHandshake(caller, callee);
+ }))
+ .then(t.step_func(() => {
+ return callee.getStats();
+ }))
+ .then(t.step_func(report => {
+ assert_true(receivingTrack != null, 'Has a receiving track');
+ let trackStats = findStatsByTypeAndId(report, 'track', receivingTrack.id);
+ assert_true(trackStats != null, 'Has stats for receiving track');
+ let inboundStats = findStatsByTypeAndMember(report, 'inbound-rtp',
+ 'trackId', trackStats.id);
+ assert_true(inboundStats != null, 'Has stats for outbound RTP stream');
+ validateRtcStats(report, trackStats);
+ validateRtcStats(report, inboundStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'O/A exchange yields inbound RTP stream stats for receiving track');
+
+ async_test(t => {
+ const caller = new RTCPeerConnection();
+ const callee = new RTCPeerConnection();
+ let sendingTrack1;
+ let sendingTrack2;
+ let sender;
+ return getUserMediaTracksAndStreams(2)
+ .then(t.step_func(([tracks, streams]) => {
+ sendingTrack1 = tracks[0];
+ sendingTrack2 = tracks[1];
+ sender = caller.addTrack(sendingTrack1);
+ return sender.replaceTrack(sendingTrack2);
+ }))
+ .then(t.step_func(() => {
+ return caller.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', sendingTrack2.id);
+ assert_true(trackStats != null, 'Has stats for replaced track');
+ validateRtcStats(report, trackStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'replaceTrack() before offer: new track attachment stats present');
+
+ async_test(t => {
+ const caller = new RTCPeerConnection();
+ const callee = new RTCPeerConnection();
+ let sendingTrack1;
+ let sendingTrack2;
+ let sender;
+ return getUserMediaTracksAndStreams(2)
+ .then(t.step_func(([tracks, streams]) => {
+ sendingTrack1 = tracks[0];
+ sendingTrack2 = tracks[1];
+ sender = caller.addTrack(sendingTrack1);
+ return performOffer(caller, callee);
+ }))
+ .then(t.step_func(() => {
+ return sender.replaceTrack(sendingTrack2);
+ }))
+ .then(t.step_func(() => {
+ return caller.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', sendingTrack2.id);
+ assert_true(trackStats != null, 'Has stats for replaced track');
+ let outboundStats = findStatsByTypeAndMember(report, 'outbound-rtp',
+ 'trackId', trackStats.id);
+ assert_true(outboundStats != null, 'Has stats for outbound RTP stream');
+ validateRtcStats(report, trackStats);
+ validateRtcStats(report, outboundStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'replaceTrack() after offer, before answer: new track attachment stats ' +
+ 'present');
+
+ async_test(t => {
+ const caller = new RTCPeerConnection();
+ const callee = new RTCPeerConnection();
+ let sendingTrack1;
+ let sendingTrack2;
+ let sender;
+ return getUserMediaTracksAndStreams(2)
+ .then(t.step_func(([tracks, streams]) => {
+ sendingTrack1 = tracks[0];
+ sendingTrack2 = tracks[1];
+ sender = caller.addTrack(sendingTrack1);
+ return doSignalingHandshake(caller, callee);
+ }))
+ .then(t.step_func(() => {
+ return sender.replaceTrack(sendingTrack2);
+ }))
+ .then(t.step_func(() => {
+ return caller.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', sendingTrack2.id);
+ assert_true(trackStats != null, 'Has stats for replaced track');
+ let outboundStats = findStatsByTypeAndMember(report, 'outbound-rtp',
+ 'trackId', trackStats.id);
+ assert_true(outboundStats != null, 'Has stats for outbound RTP stream');
+ validateRtcStats(report, trackStats);
+ validateRtcStats(report, outboundStats);
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'replaceTrack() after answer: new track attachment stats present');
+
+ async_test(t => {
+ const caller = new RTCPeerConnection();
+ const callee = new RTCPeerConnection();
+ let sendingTrack1;
+ let sendingTrack2;
+ let sender;
+ return getUserMediaTracksAndStreams(2)
+ .then(t.step_func(([tracks, streams]) => {
+ sendingTrack1 = tracks[0];
+ sendingTrack2 = tracks[1];
+ sender = caller.addTrack(sendingTrack1);
+ return doSignalingHandshake(caller, callee);
+ }))
+ .then(t.step_func(() => {
+ return sender.replaceTrack(sendingTrack2);
+ }))
+ .then(t.step_func(() => {
+ return caller.getStats();
+ }))
+ .then(t.step_func(report => {
+ let trackStats = findStatsByTypeAndId(report, 'track', sendingTrack1.id);
+ assert_true(trackStats != null, 'Has stats for original track');
+ assert_true(trackStats.objectDeleted);
+ let outboundStats = findStatsByTypeAndMember(report, 'outbound-rtp',
+ 'trackId', trackStats.id);
+ assert_true(outboundStats == null,
+ 'The outbound RTP stream should no longer reference the ' +
+ 'original attachment');
+ t.done();
+ }))
+ .catch(t.step_func(reason => {
+ assert_unreached(reason);
+ }));
+ }, 'replaceTrack(): original track attachment stats present after replacing');
+
+ // Helpers.
+
+ function findStatsByTypeAndId(report, type, identifier) {
+ return findStats(report, stats => {
+ return stats.type == type && stats[type + 'Identifier'] == identifier;
+ });
+ }
+
+ function findStatsByTypeAndMember(report, type, member, value) {
+ return findStats(report, stats => {
+ return stats.type == type && stats[member] == value;
+ });
+ }
+
+ function findStats(report, findFunc) {
+ for (let it = report.values(), n = it.next(); !n.done; n = it.next()) {
+ if (findFunc(n.value))
+ return n.value;
+ }
+ return null;
+ }
+
+</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html b/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html
index 7d73cc5a3b5..d7f836292eb 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html
@@ -86,11 +86,11 @@ promise_test(t => {
assert_not_equals(pc.sctp, null);
// Test outcome depends on canSendSize value
if (canSendSize) {
- assert_equals(pc.sctp.maxMessageSize, Math.min(65535, canSendSize),
- 'Missing SDP attribute and a non-zero canSendSize should give an maxMessageSize of min(65535, canSendSize)');
+ assert_equals(pc.sctp.maxMessageSize, Math.min(65536, canSendSize),
+ 'Missing SDP attribute and a non-zero canSendSize should give an maxMessageSize of min(65536, canSendSize)');
} else {
- assert_equals(pc.sctp.maxMessageSize, 65535,
- 'Missing SDP attribute and a canSendSize of 0 should give an maxMessageSize of 65535');
+ assert_equals(pc.sctp.maxMessageSize, 65536,
+ 'Missing SDP attribute and a canSendSize of 0 should give an maxMessageSize of 65536');
}
});
}, 'Remote offer SDP missing max-message-size attribute');
@@ -172,7 +172,7 @@ promise_test(t => {
assert_equals(pc.sctp.maxMessageSize, canSendSize,
'A remote value larger than a non-zero canSendSize should limit maxMessageSize to canSendSize');
} else {
- assert_equals(pc.sctp.maxMessageSize, 65535,
+ assert_equals(pc.sctp.maxMessageSize, 65536,
'A canSendSize of zero should let the remote value set maxMessageSize');
}
});
diff --git a/tests/wpt/web-platform-tests/webxr/interfaces.https.html b/tests/wpt/web-platform-tests/webxr/interfaces.https.html
new file mode 100644
index 00000000000..e04764e5f61
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/interfaces.https.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>WebXR Device API IDL Tests</title>
+<link rel="help" href="https://immersive-web.github.io/webxr/spec/latest/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
+<script>
+"use strict";
+
+promise_test(async () => {
+ const idl_array = new IdlArray();
+ const dom_idl = await fetch("/interfaces/dom.idl").then(r => r.text());
+ const webxr_idl = await fetch("/interfaces/webxr.idl").then(r => r.text());
+
+ idl_array.add_untested_idls(dom_idl);
+ idl_array.add_untested_idls("interface Navigator {};");
+ idl_array.add_idls(webxr_idl);
+ idl_array.add_objects({
+ Navigator:['navigator'],
+ });
+ idl_array.test();
+}, "Test IDL implementation of WebXR API");
+</script>
diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html
new file mode 100644
index 00000000000..9468d2da7d6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/worklet-test-utils.js"></script>
+ <script src="resources/credentials-tests.js"></script>
+</head>
+<body>
+<script>
+ runCredentialsTests("layout");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html
new file mode 100644
index 00000000000..854df8c8e18
--- /dev/null
+++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/worklet-test-utils.js"></script>
+ <script src="resources/csp-tests.js"></script>
+</head>
+<body>
+<script>
+ runContentSecurityPolicyTests("layout");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html
new file mode 100644
index 00000000000..a2f57c221b7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/worklet-test-utils.js"></script>
+ <script src="resources/import-tests.js"></script>
+</head>
+<body>
+<script>
+ runImportTests("layout");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html
new file mode 100644
index 00000000000..cb383a935a2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/worklet-test-utils.js"></script>
+ <script src="resources/referrer-tests.js"></script>
+</head>
+<body>
+<script>
+ runReferrerTests("layout");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html
new file mode 100644
index 00000000000..146dff9e53a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/worklet-test-utils.js"></script>
+ <script src="resources/service-worker-interception-tests.js"></script>
+ <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+</head>
+<body>
+<script>
+ runServiceWorkerInterceptionTests("layout");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js b/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js
index 4912dadb9d5..f7f28b41cd1 100644
--- a/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js
+++ b/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js
@@ -1,8 +1,10 @@
// Returns a reference to a worklet object corresponding to a given type.
function get_worklet(type) {
- if (type == 'paint')
- return CSS.paintWorklet;
if (type == 'animation')
return window.animationWorklet;
+ if (type == 'layout')
+ return CSS.layoutWorklet;
+ if (type == 'paint')
+ return CSS.paintWorklet;
return undefined;
}
diff --git a/tests/wpt/web-platform-tests/xhr/interfaces.html b/tests/wpt/web-platform-tests/xhr/interfaces.html
index 56ba5523e31..cc98075dd7a 100644
--- a/tests/wpt/web-platform-tests/xhr/interfaces.html
+++ b/tests/wpt/web-platform-tests/xhr/interfaces.html
@@ -14,113 +14,16 @@
callback EventHandlerNonNull = any (Event event);
typedef EventHandlerNonNull? EventHandler;
</script>
-<script type=text/plain>
-/*[Exposed=(Window,Worker)]*/
-interface XMLHttpRequestEventTarget : EventTarget {
- // event handlers
- attribute EventHandler onloadstart;
- attribute EventHandler onprogress;
- attribute EventHandler onabort;
- attribute EventHandler onerror;
- attribute EventHandler onload;
- attribute EventHandler ontimeout;
- attribute EventHandler onloadend;
-};
-
-/*[Exposed=(Window,Worker)]*/
-interface XMLHttpRequestUpload : XMLHttpRequestEventTarget {
-};
-
-enum XMLHttpRequestResponseType {
- "",
- "arraybuffer",
- "blob",
- "document",
- "json",
- "text"
-};
-
-[Constructor/*,
- Exposed=(Window,Worker)*/]
-interface XMLHttpRequest : XMLHttpRequestEventTarget {
- // event handler
- attribute EventHandler onreadystatechange;
-
- // states
- const unsigned short UNSENT = 0;
- const unsigned short OPENED = 1;
- const unsigned short HEADERS_RECEIVED = 2;
- const unsigned short LOADING = 3;
- const unsigned short DONE = 4;
- readonly attribute unsigned short readyState;
-
- // request
- void open(ByteString method, USVString url);
- void open(ByteString method, USVString url, boolean async, optional USVString? username = null, optional USVString? password = null);
- void setRequestHeader(ByteString name, ByteString value);
- attribute unsigned long timeout;
- attribute boolean withCredentials;
- readonly attribute XMLHttpRequestUpload upload;
- void send(optional (Document or BodyInit)? body = null);
- void abort();
-
- // response
- readonly attribute USVString responseURL;
- readonly attribute unsigned short status;
- readonly attribute ByteString statusText;
- ByteString? getResponseHeader(ByteString name);
- ByteString getAllResponseHeaders();
- void overrideMimeType(DOMString mime);
- attribute XMLHttpRequestResponseType responseType;
- readonly attribute any response;
- readonly attribute USVString responseText;
- [Exposed=Window] readonly attribute Document? responseXML;
-};
-
-typedef (File or USVString) FormDataEntryValue;
-
-[Constructor(optional HTMLFormElement form)/*,
- Exposed=(Window,Worker)*/]
-interface FormData {
- void append(USVString name, Blob value, optional USVString filename);
- void append(USVString name, USVString value);
- void delete(USVString name);
- FormDataEntryValue? get(USVString name);
- sequence<FormDataEntryValue> getAll(USVString name);
- boolean has(USVString name);
- void set(USVString name, Blob value, optional USVString filename);
- void set(USVString name, USVString value);
- /*iterable<USVString, FormDataEntryValue>;*/
-};
-
-[Constructor(DOMString type, optional ProgressEventInit eventInitDict)/*,
- Exposed=(Window,Worker)*/]
-interface ProgressEvent : Event {
- readonly attribute boolean lengthComputable;
- readonly attribute unsigned long long loaded;
- readonly attribute unsigned long long total;
-};
-
-dictionary ProgressEventInit : EventInit {
- boolean lengthComputable = false;
- unsigned long long loaded = 0;
- unsigned long long total = 0;
-};
-</script>
<script>
"use strict";
var form = document.createElement("form");
var idlArray = new IdlArray();
-function doTest(domIdl) {
+function doTest([domIdl, xhrIdl]) {
idlArray.add_untested_idls(domIdl);
- [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
- if (node.className == "untested") {
- idlArray.add_untested_idls(node.textContent);
- } else {
- idlArray.add_idls(node.textContent);
- }
- });
+ var untestedIdl = document.querySelector("script.untested").textContent;
+ idlArray.add_untested_idls(untestedIdl);
+ idlArray.add_idls(xhrIdl);
idlArray.add_objects({
XMLHttpRequest: ['new XMLHttpRequest()'],
XMLHttpRequestUpload: ['(new XMLHttpRequest()).upload'],
@@ -129,8 +32,13 @@ function doTest(domIdl) {
idlArray.test();
}
-promise_test(function() {
- return fetch("/interfaces/dom.idl").then(response => response.text())
- .then(doTest);
+function fetchText(url) {
+ return fetch(url).then(response => response.text());
+}
+
+promise_test(() => {
+ return Promise.all(["/interfaces/dom.idl",
+ "/interfaces/xhr.idl"].map(fetchText))
+ .then(doTest);
}, "Test driver");
</script>
diff --git a/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html b/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html
index ade343716b1..1866100bf06 100644
--- a/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html
+++ b/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html
@@ -11,8 +11,7 @@
run_all_fp_tests_allow_all(
'http://{{domains[www]}}:{{ports[http][0]}}',
'sync-xhr',
- 'InvalidAccessError: Failed to execute \'open\' on \'XMLHttpRequest\': ' +
- 'Synchronous requests are disabled by Feature Policy.',
+ 'NetworkError',
() => {
return new Promise((resolve, reject) => {
try {