$ git diff --patch-with-stat --summary 2891fbbf846bdc44d5593cf596b3990e4336b295..36c3241c7c09233a591f5f79fa243a6faf11db9d
.abf.yml | 152 +++---
firefox.spec | 24 +-
mozilla-57.0-kde.patch | 8 +-
mozilla-bindgen-systemlibs.patch | 102 ++++
mozilla-rust-1.23.patch | 1083 ++++++++++++++++++++++++++++++++++++++
5 files changed, 1277 insertions(+), 92 deletions(-)
create mode 100644 mozilla-bindgen-systemlibs.patch
create mode 100644 mozilla-rust-1.23.patch
diff --git a/.abf.yml b/.abf.yml
index cd8c37a..2651a08 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,78 +1,78 @@
sources:
autoconf-2.13.tar.gz: e4826c8bd85325067818f19b2b2ad2b625da66fc
- firefox-57.0.3.source.tar.xz: 09b3dac606ae6185079bc4d47bf543545f7cff94
- af.xpi: 8dfd2504b23e5b015b2869389cc5bd4e14a81dea
- ar.xpi: 5bc0f7e18f35b29d69fa10a0ae358c77d5e0b3cb
- ast.xpi: aad9277a71840b5ed55601dc232fb61fb4e3d251
- as.xpi: e362a48997732c569b9cbb50cf4b8b9784f7913a
- bg.xpi: 5e64199d73982ba9865557de8bc1b236e1e1ecfb
- bn-BD.xpi: 27c5ee0464fea2ccef0d3789b85f93dfb34a4756
- bn-IN.xpi: 74503af9667c402fdb2bf217f791d5d3e99066c9
- br.xpi: 073533ae65544832c900e51a86005957a8fcdb1a
- bs.xpi: bc72a54899b0d099be4e7d57b93942317f9aca37
- ca.xpi: 3551c7046cfe4ae7a591029896b623780dda1522
- cs.xpi: 849979a85e13ffdd7c804aa63b7c74e38fef59af
- cy.xpi: 7718b75210a816a6aeacd21cbe6c37b56133c056
- da.xpi: 9b11858216c8d5202c78a4cb830cb959a5593e48
- de.xpi: ca8bd3e22af2d88585be40960db520908d2c80e5
- el.xpi: 6f96b0af467dd4e6ed0bfb1015eb83cfe4d1d3ff
- en-GB.xpi: 870a2975ac137ac60d59be76189fb5cb64669fa1
- en-ZA.xpi: a140370da979a244416a6a156cdcf7d7d733e4f5
- eo.xpi: 1e87fd82029a4d53666b8a314a620c06a1223188
- es-AR.xpi: be3daaace2c52ab0dcaab5b2429e980bed07f496
- es-CL.xpi: 0559629f8a96f4b5ff77a6d6774e70f38aab0bbd
- es-ES.xpi: f5dd3f9fc5139957d52e2a5ef0537c2086b44f4a
- es-MX.xpi: b39e616cc7834bbfc54f5742388674662cc168f6
- et.xpi: 5a15692bac67477acb9599b1f9f482f1fa64d5de
- eu.xpi: d759fd61c303a90f335964c4ec495e9ad8be0737
- fa.xpi: df656b42860831194530c8f35f19392fc843baf1
- fi.xpi: b1bec47a3b8c8326ab9b7888c80532c794c01099
- fr.xpi: cda6734b481d800ab0c096c9d11586c40f563f85
- fy-NL.xpi: 77fd49f09a29a6f5c7679b7fcac5753431299df6
- ga-IE.xpi: 3739228b7c757876914ad7d1f807dead8ed8edf6
- gd.xpi: dda273666d226b2de12a06663e13a8fe4cb60e5b
- gl.xpi: b3644fdd5774c7b34a3f8859d994224f815a7bf3
- gu-IN.xpi: 3ee51645d8e64cab4d7b4fa8e875646dc9b08bc1
- he.xpi: 9a0531a3ae81e60c27041c213e4c747978d3171a
- hi-IN.xpi: 586117b71dbbf9134e43f28e78af19b7188840ea
- hr.xpi: 6d385af1c295a927ba539d8f74a4966b767279cb
- hu.xpi: 3a7bfc23cd1de4eea3a8be3829f261a58ea4f2e9
- hy-AM.xpi: ef5a93240e82859d7c59f398cac70636f65cdb54
- id.xpi: 1f8c1422c9eba3b16a587a334025214fc72e7814
- is.xpi: 6c72df1330eb1c28f4a9e169271feb8f2c2ee2ab
- it.xpi: 14cf57c03aa0592e8510ebfdc8d5148094f50a77
- ja.xpi: 4e4ebb580fc621c0d4ab83e3cf98576bf517b369
- kk.xpi: a046c33c1abe1315f6bba7e8a222a5977213e8d9
- km.xpi: 394585242a2d0d9abc997fdb4f53d26a1c4073bd
- kn.xpi: eaae5459cce18d20c5aedb90c4bc30334ecd3ad6
- ko.xpi: c477138eee598e9fa898d49b47dd80b7c68a730b
- lt.xpi: a42cfeb30f6b1a6c6214e1b0ecdfd3adce9eaa32
- lv.xpi: 5a380ea42369bfb316e5b449ae73202a5dba5de3
- mai.xpi: 7ddcb99784ecfc99f5c4decc3872d56dbab2175b
- mk.xpi: 66276c899f453947125b9a508a9a04f4ab0e6eeb
- ml.xpi: 162682c3a491b81370f78e18ce46a3a1733d993a
- mr.xpi: 6963a3ba35284ac5b77ad9d9e57956af8691f2e4
- nb-NO.xpi: 9691039e79918347d95cc8453605fc1d0117fa2c
- nl.xpi: 8d7520727b613239594c76240deb126f8d4b61fa
- nn-NO.xpi: 1afe2511beecb3d1d8fa46db6db03f5f4ff0f430
- or.xpi: 808ce5fcb893ab596ca814e4e97e0d6430711fa7
- pa-IN.xpi: ce8af5fd2fd9311077ca630aca62fe67e1580af8
- pl.xpi: 79ec60879dff3ca9161e04467db69be26461430a
- pt-BR.xpi: 8fad349b6fddd3dbdad510b6da572a323f931c39
- pt-PT.xpi: f02ab4ea3f63138b074d63f3371ff9c20905aec1
- ro.xpi: c49a10fed7c738262bffbe912e69920929a997d6
- ru.xpi: 84ed0c1ca89bd5dd4f2df522fb66697726555bd5
- si.xpi: ebe222a155b50c739796c2e4d3c1ac63e9843361
- sk.xpi: 4c36c0936a16ca5eca0d5a0a5d9ceab3cd9bea81
- sl.xpi: 41469d5e72f8c5ef17e637de7e187a3c5cbb52b3
- sq.xpi: a19df7b1a3e2922f0324c55672bef7a24407991e
- sr.xpi: 596841981d81d8f709f58d8191846d38c4fbbeda
- sv-SE.xpi: 618437aac2a5a3c71614a63b48fe752b4d44cc5a
- ta.xpi: cd85f0551b92560088302c09b29d2a56cdbf4af6
- te.xpi: 6d6522a23941fb116bf785dbefaa0290803ef292
- th.xpi: df487cdf0d75c4ae09e730c5398900660da6d2f7
- tr.xpi: 86e7fa9f35ee162121cbc73bb37c06af9d3c3f3e
- uk.xpi: dc62c3d44fce78338f33c37d05226c412dde9f27
- vi.xpi: f5c9b19ec13c6f08b399502fc7db1369dab92d5e
- zh-CN.xpi: 00084a709fbcbb39d4a265a68814075eb88f0ace
- zh-TW.xpi: e3ba44d5cba229e854dce419484e2872b5fea5fc
+ firefox-57.0.4.source.tar.xz: c7e3aa5db3c711b9bc3e82224fae49c829cc857d
+ af.xpi: 878816a6a6dcdf1b7ae514448a2db13e1c51969a
+ ar.xpi: f6202977959286880876629d3c6141be58d627e4
+ ast.xpi: ed1abc1610584025a2bd8cf9a169ec931a315772
+ as.xpi: 39ca60b150907211b9efdc9d6d4592f2c1e82305
+ bg.xpi: 00ff241685df755716423d576f0a57af2a432923
+ bn-BD.xpi: 0087a52152e3de3b6a7eb9b6b92cd0ce1e0f93e6
+ bn-IN.xpi: e02d9b55a92288ae74c7ac93ac1b2b90d1ad7025
+ br.xpi: 2b39fe1b46c03712daff197c0b1a15147d77f459
+ bs.xpi: 19e41bac567ddd74d8d39140afc747da36204add
+ ca.xpi: 9e7ff447ca42e6c3174560fd87aa544c0010b1ac
+ cs.xpi: ccb95d24dd9ae43a2d214655efd561bdaabec402
+ cy.xpi: e8a886dae1089fcfc995e1b8cdc10b68f7412327
+ da.xpi: 43dc9ba8a1d5f746936fde31aabc04e153b7d918
+ de.xpi: c0fba2689d3bba51388faf7cfd764b24d901ac2d
+ el.xpi: 3d9c3f7e797af9e8dc968bdd36a7041ecdce4e47
+ en-GB.xpi: e8081a305046634dd4790dd317a733efdc87790c
+ en-ZA.xpi: eea3d4a7a5583000b0127854ea5c1560d2c4c9d5
+ eo.xpi: 10a3eb5c8ecdf6c039f674e7812b96978a22a51c
+ es-AR.xpi: c015e630bbb6e7b7397d4a2fe4df30e4dc359b04
+ es-CL.xpi: 639d64c1791bd7662645cfd571108a346bef3a23
+ es-ES.xpi: 0e59da9fc1b1feac3561447e25940fab8eb6e9a1
+ es-MX.xpi: ecebbf7d2448db2fd68f8d8332fae281209d2bf7
+ et.xpi: 42c79251d42549f24e9dcba7027cfb06bdf4744c
+ eu.xpi: 74a6f791473e7a0e24cdea448398ff7eb22eb0b0
+ fa.xpi: 85aca026f5bdfbd2b4789e40fb55a0d7a7ba88ee
+ fi.xpi: bc0defeb6418e7e5d976a4068410d7710c62099e
+ fr.xpi: a954b8073e29fa61f921a7bed8494e8853b0bf52
+ fy-NL.xpi: a6db44e0cdf68b34ae8847511edadc0cff44a652
+ ga-IE.xpi: 178fe3707318c34cce7983b853b0059e819b3503
+ gd.xpi: 04c231830929966f96c2c13ade1aad02c590f63b
+ gl.xpi: 46cc6aa0137b8197ac19f669f24716f018d7f621
+ gu-IN.xpi: 4befa66ff803432d8f080b3af890c5cd156f1a54
+ he.xpi: 53893aad80dd2cb8f6e61abd1dae3e37d4c6e31e
+ hi-IN.xpi: d043857276dd4b214cd17453f6b14bc1fbcf2843
+ hr.xpi: 8645d49f7707977b10a521e23c6e83eb1fd077f0
+ hu.xpi: c654af078fffd32d14f69330cee135b912e2fe10
+ hy-AM.xpi: ecf217b861541ff162117e6cd67a58ab0d770946
+ id.xpi: 7af4f331fa102ea8d7b4869d072a579ec8d4a2ad
+ is.xpi: 482788e2808fffd18ad516dd5aa71e5996f76723
+ it.xpi: d693c6ef11c107521a6e23cced317815c424c0ac
+ ja.xpi: ac20d5f0e0dcece9ce7677546f3bb774d3a42a05
+ kk.xpi: 009eb2213e1215cd9e4054daf5edc503d828c7f6
+ km.xpi: ea4f9448a2a31e6de6f3e493036149ff4e5f31b4
+ kn.xpi: bdd573a96d8445ec73b9656c5b0fa218d2d1cb4e
+ ko.xpi: 27ca3d2e0d62ce4f627bd1f1c44416952f44f50a
+ lt.xpi: 203f638b53e1802f8f50426b175bc723c1f1e0e2
+ lv.xpi: dd22573068a1a8a19e6774ed8a593fd19c260212
+ mai.xpi: 641addc0f42627e148f9b686f745ba1436042710
+ mk.xpi: 9b148d77f40cc947504fc6ee8241220fba6f4e14
+ ml.xpi: 3c5a7a2e2764178bd867e082f7b9a7ab9289a0f2
+ mr.xpi: 00216f6dd3b5761a131dc82f16c06ade4c3d259b
+ nb-NO.xpi: 814c952a9f43b077422a8ba89b7106210cd7661a
+ nl.xpi: 29e0ed3bc07b613cbb86c61041d3e10f05c88068
+ nn-NO.xpi: 328ea72762ebe2df2e2d434b956f42aa1c1b6b2f
+ or.xpi: 737aef24c8f057e1cb3ad0329d32260647896567
+ pa-IN.xpi: 1c74f76dbd58ab865f108614d8fd5739e78bb062
+ pl.xpi: f289e094ec0c4fe75482cbe9a8afcb3dd0d4eba7
+ pt-BR.xpi: e7e17bc5102dad030512705599f138ea0fb55425
+ pt-PT.xpi: 2868d48c278762c2338bf09caeec24bfaeacf916
+ ro.xpi: 3138a8c6af9cb38b6c2432aaf387565b6eb4adb1
+ ru.xpi: 4469274231174e90aba17e2f7b1e19c9c77875b7
+ si.xpi: f12fcaca91b82bc5c5e9a71a43ee738d1aa0e21c
+ sk.xpi: e5dc87cccd49257ce46af2c7ed8b3b4e7585620e
+ sl.xpi: 6eb9475f387c69c3f7a6ae3b31da776c98d3c837
+ sq.xpi: 4f9237a35ae38dce2315f60e09e1bb828c7f8eae
+ sr.xpi: 4d9cb3c037a229b29d1e8956fe81bc194a05ae3a
+ sv-SE.xpi: 5f49da6e05931d626b7accb452e57c4d8ad9e7be
+ ta.xpi: 350a90b77d8d00213b2af1cd612be3f91b35ba45
+ te.xpi: 3bc77c70c939d135569cdeb10efb21a6ed74df7f
+ th.xpi: 409bf3a6a6d37862e57fe37373c3b89db8728abd
+ tr.xpi: 271b5701a2fe8147c12ef1a084c62ff33d4ae09f
+ uk.xpi: 412e20ed86b58e9b67ec31699013908c311bd50f
+ vi.xpi: cf59e4f608d4e8283af6193f26ba80c578889312
+ zh-CN.xpi: ad117444f5b108b9e344b701c196a332d07c6a88
+ zh-TW.xpi: e179fc913252b0c7ffb39523618aca78861ede79
diff --git a/firefox.spec b/firefox.spec
index 8817e9c..c825539 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -240,7 +240,7 @@ Name: firefox
Epoch: 0
# IMPORTANT: When updating, you MUST also update the l10n files by running
# download.sh after editing the version number
-Version: 57.0.3
+Version: 57.0.4
Release: 1
License: MPLv1+
Group: Networking/WWW
@@ -281,17 +281,16 @@ Patch43: rhbz-1291190-appchooser-crash.patch
# Not yet finished, but can't hurt
#Patch50: firefox-48.0.1-qt-compile.patch
+# (tpg) try to fix build with stylo enabled
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
+Patch100: mozilla-bindgen-systemlibs.patch
+Patch101: mozilla-rust-1.23.patch
#BuildConflicts: libreoffice-core
BuildRequires: doxygen
BuildRequires: makedepend
-BuildRequires: pkgconfig(python2)
-%if %mdvver >= 201500
-BuildRequires: python2
-BuildRequires: python2-distribute
-%else
-BuildRequires: python
-BuildRequires: python-distribute
-%endif
+BuildRequires: pkgconfig(python)
+BuildRequires: python
+BuildRequires: python-distribute
#(tpg) this is in contrib
#BuildRequires: python-ply
BuildRequires: rootcerts >= 1:20110830.00
@@ -541,9 +540,9 @@ ac_add_options --with-google-api-keyfile=../google-api-key
ac_add_options --enable-release
ac_add_options --enable-pie
# stylo wont build at the momemnt, stack dump in bindgen cb 16/11/2017
+#ifarch %{ix86}
ac_add_options --disable-stylo
-# Workaround for stylo build
-ac_add_options BINDGEN_CFLAGS="$(pkg-config nspr pixman-1 --cflags)"
+#endif
EOF
# Show the config just for debugging
@@ -556,8 +555,7 @@ mkdir -p obj/ipc/chromium
cp ipc/chromium/src/base/message_pump_qt.* obj/ipc/chromium/
%endif
-export LDFLAGS="%ldflags"
-export PYTHON=python2
+export LDFLAGS="%{ldflags}"
make -f client.mk build
diff --git a/mozilla-57.0-kde.patch b/mozilla-57.0-kde.patch
index 0698455..439efb3 100644
--- a/mozilla-57.0-kde.patch
+++ b/mozilla-57.0-kde.patch
@@ -1,5 +1,5 @@
# HG changeset patch
-# Parent 87a32e5d11e9d652e331a5f852bb951069b20c4a
+# Parent 2504512f9a9ba7b52dd99745d15f049f2a03f4f4
Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com>
@@ -3275,7 +3275,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
mFilters.AppendElement(filter);
mFilterNames.AppendElement(name);
-@@ -371,16 +375,37 @@ nsFilePicker::Show(int16_t *aReturn)
+@@ -371,16 +375,39 @@ nsFilePicker::Show(int16_t *aReturn)
NS_IMETHODIMP
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
@@ -3288,6 +3288,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
+ if( nsKDEUtils::kdeSupport()) {
+ mCallback = aCallback;
+ mRunning = true;
++ NS_ADDREF_THIS();
+ g_idle_add([](gpointer data) -> gboolean {
+ nsFilePicker* queuedPicker = (nsFilePicker*) data;
+ int16_t result;
@@ -3299,6 +3300,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
+ queuedPicker->mResult = result;
+ }
+ queuedPicker->mRunning = false;
++ NS_RELEASE(queuedPicker);
+ return G_SOURCE_REMOVE;
+ }, this);
+
@@ -3313,7 +3315,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
-@@ -603,8 +628,233 @@ nsFilePicker::Done(GtkWidget* file_choos
+@@ -603,8 +630,233 @@ nsFilePicker::Done(GtkWidget* file_choos
if (mCallback) {
mCallback->Done(result);
mCallback = nullptr;
diff --git a/mozilla-bindgen-systemlibs.patch b/mozilla-bindgen-systemlibs.patch
new file mode 100644
index 0000000..97a627f
--- /dev/null
+++ b/mozilla-bindgen-systemlibs.patch
@@ -0,0 +1,102 @@
+# HG changeset patch
+# Parent e85dde0eabf214916c69924aa49192ab412e00a1
+
+diff --git a/build/autoconf/config.status.m4 b/build/autoconf/config.status.m4
+--- a/build/autoconf/config.status.m4
++++ b/build/autoconf/config.status.m4
+@@ -40,16 +40,31 @@ define([AC_SUBST_LIST],
+ [ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST_SET and AC_SUBST_LIST on the same variable ($1)])],
+ [ifdef([AC_SUBST_LIST_$1], ,
+ [define([AC_SUBST_LIST_$1], )dnl
+ AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
+ (''' $1 ''', list(r''' [$]$1 '''.split()))
+ AC_DIVERT_POP()dnl
+ ])])])])
+
++dnl Like AC_SUBST, but makes the value available as a string of quoted strings
++dnl in python, with values got from the value of the environment variable,
++dnl split on whitespaces. The value is suitable for embedding into a .toml
++dnl list.
++define([AC_SUBST_TOML_LIST],
++[ifdef([AC_SUBST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST_SET and AC_SUBST_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_LIST_$1], ,
++[define([AC_SUBST_LIST_$1], )dnl
++AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
++ (''' $1 ''', r''' %s ''' % str(', '.join("'%s'" % s for s in r''' [$]$1 '''.split())))
++AC_DIVERT_POP()dnl
++])])])])
++
++
+ dnl Ignore AC_SUBSTs for variables we don't have use for but that autoconf
+ dnl itself exports.
+ define([AC_SUBST_CFLAGS], )
+ define([AC_SUBST_CPPFLAGS], )
+ define([AC_SUBST_CXXFLAGS], )
+ define([AC_SUBST_FFLAGS], )
+ define([AC_SUBST_DEFS], )
+ define([AC_SUBST_LDFLAGS], )
+diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -897,25 +897,24 @@ def check_have_64_bit(have_64_bit, compi
+ configure_error('The target compiler does not agree with configure '
+ 'about the target bitness.')
+
+ option(env='BINDGEN_CFLAGS',
+ nargs=1,
+ help='Options bindgen should pass to the C/C++ parser')
+
+ @depends('BINDGEN_CFLAGS')
+-@checking('bindgen cflags', lambda s: s if s and s.strip() else 'no')
++@checking('bindgen cflags', lambda s: s if s and s[0].strip() else 'no')
+ def bindgen_cflags(value):
+ if value and len(value):
+ # Reformat the env value for substitution into a toml list.
+ flags = value[0].split()
+- return ', '.join('"' + flag + '"' for flag in flags)
+- return ''
++ return flags
+
+-set_config('BINDGEN_CFLAGS', bindgen_cflags)
++add_old_configure_assignment('_BINDGEN_CFLAGS', bindgen_cflags)
+
+ @depends(c_compiler)
+ def default_debug_flags(compiler_info):
+ # Debug info is ON by default.
+ if compiler_info.type in ('msvc', 'clang-cl'):
+ return '-Zi'
+ return '-g'
+
+diff --git a/layout/style/bindgen.toml.in b/layout/style/bindgen.toml.in
+--- a/layout/style/bindgen.toml.in
++++ b/layout/style/bindgen.toml.in
+@@ -1,4 +1,4 @@
+ [build]
+ args = [
+- @BINDGEN_CFLAGS@
++ @BINDGEN_SYSTEM_FLAGS@
+ ]
+diff --git a/old-configure.in b/old-configure.in
+--- a/old-configure.in
++++ b/old-configure.in
+@@ -4453,16 +4453,19 @@ android)
+ esac
+
+ AC_SUBST(MOZ_TREE_CAIRO)
+ AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
+ AC_SUBST_LIST(MOZ_CAIRO_LIBS)
+ AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
+ AC_SUBST(MOZ_TREE_PIXMAN)
+
++BINDGEN_SYSTEM_FLAGS="$_BINDGEN_CFLAGS $NSPR_CFLAGS $NSS_CFLAGS $MOZ_PIXMAN_CFLAGS $MOZ_CAIRO_CFLAGS"
++AC_SUBST_TOML_LIST(BINDGEN_SYSTEM_FLAGS)
++
+ dnl ========================================================
+ dnl disable xul
+ dnl ========================================================
+ MOZ_ARG_DISABLE_BOOL(xul,
+ [ --disable-xul Disable XUL],
+ MOZ_XUL= )
+ if test "$MOZ_XUL"; then
+ AC_DEFINE(MOZ_XUL)
diff --git a/mozilla-rust-1.23.patch b/mozilla-rust-1.23.patch
new file mode 100644
index 0000000..feb49b8
--- /dev/null
+++ b/mozilla-rust-1.23.patch
@@ -0,0 +1,1083 @@
+
+# HG changeset patch
+# User Simon Sapin <simon.sapin@exyr.org>
+# Date 1510231769 21600
+# Node ID 3242ac6fdb3879f723145e6b07fff04a5c960d1e
+# Parent bf63b9d8f2410464d5f2526588e380f934e937cc
+servo: Merge #19162 - Allow unused imports for AsciiExt in style code (from emilio:ascii-ext); r=emilio
+
+See #19128, this part is cherry-picked so Gecko can build with rust nightly.
+
+Source-Repo: https://github.com/servo/servo
+Source-Revision: e7a654dd13f589e127193267bcb576ffd661c11d
+
+diff --git a/servo/components/gfx/font.rs b/servo/components/gfx/font.rs
+--- a/servo/components/gfx/font.rs
++++ b/servo/components/gfx/font.rs
+@@ -5,17 +5,17 @@
+ use app_units::Au;
+ use euclid::{Point2D, Rect, Size2D};
+ use font_template::FontTemplateDescriptor;
+ use ordered_float::NotNaN;
+ use platform::font::{FontHandle, FontTable};
+ use platform::font_context::FontContextHandle;
+ use platform::font_template::FontTemplateData;
+ use smallvec::SmallVec;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::ToOwned;
+ use std::cell::RefCell;
+ use std::collections::HashMap;
+ use std::rc::Rc;
+ use std::str;
+ use std::sync::Arc;
+ use std::sync::atomic::{ATOMIC_USIZE_INIT, AtomicUsize, Ordering};
+ use style::computed_values::{font_stretch, font_variant_caps, font_weight};
+diff --git a/servo/components/net/fetch/cors_cache.rs b/servo/components/net/fetch/cors_cache.rs
+--- a/servo/components/net/fetch/cors_cache.rs
++++ b/servo/components/net/fetch/cors_cache.rs
+@@ -7,17 +7,17 @@
+ //! For stuff involving `<img>`, `<iframe>`, `<form>`, etc please check what
+ //! the request mode should be and compare with the fetch spec
+ //! This library will eventually become the core of the Fetch crate
+ //! with CORSRequest being expanded into FetchRequest (etc)
+
+ use hyper::method::Method;
+ use net_traits::request::{CredentialsMode, Origin, Request};
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use time::{self, Timespec};
+
+ /// Union type for CORS cache entries
+ ///
+ /// Each entry might pertain to a header or method
+ #[derive(Clone, Debug)]
+ pub enum HeaderOrMethod {
+ HeaderData(String),
+diff --git a/servo/components/net/fetch/methods.rs b/servo/components/net/fetch/methods.rs
+--- a/servo/components/net/fetch/methods.rs
++++ b/servo/components/net/fetch/methods.rs
+@@ -16,17 +16,17 @@ use hyper::method::Method;
+ use hyper::mime::{Mime, SubLevel, TopLevel};
+ use hyper::status::StatusCode;
+ use mime_guess::guess_mime_type;
+ use net_traits::{FetchTaskTarget, NetworkError, ReferrerPolicy};
+ use net_traits::request::{CredentialsMode, Referrer, Request, RequestMode, ResponseTainting};
+ use net_traits::request::{Type, Origin, Window};
+ use net_traits::response::{Response, ResponseBody, ResponseType};
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::fmt;
+ use std::fs::File;
+ use std::io::Read;
+ use std::mem;
+ use std::str;
+ use std::sync::Arc;
+ use std::sync::mpsc::{Sender, Receiver};
+diff --git a/servo/components/net/http_loader.rs b/servo/components/net/http_loader.rs
+--- a/servo/components/net/http_loader.rs
++++ b/servo/components/net/http_loader.rs
+@@ -34,17 +34,17 @@ use log;
+ use msg::constellation_msg::PipelineId;
+ use net_traits::{CookieSource, FetchMetadata, NetworkError, ReferrerPolicy};
+ use net_traits::request::{CacheMode, CredentialsMode, Destination, Origin};
+ use net_traits::request::{RedirectMode, Referrer, Request, RequestMode};
+ use net_traits::request::{ResponseTainting, ServiceWorkersMode, Type};
+ use net_traits::response::{HttpsState, Response, ResponseBody, ResponseType};
+ use resource_thread::AuthCache;
+ use servo_url::{ImmutableOrigin, ServoUrl};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::collections::HashSet;
+ use std::error::Error;
+ use std::io::{self, Read, Write};
+ use std::iter::FromIterator;
+ use std::mem;
+ use std::ops::Deref;
+ use std::sync::RwLock;
+ use std::sync::mpsc::{channel, Sender};
+diff --git a/servo/components/net/websocket_loader.rs b/servo/components/net/websocket_loader.rs
+--- a/servo/components/net/websocket_loader.rs
++++ b/servo/components/net/websocket_loader.rs
+@@ -14,17 +14,17 @@ use hyper::http::h1::{LINE_ENDING, parse
+ use hyper::method::Method;
+ use hyper::net::HttpStream;
+ use hyper::status::StatusCode;
+ use hyper::version::HttpVersion;
+ use net_traits::{CookieSource, MessageData, NetworkError, WebSocketCommunicate, WebSocketConnectData};
+ use net_traits::{WebSocketDomAction, WebSocketNetworkEvent};
+ use net_traits::request::{Destination, Type};
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::io::{self, Write};
+ use std::net::TcpStream;
+ use std::sync::{Arc, Mutex};
+ use std::sync::atomic::{AtomicBool, Ordering};
+ use std::thread;
+ use url::Position;
+ use websocket::{Message, Receiver as WSReceiver, Sender as WSSender};
+ use websocket::header::{Origin, WebSocketAccept, WebSocketKey, WebSocketProtocol, WebSocketVersion};
+diff --git a/servo/components/net_traits/response.rs b/servo/components/net_traits/response.rs
+--- a/servo/components/net_traits/response.rs
++++ b/servo/components/net_traits/response.rs
+@@ -4,17 +4,17 @@
+
+ //! The [Response](https://fetch.spec.whatwg.org/#responses) object
+ //! resulting from a [fetch operation](https://fetch.spec.whatwg.org/#concept-fetch)
+ use {FetchMetadata, FilteredMetadata, Metadata, NetworkError, ReferrerPolicy};
+ use hyper::header::{AccessControlExposeHeaders, ContentType, Headers};
+ use hyper::status::StatusCode;
+ use hyper_serde::Serde;
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::sync::{Arc, Mutex};
+
+ /// [Response type](https://fetch.spec.whatwg.org/#concept-response-type)
+ #[derive(Clone, Debug, Deserialize, HeapSizeOf, PartialEq, Serialize)]
+ pub enum ResponseType {
+ Basic,
+ Cors,
+ Default,
+diff --git a/servo/components/script/dom/bindings/str.rs b/servo/components/script/dom/bindings/str.rs
+--- a/servo/components/script/dom/bindings/str.rs
++++ b/servo/components/script/dom/bindings/str.rs
+@@ -2,17 +2,17 @@
+ * 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/. */
+
+ //! The `ByteString` struct.
+
+ use cssparser::CowRcStr;
+ use html5ever::{LocalName, Namespace};
+ use servo_atoms::Atom;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::{Borrow, Cow, ToOwned};
+ use std::fmt;
+ use std::hash::{Hash, Hasher};
+ use std::marker::PhantomData;
+ use std::ops;
+ use std::ops::{Deref, DerefMut};
+ use std::str;
+ use std::str::{Bytes, FromStr};
+diff --git a/servo/components/script/dom/blob.rs b/servo/components/script/dom/blob.rs
+--- a/servo/components/script/dom/blob.rs
++++ b/servo/components/script/dom/blob.rs
+@@ -11,17 +11,17 @@ use dom::bindings::js::{JS, Root};
+ use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
+ use dom::bindings::str::DOMString;
+ use dom::globalscope::GlobalScope;
+ use dom_struct::dom_struct;
+ use ipc_channel::ipc;
+ use net_traits::{CoreResourceMsg, IpcSend};
+ use net_traits::blob_url_store::{BlobBuf, get_blob_origin};
+ use net_traits::filemanager_thread::{FileManagerThreadMsg, ReadFileProgress, RelativePos};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::mem;
+ use std::ops::Index;
+ use std::path::PathBuf;
+ use uuid::Uuid;
+
+ /// File-based blob
+ #[derive(JSTraceable)]
+ pub struct FileBlob {
+diff --git a/servo/components/script/dom/cssstyledeclaration.rs b/servo/components/script/dom/cssstyledeclaration.rs
+--- a/servo/components/script/dom/cssstyledeclaration.rs
++++ b/servo/components/script/dom/cssstyledeclaration.rs
+@@ -11,17 +11,17 @@ use dom::bindings::reflector::{DomObject
+ use dom::bindings::str::DOMString;
+ use dom::cssrule::CSSRule;
+ use dom::element::Element;
+ use dom::node::{Node, window_from_node, document_from_node};
+ use dom::window::Window;
+ use dom_struct::dom_struct;
+ use servo_arc::Arc;
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use style::attr::AttrValue;
+ use style::properties::{Importance, PropertyDeclarationBlock, PropertyId, LonghandId, ShorthandId};
+ use style::properties::{parse_one_declaration_into, parse_style_attribute, SourcePropertyDeclaration};
+ use style::selector_parser::PseudoElement;
+ use style::shared_lock::Locked;
+ use style_traits::{PARSING_MODE_DEFAULT, ToCss};
+
+ // http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface
+diff --git a/servo/components/script/dom/document.rs b/servo/components/script/dom/document.rs
+--- a/servo/components/script/dom/document.rs
++++ b/servo/components/script/dom/document.rs
+@@ -118,17 +118,17 @@ use script_traits::{AnimationState, Comp
+ use script_traits::{MouseButton, MouseEventType, MozBrowserEvent};
+ use script_traits::{MsDuration, ScriptMsg, TouchpadPressurePhase};
+ use script_traits::{TouchEventType, TouchId};
+ use script_traits::UntrustedNodeAddress;
+ use servo_arc::Arc;
+ use servo_atoms::Atom;
+ use servo_config::prefs::PREFS;
+ use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::ToOwned;
+ use std::cell::{Cell, Ref, RefMut};
+ use std::collections::{HashMap, HashSet, VecDeque};
+ use std::collections::hash_map::Entry::{Occupied, Vacant};
+ use std::default::Default;
+ use std::iter::once;
+ use std::mem;
+ use std::rc::Rc;
+diff --git a/servo/components/script/dom/element.rs b/servo/components/script/dom/element.rs
+--- a/servo/components/script/dom/element.rs
++++ b/servo/components/script/dom/element.rs
+@@ -90,17 +90,17 @@ use script_layout_interface::message::Re
+ use script_thread::ScriptThread;
+ use selectors::attr::{AttrSelectorOperation, NamespaceConstraint, CaseSensitivity};
+ use selectors::matching::{ElementSelectorFlags, LocalMatchingContext, MatchingContext, MatchingMode};
+ use selectors::matching::{HAS_EDGE_CHILD_SELECTOR, HAS_SLOW_SELECTOR, HAS_SLOW_SELECTOR_LATER_SIBLINGS};
+ use selectors::matching::{RelevantLinkStatus, matches_selector_list};
+ use selectors::sink::Push;
+ use servo_arc::Arc;
+ use servo_atoms::Atom;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::cell::{Cell, Ref};
+ use std::convert::TryFrom;
+ use std::default::Default;
+ use std::fmt;
+ use std::mem;
+ use std::rc::Rc;
+ use style::CaseSensitivityExt;
+diff --git a/servo/components/script/dom/htmlelement.rs b/servo/components/script/dom/htmlelement.rs
+--- a/servo/components/script/dom/htmlelement.rs
++++ b/servo/components/script/dom/htmlelement.rs
+@@ -25,17 +25,17 @@ use dom::htmlhtmlelement::HTMLHtmlElemen
+ use dom::htmlinputelement::HTMLInputElement;
+ use dom::htmllabelelement::HTMLLabelElement;
+ use dom::node::{Node, SEQUENTIALLY_FOCUSABLE};
+ use dom::node::{document_from_node, window_from_node};
+ use dom::nodelist::NodeList;
+ use dom::virtualmethods::VirtualMethods;
+ use dom_struct::dom_struct;
+ use html5ever::{LocalName, Prefix};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::default::Default;
+ use std::rc::Rc;
+ use style::attr::AttrValue;
+ use style::element_state::*;
+
+ #[dom_struct]
+ pub struct HTMLElement {
+ element: Element,
+diff --git a/servo/components/script/dom/htmllinkelement.rs b/servo/components/script/dom/htmllinkelement.rs
+--- a/servo/components/script/dom/htmllinkelement.rs
++++ b/servo/components/script/dom/htmllinkelement.rs
+@@ -21,17 +21,17 @@ use dom::htmlelement::HTMLElement;
+ use dom::node::{Node, UnbindContext, document_from_node, window_from_node};
+ use dom::stylesheet::StyleSheet as DOMStyleSheet;
+ use dom::virtualmethods::VirtualMethods;
+ use dom_struct::dom_struct;
+ use html5ever::{LocalName, Prefix};
+ use net_traits::ReferrerPolicy;
+ use script_traits::{MozBrowserEvent, ScriptMsg};
+ use servo_arc::Arc;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::ToOwned;
+ use std::cell::Cell;
+ use std::default::Default;
+ use style::attr::AttrValue;
+ use style::media_queries::parse_media_query_list;
+ use style::parser::ParserContext as CssParserContext;
+ use style::str::HTML_SPACE_CHARACTERS;
+ use style::stylesheets::{CssRuleType, Stylesheet};
+diff --git a/servo/components/script/dom/htmlmetaelement.rs b/servo/components/script/dom/htmlmetaelement.rs
+--- a/servo/components/script/dom/htmlmetaelement.rs
++++ b/servo/components/script/dom/htmlmetaelement.rs
+@@ -17,17 +17,17 @@ use dom::htmlelement::HTMLElement;
+ use dom::htmlheadelement::HTMLHeadElement;
+ use dom::node::{Node, UnbindContext, document_from_node, window_from_node};
+ use dom::virtualmethods::VirtualMethods;
+ use dom_struct::dom_struct;
+ use html5ever::{LocalName, Prefix};
+ use parking_lot::RwLock;
+ use servo_arc::Arc;
+ use servo_config::prefs::PREFS;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::sync::atomic::AtomicBool;
+ use style::attr::AttrValue;
+ use style::media_queries::MediaList;
+ use style::str::HTML_SPACE_CHARACTERS;
+ use style::stylesheets::{Stylesheet, StylesheetContents, CssRule, CssRules, Origin, ViewportRule};
+
+ #[dom_struct]
+ pub struct HTMLMetaElement {
+diff --git a/servo/components/script/dom/htmlscriptelement.rs b/servo/components/script/dom/htmlscriptelement.rs
+--- a/servo/components/script/dom/htmlscriptelement.rs
++++ b/servo/components/script/dom/htmlscriptelement.rs
+@@ -31,17 +31,17 @@ use ipc_channel::ipc;
+ use ipc_channel::router::ROUTER;
+ use js::jsval::UndefinedValue;
+ use net_traits::{FetchMetadata, FetchResponseListener, Metadata, NetworkError};
+ use net_traits::request::{CorsSettings, CredentialsMode, Destination, RequestInit, RequestMode, Type as RequestType};
+ use network_listener::{NetworkListener, PreInvoke};
+ use servo_atoms::Atom;
+ use servo_config::opts;
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::cell::Cell;
+ use std::fs::File;
+ use std::io::{Read, Write};
+ use std::path::PathBuf;
+ use std::process::{Command, Stdio};
+ use std::sync::{Arc, Mutex};
+ use style::str::{HTML_SPACE_CHARACTERS, StaticStringVec};
+ use uuid::Uuid;
+diff --git a/servo/components/script/dom/macros.rs b/servo/components/script/dom/macros.rs
+--- a/servo/components/script/dom/macros.rs
++++ b/servo/components/script/dom/macros.rs
+@@ -144,17 +144,17 @@ macro_rules! make_string_or_document_url
+ );
+
+ #[macro_export]
+ macro_rules! make_enumerated_getter(
+ ( $attr:ident, $htmlname:tt, $default:expr, $($choices: pat)|+) => (
+ fn $attr(&self) -> DOMString {
+ use dom::bindings::inheritance::Castable;
+ use dom::element::Element;
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] use std::ascii::AsciiExt;
+ let element = self.upcast::<Element>();
+ let mut val = element.get_string_attribute(&local_name!($htmlname));
+ val.make_ascii_lowercase();
+ // https://html.spec.whatwg.org/multipage/#attr-fs-method
+ match &*val {
+ $($choices)|+ => val,
+ _ => DOMString::from($default)
+ }
+diff --git a/servo/components/script/dom/namednodemap.rs b/servo/components/script/dom/namednodemap.rs
+--- a/servo/components/script/dom/namednodemap.rs
++++ b/servo/components/script/dom/namednodemap.rs
+@@ -10,17 +10,17 @@ use dom::bindings::error::{Error, Fallib
+ use dom::bindings::js::{JS, Root};
+ use dom::bindings::reflector::{Reflector, reflect_dom_object};
+ use dom::bindings::str::DOMString;
+ use dom::bindings::xmlname::namespace_from_domstring;
+ use dom::element::Element;
+ use dom::window::Window;
+ use dom_struct::dom_struct;
+ use html5ever::LocalName;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+
+ #[dom_struct]
+ pub struct NamedNodeMap {
+ reflector_: Reflector,
+ owner: JS<Element>,
+ }
+
+ impl NamedNodeMap {
+diff --git a/servo/components/script/dom/serviceworkercontainer.rs b/servo/components/script/dom/serviceworkercontainer.rs
+--- a/servo/components/script/dom/serviceworkercontainer.rs
++++ b/servo/components/script/dom/serviceworkercontainer.rs
+@@ -11,17 +11,17 @@ use dom::bindings::str::USVString;
+ use dom::client::Client;
+ use dom::eventtarget::EventTarget;
+ use dom::globalscope::GlobalScope;
+ use dom::promise::Promise;
+ use dom::serviceworker::ServiceWorker;
+ use dom_struct::dom_struct;
+ use script_thread::ScriptThread;
+ use serviceworkerjob::{Job, JobType};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::default::Default;
+ use std::rc::Rc;
+
+ #[dom_struct]
+ pub struct ServiceWorkerContainer {
+ eventtarget: EventTarget,
+ controller: MutNullableJS<ServiceWorker>,
+ client: JS<Client>
+diff --git a/servo/components/script/dom/servoparser/async_html.rs b/servo/components/script/dom/servoparser/async_html.rs
+--- a/servo/components/script/dom/servoparser/async_html.rs
++++ b/servo/components/script/dom/servoparser/async_html.rs
+@@ -22,17 +22,17 @@ use dom::virtualmethods::vtable_for;
+ use html5ever::{Attribute as HtmlAttribute, ExpandedName, LocalName, QualName};
+ use html5ever::buffer_queue::BufferQueue;
+ use html5ever::tendril::{SendTendril, StrTendril, Tendril};
+ use html5ever::tendril::fmt::UTF8;
+ use html5ever::tokenizer::{Tokenizer as HtmlTokenizer, TokenizerOpts, TokenizerResult};
+ use html5ever::tree_builder::{ElementFlags, NodeOrText as HtmlNodeOrText, NextParserState, QuirksMode, TreeSink};
+ use html5ever::tree_builder::{TreeBuilder, TreeBuilderOpts};
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::cell::Cell;
+ use std::collections::HashMap;
+ use std::collections::vec_deque::VecDeque;
+ use std::sync::mpsc::{channel, Receiver, Sender};
+ use std::thread;
+ use style::context::QuirksMode as ServoQuirksMode;
+
+diff --git a/servo/components/script/dom/servoparser/mod.rs b/servo/components/script/dom/servoparser/mod.rs
+--- a/servo/components/script/dom/servoparser/mod.rs
++++ b/servo/components/script/dom/servoparser/mod.rs
+@@ -41,17 +41,17 @@ use net_traits::{FetchMetadata, FetchRes
+ use network_listener::PreInvoke;
+ use profile_traits::time::{TimerMetadata, TimerMetadataFrameType};
+ use profile_traits::time::{TimerMetadataReflowType, ProfilerCategory, profile};
+ use script_thread::ScriptThread;
+ use script_traits::DocumentActivity;
+ use servo_config::prefs::PREFS;
+ use servo_config::resource_files::read_resource_file;
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::cell::Cell;
+ use std::mem;
+ use style::context::QuirksMode as ServoQuirksMode;
+
+ mod async_html;
+ mod html;
+ mod xml;
+diff --git a/servo/components/script/dom/websocket.rs b/servo/components/script/dom/websocket.rs
+--- a/servo/components/script/dom/websocket.rs
++++ b/servo/components/script/dom/websocket.rs
+@@ -27,17 +27,17 @@ use js::jsapi::JSAutoCompartment;
+ use js::jsval::UndefinedValue;
+ use js::typedarray::{ArrayBuffer, CreateWith};
+ use net_traits::{WebSocketCommunicate, WebSocketConnectData, WebSocketDomAction, WebSocketNetworkEvent};
+ use net_traits::CoreResourceMsg::WebsocketConnect;
+ use net_traits::MessageData;
+ use script_runtime::CommonScriptMsg;
+ use script_runtime::ScriptThreadEventCategory::WebSocketEvent;
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::ToOwned;
+ use std::cell::Cell;
+ use std::ptr;
+ use std::thread;
+ use task::{TaskOnce, TaskCanceller};
+ use task_source::TaskSource;
+ use task_source::networking::NetworkingTaskSource;
+
+diff --git a/servo/components/script/dom/window.rs b/servo/components/script/dom/window.rs
+--- a/servo/components/script/dom/window.rs
++++ b/servo/components/script/dom/window.rs
+@@ -82,17 +82,17 @@ use script_traits::{ConstellationControl
+ use script_traits::{ScriptToConstellationChan, ScriptMsg, ScrollState, TimerEvent, TimerEventId};
+ use script_traits::{TimerSchedulerMsg, UntrustedNodeAddress, WindowSizeData, WindowSizeType};
+ use script_traits::webdriver_msg::{WebDriverJSError, WebDriverJSResult};
+ use selectors::attr::CaseSensitivity;
+ use servo_config::opts;
+ use servo_config::prefs::PREFS;
+ use servo_geometry::{f32_rect_to_au_rect, max_rect};
+ use servo_url::{Host, MutableOrigin, ImmutableOrigin, ServoUrl};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::ToOwned;
+ use std::cell::Cell;
+ use std::collections::{HashMap, HashSet};
+ use std::collections::hash_map::Entry;
+ use std::default::Default;
+ use std::env;
+ use std::fs;
+ use std::io::{Write, stderr, stdout};
+diff --git a/servo/components/script/dom/xmlhttprequest.rs b/servo/components/script/dom/xmlhttprequest.rs
+--- a/servo/components/script/dom/xmlhttprequest.rs
++++ b/servo/components/script/dom/xmlhttprequest.rs
+@@ -57,17 +57,17 @@ use net_traits::{FetchResponseListener,
+ use net_traits::CoreResourceMsg::Fetch;
+ use net_traits::request::{CredentialsMode, Destination, RequestInit, RequestMode};
+ use net_traits::trim_http_whitespace;
+ use network_listener::{NetworkListener, PreInvoke};
+ use script_traits::DocumentActivity;
+ use servo_atoms::Atom;
+ use servo_config::prefs::PREFS;
+ use servo_url::ServoUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::ToOwned;
+ use std::cell::Cell;
+ use std::default::Default;
+ use std::str;
+ use std::sync::{Arc, Mutex};
+ use task_source::networking::NetworkingTaskSource;
+ use time;
+ use timers::{OneshotTimerCallback, OneshotTimerHandle};
+diff --git a/servo/components/selectors/attr.rs b/servo/components/selectors/attr.rs
+--- a/servo/components/selectors/attr.rs
++++ b/servo/components/selectors/attr.rs
+@@ -1,15 +1,15 @@
+ /* 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/. */
+
+ use cssparser::ToCss;
+ use parser::SelectorImpl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] #[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+
+ #[derive(Clone, Eq, PartialEq)]
+ pub struct AttrSelectorWithNamespace<Impl: SelectorImpl> {
+ pub namespace: NamespaceConstraint<(Impl::NamespacePrefix, Impl::NamespaceUrl)>,
+ pub local_name: Impl::LocalName,
+ pub local_name_lower: Impl::LocalName,
+ pub operation: ParsedAttrSelectorOperation<Impl::AttrValue>,
+diff --git a/servo/components/selectors/parser.rs b/servo/components/selectors/parser.rs
+--- a/servo/components/selectors/parser.rs
++++ b/servo/components/selectors/parser.rs
+@@ -8,17 +8,17 @@ use bloom::BLOOM_HASH_MASK;
+ use builder::{SelectorBuilder, SpecificityAndFlags};
+ use context::QuirksMode;
+ use cssparser::{ParseError, BasicParseError, CowRcStr, Delimiter};
+ use cssparser::{Token, Parser as CssParser, parse_nth, ToCss, serialize_identifier, CssStringWriter};
+ use precomputed_hash::PrecomputedHash;
+ use servo_arc::ThinArc;
+ use sink::Push;
+ use smallvec::SmallVec;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::{Borrow, Cow};
+ use std::fmt::{self, Display, Debug, Write};
+ use std::iter::Rev;
+ use std::slice;
+ use visitor::SelectorVisitor;
+
+ /// A trait that represents a pseudo-element.
+ pub trait PseudoElement : Sized + ToCss {
+diff --git a/servo/components/style/attr.rs b/servo/components/style/attr.rs
+--- a/servo/components/style/attr.rs
++++ b/servo/components/style/attr.rs
+@@ -11,17 +11,17 @@ use app_units::Au;
+ use cssparser::{self, Color, RGBA};
+ use euclid::num::Zero;
+ use num_traits::ToPrimitive;
+ use properties::PropertyDeclarationBlock;
+ use selectors::attr::AttrSelectorOperation;
+ use servo_arc::Arc;
+ use servo_url::ServoUrl;
+ use shared_lock::Locked;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] #[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::str::FromStr;
+ use str::{HTML_SPACE_CHARACTERS, read_exponent, read_fraction};
+ use str::{read_numbers, split_commas, split_html_space_chars};
+ use str::str_join;
+ use values::specified::Length;
+
+ // Duplicated from script::dom::values.
+ const UNSIGNED_LONG_MAX: u32 = 2147483647;
+diff --git a/servo/components/style/counter_style/mod.rs b/servo/components/style/counter_style/mod.rs
+--- a/servo/components/style/counter_style/mod.rs
++++ b/servo/components/style/counter_style/mod.rs
+@@ -10,17 +10,17 @@ use Atom;
+ use cssparser::{AtRuleParser, DeclarationListParser, DeclarationParser};
+ use cssparser::{Parser, Token, serialize_identifier, BasicParseError, CowRcStr};
+ use error_reporting::{ContextualParseError, ParseErrorReporter};
+ #[cfg(feature = "gecko")] use gecko::rules::CounterStyleDescriptors;
+ #[cfg(feature = "gecko")] use gecko_bindings::structs::nsCSSCounterDesc;
+ use parser::{ParserContext, ParserErrorContext, Parse};
+ use selectors::parser::SelectorParseError;
+ use shared_lock::{SharedRwLockReadGuard, ToCssWithGuard};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::fmt;
+ use std::ops::Range;
+ use style_traits::{Comma, OneOrMoreSeparated, ParseError, StyleParseError, ToCss};
+ use values::CustomIdent;
+
+ /// Parse the prelude of an @counter-style rule
+ pub fn parse_counter_style_name<'i, 't>(input: &mut Parser<'i, 't>) -> Result<CustomIdent, ParseError<'i>> {
+diff --git a/servo/components/style/custom_properties.rs b/servo/components/style/custom_properties.rs
+--- a/servo/components/style/custom_properties.rs
++++ b/servo/components/style/custom_properties.rs
+@@ -9,17 +9,17 @@
+ use Atom;
+ use cssparser::{Delimiter, Parser, ParserInput, SourcePosition, Token, TokenSerializationType};
+ use parser::ParserContext;
+ use precomputed_hash::PrecomputedHash;
+ use properties::{CSSWideKeyword, DeclaredValue};
+ use selector_map::{PrecomputedHashSet, PrecomputedHashMap};
+ use selectors::parser::SelectorParseError;
+ use servo_arc::Arc;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::{Borrow, Cow};
+ use std::fmt;
+ use std::hash::Hash;
+ use style_traits::{ToCss, StyleParseError, ParseError};
+
+ /// A custom property name is just an `Atom`.
+ ///
+ /// Note that this does not include the `--` prefix
+diff --git a/servo/components/style/gecko/generated/pseudo_element_definition.rs b/servo/components/style/gecko/generated/pseudo_element_definition.rs
+--- a/servo/components/style/gecko/generated/pseudo_element_definition.rs
++++ b/servo/components/style/gecko/generated/pseudo_element_definition.rs
+@@ -1262,17 +1262,17 @@ None
+ /// user-agent stylesheet.
+ ///
+ /// If we're not in a user-agent stylesheet, we will never parse anonymous
+ /// box pseudo-elements.
+ ///
+ /// Returns `None` if the pseudo-element is not recognised.
+ #[inline]
+ pub fn from_slice(s: &str, in_ua_stylesheet: bool) -> Option<Self> {
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] #[allow(unused_imports)] use std::ascii::AsciiExt;
+
+ // We don't need to support tree pseudos because functional
+ // pseudo-elements needs arguments, and thus should be created
+ // via other methods.
+ if in_ua_stylesheet || PseudoElement::After.exposed_in_non_ua_sheets() {
+ if s.eq_ignore_ascii_case("after") {
+ return Some(PseudoElement::After);
+ }
+@@ -1632,17 +1632,17 @@ None
+ }
+
+ /// Constructs a tree pseudo-element from the given name and arguments.
+ /// "name" must start with "-moz-tree-".
+ ///
+ /// Returns `None` if the pseudo-element is not recognized.
+ #[inline]
+ pub fn tree_pseudo_element(name: &str, args: Box<[String]>) -> Option<Self> {
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] use std::ascii::AsciiExt;
+ debug_assert!(name.starts_with("-moz-tree-"));
+ let tree_part = &name[10..];
+ if tree_part.eq_ignore_ascii_case("column") {
+ return Some(PseudoElement::MozTreeColumn(args));
+ }
+ if tree_part.eq_ignore_ascii_case("row") {
+ return Some(PseudoElement::MozTreeRow(args));
+ }
+diff --git a/servo/components/style/gecko/pseudo_element_definition.mako.rs b/servo/components/style/gecko/pseudo_element_definition.mako.rs
+--- a/servo/components/style/gecko/pseudo_element_definition.mako.rs
++++ b/servo/components/style/gecko/pseudo_element_definition.mako.rs
+@@ -181,17 +181,17 @@ impl PseudoElement {
+ /// user-agent stylesheet.
+ ///
+ /// If we're not in a user-agent stylesheet, we will never parse anonymous
+ /// box pseudo-elements.
+ ///
+ /// Returns `None` if the pseudo-element is not recognised.
+ #[inline]
+ pub fn from_slice(s: &str, in_ua_stylesheet: bool) -> Option<Self> {
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] #[allow(unused_imports)] use std::ascii::AsciiExt;
+
+ // We don't need to support tree pseudos because functional
+ // pseudo-elements needs arguments, and thus should be created
+ // via other methods.
+ % for pseudo in SIMPLE_PSEUDOS:
+ if in_ua_stylesheet || ${pseudo_element_variant(pseudo)}.exposed_in_non_ua_sheets() {
+ if s.eq_ignore_ascii_case("${pseudo.value[1:]}") {
+ return Some(${pseudo_element_variant(pseudo)});
+@@ -203,17 +203,17 @@ impl PseudoElement {
+ }
+
+ /// Constructs a tree pseudo-element from the given name and arguments.
+ /// "name" must start with "-moz-tree-".
+ ///
+ /// Returns `None` if the pseudo-element is not recognized.
+ #[inline]
+ pub fn tree_pseudo_element(name: &str, args: Box<[String]>) -> Option<Self> {
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] use std::ascii::AsciiExt;
+ debug_assert!(name.starts_with("-moz-tree-"));
+ let tree_part = &name[10..];
+ % for pseudo in TREE_PSEUDOS:
+ if tree_part.eq_ignore_ascii_case("${pseudo.value[11:]}") {
+ return Some(${pseudo_element_variant(pseudo, "args")});
+ }
+ % endfor
+ None
+diff --git a/servo/components/style/gecko_string_cache/mod.rs b/servo/components/style/gecko_string_cache/mod.rs
+--- a/servo/components/style/gecko_string_cache/mod.rs
++++ b/servo/components/style/gecko_string_cache/mod.rs
+@@ -8,17 +8,17 @@
+
+ use gecko_bindings::bindings::Gecko_AddRefAtom;
+ use gecko_bindings::bindings::Gecko_Atomize;
+ use gecko_bindings::bindings::Gecko_Atomize16;
+ use gecko_bindings::bindings::Gecko_ReleaseAtom;
+ use gecko_bindings::structs::{nsIAtom, nsIAtom_AtomKind};
+ use nsstring::{nsAString, nsString};
+ use precomputed_hash::PrecomputedHash;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::{Cow, Borrow};
+ use std::char::{self, DecodeUtf16};
+ use std::fmt::{self, Write};
+ use std::hash::{Hash, Hasher};
+ use std::iter::Cloned;
+ use std::mem;
+ use std::ops::Deref;
+ use std::slice;
+diff --git a/servo/components/style/properties/longhand/font.mako.rs b/servo/components/style/properties/longhand/font.mako.rs
+--- a/servo/components/style/properties/longhand/font.mako.rs
++++ b/servo/components/style/properties/longhand/font.mako.rs
+@@ -2137,17 +2137,17 @@ https://drafts.csswg.org/css-fonts-4/#lo
+ SpecifiedValue::Normal
+ }
+
+ impl ToComputedValue for SpecifiedValue {
+ type ComputedValue = computed_value::T;
+
+ #[inline]
+ fn to_computed_value(&self, _context: &Context) -> computed_value::T {
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] #[allow(unused_imports)] use std::ascii::AsciiExt;
+ match *self {
+ SpecifiedValue::Normal => computed_value::T(0),
+ SpecifiedValue::Override(ref lang) => {
+ if lang.is_empty() || lang.len() > 4 || !lang.is_ascii() {
+ return computed_value::T(0)
+ }
+ let mut computed_lang = lang.clone();
+ while computed_lang.len() < 4 {
+diff --git a/servo/components/style/properties/longhand/pointing.mako.rs b/servo/components/style/properties/longhand/pointing.mako.rs
+--- a/servo/components/style/properties/longhand/pointing.mako.rs
++++ b/servo/components/style/properties/longhand/pointing.mako.rs
+@@ -85,17 +85,17 @@
+ 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>> {
+- use std::ascii::AsciiExt;
++ #[allow(unused_imports)] use std::ascii::AsciiExt;
+ use style_traits::cursor::Cursor;
+ 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(|()| SelectorParseError::UnexpectedIdent(ident.clone()).into())
+diff --git a/servo/components/style/servo/selector_parser.rs b/servo/components/style/servo/selector_parser.rs
+--- a/servo/components/style/servo/selector_parser.rs
++++ b/servo/components/style/servo/selector_parser.rs
+@@ -16,17 +16,17 @@ use invalidation::element::element_wrapp
+ use properties::ComputedValues;
+ use properties::PropertyFlags;
+ use properties::longhands::display::computed_value as display;
+ use selector_parser::{AttrValue as SelectorAttrValue, ElementExt, PseudoElementCascadeType, SelectorParser};
+ use selectors::Element;
+ use selectors::attr::{AttrSelectorOperation, NamespaceConstraint, CaseSensitivity};
+ use selectors::parser::{SelectorMethods, SelectorParseError};
+ use selectors::visitor::SelectorVisitor;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+ use std::fmt::Debug;
+ use std::mem;
+ use std::ops::{Deref, DerefMut};
+ use style_traits::{ParseError, StyleParseError};
+
+ /// A pseudo-element, both public and private.
+ ///
+diff --git a/servo/components/style/str.rs b/servo/components/style/str.rs
+--- a/servo/components/style/str.rs
++++ b/servo/components/style/str.rs
+@@ -2,17 +2,17 @@
+ * 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/. */
+
+ //! String utils for attributes and similar stuff.
+
+ #![deny(missing_docs)]
+
+ use num_traits::ToPrimitive;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] #[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::convert::AsRef;
+ use std::iter::{Filter, Peekable};
+ use std::str::Split;
+
+ /// A static slice of characters.
+ pub type StaticCharVec = &'static [char];
+
+diff --git a/servo/components/style/stylesheets/viewport_rule.rs b/servo/components/style/stylesheets/viewport_rule.rs
+--- a/servo/components/style/stylesheets/viewport_rule.rs
++++ b/servo/components/style/stylesheets/viewport_rule.rs
+@@ -15,17 +15,17 @@ use error_reporting::{ContextualParseErr
+ use euclid::TypedSize2D;
+ use font_metrics::get_metrics_provider_for_product;
+ use media_queries::Device;
+ use parser::{ParserContext, ParserErrorContext};
+ use properties::StyleBuilder;
+ use rule_cache::RuleCacheConditions;
+ use selectors::parser::SelectorParseError;
+ use shared_lock::{SharedRwLockReadGuard, StylesheetGuards, ToCssWithGuard};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::borrow::Cow;
+ use std::cell::RefCell;
+ use std::fmt;
+ use std::iter::Enumerate;
+ use std::str::Chars;
+ use style_traits::{PinchZoomFactor, ToCss, ParseError, StyleParseError};
+ use style_traits::viewport::{Orientation, UserZoom, ViewportConstraints, Zoom};
+ use stylesheets::{StylesheetInDocument, Origin};
+diff --git a/servo/components/style/values/mod.rs b/servo/components/style/values/mod.rs
+--- a/servo/components/style/values/mod.rs
++++ b/servo/components/style/values/mod.rs
+@@ -7,17 +7,17 @@
+ //! [values]: https://drafts.csswg.org/css-values/
+
+ #![deny(missing_docs)]
+
+ use Atom;
+ pub use cssparser::{RGBA, Token, Parser, serialize_identifier, BasicParseError, CowRcStr};
+ use parser::{Parse, ParserContext};
+ use selectors::parser::SelectorParseError;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt::{self, Debug};
+ use std::hash;
+ use style_traits::{ToCss, ParseError, StyleParseError};
+
+ pub mod animated;
+ pub mod computed;
+ pub mod distance;
+ pub mod generics;
+diff --git a/servo/components/style/values/specified/align.rs b/servo/components/style/values/specified/align.rs
+--- a/servo/components/style/values/specified/align.rs
++++ b/servo/components/style/values/specified/align.rs
+@@ -5,17 +5,17 @@
+ //! Values for CSS Box Alignment properties
+ //!
+ //! https://drafts.csswg.org/css-align/
+
+ use cssparser::Parser;
+ use gecko_bindings::structs;
+ use parser::{Parse, ParserContext};
+ use selectors::parser::SelectorParseError;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+ use style_traits::{ToCss, ParseError, StyleParseError};
+
+ bitflags! {
+ /// Constants shared by multiple CSS Box Alignment properties
+ ///
+ /// These constants match Gecko's `NS_STYLE_ALIGN_*` constants.
+ #[cfg_attr(feature = "gecko", derive(MallocSizeOf))]
+diff --git a/servo/components/style/values/specified/angle.rs b/servo/components/style/values/specified/angle.rs
+--- a/servo/components/style/values/specified/angle.rs
++++ b/servo/components/style/values/specified/angle.rs
+@@ -1,17 +1,17 @@
+ /* 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 angles.
+
+ use cssparser::{Parser, Token, BasicParseError};
+ use parser::{ParserContext, Parse};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+ use style_traits::{ToCss, ParseError};
+ use values::CSSFloat;
+ use values::computed::{Context, ToComputedValue};
+ use values::computed::angle::Angle as ComputedAngle;
+ use values::specified::calc::CalcNode;
+
+ /// A specified angle.
+diff --git a/servo/components/style/values/specified/calc.rs b/servo/components/style/values/specified/calc.rs
+--- a/servo/components/style/values/specified/calc.rs
++++ b/servo/components/style/values/specified/calc.rs
+@@ -3,17 +3,17 @@
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+ //! [Calc expressions][calc].
+ //!
+ //! [calc]: https://drafts.csswg.org/css-values/#calc-notation
+
+ use cssparser::{Parser, Token, BasicParseError};
+ use parser::ParserContext;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+ use style_traits::{ToCss, ParseError, StyleParseError};
+ use style_traits::values::specified::AllowedNumericType;
+ use values::{CSSInteger, CSSFloat};
+ use values::computed;
+ use values::specified::{Angle, Time};
+ use values::specified::length::{AbsoluteLength, FontRelativeLength, NoCalcLength};
+ use values::specified::length::ViewportPercentageLength;
+diff --git a/servo/components/style/values/specified/grid.rs b/servo/components/style/values/specified/grid.rs
+--- a/servo/components/style/values/specified/grid.rs
++++ b/servo/components/style/values/specified/grid.rs
+@@ -2,17 +2,17 @@
+ * 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/. */
+
+ //! CSS handling for the computed value of
+ //! [grids](https://drafts.csswg.org/css-grid/)
+
+ use cssparser::{Parser, Token, BasicParseError};
+ use parser::{Parse, ParserContext};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::mem;
+ use style_traits::{ParseError, StyleParseError};
+ use values::{CSSFloat, CustomIdent};
+ use values::computed::{self, Context, ToComputedValue};
+ use values::generics::grid::{GridTemplateComponent, RepeatCount, TrackBreadth, TrackKeyword, TrackRepeat};
+ use values::generics::grid::{LineNameList, TrackSize, TrackList, TrackListType, TrackListValue};
+ use values::specified::{LengthOrPercentage, Integer};
+
+diff --git a/servo/components/style/values/specified/length.rs b/servo/components/style/values/specified/length.rs
+--- a/servo/components/style/values/specified/length.rs
++++ b/servo/components/style/values/specified/length.rs
+@@ -7,17 +7,17 @@
+ //! [length]: https://drafts.csswg.org/css-values/#lengths
+
+ use app_units::Au;
+ use cssparser::{Parser, Token, BasicParseError};
+ use euclid::Size2D;
+ use font_metrics::FontMetricsQueryResult;
+ use parser::{Parse, ParserContext};
+ use std::{cmp, fmt, mem};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::ops::{Add, Mul};
+ use style_traits::{ToCss, ParseError, StyleParseError};
+ use style_traits::values::specified::AllowedNumericType;
+ use stylesheets::CssRuleType;
+ use super::{AllowQuirks, Number, ToComputedValue, Percentage};
+ use values::{Auto, CSSFloat, Either, FONT_MEDIUM_PX, None_, Normal};
+ use values::{ExtremumLength, serialize_dimension};
+ use values::computed::{self, CSSPixelLength, Context};
+diff --git a/servo/components/style/values/specified/mod.rs b/servo/components/style/values/specified/mod.rs
+--- a/servo/components/style/values/specified/mod.rs
++++ b/servo/components/style/values/specified/mod.rs
+@@ -6,17 +6,17 @@
+ //!
+ //! TODO(emilio): Enhance docs.
+
+ use Namespace;
+ use context::QuirksMode;
+ use cssparser::{Parser, Token, serialize_identifier, BasicParseError};
+ use parser::{ParserContext, Parse};
+ use self::url::SpecifiedUrl;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::f32;
+ use std::fmt;
+ use style_traits::{ToCss, ParseError, StyleParseError};
+ use style_traits::values::specified::AllowedNumericType;
+ use super::{Auto, CSSFloat, CSSInteger, Either, None_};
+ use super::computed::{Context, ToComputedValue};
+ use super::generics::{GreaterThanOrEqualToOne, NonNegative};
+ use super::generics::grid::{GridLine as GenericGridLine, TrackBreadth as GenericTrackBreadth};
+diff --git a/servo/components/style/values/specified/percentage.rs b/servo/components/style/values/specified/percentage.rs
+--- a/servo/components/style/values/specified/percentage.rs
++++ b/servo/components/style/values/specified/percentage.rs
+@@ -1,17 +1,17 @@
+ /* 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 percentages.
+
+ use cssparser::{BasicParseError, Parser, Token};
+ use parser::{Parse, ParserContext};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+ use style_traits::{ParseError, ToCss};
+ use style_traits::values::specified::AllowedNumericType;
+ use values::{CSSFloat, serialize_percentage};
+ use values::computed::{Context, ToComputedValue};
+ use values::computed::percentage::Percentage as ComputedPercentage;
+ use values::specified::calc::CalcNode;
+
+diff --git a/servo/components/style/values/specified/text.rs b/servo/components/style/values/specified/text.rs
+--- a/servo/components/style/values/specified/text.rs
++++ b/servo/components/style/values/specified/text.rs
+@@ -2,17 +2,17 @@
+ * 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 types for text properties.
+
+ use cssparser::Parser;
+ use parser::{Parse, ParserContext};
+ use selectors::parser::SelectorParseError;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use style_traits::ParseError;
+ use values::computed::{Context, ToComputedValue};
+ use values::computed::text::LineHeight as ComputedLineHeight;
+ use values::generics::text::InitialLetter as GenericInitialLetter;
+ use values::generics::text::LineHeight as GenericLineHeight;
+ use values::generics::text::Spacing;
+ use values::specified::{AllowQuirks, Integer, NonNegativeNumber, Number};
+ use values::specified::length::{FontRelativeLength, Length, LengthOrPercentage, NoCalcLength};
+diff --git a/servo/components/style/values/specified/time.rs b/servo/components/style/values/specified/time.rs
+--- a/servo/components/style/values/specified/time.rs
++++ b/servo/components/style/values/specified/time.rs
+@@ -1,17 +1,17 @@
+ /* 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 time values.
+
+ use cssparser::{Parser, Token, BasicParseError};
+ use parser::{ParserContext, Parse};
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+ use style_traits::{ToCss, ParseError, StyleParseError};
+ use style_traits::values::specified::AllowedNumericType;
+ use values::CSSFloat;
+ use values::computed::{Context, ToComputedValue};
+ use values::computed::time::Time as ComputedTime;
+ use values::specified::calc::CalcNode;
+
+diff --git a/servo/components/style_traits/viewport.rs b/servo/components/style_traits/viewport.rs
+--- a/servo/components/style_traits/viewport.rs
++++ b/servo/components/style_traits/viewport.rs
+@@ -2,17 +2,17 @@
+ * 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/. */
+
+ //! Helper types for the `@viewport` rule.
+
+ use {CSSPixel, PinchZoomFactor, ParseError};
+ use cssparser::{Parser, ToCss, ParseError as CssParseError, BasicParseError};
+ use euclid::TypedSize2D;
+-use std::ascii::AsciiExt;
++#[allow(unused_imports)] use std::ascii::AsciiExt;
+ use std::fmt;
+
+ define_css_keyword_enum!(UserZoom:
+ "zoom" => Zoom,
+ "fixed" => Fixed);
+
+ define_css_keyword_enum!(Orientation:
+ "auto" => Auto,