pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/www/firefox



Module Name:    pkgsrc
Committed By:   ryoon
Date:           Fri Nov  3 22:07:27 UTC 2017

Modified Files:
        pkgsrc/www/firefox: Makefile distinfo
Added Files:
        pkgsrc/www/firefox/patches: patch-layout_style_ServoBindingList.h
            patch-layout_style_ServoBindingTypes.h
            patch-layout_style_ServoBindings.h
            patch-layout_style_ServoBindings.toml patch-servo_Cargo.lock
            patch-servo_components_devtools_lib.rs
            patch-servo_components_layout_animation.rs
            patch-servo_components_layout_construct.rs
            patch-servo_components_layout_display__list__builder.rs
            patch-servo_components_layout_flex.rs
            patch-servo_components_layout_inline.rs
            patch-servo_components_layout_sequential.rs
            patch-servo_components_layout_table__cell.rs
            patch-servo_components_layout_text.rs
            patch-servo_components_net_cookie__storage.rs
            patch-servo_components_profile_heartbeats.rs
            patch-servo_components_script__plugins_unrooted__must__root.rs
            patch-servo_components_script_dom_bindings_js.rs
            patch-servo_components_script_dom_cssstyledeclaration.rs
            patch-servo_components_script_dom_cssstylerule.rs
            patch-servo_components_script_dom_document.rs
            patch-servo_components_script_dom_medialist.rs
            patch-servo_components_script_dom_range.rs
            patch-servo_components_script_dom_servoparser_async__html.rs
            patch-servo_components_script_dom_url.rs
            patch-servo_components_script_dom_vrdisplay.rs
            patch-servo_components_script_dom_webglrenderingcontext.rs
            patch-servo_components_script_dom_xmlhttprequest.rs
            patch-servo_components_script_lib.rs
            patch-servo_components_selectors_matching.rs
            patch-servo_components_selectors_parser.rs
            patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs
            patch-servo_components_style_gecko_conversions.rs
            patch-servo_components_style_gecko_generated_bindings.rs
            patch-servo_components_style_gecko_wrapper.rs
            patch-servo_components_style_invalidation_element_invalidator.rs
            patch-servo_components_style_matching.rs
            patch-servo_components_style_properties_gecko.mako.rs
            patch-servo_components_style_properties_properties.mako.rs
            patch-servo_components_style_style__adjuster.rs
            patch-servo_components_style_style__resolver.rs
            patch-servo_components_style_stylesheets_rule__list.rs
            patch-servo_components_style_stylesheets_rule__parser.rs
            patch-servo_components_style_stylesheets_rules__iterator.rs
            patch-servo_components_style_values_specified_image.rs
            patch-servo_components_webdriver__server_lib.rs
            patch-servo_ports_geckolib_glue.rs patch-servo_rust-commit-hash
            patch-servo_tests_unit_style_stylist.rs

Log Message:
Fix build with lang-rust-1.21.0 from 57 via FreeBSD Ports. Bump PKGREVISION


To generate a diff of this commit:
cvs rdiff -u -r1.309 -r1.310 pkgsrc/www/firefox/Makefile
cvs rdiff -u -r1.299 -r1.300 pkgsrc/www/firefox/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingList.h \
    pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingTypes.h \
    pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.h \
    pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.toml \
    pkgsrc/www/firefox/patches/patch-servo_Cargo.lock \
    pkgsrc/www/firefox/patches/patch-servo_components_devtools_lib.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_animation.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_construct.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_display__list__builder.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_flex.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_inline.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_sequential.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_table__cell.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_layout_text.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_net_cookie__storage.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_profile_heartbeats.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script__plugins_unrooted__must__root.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_bindings_js.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstyledeclaration.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstylerule.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_document.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_medialist.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_range.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_servoparser_async__html.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_url.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_vrdisplay.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_webglrenderingcontext.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_dom_xmlhttprequest.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_script_lib.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_selectors_matching.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_selectors_parser.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_conversions.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_generated_bindings.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_wrapper.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_invalidation_element_invalidator.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_matching.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_properties_gecko.mako.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_properties_properties.mako.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_style__adjuster.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_style__resolver.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__list.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__parser.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rules__iterator.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_style_values_specified_image.rs \
    pkgsrc/www/firefox/patches/patch-servo_components_webdriver__server_lib.rs \
    pkgsrc/www/firefox/patches/patch-servo_ports_geckolib_glue.rs \
    pkgsrc/www/firefox/patches/patch-servo_rust-commit-hash \
    pkgsrc/www/firefox/patches/patch-servo_tests_unit_style_stylist.rs

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/www/firefox/Makefile
diff -u pkgsrc/www/firefox/Makefile:1.309 pkgsrc/www/firefox/Makefile:1.310
--- pkgsrc/www/firefox/Makefile:1.309   Sun Oct 29 09:47:57 2017
+++ pkgsrc/www/firefox/Makefile Fri Nov  3 22:07:27 2017
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.309 2017/10/29 09:47:57 ryoon Exp $
+# $NetBSD: Makefile,v 1.310 2017/11/03 22:07:27 ryoon Exp $
 
 FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
 MOZ_BRANCH=            56.0
@@ -6,7 +6,7 @@ MOZ_BRANCH_MINOR=       .2
 
 DISTNAME=      firefox-${FIREFOX_VER}.source
 PKGNAME=       firefox-${MOZ_BRANCH}${MOZ_BRANCH_MINOR:S/b/beta/:S/esr//}
-PKGREVISION=   1
+PKGREVISION=   2
 CATEGORIES=    www
 MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
 MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/}

Index: pkgsrc/www/firefox/distinfo
diff -u pkgsrc/www/firefox/distinfo:1.299 pkgsrc/www/firefox/distinfo:1.300
--- pkgsrc/www/firefox/distinfo:1.299   Fri Oct 27 13:21:28 2017
+++ pkgsrc/www/firefox/distinfo Fri Nov  3 22:07:27 2017
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.299 2017/10/27 13:21:28 ryoon Exp $
+$NetBSD: distinfo,v 1.300 2017/11/03 22:07:27 ryoon Exp $
 
 SHA1 (firefox-56.0.2.source.tar.xz) = 1b7310adea833a7c74498505f1207416690c9748
 RMD160 (firefox-56.0.2.source.tar.xz) = 7bd0f871aab8dea2a76b98d8b5260b5fa3082808
@@ -48,6 +48,10 @@ SHA1 (patch-js_src_build_moz.build) = 45
 SHA1 (patch-js_src_jit_arm_Architecture-arm.cpp) = f0b554c169643b8447b4f29168d61ea257b18782
 SHA1 (patch-js_xpconnect_src_XPCConvert.cpp) = 915777e9bb5366be41866cdb6ea0ad2b1c006dde
 SHA1 (patch-js_xpconnect_src_xpcprivate.h) = 97a221c76593be712f670aa409f2f1ad5dc20628
+SHA1 (patch-layout_style_ServoBindingList.h) = 5f30fd7a44e39a3b584f906bfc7f0b65d609a605
+SHA1 (patch-layout_style_ServoBindingTypes.h) = 3f10b0b9c49029cf494dd691825372ffb769ec58
+SHA1 (patch-layout_style_ServoBindings.h) = e3a308625b4f690133fea25591e95c29d40a9faa
+SHA1 (patch-layout_style_ServoBindings.toml) = c1675a75a52307f9e033839ae4fae28a0ced1aa9
 SHA1 (patch-media_libcubeb_gtest_moz.build) = ebb4be6e6bca4a0ed6858516ec9fdb7828bbe2e1
 SHA1 (patch-media_libcubeb_src_cubeb.c) = 1b1b8d57eb710cad13518ded79a0ddee2681881b
 SHA1 (patch-media_libcubeb_src_cubeb__alsa.c) = b19e380278ca875600e49b76021b20f1f9e81980
@@ -72,7 +76,52 @@ SHA1 (patch-mozglue_build_arm.h) = 5e272
 SHA1 (patch-netwerk_dns_moz.build) = d4ad35ee7152ca206156403954cbd247d1252ab0
 SHA1 (patch-netwerk_srtp_src_crypto_hash_hmac.c) = 8ba57212adca077fb5cfa50d752a97b0e3becc6d
 SHA1 (patch-netwerk_srtp_src_crypto_kernel_crypto__kernel.c) = 08f3a347745b5529749328ad3a070fb78a75c1e9
