Bug 1080174 - Do not send Accept-Encoding:gzip,deflate when requesting WOFF or WOFF2 webfonts. r=mcmanus
--- a/layout/style/FontFaceSet.cpp
+++ b/layout/style/FontFaceSet.cpp
@@ -442,16 +442,23 @@ FontFaceSet::StartLoad(gfxUserFontEntry*
if (httpChannel) {
httpChannel->SetReferrer(aFontFaceSrc->mReferrer);
nsAutoCString accept("application/font-woff;q=0.9,*/*;q=0.8");
if (Preferences::GetBool(GFX_PREF_WOFF2_ENABLED)) {
accept.Insert(NS_LITERAL_CSTRING("application/font-woff2;q=1.0,"), 0);
}
httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
accept, false);
+ // For WOFF and WOFF2, we should tell servers/proxies/etc NOT to try
+ // and apply additional compression at the content-encoding layer
+ if (aFontFaceSrc->mFormatFlags & (gfxUserFontSet::FLAG_FORMAT_WOFF |
+ gfxUserFontSet::FLAG_FORMAT_WOFF2)) {
+ httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept-Encoding"),
+ NS_LITERAL_CSTRING("identity"), false);
+ }
}
nsCOMPtr<nsISupportsPriority> priorityChannel(do_QueryInterface(channel));
if (priorityChannel) {
priorityChannel->AdjustPriority(nsISupportsPriority::PRIORITY_HIGH);
}
rv = NS_NewStreamLoader(getter_AddRefs(streamLoader), fontLoader);
NS_ENSURE_SUCCESS(rv, rv);