From 1c9d6206cb04027614d6857786d1d82767664b45 Mon Sep 17 00:00:00 2001 From: JustOff Date: Tue, 15 May 2018 00:32:07 +0300 Subject: Revert incorrect UAO optimization that broke SSUAO --- netwerk/base/nsILoadGroup.idl | 6 ---- netwerk/base/nsLoadGroup.cpp | 14 -------- netwerk/base/nsLoadGroup.h | 2 -- netwerk/protocol/http/UserAgentOverrides.jsm | 8 ++--- netwerk/protocol/http/nsHttpChannel.cpp | 46 ------------------------ netwerk/protocol/http/nsHttpChannel.h | 2 -- netwerk/protocol/http/nsHttpHandler.h | 6 ---- netwerk/protocol/http/nsIHttpProtocolHandler.idl | 9 ----- 8 files changed, 4 insertions(+), 89 deletions(-) diff --git a/netwerk/base/nsILoadGroup.idl b/netwerk/base/nsILoadGroup.idl index 4f89bd0e3..d0cad5ece 100644 --- a/netwerk/base/nsILoadGroup.idl +++ b/netwerk/base/nsILoadGroup.idl @@ -95,10 +95,4 @@ interface nsILoadGroup : nsIRequest * the docShell has created the default request.) */ attribute nsLoadFlags defaultLoadFlags; - - /** - * The cached user agent override created by UserAgentOverrides.jsm. Used - * for all sub-resource requests in the loadgroup. - */ - attribute ACString userAgentOverrideCache; }; diff --git a/netwerk/base/nsLoadGroup.cpp b/netwerk/base/nsLoadGroup.cpp index 7b75f7942..51d5a9ca7 100644 --- a/netwerk/base/nsLoadGroup.cpp +++ b/netwerk/base/nsLoadGroup.cpp @@ -809,20 +809,6 @@ nsLoadGroup::SetDefaultLoadFlags(uint32_t aFlags) return NS_OK; } -NS_IMETHODIMP -nsLoadGroup::GetUserAgentOverrideCache(nsACString & aUserAgentOverrideCache) -{ - aUserAgentOverrideCache = mUserAgentOverrideCache; - return NS_OK; -} - -NS_IMETHODIMP -nsLoadGroup::SetUserAgentOverrideCache(const nsACString & aUserAgentOverrideCache) -{ - mUserAgentOverrideCache = aUserAgentOverrideCache; - return NS_OK; -} - //////////////////////////////////////////////////////////////////////////////// diff --git a/netwerk/base/nsLoadGroup.h b/netwerk/base/nsLoadGroup.h index da89ca1b3..20dd94cf9 100644 --- a/netwerk/base/nsLoadGroup.h +++ b/netwerk/base/nsLoadGroup.h @@ -95,8 +95,6 @@ protected: /* For nsPILoadGroupInternal */ uint32_t mTimedNonCachedRequestsUntilOnEndPageLoad; - - nsCString mUserAgentOverrideCache; }; } // namespace net diff --git a/netwerk/protocol/http/UserAgentOverrides.jsm b/netwerk/protocol/http/UserAgentOverrides.jsm index 22c676f06..037aa575b 100644 --- a/netwerk/protocol/http/UserAgentOverrides.jsm +++ b/netwerk/protocol/http/UserAgentOverrides.jsm @@ -46,9 +46,9 @@ this.UserAgentOverrides = { Services.prefs.addObserver(PREF_OVERRIDES_ENABLED, buildOverrides, false); try { - Services.obs.addObserver(HTTP_on_useragent_request, "http-on-useragent-request", false); + Services.obs.addObserver(HTTP_on_modify_request, "http-on-modify-request", false); } catch (x) { - // The http-on-useragent-request notification is disallowed in content processes. + // The http-on-modify-request notification is disallowed in content processes. } UserAgentUpdates.init(function(overrides) { @@ -118,7 +118,7 @@ this.UserAgentOverrides = { Services.prefs.removeObserver(PREF_OVERRIDES_ENABLED, buildOverrides); - Services.obs.removeObserver(HTTP_on_useragent_request, "http-on-useragent-request"); + Services.obs.removeObserver(HTTP_on_modify_request, "http-on-modify-request"); }, receiveMessage: function(aMessage) { @@ -169,7 +169,7 @@ function buildOverrides() { } } -function HTTP_on_useragent_request(aSubject, aTopic, aData) { +function HTTP_on_modify_request(aSubject, aTopic, aData) { let channel = aSubject.QueryInterface(Ci.nsIHttpChannel); for (let callback of gOverrideFunctions) { diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp index 05699df62..9107b16e8 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp @@ -6031,8 +6031,6 @@ nsHttpChannel::BeginConnect() // notify "http-on-modify-request" observers CallOnModifyRequestObservers(); - SetLoadGroupUserAgentOverride(); - // Check if request was cancelled during on-modify-request or on-useragent. if (mCanceled) { return mStatus; @@ -8399,50 +8397,6 @@ nsHttpChannel::MaybeWarnAboutAppCache() } } -void -nsHttpChannel::SetLoadGroupUserAgentOverride() -{ - nsCOMPtr uri; - GetURI(getter_AddRefs(uri)); - nsAutoCString uriScheme; - if (uri) { - uri->GetScheme(uriScheme); - } - - // We don't need a UA for file: protocols. - if (uriScheme.EqualsLiteral("file")) { - gHttpHandler->OnUserAgentRequest(this); - return; - } - - nsIRequestContextService* rcsvc = gHttpHandler->GetRequestContextService(); - nsCOMPtr rc; - if (rcsvc) { - rcsvc->GetRequestContext(mRequestContextID, - getter_AddRefs(rc)); - } - - nsAutoCString ua; - if (nsContentUtils::IsNonSubresourceRequest(this)) { - gHttpHandler->OnUserAgentRequest(this); - if (rc) { - GetRequestHeader(NS_LITERAL_CSTRING("User-Agent"), ua); - rc->SetUserAgentOverride(ua); - } - } else { - GetRequestHeader(NS_LITERAL_CSTRING("User-Agent"), ua); - // Don't overwrite the UA if it is already set (eg by an XHR with explicit UA). - if (ua.IsEmpty()) { - if (rc) { - rc->GetUserAgentOverride(ua); - SetRequestHeader(NS_LITERAL_CSTRING("User-Agent"), ua, false); - } else { - gHttpHandler->OnUserAgentRequest(this); - } - } - } -} - void nsHttpChannel::SetDoNotTrack() { diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h index 7578b1173..cb8925d04 100644 --- a/netwerk/protocol/http/nsHttpChannel.h +++ b/netwerk/protocol/http/nsHttpChannel.h @@ -460,8 +460,6 @@ private: void MaybeWarnAboutAppCache(); - void SetLoadGroupUserAgentOverride(); - void SetDoNotTrack(); private: diff --git a/netwerk/protocol/http/nsHttpHandler.h b/netwerk/protocol/http/nsHttpHandler.h index 35b14a511..0904af893 100644 --- a/netwerk/protocol/http/nsHttpHandler.h +++ b/netwerk/protocol/http/nsHttpHandler.h @@ -280,12 +280,6 @@ public: NotifyObservers(chan, NS_HTTP_ON_MODIFY_REQUEST_TOPIC); } - // Called by the channel and cached in the loadGroup - void OnUserAgentRequest(nsIHttpChannel *chan) - { - NotifyObservers(chan, NS_HTTP_ON_USERAGENT_REQUEST_TOPIC); - } - // Called by the channel once headers are available void OnExamineResponse(nsIHttpChannel *chan) { diff --git a/netwerk/protocol/http/nsIHttpProtocolHandler.idl b/netwerk/protocol/http/nsIHttpProtocolHandler.idl index f333a557c..82ac83fe4 100644 --- a/netwerk/protocol/http/nsIHttpProtocolHandler.idl +++ b/netwerk/protocol/http/nsIHttpProtocolHandler.idl @@ -113,14 +113,5 @@ interface nsIHttpProtocolHandler : nsIProxiedProtocolHandler */ #define NS_HTTP_ON_EXAMINE_CACHED_RESPONSE_TOPIC "http-on-examine-cached-response" -/** - * Before an HTTP request corresponding to a channel with the LOAD_DOCUMENT_URI - * flag is sent to the server, this observer topic is notified. The observer of - * this topic can then choose to modify the user agent for this request before - * the request is actually sent to the server. Additionally, the modified user - * agent will be propagated to sub-resource requests from the same load group. - */ -#define NS_HTTP_ON_USERAGENT_REQUEST_TOPIC "http-on-useragent-request" - %} -- cgit v1.2.3