diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index 4edfa38747b14..f880e2b9e7b1e 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -78469,99 +78469,6 @@ true mirror : always -# -When -true -origin -A -and -origin -B -will -be -coalesced -if -they -have -an -overlap -# -in -IP -addresses -as -advertized -by -DNS -regardless -if -the -existing -connection -# -to -origin -A -is -not -to -an -IP -present -in -B -' -s -DNS -response -. -# -When -false -an -existing -connection -will -only -be -reused -if -the -# -connection -' -s -remote -IP -is -also -present -in -B -' -s -DNS -response -. -- -name -: -network -. -http -. -http2 -. -aggressive_coalescing -type -: -RelaxedAtomicBool -value -: -false -mirror -: -always - name : diff --git a/netwerk/protocol/http/ConnectionEntry.cpp b/netwerk/protocol/http/ConnectionEntry.cpp index 50f2ef7128517..9b69479c7616e 100644 --- a/netwerk/protocol/http/ConnectionEntry.cpp +++ b/netwerk/protocol/http/ConnectionEntry.cpp @@ -673,12 +673,6 @@ Clear ( ) ; -mAddresses -. -Clear -( -) -; } void ConnectionEntry @@ -735,12 +729,6 @@ Clear ( ) ; -mAddresses -. -Clear -( -) -; } void ConnectionEntry @@ -2369,12 +2357,6 @@ Clear ( ) ; -mAddresses -. -Clear -( -) -; } uint32_t ConnectionEntry @@ -5463,6 +5445,12 @@ return false ; } +nsTArray +< +NetAddr +> +addressSet +; nsresult rv = @@ -5471,7 +5459,7 @@ dnsRecord > GetAddresses ( -mAddresses +addressSet ) ; if @@ -5482,7 +5470,7 @@ rv ) | | -mAddresses +addressSet . IsEmpty ( @@ -5502,7 +5490,7 @@ i ; i < -mAddresses +addressSet . Length ( @@ -5516,7 +5504,7 @@ i if ( ( -mAddresses +addressSet [ i ] @@ -5529,7 +5517,7 @@ family AF_INET & & -mAddresses +addressSet [ i ] @@ -5544,7 +5532,7 @@ ip | | ( -mAddresses +addressSet [ i ] @@ -5557,7 +5545,7 @@ family AF_INET6 & & -mAddresses +addressSet [ i ] @@ -5575,7 +5563,7 @@ u64 0 & & -mAddresses +addressSet [ i ] @@ -5650,7 +5638,7 @@ kIPv6CStrBufSize 26 ) ; -mAddresses +addressSet [ i ] diff --git a/netwerk/protocol/http/ConnectionEntry.h b/netwerk/protocol/http/ConnectionEntry.h index bc5efc7045eba..a418e040d20ef 100644 --- a/netwerk/protocol/http/ConnectionEntry.h +++ b/netwerk/protocol/http/ConnectionEntry.h @@ -472,12 +472,6 @@ nsCString > mCoalescingKeys ; -nsTArray -< -NetAddr -> -mAddresses -; bool mUsingSpdy : diff --git a/netwerk/protocol/http/nsHttpConnectionMgr.cpp b/netwerk/protocol/http/nsHttpConnectionMgr.cpp index ee78a3753317d..49b7e3b5e6267 100644 --- a/netwerk/protocol/http/nsHttpConnectionMgr.cpp +++ b/netwerk/protocol/http/nsHttpConnectionMgr.cpp @@ -4507,143 +4507,61 @@ aNoHttp2 aNoHttp3 ) ; -auto -usableEntry -= -[ -& -] +if ( -HttpConnectionBase -* conn ) { -if +LOG ( -StaticPrefs -: -: -network_http_http2_aggressive_coalescing ( +" +FindCoalescableConnection +( +% +s ) -) -{ -return -true -; -} -NetAddr -addr -; -nsresult -rv -= +match conn +% +p +on +dns +key +% +s +\ +n +" +ci - > -GetPeerAddr +HashKey ( -& -addr ) -; -if -( -NS_FAILED +. +get ( -rv ) -) -{ -return -false -; -} -addr -. -inet -. -port -= -0 -; -return +conn ent - > -mAddresses +mCoalescingKeys +[ +i +] . -Contains -( -addr -) -; -} -; -if -( -conn -) -{ -LOG -( -( -" -Found -connection -with -matching -hash -" -) -) -; -if -( -usableEntry +get ( -conn ) ) -{ -LOG -( -( -" -> -coalescing -" -) ) ; return conn ; } -else -{ -LOG -( -( -" -> -not -coalescing -as -remote -address -not -present -in -DNS -records -" -) -) -; -} -} } LOG ( diff --git a/netwerk/test/unit/test_connection_coalescing.js b/netwerk/test/unit/test_connection_coalescing.js deleted file mode 100644 index 311dfb7ad20cd..0000000000000 --- a/netwerk/test/unit/test_connection_coalescing.js +++ /dev/null @@ -1,1310 +0,0 @@ -" -use -strict -" -; -const -override -= -Cc -[ -" -mozilla -. -org -/ -network -/ -native -- -dns -- -override -; -1 -" -] -. -getService -( -Ci -. -nsINativeDNSResolverOverride -) -; -let -certdb -= -Cc -[ -" -mozilla -. -org -/ -security -/ -x509certdb -; -1 -" -] -. -getService -( -Ci -. -nsIX509CertDB -) -; -addCertFromFile -( -certdb -" -http2 -- -ca -. -pem -" -" -CTu -u -u -" -) -; -async -function -createServer -( -) -{ -let -server -= -new -NodeHTTP2Server -( -) -; -await -server -. -start -( -) -; -registerCleanupFunction -( -async -( -) -= -> -{ -await -server -. -stop -( -) -; -} -) -; -await -server -. -registerPathHandler -( -" -/ -" -( -req -resp -) -= -> -{ -let -content -= -hello -from -{ -req -. -authority -} -| -{ -req -. -socket -. -remotePort -} -; -resp -. -writeHead -( -200 -{ -" -Content -- -Type -" -: -" -text -/ -plain -" -" -Content -- -Length -" -: -{ -content -. -length -} -} -) -; -resp -. -end -( -content -) -; -} -) -; -return -server -; -} -async -function -openChan -( -uri -) -{ -let -chan -= -NetUtil -. -newChannel -( -{ -uri -loadUsingSystemPrincipal -: -true -} -) -. -QueryInterface -( -Ci -. -nsIHttpChannel -) -; -chan -. -loadFlags -= -Ci -. -nsIChannel -. -LOAD_INITIAL_DOCUMENT_URI -; -let -{ -req -buffer -} -= -await -new -Promise -( -resolve -= -> -{ -function -finish -( -r -b -) -{ -resolve -( -{ -req -: -r -buffer -: -b -} -) -; -} -chan -. -asyncOpen -( -new -ChannelListener -( -finish -null -CL_ALLOW_UNKNOWN_CL -) -) -; -} -) -; -return -{ -buffer -port -: -buffer -. -split -( -" -| -" -) -[ -1 -] -addr -: -req -. -QueryInterface -( -Ci -. -nsIHttpChannelInternal -) -. -remoteAddress -status -: -req -. -QueryInterface -( -Ci -. -nsIHttpChannel -) -. -responseStatus -} -; -} -add_task -( -async -function -test_dontCoalesce -( -) -{ -let -server -= -await -createServer -( -) -; -Services -. -prefs -. -setBoolPref -( -" -network -. -http -. -http2 -. -aggressive_coalescing -" -false -) -; -override -. -clearOverrides -( -) -; -Services -. -dns -. -clearCache -( -true -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -127 -. -0 -. -0 -. -1 -" -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -: -: -1 -" -) -; -override -. -addIPOverride -( -" -alt1 -. -example -. -com -" -" -: -: -1 -" -) -; -let -{ -addr -: -addr1 -} -= -await -openChan -( -https -: -/ -/ -foo -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -let -{ -addr -: -addr2 -} -= -await -openChan -( -https -: -/ -/ -alt1 -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -Assert -. -notEqual -( -addr1 -addr2 -) -; -await -server -. -stop -( -) -; -} -) -; -add_task -( -async -function -test_doCoalesce -( -) -{ -let -server -= -await -createServer -( -) -; -Services -. -prefs -. -setBoolPref -( -" -network -. -http -. -http2 -. -aggressive_coalescing -" -false -) -; -override -. -clearOverrides -( -) -; -Services -. -dns -. -clearCache -( -true -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -127 -. -0 -. -0 -. -1 -" -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -: -: -1 -" -) -; -override -. -addIPOverride -( -" -alt2 -. -example -. -com -" -" -127 -. -0 -. -0 -. -1 -" -) -; -override -. -addIPOverride -( -" -alt2 -. -example -. -com -" -" -: -: -1 -" -) -; -let -{ -port -: -port1 -addr -: -addr1 -} -= -await -openChan -( -https -: -/ -/ -foo -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -let -{ -port -: -port2 -addr -: -addr2 -} -= -await -openChan -( -https -: -/ -/ -alt2 -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -Assert -. -equal -( -addr1 -addr2 -) -; -Assert -. -equal -( -port1 -port2 -) -; -await -server -. -stop -( -) -; -} -) -; -add_task -( -async -function -test_doCoalesceAggresive -( -) -{ -let -server -= -await -createServer -( -) -; -Services -. -prefs -. -setBoolPref -( -" -network -. -http -. -http2 -. -aggressive_coalescing -" -true -) -; -override -. -clearOverrides -( -) -; -Services -. -dns -. -clearCache -( -true -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -127 -. -0 -. -0 -. -1 -" -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -: -: -1 -" -) -; -override -. -addIPOverride -( -" -alt1 -. -example -. -com -" -" -: -: -1 -" -) -; -let -{ -port -: -port1 -addr -: -addr1 -} -= -await -openChan -( -https -: -/ -/ -foo -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -let -{ -port -: -port2 -addr -: -addr2 -} -= -await -openChan -( -https -: -/ -/ -alt1 -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -Assert -. -equal -( -addr1 -addr2 -) -; -Assert -. -equal -( -port1 -port2 -) -; -await -server -. -stop -( -) -; -} -) -; -add_task -( -async -function -test_doCoalesceAggresive421 -( -) -{ -let -server -= -await -createServer -( -) -; -await -server -. -registerPathHandler -( -" -/ -" -( -req -resp -) -= -> -{ -let -content -= -hello -from -{ -req -. -authority -} -| -{ -req -. -socket -. -remotePort -} -; -if -( -req -. -authority -. -startsWith -( -" -alt1 -. -example -. -com -" -) -& -& -req -. -socket -. -localAddress -= -= -" -: -: -1 -" -) -{ -resp -. -writeHead -( -421 -{ -" -Content -- -Type -" -: -" -text -/ -plain -" -" -Content -- -Length -" -: -{ -content -. -length -} -} -) -; -resp -. -end -( -content -) -; -return -; -} -resp -. -writeHead -( -200 -{ -" -Content -- -Type -" -: -" -text -/ -plain -" -" -Content -- -Length -" -: -{ -content -. -length -} -} -) -; -resp -. -end -( -content -) -; -} -) -; -Services -. -prefs -. -setBoolPref -( -" -network -. -http -. -http2 -. -aggressive_coalescing -" -true -) -; -override -. -clearOverrides -( -) -; -Services -. -dns -. -clearCache -( -true -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -: -: -1 -" -) -; -override -. -addIPOverride -( -" -foo -. -example -. -com -" -" -127 -. -0 -. -0 -. -1 -" -) -; -override -. -addIPOverride -( -" -alt1 -. -example -. -com -" -" -127 -. -0 -. -0 -. -1 -" -) -; -let -{ -addr -: -addr1 -status -: -status1 -} -= -await -openChan -( -https -: -/ -/ -foo -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -Assert -. -equal -( -status1 -200 -) -; -Assert -. -equal -( -addr1 -" -: -: -1 -" -) -; -let -{ -addr -: -addr2 -status -: -status2 -} -= -await -openChan -( -https -: -/ -/ -alt1 -. -example -. -com -: -{ -server -. -port -( -) -} -/ -) -; -Assert -. -equal -( -status2 -200 -) -; -Assert -. -equal -( -addr2 -" -127 -. -0 -. -0 -. -1 -" -) -; -await -server -. -stop -( -) -; -} -) -; diff --git a/netwerk/test/unit/xpcshell.toml b/netwerk/test/unit/xpcshell.toml index 431b505ad5035..931d6334c3ed5 100644 --- a/netwerk/test/unit/xpcshell.toml +++ b/netwerk/test/unit/xpcshell.toml @@ -7148,10 +7148,3 @@ test_xmlhttprequest js " ] -[ -" -test_connection_coalescing -. -js -" -]