+SHA1 (patch-servo_Cargo.lock) = 6a9f65467263f2309706d821d888651b4f98943f
+SHA1 (patch-servo_components_devtools_lib.rs) = c20fb0907ef863b60ec8b4e7a70a745717e8da07
+SHA1 (patch-servo_components_layout_animation.rs) = eace4e2cc01c0f56ea3101d2add91f2ce4444f93
+SHA1 (patch-servo_components_layout_construct.rs) = 69b15cbc22fad1de93bbb1c262619bfd6b1fa8fa
+SHA1 (patch-servo_components_layout_display__list__builder.rs) = c48b367fe704ee5cc39afdd819fd8638261abcf8
+SHA1 (patch-servo_components_layout_flex.rs) = 2a692a5e80c7383e7266c23a9efe7ce8c637b6f2
+SHA1 (patch-servo_components_layout_inline.rs) = 9dc6a4a5e0090c1acec49531566ee1fad49f9c77
+SHA1 (patch-servo_components_layout_sequential.rs) = 3a3e685547ab65c6e87f59c4a5e21c95e4605811
+SHA1 (patch-servo_components_layout_table__cell.rs) = b1175887c47d2f9a4e7bff1e7caf34fedcedef2f
+SHA1 (patch-servo_components_layout_text.rs) = 72bd50cfd977450ae1e22e7cf82b0f979e33ff3b
+SHA1 (patch-servo_components_net_cookie__storage.rs) = b9581e6c15677b8d9456a9aec22bf86f752731f9
+SHA1 (patch-servo_components_profile_heartbeats.rs) = a119218ef6a4eb66487781bdd959a7ef0a564d73
+SHA1 (patch-servo_components_script__plugins_unrooted__must__root.rs) = 7a837c7ef70aef297a5257fa229acf2a88f0b3f9
+SHA1 (patch-servo_components_script_dom_bindings_js.rs) = 27afe3ed74c058de66cffccc388493db980b1811
+SHA1 (patch-servo_components_script_dom_cssstyledeclaration.rs) = abe9bb5d98ceff868e18fbcb981243ed8f0fc641
+SHA1 (patch-servo_components_script_dom_cssstylerule.rs) = 5ac6a76b4a6965a8b3e77ca1d8cd4bc2fd2f7582
+SHA1 (patch-servo_components_script_dom_document.rs) = ae12fa6e0e900ac1e35b412aae4c54a30a955c78
+SHA1 (patch-servo_components_script_dom_medialist.rs) = 1093cd2a661923952de825ce02ebb58764dcec34
+SHA1 (patch-servo_components_script_dom_range.rs) = 14458d0477623850259bf6cb8e832994d1255c1e
+SHA1 (patch-servo_components_script_dom_servoparser_async__html.rs) = 41f57e1e03be18d9ba2db693e6f5dd223324c7bf
+SHA1 (patch-servo_components_script_dom_url.rs) = 91f420421b9dcab3b9a9a6c08e18d36d6222779b
+SHA1 (patch-servo_components_script_dom_vrdisplay.rs) = cbff0dec0ef5a1a24aed76dfd213b548162ef017
+SHA1 (patch-servo_components_script_dom_webglrenderingcontext.rs) = 5cf56d3295c3d5f823e64da9a1248e9e25489e8a
+SHA1 (patch-servo_components_script_dom_xmlhttprequest.rs) = a4c26e854aa2ca7032d28380bd60157202895acd
+SHA1 (patch-servo_components_script_lib.rs) = 127e5c0ca8de489ca56ef4a578faccce89b6daa0
+SHA1 (patch-servo_components_selectors_matching.rs) = d5f1912ecc7591ef27e8b41965984e79a85b862f
+SHA1 (patch-servo_components_selectors_parser.rs) = 61b7cfcb3e4519886f72123aa1a5f0ebae0cf896
 SHA1 (patch-servo_components_style_build__gecko.rs) = fca2260a70b496fc010f165ff4d68788b7e28632
+SHA1 (patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs) = 5f413c476443420ac2e6bb43d256793739421980
+SHA1 (patch-servo_components_style_gecko_conversions.rs) = 8da244d315fe7b0477d601083622ce7d5f9453fc
+SHA1 (patch-servo_components_style_gecko_generated_bindings.rs) = aa244497e54ffee7904bfebbad24b8eca12ebeff
+SHA1 (patch-servo_components_style_gecko_wrapper.rs) = 37dc203204578b0d2e776ad4d6b66c3554ec9876
+SHA1 (patch-servo_components_style_invalidation_element_invalidator.rs) = a2abed736fa311201d6f0ef3ad9b2b82fd4c93b4
+SHA1 (patch-servo_components_style_matching.rs) = beec15440f1d8aa0c6a2ff5e45a4825d502097d4
+SHA1 (patch-servo_components_style_properties_gecko.mako.rs) = a653c701cf92e37f5e4fd9f30756a316c93994b1
+SHA1 (patch-servo_components_style_properties_properties.mako.rs) = e3c40e527b60c2112a9b2c5139b2eb0053841c20
+SHA1 (patch-servo_components_style_style__adjuster.rs) = 4fa07ba093cbe8472dd4ea8406d99ddd8ade0250
+SHA1 (patch-servo_components_style_style__resolver.rs) = 2ae238f2498922ed032df54f82d93cc9c8f4b3eb
+SHA1 (patch-servo_components_style_stylesheets_rule__list.rs) = 6f6edea8b79122baf77afd1ddfcf6b4afd19a505
+SHA1 (patch-servo_components_style_stylesheets_rule__parser.rs) = 97298c34781e126d43ef5db229f5665013a9a59d
+SHA1 (patch-servo_components_style_stylesheets_rules__iterator.rs) = ae366280676f6f3df85d158334a41771686262bf
+SHA1 (patch-servo_components_style_values_specified_image.rs) = 8c13e3402902425ff1a5dac7f06d78115cea4bf5
+SHA1 (patch-servo_components_webdriver__server_lib.rs) = af2dbc95cfc3d19d3ec5bf613507700a58f275d1
+SHA1 (patch-servo_ports_geckolib_glue.rs) = a6f63947d27c657aa9c9371dabef89000758e6dc
+SHA1 (patch-servo_rust-commit-hash) = 17078828535bb3ecc029e0c337438507b7d52bf4
+SHA1 (patch-servo_tests_unit_style_stylist.rs) = b6ce7a199519a898b7392f27d517e18050804056
 SHA1 (patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops.h) = 5ffb0782bbbff2fd17ad71e98b349b4ec3dc6c8c
 SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = 5b6d2e5c9f685d32894898d3ef3aec09a1a1e5ce
 SHA1 (patch-toolkit_crashreporter_google-breakpad_src_third_party_curl_curlbuild.h) = 0730c0c5d8e0865aa8a2f311b27559a3f6793a52

Added files:

Index: pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingList.h
diff -u /dev/null pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingList.h:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingList.h    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,17 @@
+$NetBSD: patch-layout_style_ServoBindingList.h,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- layout/style/ServoBindingList.h.orig       2017-09-14 20:16:05.000000000 +0000
++++ layout/style/ServoBindingList.h
+@@ -377,10 +377,10 @@ SERVO_BINDING_FUNC(Servo_DeclarationBloc
+                    nsCSSPropertyID property)
+ // Compose animation value for a given property.
+ // |base_values| is nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>.
+-// We use void* to avoid exposing nsRefPtrHashtable in FFI.
++// We use RawServoAnimationValueTableBorrowed to avoid exposing nsRefPtrHashtable in FFI.
+ SERVO_BINDING_FUNC(Servo_AnimationCompose, void,
+                    RawServoAnimationValueMapBorrowedMut animation_values,
+-                   void* base_values,
++                   RawServoAnimationValueTableBorrowed base_values,
+                    nsCSSPropertyID property,
+                    RawGeckoAnimationPropertySegmentBorrowed animation_segment,
+                    RawGeckoAnimationPropertySegmentBorrowed last_segment,
Index: pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingTypes.h
diff -u /dev/null pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingTypes.h:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-layout_style_ServoBindingTypes.h   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-layout_style_ServoBindingTypes.h,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- layout/style/ServoBindingTypes.h.orig      2017-09-14 20:16:05.000000000 +0000
++++ layout/style/ServoBindingTypes.h
+@@ -54,6 +54,8 @@ class nsXBLBinding;
+ using mozilla::dom::StyleChildrenIterator;
+ using mozilla::ServoElementSnapshot;
+ 
++typedef void* RawServoAnimationValueTableBorrowed;
++
+ typedef nsINode RawGeckoNode;
+ typedef mozilla::dom::Element RawGeckoElement;
+ typedef nsIDocument RawGeckoDocument;
Index: pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.h
diff -u /dev/null pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.h:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.h       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,16 @@
+$NetBSD: patch-layout_style_ServoBindings.h,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- layout/style/ServoBindings.h.orig  2017-09-14 20:16:05.000000000 +0000
++++ layout/style/ServoBindings.h
+@@ -267,9 +267,9 @@ double Gecko_GetPositionInSegment(
+ // Get servo's AnimationValue for |aProperty| from the cached base style
+ // |aBaseStyles|.
+ // |aBaseStyles| is nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>.
+-// We use void* to avoid exposing nsRefPtrHashtable in FFI.
++// We use RawServoAnimationValueTableBorrowed to avoid exposing nsRefPtrHashtable in FFI.
+ RawServoAnimationValueBorrowedOrNull Gecko_AnimationGetBaseStyle(
+-  void* aBaseStyles,
++  RawServoAnimationValueTableBorrowed aBaseStyles,
+   nsCSSPropertyID aProperty);
+ void Gecko_StyleTransition_SetUnsupportedProperty(
+   mozilla::StyleTransition* aTransition,
Index: pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.toml
diff -u /dev/null pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.toml:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-layout_style_ServoBindings.toml    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,29 @@
+$NetBSD: patch-layout_style_ServoBindings.toml,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- layout/style/ServoBindings.toml.orig       2017-09-14 20:16:05.000000000 +0000
++++ layout/style/ServoBindings.toml
+@@ -353,6 +353,7 @@ raw-lines = [
+     "pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues;",
+     "pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>;",
+     "pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData;",
++    "pub type RawServoAnimationValueTableBorrowed<'a> = &'a ();"
+ ]
+ whitelist-functions = ["Servo_.*", "Gecko_.*"]
+ structs-types = [
+@@ -385,7 +386,7 @@ structs-types = [
+     "RawGeckoPresContext",
+     "RawGeckoPresContextOwned",
+     "RawGeckoStyleAnimationList",
+-    "RawGeckoStyleChildrenIteratorBorrowedMut",
++    "RawGeckoStyleChildrenIterator",
+     "RawGeckoServoStyleRuleList",
+     "RawGeckoURLExtraData",
+     "RawGeckoXBLBinding",
+@@ -520,6 +521,7 @@ servo-borrow-types = [
+     "RawGeckoFontFaceRuleList",
+     "RawGeckoServoStyleRuleList",
+     "RawGeckoServoAnimationValueList",
++    "RawGeckoStyleChildrenIterator",
+ ]
+ fixups = [
+     # hack for gecko-owned string
Index: pkgsrc/www/firefox/patches/patch-servo_Cargo.lock
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_Cargo.lock:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_Cargo.lock   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,31 @@
+$NetBSD: patch-servo_Cargo.lock,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/Cargo.lock.orig      2017-09-14 20:15:55.000000000 +0000
++++ servo/Cargo.lock
+@@ -3577,7 +3577,7 @@ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index";
+ dependencies = [
+  "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "xcb 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xcb 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+ 
+ [[package]]
+@@ -3592,7 +3592,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "xcb"
+-version = "0.7.6"
++version = "0.7.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index";
+ dependencies = [
+  "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -3918,7 +3918,7 @@ dependencies = [
+ "checksum x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db27c597c187da52194a4b8232e7d869503911aab9ff726fefb76d7a830f78ed"
+ "checksum x11-clipboard 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "731230b8edcbb9d99247105e4c9ec0a538594d50ad68d2afa8662195f9db2973"
+ "checksum x11-dl 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "326c500cdc166fd7c70dd8c8a829cd5c0ce7be5a5d98c25817de2b9bdc67faf8"
+-"checksum xcb 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "63e3a849b73e4e1905e4f4d48f1750429bc86ea9f473632ab382a6f69ecb6b33"
++"checksum xcb 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "7cede38417fcdf2f0a9d8abf1cea1c1b066320a8a316e9583a0d717c334fafb2"
+ "checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61"
+ "checksum xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "12ea8eda4b1eb72f02d148402e23832d56a33f55d8c1b2d5bcdde91d79d47cb1"
+ "checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
Index: pkgsrc/www/firefox/patches/patch-servo_components_devtools_lib.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_devtools_lib.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_devtools_lib.rs   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_devtools_lib.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/devtools/lib.rs.orig      2017-09-14 20:15:55.000000000 +0000
++++ servo/components/devtools/lib.rs
+@@ -306,7 +306,7 @@ fn run_server(sender: Sender<DevtoolsCon
+                 columnNumber: console_message.columnNumber,
+             },
+         };
+-        for mut stream in &mut *console_actor.streams.borrow_mut() {
++        for stream in &mut *console_actor.streams.borrow_mut() {
+             stream.write_json_packet(&msg);
+         }
+     }
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_animation.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_animation.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_animation.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_layout_animation.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/animation.rs.orig  2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/animation.rs
+@@ -39,7 +39,7 @@ pub fn update_animation_state(constellat
+             // run.
+             if let Some(ref mut animations) = running_animations.get_mut(node) {
+                 // TODO: This being linear is probably not optimal.
+-                for mut anim in animations.iter_mut() {
++                for anim in animations.iter_mut() {
+                     if let Animation::Keyframes(_, ref anim_name, ref mut anim_state) = *anim {
+                         if *name == *anim_name {
+                             debug!("update_animation_state: Found other animation {}", name);
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_construct.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_construct.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_construct.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,31 @@
+$NetBSD: patch-servo_components_layout_construct.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/construct.rs.orig  2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/construct.rs
+@@ -1921,7 +1921,7 @@ impl Legalizer {
+     /// true for anonymous block children of flex flows.
+     fn try_to_add_child(&mut self, context: &SharedStyleContext, parent: &mut FlowRef, child: &mut FlowRef)
+                         -> bool {
+-        let mut parent = self.stack.last_mut().unwrap_or(parent);
++        let parent = self.stack.last_mut().unwrap_or(parent);
+         let (parent_class, child_class) = (parent.class(), child.class());
+         match (parent_class, child_class) {
+             (FlowClass::TableWrapper, FlowClass::Table) |
+@@ -1962,7 +1962,7 @@ impl Legalizer {
+                     } else {
+                         IS_BLOCK_FLEX_ITEM
+                     };
+-                    let mut block = FlowRef::deref_mut(&mut block_wrapper).as_mut_block();
++                    let block = FlowRef::deref_mut(&mut block_wrapper).as_mut_block();
+                     block.base.flags.insert(MARGINS_CANNOT_COLLAPSE);
+                     block.fragment.flags.insert(flag);
+                 }
+@@ -1979,7 +1979,7 @@ impl Legalizer {
+                     } else {
+                         IS_BLOCK_FLEX_ITEM
+                     };
+-                    let mut block = FlowRef::deref_mut(child).as_mut_block();
++                    let block = FlowRef::deref_mut(child).as_mut_block();
+                     block.base.flags.insert(MARGINS_CANNOT_COLLAPSE);
+                     block.fragment.flags.insert(flag);
+                 }
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_display__list__builder.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_display__list__builder.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_display__list__builder.rs  Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_layout_display__list__builder.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/display_list_builder.rs.orig       2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/display_list_builder.rs
+@@ -2718,7 +2718,7 @@ impl InlineFlowDisplayListBuilding for I
+         self.base.scroll_root_id = Some(state.current_scroll_root_id);
+         self.base.clip = state.clip_stack.last().cloned().unwrap_or_else(max_rect);
+ 
+-        for mut fragment in self.fragments.fragments.iter_mut() {
++        for fragment in self.fragments.fragments.iter_mut() {
+             let previous_containing_block_scroll_root_id = state.containing_block_scroll_root_id;
+             if establishes_containing_block_for_absolute(fragment.style.get_box().position) {
+                 state.containing_block_scroll_root_id = state.current_scroll_root_id;
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_flex.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_flex.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_flex.rs    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,31 @@
+$NetBSD: patch-servo_components_layout_flex.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/flex.rs.orig       2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/flex.rs
+@@ -415,7 +415,7 @@ impl FlexFlow {
+ 
+         let items = &mut self.items[start..];
+         let mut children = self.block_flow.base.children.random_access_mut();
+-        for mut item in items {
++        for item in items {
+             let kid = children.get(item.index);
+             item.init_sizes(kid, container_size, self.main_mode);
+             let outer_main_size = item.outer_main_size(kid, self.main_mode);
+@@ -607,7 +607,7 @@ impl FlexFlow {
+ 
+             let mut children = self.block_flow.base.children.random_access_mut();
+             for item in items.iter_mut() {
+-                let mut block = children.get(item.index).as_mut_block();
++                let block = children.get(item.index).as_mut_block();
+ 
+                 block.base.block_container_writing_mode = container_mode;
+                 block.base.block_container_inline_size = inline_size;
+@@ -659,7 +659,7 @@ impl FlexFlow {
+ 
+         let mut children = self.block_flow.base.children.random_access_mut();
+         for item in &mut self.items {
+-            let mut base = flow::mut_base(children.get(item.index));
++            let base = flow::mut_base(children.get(item.index));
+             if !self.main_reverse {
+                 base.position.start.b = cur_b;
+                 cur_b = cur_b + base.position.size.block;
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_inline.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_inline.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_inline.rs  Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_layout_inline.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/inline.rs.orig     2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/inline.rs
+@@ -435,7 +435,7 @@ impl LineBreaker {
+             return
+         }
+         let last_fragment_index = self.pending_line.range.end() - FragmentIndex(1);
+-        let mut fragment = &mut self.new_fragments[last_fragment_index.get() as usize];
++        let fragment = &mut self.new_fragments[last_fragment_index.get() as usize];
+ 
+         let old_fragment_inline_size = fragment.border_box.size.inline;
+ 
+@@ -1047,7 +1047,7 @@ impl InlineFlow {
+         let space_per_expansion_opportunity = slack_inline_size / expansion_opportunities as i32;
+         for fragment_index in line.range.each_index() {
+             let fragment = fragments.get_mut(fragment_index.to_usize());
+-            let mut scanned_text_fragment_info = match fragment.specific {
++            let scanned_text_fragment_info = match fragment.specific {
+                 SpecificFragmentInfo::ScannedText(ref mut info) if !info.range.is_empty() => info,
+                 _ => continue
+             };
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_sequential.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_sequential.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_sequential.rs      Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_layout_sequential.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/sequential.rs.orig 2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/sequential.rs
+@@ -133,7 +133,7 @@ pub fn store_overflow(layout_context: &L
+         return;
+     }
+ 
+-    for mut kid in flow::mut_base(flow).child_iter_mut() {
++    for kid in flow::mut_base(flow).child_iter_mut() {
+         store_overflow(layout_context, kid);
+     }
+ 
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_table__cell.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_table__cell.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_table__cell.rs     Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_layout_table__cell.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/table_cell.rs.orig 2017-09-14 20:15:55.000000000 +0000
++++ servo/components/layout/table_cell.rs
+@@ -136,7 +136,7 @@ impl TableCellFlow {
+         }
+ 
+         for kid in flow::mut_base(self).children.iter_mut() {
+-            let mut kid_base = flow::mut_base(kid);
++            let kid_base = flow::mut_base(kid);
+             if !kid_base.flags.contains(IS_ABSOLUTELY_POSITIONED) {
+                 kid_base.position.start.b += offset
+             }
Index: pkgsrc/www/firefox/patches/patch-servo_components_layout_text.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_layout_text.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_layout_text.rs    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_layout_text.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/layout/text.rs.orig       2017-09-14 20:15:56.000000000 +0000
++++ servo/components/layout/text.rs
+@@ -460,7 +460,7 @@ fn split_first_fragment_at_newline_if_ne
+     }
+ 
+     let new_fragment = {
+-        let mut first_fragment = fragments.front_mut().unwrap();
++        let first_fragment = fragments.front_mut().unwrap();
+         let string_before;
+         let selection_before;
+         {
Index: pkgsrc/www/firefox/patches/patch-servo_components_net_cookie__storage.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_net_cookie__storage.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_net_cookie__storage.rs    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_net_cookie__storage.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/net/cookie_storage.rs.orig        2017-07-31 16:20:53.000000000 +0000
++++ servo/components/net/cookie_storage.rs
+@@ -103,7 +103,7 @@ impl CookieStorage {
+ 
+         // Step 12
+         let domain = reg_host(&cookie.cookie.domain().as_ref().unwrap_or(&""));
+-        let mut cookies = self.cookies_map.entry(domain).or_insert(vec![]);
++        let cookies = self.cookies_map.entry(domain).or_insert(vec![]);
+ 
+         if cookies.len() == self.max_per_host {
+             let old_len = cookies.len();
Index: pkgsrc/www/firefox/patches/patch-servo_components_profile_heartbeats.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_profile_heartbeats.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_profile_heartbeats.rs     Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_profile_heartbeats.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/profile/heartbeats.rs.orig        2017-06-15 20:51:55.000000000 +0000
++++ servo/components/profile/heartbeats.rs
+@@ -33,7 +33,7 @@ pub fn cleanup() {
+         )
+     );
+     if let Some(mut hbs) = hbs_opt_box {
+-        for (_, mut v) in hbs.iter_mut() {
++        for (_, v) in hbs.iter_mut() {
+             // log any remaining heartbeat records before dropping
+             log_heartbeat_records(v);
+         }
+@@ -65,7 +65,7 @@ pub fn maybe_heartbeat(category: &Profil
+                 if !(*hbs_ptr).contains_key(category) {
+                     maybe_create_heartbeat(&mut (*hbs_ptr), category.clone());
+                 }
+-                if let Some(mut h) = (*hbs_ptr).get_mut(category) {
++                if let Some(h) = (*hbs_ptr).get_mut(category) {
+                     (*h).heartbeat(0, 1, start_time, end_time, start_energy, end_energy);
+                 }
+             }
Index: pkgsrc/www/firefox/patches/patch-servo_components_script__plugins_unrooted__must__root.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script__plugins_unrooted__must__root.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script__plugins_unrooted__must__root.rs   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,41 @@
+$NetBSD: patch-servo_components_script__plugins_unrooted__must__root.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script_plugins/unrooted_must_root.rs.orig 2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script_plugins/unrooted_must_root.rs
+@@ -182,7 +182,7 @@ impl<'a, 'b, 'tcx> visit::Visitor<'tcx> 
+         }
+ 
+         match expr.node {
+-            /// Trait casts from #[must_root] types are not allowed
++            // Trait casts from #[must_root] types are not allowed
+             hir::ExprCast(ref subexpr, _) => require_rooted(cx, self.in_new_function, &*subexpr),
+             // This catches assignments... the main point of this would be to catch mutable
+             // references to `JS<T>`.
+@@ -206,13 +206,21 @@ impl<'a, 'b, 'tcx> visit::Visitor<'tcx> 
+     fn visit_pat(&mut self, pat: &'tcx hir::Pat) {
+         let cx = self.cx;
+ 
+-        if let hir::PatKind::Binding(hir::BindingMode::BindByValue(_), _, _, _) = pat.node {
+-            let ty = cx.tables.pat_ty(pat);
+-            if is_unrooted_ty(cx, ty, self.in_new_function) {
+-                cx.span_lint(UNROOTED_MUST_ROOT,
+-                            pat.span,
+-                            &format!("Expression of type {:?} must be rooted", ty))
++        // We want to detect pattern bindings that move a value onto the stack.
++        // When "default binding modes" https://github.com/rust-lang/rust/issues/42640
++        // are implemented, the `Unannotated` case could cause false-positives.
++        // These should be fixable by adding an explicit `ref`.
++        match pat.node {
++            hir::PatKind::Binding(hir::BindingAnnotation::Unannotated, _, _, _) |
++            hir::PatKind::Binding(hir::BindingAnnotation::Mutable, _, _, _) => {
++                let ty = cx.tables.pat_ty(pat);
++                if is_unrooted_ty(cx, ty, self.in_new_function) {
++                    cx.span_lint(UNROOTED_MUST_ROOT,
++                                pat.span,
++                                &format!("Expression of type {:?} must be rooted", ty))
++                }
+             }
++            _ => {}
+         }
+ 
+         visit::walk_pat(self, pat);
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_bindings_js.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_bindings_js.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_bindings_js.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_script_dom_bindings_js.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/bindings/js.rs.orig    2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/bindings/js.rs
+@@ -469,7 +469,7 @@ impl RootCollection {
+     /// Start tracking a stack-based root
+     unsafe fn root(&self, untracked_reflector: *const Reflector) {
+         debug_assert!(thread_state::get().is_script());
+-        let mut roots = &mut *self.roots.get();
++        let roots = &mut *self.roots.get();
+         roots.push(untracked_reflector);
+         assert!(!(*untracked_reflector).get_jsobject().is_null())
+     }
+@@ -479,7 +479,7 @@ impl RootCollection {
+         assert!(!tracked_reflector.is_null());
+         assert!(!(*tracked_reflector).get_jsobject().is_null());
+         debug_assert!(thread_state::get().is_script());
+-        let mut roots = &mut *self.roots.get();
++        let roots = &mut *self.roots.get();
+         match roots.iter().rposition(|r| *r == tracked_reflector) {
+             Some(idx) => {
+                 roots.remove(idx);
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstyledeclaration.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstyledeclaration.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstyledeclaration.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,40 @@
+$NetBSD: patch-servo_components_script_dom_cssstyledeclaration.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/cssstyledeclaration.rs.orig    2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/cssstyledeclaration.rs
+@@ -238,7 +238,7 @@ impl CSSStyleDeclaration {
+             return Err(Error::NoModificationAllowed);
+         }
+ 
+-        self.owner.mutate_associated_block(|ref mut pdb, mut changed| {
++        self.owner.mutate_associated_block(|pdb, changed| {
+             if value.is_empty() {
+                 // Step 3
+                 *changed = pdb.remove_property(&id);
+@@ -360,7 +360,7 @@ impl CSSStyleDeclarationMethods for CSSS
+             _ => return Ok(()),
+         };
+ 
+-        self.owner.mutate_associated_block(|ref mut pdb, mut changed| {
++        self.owner.mutate_associated_block(|pdb, changed| {
+             // Step 5 & 6
+             *changed = pdb.set_importance(&id, importance);
+         });
+@@ -388,7 +388,7 @@ impl CSSStyleDeclarationMethods for CSSS
+         };
+ 
+         let mut string = String::new();
+-        self.owner.mutate_associated_block(|mut pdb, mut changed| {
++        self.owner.mutate_associated_block(|pdb, changed| {
+             pdb.property_value_to_css(&id, &mut string).unwrap();
+             *changed = pdb.remove_property(&id);
+         });
+@@ -438,7 +438,7 @@ impl CSSStyleDeclarationMethods for CSSS
+         }
+ 
+         let quirks_mode = window.Document().quirks_mode();
+-        self.owner.mutate_associated_block(|mut pdb, mut _changed| {
++        self.owner.mutate_associated_block(|pdb, _changed| {
+             // Step 3
+             *pdb = parse_style_attribute(&value,
+                                          &self.owner.base_url(),
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstylerule.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstylerule.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_cssstylerule.rs        Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_script_dom_cssstylerule.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/cssstylerule.rs.orig   2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/cssstylerule.rs
+@@ -99,7 +99,7 @@ impl CSSStyleRuleMethods for CSSStyleRul
+         if let Ok(mut s) = SelectorList::parse(&parser, &mut css_parser) {
+             // This mirrors what we do in CSSStyleOwner::mutate_associated_block.
+             let mut guard = self.cssrule.shared_lock().write();
+-            let mut stylerule = self.stylerule.write_with(&mut guard);
++            let stylerule = self.stylerule.write_with(&mut guard);
+             mem::swap(&mut stylerule.selectors, &mut s);
+             // It seems like we will want to avoid having to invalidate all
+             // stylesheets eventually!
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_document.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_document.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_document.rs    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,58 @@
+$NetBSD: patch-servo_components_script_dom_document.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/document.rs.orig       2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/document.rs
+@@ -633,7 +633,7 @@ impl Document {
+         // reset_form_owner_for_listeners -> reset_form_owner -> GetElementById
+         {
+             let mut id_map = self.id_map.borrow_mut();
+-            let mut elements = id_map.entry(id.clone()).or_insert(Vec::new());
++            let elements = id_map.entry(id.clone()).or_insert(Vec::new());
+             elements.insert_pre_order(element, root.r().upcast::<Node>());
+         }
+         self.reset_form_owner_for_listeners(&id);
+@@ -642,7 +642,7 @@ impl Document {
+     pub fn register_form_id_listener<T: ?Sized + FormControl>(&self, id: DOMString, listener: &T) {
+         let mut map = self.form_id_listener_map.borrow_mut();
+         let listener = listener.to_element();
+-        let mut set = map.entry(Atom::from(id)).or_insert(HashSet::new());
++        let set = map.entry(Atom::from(id)).or_insert(HashSet::new());
+         set.insert(JS::from_ref(listener));
+     }
+ 
+@@ -1572,7 +1572,7 @@ impl Document {
+     /// https://html.spec.whatwg.org/multipage/#dom-window-cancelanimationframe
+     pub fn cancel_animation_frame(&self, ident: u32) {
+         let mut list = self.animation_frame_list.borrow_mut();
+-        if let Some(mut pair) = list.iter_mut().find(|pair| pair.0 == ident) {
++        if let Some(pair) = list.iter_mut().find(|pair| pair.0 == ident) {
+             pair.1 = None;
+         }
+     }
+@@ -2399,7 +2399,7 @@ impl Document {
+         if entry.snapshot.is_none() {
+             entry.snapshot = Some(Snapshot::new(el.html_element_in_html_document()));
+         }
+-        let mut snapshot = entry.snapshot.as_mut().unwrap();
++        let snapshot = entry.snapshot.as_mut().unwrap();
+         if snapshot.state.is_none() {
+             snapshot.state = Some(el.state());
+         }
+@@ -2426,7 +2426,7 @@ impl Document {
+             entry.hint.insert(RESTYLE_SELF);
+         }
+ 
+-        let mut snapshot = entry.snapshot.as_mut().unwrap();
++        let snapshot = entry.snapshot.as_mut().unwrap();
+         if attr.local_name() == &local_name!("id") {
+             snapshot.id_changed = true;
+         } else if attr.local_name() == &local_name!("class") {
+@@ -4028,7 +4028,7 @@ impl PendingInOrderScriptVec {
+ 
+     fn loaded(&self, element: &HTMLScriptElement, result: ScriptResult) {
+         let mut scripts = self.scripts.borrow_mut();
+-        let mut entry = scripts.iter_mut().find(|entry| &*entry.element == element).unwrap();
++        let entry = scripts.iter_mut().find(|entry| &*entry.element == element).unwrap();
+         entry.loaded(result);
+     }
+ 
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_medialist.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_medialist.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_medialist.rs   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_script_dom_medialist.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/medialist.rs.orig      2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/medialist.rs
+@@ -63,7 +63,7 @@ impl MediaListMethods for MediaList {
+     // https://drafts.csswg.org/cssom/#dom-medialist-mediatext
+     fn SetMediaText(&self, value: DOMString) {
+         let mut guard = self.shared_lock().write();
+-        let mut media_queries = self.media_queries.write_with(&mut guard);
++        let media_queries = self.media_queries.write_with(&mut guard);
+         // Step 2
+         if value.is_empty() {
+             // Step 1
+@@ -154,7 +154,7 @@ impl MediaListMethods for MediaList {
+         // Step 3
+         let m_serialized = m.unwrap().to_css_string();
+         let mut guard = self.shared_lock().write();
+-        let mut media_list = self.media_queries.write_with(&mut guard);
++        let media_list = self.media_queries.write_with(&mut guard);
+         let new_vec = media_list.media_queries.drain(..)
+                                 .filter(|q| m_serialized != q.to_css_string())
+                                 .collect();
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_range.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_range.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_range.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_script_dom_range.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/range.rs.orig  2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/range.rs
+@@ -1049,7 +1049,7 @@ impl WeakRangeVec {
+         let offset = context.index();
+         let parent = context.parent;
+         unsafe {
+-            let mut ranges = &mut *self.cell.get();
++            let ranges = &mut *self.cell.get();
+ 
+             ranges.update(|entry| {
+                 let range = entry.root().unwrap();
+@@ -1076,7 +1076,7 @@ impl WeakRangeVec {
+         }
+ 
+         unsafe {
+-            let mut ranges = &mut *self.cell.get();
++            let ranges = &mut *self.cell.get();
+ 
+             ranges.update(|entry| {
+                 let range = entry.root().unwrap();
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_servoparser_async__html.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_servoparser_async__html.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_servoparser_async__html.rs     Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_script_dom_servoparser_async__html.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/servoparser/async_html.rs.orig 2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/servoparser/async_html.rs
+@@ -568,7 +568,7 @@ impl TreeSink for Sink {
+         }
+         let node = self.new_parse_node();
+         {
+-            let mut data = self.get_parse_node_data_mut(&target.id);
++            let data = self.get_parse_node_data_mut(&target.id);
+             data.contents = Some(node.clone());
+         }
+         self.send_op(ParseOperation::GetTemplateContents { target: target.id, contents: node.id });
+@@ -596,7 +596,7 @@ impl TreeSink for Sink {
+         let mut node = self.new_parse_node();
+         node.qual_name = Some(name.clone());
+         {
+-            let mut node_data = self.get_parse_node_data_mut(&node.id);
++            let node_data = self.get_parse_node_data_mut(&node.id);
+             node_data.is_integration_point = html_attrs.iter()
+             .any(|attr| {
+                 let attr_value = &String::from(attr.value.clone());
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_url.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_url.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_url.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,15 @@
+$NetBSD: patch-servo_components_script_dom_url.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/url.rs.orig    2017-07-31 16:20:53.000000000 +0000
++++ servo/components/script/dom/url.rs
+@@ -96,8 +96,8 @@ impl URL {
+ 
+     // https://w3c.github.io/FileAPI/#dfn-createObjectURL
+     pub fn CreateObjectURL(global: &GlobalScope, blob: &Blob) -> DOMString {
+-        /// XXX: Second field is an unicode-serialized Origin, it is a temporary workaround
+-        ///      and should not be trusted. See issue https://github.com/servo/servo/issues/11722
++        // XXX: Second field is an unicode-serialized Origin, it is a temporary workaround
++        //      and should not be trusted. See issue https://github.com/servo/servo/issues/11722
+         let origin = get_blob_origin(&global.get_url());
+ 
+         let id = blob.get_blob_url_id();
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_vrdisplay.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_vrdisplay.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_vrdisplay.rs   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_script_dom_vrdisplay.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/vrdisplay.rs.orig      2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/vrdisplay.rs
+@@ -268,7 +268,7 @@ impl VRDisplayMethods for VRDisplay {
+     fn CancelAnimationFrame(&self, handle: u32) {
+         if self.presenting.get() {
+             let mut list = self.raf_callback_list.borrow_mut();
+-            if let Some(mut pair) = list.iter_mut().find(|pair| pair.0 == handle) {
++            if let Some(pair) = list.iter_mut().find(|pair| pair.0 == handle) {
+                 pair.1 = None;
+             }
+         } else {
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_webglrenderingcontext.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_webglrenderingcontext.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_webglrenderingcontext.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_script_dom_webglrenderingcontext.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/webglrenderingcontext.rs.orig  2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/webglrenderingcontext.rs
+@@ -2434,7 +2434,7 @@ impl WebGLRenderingContextMethods for We
+         }
+ 
+         typedarray!(in(cx) let mut pixels_data: ArrayBufferView = pixels);
+-        let (array_type, mut data) = match { pixels_data.as_mut() } {
++        let (array_type, data) = match { pixels_data.as_mut() } {
+             Ok(data) => (data.get_array_type(), data.as_mut_slice()),
+             Err(_) => return Err(Error::Type("Not an ArrayBufferView".to_owned())),
+         };
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_dom_xmlhttprequest.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_dom_xmlhttprequest.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_dom_xmlhttprequest.rs      Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_script_dom_xmlhttprequest.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/dom/xmlhttprequest.rs.orig 2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/dom/xmlhttprequest.rs
+@@ -627,7 +627,7 @@ impl XMLHttpRequestMethods for XMLHttpRe
+ 
+                 if !content_type_set {
+                     let ct = request.headers.get_mut::<ContentType>();
+-                    if let Some(mut ct) = ct {
++                    if let Some(ct) = ct {
+                         if let Some(encoding) = encoding {
+                             for param in &mut (ct.0).2 {
+                                 if param.0 == MimeAttr::Charset {
Index: pkgsrc/www/firefox/patches/patch-servo_components_script_lib.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_script_lib.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_script_lib.rs     Fri Nov  3 22:07:27 2017
@@ -0,0 +1,12 @@
+$NetBSD: patch-servo_components_script_lib.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/script/lib.rs.orig        2017-09-14 20:15:56.000000000 +0000
++++ servo/components/script/lib.rs
+@@ -9,7 +9,6 @@
+ #![feature(mpsc_select)]
+ #![feature(nonzero)]
+ #![feature(on_unimplemented)]
+-#![feature(option_entry)]
+ #![feature(plugin)]
+ #![feature(proc_macro)]
+ #![feature(stmt_expr_attributes)]
Index: pkgsrc/www/firefox/patches/patch-servo_components_selectors_matching.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_selectors_matching.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_selectors_matching.rs     Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_selectors_matching.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/selectors/matching.rs.orig        2017-09-14 20:15:56.000000000 +0000
++++ servo/components/selectors/matching.rs
+@@ -458,7 +458,7 @@ where
+ /// Matches a complex selector.
+ pub fn matches_complex_selector<E, F>(mut iter: SelectorIter<E::Impl>,
+                                       element: &E,
+-                                      mut context: &mut LocalMatchingContext<E::Impl>,
++                                      context: &mut LocalMatchingContext<E::Impl>,
+                                       flags_setter: &mut F)
+                                       -> bool
+     where E: Element,
Index: pkgsrc/www/firefox/patches/patch-servo_components_selectors_parser.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_selectors_parser.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_selectors_parser.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_selectors_parser.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/selectors/parser.rs.orig  2017-09-14 20:15:56.000000000 +0000
++++ servo/components/selectors/parser.rs
+@@ -1464,7 +1464,7 @@ fn parse_negation<'i, 't, P, E, Impl>(pa
+ fn parse_compound_selector<'i, 't, P, E, Impl>(
+     parser: &P,
+     input: &mut CssParser<'i, 't>,
+-    mut builder: &mut SelectorBuilder<Impl>)
++    builder: &mut SelectorBuilder<Impl>)
+     -> Result<bool, ParseError<'i, SelectorParseError<'i, E>>>
+     where P: Parser<'i, Impl=Impl, Error=E>, Impl: SelectorImpl
+ {
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_style_gecko__bindings_sugar_ns__t__array.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/gecko_bindings/sugar/ns_t_array.rs.orig     2017-06-15 20:51:56.000000000 +0000
++++ servo/components/style/gecko_bindings/sugar/ns_t_array.rs
+@@ -90,7 +90,7 @@ impl<T> nsTArray<T> {
+         // this can leak
+         debug_assert!(len >= self.len() as u32);
+         self.ensure_capacity(len as usize);
+-        let mut header = self.header_mut();
++        let header = self.header_mut();
+         header.mLength = len;
+     }
+ 
+@@ -99,7 +99,7 @@ impl<T> nsTArray<T> {
+     /// This will not leak since it only works on POD types (and thus doesn't assert)
+     pub unsafe fn set_len_pod(&mut self, len: u32) where T: Copy {
+         self.ensure_capacity(len as usize);
+-        let mut header = unsafe { self.header_mut() };
++        let header = unsafe { self.header_mut() };
+         header.mLength = len;
+     }
+ }
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_conversions.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_conversions.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_conversions.rs        Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_gecko_conversions.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/gecko/conversions.rs.orig   2017-09-14 20:15:56.000000000 +0000
++++ servo/components/style/gecko/conversions.rs
+@@ -348,7 +348,7 @@ impl nsStyleImage {
+             // NB: stops are guaranteed to be none in the gecko side by
+             // default.
+ 
+-            let mut gecko_stop = unsafe {
++            let gecko_stop = unsafe {
+                 &mut (*gecko_gradient).mStops[index]
+             };
+             let mut coord = nsStyleCoord::null();
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_generated_bindings.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_generated_bindings.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_generated_bindings.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,51 @@
+$NetBSD: patch-servo_components_style_gecko_generated_bindings.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/gecko/generated/bindings.rs.orig    2017-09-14 20:15:56.000000000 +0000
++++ servo/components/style/gecko/generated/bindings.rs
+@@ -8,6 +8,7 @@ type nsAString_internal = nsAString;
+ pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues;
+ pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>;
+ pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData;
++pub type RawServoAnimationValueTableBorrowed<'a> = &'a ();
+ use gecko_bindings::structs::mozilla::css::GridTemplateAreasValue;
+ use gecko_bindings::structs::mozilla::css::ErrorReporter;
+ use gecko_bindings::structs::mozilla::css::ImageValue;
+@@ -37,7 +38,7 @@ use gecko_bindings::structs::RawServoSty
+ use gecko_bindings::structs::RawGeckoPresContext;
+ use gecko_bindings::structs::RawGeckoPresContextOwned;
+ use gecko_bindings::structs::RawGeckoStyleAnimationList;
+-use gecko_bindings::structs::RawGeckoStyleChildrenIteratorBorrowedMut;
++use gecko_bindings::structs::RawGeckoStyleChildrenIterator;
+ use gecko_bindings::structs::RawGeckoServoStyleRuleList;
+ use gecko_bindings::structs::RawGeckoURLExtraData;
+ use gecko_bindings::structs::RawGeckoXBLBinding;
+@@ -316,6 +317,10 @@ pub type RawGeckoServoAnimationValueList
+ pub type RawGeckoServoAnimationValueListBorrowedOrNull<'a> = Option<&'a RawGeckoServoAnimationValueList>;
+ pub type RawGeckoServoAnimationValueListBorrowedMut<'a> = &'a mut RawGeckoServoAnimationValueList;
+ pub type RawGeckoServoAnimationValueListBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoServoAnimationValueList>;
++pub type RawGeckoStyleChildrenIteratorBorrowed<'a> = &'a RawGeckoStyleChildrenIterator;
++pub type RawGeckoStyleChildrenIteratorBorrowedOrNull<'a> = Option<&'a RawGeckoStyleChildrenIterator>;
++pub type RawGeckoStyleChildrenIteratorBorrowedMut<'a> = &'a mut RawGeckoStyleChildrenIterator;
++pub type RawGeckoStyleChildrenIteratorBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoStyleChildrenIterator>;
+ pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoCssRules>;
+ pub type ServoCssRulesBorrowed<'a> = &'a ServoCssRules;
+ pub type ServoCssRulesBorrowedOrNull<'a> = Option<&'a ServoCssRules>;
+@@ -836,7 +841,7 @@ extern "C" {
+ }
+ extern "C" {
+     pub fn Gecko_AnimationGetBaseStyle(aBaseStyles:
+-                                           *mut ::std::os::raw::c_void,
++                                           RawServoAnimationValueTableBorrowed,
+                                        aProperty: nsCSSPropertyID)
+      -> RawServoAnimationValueBorrowedOrNull;
+ }
+@@ -2588,7 +2593,8 @@ extern "C" {
+ extern "C" {
+     pub fn Servo_AnimationCompose(animation_values:
+                                       RawServoAnimationValueMapBorrowedMut,
+-                                  base_values: *mut ::std::os::raw::c_void,
++                                  base_values:
++                                      RawServoAnimationValueTableBorrowed,
+                                   property: nsCSSPropertyID,
+                                   animation_segment:
+                                       RawGeckoAnimationPropertySegmentBorrowed,
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_wrapper.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_wrapper.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_gecko_wrapper.rs    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,27 @@
+$NetBSD: patch-servo_components_style_gecko_wrapper.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/gecko/wrapper.rs.orig       2017-09-14 20:15:56.000000000 +0000
++++ servo/components/style/gecko/wrapper.rs
+@@ -386,7 +386,12 @@ impl<'a> Iterator for GeckoChildrenItera
+                 curr
+             },
+             GeckoChildrenIterator::GeckoIterator(ref mut it) => unsafe {
+-                Gecko_GetNextStyleChild(it).map(GeckoNode)
++                // We do this unsafe lengthening of the lifetime here because
++                // structs::StyleChildrenIterator is actually StyleChildrenIterator<'a>,
++                // however we can't express this easily with bindgen, and it would
++                // introduce functions with two input lifetimes into bindgen,
++                // which would be out of scope for elision.
++                Gecko_GetNextStyleChild(&mut * (it as *mut _)).map(GeckoNode)
+             }
+         }
+     }
+@@ -424,7 +429,7 @@ impl<'lb> GeckoXBLBinding<'lb> {
+         }
+     }
+ 
+-    fn each_xbl_stylist<F>(self, mut f: &mut F)
++    fn each_xbl_stylist<F>(self, f: &mut F)
+     where
+         F: FnMut(&Stylist),
+     {
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_invalidation_element_invalidator.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_invalidation_element_invalidator.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_invalidation_element_invalidator.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_invalidation_element_invalidator.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/invalidation/element/invalidator.rs.orig    2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/invalidation/element/invalidator.rs
+@@ -154,7 +154,7 @@ impl<'a, 'b: 'a, E> TreeStyleInvalidator
+             trace!(" > visitedness change, force subtree restyle");
+             // We can't just return here because there may also be attribute
+             // changes as well that imply additional hints.
+-            let mut data = self.data.as_mut().unwrap();
++            let data = self.data.as_mut().unwrap();
+             data.restyle.hint.insert(RestyleHint::restyle_subtree());
+         }
+ 
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_matching.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_matching.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_matching.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_matching.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/matching.rs.orig    2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/matching.rs
+@@ -440,7 +440,7 @@ pub trait MatchMethods : TElement {
+     fn finish_restyle(
+         &self,
+         context: &mut StyleContext<Self>,
+-        mut data: &mut ElementData,
++        data: &mut ElementData,
+         mut new_styles: ElementStyles,
+         important_rules_changed: bool,
+     ) -> ChildCascadeRequirement {
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_properties_gecko.mako.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_properties_gecko.mako.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_properties_gecko.mako.rs    Fri Nov  3 22:07:27 2017
@@ -0,0 +1,92 @@
+$NetBSD: patch-servo_components_style_properties_gecko.mako.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/properties/gecko.mako.rs.orig       2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/properties/gecko.mako.rs
+@@ -2081,7 +2081,7 @@ fn static_assert() {
+             return (parent_size, parent_unconstrained_size)
+         }
+ 
+-        /// XXXManishearth this should also handle text zoom
++        // XXXManishearth this should also handle text zoom
+         let min = Au(parent.gecko.mScriptMinSize);
+ 
+         let scale = (parent.gecko.mScriptSizeMultiplier as f32).powi(delta as i32);
+@@ -4136,14 +4136,14 @@ fn static_assert() {
+                     fn init_shadow(filter: &mut nsStyleFilter) -> &mut nsCSSShadowArray {
+                         unsafe {
+                             let ref mut union = filter.__bindgen_anon_1;
+-                            let mut shadow_array: &mut *mut nsCSSShadowArray = union.mDropShadow.as_mut();
++                            let shadow_array: &mut *mut nsCSSShadowArray = union.mDropShadow.as_mut();
+                             *shadow_array = Gecko_NewCSSShadowArray(1);
+ 
+                             &mut **shadow_array
+                         }
+                     }
+ 
+-                    let mut gecko_shadow = init_shadow(gecko_filter);
++                    let gecko_shadow = init_shadow(gecko_filter);
+                     gecko_shadow.mArray[0].set_from_simple_shadow(shadow);
+                 },
+                 Url(ref url) => {
+@@ -4665,14 +4665,14 @@ fn static_assert() {
+                     unsafe {
+                         // We have to be very careful to avoid a copy here!
+                         let ref mut union = ${ident}.__bindgen_anon_1;
+-                        let mut shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut();
++                        let shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut();
+                         *shape = Gecko_NewBasicShape(ty);
+                         &mut **shape
+                     }
+                 }
+                 match servo_shape {
+                     BasicShape::Inset(inset) => {
+-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Inset);
++                        let shape = init_shape(${ident}, StyleBasicShapeType::Inset);
+                         unsafe { shape.mCoordinates.set_len(4) };
+ 
+                         // set_len() can't call constructors, so the coordinates
+@@ -4694,7 +4694,7 @@ fn static_assert() {
+                         set_corners_from_radius(inset.round, &mut shape.mRadius);
+                     }
+                     BasicShape::Circle(circ) => {
+-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Circle);
++                        let shape = init_shape(${ident}, StyleBasicShapeType::Circle);
+                         unsafe { shape.mCoordinates.set_len(1) };
+                         shape.mCoordinates[0].leaky_set_null();
+                         circ.radius.to_gecko_style_coord(&mut shape.mCoordinates[0]);
+@@ -4702,7 +4702,7 @@ fn static_assert() {
+                         shape.mPosition = circ.position.into();
+                     }
+                     BasicShape::Ellipse(el) => {
+-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Ellipse);
++                        let shape = init_shape(${ident}, StyleBasicShapeType::Ellipse);
+                         unsafe { shape.mCoordinates.set_len(2) };
+                         shape.mCoordinates[0].leaky_set_null();
+                         el.semiaxis_x.to_gecko_style_coord(&mut shape.mCoordinates[0]);
+@@ -4712,7 +4712,7 @@ fn static_assert() {
+                         shape.mPosition = el.position.into();
+                     }
+                     BasicShape::Polygon(poly) => {
+-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Polygon);
++                        let shape = init_shape(${ident}, StyleBasicShapeType::Polygon);
+                         unsafe {
+                             shape.mCoordinates.set_len(poly.coordinates.len() as u32 * 2);
+                         }
+@@ -4797,7 +4797,7 @@ clip-path
+             bindings::Gecko_nsStyleSVG_SetDashArrayLength(&mut self.gecko, v.len() as u32);
+         }
+ 
+-        for (mut gecko, servo) in self.gecko.mStrokeDasharray.iter_mut().zip(v) {
++        for (gecko, servo) in self.gecko.mStrokeDasharray.iter_mut().zip(v) {
+             match servo {
+                 Either::First(number) => gecko.set_value(CoordDataValue::Factor(number)),
+                 Either::Second(lop) => gecko.set(lop),
+@@ -4885,7 +4885,7 @@ clip-path
+         }
+ 
+         self.gecko.mContextPropsBits = 0;
+-        for (mut gecko, servo) in self.gecko.mContextProps.iter_mut().zip(v) {
++        for (gecko, servo) in self.gecko.mContextProps.iter_mut().zip(v) {
+             if servo.0 == atom!("fill") {
+                 self.gecko.mContextPropsBits |= structs::NS_STYLE_CONTEXT_PROPERTY_FILL as u8;
+             } else if servo.0 == atom!("stroke") {
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_properties_properties.mako.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_properties_properties.mako.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_properties_properties.mako.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_properties_properties.mako.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/properties/properties.mako.rs.orig  2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/properties/properties.mako.rs
+@@ -3364,7 +3364,7 @@ pub fn modify_border_style_for_inline_si
+                 return;
+             }
+         }
+-        let mut style = Arc::make_mut(style);
++        let style = Arc::make_mut(style);
+         let border = Arc::make_mut(&mut style.border);
+         match side {
+             PhysicalSide::Left => {
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_style__adjuster.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_style__adjuster.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_style__adjuster.rs  Fri Nov  3 22:07:27 2017
@@ -0,0 +1,31 @@
+$NetBSD: patch-servo_components_style_style__adjuster.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/style_adjuster.rs.orig      2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/style_adjuster.rs
+@@ -167,7 +167,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
+         // When 'contain: paint', update overflow from 'visible' to 'clip'.
+         if self.style.get_box().clone_contain().contains(contain::PAINT) {
+             if self.style.get_box().clone_overflow_x() == overflow::visible {
+-                let mut box_style = self.style.mutate_box();
++                let box_style = self.style.mutate_box();
+                 box_style.set_overflow_x(overflow::_moz_hidden_unscrollable);
+                 box_style.set_overflow_y(overflow::_moz_hidden_unscrollable);
+             }
+@@ -182,7 +182,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
+         use properties::longhands::font_style::computed_value::T as font_style;
+         use properties::longhands::font_weight::computed_value::T as font_weight;
+         if self.style.get_font().clone__moz_math_variant() != moz_math_variant::none {
+-            let mut font_style = self.style.mutate_font();
++            let font_style = self.style.mutate_font();
+             // Sadly we don't have a nice name for the computed value
+             // of "font-weight: normal".
+             font_style.set_font_weight(font_weight::normal());
+@@ -269,7 +269,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
+ 
+         if overflow_x != original_overflow_x ||
+            overflow_y != original_overflow_y {
+-            let mut box_style = self.style.mutate_box();
++            let box_style = self.style.mutate_box();
+             box_style.set_overflow_x(overflow_x);
+             box_style.set_overflow_y(overflow_y);
+         }
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_style__resolver.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_style__resolver.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_style__resolver.rs  Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_style__resolver.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/style_resolver.rs.orig      2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/style_resolver.rs
+@@ -247,7 +247,7 @@ where
+                         Some(&*primary_style.style)
+                     };
+ 
+-                for (i, mut inputs) in pseudo_array.iter_mut().enumerate() {
++                for (i, inputs) in pseudo_array.iter_mut().enumerate() {
+                     if let Some(inputs) = inputs.take() {
+                         let pseudo = PseudoElement::from_eager_index(i);
+                         pseudo_styles.set(
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__list.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__list.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__list.rs   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_stylesheets_rule__list.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/stylesheets/rule_list.rs.orig       2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/stylesheets/rule_list.rs
+@@ -150,7 +150,7 @@ impl CssRulesHelpers for RawOffsetArc<Lo
+ 
+         {
+             let mut write_guard = lock.write();
+-            let mut rules = self.write_with(&mut write_guard);
++            let rules = self.write_with(&mut write_guard);
+             // Step 5
+             // Computes the maximum allowed parser state at a given index.
+             let rev_state = rules.0.get(index).map_or(State::Body, CssRule::rule_state);
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__parser.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__parser.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rule__parser.rs Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_stylesheets_rule__parser.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/stylesheets/rule_parser.rs.orig     2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/stylesheets/rule_parser.rs
+@@ -209,7 +209,7 @@ impl<'a, 'i> AtRuleParser<'i> for TopLev
+                 let id = register_namespace(&url)
+                     .map_err(|()| StyleParseError::UnspecifiedError)?;
+ 
+-                let mut namespaces = self.namespaces.as_mut().unwrap();
++                let namespaces = self.namespaces.as_mut().unwrap();
+ 
+                 let opt_prefix = if let Ok(prefix) = prefix_result {
+                     let prefix = Prefix::from(prefix.as_ref());
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rules__iterator.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rules__iterator.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_stylesheets_rules__iterator.rs      Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_style_stylesheets_rules__iterator.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/stylesheets/rules_iterator.rs.orig  2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/stylesheets/rules_iterator.rs
+@@ -70,7 +70,7 @@ impl<'a, 'b, C> Iterator for RulesIterat
+ 
+             let rule;
+             let sub_iter = {
+-                let mut nested_iter = self.stack.last_mut().unwrap();
++                let nested_iter = self.stack.last_mut().unwrap();
+                 rule = match nested_iter.next() {
+                     Some(r) => r,
+                     None => {
Index: pkgsrc/www/firefox/patches/patch-servo_components_style_values_specified_image.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_style_values_specified_image.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_style_values_specified_image.rs   Fri Nov  3 22:07:27 2017
@@ -0,0 +1,22 @@
+$NetBSD: patch-servo_components_style_values_specified_image.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/style/values/specified/image.rs.orig      2017-09-14 20:15:57.000000000 +0000
++++ servo/components/style/values/specified/image.rs
+@@ -686,14 +686,14 @@ impl LineDirection {
+         input.try(|i| {
+             let to_ident = i.try(|i| i.expect_ident_matching("to"));
+             match *compat_mode {
+-                /// `to` keyword is mandatory in modern syntax.
++                // `to` keyword is mandatory in modern syntax.
+                 CompatMode::Modern => to_ident?,
+                 // Fall back to Modern compatibility mode in case there is a `to` keyword.
+                 // According to Gecko, `-moz-linear-gradient(to ...)` should serialize like
+                 // `linear-gradient(to ...)`.
+                 CompatMode::Moz if to_ident.is_ok() => *compat_mode = CompatMode::Modern,
+-                /// There is no `to` keyword in webkit prefixed syntax. If it's consumed,
+-                /// parsing should throw an error.
++                // There is no `to` keyword in webkit prefixed syntax. If it's consumed,
++                // parsing should throw an error.
+                 CompatMode::WebKit if to_ident.is_ok() => {
+                     return Err(SelectorParseError::UnexpectedIdent("to".into()).into())
+                 },
Index: pkgsrc/www/firefox/patches/patch-servo_components_webdriver__server_lib.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_components_webdriver__server_lib.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_components_webdriver__server_lib.rs  Fri Nov  3 22:07:27 2017
@@ -0,0 +1,13 @@
+$NetBSD: patch-servo_components_webdriver__server_lib.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/components/webdriver_server/lib.rs.orig      2017-09-14 20:15:57.000000000 +0000
++++ servo/components/webdriver_server/lib.rs
+@@ -702,7 +702,7 @@ impl Handler {
+     fn handle_set_timeouts(&mut self,
+                            parameters: &TimeoutsParameters)
+                            -> WebDriverResult<WebDriverResponse> {
+-        let mut session = self.session
++        let session = self.session
+             .as_mut()
+             .ok_or(WebDriverError::new(ErrorStatus::SessionNotCreated, ""))?;
+ 
Index: pkgsrc/www/firefox/patches/patch-servo_ports_geckolib_glue.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_ports_geckolib_glue.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_ports_geckolib_glue.rs       Fri Nov  3 22:07:27 2017
@@ -0,0 +1,75 @@
+$NetBSD: patch-servo_ports_geckolib_glue.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/ports/geckolib/glue.rs.orig  2017-09-14 20:15:57.000000000 +0000
++++ servo/ports/geckolib/glue.rs
+@@ -62,6 +62,7 @@ use style::gecko_bindings::bindings::Raw
+ use style::gecko_bindings::bindings::RawServoAnimationValueBorrowed;
+ use style::gecko_bindings::bindings::RawServoAnimationValueMapBorrowedMut;
+ use style::gecko_bindings::bindings::RawServoAnimationValueStrong;
++use style::gecko_bindings::bindings::RawServoAnimationValueTableBorrowed;
+ use style::gecko_bindings::bindings::RawServoStyleRuleBorrowed;
+ use style::gecko_bindings::bindings::ServoStyleContextBorrowedOrNull;
+ use style::gecko_bindings::bindings::nsTArrayBorrowed_uintptr_t;
+@@ -370,7 +371,7 @@ pub extern "C" fn Servo_AnimationValues_
+ 
+ #[no_mangle]
+ pub extern "C" fn Servo_AnimationCompose(raw_value_map: RawServoAnimationValueMapBorrowedMut,
+-                                         base_values: *mut ::std::os::raw::c_void,
++                                         base_values: RawServoAnimationValueTableBorrowed,
+                                          css_property: nsCSSPropertyID,
+                                          segment: RawGeckoAnimationPropertySegmentBorrowed,
+                                          last_segment: RawGeckoAnimationPropertySegmentBorrowed,
+@@ -815,7 +816,7 @@ pub extern "C" fn Servo_StyleSet_AppendS
+ ) {
+     let global_style_data = &*GLOBAL_STYLE_DATA;
+     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
+-    let mut data = &mut *data;
++    let data = &mut *data;
+     let guard = global_style_data.shared_lock.read();
+     data.stylesheets.append_stylesheet(
+         &data.stylist,
+@@ -867,7 +868,7 @@ pub extern "C" fn Servo_StyleSet_Prepend
+ ) {
+     let global_style_data = &*GLOBAL_STYLE_DATA;
+     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
+-    let mut data = &mut *data;
++    let data = &mut *data;
+     let guard = global_style_data.shared_lock.read();
+     data.stylesheets.prepend_stylesheet(
+         &data.stylist,
+@@ -885,7 +886,7 @@ pub extern "C" fn Servo_StyleSet_InsertS
+ ) {
+     let global_style_data = &*GLOBAL_STYLE_DATA;
+     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
+-    let mut data = &mut *data;
++    let data = &mut *data;
+     let guard = global_style_data.shared_lock.read();
+     data.stylesheets.insert_stylesheet_before(
+         &data.stylist,
+@@ -903,7 +904,7 @@ pub extern "C" fn Servo_StyleSet_RemoveS
+ ) {
+     let global_style_data = &*GLOBAL_STYLE_DATA;
+     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
+-    let mut data = &mut *data;
++    let data = &mut *data;
+     let guard = global_style_data.shared_lock.read();
+     data.stylesheets.remove_stylesheet(
+         &data.stylist,
+@@ -1274,7 +1275,7 @@ pub extern "C" fn Servo_StyleRule_GetSpe
+     specificity: *mut u64
+ ) {
+     read_locked_arc(rule, |rule: &StyleRule| {
+-        let mut specificity =  unsafe { specificity.as_mut().unwrap() };
++        let specificity =  unsafe { specificity.as_mut().unwrap() };
+         let index = index as usize;
+         if index >= rule.selectors.0.len() {
+             *specificity = 0;
+@@ -2775,7 +2776,7 @@ pub extern "C" fn Servo_NoteExplicitHint
+ pub extern "C" fn Servo_TakeChangeHint(element: RawGeckoElementBorrowed,
+                                        was_restyled: *mut bool) -> nsChangeHint
+ {
+-    let mut was_restyled =  unsafe { was_restyled.as_mut().unwrap() };
++    let was_restyled =  unsafe { was_restyled.as_mut().unwrap() };
+     let element = GeckoElement(element);
+ 
+     let damage = match element.mutate_data() {
Index: pkgsrc/www/firefox/patches/patch-servo_rust-commit-hash
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_rust-commit-hash:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_rust-commit-hash     Fri Nov  3 22:07:27 2017
@@ -0,0 +1,7 @@
+$NetBSD: patch-servo_rust-commit-hash,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/rust-commit-hash.orig        2017-09-14 20:15:57.000000000 +0000
++++ servo/rust-commit-hash
+@@ -1 +1 @@
+-599be0d18f4c6ddf36366d2a5a2ca6dc65886896
++13d94d5fa8129a34f5c77a1bcd76983f5aed2434
Index: pkgsrc/www/firefox/patches/patch-servo_tests_unit_style_stylist.rs
diff -u /dev/null pkgsrc/www/firefox/patches/patch-servo_tests_unit_style_stylist.rs:1.1
--- /dev/null   Fri Nov  3 22:07:27 2017
+++ pkgsrc/www/firefox/patches/patch-servo_tests_unit_style_stylist.rs  Fri Nov  3 22:07:27 2017
@@ -0,0 +1,24 @@
+$NetBSD: patch-servo_tests_unit_style_stylist.rs,v 1.1 2017/11/03 22:07:27 ryoon Exp $
+
+--- servo/tests/unit/style/stylist.rs.orig     2017-09-14 20:15:57.000000000 +0000
++++ servo/tests/unit/style/stylist.rs
+@@ -51,19 +51,6 @@ fn get_mock_rules(css_selectors: &[&str]
+     }).collect(), shared_lock)
+ }
+ 
+-fn get_mock_map(selectors: &[&str]) -> (SelectorMap<Rule>, SharedRwLock) {
+-    let mut map = SelectorMap::<Rule>::new();
+-    let (selector_rules, shared_lock) = get_mock_rules(selectors);
+-
+-    for rules in selector_rules.into_iter() {
+-        for rule in rules.into_iter() {
+-            map.insert(rule, QuirksMode::NoQuirks)
+-        }
+-    }
+-
+-    (map, shared_lock)
+-}
+-
+ fn parse_selectors(selectors: &[&str]) -> Vec<Selector<SelectorImpl>> {
+     selectors.iter()
+              .map(|x| SelectorParser::parse_author_origin_no_namespace(x).unwrap().0



Home | Main Index | Thread Index | Old Index